Hey Jeff,

This code acts as a pre-processor during loading of ini file into mtt.
It replaces builtin vars %VAR% with their values, for example:

...
[Test run: trivial]
my_sect_name=%INI_SECTION_NAME%
...

%INI_SECTION_NAME% get replaced with real value. (trivial)



it is useful in the following situation:

...
[test run: trivial]
#param=&test_run_name()
param=%INI_SECTION_NAME%
...

when "param" was accessed from Reporter context, test_run_name() will return undef, but real value if %INI_SECTION_NAME% is used!



regards

Mike

On Tue, Aug 11, 2009 at 2:03 PM, Jeff Squyres <jsquyres@cisco.com> wrote:
Mike --

Can you explain what this does?

On Aug 11, 2009, at 4:28 AM, <miked@osl.iu.edu> wrote:

Author: miked
Date: 2009-08-11 04:28:03 EDT (Tue, 11 Aug 2009)
New Revision: 1306
URL: https://svn.open-mpi.org/trac/mtt/changeset/1306

Log:
added poor-man-inifile-preprocessor
Text files modified:
  trunk/client/mtt     |     3 +++
  trunk/lib/MTT/INI.pm |    24 ++++++++++++++++++++++++
  2 files changed, 27 insertions(+), 0 deletions(-)

Modified: trunk/client/mtt
=
=
=
=
=
=
=
=
======================================================================
--- trunk/client/mtt    (original)
+++ trunk/client/mtt    2009-08-11 04:28:03 EDT (Tue, 11 Aug 2009)
@@ -652,6 +652,9 @@
        # Expand all the "include_section" parameters
        $unfiltered = MTT::INI::ExpandIncludeSections($unfiltered);

+        # Expand all the "%PREDEFINED_VARS%" parameters
+        $unfiltered = MTT::INI::ExpandPredefinedVars($unfiltered);
+
        # Keep an unfiltered version of the ini file for error checking
        my $filtered = dclone($unfiltered);


Modified: trunk/lib/MTT/INI.pm
==============================================================================
--- trunk/lib/MTT/INI.pm        (original)
+++ trunk/lib/MTT/INI.pm        2009-08-11 04:28:03 EDT (Tue, 11 Aug 2009)
@@ -275,6 +275,30 @@
    return $ini;
 }

+sub ExpandPredefinedVars {
+    my($ini) = @_;
+
+    foreach my $section ($ini->Sections) {
+               foreach my $parameter ($ini->Parameters($section)) {
+                       my $val = $ini->val($section, $parameter);
+                       if ( $val =~ /%INI_SECTION_NAME%/i ) {
+                               my $sect = $section;
+                               $sect =~ s/test run://gi;
+                               $sect =~ s/test build://gi;
+                               $sect =~ s/test get://gi;
+                               $sect =~ s/mpi get://gi;
+                               $sect =~ s/mpi install://gi;
+                               $sect =~ s/mpi details://gi;
+                               $sect =~ s/reporter://gi;
+                               $val =~ s/%INI_SECTION_NAME%/$sect/g;
+                               $ini->delval($section, $parameter);
+                               $ini->newval($section, $parameter, $val);
+                       }
+               }
+    }
+    return $ini;
+}
+
 # Worker subroutine for recursive ExpandIncludeSections
 sub _expand_include_sections {
    my($ini, $section) = @_;
_______________________________________________
mtt-svn mailing list
mtt-svn@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/mtt-svn



--
Jeff Squyres
jsquyres@cisco.com

_______________________________________________
mtt-devel mailing list
mtt-devel@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel