From 16a69f358a38c60577e25bc0811a220f8e71d2cd Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 4 Jun 2009 13:49:11 +0200 Subject: selftest: Use external processes for filtering known failures and pretty formatting. --- selftest/output/buildfarm.pm | 5 ++++- selftest/output/plain.pm | 12 +++++++++--- selftest/output/subunit.pm | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) (limited to 'selftest/output') diff --git a/selftest/output/buildfarm.pm b/selftest/output/buildfarm.pm index f4daf69010..701444359b 100644 --- a/selftest/output/buildfarm.pm +++ b/selftest/output/buildfarm.pm @@ -29,9 +29,10 @@ use BuildFarm; use strict; sub new($$$) { - my ($class) = @_; + my ($class, $statistics) = @_; my $self = { test_output => {}, + statistics => $statistics, last_time => 0, start_time => undef, }; @@ -111,6 +112,8 @@ sub summary($) my ($self) = @_; BuildFarm::summary($self->{last_time} - $self->{start_time}); + + print "TEST STATUS: $self->{statistics}->{SUITES_FAIL}\n"; } sub skip_testsuite($$$) diff --git a/selftest/output/plain.pm b/selftest/output/plain.pm index 20e5abc253..9d92a3e071 100644 --- a/selftest/output/plain.pm +++ b/selftest/output/plain.pm @@ -87,8 +87,10 @@ sub output_msg($$) require FileHandle; print $output; STDOUT->flush(); - } else { + } elsif (defined($self->{NAME})) { $self->{test_output}->{$self->{NAME}} .= $output; + } else { + print $output; } } @@ -96,7 +98,7 @@ sub control_msg($$) { my ($self, $output) = @_; - $self->output_msg($output); + #$self->output_msg($output); } sub end_testsuite($$$$$) @@ -157,6 +159,7 @@ sub end_test($$$$$) $self->{test_output}->{$self->{NAME}} = ""; if (not $self->{immediate}) { if ($result eq "failure") { print "f"; } + elsif ($result eq "xfail") { print "X"; } elsif ($result eq "skip") { print "s"; } elsif ($result eq "success") { print "."; } else { print "?($result)"; } @@ -231,10 +234,13 @@ sub summary($) } -sub skip_testsuite($$) +sub skip_testsuite($$$) { my ($self, $name, $reason) = @_; + unless (defined($reason)) { + $reason = "UNKNOWN"; + } push (@{$self->{skips}->{$reason}}, $name); if ($self->{totalsuites}) { diff --git a/selftest/output/subunit.pm b/selftest/output/subunit.pm index a7ca5d943d..5bce99f68f 100644 --- a/selftest/output/subunit.pm +++ b/selftest/output/subunit.pm @@ -95,7 +95,7 @@ sub skip_testsuite($$$$) my ($self, $name, $reason) = @_; Subunit::start_test($name); - Subunit::end_test($name, "skip"); + Subunit::end_test($name, "skip", $reason); } 1; -- cgit