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
--
Jeff Squyres
[email protected]
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/