Skip to content

Commit

Permalink
ktest: Add STOP_TEST_AFTER to stop the test after a period of time
Browse files Browse the repository at this point in the history
Currently, if a test causes constant output but never reaches a
boot prompt, or crashes, the test will never stop. Add STOP_TEST_AFTER
to create a variable that will stop (and fail) the test after it has run
for this amount of time. The default is 10 minutes. Setting this
variable to -1 will disable it.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  • Loading branch information
Steven Rostedt authored and Steven Rostedt committed Mar 8, 2011
1 parent 8ea0e06 commit 2d01b26
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
13 changes: 12 additions & 1 deletion tools/testing/ktest/ktest.pl
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
$default{"REBOOT"} = "ssh \$SSH_USER\@\$MACHINE reboot";
$default{"STOP_AFTER_SUCCESS"} = 10;
$default{"STOP_AFTER_FAILURE"} = 60;
$default{"STOP_TEST_AFTER"} = 600;
$default{"LOCALVERSION"} = "-test";

my $ktest_config;
Expand Down Expand Up @@ -102,6 +103,7 @@
my $success_line;
my $stop_after_success;
my $stop_after_failure;
my $stop_test_after;
my $build_target;
my $target_image;
my $localversion;
Expand Down Expand Up @@ -768,8 +770,10 @@ sub monitor {

my $success_start;
my $failure_start;
my $monitor_start = time;
my $done = 0;

for (;;) {
while (!$done) {

if ($booted) {
$line = wait_for_input($monitor_fp, $booted_timeout);
Expand Down Expand Up @@ -831,6 +835,12 @@ sub monitor {
if ($line =~ /\n/) {
$full_line = "";
}

if ($stop_test_after > 0 && !$booted && !$bug) {
if (time - $monitor_start > $stop_test_after) {
$done = 1;
}
}
}

close(DMESG);
Expand Down Expand Up @@ -2002,6 +2012,7 @@ sub set_test_option {
$success_line = set_test_option("SUCCESS_LINE", $i);
$stop_after_success = set_test_option("STOP_AFTER_SUCCESS", $i);
$stop_after_failure = set_test_option("STOP_AFTER_FAILURE", $i);
$stop_test_after = set_test_option("STOP_TEST_AFTER", $i);
$build_target = set_test_option("BUILD_TARGET", $i);
$ssh_exec = set_test_option("SSH_EXEC", $i);
$scp_to_target = set_test_option("SCP_TO_TARGET", $i);
Expand Down
8 changes: 8 additions & 0 deletions tools/testing/ktest/sample.conf
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,14 @@
# (default 60)
#STOP_AFTER_FAILURE = 60

# In case the console constantly fills the screen, having
# a specified time to stop the test if it never succeeds nor fails
# is recommended.
# Note: this is ignored if a success or failure is detected.
# (in seconds)
# (default 600, -1 is to never stop)
#STOP_TEST_AFTER = 600

# Stop testing if a build fails. If set, the script will end if
# a failure is detected, otherwise it will save off the .config,
# dmesg and bootlog in a directory called
Expand Down

0 comments on commit 2d01b26

Please sign in to comment.