ktest: Monitor kernel while running of user tests
authorSteven Rostedt <srostedt@redhat.com>
Tue, 8 Mar 2011 14:44:35 +0000 (09:44 -0500)
committerSteven Rostedt <rostedt@goodmis.org>
Tue, 8 Mar 2011 14:52:59 +0000 (09:52 -0500)
Record the console of tests to both the console and the log.
Also, record the bug reports afte the test has completed.
Currently, if a kernel bug happens while running the userland
test, the test stops and will not record the kernel bug. This
makes it difficult to solve what happened.

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

index 125ab94e7294ce6c9a70415c011ba594edd16462..8bbfceedfdb29ad3f77e177087fd9dbcddd79150 100755 (executable)
@@ -1110,6 +1110,7 @@ sub do_run_test {
 
            # we are not guaranteed to get a full line
            $full_line .= $line;
+           doprint $line;
 
            if ($full_line =~ /call trace:/i) {
                $bug = 1;
@@ -1126,6 +1127,19 @@ sub do_run_test {
     } while (!$child_done && !$bug);
 
     if ($bug) {
+       my $failure_start = time;
+       my $now;
+       do {
+           $line = wait_for_input($monitor_fp, 1);
+           if (defined($line)) {
+               doprint $line;
+           }
+           $now = time;
+           if ($now - $failure_start >= $stop_after_failure) {
+               last;
+           }
+       } while (defined($line));
+
        doprint "Detected kernel crash!\n";
        # kill the child with extreme prejudice
        kill 9, $child_pid;