diff options
| author | Steven Rostedt (Red Hat) <rostedt@goodmis.org> | 2013-01-31 10:12:20 -0500 | 
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2013-01-31 10:24:53 -0500 | 
| commit | 04262be3db53d2b77ec09fa3e4d18313b6b9dcf9 (patch) | |
| tree | 641aaad32d3961a8d2f381afb7f6ad41704f4713 /tools/testing | |
| parent | 35275685bf6123529e67c1dc91b8c05e479124e8 (diff) | |
| download | linux-04262be3db53d2b77ec09fa3e4d18313b6b9dcf9.tar.bz2 | |
ktest: Allow a test option to use its default option
Options are allowed to use other options, for example:
  LOG_FILE = ${OUTPUT_DIR}/${MACHINE}.log
where the option LOG_FILE used the options OUTPUT_DIR and MACHINE.
But if a test option were to use a default option, it will not get
substituted:
  OUTPUT_DIR = ${THIS_DIR}/${MACHINE}
  TEST_START
  OUTPUT_DIR = ${OUTPUT_DIR}/t1
For the above test, OUTPUT_DIR will stay literally "${OUTPUT_DIR}/t1"
and not be converted to "${THIS_DIR}/${MACHINE}/t1". When the test runs,
it will pass the ${OUTPUT_DIR} to the shell, which would probaly
interpret it as "", and the output directory will end up as "/t1".
Change the code where if a test option has its own option name in
its defined field, and a default option exists, then substitute the
default option in its place.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'tools/testing')
| -rwxr-xr-x | tools/testing/ktest/ktest.pl | 16 | 
1 files changed, 10 insertions, 6 deletions
| diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl index cc9925a68f2a..3d19ee445249 100755 --- a/tools/testing/ktest/ktest.pl +++ b/tools/testing/ktest/ktest.pl @@ -1074,7 +1074,7 @@ sub read_config {  }  sub __eval_option { -    my ($option, $i) = @_; +    my ($name, $option, $i) = @_;      # Add space to evaluate the character before $      $option = " $option"; @@ -1106,7 +1106,11 @@ sub __eval_option {  	my $o = "$var\[$i\]";  	my $parento = "$var\[$parent\]"; -	if (defined($opt{$o})) { +	# If a variable contains itself, use the default var +	if (($var eq $name) && defined($opt{$var})) { +	    $o = $opt{$var}; +	    $retval = "$retval$o"; +	} elsif (defined($opt{$o})) {  	    $o = $opt{$o};  	    $retval = "$retval$o";  	} elsif ($repeated && defined($opt{$parento})) { @@ -1130,7 +1134,7 @@ sub __eval_option {  }  sub eval_option { -    my ($option, $i) = @_; +    my ($name, $option, $i) = @_;      my $prev = ""; @@ -1146,7 +1150,7 @@ sub eval_option {  		"Check for recursive variables\n";  	}  	$prev = $option; -	$option = __eval_option($option, $i); +	$option = __eval_option($name, $option, $i);      }      return $option; @@ -3683,7 +3687,7 @@ EOF  read_config $ktest_config;  if (defined($opt{"LOG_FILE"})) { -    $opt{"LOG_FILE"} = eval_option($opt{"LOG_FILE"}, -1); +    $opt{"LOG_FILE"} = eval_option("LOG_FILE", $opt{"LOG_FILE"}, -1);  }  # Append any configs entered in manually to the config file. @@ -3760,7 +3764,7 @@ sub set_test_option {      my $option = __set_test_option($name, $i);      return $option if (!defined($option)); -    return eval_option($option, $i); +    return eval_option($name, $option, $i);  }  # First we need to do is the builds |