提交 75c3fda7 编写于 作者: S Steven Rostedt 提交者: Steven Rostedt

ktest: New features reboot on error, make options

REBOOT_ON_ERROR to reboot the box on error

BUILD_OPTIONS to add options to the make build (like -j40)

Added "useconfig:<config>".
Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
上级 5c42fc5b
master alk-4.19.24 alk-4.19.30 alk-4.19.34 alk-4.19.36 alk-4.19.43 alk-4.19.48 alk-4.19.57 ck-4.19.67 ck-4.19.81 ck-4.19.91 github/fork/deepanshu1422/fix-typo-in-comment github/fork/haosdent/fix-typo linux-next v4.19.91 v4.19.90 v4.19.89 v4.19.88 v4.19.87 v4.19.86 v4.19.85 v4.19.84 v4.19.83 v4.19.82 v4.19.81 v4.19.80 v4.19.79 v4.19.78 v4.19.77 v4.19.76 v4.19.75 v4.19.74 v4.19.73 v4.19.72 v4.19.71 v4.19.70 v4.19.69 v4.19.68 v4.19.67 v4.19.66 v4.19.65 v4.19.64 v4.19.63 v4.19.62 v4.19.61 v4.19.60 v4.19.59 v4.19.58 v4.19.57 v4.19.56 v4.19.55 v4.19.54 v4.19.53 v4.19.52 v4.19.51 v4.19.50 v4.19.49 v4.19.48 v4.19.47 v4.19.46 v4.19.45 v4.19.44 v4.19.43 v4.19.42 v4.19.41 v4.19.40 v4.19.39 v4.19.38 v4.19.37 v4.19.36 v4.19.35 v4.19.34 v4.19.33 v4.19.32 v4.19.31 v4.19.30 v4.19.29 v4.19.28 v4.19.27 v4.19.26 v4.19.25 v4.19.24 v4.19.23 v4.19.22 v4.19.21 v4.19.20 v4.19.19 v4.19.18 v4.19.17 v4.19.16 v4.19.15 v4.19.14 v4.19.13 v4.19.12 v4.19.11 v4.19.10 v4.19.9 v4.19.8 v4.19.7 v4.19.6 v4.19.5 v4.19.4 v4.19.3 v4.19.2 v4.19.1 v4.19 v4.19-rc8 v4.19-rc7 v4.19-rc6 v4.19-rc5 v4.19-rc4 v4.19-rc3 v4.19-rc2 v4.19-rc1 ck-release-21 ck-release-20 ck-release-19.2 ck-release-19.1 ck-release-19 ck-release-18 ck-release-17.2 ck-release-17.1 ck-release-17 ck-release-16 ck-release-15.1 ck-release-15 ck-release-14 ck-release-13.2 ck-release-13 ck-release-12 ck-release-11 ck-release-10 ck-release-9 ck-release-7 alk-release-15 alk-release-14 alk-release-13.2 alk-release-13 alk-release-12 alk-release-11 alk-release-10 alk-release-9 alk-release-7
无相关合并请求
......@@ -19,8 +19,10 @@ $opt{"TIMEOUT"} = 50;
$opt{"TMP_DIR"} = "/tmp/autotest";
$opt{"SLEEP_TIME"} = 60; # sleep time between tests
$opt{"BUILD_NOCLEAN"} = 0;
$opt{"REBOOT_ON_ERROR"} = 0;
$opt{"POWEROFF_ON_ERROR"} = 0;
$opt{"POWEROFF_ON_SUCCESS"} = 0;
$opt{"BUILD_OPTIONS"} = "";
my $version;
my $install_mods;
......@@ -63,10 +65,15 @@ sub doprint {
sub dodie {
doprint "CRITICAL FAILURE... ", @_;
if ($opt{"POWEROFF_ON_ERROR"} && defined($opt{"POWER_OFF"})) {
if ($opt{"REBOOT_ON_ERROR"}) {
doprint "REBOOTING\n";
`$opt{"POWER_CYCLE"}`;
} elsif ($opt{"POWEROFF_ON_ERROR"} && defined($opt{"POWER_OFF"})) {
doprint "POWERING OFF\n";
`$opt{"POWER_OFF"}`;
}
die @_;
}
......@@ -125,7 +132,7 @@ sub wait_for_input
return $line;
}
sub reboot {
sub reboot_to {
run_command "ssh $target '(echo \"savedefault --default=$grub_number --once\" | grub --batch; reboot)'";
}
......@@ -138,7 +145,7 @@ sub monitor {
my $skip_call_trace = 0;
if ($doopen2) {
$pid = open2(\*IN, \*OUT, $opt{CONSOLE});
$pid = open2(\*IN, \*OUT, $opt{"CONSOLE"});
if ($pid < 0) {
dodie "Failed to connect to the console";
}
......@@ -161,7 +168,7 @@ sub monitor {
$line = wait_for_input(\*IN, 5);
} while (defined($line));
reboot;
reboot_to;
for (;;) {
......@@ -229,7 +236,7 @@ sub install {
}
# would be nice if scp -r did not follow symbolic links
if (run_command "cd $opt{TMP_DIR}; tar -cjf $modtar lib/modules/$version") {
if (run_command "cd $opt{TMP_DIR} && tar -cjf $modtar lib/modules/$version") {
dodie "making tarball";
}
......@@ -253,9 +260,20 @@ sub build {
my $defconfig = "";
my $append = "";
if ($type =~ /^useconfig:(.*)/) {
if (run_command "cp $1 $opt{OUTPUT_DIR}/.config") {
dodie "could not copy $1 to .config";
}
$type = "oldconfig";
}
# old config can ask questions
if ($type eq "oldconfig") {
$append = "yes ''|";
# allow for empty configs
run_command "touch $opt{OUTPUT_DIR}/.config";
if (run_command "mv $opt{OUTPUT_DIR}/.config $opt{OUTPUT_DIR}/config_temp") {
dodie "moving .config";
}
......@@ -293,6 +311,21 @@ sub build {
}
}
sub reboot {
# try to reboot normally
if (run_command "ssh $target reboot") {
# nope? power cycle it.
run_command "$opt{POWER_CYCLE}";
}
}
sub halt {
if ((run_command "ssh $target halt") or defined($opt{"POWER_OFF"})) {
# nope? the zap it!
run_command "$opt{POWER_OFF}";
}
}
read_config $ARGV[0];
# mandatory configs
......@@ -301,6 +334,7 @@ die "SSH_USER not defined\n" if (!defined($opt{"SSH_USER"}));
die "BUILD_DIR not defined\n" if (!defined($opt{"BUILD_DIR"}));
die "OUTPUT_DIR not defined\n" if (!defined($opt{"OUTPUT_DIR"}));
die "BUILD_TARGET not defined\n" if (!defined($opt{"BUILD_TARGET"}));
die "TARGET_IMAGE not defined\n" if (!defined($opt{"TARGET_IMAGE"}));
die "POWER_CYCLE not defined\n" if (!defined($opt{"POWER_CYCLE"}));
die "CONSOLE not defined\n" if (!defined($opt{"CONSOLE"}));
die "LOCALVERSION not defined\n" if (!defined($opt{"LOCALVERSION"}));
......@@ -388,20 +422,16 @@ for (my $i = 1; $i <= $opt{"NUM_BUILDS"}; $i++) {
doprint "*******************************************\n";
doprint "*******************************************\n";
# try to reboot normally
if (run_command "ssh $target reboot") {
# nope? power cycle it.
run_command "$opt{POWER_CYCLE}";
}
if ($i != $opt{"NUM_BUILDS"}) {
reboot;
sleep "$opt{SLEEP_TIME}";
}
}
if ($opt{"POWEROFF_ON_SUCCESS"}) {
if (run_command "ssh $target halt" && defined($opt{"POWER_OFF"})) {
# nope? the zap it!
run_command "$opt{POWER_OFF}";
}
halt;
} else {
reboot;
}
exit 0;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部