2008-03-07 Stephanie <slewis@apple.com>
authorslewis@apple.com <slewis@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Mar 2008 22:32:24 +0000 (22:32 +0000)
committerslewis@apple.com <slewis@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Mar 2008 22:32:24 +0000 (22:32 +0000)
        Reviewed by Geoff.

        <rdar://problem/5693690> run-webkit-tests swallows STDERR output, including WebCore LEAK messages

        * DumpRenderTree/mac/DumpRenderTree.mm:
        (dump): push EOF to stderr after every test
        * Scripts/run-webkit-tests: collect stderr output and print it

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30881 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm
WebKitTools/Scripts/run-webkit-tests

index 292a065..7006896 100644 (file)
@@ -1,3 +1,13 @@
+2008-03-07  Stephanie  <slewis@apple.com>
+
+        Reviewed by Geoff.
+
+        <rdar://problem/5693690> run-webkit-tests swallows STDERR output, including WebCore LEAK messages
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (dump): push EOF to stderr after every test
+        * Scripts/run-webkit-tests: collect stderr output and print it
+
 2008-03-07  Steve Falkenburg  <sfalken@apple.com>
 
         Get pdevenv working with Visual Studio Express.
index 1db1d9c..dd1da07 100644 (file)
@@ -778,12 +778,14 @@ void dump()
 
         if (printSeparators)
             puts("#EOF");
+            fputs("#EOF\n", stderr);            
     }
     
     if (dumpPixels)
         dumpWebViewAsPixelsAndCompareWithExpected([currentTest UTF8String], dumpAllPixels);
 
     fflush(stdout);
+    fflush(stderr);
 
     done = YES;
 }
index 7a6d704..6a4d28d 100755 (executable)
@@ -558,6 +558,12 @@ for my $test (@tests) {
         $actual .= $_;
     }
 
+    my $error = "";
+    while (<ERROR>) {
+       last if /#EOF/;
+       $error .= $_;
+    }
+
     my $isText = isTextOnlyTest($actual);
 
     $durations{$test} = time - $startTime if $report10Slowest;
@@ -721,7 +727,7 @@ for my $test (@tests) {
         deleteExpectedAndActualResults($base);
 
         open CRASH, ">", "$testResultsDirectory/$base-$errorTag.txt" or die;
-        print CRASH <ERROR>;
+        print CRASH $error;
         close CRASH;
 
         recordActualResultsAndDiff($base, $actual);
@@ -862,6 +868,19 @@ for my $test (@tests) {
 
         closeDumpTool();
     }
+    
+    if ($error) {
+        my $dir = "$testResultsDirectory/$base";
+        $dir =~ s|/([^/]+)$|| or die "Failed to find test name from base\n";
+        mkpath $dir;
+        
+        open ERROR_OUT, ">", "$testResultsDirectory/$base-$errorTag.txt" or die;
+        print ERROR_OUT $error;
+        close ERROR_OUT;
+        
+        $counts{error}++;
+        push @{$tests{error}}, $test;
+    }
 
     $count++;
     $counts{$result}++;
@@ -927,9 +946,10 @@ my %text = (
     mismatch => "had incorrect layout",
     new => "were new",
     crash => "crashed",
+    error => "had stderr output"
 );
 
-for my $type ("match", "mismatch", "new", "crash") {
+for my $type ("match", "mismatch", "new", "crash", "error") {
     my $c = $counts{$type};
     if ($c) {
         my $t = $text{$type};
@@ -991,6 +1011,21 @@ if ($counts{crash}) {
     print HTML "</table>\n";
 }
 
+if ($counts{error}) {
+    print HTML "<p>Tests that had stderr output:</p>\n";
+    print HTML "<table>\n";
+    for my $test (@{$tests{error}}) {
+        my $base = stripExtension($test);
+        my $expectedDir = $expectedResultDirectory{$base};
+        print HTML "<tr>\n";
+        print HTML "<td><a href=\"" . toURL("$testDirectory/$test") . "\">$base</a></td>\n";
+        print HTML htmlForExpectedAndActualResults($base);
+        print HTML "<td><a href=\"$base-$errorTag.txt\">stderr</a></td>\n";
+        print HTML "</tr>\n";
+    }
+    print HTML "</table>\n";
+}
+
 if ($counts{new}) {
     print HTML "<p>Tests that had no expected results (probably new):</p>\n";
     print HTML "<table>\n";