OK, thanks. Jeff.
I am not sure that this is related to my original question but I was actually
looking for a way to have ftt find my test examples with the following.
#======================================================================
# Test Run phase
#======================================================================
# Some default Test run parameters to include in (most) Test run sections
[Test run]
pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0))
timeout = &max(30, &multiply(10, &test_np()))
save_stdout_on_pass = 1
merge_stdout_stderr = 1
stdout_save_lines = 100
np = &env_max_procs()
specify_module = Simple
[Test run: ftb-examples]
include_section = Test run
test_build = ftb-examples
skipped = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 77))
# Similar rationale to the intel test run section
simple_first:tests = &find_executables( \
"ftb_eventhandle_example", \
"ftb_example_callback_unsubscribe", \
"ftb_multiplecomp", \
"ftb_notify_logger", \
"ftb_pingpong", \
"ftb_polling_logger", \
"ftb_simple_publisher", \
"ftb_simple_subscriber", \
"ftb_watchdog")
# Similar rationale to the intel test run section
simple_fail:tests = environment/abort environment/final
simple_fail:pass = &and(&cmd_wifexited(), &ne(&cmd_wexitstatus(), 0))
simple_fail:exclusive = 1
simple_fail:np = &env_max_procs()
The test example codes are listed in simple_first:tests.
But I don't think that those example codes are called to run at the "Test Run"
phase.
Regards,
On 11/4/10 2:35 PM, Jeff Squyres wrote:
> It's instantiated in lib/MTT/Test.pm.
>
> It's filled in by LoadBuilds in the same file (i.e., when the results of a
> prior test build is loaded in from the dump file) and at the bottom of
> lib/MTT/Test/Build.pm::_do_build(), when the build has completed and it saves
> the results to the MTT:Test::builds hash.
>
>
>
> On Nov 4, 2010, at 1:59 PM, DongInn Kim wrote:
>
>> I am sorry that I was confused with the variable definition. My question
>> should be how "$MP::Test::builds" is defined.
>>
>> Regards,
>>
>> On 11/4/10 1:42 PM, DongInn Kim wrote:
>>> Thank you for all the detailed explanations, Jeff.
>>>
>>> Yes, if we can manage the MPI part with more generic term, that would be
>>> really great so that we can use the same main framework without diverging
>>> to another perl module to deal with FTT or something like this.
>>>
>>> Basically, how the "$MTT" is defined and setup in "$MTT::Test::builds"?
>>>
>>> It is used in MTT/Test/Run.pm and I could not find how it is defined. If I
>>> find it, I think I can figure out what is going on here.
>>>
>>> Regards,
>>>
>>> On 11/4/10 11:54 AM, Jeff Squyres wrote:
>>>> On Nov 4, 2010, at 8:46 AM, Joshua Hursey wrote:
>>>>
>>>>> Just for context. DongInn and Abhishek are working on support for testing
>>>>> of the CIFTS FTB project with MTT. So this would be a non-MPI testing
>>>>> target. They are currently working through some of the issues with
>>>>> supporting an FTB target in the MTT client. I am working with them on
>>>>> getting a new server setup (i.e., database, reporter) for that project.
>>>>
>>>> It might be worthwhile to s/MPI/Middleware/gi throughout the code, or,
>>>> more specifically, support both "Middleware Install" and "MPI Install"
>>>> tags in the ini file, etc.
>>>>
>>>> (i.e., we can't ditch "MPI Install" and friends because of the OMPI
>>>> community using MTT, but if CIFTS and HDF are looking at using MTT, it
>>>> might make sense to finally make the names a bit more generic)
>>>>
>>>>>> I found that the several keys of the hash($MTT::Test::builds) are empty
>>>>>> in the middle of mtt/lib/MTT/Test/Run.pm:123
>>>>>>
>>>>>> DB<12> p Dumper(\%{$MTT::Test::builds})
>>>>>> $VAR1 = {
>>>>>> '' => {
>>>>>> '' => {
>>>>
>>>> As you surmise below, you're correct: the above two empty fields should be
>>>> the names from the MPI Get phase and the corresponding version.
>>>>
>>>>>> 'platform' => {
>>>>
>>>> You might want a bit more specific name than "platform" here. :-)
>>>>
>>>>>> 'ftb-examples' => {
>>>>>> 'mpi_version'
>>>>>> => undef,
>>>>
>>>> IIRC, the MPI::Get module is responsible for setting this value in the
>>>> data structure that it returns, and it is propagated downward from there.
>>>>
>>>>>> 'mpi_name' =>
>>>>>> undef,
>>>>
>>>> I'm pretty sure that this is the name from the MPI::Install phase.
>>>>
>>>>>>
>>>>>> 'prepend_path' => undef,
>>>>>> 'env_modules'
>>>>>> => undef,
>>>>>> 'setenv' =>
>>>>>> undef,
>>>>>> 'unsetenv' =>
>>>>>> undef,
>>>>>> 'append_path'
>>>>>> => undef,
>>>>
>>>> These values all come directly from the INI file. If you didn't supply
>>>> them, it's ok for them to be undef.
>>>>
>>>> prepend_path is stuff to be prepended to $path before running this section.
>>>> append_path is the same, except to be appended to $path.
>>>> setenv is stuff to be set in the environment before running this section.
>>>> unsetenv is pretty much the same.
>>>> env_modules are environment modules to be loaded before running this
>>>> section.
>>>>
>>>> All of these cause changes to be effected before the section starts. The
>>>> changes are effectively undone when the section ends (e.g., if an env
>>>> module is loaded, it is unloaded when the section ends).
>>>>
>>>> These values also automatically propagate downwards -- any test runs that
>>>> use this test build section will "inherit" all of these values before any
>>>> tests are actually run, etc.
>>>>
>>>>>> 'description'
>>>>>> => undef,
>>>>
>>>> This seems to come from the [MTT] section's "description" field. I forget
>>>> offhand what it is for. I have "description = Cisco MPI development
>>>> cluster" in my Cisco OMPI testing INI file.
>>>>
>>>>>>
>>>>>> 'mpi_get_simple_section_name' => undef,
>>>>
>>>> This is also the name from the MPI::Get phase.
>>>>
>>>>>>
>>>>>> 'mpi_install_id' => undef,
>>>>
>>>> The MPI::Install module is responsible for setting this... although I
>>>> don't see where any current MPI::Install module fills in that value. It
>>>> might be left over old kruft. :-\
>>>>
>>>
>>
>> --
>> - DongInn
>
>
--
- DongInn