From c021c7d648944c1e4fed3946470c9b74591a4278 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 26 Aug 2007 23:22:54 +0000 Subject: r24687: Registry tests are succeeding now so remove from known failure list, add summary page with failures and skipped tests to html output. (This used to be commit 227659c2c05f76a37e1c9d20dc3f8b6966a111df) --- source4/samba4-knownfail | 1 - source4/selftest/output/html.pm | 121 ++++++++++++++++++++++++++++++---------- source4/selftest/selftest.pl | 4 +- 3 files changed, 93 insertions(+), 33 deletions(-) (limited to 'source4') diff --git a/source4/samba4-knownfail b/source4/samba4-knownfail index e7f4560ec1..465c463ed2 100644 --- a/source4/samba4-knownfail +++ b/source4/samba4-knownfail @@ -1,4 +1,3 @@ -LOCAL-REGISTRY/(nt4|ldb|dir) # Not implemented yet LOCAL-RESOLVE/async LOCAL-ICONV/next_codepoint() BASE-DELAYWRITE/finfo update on close diff --git a/source4/selftest/output/html.pm b/source4/selftest/output/html.pm index 3b95a3d9b8..383556903d 100644 --- a/source4/selftest/output/html.pm +++ b/source4/selftest/output/html.pm @@ -14,22 +14,25 @@ sub new($$$$) { statistics => $statistics, active_test => undef, local_statistics => {}, - msg => "" + msg => "", + error_summary => { + skip => [], + expected_success => [], + unexpected_success => [], + expected_failure => [], + unexpected_failure => [], + error => [] + } }; link("selftest/output/testresults.css", "$dirname/testresults.css"); open(INDEX, ">$dirname/index.html"); - print INDEX "\n"; - print INDEX "\n"; - print INDEX " Samba Testsuite Run\n"; - print INDEX " \n"; - print INDEX "\n"; - print INDEX "\n"; - print INDEX "\n"; - print INDEX " \n"; - print INDEX " \n"; - print INDEX "
Samba Testsuite Run
\n"; + bless($self, $class); + + $self->print_html_header("Samba Testsuite Run", *INDEX); + print INDEX "
"; print INDEX " \n"; print INDEX " \n"; @@ -38,7 +41,32 @@ sub new($$$$) { print INDEX " \n"; print INDEX " \n"; - bless($self, $class); + return $self; +} + +sub print_html_header($$$) +{ + my ($self, $title, $fh) = @_; + + print $fh "\n"; + print $fh "\n"; + print $fh " $title\n"; + print $fh " \n"; + print $fh "\n"; + print $fh "\n"; + print $fh "
Result
\n"; + print $fh " \n"; + print $fh " \n"; + print $fh "
$title
\n"; +} + +sub print_html_footer($$) +{ + my ($self, $fh) = @_; + + print $fh "
\n"; + print $fh "\n"; + print $fh "\n"; } sub output_msg($$$); @@ -59,17 +87,8 @@ sub start_testsuite($$) open(TEST, ">$self->{dirname}/$state->{HTMLFILE}") or die("Unable to open $state->{HTMLFILE} for writing"); - my $title = "Test Results for $state->{NAME}"; - - print TEST "\n"; - print TEST "\n"; - print TEST " $title\n"; - print TEST " \n"; - print TEST "\n"; - print TEST "\n"; - print TEST "\n"; - print TEST " \n"; - print TEST "
$title
\n"; + $self->print_html_header("Test Results for $state->{NAME}", + *TEST); print TEST " \n"; } @@ -98,8 +117,8 @@ sub end_testsuite($$$$$) print TEST "
\n"; print TEST "
Duration: " . (time() - $state->{START_TIME}) . "s
\n"; - print TEST "\n"; - print TEST "\n"; + + $self->print_html_footer(*TEST); close(TEST); @@ -164,15 +183,28 @@ sub end_test($$$$$$) $self->{local_statistics}->{$result}++; + my $track_class; + if ($result eq "skip") { print TEST "
\n"; + $track_class = "skip"; } elsif ($unexpected) { print TEST "\n"; + if ($result eq "error") { + $track_class = "error"; + } else { + $track_class = "unexpected_$result"; + } } else { print TEST "\n"; + $track_class = "expected_$result"; } - print TEST "

$testname

\n"; + push(@{$self->{error_summary}->{$track_class}}, , + [$state->{HTMLFILE}, $testname, $state->{NAME}, + $reason]); + + print TEST "

$testname

\n"; print TEST $self->{msg}; @@ -199,7 +231,7 @@ sub summary($) } else { print INDEX "
"; } - print INDEX ($st->{TESTS_EXPECTED_OK} + $st->{TESTS_UNEXPECTED_OK}) + " ok"; + print INDEX ($st->{TESTS_EXPECTED_OK} + $st->{TESTS_UNEXPECTED_OK}) . " ok"; if ($st->{TESTS_UNEXPECTED_OK} > 0) { print INDEX " ($st->{TESTS_UNEXPECTED_OK} unexpected)"; } @@ -220,11 +252,40 @@ sub summary($) print INDEX "
\n"; print INDEX "
\n"; - print INDEX "
\n"; - print INDEX "\n"; - print INDEX "\n"; + $self->print_html_footer(*INDEX); close(INDEX); + + my $summ = $self->{error_summary}; + open(SUMMARY, ">$self->{dirname}/summary.html"); + $self->print_html_header("Summary", *SUMMARY); + sub print_table($$) { + my ($title, $list) = @_; + return if ($#$list == -1); + print SUMMARY "

$title

\n"; + print SUMMARY "\n"; + print SUMMARY "\n"; + print SUMMARY " \n"; + print SUMMARY " \n"; + print SUMMARY " \n"; + print SUMMARY "\n"; + + foreach (@$list) { + print SUMMARY "\n"; + print SUMMARY " \n"; + print SUMMARY " \n"; + print SUMMARY " \n"; + print SUMMARY "\n"; + } + + print SUMMARY "
TestsuiteTestReason
$$_[2]$$_[1]$$_[3]
"; + } + print_table("Errors", $summ->{error}); + print_table("Unexpected successes", $summ->{unexpected_success}); + print_table("Unexpected failures", $summ->{unexpected_failure}); + print_table("Skipped tests", $summ->{skip}); + print_table("Expected failures", $summ->{expected_failure}); + $self->print_html_footer(*SUMMARY); + close(SUMMARY); } sub missing_env($$$) diff --git a/source4/selftest/selftest.pl b/source4/selftest/selftest.pl index 3506700f69..3abdd641c9 100755 --- a/source4/selftest/selftest.pl +++ b/source4/selftest/selftest.pl @@ -277,7 +277,7 @@ sub parse_subunit_results($$$$) return $expected_ret; } -sub run_test($$$$$$) +sub run_testsuite($$$$$$) { my ($envname, $name, $cmd, $i, $totalsuites, $msg_ops) = @_; my $msg_state = { @@ -773,7 +773,7 @@ $envvarstr next; } - run_test($envname, $name, $cmd, $i, $suitestotal, $msg_ops); + run_testsuite($envname, $name, $cmd, $i, $suitestotal, $msg_ops); if (defined($opt_analyse_cmd)) { system("$opt_analyse_cmd \"$name\""); -- cgit