Commit 648a182c authored by Steven Rostedt's avatar Steven Rostedt Committed by Steven Rostedt

ktest: Allow a test to override REBOOT_ON_SUCCESS

The option REBOOT_ON_SUCCESS is global, and will have the machine reboot
the the box if all tests are successful. But a test may not want the
machine to reboot, and perhaps have the kernel it loaded be used to
install the next kernel. Or the last test may set up a kernel that the
user may want to look at. In this case, the user could have the global
option REBOOT_ON_SUCCESS be true, but if a test is defined to run at the
end, that test can override the global option and keep the kernel it
installed for the user to log in with.
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 769df641
...@@ -87,6 +87,7 @@ my $reboot_on_error; ...@@ -87,6 +87,7 @@ my $reboot_on_error;
my $switch_to_good; my $switch_to_good;
my $switch_to_test; my $switch_to_test;
my $poweroff_on_error; my $poweroff_on_error;
my $reboot_on_success;
my $die_on_failure; my $die_on_failure;
my $powercycle_after_reboot; my $powercycle_after_reboot;
my $poweroff_after_halt; my $poweroff_after_halt;
...@@ -213,6 +214,7 @@ my %option_map = ( ...@@ -213,6 +214,7 @@ my %option_map = (
"SWITCH_TO_GOOD" => \$switch_to_good, "SWITCH_TO_GOOD" => \$switch_to_good,
"SWITCH_TO_TEST" => \$switch_to_test, "SWITCH_TO_TEST" => \$switch_to_test,
"POWEROFF_ON_ERROR" => \$poweroff_on_error, "POWEROFF_ON_ERROR" => \$poweroff_on_error,
"REBOOT_ON_SUCCESS" => \$reboot_on_success,
"DIE_ON_FAILURE" => \$die_on_failure, "DIE_ON_FAILURE" => \$die_on_failure,
"POWER_OFF" => \$power_off, "POWER_OFF" => \$power_off,
"POWERCYCLE_AFTER_REBOOT" => \$powercycle_after_reboot, "POWERCYCLE_AFTER_REBOOT" => \$powercycle_after_reboot,
...@@ -3552,8 +3554,10 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) { ...@@ -3552,8 +3554,10 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
die "failed to checkout $checkout"; die "failed to checkout $checkout";
} }
$no_reboot = 0; # A test may opt to not reboot the box
if ($reboot_on_success) {
$no_reboot = 0;
}
if ($test_type eq "bisect") { if ($test_type eq "bisect") {
bisect $i; bisect $i;
...@@ -3598,8 +3602,12 @@ if ($opt{"POWEROFF_ON_SUCCESS"}) { ...@@ -3598,8 +3602,12 @@ if ($opt{"POWEROFF_ON_SUCCESS"}) {
halt; halt;
} elsif ($opt{"REBOOT_ON_SUCCESS"} && !do_not_reboot) { } elsif ($opt{"REBOOT_ON_SUCCESS"} && !do_not_reboot) {
reboot_to_good; reboot_to_good;
} elsif (defined($switch_to_good)) {
# still need to get to the good kernel
run_command $switch_to_good;
} }
doprint "\n $successes of $opt{NUM_TESTS} tests were successful\n\n"; doprint "\n $successes of $opt{NUM_TESTS} tests were successful\n\n";
exit 0; exit 0;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment