diff options
Diffstat (limited to 'Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py')
-rw-r--r-- | Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py | 76 |
1 files changed, 52 insertions, 24 deletions
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py index 17862a2..78a6682 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py @@ -31,10 +31,10 @@ import logging import os -import platform import signal -import chromium +from webkitpy.layout_tests.port import mac +from webkitpy.layout_tests.port import chromium from webkitpy.common.system.executive import Executive @@ -43,20 +43,51 @@ _log = logging.getLogger("webkitpy.layout_tests.port.chromium_mac") class ChromiumMacPort(chromium.ChromiumPort): """Chromium Mac implementation of the Port class.""" + SUPPORTED_OS_VERSIONS = ('leopard', 'snowleopard') + + FALLBACK_PATHS = { + 'leopard': ['chromium-mac-leopard', 'chromium-mac-snowleopard', 'chromium-mac', 'chromium', + 'mac-leopard', 'mac-snowleopard', 'mac'], + 'snowleopard': ['chromium-mac-snowleopard', 'chromium-mac', 'chromium', + 'mac-snowleopard', 'mac'], + '': ['chromium-mac', 'chromium', 'mac'], + } + + def __init__(self, port_name=None, os_version_string=None, rebaselining=False, **kwargs): + # We're a little generic here because this code is reused by the + # 'google-chrome' port as well as the 'mock-' and 'dryrun-' ports. + port_name = port_name or 'chromium-mac' + + if port_name.endswith('-mac'): + # FIXME: The rebaselining flag is an ugly hack that lets us create an + # "chromium-mac" port that is not version-specific. It should only be + # used by rebaseline-chromium-webkit-tests to explicitly put files into + # the generic directory. In theory we shouldn't need this, because + # the newest mac port should be using 'chromium-mac' as the baseline + # directory. However, we also don't have stable SL bots :( + # + # When we remove this FIXME, we also need to remove '' as a valid + # fallback key in self.FALLBACK_PATHS. + if rebaselining: + self._version = '' + else: + self._version = mac.os_version(os_version_string, self.SUPPORTED_OS_VERSIONS) + port_name = port_name + '-' + self._version + else: + self._version = port_name[port_name.index('-mac-') + 5:] + assert self._version in self.SUPPORTED_OS_VERSIONS + + chromium.ChromiumPort.__init__(self, port_name=port_name, **kwargs) - def __init__(self, **kwargs): - kwargs.setdefault('port_name', 'chromium-mac') - chromium.ChromiumPort.__init__(self, **kwargs) + def baseline_path(self): + if self.version() == 'snowleopard': + # We treat Snow Leopard as the newest version of mac, + # so it gets the base dir. + return self._webkit_baseline_path('chromium-mac') + return self._webkit_baseline_path(self.name()) def baseline_search_path(self): - port_names = [ - "chromium-mac" + self.version(), - "chromium-mac", - "chromium", - "mac" + self.version(), - "mac", - ] - return map(self._webkit_baseline_path, port_names) + return map(self._webkit_baseline_path, self.FALLBACK_PATHS[self._version]) def check_build(self, needs_http): result = chromium.ChromiumPort.check_build(self, needs_http) @@ -80,25 +111,22 @@ class ChromiumMacPort(chromium.ChromiumPort): return chromium.ChromiumPort.default_child_processes(self) + def default_worker_model(self): + if self._multiprocessing_is_available: + return 'processes' + return 'old-threads' + def driver_name(self): return "DumpRenderTree" def test_platform_name(self): # We use 'mac' instead of 'chromium-mac' + + # FIXME: Get rid of this method after rebaseline_chromium_webkit_tests dies. return 'mac' def version(self): - # FIXME: It's strange that this string is -version, not just version. - 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]) - # we don't support 'tiger' or earlier releases - if release_version == 5: - return '-leopard' - elif release_version == 6: - return '-snowleopard' - return '' + return self._version # # PROTECTED METHODS |