diff options
Diffstat (limited to 'chromium/third_party/blink/tools')
11 files changed, 95 insertions, 28 deletions
diff --git a/chromium/third_party/blink/tools/blinkpy/common/checkout/baseline_optimizer_unittest.py b/chromium/third_party/blink/tools/blinkpy/common/checkout/baseline_optimizer_unittest.py index 6e202e9ac0b..087f9552a89 100644 --- a/chromium/third_party/blink/tools/blinkpy/common/checkout/baseline_optimizer_unittest.py +++ b/chromium/third_party/blink/tools/blinkpy/common/checkout/baseline_optimizer_unittest.py @@ -67,6 +67,15 @@ class BaselineOptimizerTest(unittest.TestCase): 'port_name': 'linux-trusty', 'specifiers': ['Trusty', 'Release'] }, + 'Fake Test Linux HighDPI': { + 'port_name': 'linux-trusty', + 'specifiers': ['Trusty', 'Release'], + 'flag_specific': 'highdpi', + }, + 'Fake Test Mac12.0': { + 'port_name': 'mac-mac12', + 'specifiers': ['Mac12', 'Release'], + }, 'Fake Test Mac11.0': { 'port_name': 'mac-mac11', 'specifiers': ['Mac11', 'Release'] @@ -93,7 +102,7 @@ class BaselineOptimizerTest(unittest.TestCase): # tests need to be adjusted accordingly. self.assertEqual(sorted(self.host.port_factory.all_port_names()), [ 'linux-trusty', 'mac-mac10.12', 'mac-mac10.13', 'mac-mac10.14', - 'mac-mac10.15', 'mac-mac11', 'win-win10.20h2' + 'mac-mac10.15', 'mac-mac11', 'mac-mac12', 'win-win10.20h2', ]) def _assert_optimization(self, diff --git a/chromium/third_party/blink/tools/blinkpy/common/config/builders.json b/chromium/third_party/blink/tools/blinkpy/common/config/builders.json index 180da1b9f8f..d895568e8de 100644 --- a/chromium/third_party/blink/tools/blinkpy/common/config/builders.json +++ b/chromium/third_party/blink/tools/blinkpy/common/config/builders.json @@ -123,6 +123,18 @@ "specifiers": ["Mac11-arm64", "Release"], "is_try_builder": true }, + "mac12.0-blink-rel": { + "main": "tryserver.blink", + "port_name": "mac-mac12", + "specifiers": ["Mac12", "Release"], + "is_try_builder": true + }, + "mac12.0.arm64-blink-rel": { + "main": "tryserver.blink", + "port_name": "mac-mac12-arm64", + "specifiers": ["Mac12-arm64", "Release"], + "is_try_builder": true + }, "win7-blink-rel": { "master": "tryserver.blink", "port_name": "win-win7", diff --git a/chromium/third_party/blink/tools/blinkpy/common/host_mock.py b/chromium/third_party/blink/tools/blinkpy/common/host_mock.py index e81a7ef7b56..02efe28da58 100644 --- a/chromium/third_party/blink/tools/blinkpy/common/host_mock.py +++ b/chromium/third_party/blink/tools/blinkpy/common/host_mock.py @@ -46,12 +46,13 @@ class MockHost(MockSystemHost): git=None, os_name=None, os_version=None, + machine=None, time_return_val=123): - super(MockHost, self).__init__( - log_executive=log_executive, - os_name=os_name, - os_version=os_version, - time_return_val=time_return_val) + super(MockHost, self).__init__(log_executive=log_executive, + os_name=os_name, + os_version=os_version, + machine=None, + time_return_val=time_return_val) add_unit_tests_to_mock_filesystem(self.filesystem) self._add_base_manifest_to_mock_filesystem(self.filesystem) diff --git a/chromium/third_party/blink/tools/blinkpy/common/system/platform_info.py b/chromium/third_party/blink/tools/blinkpy/common/system/platform_info.py index 447006ebe7d..5536462a7cd 100644 --- a/chromium/third_party/blink/tools/blinkpy/common/system/platform_info.py +++ b/chromium/third_party/blink/tools/blinkpy/common/system/platform_info.py @@ -30,6 +30,8 @@ import re import sys from six.moves import map +from blinkpy.common.system.executive import ScriptError + class PlatformInfo(object): """This class provides a consistent (and mockable) interpretation of @@ -56,7 +58,7 @@ class PlatformInfo(object): self.os_version = platform_module.release() if self.os_name.startswith('mac'): self.os_version = self._determine_mac_version( - platform_module.mac_ver()[0]) + self._raw_mac_version(platform_module)) if self.os_name.startswith('win'): self.os_version = self._determine_win_version( self._win_version_tuple()) @@ -162,6 +164,18 @@ class PlatformInfo(object): return 'unknown' + def _raw_mac_version(self, platform_module): + """Read this Mac's version string (starts with "<major>.<minor>").""" + try: + # crbug/1294954: Python's `platform.mac_ver()` can be unreliable. + command = ['sw_vers', '-productVersion'] + output = self._executive.run_command(command).strip() + if re.match(r'\d+\.\d+', output): + return output + except (OSError, SystemError, ScriptError): + pass + return platform_module.mac_ver()[0] + def _determine_os_name(self, sys_platform): if sys_platform == 'darwin': return 'mac' diff --git a/chromium/third_party/blink/tools/blinkpy/common/system/platform_info_mock.py b/chromium/third_party/blink/tools/blinkpy/common/system/platform_info_mock.py index c129ee30408..326d8df73ec 100644 --- a/chromium/third_party/blink/tools/blinkpy/common/system/platform_info_mock.py +++ b/chromium/third_party/blink/tools/blinkpy/common/system/platform_info_mock.py @@ -34,13 +34,13 @@ class MockPlatformInfo(object): linux_distribution=None, is_highdpi=False, is_running_rosetta=False, - machine='x86_64'): + machine=None): self.os_name = os_name self.os_version = os_version self._linux_distribution = linux_distribution self._is_highdpi = is_highdpi self._is_running_rosetta = is_running_rosetta - self._machine = machine + self._machine = machine or 'x86_64' def is_mac(self): return self.os_name == 'mac' diff --git a/chromium/third_party/blink/tools/blinkpy/common/system/platform_info_unittest.py b/chromium/third_party/blink/tools/blinkpy/common/system/platform_info_unittest.py index 04de9c31771..2ac7d68db23 100644 --- a/chromium/third_party/blink/tools/blinkpy/common/system/platform_info_unittest.py +++ b/chromium/third_party/blink/tools/blinkpy/common/system/platform_info_unittest.py @@ -168,6 +168,9 @@ class TestPlatformInfo(unittest.TestCase): self.assertEqual( self.make_info(fake_sys('darwin'), fake_platform('11.0.0')).os_version, 'mac11') + self.assertEqual( + self.make_info(fake_sys('darwin'), + fake_platform('12.0.0')).os_version, 'mac12') with self.assertRaises(AssertionError): self.make_info(fake_sys('darwin'), fake_platform('10.20.0')) diff --git a/chromium/third_party/blink/tools/blinkpy/common/system/system_host_mock.py b/chromium/third_party/blink/tools/blinkpy/common/system/system_host_mock.py index cc983c0edb1..506a7c4fc63 100644 --- a/chromium/third_party/blink/tools/blinkpy/common/system/system_host_mock.py +++ b/chromium/third_party/blink/tools/blinkpy/common/system/system_host_mock.py @@ -39,6 +39,7 @@ class MockSystemHost(object): log_executive=False, os_name=None, os_version=None, + machine=None, executive=None, filesystem=None, time_return_val=123): @@ -46,7 +47,7 @@ class MockSystemHost(object): self.executive = executive or MockExecutive(should_log=log_executive) self.filesystem = filesystem or MockFileSystem() self.user = MockUser() - self.platform = MockPlatformInfo() + self.platform = MockPlatformInfo(machine=machine) if os_name: self.platform.os_name = os_name if os_version: diff --git a/chromium/third_party/blink/tools/blinkpy/web_tests/port/base.py b/chromium/third_party/blink/tools/blinkpy/web_tests/port/base.py index 968194c31c4..b5686e9d558 100644 --- a/chromium/third_party/blink/tools/blinkpy/web_tests/port/base.py +++ b/chromium/third_party/blink/tools/blinkpy/web_tests/port/base.py @@ -147,6 +147,8 @@ class Port(object): ('mac10.15', 'x86'), ('mac11', 'x86'), ('mac11-arm64', 'arm64'), + ('mac12', 'x86_64'), + ('mac12-arm64', 'arm64'), ('win7', 'x86'), ('win10.20h2', 'x86'), ('trusty', 'x86_64'), @@ -156,7 +158,7 @@ class Port(object): CONFIGURATION_SPECIFIER_MACROS = { 'mac': [ 'mac10.12', 'mac10.13', 'mac10.14', 'mac10.15', 'mac11', - 'mac11-arm64' + 'mac11-arm64', 'mac12', 'mac12-arm64' ], 'win': ['win7', 'win10.20h2'], 'linux': ['trusty'], diff --git a/chromium/third_party/blink/tools/blinkpy/web_tests/port/mac.py b/chromium/third_party/blink/tools/blinkpy/web_tests/port/mac.py index 624aaaea233..401a442b582 100644 --- a/chromium/third_party/blink/tools/blinkpy/web_tests/port/mac.py +++ b/chromium/third_party/blink/tools/blinkpy/web_tests/port/mac.py @@ -36,12 +36,15 @@ _log = logging.getLogger(__name__) class MacPort(base.Port): SUPPORTED_VERSIONS = ('mac10.12', 'mac10.13', 'mac10.14', 'mac10.15', - 'mac11', 'mac11-arm64') + 'mac11', 'mac11-arm64', 'mac12', 'mac12-arm64') port_name = 'mac' FALLBACK_PATHS = {} - FALLBACK_PATHS['mac11'] = ['mac'] + FALLBACK_PATHS['mac12'] = ['mac'] + FALLBACK_PATHS['mac12-arm64'] = ['mac-mac12-arm64' + ] + FALLBACK_PATHS['mac12'] + FALLBACK_PATHS['mac11'] = ['mac-mac11'] + FALLBACK_PATHS['mac12'] FALLBACK_PATHS['mac11-arm64'] = ['mac-mac11-arm64' ] + FALLBACK_PATHS['mac11'] FALLBACK_PATHS['mac10.15'] = ['mac-mac10.15'] + FALLBACK_PATHS['mac11'] @@ -56,17 +59,11 @@ class MacPort(base.Port): @classmethod def determine_full_port_name(cls, host, options, port_name): if port_name.endswith('mac'): - # TODO(crbug.com/1253659): verify this under native arm. - if (host.platform.get_machine() == 'arm64' - or host.platform.is_running_rosetta()): - # TODO(crbug.com/1197679): When running under py3, change this - # to `version = host.platform.os_version + '-arm64'`. This - # must be done before macOS 12 capability for this script. - version = 'mac11-arm64' + parts = [port_name] # TODO(crbug.com/1114885): This is to workaround the failure of # blink_python_tests on mac10.10 and 10.11 waterfall bots. Remove this # when we remove the step from the bots. - elif (host.platform.os_version == 'mac10.10' + if (host.platform.os_version == 'mac10.10' or host.platform.os_version == 'mac10.11'): version = 'mac10.12' # TODO(crbug.com/1126062): Workaround for Big sur using 10.16 version, @@ -76,7 +73,15 @@ class MacPort(base.Port): version = 'mac11' else: version = host.platform.os_version - return port_name + '-' + version + parts.append(version) + # Maybe add an architecture suffix. + # In this context, 'arm64' refers to Apple M1. + # No suffix is appended for Intel-based ports. + if (host.platform.get_machine() == 'arm64' + or host.platform.is_running_rosetta()): + # TODO(crbug.com/1253659): verify this under native arm. + parts.append('arm64') + return '-'.join(parts) return port_name def __init__(self, host, port_name, **kwargs): diff --git a/chromium/third_party/blink/tools/blinkpy/web_tests/port/mac_unittest.py b/chromium/third_party/blink/tools/blinkpy/web_tests/port/mac_unittest.py index c99069f6b7f..d754896c303 100644 --- a/chromium/third_party/blink/tools/blinkpy/web_tests/port/mac_unittest.py +++ b/chromium/third_party/blink/tools/blinkpy/web_tests/port/mac_unittest.py @@ -39,9 +39,11 @@ class MacPortTest(port_testcase.PortTestCase): full_port_name = 'mac-mac10.12' port_maker = mac.MacPort - def assert_name(self, port_name, os_version_string, expected): - port = self.make_port( - os_version=os_version_string, port_name=port_name) + def assert_name(self, port_name, os_version_string, expected, + machine=None): + port = self.make_port(os_version=os_version_string, + port_name=port_name, + machine=machine) self.assertEqual(expected, port.name()) def test_operating_system(self): @@ -52,6 +54,21 @@ class MacPortTest(port_testcase.PortTestCase): self.assertEqual(port.get_platform_tags(), {'mac', 'mac10.12', 'x86', 'release'}) + def test_versions(self): + # Workarounds where we need to bump up the version. + self.assert_name(None, 'mac10.16', 'mac-mac11') + self.assert_name('mac', 'mac10.16', 'mac-mac11') + + self.assert_name(None, 'mac11', 'mac-mac11') + self.assert_name(None, 'mac12', 'mac-mac12') + self.assert_name('mac', 'mac11', 'mac-mac11') + self.assert_name('mac', 'mac12', 'mac-mac12') + + self.assert_name(None, 'mac11', 'mac-mac11-arm64', 'arm64') + self.assert_name(None, 'mac12', 'mac-mac12-arm64', 'arm64') + self.assert_name('mac', 'mac11', 'mac-mac11-arm64', 'arm64') + self.assert_name('mac', 'mac12', 'mac-mac12-arm64', 'arm64') + def test_driver_name_option(self): self.assertTrue( self.make_port()._path_to_driver().endswith('Content Shell')) diff --git a/chromium/third_party/blink/tools/blinkpy/web_tests/port/port_testcase.py b/chromium/third_party/blink/tools/blinkpy/web_tests/port/port_testcase.py index 7b8cb1dbe85..3241aa76923 100644 --- a/chromium/third_party/blink/tools/blinkpy/web_tests/port/port_testcase.py +++ b/chromium/third_party/blink/tools/blinkpy/web_tests/port/port_testcase.py @@ -59,6 +59,7 @@ class PortTestCase(LoggingTestCase): # Subclasses override this to point to their Port subclass. os_name = None os_version = None + machine = None port_maker = Port port_name = None full_port_name = None @@ -69,10 +70,12 @@ class PortTestCase(LoggingTestCase): options=None, os_name=None, os_version=None, + machine=None, **kwargs): - host = host or MockSystemHost( - os_name=(os_name or self.os_name), - os_version=(os_version or self.os_version)) + host = host or MockSystemHost(os_name=(os_name or self.os_name), + os_version=(os_version + or self.os_version), + machine=(machine or self.machine)) options = options or optparse.Values({ 'configuration': 'Release', 'use_xvfb': True |