summaryrefslogtreecommitdiffstats
path: root/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py')
-rw-r--r--Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py76
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