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