svn commit: samba r24669 - in branches/SAMBA_4_0: . source source/selftest source/selftest/output

jelmer at samba.org jelmer at samba.org
Sun Aug 26 16:56:43 GMT 2007


Author: jelmer
Date: 2007-08-26 16:56:41 +0000 (Sun, 26 Aug 2007)
New Revision: 24669

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24669

Log:
Add CSS to the test run HTML output. See http://samba.org/~jelmer/ for an 
example of the current output.

Added:
   branches/SAMBA_4_0/source/selftest/output/testresults.css
Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/main.mk
   branches/SAMBA_4_0/source/selftest/output/html.pm
   branches/SAMBA_4_0/source/selftest/output/plain.pm
   branches/SAMBA_4_0/source/selftest/selftest.pl


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:file-ids
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...

Modified: branches/SAMBA_4_0/source/main.mk
===================================================================
--- branches/SAMBA_4_0/source/main.mk	2007-08-26 15:55:06 UTC (rev 24668)
+++ branches/SAMBA_4_0/source/main.mk	2007-08-26 16:56:41 UTC (rev 24669)
@@ -307,6 +307,9 @@
 quicktest: all
 	$(SELFTEST) --quick --socket-wrapper --immediate $(TESTS)
 
+htmlquicktest: all
+	$(SELFTEST) --quick --socket-wrapper --format=html --immediate $(TESTS)
+
 quicktestone: all
 	$(SELFTEST) --quick --socket-wrapper --one $(TESTS)
 

Modified: branches/SAMBA_4_0/source/selftest/output/html.pm
===================================================================
--- branches/SAMBA_4_0/source/selftest/output/html.pm	2007-08-26 15:55:06 UTC (rev 24668)
+++ branches/SAMBA_4_0/source/selftest/output/html.pm	2007-08-26 16:56:41 UTC (rev 24669)
@@ -16,15 +16,28 @@
 		msg => ""
 	};
 
+	link("selftest/output/testresults.css", "$dirname/testresults.css");
+
 	open(INDEX, ">$dirname/index.html");
 
-	print INDEX "<html>\n";
+	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>\n";
-	print INDEX "<tr><td>Test</td><td>Environment</td><td>Result</td><td>Duration</td></tr>\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";
+	print INDEX "  <center>";
+	print INDEX "  <table>\n";
+	print INDEX "  <tr>\n";
+	print INDEX "    <td class=\"tableHead\">Test</td>\n";
+	print INDEX "    <td class=\"tableHead\">Environment</td>\n";
+	print INDEX "    <td class=\"tableHead\">Result</td>\n";
+	print INDEX "    <td class=\"tableHead\">Duration</td>\n";
+	print INDEX "  </tr>\n";
 
-	$self->{INDEX} = *INDEX;
-
 	bless($self, $class);
 }
 
@@ -35,13 +48,22 @@
 	my ($self, $state) = @_;
 
 	$state->{HTMLFILE} = "$state->{NAME}.html";
+	$state->{HTMLFILE} =~ s/[:\t\n \/]/_/g;
 
-	$state->{HTMLFILE} =~ s/[:\t\n ]/_/g;
+	open(TEST, ">$self->{dirname}/$state->{HTMLFILE}") or die("Unable to open $state->{HTMLFILE} for writing");
 
-	open(TEST, ">$self->{dirname}/$state->{HTMLFILE}");
+	my $title = "Test Results for $state->{NAME}";
 
-	print TEST "<html>\n";
+	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";
+	print TEST "  <table>\n";
 }
 
 sub output_msg($$$)
@@ -59,20 +81,21 @@
 {
 	my ($self, $state, $expected_ret, $ret, $envlog) = @_;
 
+	print TEST "</table>\n";
 	print TEST "</body>\n";
 	print TEST "</html>\n";
 
 	close(TEST);
 
-	print INDEX "<tr><td><a href=\"$state->{HTMLFILE}\">$state->{NAME}</a></td><td>$state->{ENVNAME}</td>";
+	print INDEX "<tr><td class=\"testSuite\"><a href=\"$state->{HTMLFILE}\">$state->{NAME}</a></td><td class=\"environment\">$state->{ENVNAME}</td>";
 
 	if ($ret == $expected_ret) {
-		print INDEX "<td bgcolor=\"green\">OK</td>";
+		print INDEX "<td class=\"resultOk\">OK</td>";
 	} else {
-		print INDEX "<td bgcolor=\"red\">FAIL</td>";
+		print INDEX "<td class=\"resultFailure\">FAIL</td>";
 	}
 
-	print INDEX "<td>" . (time() - $state->{START_TIME}) . "</td>\n";
+	print INDEX "<td class=\"duration\">" . (time() - $state->{START_TIME}) . "</td>\n";
 
 	print INDEX "</tr>\n";
 }
@@ -81,8 +104,6 @@
 {
 	my ($self, $state, $testname) = @_;
 
-	print TEST "<h3>$testname</h3>\n";
-
 	$self->{active_test} = $testname;
 	$self->{msg} = "";
 }
@@ -91,15 +112,21 @@
 {
 	my ($self, $state, $testname, $result, $unexpected) = @_;
 
+	print TEST "<tr>";
+
 	if ($result eq "skip") {
-		print TEST "<div bgcolor=\"yellow\">\n";
+		print TEST "<td class=\"outputSkipped\">\n";
 	} elsif ($unexpected) {
-		print TEST "<div bgcolor=\"red\">\n";
+		print TEST "<td class=\"outputFailure\">\n";
+	} else {
+		print TEST "<td class=\"outputOk\">\n";
 	}
 
+	print TEST "<h3>$testname</h3>\n";
+
 	print TEST $self->{msg};
 
-	print TEST "</div>\n";
+	print TEST "</td></tr>\n";
 
 	$self->{active_test} = undef;
 }
@@ -107,12 +134,13 @@
 sub summary($)
 {
 	my ($self) = @_;
+
 	print INDEX "</table>\n";
-	print INDEX "FAILED ($self->{statistics}->{TESTS_UNEXPECTED_FAIL} failures and $self->{statistics}->{TESTS_ERROR} errors in $self->{statistics}->{SUITES_FAIL} testsuites)\n";
-
+	print INDEX "</center>\n";
+	print INDEX "</td></tr>\n";
+	print INDEX "</table>\n";
 	print INDEX "</body>\n";
 	print INDEX "</html>\n";
-
 	close(INDEX);
 }
 
@@ -127,7 +155,7 @@
 {
 	my ($self, $name) = @_;
 
-	print INDEX "<tr><td>$name</td><td>N/A</td><td bgcolor=\"yellow\">SKIPPED</td><td>N/A</td></tr>\n";
+	print INDEX "<tr><td class=\"testSuite\">$name</td><td class=\"environmentSkipped\">N/A</td><td class=\"resultSkipped\">SKIPPED</td><td class=\"durationSkipped\">N/A</td></tr>\n";
 }
 
 1;

Modified: branches/SAMBA_4_0/source/selftest/output/plain.pm
===================================================================
--- branches/SAMBA_4_0/source/selftest/output/plain.pm	2007-08-26 15:55:06 UTC (rev 24668)
+++ branches/SAMBA_4_0/source/selftest/output/plain.pm	2007-08-26 16:56:41 UTC (rev 24669)
@@ -88,7 +88,13 @@
 		}
 	}
 
-	print "FAILED ($self->{statistics}->{TESTS_UNEXPECTED_FAIL} failures and $self->{statistics}->{TESTS_ERROR} errors in $self->{statistics}->{SUITES_FAIL} testsuites)\n";
+	if ($self->{statistics}->{SUITES_FAIL} == 0) {
+		my $ok = $self->{statistics}->{TESTS_EXPECTED_OK} + 
+				 $self->{statistics}->{TESTS_EXPECTED_FAIL};
+		print "ALL OK ($ok tests in $self->{statistics}->{SUITES_OK} testsuites)\n";
+	} else {
+		print "FAILED ($self->{statistics}->{TESTS_UNEXPECTED_FAIL} failures and $self->{statistics}->{TESTS_ERROR} errors in $self->{statistics}->{SUITES_FAIL} testsuites)\n";
+	}
 }
 
 sub missing_env($$$)

Added: branches/SAMBA_4_0/source/selftest/output/testresults.css
===================================================================
--- branches/SAMBA_4_0/source/selftest/output/testresults.css	2007-08-26 15:55:06 UTC (rev 24668)
+++ branches/SAMBA_4_0/source/selftest/output/testresults.css	2007-08-26 16:56:41 UTC (rev 24669)
@@ -0,0 +1,92 @@
+/* Stylesheet for Samba test results. 
+ *
+ * Partially based on the CSS file from lcov.
+ */
+
+/* All views: main title format */
+td.title
+{
+	text-align:     center;
+	padding-bottom: 10px;
+	font-family:    sans-serif;
+	font-size:      20pt;
+	font-style:     italic;
+	font-weight:    bold;
+}
+
+/* Index table headers */
+td.tableHead
+{
+	text-align:       center;
+	color:            #FFFFFF;
+	background-color: #6688D4;
+	font-family:      sans-serif;
+	font-size:        120%;
+	font-weight:      bold;
+}
+
+/* Testsuite names */
+td.testSuite
+{
+	text-align:       left;
+	padding-left:     10px;
+	padding-right:    20px; 
+	color:            #284FA8;
+	background-color: #DAE7FE;
+	font-family:      monospace;
+}
+
+/* Successful */
+td.resultOk
+{
+	text-align:       right;
+	padding-left:     10px;
+	padding-right:    10px;
+	background-color: #A7FC9D;
+	font-weight:      bold;
+}
+
+/* Failure */
+td.resultFailure
+{
+	text-align:       right;
+	padding-left:     10px;
+	padding-right:    10px;
+	background-color: #FF0000;
+	font-weight:      bold;
+}
+
+/* Skipped */
+td.resultSkipped
+{
+	text-align:       right;
+	padding-left:     10px;
+	padding-right:    10px;
+	background-color: #FFEA20;
+	font-weight:      bold;
+}
+
+td.duration
+{
+	text-align: right;
+}
+
+td.durationSkipped
+{
+	text-align: right;
+}
+
+td.outputSkipped
+{
+	background-color: #FFEA20;
+}
+
+td.outputOk
+{
+	background-color: #A7FC9D;
+}
+
+td.outputFailure
+{
+	background-color: #FF0000;
+}

Modified: branches/SAMBA_4_0/source/selftest/selftest.pl
===================================================================
--- branches/SAMBA_4_0/source/selftest/selftest.pl	2007-08-26 15:55:06 UTC (rev 24668)
+++ branches/SAMBA_4_0/source/selftest/selftest.pl	2007-08-26 16:56:41 UTC (rev 24669)
@@ -777,14 +777,7 @@
 
 $statistics->{END_TIME} = time();
 my $duration = ($statistics->{END_TIME}-$statistics->{START_TIME});
-my $numfailed = $statistics->{SUITES_FAIL};
-if ($numfailed == 0) {
-	my $ok = $statistics->{TESTS_EXPECTED_OK} + 
-	         $statistics->{TESTS_EXPECTED_FAIL};
-	print "ALL OK ($ok tests in $statistics->{SUITES_OK} testsuites)\n";
-} else {
-	$msg_ops->summary();
-}
+$msg_ops->summary();
 print "DURATION: $duration seconds\n";
 
 my $failed = 0;
@@ -801,7 +794,7 @@
 }
 
 if ($opt_format eq "buildfarm") {
-	print "TEST STATUS: $numfailed\n";
+	print "TEST STATUS: $statistics->{SUITES_FAIL}\n";
 }
 
-exit $numfailed;
+exit $statistics->{SUITES_FAIL};



More information about the samba-cvs mailing list