Hey Eytan,

It seems argv is participating in the following scenarios:


1. argv should be defined in mtt.ini for every single [Test Run] section
2. Currently, &test_argv() is returing un-evaluated argv`s value
3. &test_argv() is usually part of "exec=" parameter line of [MPI Details], which is evaluated for very test invocation:

mpiexec @options@ -n &test_np() &test_executable() &test_argv()


According to analysis above, if argv contains funclets or variables, they will get expanded during "exec" line evaluation.

regards

Mike

On Tue, Sep 8, 2009 at 9:10 PM, Ethan Mallove <ethan.mallove@sun.com> wrote:
Mike,

What if argv contains a funclet, e.g.,

 argv = &foo()

Won't this change prevent it from getting expanded?

-Ethan


On Tue, Sep/08/2009 09:43:37AM, miked@osl.iu.edu wrote:
> Author: miked
> Date: 2009-09-08 09:43:37 EDT (Tue, 08 Sep 2009)
> New Revision: 1314
> URL: https://svn.open-mpi.org/trac/mtt/changeset/1314
>
> Log:
> fix:
>
> &test_np() can return incorrect value if used inside argv, here is a scenario:
>
> This behavior can be explained in next words as evaluation &np_test()
> returns uninitialized $MTT::Test::Run::test_np that is initialized later in _run_one_np function.
>
> As a result using
> $MTT::Test::Run::test_argv = $run->{argv};
> allows to avoid damaging $MTT::Test::Run::test_argv  variable on current step but evaluation of &test_np() is done with whole command_line.
>
>
> Text files modified:
>    trunk/lib/MTT/Test/RunEngine.pm |     2 +-
>    1 files changed, 1 insertions(+), 1 deletions(-)
>
> Modified: trunk/lib/MTT/Test/RunEngine.pm
> ==============================================================================
> --- trunk/lib/MTT/Test/RunEngine.pm   (original)
> +++ trunk/lib/MTT/Test/RunEngine.pm   2009-09-08 09:43:37 EDT (Tue, 08 Sep 2009)
> @@ -191,7 +191,7 @@
>          $MTT::Test::Run::test_executable_abspath = $test_exe_abs;
>          $MTT::Test::Run::test_executable_basename = $test_exe_basename;
>
> -        $MTT::Test::Run::test_argv = MTT::Values::EvaluateString($run->{argv}, $ini, $test_run_full_name);
> +        $MTT::Test::Run::test_argv = $run->{argv};
>          my $all_np = MTT::Values::EvaluateString($run->{np}, $ini, $test_run_full_name);
>
>          my $save_run_mpi_details = $MTT::Test::Run::mpi_details;
> _______________________________________________
> mtt-svn mailing list
> mtt-svn@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-svn
_______________________________________________
mtt-devel mailing list
mtt-devel@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel