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: DongInn Kim (dikim_at_[hidden])
Date: 2010-11-12 21:46:13


ftb_watchdog is one of the ftb test programs and it is built during Test Build phase so it is compiled in MTT/Test/Build.pm.
It is installed installs/ftb-nightly-trunk--platform--0.6.2/tests/ftb-test/components where installs/ftb-nightly-trunk--platform--0.6.2/install is the place for the ftb installation.

> 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?
I believe that it is built in the Test Build phase and it is using the ompi_configure_argument option.

#======================================================================
# Install FTB phase
#======================================================================
                                                                                                                      
[MPI install: Platform]
mpi_get = ftb-nightly-trunk
mpi_details = OMPI
save_stdout_on_success = 1
merge_stdout_stderr = 0

module = OMPI
ompi_vpath_mode = none
# CUSTOM: FTB supports parallel builds; you may want to tweak the j
# value up or down, depending on your IO environment.
ompi_make_all_arguments = -j 4
ompi_make_check = 0
# CUSTOM: Tweak this configuration line as necessary to specify what
# is relevant for your environment. The lines between the EOT markers
# will be squashed into a single line before running.
ompi_compiler_name = gnu
ompi_compiler_version = &get_gcc_version()
ompi_configure_arguments = <<EOT
"CFLAGS=-g -pipe" --enable-debug \
--with-bstrap-server="odin.cs.indiana.edu" \
--with-bstrap-port=14455 \
--with-agent-port=10809
EOT

Regards,

On 11/12/10 9:33 PM, Jeff Squyres wrote:
> 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
>
>

-- 
- DongInn