Re: [PATCH 1/3] ktest: save test output

From: Steven Rostedt
Date: Fri Nov 18 2011 - 10:36:44 EST


On Fri, 2011-11-18 at 17:05 +0530, Rabin Vincent wrote:
> The test output may contain useful information; save it along with the
> already-saved buildlog, dmesg, and .config.

Makes sense.

>
> Signed-off-by: Rabin Vincent <rabin@xxxxxx>
> ---
> tools/testing/ktest/ktest.pl | 30 +++++++++++++++++++-----------
> 1 files changed, 19 insertions(+), 11 deletions(-)
>
> diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
> index 30e2bef..3185e0a 100755
> --- a/tools/testing/ktest/ktest.pl
> +++ b/tools/testing/ktest/ktest.pl
> @@ -103,6 +103,7 @@ my $in_patchcheck = 0;
> my $run_test;
> my $redirect;
> my $buildlog;
> +my $testlog;
> my $dmesg;
> my $monitor_fp;
> my $monitor_pid;
> @@ -1005,17 +1006,19 @@ sub fail {
> mkpath($faildir) or
> die "can't create $faildir";
> }
> - if (-f "$output_config") {
> - cp "$output_config", "$faildir/config" or
> - die "failed to copy .config";
> - }
> - if (-f $buildlog) {
> - cp $buildlog, "$faildir/buildlog" or
> - die "failed to move $buildlog";
> - }
> - if (-f $dmesg) {
> - cp $dmesg, "$faildir/dmesg" or
> - die "failed to move $dmesg";
> +
> + 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";
> + }

Nice little clean up. You can see that I think more C like than Perl. I
usually don't like "perlisms" but this is a clean perl fix that isn't
too complex to understand by non perl folks.

> }
>
> doprint "*** Saved info to $faildir ***\n";
> @@ -1653,7 +1656,10 @@ sub child_run_test {
> $poweroff_on_error = 0;
> $die_on_failure = 1;
>
> + $redirect = "$testlog";
> run_command $run_test or $failed = 1;
> + undef $redirect;
> +
> exit $failed;
> }
>
> @@ -3153,6 +3159,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
> $target = "$ssh_user\@$machine";
>
> $buildlog = "$tmpdir/buildlog-$machine";
> + $testlog = "$tmpdir/testlog-$machine";
> $dmesg = "$tmpdir/dmesg-$machine";
> $make = "$makecmd O=$outputdir";
> $output_config = "$outputdir/.config";
> @@ -3189,6 +3196,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
>
> unlink $dmesg;
> unlink $buildlog;
> + unlink $testlog;
>
> if (defined($addconfig)) {
> my $min = $minconfig;

I'll pull it in, thanks!

-- Steve


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