lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1313171885-18148-1-git-send-email-drjones@redhat.com>
Date:	Fri, 12 Aug 2011 19:58:05 +0200
From:	Andrew Jones <drjones@...hat.com>
To:	linux-kernel@...r.kernel.org
Cc:	drjones@...hat.com, rostedt@...dmis.org
Subject: [PATCH 07/10 v2] ktest: Introduce RERUN

Add another config variable that defines the number of additional
times a test must pass before it really passes. This is good for
bisecting boot problems, where the failure doesn't occur every time.
---
 tools/testing/ktest/ktest.pl    |   23 +++++++++++++++--------
 tools/testing/ktest/sample.conf |    7 +++++++
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
index e37c67e..28658b4 100755
--- a/tools/testing/ktest/ktest.pl
+++ b/tools/testing/ktest/ktest.pl
@@ -24,6 +24,7 @@ my %default;
 $default{"NUM_TESTS"}		= 1;
 $default{"REBOOT_TYPE"}		= "grub";
 $default{"TEST_TYPE"}		= "test";
+$default{"RERUN"}		= 0;
 $default{"BUILD_TYPE"}		= "randconfig";
 $default{"MAKE_CMD"}		= "make";
 $default{"TIMEOUT"}		= 120;
@@ -61,6 +62,7 @@ my $builddir;
 my $outputdir;
 my $output_config;
 my $test_type;
+my $rerun;
 my $build_type;
 my $build_options;
 my $pre_build;
@@ -1495,19 +1497,23 @@ sub do_run_test {
 sub do_test {
     my ($type) = @_;
     my $failed = 0;
+    my $runs = $rerun + 1; # run at least once
 
     grub_install;
-    start_monitor_and_boot or $failed = 1;
 
-    if ($failed && $in_bisect && $type ne "boot") {
-	end_monitor;
-	return -1;
-    }
+    while (!$failed && $runs--) {
+	start_monitor_and_boot or $failed = 1;
 
-    if (!$failed && $type ne "boot" && defined($run_test)) {
-	do_run_test or $failed = 1;
+	if ($failed && $in_bisect && $type ne "boot") {
+	    end_monitor;
+	    return -1;
+	}
+
+	if (!$failed && $type ne "boot" && defined($run_test)) {
+	    do_run_test or $failed = 1;
+	}
+	end_monitor;
     }
-    end_monitor;
     return !$failed;
 }
 
@@ -2807,6 +2813,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
     $outputdir = set_test_option("OUTPUT_DIR", $i);
     $builddir = set_test_option("BUILD_DIR", $i);
     $test_type = set_test_option("TEST_TYPE", $i);
+    $rerun = set_test_option("RERUN", $i);
     $build_type = set_test_option("BUILD_TYPE", $i);
     $build_options = set_test_option("BUILD_OPTIONS", $i);
     $pre_build = set_test_option("PRE_BUILD", $i);
diff --git a/tools/testing/ktest/sample.conf b/tools/testing/ktest/sample.conf
index ba430a7..8d0d33e 100644
--- a/tools/testing/ktest/sample.conf
+++ b/tools/testing/ktest/sample.conf
@@ -266,6 +266,13 @@
 # default (undefined)
 #TEST = ssh user@...hine /root/run_test
 
+# The number of times the test must pass before we really believe
+# it passes. Generally you could put a loop in the 'TEST' program,
+# but this option makes it easier to do boot testing for problems
+# that don't occur on every boot.
+# (default 0)
+#RERUN = 10
+
 # The build type is any make config type or special command
 #  (default randconfig)
 #   nobuild - skip the clean and build step
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ