selftest/output/plain.pm: report the testuite name on error
[ira/wip.git] / selftest / output / plain.pm
index 9d92a3e071577644bd647851fdc6550be4c648bf..066cacfb2941414cf4cd45f6af5e5fcd92400633 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 # Plain text output for selftest
-# Copyright (C) 2008 Jelmer Vernooij <jelmer@samba.org>
+# Copyright (C) 2008-2009 Jelmer Vernooij <jelmer@samba.org>
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -41,6 +41,12 @@ sub new($$$$$$$) {
        bless($self, $class);
 }
 
+sub testsuite_count($$)
+{
+       my ($self, $count) = @_;
+       $self->{totalsuites} = $count;
+}
+
 sub report_time($$)
 {
        my ($self, $time) = @_;
@@ -101,27 +107,29 @@ sub control_msg($$)
        #$self->output_msg($output);
 }
 
-sub end_testsuite($$$$$)
+sub end_testsuite($$$$)
 {
-       my ($self, $name, $result, $unexpected, $reason) = @_;
+       my ($self, $name, $result, $reason) = @_;
        my $out = "";
+       my $unexpected = 0;
 
-       if ($unexpected) {
-               if ($result eq "success" and not defined($reason)) {
-                       $reason = "Expected negative exit code, got positive exit code";
-               } 
-               $self->output_msg("ERROR: $reason\n");
-               push (@{$self->{suitesfailed}}, $name);
-       } else {
-               $self->{suites_ok}++;
+       if (not defined($self->{test_output}->{$name})) {
+               print "no output for name[$name]\n";
        }
 
-       if ($unexpected and $self->{immediate} and not $self->{verbose}) {
-               $out .= $self->{test_output}->{$name};
+       if ($result eq "success" or $result eq "xfail") {
+               $self->{suites_ok}++;
+       } else {
+               $self->output_msg("ERROR: Testsuite[$name]\nREASON: $reason\n");
+               push (@{$self->{suitesfailed}}, $name);
+               if ($self->{immediate} and not $self->{verbose}) {
+                       $out .= $self->{test_output}->{$name};
+               }
+               $unexpected = 1;
        }
 
        if (not $self->{immediate}) {
-               if (not $unexpected) {
+               unless($unexpected) {
                        $out .= " ok\n";
                } else {
                        $out .= " " . uc($result) . "\n";
@@ -133,26 +141,13 @@ sub end_testsuite($$$$$)
 
 sub start_test($$$)
 {
-       my ($self, $parents, $testname) = @_;
-
-       if ($#$parents == -1) {
-               $self->start_testsuite($testname);
-       }
+       my ($self, $testname) = @_;
 }
 
 sub end_test($$$$$)
 {
-       my ($self, $parents, $testname, $result, $unexpected, $reason) = @_;
+       my ($self, $testname, $result, $unexpected, $reason) = @_;
        
-       if ($#$parents == -1) {
-               if ($result eq "skip") {
-                       $self->skip_testsuite($testname, $reason);
-               } else {
-                       $self->end_testsuite($testname, $result, $unexpected, $reason);
-               }
-               return;
-       }
-
        my $append = "";
 
        unless ($unexpected) {
@@ -167,9 +162,7 @@ sub end_test($$$$$)
                return;
        }
 
-       my $fullname = join(".", @$parents).".$testname";
-
-       $append = "UNEXPECTED($result): $testname ($fullname)\n";
+       $append = "UNEXPECTED($result): $testname\n";
 
        $self->{test_output}->{$self->{NAME}} .= $append;