130:                if (-x $t or $MTT::DoCommand::no_execute) {
  DB<51> p $t

Here is the step to add a executable test to a hash reference($ret) if $t is 
executable or $MTT::DoCommand::no_execute is true.
$t is pointing to "ftb_watchdog" which is one of the FTB test program, 
executable, but not on $PATH.

Are we supposed to setup the $PATH to make the test program executable at this 
time? If so, does mtt have a simple way to do so?
What does "$MTT::DoCommand::no_execute" do actually?

For your convenience, I just copy and paste the part related to adding the 
executable tests to the hash reference in MTT/Test/Specify/Simple.pm
    # Now go through those groups and make the final list of tests to pass
    # upwards
    foreach my $group (keys %$params) {

        # Go through the list of tests and create an entry for each
        foreach my $t (@{$params->{$group}->{tests}}) {
            # If it's good, add a hash with all the values into the
            # list of tests
            if (-x $t or $MTT::DoCommand::no_execute) {
                my $one;
                # Do a deep copy of the defaults
                %{$one} = %{$config};

                # Set the test name
                $one->{executable} = $t;
                Debug("   Adding test: $t (group: $group)\n");

                # Set all the other names that were specified for this
                # group
                foreach my $key (keys %{$params->{$group}}) {
                        if ($key eq "tests");
                    if ($key =~ /^mpi_details:/) {
                        $key =~ m/^mpi_details:(.+)/;
                        $one->{mpi_details}->{$1} = $params->{$group}->{$key};
                    } else {
                        $one->{$key} = $params->{$group}->{$key};

                # Save it on the final list of tests
                push(@{$ret->{tests}}, $one);

    # All done
    $ret->{test_result} = 1;
    return $ret;


- DongInn

Reply via email to