Re: [PATCH 2/3] ktest: check parent options for a repeated test

From: Steven Rostedt
Date: Fri Nov 18 2011 - 10:39:00 EST


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@xxxxxx>
> ---
> 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";


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/