Re: [PATCH 10/10] ktest: Introduce FAILURE_LINE

From: Steven Rostedt
Date: Fri Aug 12 2011 - 13:03:46 EST


On Fri, 2011-08-12 at 15:32 +0200, Andrew Jones wrote:
> This is the counterpart to SUCCESS_LINE. In some cases the boot will
> succeed, but the console will display a message that means that the
> boot test failed (such as a warning) while it boots. Use this option
> to detect this and fail the test.
>
> Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx>
> ---
> tools/testing/ktest/ktest.pl | 7 +++++++
> tools/testing/ktest/sample.conf | 7 +++++++
> 2 files changed, 14 insertions(+), 0 deletions(-)
>
> diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
> index ac0e688..35af7e2 100755
> --- a/tools/testing/ktest/ktest.pl
> +++ b/tools/testing/ktest/ktest.pl
> @@ -122,6 +122,7 @@ my $booted_timeout;
> my $detect_triplefault;
> my $console;
> my $success_line;
> +my $failure_line;
> my $stop_after_success;
> my $stop_after_failure;
> my $stop_test_after;
> @@ -1015,6 +1016,11 @@ sub monitor {
> # we are not guaranteed to get a full line
> $full_line .= $line;
>
> + if (defined($failure_line) && $full_line =~ /$failure_line/) {
> + $bug = 1;
> + last;

Instead of last, it is better to use:

$failure_start = time;

Otherwise you may lose out any informational messages that print after
it (call stack). If the user wants to break out early, they can make the
failure time shorter.

-- Steve


> + }
> +
> if ($full_line =~ /$success_line/) {
> $booted = 1;
> $success_start = time;
> @@ -2872,6 +2878,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
> $console = set_test_option("CONSOLE", $i);
> $detect_triplefault = set_test_option("DETECT_TRIPLE_FAULT", $i);
> $success_line = set_test_option("SUCCESS_LINE", $i);
> + $failure_line = set_test_option("FAILURE_LINE", $i);
> $stop_after_success = set_test_option("STOP_AFTER_SUCCESS", $i);
> $stop_after_failure = set_test_option("STOP_AFTER_FAILURE", $i);
> $stop_test_after = set_test_option("STOP_TEST_AFTER", $i);
> diff --git a/tools/testing/ktest/sample.conf b/tools/testing/ktest/sample.conf
> index 36521c8..98df23c 100644
> --- a/tools/testing/ktest/sample.conf
> +++ b/tools/testing/ktest/sample.conf
> @@ -421,6 +421,13 @@
> # (default "login:")
> #SUCCESS_LINE = login:
>
> +# Line indicating a failed boot. This is what the line contains, not
> +# the entire line. If you need the entire line to match, then use
> +# regular expression syntax like with SUCCESS_LINE. This is useful
> +# for testing boot issues that don't stop the boot from completing.
> +# (default undefined)
> +#FAILURE_LINE = WARNING
> +
> # In case the console constantly fills the screen, having
> # a specified time to stop the test after success is recommended.
> # (in seconds)


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