diff options
Diffstat (limited to 'Tools/Scripts/webkitpy/layout_tests/port/mac.py')
-rw-r--r-- | Tools/Scripts/webkitpy/layout_tests/port/mac.py | 75 |
1 files changed, 50 insertions, 25 deletions
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/mac.py b/Tools/Scripts/webkitpy/layout_tests/port/mac.py index 1398ed3..0168ec7 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/mac.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/mac.py @@ -38,12 +38,50 @@ from webkitpy.layout_tests.port.webkit import WebKitPort _log = logging.getLogger("webkitpy.layout_tests.port.mac") +def os_version(os_version_string=None, supported_versions=None): + # We only support Tiger, Leopard, and Snow Leopard. + if not os_version_string: + if hasattr(platform, 'mac_ver') and platform.mac_ver()[0]: + os_version_string = platform.mac_ver()[0] + else: + # Make up something for testing. + os_version_string = "10.5.6" + release_version = int(os_version_string.split('.')[1]) + version_strings = { + 4: 'tiger', + 5: 'leopard', + 6: 'snowleopard', + } + version_string = version_strings[release_version] + if supported_versions: + assert version_string in supported_versions + return version_string + + class MacPort(WebKitPort): """WebKit Mac implementation of the Port class.""" + # FIXME: 'wk2' probably shouldn't be a version, it should probably be + # a modifier, like 'chromium-gpu' is to 'chromium'. + SUPPORTED_VERSIONS = ('tiger', 'leopard', 'snowleopard', 'wk2') + + FALLBACK_PATHS = { + 'tiger': ['mac-tiger', 'mac-leopard', 'mac-snowleopard', 'mac'], + 'leopard': ['mac-leopard', 'mac-snowleopard', 'mac'], + 'snowleopard': ['mac-snowleopard', 'mac'], + 'wk2': ['mac-wk2', 'mac'], + } + + def __init__(self, port_name=None, os_version_string=None, **kwargs): + port_name = port_name or 'mac' + + if port_name == 'mac': + self._version = os_version(os_version_string) + port_name = port_name + '-' + self._version + else: + self._version = port_name[4:] + assert self._version in self.SUPPORTED_VERSIONS - def __init__(self, **kwargs): - kwargs.setdefault('port_name', 'mac' + self.version()) - WebKitPort.__init__(self, **kwargs) + WebKitPort.__init__(self, port_name=port_name, **kwargs) def default_child_processes(self): # FIXME: new-run-webkit-tests is unstable on Mac running more than @@ -54,16 +92,13 @@ class MacPort(WebKitPort): return 4 return child_processes + def default_worker_model(self): + if self._multiprocessing_is_available: + return 'processes' + return 'old-threads' + def baseline_search_path(self): - port_names = [] - if self._name == 'mac-tiger': - port_names.append("mac-tiger") - if self._name in ('mac-tiger', 'mac-leopard'): - port_names.append("mac-leopard") - if self._name in ('mac-tiger', 'mac-leopard', 'mac-snowleopard'): - port_names.append("mac-snowleopard") - port_names.append("mac") - return map(self._webkit_baseline_path, port_names) + return map(self._webkit_baseline_path, self.FALLBACK_PATHS[self._version]) def path_to_test_expectations_file(self): return self.path_from_webkit_base('LayoutTests', 'platform', @@ -73,7 +108,7 @@ class MacPort(WebKitPort): # FIXME: This method will need to be made work for non-mac # platforms and moved into base.Port. skipped_files = [] - if self._name in ('mac-tiger', 'mac-leopard', 'mac-snowleopard'): + if self._name in ('mac-leopard', 'mac-snowleopard'): skipped_files.append(self._filesystem.join( self._webkit_baseline_path(self._name), 'Skipped')) skipped_files.append(self._filesystem.join(self._webkit_baseline_path('mac'), @@ -81,20 +116,10 @@ class MacPort(WebKitPort): return skipped_files def test_platform_name(self): - return 'mac' + self.version() + return 'mac-' + self.version() def version(self): - os_version_string = platform.mac_ver()[0] # e.g. "10.5.6" - if not os_version_string: - return '-leopard' - release_version = int(os_version_string.split('.')[1]) - if release_version == 4: - return '-tiger' - elif release_version == 5: - return '-leopard' - elif release_version == 6: - return '-snowleopard' - return '' + return self._version def _build_java_test_support(self): java_tests_path = self._filesystem.join(self.layout_tests_dir(), "java") |