Diff
Modified: trunk/Tools/ChangeLog (225228 => 225229)
--- trunk/Tools/ChangeLog 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/ChangeLog 2017-11-28 19:10:44 UTC (rev 225229)
@@ -1,3 +1,70 @@
+2017-11-28 Jonathan Bedard <[email protected]>
+
+ webkitpy: Standardize Version representation
+ https://bugs.webkit.org/show_bug.cgi?id=179677
+ <rdar://problem/35711277>
+
+ Reviewed by Alex Christensen.
+
+ Standardize a single method of representing versions in the Version object
+ constructor. Provide static methods for converting string and lists/tuples
+ to Version objects.
+
+ * Scripts/webkitpy/common/system/platforminfo.py:
+ (PlatformInfo.__init__): Parse Version object from string instead of using
+ the constructor.
+ (PlatformInfo.xcode_sdk_version): Ditto.
+ (PlatformInfo.xcode_version): Ditto.
+ (PlatformInfo._win_version): Construct Version object from list.
+ * Scripts/webkitpy/common/system/platforminfo_mock.py:
+ (MockPlatformInfo.xcode_sdk_version):
+ (MockPlatformInfo.xcode_version):
+ * Scripts/webkitpy/common/version.py:
+ (Version):
+ (Version.from_string): Parse string of the form 'x.x.x'.
+ (Version.from_iterable): Construct a version object from a list, tuple or
+ other indexable object.
+ (Version.__init__): Construct a Version object from integers.
+ * Scripts/webkitpy/common/version_name_map.py:
+ (VersionNameMap.__init__): Use integer Version constructor.
+ (VersionNameMap._automap_to_major_version): Ditto.
+ (VersionNameMap.to_name):
+ (VersionNameMap.strip_name_formatting): Construct Version from string.
+ * Scripts/webkitpy/common/version_name_map_unittest.py:
+ (VersionMapTestCase.test_mac_version_by_name): Use integer Version constructor.
+ (VersionMapTestCase.test_mac_name_by_version): Ditto.
+ (VersionMapTestCase.test_ios_name_by_version): Ditto.
+ * Scripts/webkitpy/common/version_unittest.py:
+ (VersionTestCase.test_string_constructor):
+ (VersionTestCase.test_from_list):
+ (VersionTestCase.test_from_tuple):
+ (VersionTestCase.test_int_constructor):
+ (VersionTestCase.test_len):
+ (VersionTestCase.test_set_by_int):
+ (VersionTestCase.test_set_by_string):
+ (VersionTestCase.test_get_by_int):
+ (VersionTestCase.test_get_by_string):
+ (VersionTestCase.test_string):
+ (VersionTestCase.test_contained_in):
+ (VersionTestCase.test_compare_versions):
+ (VersionTestCase.test_list_constructor): Deleted.
+ (VersionTestCase.test_tuple_constructor): Deleted.
+ (VersionTestCase.test_copy_constructor): Deleted.
+ (VersionTestCase.test_none_constructor): Deleted.
+ * Scripts/webkitpy/port/ios.py:
+ (IOSPort.default_baseline_search_path): Handle case where ios_version is None.
+ * Scripts/webkitpy/port/ios_device.py:
+ (IOSDevicePort.ios_version): Return None rather than an empty version.
+ * Scripts/webkitpy/port/ios_simulator.py:
+ (IOSSimulatorPort.simulator_runtime): Parse Version object from string instead
+ of using the constructor.
+ (IOSSimulatorPort.ios_version): Return None rather than an empty version.
+ * Scripts/webkitpy/xcode/simulator.py:
+ (Simulator._parse_runtimes): Parse Version object from string instead of using
+ the constructor.
+ (Simulator._parse_devices): Ditto.
+ * Scripts/webkitpy/xcode/simulator_unittest.py:
+
2017-11-28 Daniel Bates <[email protected]>
[Cocoa] First pass at implementing alternative presentation button element
Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -55,7 +55,7 @@
self.os_version = None
if self.os_name.startswith('mac'):
- version = Version(platform_module.mac_ver()[0])
+ version = Version.from_string(platform_module.mac_ver()[0])
elif self.os_name.startswith('win'):
version = self._win_version(sys_module)
elif self.os_name == 'linux' or self.os_name == 'freebsd' or self.os_name == 'openbsd' or self.os_name == 'netbsd':
@@ -62,7 +62,7 @@
version = None
else:
# Most other platforms (namely iOS) return conforming version strings.
- version = Version(platform_module.release())
+ version = Version.from_string(platform_module.release())
self._is_cygwin = sys_module.platform == 'cygwin'
@@ -145,7 +145,7 @@
# Assumes that xcrun does not write to standard output on failure (e.g. SDK does not exist).
xcrun_output = self._executive.run_command(['xcrun', '--sdk', sdk_name, '--show-sdk-version'], return_stderr=False, error_handler=Executive.ignore_error).rstrip()
if xcrun_output:
- return Version(xcrun_output)
+ return Version.from_string(xcrun_output)
return None
def xcode_simctl_list(self):
@@ -157,7 +157,7 @@
def xcode_version(self):
if not self.is_mac():
raise NotImplementedError
- return Version(self._executive.run_command(['xcodebuild', '-version']).split()[1])
+ return Version.from_string(self._executive.run_command(['xcodebuild', '-version']).split()[1])
def _determine_os_name(self, sys_platform):
if sys_platform == 'darwin':
@@ -178,8 +178,8 @@
def _win_version(self, sys_module):
if hasattr(sys_module, 'getwindowsversion'):
- return Version(sys_module.getwindowsversion()[0:3])
- return Version(self._win_version_from_cmd())
+ return Version.from_iterable(sys_module.getwindowsversion()[0:3])
+ return Version.from_iterable(self._win_version_from_cmd())
def _win_version_from_cmd(self):
# Note that this should only ever be called on windows, so this should always work.
Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -67,10 +67,10 @@
return 80
def xcode_sdk_version(self, sdk_name):
- return Version('8.1')
+ return Version(8, 1)
def xcode_version(self):
- return Version('8.0')
+ return Version(8, 0)
def xcode_simctl_list(self):
return self.expected_xcode_simctl_list
Modified: trunk/Tools/Scripts/webkitpy/common/version.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/common/version.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/common/version.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -25,27 +25,25 @@
class Version(object):
- def __init__(self, ver='0'):
- self.major = 0
- self.minor = 0
- self.tiny = 0
- self.micro = 0
- self.nano = 0
- if isinstance(ver, int):
- self.major = ver
- return
- elif isinstance(ver, str) or isinstance(ver, unicode):
- for i in xrange(len(ver.split('.'))):
- self[i] = ver.split('.')[i]
- return
- elif isinstance(ver, Version) or isinstance(ver, collections.Iterable):
- for i in xrange(len(ver)):
- self[i] = ver[i]
- return
- elif ver is None:
- return # Empty version is implicitly zero
- raise ValueError('Version expected to be string, integer, tuple or list of integers')
+ @staticmethod
+ def from_string(string):
+ assert isinstance(string, str) or isinstance(string, unicode)
+ return Version.from_iterable(string.split('.'))
+ @staticmethod
+ def from_iterable(val):
+ result = Version()
+ for i in xrange(len(val)):
+ result[i] = int(val[i])
+ return result
+
+ def __init__(self, major=0, minor=0, tiny=0, micro=0, nano=0):
+ self.major = int(major)
+ self.minor = int(minor)
+ self.tiny = int(tiny)
+ self.micro = int(micro)
+ self.nano = int(nano)
+
def __len__(self):
return 5
Modified: trunk/Tools/Scripts/webkitpy/common/version_name_map.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/common/version_name_map.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/common/version_name_map.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -43,34 +43,34 @@
self.default_system_platform = platform.os_name
self.mapping['public'] = {
'mac': {
- 'Leopard': Version('10.5'),
- 'Snow Leopard': Version('10.6'),
- 'Lion': Version('10.7'),
- 'Mountain Lion': Version('10.8'),
- 'Mavericks': Version('10.9'),
- 'Yosemite': Version('10.10'),
- 'El Capitan': Version('10.11'),
- 'Sierra': Version('10.12'),
- 'High Sierra': Version('10.13'),
- 'Future': Version('10.14'),
+ 'Leopard': Version(10, 5),
+ 'Snow Leopard': Version(10, 6),
+ 'Lion': Version(10, 7),
+ 'Mountain Lion': Version(10, 8),
+ 'Mavericks': Version(10, 9),
+ 'Yosemite': Version(10, 10),
+ 'El Capitan': Version(10, 11),
+ 'Sierra': Version(10, 12),
+ 'High Sierra': Version(10, 13),
+ 'Future': Version(10, 14),
},
- 'ios': self._automap_to_major_version('iOS', minimum=Version('10'), maximum=Version('12')),
+ 'ios': self._automap_to_major_version('iOS', minimum=Version(10), maximum=Version(12)),
'win': {
- 'Win10': Version('10'),
- '8.1': Version('6.3'),
- '8': Version('6.2'),
- '7sp0': Version('6.1.7600'),
- 'Vista': Version('6'),
- 'XP': Version('5.1'),
+ 'Win10': Version(10),
+ '8.1': Version(6, 3),
+ '8': Version(6, 2),
+ '7sp0': Version(6, 1, 7600),
+ 'Vista': Version(6),
+ 'XP': Version(5, 1),
},
}
@classmethod
- def _automap_to_major_version(cls, prefix, minimum=Version('1'), maximum=Version('1')):
+ def _automap_to_major_version(cls, prefix, minimum=Version(1), maximum=Version(1)):
result = {}
assert minimum <= maximum
for i in xrange((maximum.major + 1) - minimum.major):
- result['{} {}'.format(prefix, str(Version(str(minimum.major + i))))] = Version(str(minimum.major + i))
+ result['{} {}'.format(prefix, str(Version(minimum.major + i)))] = Version(minimum.major + i)
return result
def to_name(self, version, platform=None, table='public'):
@@ -78,7 +78,6 @@
assert table in self.mapping
assert platform in self.mapping[table]
closest_match = (None, None)
- version = Version(version)
for os_name, os_version in self.mapping[table][platform].iteritems():
if version == os_version:
return os_name
@@ -93,13 +92,13 @@
# <OS> major.minor.tiny should map to <OS> major
if ' ' in name:
try:
- name = '{}{}'.format(''.join(name.split(' ')[:-1]), Version(name.split(' ')[-1]).major)
+ name = '{}{}'.format(''.join(name.split(' ')[:-1]), Version.from_string(name.split(' ')[-1]).major)
except ValueError:
pass
else:
try:
split = re.split(r'\d', name)
- name = '{}{}'.format(split[0], Version(name[(len(split) - 1):]).major)
+ name = '{}{}'.format(split[0], Version.from_string(name[(len(split) - 1):]).major)
except ValueError:
pass
Modified: trunk/Tools/Scripts/webkitpy/common/version_name_map_unittest.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/common/version_name_map_unittest.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/common/version_name_map_unittest.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -36,11 +36,11 @@
def test_mac_version_by_name(self):
map = VersionNameMap()
- self.assertEqual(('mac', Version('10.12')), map.from_name('Sierra'))
- self.assertEqual(('mac', Version('10.12')), map.from_name('sierra'))
- self.assertEqual(('mac', Version('10.11')), map.from_name('El Capitan'))
- self.assertEqual(('mac', Version('10.11')), map.from_name('elcapitan'))
- self.assertEqual(('mac', Version('10.11')), map.from_name('el Capitan'))
+ self.assertEqual(('mac', Version(10, 12)), map.from_name('Sierra'))
+ self.assertEqual(('mac', Version(10, 12)), map.from_name('sierra'))
+ self.assertEqual(('mac', Version(10, 11)), map.from_name('El Capitan'))
+ self.assertEqual(('mac', Version(10, 11)), map.from_name('elcapitan'))
+ self.assertEqual(('mac', Version(10, 11)), map.from_name('el Capitan'))
def test_ios_version_by_name(self):
map = VersionNameMap()
@@ -52,12 +52,12 @@
def test_mac_name_by_version(self):
map = VersionNameMap()
- self.assertEqual('Sierra', map.to_name(version=Version('10.12'), platform='mac'))
- self.assertEqual('El Capitan', map.to_name(version=Version('10.11'), platform='mac'))
- self.assertEqual('El Capitan', map.to_name(version=Version('10.11.3'), platform='mac'))
+ self.assertEqual('Sierra', map.to_name(version=Version(10, 12), platform='mac'))
+ self.assertEqual('El Capitan', map.to_name(version=Version(10, 11), platform='mac'))
+ self.assertEqual('El Capitan', map.to_name(version=Version(10, 11, 3), platform='mac'))
def test_ios_name_by_version(self):
map = VersionNameMap()
- self.assertEqual('iOS 11', map.to_name(version=Version('11'), platform='ios'))
- self.assertEqual('iOS 10', map.to_name(version=Version('10'), platform='ios'))
- self.assertEqual('iOS 10', map.to_name(version=Version('10.3'), platform='ios'))
+ self.assertEqual('iOS 11', map.to_name(version=Version(11), platform='ios'))
+ self.assertEqual('iOS 10', map.to_name(version=Version(10), platform='ios'))
+ self.assertEqual('iOS 10', map.to_name(version=Version(10, 3), platform='ios'))
Modified: trunk/Tools/Scripts/webkitpy/common/version_unittest.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/common/version_unittest.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/common/version_unittest.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -28,7 +28,7 @@
class VersionTestCase(unittest.TestCase):
def test_string_constructor(self):
- v = Version('1.2.3.4.5')
+ v = Version.from_string('1.2.3.4.5')
self.assertEqual(v.major, 1)
self.assertEqual(v.minor, 2)
self.assertEqual(v.tiny, 3)
@@ -35,8 +35,8 @@
self.assertEqual(v.micro, 4)
self.assertEqual(v.nano, 5)
- def test_list_constructor(self):
- v = Version([1, 2, 3, 4, 5])
+ def test_from_list(self):
+ v = Version.from_iterable([1, 2, 3, 4, 5])
self.assertEqual(v.major, 1)
self.assertEqual(v.minor, 2)
self.assertEqual(v.tiny, 3)
@@ -43,8 +43,8 @@
self.assertEqual(v.micro, 4)
self.assertEqual(v.nano, 5)
- def test_tuple_constructor(self):
- v = Version((1, 2, 3))
+ def test_from_tuple(self):
+ v = v = Version.from_iterable((1, 2, 3))
self.assertEqual(v.major, 1)
self.assertEqual(v.minor, 2)
self.assertEqual(v.tiny, 3)
@@ -57,28 +57,12 @@
self.assertEqual(v.micro, 0)
self.assertEqual(v.nano, 0)
- def test_copy_constructor(self):
- v = Version(Version([1, 2, 3, 4, 5]))
- self.assertEqual(v.major, 1)
- self.assertEqual(v.minor, 2)
- self.assertEqual(v.tiny, 3)
- self.assertEqual(v.micro, 4)
- self.assertEqual(v.nano, 5)
-
- def test_none_constructor(self):
- v = Version(None)
- self.assertEqual(v.major, 0)
- self.assertEqual(v.minor, 0)
- self.assertEqual(v.tiny, 0)
- self.assertEqual(v.micro, 0)
- self.assertEqual(v.nano, 0)
-
def test_len(self):
- self.assertEqual(len(Version('1.2.3.4.5')), 5)
+ self.assertEqual(len(Version(1, 2, 3, 4, 5)), 5)
self.assertEqual(len(Version()), 5)
def test_set_by_int(self):
- v = Version(None)
+ v = Version()
v[0] = 1
self.assertEqual(v.major, 1)
v[1] = 2
@@ -91,7 +75,7 @@
self.assertEqual(v.nano, 5)
def test_set_by_string(self):
- v = Version(None)
+ v = Version()
v['major'] = 1
self.assertEqual(v.major, 1)
v['minor'] = 2
@@ -104,7 +88,7 @@
self.assertEqual(v.nano, 5)
def test_get_by_int(self):
- v = Version('1.2.3.4.5')
+ v = Version(1, 2, 3, 4, 5)
self.assertEqual(v[0], v.major)
self.assertEqual(v[1], v.minor)
self.assertEqual(v[2], v.tiny)
@@ -112,7 +96,7 @@
self.assertEqual(v[4], v.nano)
def test_get_by_string(self):
- v = Version('1.2.3.4.5')
+ v = Version(1, 2, 3, 4, 5)
self.assertEqual(v['major'], v.major)
self.assertEqual(v['minor'], v.minor)
self.assertEqual(v['tiny'], v.tiny)
@@ -120,29 +104,29 @@
self.assertEqual(v['nano'], v.nano)
def test_string(self):
- self.assertEqual(str(Version('1.2.3')), '1.2.3')
- self.assertEqual(str(Version('1.2.0')), '1.2')
- self.assertEqual(str(Version('1.2')), '1.2')
- self.assertEqual(str(Version('0.0.3')), '0.0.3')
+ self.assertEqual(str(Version(1, 2, 3)), '1.2.3')
+ self.assertEqual(str(Version(1, 2, 0)), '1.2')
+ self.assertEqual(str(Version(1, 2)), '1.2')
+ self.assertEqual(str(Version(0, 0, 3)), '0.0.3')
def test_contained_in(self):
- self.assertTrue(Version('11.1').contained_in(Version('11')))
- self.assertTrue(Version('11.1.2').contained_in(Version('11.1')))
- self.assertFalse(Version('11').contained_in(Version('11.1')))
- self.assertFalse(Version('11').contained_in(Version('11.1.2')))
- self.assertFalse(Version('11.1').contained_in(Version('11.1.2')))
- self.assertTrue(Version('11').contained_in(Version('11')))
- self.assertTrue(Version('11.1').contained_in(Version('11.1')))
- self.assertTrue(Version('11.1.2').contained_in(Version('11.1.2')))
- self.assertTrue(Version('11').contained_in(Version('11.0')))
- self.assertTrue(Version('11.0').contained_in(Version('11')))
- self.assertTrue(Version('11').contained_in(Version('11.0.0')))
- self.assertTrue(Version('11.0.0').contained_in(Version('11')))
- self.assertTrue(Version('11.1').contained_in(Version('11.1.0')))
- self.assertTrue(Version('11.1.0').contained_in(Version('11.1')))
+ self.assertTrue(Version(11, 1).contained_in(Version(11)))
+ self.assertTrue(Version(11, 1, 2).contained_in(Version(11, 1)))
+ self.assertFalse(Version(11).contained_in(Version(11, 1)))
+ self.assertFalse(Version(11).contained_in(Version(11, 1, 2)))
+ self.assertFalse(Version(11, 1).contained_in(Version(11, 1, 2)))
+ self.assertTrue(Version(11).contained_in(Version(11)))
+ self.assertTrue(Version(11, 1).contained_in(Version(11, 1)))
+ self.assertTrue(Version(11, 1, 2).contained_in(Version(11, 1, 2)))
+ self.assertTrue(Version(11).contained_in(Version(11, 0)))
+ self.assertTrue(Version(11, 0).contained_in(Version(11)))
+ self.assertTrue(Version(11).contained_in(Version(11, 0, 0)))
+ self.assertTrue(Version(11, 0, 0).contained_in(Version(11)))
+ self.assertTrue(Version(11, 1).contained_in(Version(11, 1, 0)))
+ self.assertTrue(Version(11, 1, 0).contained_in(Version(11, 1)))
def test_compare_versions(self):
- self.assertEqual(Version('1.2.3'), Version('1.2.3'))
- self.assertGreater(Version('1.2.4'), Version('1.2.3'))
- self.assertGreater(Version('1.3.2'), Version('1.2.3'))
- self.assertGreater(Version('2.1.1'), Version('1.2.3'))
+ self.assertEqual(Version(1, 2, 3), Version(1, 2, 3))
+ self.assertGreater(Version(1, 2, 4), Version(1, 2, 3))
+ self.assertGreater(Version(1, 3, 2), Version(1, 2, 3))
+ self.assertGreater(Version(2, 1, 1), Version(1, 2, 3))
Modified: trunk/Tools/Scripts/webkitpy/port/ios.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/port/ios.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/port/ios.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -109,15 +109,19 @@
wk_string = 'wk1'
if self.get_option('webkit_test_runner'):
wk_string = 'wk2'
- fallback_names = [
- '{}-{}-{}'.format(self.port_name, self.ios_version().major, wk_string),
- '{}-{}'.format(self.port_name, self.ios_version().major),
- '{}-{}'.format(self.port_name, wk_string),
- self.port_name,
- '{}-{}'.format(IOSPort.port_name, self.ios_version().major),
- '{}-{}'.format(IOSPort.port_name, wk_string),
- IOSPort.port_name,
- ]
+ # If we don't have a specified version, that means we using the port without an SDK.
+ # This usually means we're doing some type of testing.In this case, don't add version fallbacks
+ fallback_names = []
+ if self.ios_version():
+ fallback_names.append('{}-{}-{}'.format(self.port_name, self.ios_version().major, wk_string))
+ fallback_names.append('{}-{}'.format(self.port_name, self.ios_version().major))
+ fallback_names.append('{}-{}'.format(self.port_name, wk_string))
+ fallback_names.append(self.port_name)
+ if self.ios_version():
+ fallback_names.append('{}-{}'.format(IOSPort.port_name, self.ios_version().major))
+ fallback_names.append('{}-{}'.format(IOSPort.port_name, wk_string))
+ fallback_names.append(IOSPort.port_name)
+
if self.get_option('webkit_test_runner'):
fallback_names.append('wk2')
Modified: trunk/Tools/Scripts/webkitpy/port/ios_device.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/port/ios_device.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/port/ios_device.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -95,7 +95,7 @@
@memoized
def ios_version(self):
if self.get_option('version'):
- return Version(self.get_option('version'))
+ return Version.from_string(self.get_option('version'))
if not apple_additions():
raise RuntimeError(self.NO_ON_DEVICE_TESTING)
@@ -111,7 +111,7 @@
raise RuntimeError('Multiple connected devices have different iOS versions')
if version:
return VersionNameMap.map(self.host.platform).from_name(version)[1]
- return Version(version)
+ return None
# FIXME: These need device implementations <rdar://problem/30497991>.
def check_for_leaks(self, process_name, process_pid):
Modified: trunk/Tools/Scripts/webkitpy/port/ios_simulator.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/port/ios_simulator.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/port/ios_simulator.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -103,7 +103,7 @@
if runtime_identifier:
runtime = Runtime.from_identifier(runtime_identifier)
elif self.get_option('version'):
- runtime = Runtime.from_version(Version(self.get_option('version')))
+ runtime = Runtime.from_version(Version.from_string(self.get_option('version')))
else:
runtime = Runtime.from_version(self.host.platform.xcode_sdk_version('iphonesimulator'))
return runtime
@@ -112,10 +112,10 @@
def ios_version(self):
runtime_identifier = self.get_option('runtime')
if self.get_option('version'):
- return Version(self.get_option('version'))
+ return Version.from_string(self.get_option('version'))
if runtime_identifier:
- return Version(Runtime.from_identifier(runtime_identifier).version)
- return Version(self.host.platform.xcode_sdk_version('iphonesimulator'))
+ return Runtime.from_identifier(runtime_identifier).version
+ return self.host.platform.xcode_sdk_version('iphonesimulator')
def simulator_device_type(self):
device_type_identifier = self.get_option('device_type')
Modified: trunk/Tools/Scripts/webkitpy/xcode/simulator.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/xcode/simulator.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/xcode/simulator.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -333,7 +333,7 @@
if line != '== Devices ==':
raise RuntimeError('Expected == Devices == header but got: "{}"'.format(line))
break
- runtime = Runtime(version=Version(runtime_match.group('version')),
+ runtime = Runtime(version=Version.from_string(runtime_match.group('version')),
identifier=runtime_match.group('identifier'),
available=runtime_match.group('availability') is None,
is_internal_runtime=('Internal' in runtime_match.group('os')))
@@ -351,7 +351,7 @@
for line in lines:
version_match = self.version_re.match(line)
if version_match:
- current_runtime = self.runtime(version=Version(version_match.group('version')), is_internal_runtime=bool(version_match.group('internal')))
+ current_runtime = self.runtime(version=Version.from_string(version_match.group('version')), is_internal_runtime=bool(version_match.group('internal')))
assert current_runtime
continue
Modified: trunk/Tools/Scripts/webkitpy/xcode/simulator_unittest.py (225228 => 225229)
--- trunk/Tools/Scripts/webkitpy/xcode/simulator_unittest.py 2017-11-28 18:56:56 UTC (rev 225228)
+++ trunk/Tools/Scripts/webkitpy/xcode/simulator_unittest.py 2017-11-28 19:10:44 UTC (rev 225229)
@@ -135,7 +135,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.iOS-8-0', runtime_ios_8.identifier)
self.assertEqual(True, runtime_ios_8.available)
self.assertEqual(False, runtime_ios_8.is_internal_runtime)
- self.assertEqual(Version([8, 0]), runtime_ios_8.version)
+ self.assertEqual(Version(8, 0), runtime_ios_8.version)
self.assertEqual(11, len(runtime_ios_8.devices))
device_iphone_4s = runtime_ios_8.devices[0]
@@ -208,7 +208,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.iOS-8-0-Internal', runtime_ios_8_internal.identifier)
self.assertEqual(False, runtime_ios_8_internal.available)
self.assertEqual(True, runtime_ios_8_internal.is_internal_runtime)
- self.assertEqual(Version([8, 0]), runtime_ios_8_internal.version)
+ self.assertEqual(Version(8, 0), runtime_ios_8_internal.version)
self.assertEqual(0, len(runtime_ios_8_internal.devices))
runtime_ios_8_4 = simulator.runtimes[2]
@@ -215,7 +215,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.iOS-8-4', runtime_ios_8_4.identifier)
self.assertEqual(True, runtime_ios_8_4.available)
self.assertEqual(False, runtime_ios_8_4.is_internal_runtime)
- self.assertEqual(Version([8, 4, 1]), runtime_ios_8_4.version)
+ self.assertEqual(Version(8, 4, 1), runtime_ios_8_4.version)
self.assertEqual(0, len(runtime_ios_8_4.devices))
runtime_tvos_9 = simulator.runtimes[3]
@@ -222,7 +222,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.tvOS-9-0', runtime_tvos_9.identifier)
self.assertEqual(True, runtime_tvos_9.available)
self.assertEqual(False, runtime_tvos_9.is_internal_runtime)
- self.assertEqual(Version([9, 0]), runtime_tvos_9.version)
+ self.assertEqual(Version(9, 0), runtime_tvos_9.version)
self.assertEqual(1, len(runtime_tvos_9.devices))
device_apple_tv_1080p = runtime_tvos_9.devices[0]
@@ -235,7 +235,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.watchOS-2-0', runtime_watchos_2.identifier)
self.assertEqual(True, runtime_watchos_2.available)
self.assertEqual(False, runtime_watchos_2.is_internal_runtime)
- self.assertEqual(Version([2, 0]), runtime_watchos_2.version)
+ self.assertEqual(Version(2, 0), runtime_watchos_2.version)
self.assertEqual(2, len(runtime_watchos_2.devices))
runtime_ios_10 = simulator.runtimes[5]
@@ -242,7 +242,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.iOS-10-0', runtime_ios_10.identifier)
self.assertEqual(True, runtime_ios_10.available)
self.assertEqual(False, runtime_ios_10.is_internal_runtime)
- self.assertEqual(Version([10, 0]), runtime_ios_10.version)
+ self.assertEqual(Version(10, 0), runtime_ios_10.version)
self.assertEqual(0, len(runtime_ios_10.devices))
device_apple_watch_38mm = runtime_watchos_2.devices[0]
@@ -316,7 +316,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.iOS-8-0', runtime_ios_8.identifier)
self.assertEqual(True, runtime_ios_8.available)
self.assertEqual(False, runtime_ios_8.is_internal_runtime)
- self.assertEqual(Version([8, 0]), runtime_ios_8.version)
+ self.assertEqual(Version(8, 0), runtime_ios_8.version)
self.assertEqual(1, len(runtime_ios_8.devices))
device_iphone_4s = runtime_ios_8.devices[0]
@@ -329,7 +329,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.iOS-8-0-Internal', runtime_ios_8_internal.identifier)
self.assertEqual(False, runtime_ios_8_internal.available)
self.assertEqual(True, runtime_ios_8_internal.is_internal_runtime)
- self.assertEqual(Version([8, 0]), runtime_ios_8_internal.version)
+ self.assertEqual(Version(8, 0), runtime_ios_8_internal.version)
self.assertEqual(0, len(runtime_ios_8_internal.devices))
def test_device_pairs(self):
@@ -357,7 +357,7 @@
self.assertEqual('com.apple.CoreSimulator.SimRuntime.iOS-8-0', runtime_ios_8.identifier)
self.assertEqual(True, runtime_ios_8.available)
self.assertEqual(False, runtime_ios_8.is_internal_runtime)
- self.assertEqual(Version([8, 0]), runtime_ios_8.version)
+ self.assertEqual(Version(8, 0), runtime_ios_8.version)
self.assertEqual(1, len(runtime_ios_8.devices))
device_iphone_4s = runtime_ios_8.devices[0]