Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py (225721 => 225722)
--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py 2017-12-09 05:40:02 UTC (rev 225721)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py 2017-12-09 07:39:47 UTC (rev 225722)
@@ -57,7 +57,7 @@
if self.os_name.startswith('mac'):
version = Version.from_string(platform_module.mac_ver()[0])
elif self.os_name.startswith('win'):
- version = self._win_version(sys_module)
+ version = self._win_version()
elif self.os_name == 'linux' or self.os_name == 'freebsd' or self.os_name == 'openbsd' or self.os_name == 'netbsd':
version = None
else:
@@ -176,14 +176,15 @@
return 'haiku'
raise AssertionError('unrecognized platform string "%s"' % sys_platform)
- def _win_version(self, sys_module):
- if hasattr(sys_module, 'getwindowsversion'):
- return Version.from_iterable(sys_module.getwindowsversion()[0:3])
- return Version.from_iterable(self._win_version_from_cmd())
+ def _win_version(self):
+ version = self._win_version_str()
+ match_object = re.search(r'(?P<major>\d+)\.(?P<minor>\d+)\.(?P<build>\d+)', version)
+ assert match_object, 'cmd returned an unexpected version string: ' + version
+ return Version.from_iterable(match_object.groups())
- def _win_version_from_cmd(self):
+ def _win_version_str(self):
+ version = self._platform_module.win32_ver()[1]
+ if version:
+ return version
# Note that this should only ever be called on windows, so this should always work.
- ver_output = self._executive.run_command(['cmd', '/c', 'ver'], decode_output=False)
- match_object = re.search(r'(?P<major>\d+)\.(?P<minor>\d+)\.(?P<build>\d+)', ver_output)
- assert match_object, 'cmd returned an unexpected version string: ' + ver_output
- return match_object.groups()
+ return self._executive.run_command(['cmd', '/c', 'ver'], decode_output=False)
Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py (225721 => 225722)
--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py 2017-12-09 05:40:02 UTC (rev 225721)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py 2017-12-09 07:39:47 UTC (rev 225722)
@@ -35,17 +35,15 @@
from webkitpy.common.system.platforminfo import PlatformInfo
-def fake_sys(platform_str='darwin', windows_version_tuple=None):
+def fake_sys(platform_str='darwin'):
class FakeSysModule(object):
platform = platform_str
- if windows_version_tuple:
- getwindowsversion = lambda x: windows_version_tuple
return FakeSysModule()
-def fake_platform(mac_version_string='10.6.3', release_string='bar'):
+def fake_platform(mac_version_string='10.6.3', release_string='bar', win_version_string=''):
class FakePlatformModule(object):
def mac_ver(self):
@@ -57,6 +55,9 @@
def release(self):
return release_string
+ def win32_ver(self):
+ return tuple(['', win_version_string, ''])
+
return FakePlatformModule()
@@ -106,7 +107,7 @@
self.assertFalse(info.is_win())
self.assertFalse(info.is_freebsd())
- info = self.make_info(fake_sys('win32', tuple([6, 1, 7600])))
+ info = self.make_info(fake_sys('win32'), fake_platform(win_version_string='6.1.7600'))
self.assertEqual(info.os_name, 'win')
self.assertFalse(info.is_linux())
self.assertFalse(info.is_mac())
@@ -149,12 +150,12 @@
self.assertEqual(self.make_info(fake_sys('freebsd8'), fake_platform('', '8.3-PRERELEASE')).os_version, None)
self.assertEqual(self.make_info(fake_sys('freebsd9'), fake_platform('', '9.0-RELEASE')).os_version, None)
- self.assertRaises(AssertionError, self.make_info, fake_sys('win32', tuple([5, 0, 1234])))
- self.assertEqual(self.make_info(fake_sys('win32', tuple([10, 0, 14393]))).os_version, 'win10')
- self.assertEqual(self.make_info(fake_sys('win32', tuple([6, 2, 1234]))).os_version, '8')
- self.assertEqual(self.make_info(fake_sys('win32', tuple([6, 1, 7600]))).os_version, '7sp0')
- self.assertEqual(self.make_info(fake_sys('win32', tuple([6, 0, 1234]))).os_version, 'vista')
- self.assertEqual(self.make_info(fake_sys('win32', tuple([5, 1, 1234]))).os_version, 'xp')
+ self.assertRaises(AssertionError, self.make_info, fake_sys('win32'), fake_platform(win_version_string='5.0.1234'))
+ self.assertEqual(self.make_info(fake_sys('win32'), fake_platform(win_version_string='10.0.14393')).os_version, 'win10')
+ self.assertEqual(self.make_info(fake_sys('win32'), fake_platform(win_version_string='6.2.1234')).os_version, '8')
+ self.assertEqual(self.make_info(fake_sys('win32'), fake_platform(win_version_string='6.1.7600')).os_version, '7sp0')
+ self.assertEqual(self.make_info(fake_sys('win32'), fake_platform(win_version_string='6.0.1234')).os_version, 'vista')
+ self.assertEqual(self.make_info(fake_sys('win32'), fake_platform(win_version_string='5.1.1234')).os_version, 'xp')
self.assertRaises(AssertionError, self.make_info, fake_sys('win32'), executive=fake_executive('5.0.1234'))
self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_executive('6.2.1234')).os_version, '8')
@@ -166,7 +167,7 @@
info = self.make_info(fake_sys('darwin'))
self.assertNotEquals(info.display_name(), '')
- info = self.make_info(fake_sys('win32', tuple([6, 1, 7600])))
+ info = self.make_info(fake_sys('win32'), fake_platform(win_version_string='6.1.7600'))
self.assertNotEquals(info.display_name(), '')
info = self.make_info(fake_sys('linux2'), fake_platform('', '10.4'))
@@ -179,7 +180,7 @@
info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'), fake_executive('1234'))
self.assertEqual(info.total_bytes_memory(), 1234)
- info = self.make_info(fake_sys('win32', tuple([6, 1, 7600])))
+ info = self.make_info(fake_sys('win32'), fake_platform(win_version_string='6.1.7600'))
self.assertIsNone(info.total_bytes_memory())
info = self.make_info(fake_sys('linux2'), fake_platform('', '10.4'))