Title: [261722] trunk/Tools
Revision
261722
Author
jbed...@apple.com
Date
2020-05-14 16:38:22 -0700 (Thu, 14 May 2020)

Log Message

run-webkit-tests shouldn't need Xcode to run Mac tests
https://bugs.webkit.org/show_bug.cgi?id=211903
<rdar://problem/63205839>

Reviewed by Stephanie Lewis.

* Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo):
(PlatformInfo.xcode_sdk_version): Memoize SDK version retrieval.
(PlatformInfo.xcode_version): Only run xcodebuild if macosx SDK is present.
(PlatformInfo.available_sdks): Ditto.
* Scripts/webkitpy/common/system/platforminfo_unittest.py:
(TestPlatformInfo.test_available_sdks):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (261721 => 261722)


--- trunk/Tools/ChangeLog	2020-05-14 23:29:43 UTC (rev 261721)
+++ trunk/Tools/ChangeLog	2020-05-14 23:38:22 UTC (rev 261722)
@@ -1,3 +1,19 @@
+2020-05-14  Jonathan Bedard  <jbed...@apple.com>
+
+        run-webkit-tests shouldn't need Xcode to run Mac tests
+        https://bugs.webkit.org/show_bug.cgi?id=211903
+        <rdar://problem/63205839>
+
+        Reviewed by Stephanie Lewis.
+
+        * Scripts/webkitpy/common/system/platforminfo.py:
+        (PlatformInfo):
+        (PlatformInfo.xcode_sdk_version): Memoize SDK version retrieval.
+        (PlatformInfo.xcode_version): Only run xcodebuild if macosx SDK is present.
+        (PlatformInfo.available_sdks): Ditto.
+        * Scripts/webkitpy/common/system/platforminfo_unittest.py:
+        (TestPlatformInfo.test_available_sdks):
+
 2020-05-14  Daniel Bates  <daba...@apple.com>
 
         Include LocalOverrides.xcconfig in all Tools projects

Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py (261721 => 261722)


--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py	2020-05-14 23:29:43 UTC (rev 261721)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py	2020-05-14 23:38:22 UTC (rev 261722)
@@ -31,6 +31,7 @@
 import re
 import sys
 
+from webkitpy.common.memoized import memoized
 from webkitpy.common.version import Version
 from webkitpy.common.version_name_map import PUBLIC_TABLE, INTERNAL_TABLE, VersionNameMap
 from webkitpy.common.system.executive import Executive
@@ -159,6 +160,7 @@
             return self._executive.run_command(['/usr/bin/sw_vers', '-buildVersion'], return_stderr=False, ignore_errors=True).rstrip()
         return None
 
+    @memoized
     def xcode_sdk_version(self, sdk_name):
         if self.is_mac():
             # Assumes that xcrun does not write to standard output on failure (e.g. SDK does not exist).
@@ -173,13 +175,15 @@
         output = self._executive.run_command(['xcrun', 'simctl', 'list'], return_stderr=False)
         return (line for line in output.splitlines())
 
+    @memoized
     def xcode_version(self):
-        if not self.is_mac():
+        if not self.xcode_sdk_version('macosx'):
             raise NotImplementedError
         return Version.from_string(self._executive.run_command(['xcodebuild', '-version']).split()[1])
 
+    @memoized
     def available_sdks(self):
-        if not self.is_mac():
+        if not self.xcode_sdk_version('macosx'):
             return []
 
         XCODE_SDK_REGEX = re.compile('\-sdk (?P<sdk>\D+)\d+\.\d+(?P<specifier>\D*)')

Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py (261721 => 261722)


--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py	2020-05-14 23:29:43 UTC (rev 261721)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py	2020-05-14 23:38:22 UTC (rev 261722)
@@ -160,6 +160,10 @@
         self.assertIsNone(info.total_bytes_memory())
 
     def test_available_sdks(self):
+        sdk_version_output = '10.16\n'
+        info = self.make_info(fake_sys('darwin'), fake_platform('10.14.0'), fake_executive(sdk_version_output))
+        info.xcode_sdk_version('macosx')
+
         show_sdks_output = """iOS SDKs:
     iOS 12.0                          -sdk iphoneos12.0
 
@@ -177,7 +181,7 @@
     Simulator - watchOS 5.0           -sdk watchsimulator5.0
     Simulator - watchOS 5.0 Internal    -sdk watchsimulator5.0.type
 """
-        info = self.make_info(fake_sys('darwin'), fake_platform('10.14.0'), fake_executive(show_sdks_output))
+        info._executive = fake_executive(show_sdks_output)
         self.assertEqual(info.available_sdks(), [
             'iphoneos',
             'iphonesimulator', 'iphonesimulator.type',
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to