mirror of
https://github.com/S3NEO/android_kernel_samsung_msm8226.git
synced 2024-11-07 03:47:13 +00:00
ktest: Allow success logs to be stored
Add a STORE_SUCCESSES option, to allow success logs to be stored, for example to double-check or otherwise post-process the test logs. Link: http://lkml.kernel.org/r/1321616131-21352-3-git-send-email-rabin@rab.in Signed-off-by: Rabin Vincent <rabin@rab.in> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
a9dd5d6317
commit
de5b6e3bf5
2 changed files with 52 additions and 34 deletions
|
@ -113,6 +113,7 @@ my $bisect_sleep_time;
|
||||||
my $patchcheck_sleep_time;
|
my $patchcheck_sleep_time;
|
||||||
my $ignore_warnings;
|
my $ignore_warnings;
|
||||||
my $store_failures;
|
my $store_failures;
|
||||||
|
my $store_successes;
|
||||||
my $test_name;
|
my $test_name;
|
||||||
my $timeout;
|
my $timeout;
|
||||||
my $booted_timeout;
|
my $booted_timeout;
|
||||||
|
@ -976,6 +977,43 @@ sub wait_for_monitor {
|
||||||
print "** Monitor flushed **\n";
|
print "** Monitor flushed **\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub save_logs {
|
||||||
|
my ($result, $basedir) = @_;
|
||||||
|
my @t = localtime;
|
||||||
|
my $date = sprintf "%04d%02d%02d%02d%02d%02d",
|
||||||
|
1900+$t[5],$t[4],$t[3],$t[2],$t[1],$t[0];
|
||||||
|
|
||||||
|
my $type = $build_type;
|
||||||
|
if ($type =~ /useconfig/) {
|
||||||
|
$type = "useconfig";
|
||||||
|
}
|
||||||
|
|
||||||
|
my $dir = "$machine-$test_type-$type-$result-$date";
|
||||||
|
|
||||||
|
$dir = "$basedir/$dir";
|
||||||
|
|
||||||
|
if (!-d $dir) {
|
||||||
|
mkpath($dir) or
|
||||||
|
die "can't create $dir";
|
||||||
|
}
|
||||||
|
|
||||||
|
my %files = (
|
||||||
|
"config" => $output_config,
|
||||||
|
"buildlog" => $buildlog,
|
||||||
|
"dmesg" => $dmesg,
|
||||||
|
"testlog" => $testlog,
|
||||||
|
);
|
||||||
|
|
||||||
|
while (my ($name, $source) = each(%files)) {
|
||||||
|
if (-f "$source") {
|
||||||
|
cp "$source", "$dir/$name" or
|
||||||
|
die "failed to copy $source";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
doprint "*** Saved info to $dir ***\n";
|
||||||
|
}
|
||||||
|
|
||||||
sub fail {
|
sub fail {
|
||||||
|
|
||||||
if ($die_on_failure) {
|
if ($die_on_failure) {
|
||||||
|
@ -1004,41 +1042,10 @@ sub fail {
|
||||||
doprint "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
|
doprint "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
|
||||||
doprint "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
|
doprint "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
|
||||||
|
|
||||||
return 1 if (!defined($store_failures));
|
if (defined($store_failures)) {
|
||||||
|
save_logs "fail", $store_failures;
|
||||||
my @t = localtime;
|
|
||||||
my $date = sprintf "%04d%02d%02d%02d%02d%02d",
|
|
||||||
1900+$t[5],$t[4],$t[3],$t[2],$t[1],$t[0];
|
|
||||||
|
|
||||||
my $type = $build_type;
|
|
||||||
if ($type =~ /useconfig/) {
|
|
||||||
$type = "useconfig";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
my $dir = "$machine-$test_type-$type-fail-$date";
|
|
||||||
my $faildir = "$store_failures/$dir";
|
|
||||||
|
|
||||||
if (!-d $faildir) {
|
|
||||||
mkpath($faildir) or
|
|
||||||
die "can't create $faildir";
|
|
||||||
}
|
|
||||||
|
|
||||||
my %files = (
|
|
||||||
"config" => $output_config,
|
|
||||||
"buildlog" => $buildlog,
|
|
||||||
"dmesg" => $dmesg,
|
|
||||||
"testlog" => $testlog,
|
|
||||||
);
|
|
||||||
|
|
||||||
while (my ($name, $source) = each(%files)) {
|
|
||||||
if (-f "$source") {
|
|
||||||
cp "$source", "$faildir/$name" or
|
|
||||||
die "failed to copy $source";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
doprint "*** Saved info to $faildir ***\n";
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1643,6 +1650,10 @@ sub success {
|
||||||
doprint "*******************************************\n";
|
doprint "*******************************************\n";
|
||||||
doprint "*******************************************\n";
|
doprint "*******************************************\n";
|
||||||
|
|
||||||
|
if (defined($store_successes)) {
|
||||||
|
save_logs "success", $store_successes;
|
||||||
|
}
|
||||||
|
|
||||||
if ($i != $opt{"NUM_TESTS"} && !do_not_reboot) {
|
if ($i != $opt{"NUM_TESTS"} && !do_not_reboot) {
|
||||||
doprint "Reboot and wait $sleep_time seconds\n";
|
doprint "Reboot and wait $sleep_time seconds\n";
|
||||||
reboot $sleep_time;
|
reboot $sleep_time;
|
||||||
|
@ -3137,6 +3148,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
|
||||||
$bisect_skip = set_test_option("BISECT_SKIP", $i);
|
$bisect_skip = set_test_option("BISECT_SKIP", $i);
|
||||||
$config_bisect_good = set_test_option("CONFIG_BISECT_GOOD", $i);
|
$config_bisect_good = set_test_option("CONFIG_BISECT_GOOD", $i);
|
||||||
$store_failures = set_test_option("STORE_FAILURES", $i);
|
$store_failures = set_test_option("STORE_FAILURES", $i);
|
||||||
|
$store_successes = set_test_option("STORE_SUCCESSES", $i);
|
||||||
$test_name = set_test_option("TEST_NAME", $i);
|
$test_name = set_test_option("TEST_NAME", $i);
|
||||||
$timeout = set_test_option("TIMEOUT", $i);
|
$timeout = set_test_option("TIMEOUT", $i);
|
||||||
$booted_timeout = set_test_option("BOOTED_TIMEOUT", $i);
|
$booted_timeout = set_test_option("BOOTED_TIMEOUT", $i);
|
||||||
|
|
|
@ -589,6 +589,12 @@
|
||||||
# (default undefined)
|
# (default undefined)
|
||||||
#STORE_FAILURES = /home/test/failures
|
#STORE_FAILURES = /home/test/failures
|
||||||
|
|
||||||
|
# Directory to store success directories on success. If this is not
|
||||||
|
# set, the .config, dmesg and bootlog will not be saved if a
|
||||||
|
# test succeeds.
|
||||||
|
# (default undefined)
|
||||||
|
#STORE_SUCCESSES = /home/test/successes
|
||||||
|
|
||||||
# Build without doing a make mrproper, or removing .config
|
# Build without doing a make mrproper, or removing .config
|
||||||
# (default 0)
|
# (default 0)
|
||||||
#BUILD_NOCLEAN = 0
|
#BUILD_NOCLEAN = 0
|
||||||
|
|
Loading…
Reference in a new issue