summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/tools
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/tools')
-rw-r--r--chromium/third_party/blink/tools/blinkpy/common/checkout/baseline_optimizer_unittest.py11
-rw-r--r--chromium/third_party/blink/tools/blinkpy/common/config/builders.json12
-rw-r--r--chromium/third_party/blink/tools/blinkpy/common/host_mock.py11
-rw-r--r--chromium/third_party/blink/tools/blinkpy/common/system/platform_info.py16
-rw-r--r--chromium/third_party/blink/tools/blinkpy/common/system/platform_info_mock.py4
-rw-r--r--chromium/third_party/blink/tools/blinkpy/common/system/platform_info_unittest.py3
-rw-r--r--chromium/third_party/blink/tools/blinkpy/common/system/system_host_mock.py3
-rw-r--r--chromium/third_party/blink/tools/blinkpy/web_tests/port/base.py4
-rw-r--r--chromium/third_party/blink/tools/blinkpy/web_tests/port/mac.py27
-rw-r--r--chromium/third_party/blink/tools/blinkpy/web_tests/port/mac_unittest.py23
-rw-r--r--chromium/third_party/blink/tools/blinkpy/web_tests/port/port_testcase.py9
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