Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f9dfb65b authored by Rabin Vincent's avatar Rabin Vincent Committed by Steven Rostedt
Browse files

ktest: Check parent options for iterated tests

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: default avatarRabin Vincent <rabin@rab.in>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent cfcfc9ec
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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";