On Nov 12, 2010, at 11:08 AM, DongInn Kim wrote:

> Hi,
> 
> MTT::Test::Specify::Simple::Specify(/nfs/rinfs/san/homedirs/ftbteam/svn/mtt_trunk/lib/MTT/Test/Specify/Simple.pm:130):
> 130:                if (-x $t or $MTT::DoCommand::no_execute) {
>  DB<51> p $t
> ftb_watchdog
> 
> 
> Here is the step to add a executable test to a hash reference($ret) if $t is 
> executable or $MTT::DoCommand::no_execute is true.
> $t is pointing to "ftb_watchdog" which is one of the FTB test program, 
> executable, but not on $PATH.
> 
> Are we supposed to setup the $PATH to make the test program executable at 
> this time? If so, does mtt have a simple way to do so?

Where is this executable built -- during MPI::Install?  Is it installed 
somewhere?  If you're using the GNU configure install module (or something that 
uses that module), then MTT should call "./configure --prefix=<foo>", where 
<foo> is a directory that MTT created for installation.  It should then 
automatically add <foo>/bin to $PATH, etc.

So I think the real question is: who makes the ftb_watchdog executable?  Is it 
part of ./configure && make in MPI::Install, or something else?

> What does "$MTT::DoCommand::no_execute" do actually?

It is the mtt_client's --no-execute flag.  It is basically like "show me what 
you would do if you executed" (but not quite).

> For your convenience, I just copy and paste the part related to adding the 
> executable tests to the hash reference in MTT/Test/Specify/Simple.pm
>    # Now go through those groups and make the final list of tests to pass
>    # upwards
>    foreach my $group (keys %$params) {
> 
>        # Go through the list of tests and create an entry for each
>        foreach my $t (@{$params->{$group}->{tests}}) {
>            # If it's good, add a hash with all the values into the
>            # list of tests
>            if (-x $t or $MTT::DoCommand::no_execute) {
>                my $one;
>                # Do a deep copy of the defaults
>                %{$one} = %{$config};
> 
>                # Set the test name
>                $one->{executable} = $t;
>                Debug("   Adding test: $t (group: $group)\n");
> 
>                # Set all the other names that were specified for this
>                # group
>                foreach my $key (keys %{$params->{$group}}) {
>                    next
>                        if ($key eq "tests");
>                    if ($key =~ /^mpi_details:/) {
>                        $key =~ m/^mpi_details:(.+)/;
>                        $one->{mpi_details}->{$1} = $params->{$group}->{$key};
>                    } else {
>                        $one->{$key} = $params->{$group}->{$key};
>                    }
>                }
> 
>                # Save it on the final list of tests
>                push(@{$ret->{tests}}, $one);
>            }
>        }
>    }
> 
>    # All done
>    $ret->{test_result} = 1;
>    return $ret;
> }
> 
> 
> 
> Regards,
> 
> -- 
> - DongInn
> _______________________________________________
> mtt-devel mailing list
> mtt-de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to