ktest: Add special variable ${KERNEL_VERSION}
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 11 Dec 2013 20:40:46 +0000 (15:40 -0500)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 11 Dec 2013 20:53:31 +0000 (15:53 -0500)
Add a special variable that can be used in other variables called
${KERNEL_VERSION}. This will embed the current kernel version into
the variable. For example:

WARNINGS_FILE = ${OUTPUT_DIR}/warnings-${KERNEL_VERSION}

If the current version is v3.8 then the WARNINGS_FILE will become

  ${OUTPUT_DIR}/warnings-v3.8

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
tools/testing/ktest/ktest.pl

index 5dc5704..b285933 100755 (executable)
@@ -1129,6 +1129,10 @@ sub __eval_option {
        } elsif (defined($opt{$var})) {
            $o = $opt{$var};
            $retval = "$retval$o";
+       } elsif ($var eq "KERNEL_VERSION" && defined($make)) {
+           # special option KERNEL_VERSION uses kernel version
+           get_version();
+           $retval = "$retval$version";
        } else {
            $retval = "$retval\$\{$var\}";
        }
@@ -3919,6 +3923,18 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
 
     my $makecmd = set_test_option("MAKE_CMD", $i);
 
+    $outputdir = set_test_option("OUTPUT_DIR", $i);
+    $builddir = set_test_option("BUILD_DIR", $i);
+
+    chdir $builddir || die "can't change directory to $builddir";
+
+    if (!-d $outputdir) {
+       mkpath($outputdir) or
+           die "can't create $outputdir";
+    }
+
+    $make = "$makecmd O=$outputdir";
+
     # Load all the options into their mapped variable names
     foreach my $opt (keys %option_map) {
        ${$option_map{$opt}} = set_test_option($opt, $i);
@@ -3943,13 +3959,9 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
        $start_minconfig = $minconfig;
     }
 
-    chdir $builddir || die "can't change directory to $builddir";
-
-    foreach my $dir ($tmpdir, $outputdir) {
-       if (!-d $dir) {
-           mkpath($dir) or
-               die "can't create $dir";
-       }
+    if (!-d $tmpdir) {
+       mkpath($tmpdir) or
+           die "can't create $tmpdir";
     }
 
     $ENV{"SSH_USER"} = $ssh_user;
@@ -3958,7 +3970,6 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
     $buildlog = "$tmpdir/buildlog-$machine";
     $testlog = "$tmpdir/testlog-$machine";
     $dmesg = "$tmpdir/dmesg-$machine";
-    $make = "$makecmd O=$outputdir";
     $output_config = "$outputdir/.config";
 
     if (!$buildonly) {