From 01ab492d286e40dd2118b6755223d7bdad2fec92 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 27 Aug 2007 15:15:38 +0000 Subject: r24708: Move subunit code to a separate module. (This used to be commit 4be702896d6875b463dee046b34744b0b5699519) --- source4/selftest/selftest.pl | 70 ++------------------------------------------ 1 file changed, 3 insertions(+), 67 deletions(-) (limited to 'source4/selftest/selftest.pl') diff --git a/source4/selftest/selftest.pl b/source4/selftest/selftest.pl index 3abdd641c9..de7e5c4dbc 100755 --- a/source4/selftest/selftest.pl +++ b/source4/selftest/selftest.pl @@ -114,6 +114,7 @@ use Getopt::Long; use POSIX; use Cwd qw(abs_path); use lib "$RealBin"; +use Subunit qw(parse_results); use env::Samba3; use env::Samba4; use env::Windows; @@ -212,71 +213,6 @@ sub cleanup_pcap($$$) $state->{PCAP_FILE} = undef; } -sub parse_subunit_results($$$$) -{ - my ($msg_ops, $msg_state, $statistics, $fh) = @_; - my $expected_ret = 1; - my $open_tests = {}; - - while(<$fh>) { - if (/^test: (.+)\n/) { - $msg_ops->control_msg($msg_state, $_); - $open_tests->{$1} = 1; - $msg_ops->start_test($msg_state, $1); - } elsif (/^(success|failure|skip|error): (.*?)( \[)?([ \t]*)\n/) { - $msg_ops->control_msg($msg_state, $_); - my $reason = undef; - if ($3) { - $reason = ""; - # reason may be specified in next lines - while(<$fh>) { - $msg_ops->control_msg($msg_state, $_); - if ($_ eq "]\n") { last; } else { $reason .= $_; } - } - } - my $result = $1; - if ($1 eq "success") { - delete $open_tests->{$2}; - if (expecting_failure("$msg_state->{NAME}/$2")) { - $statistics->{TESTS_UNEXPECTED_OK}++; - $msg_ops->end_test($msg_state, $2, $1, 1, $reason); - } else { - $statistics->{TESTS_EXPECTED_OK}++; - $msg_ops->end_test($msg_state, $2, $1, 0, $reason); - } - } elsif ($1 eq "failure") { - delete $open_tests->{$2}; - if (expecting_failure("$msg_state->{NAME}/$2")) { - $statistics->{TESTS_EXPECTED_FAIL}++; - $msg_ops->end_test($msg_state, $2, $1, 0, $reason); - $expected_ret = 0; - } else { - $statistics->{TESTS_UNEXPECTED_FAIL}++; - $msg_ops->end_test($msg_state, $2, $1, 1, $reason); - } - } elsif ($1 eq "skip") { - $statistics->{TESTS_SKIP}++; - delete $open_tests->{$2}; - $msg_ops->end_test($msg_state, $2, $1, 0, $reason); - } elsif ($1 eq "error") { - $statistics->{TESTS_ERROR}++; - delete $open_tests->{$2}; - $msg_ops->end_test($msg_state, $2, $1, 1, $reason); - } - } else { - $msg_ops->output_msg($msg_state, $_); - } - } - - foreach (keys %$open_tests) { - $msg_ops->end_test($msg_state, $_, "error", 1, - "was started but never finished!"); - $statistics->{TESTS_ERROR}++; - } - - return $expected_ret; -} - sub run_testsuite($$$$$$) { my ($envname, $name, $cmd, $i, $totalsuites, $msg_ops) = @_; @@ -294,8 +230,8 @@ sub run_testsuite($$$$$$) open(RESULT, "$cmd 2>&1|"); $msg_ops->start_testsuite($msg_state); - my $expected_ret = parse_subunit_results( - $msg_ops, $msg_state, $statistics, *RESULT); + my $expected_ret = parse_results( + $msg_ops, $msg_state, $statistics, *RESULT, \&expecting_failure); my $ret = close(RESULT); -- cgit