Skip to content

Commit

Permalink
ktest: Check parent options for iterated tests
Browse files Browse the repository at this point in the history
Let's say we have "OUTPUT_DIR = build/${TEST_NAME}", and we're iterating
a test.  In the second iteration of a test, the TEST_NAME of the test
we're repeating is not used.  Instead, ${TEST_NAME} appears literally:

   touch /home/rabin/kernel/test/build/${TEST_NAME}/.config ... SUCCESS

Fix this by making __eval_option() check the parent test options
for a repeated test.

Link: http://lkml.kernel.org/r/1321616131-21352-2-git-send-email-rabin@rab.in

Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  • Loading branch information
vitkyrka authored and rostedt committed Nov 18, 2011
1 parent cfcfc9e commit f9dfb65
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions tools/testing/ktest/ktest.pl
Original file line number Diff line number Diff line change
Expand Up @@ -747,6 +747,18 @@ sub __eval_option {
# Add space to evaluate the character before $
$option = " $option";
my $retval = "";
my $repeated = 0;
my $parent = 0;

foreach my $test (keys %repeat_tests) {
if ($i >= $test &&
$i < $test + $repeat_tests{$test}) {

$repeated = 1;
$parent = $test;
last;
}
}

while ($option =~ /(.*?[^\\])\$\{(.*?)\}(.*)/) {
my $start = $1;
Expand All @@ -760,10 +772,14 @@ sub __eval_option {
# otherwise see if the default OPT (without [$i]) exists.

my $o = "$var\[$i\]";
my $parento = "$var\[$parent\]";

if (defined($opt{$o})) {
$o = $opt{$o};
$retval = "$retval$o";
} elsif ($repeated && defined($opt{$parento})) {
$o = $opt{$parento};
$retval = "$retval$o";
} elsif (defined($opt{$var})) {
$o = $opt{$var};
$retval = "$retval$o";
Expand Down

0 comments on commit f9dfb65

Please sign in to comment.