aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/ktest/ktest.pl
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-03-08 09:44:35 -0500
committerSteven Rostedt <rostedt@goodmis.org>2011-03-08 09:52:59 -0500
commit8ea0e063a78df91b1ca4d23ea8d4e2e3047f6950 (patch)
tree475c92fd474b353f59c6c63fe99c7396b39595ef /tools/testing/ktest/ktest.pl
parent4651920e0ac7a596c1123a8efdcc2f6d2249deb3 (diff)
ktest: Monitor kernel while running of user tests
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>
Diffstat (limited to 'tools/testing/ktest/ktest.pl')
-rwxr-xr-xtools/testing/ktest/ktest.pl14
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
index 125ab94e7294..8bbfceedfdb2 100755
--- a/tools/testing/ktest/ktest.pl
+++ b/tools/testing/ktest/ktest.pl
@@ -1110,6 +1110,7 @@ sub do_run_test {
1110 1110
1111 # we are not guaranteed to get a full line 1111 # we are not guaranteed to get a full line
1112 $full_line .= $line; 1112 $full_line .= $line;
1113 doprint $line;
1113 1114
1114 if ($full_line =~ /call trace:/i) { 1115 if ($full_line =~ /call trace:/i) {
1115 $bug = 1; 1116 $bug = 1;
@@ -1126,6 +1127,19 @@ sub do_run_test {
1126 } while (!$child_done && !$bug); 1127 } while (!$child_done && !$bug);
1127 1128
1128 if ($bug) { 1129 if ($bug) {
1130 my $failure_start = time;
1131 my $now;
1132 do {
1133 $line = wait_for_input($monitor_fp, 1);
1134 if (defined($line)) {
1135 doprint $line;
1136 }
1137 $now = time;
1138 if ($now - $failure_start >= $stop_after_failure) {
1139 last;
1140 }
1141 } while (defined($line));
1142
1129 doprint "Detected kernel crash!\n"; 1143 doprint "Detected kernel crash!\n";
1130 # kill the child with extreme prejudice 1144 # kill the child with extreme prejudice
1131 kill 9, $child_pid; 1145 kill 9, $child_pid;