diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2007-08-26 23:22:54 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 15:02:43 -0500 |
commit | c021c7d648944c1e4fed3946470c9b74591a4278 (patch) | |
tree | 8b574d79f52acae3f302321c7da51a8862e2484a /source4 | |
parent | 356294da1881ac8e39a628525f3bf86c6939752e (diff) | |
download | samba-c021c7d648944c1e4fed3946470c9b74591a4278.tar.gz samba-c021c7d648944c1e4fed3946470c9b74591a4278.tar.bz2 samba-c021c7d648944c1e4fed3946470c9b74591a4278.zip |
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)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/samba4-knownfail | 1 | ||||
-rw-r--r-- | source4/selftest/output/html.pm | 121 | ||||
-rwxr-xr-x | source4/selftest/selftest.pl | 4 |
3 files changed, 93 insertions, 33 deletions
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 "<html lang=\"en\">\n"; - print INDEX "<head>\n"; - print INDEX " <title>Samba Testsuite Run</title>\n"; - print INDEX " <link rel=\"stylesheet\" type=\"text/css\" href=\"testresults.css\"/>\n"; - print INDEX "</head>\n"; - print INDEX "<body>\n"; - print INDEX "<table width=\"100%\" border=\"0\" cellspacing=\"0\">\n"; - print INDEX " <tr><td class=\"title\">Samba Testsuite Run</td></tr>\n"; - print INDEX " <tr><td>\n"; + bless($self, $class); + + $self->print_html_header("Samba Testsuite Run", *INDEX); + print INDEX " <center>"; print INDEX " <table>\n"; print INDEX " <tr>\n"; @@ -38,7 +41,32 @@ sub new($$$$) { print INDEX " <td class=\"tableHead\">Result</td>\n"; print INDEX " </tr>\n"; - bless($self, $class); + return $self; +} + +sub print_html_header($$$) +{ + my ($self, $title, $fh) = @_; + + print $fh "<html lang=\"en\">\n"; + print $fh "<head>\n"; + print $fh " <title>$title</title>\n"; + print $fh " <link rel=\"stylesheet\" type=\"text/css\" href=\"testresults.css\"/>\n"; + print $fh "</head>\n"; + print $fh "<body>\n"; + print $fh "<table width=\"100%\" border=\"0\" cellspacing=\"0\">\n"; + print $fh " <tr><td class=\"title\">$title</td></tr>\n"; + print $fh " <tr><td>\n"; +} + +sub print_html_footer($$) +{ + my ($self, $fh) = @_; + + print $fh "</td></tr>\n"; + print $fh "</table>\n"; + print $fh "</body>\n"; + print $fh "</html>\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 "<html lang=\"en\">\n"; - print TEST "<head>\n"; - print TEST " <title>$title</title>\n"; - print TEST " <link rel=\"stylesheet\" type=\"text/css\" href=\"testresults.css\"/>\n"; - print TEST "</head>\n"; - print TEST "<body>\n"; - print TEST "<table width=\"100%\" border=\"0\" cellspacing=\"0\">\n"; - print TEST " <tr><td class=\"title\">$title</td></tr>\n"; - print TEST " <tr><td>\n"; + $self->print_html_header("Test Results for $state->{NAME}", + *TEST); print TEST " <table>\n"; } @@ -98,8 +117,8 @@ sub end_testsuite($$$$$) print TEST "</table>\n"; print TEST "<div class=\"duration\">Duration: " . (time() - $state->{START_TIME}) . "s</div>\n"; - print TEST "</body>\n"; - print TEST "</html>\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 "<td class=\"outputSkipped\">\n"; + $track_class = "skip"; } elsif ($unexpected) { print TEST "<td class=\"outputFailure\">\n"; + if ($result eq "error") { + $track_class = "error"; + } else { + $track_class = "unexpected_$result"; + } } else { print TEST "<td class=\"outputOk\">\n"; + $track_class = "expected_$result"; } - print TEST "<h3>$testname</h3>\n"; + push(@{$self->{error_summary}->{$track_class}}, , + [$state->{HTMLFILE}, $testname, $state->{NAME}, + $reason]); + + print TEST "<a name=\"$testname\"><h3>$testname</h3></a>\n"; print TEST $self->{msg}; @@ -199,7 +231,7 @@ sub summary($) } else { print INDEX " <td class=\"resultFailure\">"; } - 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 "</table>\n"; print INDEX "</center>\n"; - print INDEX "</td></tr>\n"; - print INDEX "</table>\n"; - print INDEX "</body>\n"; - print INDEX "</html>\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 "<h3>$title</h3>\n"; + print SUMMARY "<table>\n"; + print SUMMARY "<tr>\n"; + print SUMMARY " <td class=\"tableHead\">Testsuite</td>\n"; + print SUMMARY " <td class=\"tableHead\">Test</td>\n"; + print SUMMARY " <td class=\"tableHead\">Reason</td>\n"; + print SUMMARY "</tr>\n"; + + foreach (@$list) { + print SUMMARY "<tr>\n"; + print SUMMARY " <td><a href=\"" . $$_[0] . "\">$$_[2]</a></td>\n"; + print SUMMARY " <td><a href=\"" . $$_[0] . "#$$_[1]\">$$_[1]</a></td>\n"; + print SUMMARY " <td>$$_[3]</td>\n"; + print SUMMARY "</tr>\n"; + } + + print SUMMARY "</table>"; + } + 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\""); |