Title: [213164] trunk/Tools
Revision
213164
Author
jbed...@apple.com
Date
2017-02-28 12:51:48 -0800 (Tue, 28 Feb 2017)

Log Message

webkitpy: Regular _expression_ for parsing simctl device information is wrong for iPad Pro
https://bugs.webkit.org/show_bug.cgi?id=168394

Reviewed by Daniel Bates.

* Scripts/webkitpy/xcode/simulator.py:
(Simulator): Allow for parenthesis in device name.
* Scripts/webkitpy/xcode/simulator_unittest.py: Add iPad Pro to test.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (213163 => 213164)


--- trunk/Tools/ChangeLog	2017-02-28 20:40:14 UTC (rev 213163)
+++ trunk/Tools/ChangeLog	2017-02-28 20:51:48 UTC (rev 213164)
@@ -1,3 +1,14 @@
+2017-02-28  Jonathan Bedard  <jbed...@apple.com>
+
+        webkitpy: Regular _expression_ for parsing simctl device information is wrong for iPad Pro
+        https://bugs.webkit.org/show_bug.cgi?id=168394
+
+        Reviewed by Daniel Bates.
+
+        * Scripts/webkitpy/xcode/simulator.py:
+        (Simulator): Allow for parenthesis in device name.
+        * Scripts/webkitpy/xcode/simulator_unittest.py: Add iPad Pro to test.
+
 2017-02-28  Myles C. Maxfield  <mmaxfi...@apple.com>
 
         [macOS] Migrate off of CTFontCreateForCSS

Modified: trunk/Tools/Scripts/webkitpy/xcode/simulator.py (213163 => 213164)


--- trunk/Tools/Scripts/webkitpy/xcode/simulator.py	2017-02-28 20:40:14 UTC (rev 213163)
+++ trunk/Tools/Scripts/webkitpy/xcode/simulator.py	2017-02-28 20:51:48 UTC (rev 213164)
@@ -171,7 +171,7 @@
     """
     Represents the iOS Simulator infrastructure under the currently select Xcode.app bundle.
     """
-    device_type_re = re.compile('(?P<name>[^(]+)\((?P<identifier>[^)]+)\)')
+    device_type_re = re.compile('(?P<name>.+)\((?P<identifier>[^)]+)\)')
     # FIXME: runtime_re parses the version from the runtime name, but that does not contain the full version number
     # (it can omit the revision). We should instead parse the version from the number contained in parentheses.
     runtime_re = re.compile(
@@ -179,7 +179,7 @@
     unavailable_version_re = re.compile('-- Unavailable: (?P<identifier>[^ ]+) --')
     version_re = re.compile('-- (i|watch|tv)OS (?P<version>\d+\.\d+)(?P<internal> Internal)? --')
     devices_re = re.compile(
-        '\s*(?P<name>[^(]+ )\((?P<udid>[^)]+)\) \((?P<state>[^)]+)\)( \((?P<availability>[^)]+)\))?')
+        '\s*(?P<name>.+) \((?P<udid>[^)]+)\) \((?P<state>[^)]+)\)( \((?P<availability>[^)]+)\))?')
 
     _managed_devices = {}
     Device = None

Modified: trunk/Tools/Scripts/webkitpy/xcode/simulator_unittest.py (213163 => 213164)


--- trunk/Tools/Scripts/webkitpy/xcode/simulator_unittest.py	2017-02-28 20:40:14 UTC (rev 213163)
+++ trunk/Tools/Scripts/webkitpy/xcode/simulator_unittest.py	2017-02-28 20:51:48 UTC (rev 213164)
@@ -46,6 +46,7 @@
 iPad 2 (com.apple.CoreSimulator.SimDeviceType.iPad-2)
 iPad Retina (com.apple.CoreSimulator.SimDeviceType.iPad-Retina)
 iPad Air (com.apple.CoreSimulator.SimDeviceType.iPad-Air)
+iPad Pro (9.7-inch) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-)
 Apple TV 1080p (com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p)
 Apple Watch - 38mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-38mm)
 Apple Watch - 42mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-42mm)
@@ -66,6 +67,7 @@
     iPad 2 (2967C54F-A499-4043-A82C-8C1F5ADBB4A9) (Shutdown)
     iPad Retina (733FC71E-22F4-4077-BF79-25C27EA881FC) (Shutdown)
     iPad Air (67266841-82F3-4545-AED6-568B117E41A8) (Shutdown)
+    iPad Pro (9.7 inch) (DEBD50B8-0566-4D7A-BCDB-4134CFE5DA40) (Shutdown)
 -- iOS 8.0 Internal --
 -- tvOS 9.0 --
 Apple TV 1080p (55281ABE-9C27-438B-AD50-C540D7BC4BAC) (Shutdown)
@@ -74,7 +76,7 @@
     Apple Watch - 42mm (186AD85E-9BE5-4734-BC33-DF50484AAFF0) (Shutdown)
 ''')
         simulator = Simulator(host=self._host)
-        self.assertEqual(11, len(simulator.device_types))
+        self.assertEqual(12, len(simulator.device_types))
 
         device_type_iphone_4s = simulator.device_types[0]
         self.assertEqual('iPhone 4s', device_type_iphone_4s.name)
@@ -108,15 +110,19 @@
         self.assertEqual('iPad Air', device_type_ipad_air.name)
         self.assertEqual('com.apple.CoreSimulator.SimDeviceType.iPad-Air', device_type_ipad_air.identifier)
 
-        device_type_apple_tv_1080p = simulator.device_types[8]
+        device_type_ipad_pro = simulator.device_types[8]
+        self.assertEqual('iPad Pro (9.7-inch)', device_type_ipad_pro.name)
+        self.assertEqual('com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-', device_type_ipad_pro.identifier)
+
+        device_type_apple_tv_1080p = simulator.device_types[9]
         self.assertEqual('Apple TV 1080p', device_type_apple_tv_1080p.name)
         self.assertEqual('com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p', device_type_apple_tv_1080p.identifier)
 
-        device_type_apple_watch_38mm = simulator.device_types[9]
+        device_type_apple_watch_38mm = simulator.device_types[10]
         self.assertEqual('Apple Watch - 38mm', device_type_apple_watch_38mm.name)
         self.assertEqual('com.apple.CoreSimulator.SimDeviceType.Apple-Watch-38mm', device_type_apple_watch_38mm.identifier)
 
-        device_type_apple_watch_42mm = simulator.device_types[10]
+        device_type_apple_watch_42mm = simulator.device_types[11]
         self.assertEqual('Apple Watch - 42mm', device_type_apple_watch_42mm.name)
         self.assertEqual('com.apple.CoreSimulator.SimDeviceType.Apple-Watch-42mm', device_type_apple_watch_42mm.identifier)
 
@@ -127,7 +133,7 @@
         self.assertEqual(True, runtime_ios_8.available)
         self.assertEqual(False, runtime_ios_8.is_internal_runtime)
         self.assertEqual(tuple([8, 0]), runtime_ios_8.version)
-        self.assertEqual(9, len(runtime_ios_8.devices))
+        self.assertEqual(10, len(runtime_ios_8.devices))
 
         device_iphone_4s = runtime_ios_8.devices[0]
         self.assertEqual('iPhone 4s', device_iphone_4s.name)
@@ -183,6 +189,12 @@
         self.assertEqual(True, device_ipad_air.available)
         self.assertEqual(runtime_ios_8, device_ipad_air.runtime)
 
+        device_ipad_pro = runtime_ios_8.devices[9]
+        self.assertEqual('iPad Pro (9.7 inch)', device_ipad_pro.name)
+        self.assertEqual('DEBD50B8-0566-4D7A-BCDB-4134CFE5DA40', device_ipad_pro.udid)
+        self.assertEqual(True, device_ipad_pro.available)
+        self.assertEqual(runtime_ios_8, device_ipad_pro.runtime)
+
         runtime_ios_8_internal = simulator.runtimes[1]
         self.assertEqual('com.apple.CoreSimulator.SimRuntime.iOS-8-0-Internal', runtime_ios_8_internal.identifier)
         self.assertEqual(False, runtime_ios_8_internal.available)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to