Open MPI logo

MTT Devel Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all MTT Devel mailing list

Subject: Re: [MTT devel] Question about adding executable tests to the "Test Run" phase
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2010-11-12 21:33:50


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-devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/