Title: [177456] trunk/Tools
Revision
177456
Author
a...@apple.com
Date
2014-12-17 13:03:53 -0800 (Wed, 17 Dec 2014)

Log Message

REGRESSION (r177363): Gtk and Efl testing is broken
https://bugs.webkit.org/show_bug.cgi?id=139734

Reviewed by Simon Fraser.

* Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner.__init__): Remove timeout adjustment from here, because it
affected both script and tool timeout. This is still the right place for this logic,
but it would be a larger refactoring than I can do right now.

* Scripts/webkitpy/port/base.py:
(Port.supports_per_test_timeout): Added a FIXME.
(Port.default_timeout_ms): Now that the effective timeout is longer, change this
to avoid making tests take more time.

* Scripts/webkitpy/port/driver.py: (Driver.run_test): Adjust script timeout here.

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting):
Use TestRunner default timeout when there isn't a timeout passed from command line for the test.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (177455 => 177456)


--- trunk/Tools/ChangeLog	2014-12-17 21:03:51 UTC (rev 177455)
+++ trunk/Tools/ChangeLog	2014-12-17 21:03:53 UTC (rev 177456)
@@ -1,3 +1,25 @@
+2014-12-17  Alexey Proskuryakov  <a...@apple.com>
+
+        REGRESSION (r177363): Gtk and Efl testing is broken
+        https://bugs.webkit.org/show_bug.cgi?id=139734
+
+        Reviewed by Simon Fraser.
+
+        * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
+        (SingleTestRunner.__init__): Remove timeout adjustment from here, because it
+        affected both script and tool timeout. This is still the right place for this logic,
+        but it would be a larger refactoring than I can do right now.
+
+        * Scripts/webkitpy/port/base.py:
+        (Port.supports_per_test_timeout): Added a FIXME.
+        (Port.default_timeout_ms): Now that the effective timeout is longer, change this
+        to avoid making tests take more time.
+
+        * Scripts/webkitpy/port/driver.py: (Driver.run_test): Adjust script timeout here.
+
+        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting):
+        Use TestRunner default timeout when there isn't a timeout passed from command line for the test.
+
 2014-12-17  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [GTK] Simplify timeout handling in TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py (177455 => 177456)


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py	2014-12-17 21:03:51 UTC (rev 177455)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py	2014-12-17 21:03:53 UTC (rev 177456)
@@ -60,13 +60,7 @@
         self._should_run_pixel_test = test_input.should_run_pixel_test
         self._reference_files = test_input.reference_files
         self._stop_when_done = stop_when_done
-
         self._timeout = test_input.timeout
-        if self._timeout > 5000:
-            # Timeouts are detected by both script and tool; tool detected timeouts are
-            # better, because they contain partial output. Give the tool some time to
-            # report the timeout instead of being killed.
-            self._timeout = int(self._timeout) - 5000
 
         if self._reference_files:
             # Detect and report a test which has a wrong combination of expectation files.

Modified: trunk/Tools/Scripts/webkitpy/port/base.py (177455 => 177456)


--- trunk/Tools/Scripts/webkitpy/port/base.py	2014-12-17 21:03:51 UTC (rev 177455)
+++ trunk/Tools/Scripts/webkitpy/port/base.py	2014-12-17 21:03:53 UTC (rev 177456)
@@ -131,6 +131,8 @@
         return []
 
     def supports_per_test_timeout(self):
+        # FIXME: Make per-test timeouts unconditional once all ports' DumpRenderTrees support that.
+        # Windows DumpRenderTree may be the only one remaining to be fixed at this time.
         return False
 
     def default_pixel_tests(self):
@@ -138,7 +140,7 @@
         return False
 
     def default_timeout_ms(self):
-        return 35 * 1000
+        return 30 * 1000
 
     def driver_stop_timeout(self):
         """ Returns the amount of time in seconds to wait before killing the process in driver.stop()."""

Modified: trunk/Tools/Scripts/webkitpy/port/driver.py (177455 => 177456)


--- trunk/Tools/Scripts/webkitpy/port/driver.py	2014-12-17 21:03:51 UTC (rev 177455)
+++ trunk/Tools/Scripts/webkitpy/port/driver.py	2014-12-17 21:03:53 UTC (rev 177456)
@@ -179,8 +179,14 @@
         self.err_seen_eof = False
 
         command = self._command_from_driver_input(driver_input)
-        deadline = test_begin_time + int(driver_input.timeout) / 1000.0
 
+        # Certain timeouts are detected by the tool itself; tool detection is better,
+        # because results contain partial output in this case. Make script timeout longer
+        # by 5 seconds to avoid racing for which timeout is detected first.
+        # FIXME: It's not the job of the driver to decide what the timeouts should be.
+        # Move the additional timeout to driver_input.
+        deadline = test_begin_time + int(driver_input.timeout) / 1000.0 + 5
+
         self._server_process.write(command)
         text, audio = self._read_first_block(deadline)  # First block is either text or audio
         image, actual_image_hash = self._read_optional_image_block(deadline)  # The second (optional) block is image data.

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp (177455 => 177456)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp	2014-12-17 21:03:51 UTC (rev 177455)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp	2014-12-17 21:03:53 UTC (rev 177456)
@@ -266,7 +266,8 @@
     m_testRunner->setAcceptsEditing(true);
     m_testRunner->setTabKeyCyclesThroughElements(true);
 
-    m_testRunner->setCustomTimeout(m_timeout);
+    if (m_timeout > 0)
+        m_testRunner->setCustomTimeout(m_timeout);
 
     page()->prepare();
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to