Title: [121406] trunk/Tools
Revision
121406
Author
o...@webkit.org
Date
2012-06-27 22:15:45 -0700 (Wed, 27 Jun 2012)

Log Message

Unreviewed, rolling out r121363, r121367, r121384, and
r121390.
http://trac.webkit.org/changeset/121363
http://trac.webkit.org/changeset/121367
http://trac.webkit.org/changeset/121384
http://trac.webkit.org/changeset/121390
https://bugs.webkit.org/show_bug.cgi?id=90134

It broke debug NRWT on GTK and on Qt (Requested by Ossy_NIGHT
on #webkit).

Patch by Sheriff Bot <webkit.review....@gmail.com> on 2012-06-27

* Scripts/webkitpy/layout_tests/port/chromium.py:
(ChromiumPort):
(ChromiumPort.__init__):
(ChromiumPort._check_file_exists):
(ChromiumPort.default_results_directory):
(ChromiumPort._driver_class):
(ChromiumPort._build_path):
(ChromiumPort._path_to_image_diff):
* Scripts/webkitpy/layout_tests/port/chromium_linux.py:
(ChromiumLinuxPort.baseline_search_path):
* Scripts/webkitpy/layout_tests/port/chromium_mac.py:
(ChromiumMacPort.baseline_search_path):
* Scripts/webkitpy/layout_tests/port/chromium_unittest.py:
(ChromiumPortTest):
* Scripts/webkitpy/layout_tests/port/chromium_win.py:
(ChromiumWinPort.baseline_search_path):
* Scripts/webkitpy/layout_tests/port/webkit.py:
(WebKitPort.__init__):
(WebKitPort._webcore_symbols_string):
(WebKitPort._skipped_tests_for_unsupported_features):
* Scripts/webkitpy/layout_tests/port/webkit_unittest.py:
(TestWebKitPort._webcore_symbols_string):
(WebKitPortUnitTests.test_default_options):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (121405 => 121406)


--- trunk/Tools/ChangeLog	2012-06-28 05:00:42 UTC (rev 121405)
+++ trunk/Tools/ChangeLog	2012-06-28 05:15:45 UTC (rev 121406)
@@ -1,3 +1,40 @@
+2012-06-27  Sheriff Bot  <webkit.review....@gmail.com>
+
+        Unreviewed, rolling out r121363, r121367, r121384, and
+        r121390.
+        http://trac.webkit.org/changeset/121363
+        http://trac.webkit.org/changeset/121367
+        http://trac.webkit.org/changeset/121384
+        http://trac.webkit.org/changeset/121390
+        https://bugs.webkit.org/show_bug.cgi?id=90134
+
+        It broke debug NRWT on GTK and on Qt (Requested by Ossy_NIGHT
+        on #webkit).
+
+        * Scripts/webkitpy/layout_tests/port/chromium.py:
+        (ChromiumPort):
+        (ChromiumPort.__init__):
+        (ChromiumPort._check_file_exists):
+        (ChromiumPort.default_results_directory):
+        (ChromiumPort._driver_class):
+        (ChromiumPort._build_path):
+        (ChromiumPort._path_to_image_diff):
+        * Scripts/webkitpy/layout_tests/port/chromium_linux.py:
+        (ChromiumLinuxPort.baseline_search_path):
+        * Scripts/webkitpy/layout_tests/port/chromium_mac.py:
+        (ChromiumMacPort.baseline_search_path):
+        * Scripts/webkitpy/layout_tests/port/chromium_unittest.py:
+        (ChromiumPortTest):
+        * Scripts/webkitpy/layout_tests/port/chromium_win.py:
+        (ChromiumWinPort.baseline_search_path):
+        * Scripts/webkitpy/layout_tests/port/webkit.py:
+        (WebKitPort.__init__):
+        (WebKitPort._webcore_symbols_string):
+        (WebKitPort._skipped_tests_for_unsupported_features):
+        * Scripts/webkitpy/layout_tests/port/webkit_unittest.py:
+        (TestWebKitPort._webcore_symbols_string):
+        (WebKitPortUnitTests.test_default_options):
+
 2012-06-27  Dirk Pranke  <dpra...@chromium.org>
 
         Fix typo in r121384 :(

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py (121405 => 121406)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py	2012-06-28 05:00:42 UTC (rev 121405)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py	2012-06-28 05:15:45 UTC (rev 121406)
@@ -43,15 +43,14 @@
 from webkitpy.layout_tests.models.test_configuration import TestConfiguration
 from webkitpy.layout_tests.port.base import Port, VirtualTestSuite
 from webkitpy.layout_tests.port.driver import DriverOutput
-from webkitpy.layout_tests.port.webkit import WebKitPort, WebKitDriver
+from webkitpy.layout_tests.port.webkit import WebKitDriver
 
 
 _log = logging.getLogger(__name__)
 
 
-class ChromiumPort(WebKitPort):
+class ChromiumPort(Port):
     """Abstract base class for Chromium implementations of the Port class."""
-    pixel_tests_option_default = True
 
     ALL_SYSTEMS = (
         ('leopard', 'x86'),
@@ -108,13 +107,10 @@
             return module_path[0:offset]
 
     def __init__(self, host, port_name, **kwargs):
-        super(ChromiumPort, self).__init__(host, port_name, **kwargs)
+        Port.__init__(self, host, port_name, **kwargs)
         # All sub-classes override this, but we need an initial value for testing.
         self._chromium_base_dir_path = None
 
-    def default_test_timeout_ms(self):
-        return 6 * 1000
-
     def _check_file_exists(self, path_to_file, file_description,
                            override_step=None, logging=True):
         """Verify the file is present where expected or log an error.
@@ -134,11 +130,6 @@
             return False
         return True
 
-    def driver_name(self):
-        # FIXME: merge this with Port.driver_name, WebKitPort.driver_name
-        if self.get_option('driver_name'):
-            return self.get_option('driver_name')
-        return 'DumpRenderTree'
 
     def check_build(self, needs_http):
         result = True
@@ -266,20 +257,6 @@
         except AssertionError:
             return self._build_path(self.get_option('configuration'), 'layout-test-results')
 
-    def _driver_class(self):
-        return ChromiumDriver
-
-    def _missing_symbol_to_skipped_tests(self):
-        # FIXME: Should WebKitPort have these definitions also?
-        return {
-            "ff_mp3_decoder": ["webaudio/codec-tests/mp3"],
-            "ff_aac_decoder": ["webaudio/codec-tests/aac"],
-        }
-
-    def skipped_layout_tests(self, test_list):
-        # FIXME: Merge w/ WebKitPort.skipped_layout_tests()
-        return set(self._skipped_tests_for_unsupported_features(test_list))
-
     def setup_test_run(self):
         # Delete the disk cache if any to ensure a clean test run.
         dump_render_tree_binary_path = self._path_to_driver()
@@ -288,6 +265,9 @@
         if self._filesystem.exists(cachedir):
             self._filesystem.rmtree(cachedir)
 
+    def _driver_class(self):
+        return ChromiumDriver
+
     def start_helper(self):
         helper_path = self._path_to_helper()
         if helper_path:
@@ -386,10 +366,6 @@
     def _build_path(self, *comps):
         return self._static_build_path(self._filesystem, self.get_option('build_directory'), self.path_from_chromium_base(), self.path_from_webkit_base(), *comps)
 
-    def _path_to_image_diff(self):
-        binary_name = 'ImageDiff'
-        return self._build_path(self.get_option('configuration'), binary_name)
-
     def _check_driver_build_up_to_date(self, configuration):
         if configuration in ('Debug', 'Release'):
             try:
@@ -425,7 +401,11 @@
             return cygpath(path)
         return path
 
+    def _path_to_image_diff(self):
+        binary_name = 'ImageDiff'
+        return self._build_path(self.get_option('configuration'), binary_name)
 
+
 class ChromiumDriver(WebKitDriver):
     KILL_TIMEOUT_DEFAULT = 3.0
 

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py (121405 => 121406)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py	2012-06-28 05:00:42 UTC (rev 121405)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py	2012-06-28 05:15:45 UTC (rev 121406)
@@ -110,9 +110,6 @@
         port_names = self.FALLBACK_PATHS[self._architecture]
         return map(self._webkit_baseline_path, port_names)
 
-    def _modules_to_search_for_symbols(self):
-        return [self._build_path(self.get_option('configuration'), 'libffmpegsumo.so')]
-
     def check_build(self, needs_http):
         result = chromium.ChromiumPort.check_build(self, needs_http)
         if not result:

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py (121405 => 121406)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py	2012-06-28 05:00:42 UTC (rev 121405)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py	2012-06-28 05:15:45 UTC (rev 121406)
@@ -88,9 +88,6 @@
         fallback_paths = self.FALLBACK_PATHS
         return map(self._webkit_baseline_path, fallback_paths[self._version])
 
-    def _modules_to_search_for_symbols(self):
-        return [self._build_path(self.get_option('configuration'), 'ffmpegsumo.so')]
-
     def check_build(self, needs_http):
         result = chromium.ChromiumPort.check_build(self, needs_http)
         if not result:

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py (121405 => 121406)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py	2012-06-28 05:00:42 UTC (rev 121405)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py	2012-06-28 05:15:45 UTC (rev 121406)
@@ -180,13 +180,6 @@
     port_name = 'chromium-mac'
     port_maker = chromium.ChromiumPort
 
-    def test_missing_symbol_to_skipped_tests(self):
-        # Test that we get the chromium skips and not the webkit default skips
-        port = self.make_port()
-        skip_dict = port._missing_symbol_to_skipped_tests()
-        self.assertTrue('ff_mp3_decoder' in skip_dict)
-        self.assertFalse('WebGLShader' in skip_dict)
-
     def test_all_test_configurations(self):
         """Validate the complete set of configurations this port knows about."""
         port = self.make_port()

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py (121405 => 121406)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py	2012-06-28 05:00:42 UTC (rev 121405)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py	2012-06-28 05:15:45 UTC (rev 121406)
@@ -106,11 +106,6 @@
         port_names = self.FALLBACK_PATHS[self.version()]
         return map(self._webkit_baseline_path, port_names)
 
-    def _modules_to_search_for_symbols(self):
-        # FIXME: we should return the path to the ffmpeg equivalents to detect if we have the mp3 and aac codecs installed.
-        # See https://bugs.webkit.org/show_bug.cgi?id=89706.
-        return []
-
     def check_build(self, needs_http):
         result = chromium.ChromiumPort.check_build(self, needs_http)
         if not result:

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit.py (121405 => 121406)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit.py	2012-06-28 05:00:42 UTC (rev 121405)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit.py	2012-06-28 05:15:45 UTC (rev 121406)
@@ -51,21 +51,15 @@
 
 
 class WebKitPort(Port):
-    pixel_tests_option_default = False  # FIXME: Disable until they are run by default on build.webkit.org.
-
     def __init__(self, host, port_name=None, **kwargs):
         Port.__init__(self, host, port_name=port_name, **kwargs)
-        self.set_option_default("pixel_tests", self.pixel_tests_option_default)
 
-    def default_test_timeout_ms(self):
-        if self.get_option('guard_malloc'):
-            # FIXME: --guard-malloc is only supported on Mac, so this logic should be in mac.py.
-            return 350 * 1000
-        if self.get_option('configuration') == 'Debug':
-            # FIXME: the generic code in run_webkit_tests.py multiplies this by 2 :(.
-            # We want to use the same timeout for both release and debug.
-            return 17.5 * 1000
-        return 35 * 1000
+        # FIXME: Disable pixel tests until they are run by default on build.webkit.org.
+        self.set_option_default("pixel_tests", False)
+        # WebKit ports expect a 35s timeout, or 350s timeout when running with -g/--guard-malloc.
+        # FIXME: --guard-malloc is only supported on Mac, so this logic should be in mac.py.
+        default_time_out_seconds = 350 if self.get_option('guard_malloc') else 35
+        self.set_option_default("time_out_ms", default_time_out_seconds * 1000)
 
     def driver_name(self):
         if self.get_option('webkit_test_runner'):
@@ -270,21 +264,16 @@
     def nm_command(self):
         return 'nm'
 
-    def _modules_to_search_for_symbols(self):
-        path = self._path_to_webcore_library()
-        if path:
-            return [path]
-        return []
+    def _webcore_symbols_string(self):
+        webcore_library_path = self._path_to_webcore_library()
+        if not webcore_library_path:
+            return None
+        try:
+            return self._executive.run_command([self.nm_command(), webcore_library_path], error_handler=Executive.ignore_error)
+        except OSError, e:
+            _log.warn("Failed to run nm: %s.  Can't determine WebCore supported features." % e)
+        return None
 
-    def _symbols_string(self):
-        symbols = ''
-        for path_to_module in self._modules_to_search_for_symbols():
-            try:
-                symbols += self._executive.run_command([self.nm_command(), path_to_module], error_handler=Executive.ignore_error)
-            except OSError, e:
-                _log.warn("Failed to run nm: %s.  Can't determine supported features correctly." % e)
-        return symbols
-
     # Ports which use run-time feature detection should define this method and return
     # a dictionary mapping from Feature Names to skipped directoires.  NRWT will
     # run DumpRenderTree --print-supported-features and parse the output.
@@ -342,10 +331,10 @@
         # This is a performance optimization to avoid the calling nm.
         if self._has_test_in_directories(self._missing_symbol_to_skipped_tests().values(), test_list):
             # Runtime feature detection not supported, fallback to static dectection:
-            # Disable any tests for symbols missing from the executable or libraries.
-            symbols_string = self._symbols_string()
-            if symbols_string is not None:
-                return reduce(operator.add, [directories for symbol_substring, directories in self._missing_symbol_to_skipped_tests().items() if symbol_substring not in symbols_string], [])
+            # Disable any tests for symbols missing from the webcore symbol string.
+            webcore_symbols_string = self._webcore_symbols_string()
+            if webcore_symbols_string is not None:
+                return reduce(operator.add, [directories for symbol_substring, directories in self._missing_symbol_to_skipped_tests().items() if symbol_substring not in webcore_symbols_string], [])
 
         # Failed to get any runtime or symbol information, don't skip any tests.
         return []

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py (121405 => 121406)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py	2012-06-28 05:00:42 UTC (rev 121405)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py	2012-06-28 05:15:45 UTC (rev 121406)
@@ -53,7 +53,7 @@
     def all_test_configurations(self):
         return [self.test_configuration()]
 
-    def _symbols_string(self):
+    def _webcore_symbols_string(self):
         return self.symbols_string
 
     def _tests_for_other_platforms(self):
@@ -66,14 +66,16 @@
 class WebKitPortUnitTests(unittest.TestCase):
     def test_default_options(self):
         # The WebKit ports override new-run-webkit-test default options.
-        options = MockOptions(pixel_tests=None)
+        options = MockOptions(pixel_tests=None, time_out_ms=None)
         port = WebKitPort(MockSystemHost(), options=options)
         self.assertEquals(port._options.pixel_tests, False)
+        self.assertEquals(port._options.time_out_ms, 35000)
 
         # Note that we don't override options if specified by the user.
-        options = MockOptions(pixel_tests=True)
+        options = MockOptions(pixel_tests=True, time_out_ms=6000)
         port = WebKitPort(MockSystemHost(), options=options)
         self.assertEquals(port._options.pixel_tests, True)
+        self.assertEquals(port._options.time_out_ms, 6000)
 
 
 class WebKitPortTest(port_testcase.PortTestCase):
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to