From 36d0b1fa0deb3c03dff4ad85fad68fc16622b37e Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 16 Nov 2009 16:27:39 +0100 Subject: selftest: Fix unexpected failure handline in Subunit/Filter.pm We should only mark the testsuite as expected failure, if there were more than 1 expected failure, but 0 unexpected failures. Before we ignored unexpected failures if there was an expected failure within a testsuite. metze --- selftest/Subunit/Filter.pm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'selftest/Subunit') diff --git a/selftest/Subunit/Filter.pm b/selftest/Subunit/Filter.pm index 93b690df8e..b7df762b1a 100644 --- a/selftest/Subunit/Filter.pm +++ b/selftest/Subunit/Filter.pm @@ -95,6 +95,10 @@ sub end_test($$$$$) $reason .= $xfail_reason; } + if ($result eq "fail" or $result eq "failure") { + $self->{fail_added}++; + } + if ($self->{strip_ok_output}) { unless ($result eq "success" or $result eq "xfail" or $result eq "skip") { print $self->{output} @@ -115,16 +119,18 @@ sub start_testsuite($;$) { my ($self, $name) = @_; Subunit::start_testsuite($name); + $self->{fail_added} = 0; $self->{xfail_added} = 0; } sub end_testsuite($$;$) { my ($self, $name, $result, $reason) = @_; - if ($self->{xfail_added} and ($result eq "fail" or $result eq "failure")) { + if ($self->{fail_added} == 0 and $self->{xfail_added} and + ($result eq "fail" or $result eq "failure")) { $result = "xfail"; } - + Subunit::end_testsuite($name, $result, $reason); } -- cgit