Generate results for new tests in a more logical location
authoraroben <aroben@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 12 Aug 2007 11:31:41 +0000 (11:31 +0000)
committeraroben <aroben@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 12 Aug 2007 11:31:41 +0000 (11:31 +0000)
        New platform-specific tests always have their results generated right
        next to the test. New cross-platform tests will have their results
        generated a) in the cross-platform directory, if they are text-only,
        or b) in the least-specific platform directory, if they are render
        tree dumps.

        Reviewed by Lars.

        * Scripts/run-webkit-tests:

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

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

index a4d67a3e24accfa77b1c75a95cdbad91141b3d22..146b9bc6fbccf93784d7557a84b4c120491d5cd5 100644 (file)
@@ -1,3 +1,17 @@
+2007-08-12  Adam Roben  <aroben@apple.com>
+
+        Generate results for new tests in a more logical location
+
+        New platform-specific tests always have their results generated right
+        next to the test. New cross-platform tests will have their results
+        generated a) in the cross-platform directory, if they are text-only,
+        or b) in the least-specific platform directory, if they are render
+        tree dumps.
+
+        Reviewed by Lars.
+
+        * Scripts/run-webkit-tests:
+
 2007-08-12  Adam Roben  <aroben@apple.com>
 
         Print the actual directory where new results are generated.
index 3a242eb7fd9d36ec6f35c698b52675fed985db78..9eb750600b040aa2c724ad3c76a9b843fdbb318a 100755 (executable)
@@ -77,7 +77,7 @@ sub slowestcmp($$);
 sub splitpath($);
 sub stripExtension($);
 sub isTextOnlyTest($);
-sub expectedDirectoryForTest($);
+sub expectedDirectoryForTest($;$);
 sub printFailureMessageForTest($$);
 sub toURL($);
 sub toWindowsPath($);
@@ -518,7 +518,7 @@ for my $test (@tests) {
     $durations{$test} = time - $startTime if $report10Slowest;
 
     my $expected;
-    my $expectedDir = expectedDirectoryForTest($base);
+    my $expectedDir = expectedDirectoryForTest($base, $isText);
     if (isQt() && $isText) {
         $expectedDir = $testDirectory;
     }
@@ -1305,17 +1305,27 @@ sub isTextOnlyTest($)
     return $isText;
 }
 
-sub expectedDirectoryForTest($)
+sub expectedDirectoryForTest($;$)
 {
-    my ($base) = @_;
+    my ($base, $isText) = @_;
+
+    my @directories = @platformHierarchy;
+    push(@directories, $expectedDirectory);
 
-    foreach my $level (@platformHierarchy) {
-        return $level if (-f "$level/$base-$expectedTag.txt");
+    # If we already have expected results, just return their location.
+    foreach my $directory (@directories) {
+        return $directory if (-f "$directory/$base-$expectedTag.txt");
     }
 
-    return $expectedDirectory if (-f "$expectedDirectory/$base-$expectedTag.txt");
+    # For platform-specific tests, the results should go right next to the test itself.
+    # Note: The return value of this subroutine will be concatenated with $base
+    # to determine the location of the new results, so returning $expectedDirectory
+    # will put the results right next to the test.
+    return $expectedDirectory if $base =~ /^platform/;
 
-    return $platformHierarchy[$#platformHierarchy];
+    # For cross-platform tests, text-only results should go in the cross-platform directory,
+    # while render tree dumps should go in the least-specific platform directory.
+    return $isText ? $expectedDirectory : $platformHierarchy[$#platformHierarchy];
 }
 
 sub printFailureMessageForTest($$)