Alexandre Julliard : winetest: Store the individual test result cells in a summary.txt file.

Alexandre Julliard julliard at winehq.org
Fri Aug 1 09:05:37 CDT 2008


Module: tools
Branch: master
Commit: 2982843bb613a786fc2fdc4b1fc20fb9c1f37cc6
URL:    http://source.winehq.org/git/tools.git/?a=commit;h=2982843bb613a786fc2fdc4b1fc20fb9c1f37cc6

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Aug  1 15:18:55 2008 +0200

winetest: Store the individual test result cells in a summary.txt file.

---

 winetest/gather |  107 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 57 insertions(+), 50 deletions(-)

diff --git a/winetest/gather b/winetest/gather
index 295fe9f..497f0bb 100755
--- a/winetest/gather
+++ b/winetest/gather
@@ -396,8 +396,13 @@ EOF
 my $header_footer=build_header_footer(\@groups);
 my $short_build = substr($build,0,12);
 
-if (!open OUT, ">$datadir/$build/index.html") {
-  print STDERR "$name0:error: unable to open '$datadir/$build/index.html' for writing: $!\n";
+if (!open OUT, ">$datadir/$build/index.html.new") {
+  print STDERR "$name0:error: unable to open '$datadir/$build/index.html.new' for writing: $!\n";
+  goto DONE;
+}
+if (!open SUMMARY, ">$datadir/$build/summary.txt.new")
+{
+  print STDERR "$name0:error: unable to open '$datadir/$build/summary.txt.new' for writing: $!\n";
   goto DONE;
 }
 print OUT <<"EOF";
@@ -448,10 +453,10 @@ sub singletest($$$) {
     my ($group, $testname, $groupname) = @_;
     my $result = $group->{$testname};
 
-    my ($href, $label);
+    my ($class, $msg, $title, $mouseover, $href, $label);
     if ($group->{reports} and @{$group->{reports}} > 1)
     {
-        $href = $result->{omit} ? "" : "href=\"#group_$groupname:$testname\"";
+        $href = $result->{omit} ? "" : "#group_$groupname:$testname";
         $label = $groupname;
     }
     else
@@ -460,11 +465,11 @@ sub singletest($$$) {
         $label = "$groupname $report->{tag}"; 
         if (-r "$datadir/$build/$report->{dir}/$testname.html")
         {
-            $href = "href=\"$report->{dir}/$testname.html\"";
+            $href = "$report->{dir}/$testname.html";
         }
         elsif (-r "$datadir/$build/$report->{dir}/$testname.txt")
         {
-            $href = "href=\"$report->{dir}/$testname.txt\"";
+            $href = "$report->{dir}/$testname.txt";
         }
         else
         {
@@ -475,76 +480,75 @@ sub singletest($$$) {
     my $status = $result->{status};
     if ($status eq "run")
     {
-        my $class = $result->{errors}->[0] ? "fail" :
-                    $result->{errors}->[1] ? "mixed" :
-                    $result->{todos}->[1] ? "todo" :
-                    "pass";
+        $class = $result->{errors}->[0] ? "fail" :
+                 $result->{errors}->[1] ? "mixed" :
+                 $result->{todos}->[1] ? "todo" :
+                 "pass";
         $class .= " also-todo" if ($result->{todos}->[1]);
         $class .= " also-skip" if ($result->{skips}->[1]);
+        $class = "result $class";
         my $mm_count=min_to_max($result->{count});
         my $mm_errors=min_to_max($result->{errors});
         my $mm_todos=min_to_max($result->{todos});
         my $mm_skips=min_to_max($result->{skips});
-        my $title="$mm_count tests, $mm_errors errors, $mm_todos todos, $mm_skips skips";
-        my $msg=!$result->{todos}->[1] ? $result->{errors}->[1] :
-                !$result->{errors}->[1] ? $result->{todos}->[1] :
-                "$result->{errors}->[1]+$result->{todos}->[1]";
-        print OUT <<"EOF";
-      <td class="result $class"><a $href title="$title"
-        onMouseOver="refresh('$testname', '$label', '$mm_count', '$mm_todos', '$mm_errors', '$mm_skips');"
-        >$msg</a></td>
-EOF
+        $title="$mm_count tests, $mm_errors errors, $mm_todos todos, $mm_skips skips";
+        if ($group->{reports} and @{$group->{reports}} > 1)
+        {
+            $title = sprintf "%u test runs, %s", $#{$group->{reports}} + 1, $title;
+        }
+        $msg=!$result->{todos}->[1] ? $result->{errors}->[1] :
+             !$result->{errors}->[1] ? $result->{todos}->[1] :
+             "$result->{errors}->[1]+$result->{todos}->[1]";
+        $mouseover = "onMouseOver=\"refresh('$testname', '$label', '$mm_count', '$mm_todos', '$mm_errors', '$mm_skips');\"";
     }
     elsif ($status eq "dll missing")
     {
         my ($dll, $unit) = split(/:/, $testname);
         $dll.=".dll" if ($dll !~ /\./);
-        print OUT <<"EOF";
-      <td class="result pass also-skip"><a $href
-        title="No tests run as $dll is not present on this system"
-        >n/a</a></td>
-EOF
+        $class = "result pass also-skip";
+        $title = "No tests run as $dll is not present on this system";
+        $msg = "n/a";
     }
     elsif ($status eq "winetest crash")
     {
-        print OUT <<"EOF";
-      <td class="note"><a $href
-        title="Test did not run as winetest crashed"
-        >winetest</a></td>
-EOF
+        $class = "note";
+        $title = "Test did not run as winetest crashed";
+        $msg = "winetest";
     }
     elsif ($status eq "filelimit")
     {
-        print OUT <<"EOF";
-      <td class="note"><a $href
-        title="Test is missing because of a partial report file"
-        >truncated</a></td>
-EOF
+        $class = "note";
+        $title = "Test is missing because of a partial report file";
+        $msg = "truncated";
     }
     elsif ($status eq "missing")
     {
-        print OUT <<"EOF";
-      <td class="note"><a $href
-        title="Test did not run for an unknown reason"
-        >not run</a></td>
-EOF
+        $class = "note";
+        $title = "Test did not run for an unknown reason";
+        $msg = "not&nbsp;run";
     }
     elsif ($status eq "mixed")
     {
-        print OUT <<"EOF";
-      <td class="note"><a $href
-        title="Mixed results"
-        >mixed</a></td>
-EOF
+        $class = "note";
+        $title = "Mixed results";
+        $msg = "mixed";
     }
     else
     {
-        my $msg = $status eq "crash" ? "crashed" :
-                  $status eq "-2" ? "failed" :
-                  $status =~ /^-/ ? "crashed" :
-                  $status eq "258" ? "timeout": "failed";
-        $msg = "<a $href>$msg</a>" if ($href ne "");
-        print OUT "      <td class=\"note\">$msg</td>\n";
+        $class = "note";
+        $msg = $status eq "crash" ? "crashed" :
+               $status eq "-2" ? "failed" :
+               $status =~ /^-/ ? "crashed" :
+               $status eq "258" ? "timeout": "failed";
+    }
+    printf OUT "      <td class=\"%s\"><a %s %s %s>%s</a></td>\n",
+                $class, $href ? "href=\"$href\"" : "",
+                $title ? "title=\"$title\"" : "", $mouseover || "", $msg;
+    if ($group->{reports})
+    {
+        printf SUMMARY "%s %s <td class=\"%s\"><a %s %s %s>%s</a></td>\n",
+                       $testname, $groupname, $class, $href ? "href=\"../$build/$href\"" : "",
+                       $title ? "title=\"$title\"" : "", $mouseover || "", $msg;
     }
 }
 
@@ -613,6 +617,9 @@ print OUT <<"EOF";
 </html>
 EOF
 close OUT;
+close SUMMARY;
+rename "$datadir/$build/index.html.new", "$datadir/$build/index.html" or unlink "$datadir/$build/index.html.new";
+rename "$datadir/$build/summary.txt.new", "$datadir/$build/summary.txt" or unlink "$datadir/$build/summary.txt";
 
 DONE:
 if (!unlink $outdated) {




More information about the wine-cvs mailing list