Messages in this thread | | | Subject | Re: [PATCH 2/3] ktest: check parent options for a repeated test | From | Steven Rostedt <> | Date | Fri, 18 Nov 2011 10:38:57 -0500 |
| |
On Fri, 2011-11-18 at 17:05 +0530, Rabin Vincent wrote: > 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.
Nice catch! I missed this. I'll give it a test run, and if all is fine, I'll pull it in. Thanks.
This looks like a bug fix, so I may even push this to Linus now.
Thanks!
-- Steve
> Signed-off-by: Rabin Vincent <rabin@rab.in> > --- > tools/testing/ktest/ktest.pl | 16 ++++++++++++++++ > 1 files changed, 16 insertions(+), 0 deletions(-) > > diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl > index 3185e0a..e93c21c 100755 > --- a/tools/testing/ktest/ktest.pl > +++ b/tools/testing/ktest/ktest.pl > @@ -748,6 +748,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; > @@ -761,10 +773,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";
| |