|
@@ -113,6 +113,7 @@ my $bisect_sleep_time;
|
|
|
my $patchcheck_sleep_time;
|
|
|
my $ignore_warnings;
|
|
|
my $store_failures;
|
|
|
+my $store_successes;
|
|
|
my $test_name;
|
|
|
my $timeout;
|
|
|
my $booted_timeout;
|
|
@@ -976,6 +977,43 @@ sub wait_for_monitor {
|
|
|
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 {
|
|
|
|
|
|
if ($die_on_failure) {
|
|
@@ -1004,40 +1042,9 @@ sub fail {
|
|
|
doprint "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
|
|
|
doprint "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
|
|
|
|
|
|
- return 1 if (!defined($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";
|
|
|
+ if (defined($store_failures)) {
|
|
|
+ save_logs "fail", $store_failures;
|
|
|
+ }
|
|
|
|
|
|
return 1;
|
|
|
}
|
|
@@ -1643,6 +1650,10 @@ sub success {
|
|
|
doprint "*******************************************\n";
|
|
|
doprint "*******************************************\n";
|
|
|
|
|
|
+ if (defined($store_successes)) {
|
|
|
+ save_logs "success", $store_successes;
|
|
|
+ }
|
|
|
+
|
|
|
if ($i != $opt{"NUM_TESTS"} && !do_not_reboot) {
|
|
|
doprint "Reboot and wait $sleep_time seconds\n";
|
|
|
reboot $sleep_time;
|
|
@@ -3137,6 +3148,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
|
|
|
$bisect_skip = set_test_option("BISECT_SKIP", $i);
|
|
|
$config_bisect_good = set_test_option("CONFIG_BISECT_GOOD", $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);
|
|
|
$timeout = set_test_option("TIMEOUT", $i);
|
|
|
$booted_timeout = set_test_option("BOOTED_TIMEOUT", $i);
|