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
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to