bisect-builds should filter out nightlies that predate the introduction of an OS...
authormatthew_hanson@apple.com <matthew_hanson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Oct 2014 00:13:14 +0000 (00:13 +0000)
committermatthew_hanson@apple.com <matthew_hanson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Oct 2014 00:13:14 +0000 (00:13 +0000)
https://bugs.webkit.org/show_bug.cgi?id=138193

This patch restricts the set of nightles to bisect to only those nightlies that ship with frameworks
for the target OS (only support for OS X Yosemite, Mavericks and Mountain Lion was added.)

It also does a bit of refactoring, including distinguishing between versions and version strings and
saving versions to local variables instead of using eval in each conditional.

Reviewed by David Kilzer.

* Scripts/bisect-builds:
(makeNightlyList):
Restrict the set of nightlies to r174650 and above when running Yosemite.
Restrict the set of nightlies to r157846 and above when running Mavericks.
Restrict the set of nightlies to r122421 and above when running Mountain Lion.

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

Tools/ChangeLog
Tools/Scripts/bisect-builds

index 7f5db42..bb80aa6 100644 (file)
@@ -1,3 +1,22 @@
+2014-10-29  Matthew Hanson  <matthew_hanson@apple.com>
+
+        bisect-builds should filter out nightlies that predate the introduction of an OS X operating system
+        https://bugs.webkit.org/show_bug.cgi?id=138193
+
+        This patch restricts the set of nightles to bisect to only those nightlies that ship with frameworks
+        for the target OS (only support for OS X Yosemite, Mavericks and Mountain Lion was added.)
+
+        It also does a bit of refactoring, including distinguishing between versions and version strings and
+        saving versions to local variables instead of using eval in each conditional.
+
+        Reviewed by David Kilzer.
+
+        * Scripts/bisect-builds:
+        (makeNightlyList):
+        Restrict the set of nightlies to r174650 and above when running Yosemite.
+        Restrict the set of nightlies to r157846 and above when running Mavericks.
+        Restrict the set of nightlies to r122421 and above when running Mountain Lion.
+
 2014-10-29  Csaba Osztrogon√°c  <ossy@webkit.org>
 
         [EFL] build-webkit should try harder to avoid re-running cmake
index 1130b00..5a0d534 100755 (executable)
@@ -312,7 +312,7 @@ sub loadSettings()
 
 sub makeNightlyList($$$$)
 {
-    my ($useLocalFiles, $localDirectory, $macOSXVersion, $safariVersion) = @_;
+    my ($useLocalFiles, $localDirectory, $osxVersionString, $safariVersionString) = @_;
     my @files;
 
     if ($useLocalFiles) {
@@ -335,36 +335,49 @@ sub makeNightlyList($$$$)
         close(NIGHTLIES);
     }
 
-    if (eval "v$macOSXVersion" ge v10.5) {
-        if ($safariVersion eq "4 Public Beta") {
+    my $osxVersion = eval("v$osxVersionString");
+    my $safariVersion = eval("v$safariVersionString");
+
+    if ($osxVersion ge v10.10 && $osxVersion lt v10.11) {
+        @files = grep { $_->{rev} >= 174650 } @files;
+    } elsif ($osxVersion ge v10.9 && $osxVersion lt v10.10) {
+        @files = grep { $_->{rev} >= 157846 } @files;
+    } elsif ($osxVersion ge v10.8 && $osxVersion lt v10.9) {
+        @files = grep { $_->{rev} >= 122421 } @files;
+    } elsif ($osxVersion ge v10.7 && $osxVersion lt v10.8) {
+        # FIXME: Add filter for 10.7.x
+    } elsif ($osxVersion ge v10.6 && $osxVersion lt v10.7) {
+        # FIXME: Add filter for 10.6.x
+    } elsif ($osxVersion ge v10.5 && $osxVersion lt v10.6) {
+        if ($safariVersionString eq "4 Public Beta") {
             @files = grep { $_->{rev} >= 39682 } @files;
-        } elsif (eval "v$safariVersion" ge v3.2) {
+        } elsif ($safariVersion ge v3.2) {
             @files = grep { $_->{rev} >= 37348 } @files;
-        } elsif (eval "v$safariVersion" ge v3.1) {
+        } elsif ($safariVersion ge v3.1) {
             @files = grep { $_->{rev} >= 29711 } @files;
-        } elsif (eval "v$safariVersion" ge v3.0) {
+        } elsif ($safariVersion ge v3.0) {
             @files = grep { $_->{rev} >= 25124 } @files;
-        } elsif (eval "v$safariVersion" ge v2.0) {
+        } elsif ($safariVersion ge v2.0) {
             @files = grep { $_->{rev} >= 19594 } @files;
         } else {
             die "Requires Safari 2.0 or newer";
         }
-    } elsif (eval "v$macOSXVersion" ge v10.4) {
+    } elsif ($osxVersion ge v10.4 && $osxVersion lt v10.5) {
         if ($safariVersion eq "4 Public Beta") {
             @files = grep { $_->{rev} >= 39682 } @files;
-        } elsif (eval "v$safariVersion" ge v3.2) {
+        } elsif ($safariVersion ge v3.2) {
             @files = grep { $_->{rev} >= 37348 } @files;
-        } elsif (eval "v$safariVersion" ge v3.1) {
+        } elsif ($safariVersion ge v3.1) {
             @files = grep { $_->{rev} >= 29711 } @files;
-        } elsif (eval "v$safariVersion" ge v3.0) {
+        } elsif ($safariVersion ge v3.0) {
             @files = grep { $_->{rev} >= 19992 } @files;
-        } elsif (eval "v$safariVersion" ge v2.0) {
+        } elsif ($safariVersion ge v2.0) {
             @files = grep { $_->{rev} >= 11976 } @files;
         } else {
             die "Requires Safari 2.0 or newer";
         }
     } else {
-        die "Requires Mac OS X 10.4 (Tiger) or 10.5 (Leopard)";
+        die "Requires Mac OS X 10.4 (Tiger) or later";
     }
 
     my $nightlycmp = sub { return $a->{rev} <=> $b->{rev}; };