2006-10-04 Anders Carlsson <acarlsson@apple.com>
authorandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Oct 2006 19:58:23 +0000 (19:58 +0000)
committerandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Oct 2006 19:58:23 +0000 (19:58 +0000)
        Reviewed by Darin.

        * Scripts/run-webkit-tests:
        Add an environment variable, WebKitExpectedTestResultsDirectory, which controls where expected test
        results should be.

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

WebKitTools/ChangeLog
WebKitTools/Scripts/run-webkit-tests

index 061a39f6a52f0d76e80bf6a0319b05959be157dc..a85cdb0d478525861987df218fa5502f6d26e56b 100644 (file)
@@ -1,3 +1,11 @@
+2006-10-04  Anders Carlsson  <acarlsson@apple.com>
+
+        Reviewed by Darin.
+
+        * Scripts/run-webkit-tests:
+        Add an environment variable, WebKitExpectedTestResultsDirectory, which controls where expected test 
+        results should be.
+
 2006-10-05  Nikolas Zimmermann  <zimmermann@kde.org>
 
         Reviewed and landed by ap.
index 4f16a44b944ececf79df2d64182ca6e4f2e13925..8b4f71663739290b7dfcf2919aa77dccef83f9c1 100755 (executable)
@@ -192,6 +192,9 @@ checkFrameworks();
 
 my $layoutTestsName = $testOnlySVGs ? "LayoutTests/svg" : "LayoutTests";
 my $testDirectory = File::Spec->rel2abs($layoutTestsName);
+my $expectedTestResultsDirectory = $testDirectory;
+$expectedTestResultsDirectory = $ENV{"WebKitExpectedTestResultsDirectory"} if $ENV{"WebKitExpectedTestResultsDirectory"};
+
 my $testResults = catfile($testResultsDirectory, "results.html");
 
 print "Running tests from $testDirectory\n";
@@ -348,7 +351,7 @@ for my $test (@tests) {
     $durations{$test} = time - $startTime if $report10Slowest;
 
     my $expected;
-    if (!$resetResults && open EXPECTED, "<", "$testDirectory/$base-$expectedTag.txt") {
+    if (!$resetResults && open EXPECTED, "<", "$expectedTestResultsDirectory/$base-$expectedTag.txt") {
         $expected = "";
         while (<EXPECTED>) {
             $expected .= $_;
@@ -366,10 +369,13 @@ for my $test (@tests) {
     my $diffResult = "passed";
     
     if ($pixelTests) {
+        die "Pixel tests currently don't work when using a custom expected test results directory" if $testDirectory ne $expectedTestResultsDirectory;
+            
         my $actualHash = "";
         my $expectedHash = "";
         my $actualPNGSize = 0;
         while (<IN>) {
+            print "$_";
             last if /#EOF/;
             if (/ActualHash: ([a-f0-9]{32})/) {
                 $actualHash = $1;
@@ -381,10 +387,11 @@ for my $test (@tests) {
             }
         }
 
-        if ($expectedHash ne $actualHash && -f "$testDirectory/$base-$expectedTag.png") {
-            my $expectedPNGSize = -s "$testDirectory/$base-$expectedTag.png";
+        die "$actualPNGSize";
+        if ($expectedHash ne $actualHash && -f "$expectedTestResultsDirectory/$base-$expectedTag.png") {
+            my $expectedPNGSize = -s "$expectedTestResultsDirectory/$base-$expectedTag.png";
             my $expectedPNG = "";
-            open EXPECTEDPNG, "$testDirectory/$base-$expectedTag.png";
+            open EXPECTEDPNG, "$expectedTestResultsDirectory/$base-$expectedTag.png";
             read(EXPECTEDPNG, $expectedPNG, $expectedPNGSize);
 
             print DIFFOUT "Content-length: $actualPNGSize\n";
@@ -406,15 +413,22 @@ for my $test (@tests) {
             }
         }
 
-        if ($actualPNGSize && ($resetResults || !-f "$testDirectory/$base-$expectedTag.png")) {
-            open EXPECTED, ">", "$testDirectory/$base-expected.png" or die "could not create $testDirectory/$base-expected.png\n";
+        if ($actualPNGSize && ($resetResults || !-f "$expectedTestResultsDirectory/$base-$expectedTag.png")) {
+            # Create the path if needed
+            mkpath(catfile($expectedTestResultsDirectory, dirname($base))) if $testDirectory ne $expectedTestResultsDirectory;
+            
+            open EXPECTED, ">", "$expectedTestResultsDirectory/$base-expected.png" or die "could not create $expectedTestResultsDirectory/$base-expected.png\n";
             print EXPECTED $actualPNG;
             close EXPECTED;
         }
 
         # update the expected hash if the image diff said that there was no difference
-        if ($actualHash ne "" && ($resetResults || !-f "$testDirectory/$base-$expectedTag.checksum")) {
-            open EXPECTED, ">", "$testDirectory/$base-$expectedTag.checksum" or die "could not create $testDirectory/$base-$expectedTag.checksum\n";
+        if ($actualHash ne "" && ($resetResults || !-f "$expectedTestResultsDirectory/$base-$expectedTag.checksum")) {
+    
+            # Create the path if needed
+            mkpath(catfile($expectedTestResultsDirectory, dirname($base))) if $testDirectory ne $expectedTestResultsDirectory;
+
+            open EXPECTED, ">", "$expectedTestResultsDirectory/$base-$expectedTag.checksum" or die "could not create $expectedTestResultsDirectory/$base-$expectedTag.checksum\n";
             print EXPECTED $actualHash;
             close EXPECTED;
         }
@@ -426,7 +440,11 @@ for my $test (@tests) {
             $atLineStart = 1;
         }
         $result = "new";
-        open EXPECTED, ">", "$testDirectory/$base-$expectedTag.txt" or die "could not create $testDirectory/$base-$expectedTag.txt\n";
+        
+        # Create the path if needed
+        mkpath(catfile($expectedTestResultsDirectory, dirname($base))) if $testDirectory ne $expectedTestResultsDirectory;
+        
+        open EXPECTED, ">", "$expectedTestResultsDirectory/$base-$expectedTag.txt" or die "could not create $expectedTestResultsDirectory/$base-$expectedTag.txt\n";
         print EXPECTED $actual;
         close EXPECTED;
         unlink "$testResultsDirectory/$base-$actualTag.txt";
@@ -458,7 +476,7 @@ for my $test (@tests) {
         print ACTUAL $actual;
         close ACTUAL;
 
-        system "diff -u \"$testDirectory/$base-$expectedTag.txt\" \"$testResultsDirectory/$base-$actualTag.txt\" > \"$testResultsDirectory/$base-$diffsTag.txt\"";
+        system "diff -u \"$expectedTestResultsDirectory/$base-$expectedTag.txt\" \"$testResultsDirectory/$base-$actualTag.txt\" > \"$testResultsDirectory/$base-$diffsTag.txt\"";
 
         if ($pixelTests && $diffPNG && $diffPNG ne "") {
             $imagesPresent{$base} = 1;
@@ -471,7 +489,7 @@ for my $test (@tests) {
             print DIFF $diffPNG;
             close DIFF;
             
-            copy("$testDirectory/$base-$expectedTag.png", "$testResultsDirectory/$base-$expectedTag.png");
+            copy("$expectedTestResultsDirectory/$base-$expectedTag.png", "$testResultsDirectory/$base-$expectedTag.png");
 
             open DIFFHTML, ">$testResultsDirectory/$base-$diffsTag.html" or die;
             print DIFFHTML "<html>\n";
@@ -613,7 +631,7 @@ if ($counts{mismatch}) {
     for my $test (@{$tests{mismatch}}) {
         my $base = $test;
         $base =~ s/\.[a-zA-Z]+$//;
-        copy("$testDirectory/$base-$expectedTag.txt", "$testResultsDirectory/$base-$expectedTag.txt");
+        copy("$expectedTestResultsDirectory/$base-$expectedTag.txt", "$testResultsDirectory/$base-$expectedTag.txt");
         print HTML "<tr>\n";            
         print HTML "<td><a href=\"$testDirectory/$test\">$base</a></td>\n";
         if (-s "$testResultsDirectory/$base-$diffsTag.txt") {
@@ -656,10 +674,10 @@ if ($counts{new}) {
         my $base = $test;
         $base =~ s/\.[a-zA-Z]+$//;
         print HTML "<tr>\n";
-        print HTML "<td><a href=\"$testDirectory/$test\">$base</a></td>\n";
-        print HTML "<td><a href=\"$testDirectory/$base-$expectedTag.txt\">results</a></td>\n";
-        if ($pixelTests && -f "$testDirectory/$base-$expectedTag.png") {
-            print HTML "<td><a href=\"$testDirectory/$base-$expectedTag.png\">image</a></td>\n";
+        print HTML "<td><a href=\"$expectedTestResultsDirectory/$test\">$base</a></td>\n";
+        print HTML "<td><a href=\"$expectedTestResultsDirectory/$base-$expectedTag.txt\">results</a></td>\n";
+        if ($pixelTests && -f "$expectedTestResultsDirectory/$base-$expectedTag.png") {
+            print HTML "<td><a href=\"$expectedTestResultsDirectory/$base-$expectedTag.png\">image</a></td>\n";
         }
         print HTML "</tr>\n";
     }