ktest: Do not require CONSOLE for build or install bisects
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 30 Jan 2013 17:25:38 +0000 (12:25 -0500)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 30 Jan 2013 17:25:38 +0000 (12:25 -0500)
If the user is doing a build or install bisect, there's no reason to
have them define CONSOLE, as the console does not need to be read. The
console only needs to be read for boot tests.

CONSOLE is not required for normal build or install tests, let's not
require it for bisect tests with BISECT_TYPE of build or install.

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

index 35fc584a4ffee9677131dd5574f0e722f0a49e62..d6690df5e7f1417b98d5f6a03830eff39ed3a80a 100755 (executable)
@@ -618,6 +618,18 @@ sub set_value {
     if ($buildonly && $lvalue =~ /^TEST_TYPE(\[.*\])?$/ && $prvalue ne "build") {
        # Note if a test is something other than build, then we
        # will need other manditory options.
+       if ($prvalue ne "install") {
+           # for bisect, we need to check BISECT_TYPE
+           if ($prvalue ne "bisect") {
+               $buildonly = 0;
+           }
+       } else {
+           # install still limits some manditory options.
+           $buildonly = 2;
+       }
+    }
+
+    if ($buildonly && $lvalue =~ /^BISECT_TYPE(\[.*\])?$/ && $prvalue ne "build") {
        if ($prvalue ne "install") {
            $buildonly = 0;
        } else {
@@ -1279,6 +1291,7 @@ sub start_monitor {
 }
 
 sub end_monitor {
+    return if (!defined $console);
     if (--$monitor_cnt) {
        return;
     }
@@ -1585,7 +1598,7 @@ sub wait_for_input
 
     $rin = '';
     vec($rin, fileno($fp), 1) = 1;
-    $ready = select($rin, undef, undef, $time);
+    ($ready, $time) = select($rin, undef, undef, $time);
 
     $line = "";
 
@@ -1891,15 +1904,19 @@ sub get_version {
 
 sub start_monitor_and_boot {
     # Make sure the stable kernel has finished booting
-    start_monitor;
-    wait_for_monitor 5;
-    end_monitor;
+
+    # Install bisects, don't need console
+    if (defined $console) {
+       start_monitor;
+       wait_for_monitor 5;
+       end_monitor;
+    }
 
     get_grub_index;
     get_version;
     install;
 
-    start_monitor;
+    start_monitor if (defined $console);
     return monitor;
 }