r25743: Write short summary of failed tests and skipped tests to file.
authorJelmer Vernooij <jelmer@samba.org>
Fri, 26 Oct 2007 21:28:36 +0000 (23:28 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:43:39 +0000 (05:43 +0100)
source/selftest/output/plain.pm
source/selftest/samba4_tests.sh
source/selftest/selftest.pl

index 59b89f84c952acae6f9858276a36babb21511b74..6b196090a152b7a40566a4952104b15ccb8c1400 100644 (file)
@@ -6,14 +6,16 @@ use Exporter;
 
 use strict;
 
-sub new($$$$) {
-       my ($class, $verbose, $immediate, $statistics) = @_;
+sub new($$$$$) {
+       my ($class, $summaryfile, $verbose, $immediate, $statistics) = @_;
        my $self = { 
                verbose => $verbose, 
                immediate => $immediate, 
                statistics => $statistics,
                test_output => {},
-               suitesfailed => []
+               suitesfailed => [],
+               skips => {},
+               summaryfile => $summaryfile,
        };
        bless($self, $class);
 }
@@ -102,12 +104,21 @@ sub summary($)
 {
        my ($self) = @_;
 
+       open(SUMMARY, ">$self->{summaryfile}");
+
+       if ($#{$self->{suitesfailed}} > -1) {
+               print SUMMARY "= Failed tests =\n";
+       }
+
        if (not $self->{immediate} and not $self->{verbose}) {
                foreach (@{$self->{suitesfailed}}) {
                        print "===============================================================================\n";
                        print "FAIL: $_\n";
                        print $self->{test_output}->{$_};
                        print "\n";
+
+                       print SUMMARY "= $_ =\n";
+                       print SUMMARY $self->{test_output}->{$_}."\n\n";
                }
        }
 
@@ -118,17 +129,25 @@ sub summary($)
        } else {
                print "FAILED ($self->{statistics}->{TESTS_UNEXPECTED_FAIL} failures and $self->{statistics}->{TESTS_ERROR} errors in $self->{statistics}->{SUITES_FAIL} testsuites)\n";
        }
+
+       print SUMMARY "= Skipped tests =\n";
+       foreach my $reason (keys %{$self->{skips}}) {
+               print SUMMARY "$reason\n";
+               foreach my $name (@{$self->{skips}->{$reason}}) {
+                       print SUMMARY "\t$name\n";
+               }
+               print SUMMARY "\n";
+       }
+       close(SUMMARY);
+
+       print "A summary can be found in $self->{summaryfile}\n";
 }
 
 sub skip_testsuite($$)
 {
        my ($self, $name, $reason) = @_;
 
-       if ($reason) {
-               print "SKIPPED: $name [$reason]\n";
-       } else {
-               print "SKIPPED: $name\n";
-       }
+       push (@{$self->{skips}->{$reason}}, $name);
 }
 
 1;
index 4f2a2cb44585bf9ea834a04bf917429e6932af7a..6b6a48769fce2196387e2c9b8661691e348ad9fa 100755 (executable)
@@ -271,11 +271,11 @@ WINBIND_STRUCT_TESTS=`$samba4bindir/smbtorture --list | grep "^WINBIND-STRUCT" |
 WINBIND_NDR_TESTS=`$samba4bindir/smbtorture --list | grep "^WINBIND-NDR" | xargs`
 for env in dc member; do
        for t in $WINBIND_STRUCT_TESTS; do
-               plantest "$ENVNAME:$t" $ENVNAME $samba4bindir/smbtorture $WB_OPTS //_none_/_none_ $t
+               plantest $t $env $samba4bindir/smbtorture $WB_OPTS //_none_/_none_ $t
        done
 
        for t in $WINBIND_NDR_TESTS; do
-               plantest "$ENVNAME:$t" $ENVNAME $samba4bindir/smbtorture $WB_OPTS //_none_/_none_ $t
+               plantest $t $env $samba4bindir/smbtorture $WB_OPTS //_none_/_none_ $t
        done
 done
 
index 69f60cbcf109f6601bcff1bc5234d1ac750d56af..8928dc080a6617f7dc4feb7dfd832ed26c8ebf7c 100755 (executable)
@@ -736,7 +736,7 @@ if ($opt_format eq "buildfarm") {
        $msg_ops = new output::buildfarm($statistics);
 } elsif ($opt_format eq "plain") {
        require output::plain;
-       $msg_ops = new output::plain($opt_verbose, $opt_immediate, $statistics);
+       $msg_ops = new output::plain("$prefix/summary", $opt_verbose, $opt_immediate, $statistics);
 } elsif ($opt_format eq "html") {
        require output::html;
        mkdir("test-results", 0777);