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: <1321630835.3533.50.camel@frodo>
Date:	Fri, 18 Nov 2011 10:40:35 -0500
From:	Steven Rostedt <rostedt@...dmis.org>
To:	Rabin Vincent <rabin@....in>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/3] ktest: allow success logs to be stored

On Fri, 2011-11-18 at 17:05 +0530, Rabin Vincent wrote:
> Add a STORE_SUCCESSES option, to allow success logs to be stored, for
> example to double-check or otherwise post-process the test logs.

Looks good. I'll give it a test run and put it into the 3.3 queue.

Thanks!

-- Steve

> 
> Signed-off-by: Rabin Vincent <rabin@....in>
> ---
>  tools/testing/ktest/ktest.pl    |   80 ++++++++++++++++++++++----------------
>  tools/testing/ktest/sample.conf |    6 +++
>  2 files changed, 52 insertions(+), 34 deletions(-)
> 
> diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
> index e93c21c..6ef104e 100755
> --- a/tools/testing/ktest/ktest.pl
> +++ b/tools/testing/ktest/ktest.pl
> @@ -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);
> diff --git a/tools/testing/ktest/sample.conf b/tools/testing/ktest/sample.conf
> index dbedfa1..42e0eb9 100644
> --- a/tools/testing/ktest/sample.conf
> +++ b/tools/testing/ktest/sample.conf
> @@ -589,6 +589,12 @@
>  # (default undefined)
>  #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
>  # (default 0)
>  #BUILD_NOCLEAN = 0


--
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