[Big Sur] Handle baseline search path
https://bugs.webkit.org/show_bug.cgi?id=213639
<rdar://problem/64789480>

Rubber-stamped by Aakash Jain.

* Scripts/webkitpy/port/mac.py:
(MacPort):
(MacPort.default_baseline_search_path): Break infinite loop for major version bump.
* Scripts/webkitpy/port/mac_unittest.py:
(MacTest.test_big_sur_baseline_search_path): Test Big Sur baseline search path.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@263561 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index a9f4c6b..77832d7 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,17 @@
+2020-06-26  Jonathan Bedard  <jbedard@apple.com>
+
+        [Big Sur] Handle baseline search path
+        https://bugs.webkit.org/show_bug.cgi?id=213639
+        <rdar://problem/64789480>
+
+        Rubber-stamped by Aakash Jain.
+
+        * Scripts/webkitpy/port/mac.py:
+        (MacPort):
+        (MacPort.default_baseline_search_path): Break infinite loop for major version bump.
+        * Scripts/webkitpy/port/mac_unittest.py:
+        (MacTest.test_big_sur_baseline_search_path): Test Big Sur baseline search path.
+
 2020-06-26  Carlos Alberto Lopez Perez  <clopez@igalia.com>
 
         generate-jsc-bundle should fail if passed an invalid remote-config-file parameter
diff --git a/Tools/Scripts/webkitpy/port/mac.py b/Tools/Scripts/webkitpy/port/mac.py
index b0bbc4e..442de24 100644
--- a/Tools/Scripts/webkitpy/port/mac.py
+++ b/Tools/Scripts/webkitpy/port/mac.py
@@ -46,6 +46,7 @@
     port_name = "mac"
 
     CURRENT_VERSION = Version(10, 15)
+    LAST_MACOSX = Version(10, 16)  # FIXME: Once we don't need to support the seed, deprecate in favor of Catalina
 
     SDK = 'macosx'
 
@@ -79,9 +80,15 @@
             while temp_version != self.CURRENT_VERSION:
                 versions_to_fallback.append(Version.from_iterable(temp_version))
                 if temp_version < self.CURRENT_VERSION:
-                    temp_version.minor += 1
+                    if temp_version.minor < self.LAST_MACOSX.minor:
+                        temp_version.minor += 1
+                    else:
+                        temp_version = Version(11, 0)
                 else:
-                    temp_version.minor -= 1
+                    if temp_version.minor > 0:
+                        temp_version.minor -= 1
+                    else:
+                        temp_version = self.LAST_MACOSX
         wk_string = 'wk1'
         if self.get_option('webkit_test_runner'):
             wk_string = 'wk2'
diff --git a/Tools/Scripts/webkitpy/port/mac_unittest.py b/Tools/Scripts/webkitpy/port/mac_unittest.py
index 5a3edf4..930cc49 100644
--- a/Tools/Scripts/webkitpy/port/mac_unittest.py
+++ b/Tools/Scripts/webkitpy/port/mac_unittest.py
@@ -160,6 +160,13 @@
         self.assertEqual(search_path[4], '/additional_testing_path/mac-add-mountainlion-wk1')
         self.assertEqual(search_path[5], '/mock-checkout/LayoutTests/platform/mac-mountainlion-wk1')
 
+    def test_big_sur_baseline_search_path(self):
+        search_path = self.make_port(port_name='macos-big-sur').default_baseline_search_path()
+        self.assertEqual(search_path[0], '/mock-checkout/LayoutTests/platform/mac-catalina-wk1')
+        self.assertEqual(search_path[1], '/mock-checkout/LayoutTests/platform/mac-catalina')
+        self.assertEqual(search_path[2], '/mock-checkout/LayoutTests/platform/mac-wk1')
+        self.assertEqual(search_path[3], '/mock-checkout/LayoutTests/platform/mac')
+
     def test_factory_with_future_version(self):
         port = self.make_port(options=MockOptions(webkit_test_runner=True), os_version=MacTest.FUTURE_VERSION, os_name='mac', port_name='mac')
         self.assertEqual(port.driver_name(), 'WebKitTestRunner')