Skip to content

Instantly share code, notes, and snippets.

@rafaelbrandao
Created June 18, 2012 22:51
Show Gist options
  • Save rafaelbrandao/2951255 to your computer and use it in GitHub Desktop.
Save rafaelbrandao/2951255 to your computer and use it in GitHub Desktop.
patch for bug #72489 - wip
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index f316444..9a22fa0 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,37 @@
+2012-06-18 Rafael Brandao <rafael.lobo@openbossa.org>
+
+ [NRWT] Fix --platform=qt-5.0 --new-baseline combo
+ https://bugs.webkit.org/show_bug.cgi?id=72489
+
+ Reviewed by NOBODY (OOPS!).
+
+ NRWT: The default platform name for Qt combined with --webkit-test-runner is now
+ "qt-5.0-wk2" instead of "qt-linux". This implies that we now need to add, if necessary,
+ "qt-[platform]" to baseline and skipped file search paths. Before adding paths, it is
+ now checking if the entry is not there already (it is possible according to platform name used).
+ --platform usage will override the platform name.
+
+ ORWT: We check for qt version and use platform name "qt-4.8" if the version is lower
+ than 5.0.0, and then we choose between "qt-5.0-wk1" and "qt-5.0-wk2". --platform will
+ override it in the end.
+
+ * Scripts/old-run-webkit-tests:
+ * Scripts/webkitpy/layout_tests/port/qt.py:
+ (QtPort):
+ (QtPort._os_port_name):
+ (QtPort.determine_full_port_name):
+ (QtPort.__init__):
+ (QtPort.baseline_search_path):
+ (QtPort._skipped_file_search_paths):
+ * Scripts/webkitpy/layout_tests/port/qt_unittest.py:
+ (QtPortTest):
+ (QtPortTest._get_port):
+ (QtPortTest._assert_search_path):
+ (QtPortTest._assert_skipped_file_search_path):
+ (QtPortTest.test_baseline_search_path):
+ (QtPortTest.test_skipped_file_search_paths): These check if we keep the same skipped files coverage
+ as we change the --platform values on different qt versions or operating systems.
+
2012-06-18 Zan Dobersek <zandobersek@gmail.com>
[garden-o-matic] Add support for the GTK builders
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/qt.py b/Tools/Scripts/webkitpy/layout_tests/port/qt.py
index 5205759..20f2811 100644
--- a/Tools/Scripts/webkitpy/layout_tests/port/qt.py
+++ b/Tools/Scripts/webkitpy/layout_tests/port/qt.py
@@ -47,9 +47,13 @@ class QtPort(WebKitPort):
ALL_VERSIONS = ['linux', 'win', 'mac']
port_name = "qt"
+ @classmethod
def _wk2_port_name(self):
return "qt-5.0-wk2"
+ def _os_port_name(self):
+ return "qt-" + self._operating_system
+
def _port_flag_for_scripts(self):
return "--qt"
@@ -57,7 +61,9 @@ class QtPort(WebKitPort):
def determine_full_port_name(cls, host, options, port_name):
if port_name and port_name != cls.port_name:
return port_name
- return port_name + '-' + host.platform.os_name
+ if getattr(options, 'webkit_test_runner', False):
+ return cls._wk2_port_name()
+ return cls.port_name + '-' + host.platform.os_name
# sys_platform exists only for unit testing.
def __init__(self, host, port_name, **kwargs):
@@ -65,7 +71,7 @@ class QtPort(WebKitPort):
# FIXME: This will allow WebKitPort.baseline_search_path and WebKitPort._skipped_file_search_paths
# to do the right thing, but doesn't include support for qt-4.8 or qt-arm (seen in LayoutTests/platform) yet.
- self._operating_system = port_name.replace('qt-', '')
+ self._operating_system = host.platform.os_name
# FIXME: Why is this being set at all?
self._version = self.operating_system()
@@ -111,17 +117,20 @@ class QtPort(WebKitPort):
def baseline_search_path(self):
search_paths = []
- version = self.qt_version()
- if '5.0' in version:
- if self.get_option('webkit_test_runner'):
- search_paths.append('qt-5.0-wk2')
- else:
- search_paths.append('qt-5.0-wk1')
search_paths.append(self.name())
+ if self._os_port_name() not in search_paths:
+ search_paths.append(self._os_port_name())
+ if self.get_option('webkit_test_runner'):
+ if self._wk2_port_name() not in search_paths:
+ search_paths.append(self._wk2_port_name())
+ version = self.qt_version()
if '4.8' in version:
- search_paths.append('qt-4.8')
+ if 'qt-4.8' not in search_paths:
+ search_paths.append('qt-4.8')
elif version:
- search_paths.append('qt-5.0')
+ if 'qt-5.0' not in search_paths:
+ search_paths.append('qt-5.0')
+ if self.port_name not in search_paths:
search_paths.append(self.port_name)
return map(self._webkit_baseline_path, search_paths)
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/qt_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/qt_unittest.py
index 7252b98..f44b336 100644
--- a/Tools/Scripts/webkitpy/layout_tests/port/qt_unittest.py
+++ b/Tools/Scripts/webkitpy/layout_tests/port/qt_unittest.py
@@ -38,21 +38,28 @@ from webkitpy.tool.mocktool import MockOptions
class QtPortTest(port_testcase.PortTestCase):
- port_name = 'qt-mac'
+ port_name = 'qt'
port_maker = QtPort
- def _assert_search_path(self, search_paths, os_name=None, use_webkit2=False, qt_version='4.8'):
+ def _get_port(self, os_name=None, override_platform=None, use_webkit2=False, qt_version='4.8'):
# FIXME: Port constructors should not "parse" the port name, but
# rather be passed components (directly or via setters). Once
# we fix that, this method will need a re-write.
host = MockSystemHost(os_name=os_name)
host.executive = MockExecutive2(self._qt_version(qt_version))
- port_name = 'qt-' + os_name
- port = self.make_port(host=host, qt_version=qt_version, port_name=port_name,
- options=MockOptions(webkit_test_runner=use_webkit2, platform='qt'))
+ options = MockOptions(webkit_test_runner=use_webkit2, platform='qt')
+ port_name = QtPort.determine_full_port_name(host=host, options=options, port_name=override_platform)
+ return self.make_port(host=host, qt_version=qt_version, port_name=port_name, options=options)
+
+ def _assert_search_path(self, search_paths, os_name=None, override_platform=None, use_webkit2=False, qt_version='4.8'):
+ port = self._get_port(os_name, override_platform, use_webkit2, qt_version)
absolute_search_paths = map(port._webkit_baseline_path, search_paths)
self.assertEquals(port.baseline_search_path(), absolute_search_paths)
+ def _assert_skipped_file_search_path(self, search_paths, os_name=None, override_platform=None, use_webkit2=False, qt_version='4.8'):
+ port = self._get_port(os_name, override_platform, use_webkit2, qt_version)
+ self.assertEquals(port._skipped_file_search_paths(), set(search_paths))
+
def _qt_version(self, qt_version):
if qt_version in '4.8':
return 'QMake version 2.01a\nUsing Qt version 4.8.0 in /usr/local/Trolltech/Qt-4.8.2/lib'
@@ -60,17 +67,49 @@ class QtPortTest(port_testcase.PortTestCase):
return 'QMake version 2.01a\nUsing Qt version 5.0.0 in /usr/local/Trolltech/Qt-5.0.0/lib'
def test_baseline_search_path(self):
- self._assert_search_path(['qt-mac', 'qt-4.8', 'qt'], 'mac', qt_version='4.8')
- self._assert_search_path(['qt-win', 'qt-4.8', 'qt'], 'win', qt_version='4.8')
- self._assert_search_path(['qt-linux', 'qt-4.8', 'qt'], 'linux', qt_version='4.8')
-
- self._assert_search_path(['qt-mac', 'qt-4.8', 'qt'], 'mac')
- self._assert_search_path(['qt-win', 'qt-4.8', 'qt'], 'win')
- self._assert_search_path(['qt-linux', 'qt-4.8', 'qt'], 'linux')
+ self._assert_search_path(['qt-mac', 'qt-4.8', 'qt'], os_name='mac', qt_version='4.8')
+ self._assert_search_path(['qt-win', 'qt-4.8', 'qt'], os_name='win', qt_version='4.8')
+ self._assert_search_path(['qt-linux', 'qt-4.8', 'qt'], os_name='linux', qt_version='4.8')
+
+ self._assert_search_path(['qt-4.8', 'qt-mac', 'qt'], os_name='mac', override_platform='qt-4.8', qt_version='4.8')
+ self._assert_search_path(['qt-4.8', 'qt-win', 'qt'], os_name='win', override_platform='qt-4.8', qt_version='4.8')
+ self._assert_search_path(['qt-4.8', 'qt-linux', 'qt'], os_name='linux', override_platform='qt-4.8', qt_version='4.8')
+
+ self._assert_search_path(['qt-mac', 'qt-4.8', 'qt'], os_name='mac')
+ self._assert_search_path(['qt-win', 'qt-4.8', 'qt'], os_name='win')
+ self._assert_search_path(['qt-linux', 'qt-4.8', 'qt'], os_name='linux')
+
+ self._assert_search_path(['qt-5.0-wk2', 'qt-mac', 'qt-5.0', 'qt'], os_name='mac', use_webkit2=True, qt_version='5.0')
+ self._assert_search_path(['qt-5.0-wk2', 'qt-win', 'qt-5.0', 'qt'], os_name='win', use_webkit2=True, qt_version='5.0')
+ self._assert_search_path(['qt-5.0-wk2', 'qt-linux', 'qt-5.0', 'qt'], os_name='linux', use_webkit2=True, qt_version='5.0')
+
+ self._assert_search_path(['qt-mac', 'qt-5.0-wk2', 'qt-5.0', 'qt'], os_name='mac', override_platform='qt-mac', use_webkit2=True, qt_version='5.0')
+ self._assert_search_path(['qt-win', 'qt-5.0-wk2', 'qt-5.0', 'qt'], os_name='win', override_platform='qt-win', use_webkit2=True, qt_version='5.0')
+ self._assert_search_path(['qt-linux', 'qt-5.0-wk2', 'qt-5.0', 'qt'], os_name='linux', override_platform='qt-linux', use_webkit2=True, qt_version='5.0')
+
+ self._assert_search_path(['qt-linux', 'qt-mac', 'qt-5.0', 'qt'], os_name='mac', override_platform='qt-linux', qt_version='5.0')
+ self._assert_search_path(['qt-linux', 'qt-mac', 'qt-5.0-wk2', 'qt-5.0', 'qt'], os_name='mac', override_platform='qt-linux', use_webkit2=True, qt_version='5.0')
+
+ def test_skipped_file_search_paths(self):
+ self._assert_skipped_file_search_path(['qt-4.8', 'qt-linux', 'qt'], os_name='linux', qt_version='4.8')
+ self._assert_skipped_file_search_path(['qt-4.8', 'qt-win', 'qt'], os_name='win', qt_version='4.8')
+ self._assert_skipped_file_search_path(['qt-4.8', 'qt-mac', 'qt'], os_name='mac', qt_version='4.8')
+ self._assert_skipped_file_search_path(['qt-4.8', 'qt-mac', 'qt'], os_name='mac', override_platform="qt", qt_version='4.8')
+ self._assert_skipped_file_search_path(['qt-4.8', 'qt-win', 'qt'], os_name='win', override_platform="qt", qt_version='4.8')
+ self._assert_skipped_file_search_path(['qt-4.8', 'qt-linux', 'qt'], os_name='linux', override_platform="qt", qt_version='4.8')
+ self._assert_skipped_file_search_path(['qt-4.8', 'qt-linux', 'qt'], os_name='linux', override_platform="qt-4.8", qt_version='4.8')
+
+ self._assert_skipped_file_search_path(['qt-5.0-wk1', 'qt-5.0', 'qt-linux', 'qt'], os_name='linux', qt_version='5.0')
+ self._assert_skipped_file_search_path(['qt-5.0-wk1', 'qt-5.0', 'qt-mac', 'qt'], os_name='mac', qt_version='5.0')
+ self._assert_skipped_file_search_path(['qt-5.0-wk1', 'qt-5.0', 'qt-win', 'qt'], os_name='win', qt_version='5.0')
+ self._assert_skipped_file_search_path(['qt-5.0-wk1', 'qt-5.0', 'qt-linux', 'qt'], os_name='linux', override_platform="qt-5.0", qt_version='5.0')
+ self._assert_skipped_file_search_path(['qt-5.0-wk1', 'qt-5.0', 'qt-linux', 'qt'], os_name='linux', override_platform="qt", qt_version='5.0')
+
+ self._assert_skipped_file_search_path(['qt-5.0-wk2', 'qt-5.0', 'qt-linux', 'qt', 'wk2'], os_name='linux', use_webkit2=True, qt_version='5.0')
+ self._assert_skipped_file_search_path(['qt-5.0-wk2', 'qt-5.0', 'qt-linux', 'qt', 'wk2'], os_name='linux', override_platform="qt-5.0", use_webkit2=True, qt_version='5.0')
+ self._assert_skipped_file_search_path(['qt-5.0-wk2', 'qt-5.0', 'qt-linux', 'qt', 'wk2'], os_name='linux', override_platform="wk2", use_webkit2=True, qt_version='5.0')
+ self._assert_skipped_file_search_path(['qt-5.0-wk2', 'qt-5.0', 'qt-mac', 'qt', 'wk2'], os_name='mac', override_platform="qt", use_webkit2=True, qt_version='5.0')
- self._assert_search_path(['qt-5.0-wk2', 'qt-mac', 'qt-5.0', 'qt'], 'mac', use_webkit2=True, qt_version='5.0')
- self._assert_search_path(['qt-5.0-wk2', 'qt-win', 'qt-5.0', 'qt'], 'win', use_webkit2=True, qt_version='5.0')
- self._assert_search_path(['qt-5.0-wk2', 'qt-linux', 'qt-5.0', 'qt'], 'linux', use_webkit2=True, qt_version='5.0')
self._assert_search_path(['qt-5.0-wk1', 'qt-mac', 'qt-5.0', 'qt'], 'mac', use_webkit2=False, qt_version='5.0')
self._assert_search_path(['qt-5.0-wk1', 'qt-win', 'qt-5.0', 'qt'], 'win', use_webkit2=False, qt_version='5.0')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment