ktest for v3.4
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJPafMcAAoJEIy3vGnGbaoALNUQAMZ8G+WDXD/RKtsO4V41rWOa vCCUQ6BDTld53fLdTMwYBH9Uev9LLsQ/itOp8ne/apVn5DCghqm1rAfd5sIk9TaQ zqnvF8QvZXnPCbUZe8mXH4ki2Shh+mvxkucAtsC9C4RBcu8QloIy7UGZPioEVxYj TiadqKNicvSSIvEy3fM98qzbVu+GZZpZwfH0asiWV4rxLLovWNn2Ly7BGPLLHWa8 iamWVyG9QS51MzyEAxo4LBWGA4aK0k6+W5QxK2SmruA7g0YWzBf3DU5CfsXncj43 eOs/aVkBApPPIJ/VQDuhbdHAY+wIQAItojVAbSdebv0xC4SDtLbHHAgMVNtgLOIa ysfLI+h8APbOh4nyqwNh5FuSnew4QvR1ZW47bZHmN7K7NjmcJ93geEvt//7eQnxz X0iWJSCwAOyKORgsPU0lZgGM1lD50Qtmt1IZX5T87ksDSIhx5Lk/pAQo43nByj3g e53swGxIQyaUqJwQ5ItJh7e8jQBZ6eyZDEWslro2S6uV9MFJnrH+cJJSk4LqO94y dTu4uk/aCyXH3fbk1qfincfn5bzCvlrbSMsldbU6ODLFqyr8R1I8kcTZy/2k3i4q eURDh94D6HEuu/QL1NvB5dKkuOfxmH3dr3S/5xv/IfIxruC+N+jGns0rmoFiE0KO pnThls+OFAXhrw7YhV2d =2NU4 -----END PGP SIGNATURE----- Merge tag 'ktest-v3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest Pull ktest changes from Steven Rostedt. * tag 'ktest-v3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest: ktest: Allow a test to override REBOOT_ON_SUCCESS ktest: Fix SWITCH_TO_GOOD to also reboot the machine ktest: Add SCP_TO_TARGET_INSTALL option ktest: Add warning when bugs are ignored ktest: Add INSTALL_MOD_STRIP=1 when installing modules
This commit is contained in:
commit
f0a5ec0e8d
|
@ -46,6 +46,7 @@ my %default = (
|
||||||
"DIE_ON_FAILURE" => 1,
|
"DIE_ON_FAILURE" => 1,
|
||||||
"SSH_EXEC" => "ssh \$SSH_USER\@\$MACHINE \$SSH_COMMAND",
|
"SSH_EXEC" => "ssh \$SSH_USER\@\$MACHINE \$SSH_COMMAND",
|
||||||
"SCP_TO_TARGET" => "scp \$SRC_FILE \$SSH_USER\@\$MACHINE:\$DST_FILE",
|
"SCP_TO_TARGET" => "scp \$SRC_FILE \$SSH_USER\@\$MACHINE:\$DST_FILE",
|
||||||
|
"SCP_TO_TARGET_INSTALL" => "\${SCP_TO_TARGET}",
|
||||||
"REBOOT" => "ssh \$SSH_USER\@\$MACHINE reboot",
|
"REBOOT" => "ssh \$SSH_USER\@\$MACHINE reboot",
|
||||||
"STOP_AFTER_SUCCESS" => 10,
|
"STOP_AFTER_SUCCESS" => 10,
|
||||||
"STOP_AFTER_FAILURE" => 60,
|
"STOP_AFTER_FAILURE" => 60,
|
||||||
|
@ -86,11 +87,13 @@ 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;
|
||||||
my $ssh_exec;
|
my $ssh_exec;
|
||||||
my $scp_to_target;
|
my $scp_to_target;
|
||||||
|
my $scp_to_target_install;
|
||||||
my $power_off;
|
my $power_off;
|
||||||
my $grub_menu;
|
my $grub_menu;
|
||||||
my $grub_number;
|
my $grub_number;
|
||||||
|
@ -211,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,
|
||||||
|
@ -243,6 +247,7 @@ my %option_map = (
|
||||||
"BUILD_TARGET" => \$build_target,
|
"BUILD_TARGET" => \$build_target,
|
||||||
"SSH_EXEC" => \$ssh_exec,
|
"SSH_EXEC" => \$ssh_exec,
|
||||||
"SCP_TO_TARGET" => \$scp_to_target,
|
"SCP_TO_TARGET" => \$scp_to_target,
|
||||||
|
"SCP_TO_TARGET_INSTALL" => \$scp_to_target_install,
|
||||||
"CHECKOUT" => \$checkout,
|
"CHECKOUT" => \$checkout,
|
||||||
"TARGET_IMAGE" => \$target_image,
|
"TARGET_IMAGE" => \$target_image,
|
||||||
"LOCALVERSION" => \$localversion,
|
"LOCALVERSION" => \$localversion,
|
||||||
|
@ -1113,7 +1118,6 @@ sub reboot_to_good {
|
||||||
|
|
||||||
if (defined($switch_to_good)) {
|
if (defined($switch_to_good)) {
|
||||||
run_command $switch_to_good;
|
run_command $switch_to_good;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
reboot $time;
|
reboot $time;
|
||||||
|
@ -1349,8 +1353,7 @@ sub run_ssh {
|
||||||
}
|
}
|
||||||
|
|
||||||
sub run_scp {
|
sub run_scp {
|
||||||
my ($src, $dst) = @_;
|
my ($src, $dst, $cp_scp) = @_;
|
||||||
my $cp_scp = $scp_to_target;
|
|
||||||
|
|
||||||
$cp_scp =~ s/\$SRC_FILE/$src/g;
|
$cp_scp =~ s/\$SRC_FILE/$src/g;
|
||||||
$cp_scp =~ s/\$DST_FILE/$dst/g;
|
$cp_scp =~ s/\$DST_FILE/$dst/g;
|
||||||
|
@ -1358,6 +1361,22 @@ sub run_scp {
|
||||||
return run_command "$cp_scp";
|
return run_command "$cp_scp";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub run_scp_install {
|
||||||
|
my ($src, $dst) = @_;
|
||||||
|
|
||||||
|
my $cp_scp = $scp_to_target_install;
|
||||||
|
|
||||||
|
return run_scp($src, $dst, $cp_scp);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub run_scp_mod {
|
||||||
|
my ($src, $dst) = @_;
|
||||||
|
|
||||||
|
my $cp_scp = $scp_to_target;
|
||||||
|
|
||||||
|
return run_scp($src, $dst, $cp_scp);
|
||||||
|
}
|
||||||
|
|
||||||
sub get_grub_index {
|
sub get_grub_index {
|
||||||
|
|
||||||
if ($reboot_type ne "grub") {
|
if ($reboot_type ne "grub") {
|
||||||
|
@ -1460,6 +1479,7 @@ sub get_sha1 {
|
||||||
sub monitor {
|
sub monitor {
|
||||||
my $booted = 0;
|
my $booted = 0;
|
||||||
my $bug = 0;
|
my $bug = 0;
|
||||||
|
my $bug_ignored = 0;
|
||||||
my $skip_call_trace = 0;
|
my $skip_call_trace = 0;
|
||||||
my $loops;
|
my $loops;
|
||||||
|
|
||||||
|
@ -1531,9 +1551,13 @@ sub monitor {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($full_line =~ /call trace:/i) {
|
if ($full_line =~ /call trace:/i) {
|
||||||
if (!$ignore_errors && !$bug && !$skip_call_trace) {
|
if (!$bug && !$skip_call_trace) {
|
||||||
$bug = 1;
|
if ($ignore_errors) {
|
||||||
$failure_start = time;
|
$bug_ignored = 1;
|
||||||
|
} else {
|
||||||
|
$bug = 1;
|
||||||
|
$failure_start = time;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1595,6 +1619,10 @@ sub monitor {
|
||||||
fail "failed - never got a boot prompt." and return 0;
|
fail "failed - never got a boot prompt." and return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($bug_ignored) {
|
||||||
|
doprint "WARNING: Call Trace detected but ignored due to IGNORE_ERRORS=1\n";
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1621,7 +1649,7 @@ sub install {
|
||||||
|
|
||||||
my $cp_target = eval_kernel_version $target_image;
|
my $cp_target = eval_kernel_version $target_image;
|
||||||
|
|
||||||
run_scp "$outputdir/$build_target", "$cp_target" or
|
run_scp_install "$outputdir/$build_target", "$cp_target" or
|
||||||
dodie "failed to copy image";
|
dodie "failed to copy image";
|
||||||
|
|
||||||
my $install_mods = 0;
|
my $install_mods = 0;
|
||||||
|
@ -1643,7 +1671,7 @@ sub install {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
run_command "$make INSTALL_MOD_PATH=$tmpdir modules_install" or
|
run_command "$make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$tmpdir modules_install" or
|
||||||
dodie "Failed to install modules";
|
dodie "Failed to install modules";
|
||||||
|
|
||||||
my $modlib = "/lib/modules/$version";
|
my $modlib = "/lib/modules/$version";
|
||||||
|
@ -1656,7 +1684,7 @@ sub install {
|
||||||
run_command "cd $tmpdir && tar -cjf $modtar lib/modules/$version" or
|
run_command "cd $tmpdir && tar -cjf $modtar lib/modules/$version" or
|
||||||
dodie "making tarball";
|
dodie "making tarball";
|
||||||
|
|
||||||
run_scp "$tmpdir/$modtar", "/tmp" or
|
run_scp_mod "$tmpdir/$modtar", "/tmp" or
|
||||||
dodie "failed to copy modules";
|
dodie "failed to copy modules";
|
||||||
|
|
||||||
unlink "$tmpdir/$modtar";
|
unlink "$tmpdir/$modtar";
|
||||||
|
@ -3526,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;
|
||||||
|
@ -3572,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;
|
||||||
|
|
|
@ -710,10 +710,18 @@
|
||||||
# The variables SSH_USER, MACHINE and SSH_COMMAND are defined
|
# The variables SSH_USER, MACHINE and SSH_COMMAND are defined
|
||||||
#SSH_EXEC = ssh $SSH_USER@$MACHINE $SSH_COMMAND";
|
#SSH_EXEC = ssh $SSH_USER@$MACHINE $SSH_COMMAND";
|
||||||
|
|
||||||
# The way to copy a file to the target
|
# The way to copy a file to the target (install and modules)
|
||||||
# (default scp $SRC_FILE $SSH_USER@$MACHINE:$DST_FILE)
|
# (default scp $SRC_FILE $SSH_USER@$MACHINE:$DST_FILE)
|
||||||
# The variables SSH_USER, MACHINE, SRC_FILE and DST_FILE are defined.
|
# The variables SSH_USER, MACHINE are defined by the config
|
||||||
#SCP_TO_TARGET = scp $SRC_FILE $SSH_USER@$MACHINE:$DST_FILE
|
# SRC_FILE and DST_FILE are ktest internal variables and
|
||||||
|
# should only have '$' and not the '${}' notation.
|
||||||
|
# (default scp $SRC_FILE ${SSH_USER}@${MACHINE}:$DST_FILE)
|
||||||
|
#SCP_TO_TARGET = echo skip scp for $SRC_FILE $DST_FILE
|
||||||
|
|
||||||
|
# If install needs to be different than modules, then this
|
||||||
|
# option will override the SCP_TO_TARGET for installation.
|
||||||
|
# (default ${SCP_TO_TARGET} )
|
||||||
|
#SCP_TO_TARGET_INSTALL = scp $SRC_FILE tftp@tftpserver:$DST_FILE
|
||||||
|
|
||||||
# The nice way to reboot the target
|
# The nice way to reboot the target
|
||||||
# (default ssh $SSH_USER@$MACHINE reboot)
|
# (default ssh $SSH_USER@$MACHINE reboot)
|
||||||
|
|
Loading…
Reference in New Issue