<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[177870] trunk/Tools</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/177870">177870</a></dd>
<dt>Author</dt> <dd>ap@apple.com</dd>
<dt>Date</dt> <dd>2015-01-02 14:49:44 -0800 (Fri, 02 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Simplify WebKitTestRunner timeout tracking
https://bugs.webkit.org/show_bug.cgi?id=140036

Reviewed by Darin Adler.

The code for configuring timeouts was mostly dead, because run-webkit-tests never
passes the --timeout option to WebKitTestRunner.

* WebKitTestRunner/Options.h:
* WebKitTestRunner/Options.cpp:
(WTR::Options::Options):
(WTR::OptionsHandler::OptionsHandler):
(WTR::handleOptionTimeout): Deleted.
Removed support for --timeout. Timeouts are passed for each test individually,
and defaults are good enough for the rare cases where WebKitTestRunner is run
manually without run-webkit-tests.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::TestController):
(WTR::TestController::initialize):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::reattachPageToWebProcess):
(WTR::TestController::runUntil):
* WebKitTestRunner/TestController.h:
Simplified runUntil by passing the actual timeout, not an enum.
Increased short timeout for ASan enabled builds, as WebProcess launching takes
quite a while.

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::invoke): Removed dead code that handled a timeout from NoTimeout.

* WebKitTestRunner/efl/TestControllerEfl.cpp:
(WTR::TestController::platformRunUntil):
* WebKitTestRunner/gtk/TestControllerGtk.cpp:
(WTR::TestController::platformRunUntil):
Build fixes.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsWebKitTestRunnerOptionscpp">trunk/Tools/WebKitTestRunner/Options.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerOptionsh">trunk/Tools/WebKitTestRunner/Options.h</a></li>
<li><a href="#trunkToolsWebKitTestRunnerTestControllercpp">trunk/Tools/WebKitTestRunner/TestController.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerTestControllerh">trunk/Tools/WebKitTestRunner/TestController.h</a></li>
<li><a href="#trunkToolsWebKitTestRunnerTestInvocationcpp">trunk/Tools/WebKitTestRunner/TestInvocation.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnereflTestControllerEflcpp">trunk/Tools/WebKitTestRunner/efl/TestControllerEfl.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnergtkTestControllerGtkcpp">trunk/Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (177869 => 177870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-01-02 22:40:14 UTC (rev 177869)
+++ trunk/Tools/ChangeLog        2015-01-02 22:49:44 UTC (rev 177870)
</span><span class="lines">@@ -1,3 +1,42 @@
</span><ins>+2015-01-01  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        Simplify WebKitTestRunner timeout tracking
+        https://bugs.webkit.org/show_bug.cgi?id=140036
+
+        Reviewed by Darin Adler.
+
+        The code for configuring timeouts was mostly dead, because run-webkit-tests never
+        passes the --timeout option to WebKitTestRunner.
+
+        * WebKitTestRunner/Options.h:
+        * WebKitTestRunner/Options.cpp:
+        (WTR::Options::Options):
+        (WTR::OptionsHandler::OptionsHandler):
+        (WTR::handleOptionTimeout): Deleted.
+        Removed support for --timeout. Timeouts are passed for each test individually,
+        and defaults are good enough for the rare cases where WebKitTestRunner is run
+        manually without run-webkit-tests.
+
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::TestController):
+        (WTR::TestController::initialize):
+        (WTR::TestController::resetStateToConsistentValues):
+        (WTR::TestController::reattachPageToWebProcess):
+        (WTR::TestController::runUntil):
+        * WebKitTestRunner/TestController.h:
+        Simplified runUntil by passing the actual timeout, not an enum.
+        Increased short timeout for ASan enabled builds, as WebProcess launching takes
+        quite a while.
+
+        * WebKitTestRunner/TestInvocation.cpp:
+        (WTR::TestInvocation::invoke): Removed dead code that handled a timeout from NoTimeout.
+
+        * WebKitTestRunner/efl/TestControllerEfl.cpp:
+        (WTR::TestController::platformRunUntil):
+        * WebKitTestRunner/gtk/TestControllerGtk.cpp:
+        (WTR::TestController::platformRunUntil):
+        Build fixes.
+
</ins><span class="cx"> 2015-01-02  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove now unused storage tracker glue from DumpRenderTree
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerOptionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/Options.cpp (177869 => 177870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/Options.cpp        2015-01-02 22:40:14 UTC (rev 177869)
+++ trunk/Tools/WebKitTestRunner/Options.cpp        2015-01-02 22:49:44 UTC (rev 177870)
</span><span class="lines">@@ -31,10 +31,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WTR {
</span><span class="cx"> 
</span><del>-Options::Options(double defaultLongTimeout, double defaultShortTimeout)
-    : longTimeout(defaultLongTimeout)
-    , shortTimeout(defaultShortTimeout)
-    , useWaitToDumpWatchdogTimer(true)
</del><ins>+Options::Options()
+    : useWaitToDumpWatchdogTimer(true)
</ins><span class="cx">     , forceNoTimeout(false)
</span><span class="cx">     , verbose(false)
</span><span class="cx">     , gcBetweenTests(false)
</span><span class="lines">@@ -43,19 +41,9 @@
</span><span class="cx">     , forceComplexText(false)
</span><span class="cx">     , shouldUseAcceleratedDrawing(false)
</span><span class="cx">     , shouldUseRemoteLayerTree(false)
</span><del>-    , defaultLongTimeout(defaultLongTimeout)
-    , defaultShortTimeout(defaultShortTimeout)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool handleOptionTimeout(Options&amp; options, const char*, const char* argument)
-{
-    options.longTimeout = atoi(argument);
-    // Scale up the short timeout to match.
-    options.shortTimeout = options.defaultShortTimeout * options.longTimeout / options.defaultLongTimeout;
-    return true;
-}
-
</del><span class="cx"> bool handleOptionNoTimeout(Options&amp; options, const char*, const char*)
</span><span class="cx"> {
</span><span class="cx">     options.useWaitToDumpWatchdogTimer = false;
</span><span class="lines">@@ -122,8 +110,7 @@
</span><span class="cx"> OptionsHandler::OptionsHandler(Options&amp; o)
</span><span class="cx">     : options(o)
</span><span class="cx"> {
</span><del>-    optionList.append(Option(&quot;--timeout&quot;, &quot;Sets long timeout to &lt;param&gt; and scales short timeout.&quot;, handleOptionTimeout, true));
-    optionList.append(Option(&quot;--no-timeout&quot;, &quot;Disables timeout.&quot;, handleOptionNoTimeout));
</del><ins>+    optionList.append(Option(&quot;--no-timeout&quot;, &quot;Disables waitUntilDone timeout.&quot;, handleOptionNoTimeout));
</ins><span class="cx">     optionList.append(Option(&quot;--no-timeout-at-all&quot;, &quot;Disables all timeouts.&quot;, handleOptionNoTimeoutAtAll));
</span><span class="cx">     optionList.append(Option(&quot;--verbose&quot;, &quot;Turns on messages.&quot;, handleOptionVerbose));
</span><span class="cx">     optionList.append(Option(&quot;--gc-between-tests&quot;, &quot;Garbage collection between tests.&quot;, handleOptionGcBetweenTests));
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerOptionsh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/Options.h (177869 => 177870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/Options.h        2015-01-02 22:40:14 UTC (rev 177869)
+++ trunk/Tools/WebKitTestRunner/Options.h        2015-01-02 22:49:44 UTC (rev 177870)
</span><span class="lines">@@ -36,9 +36,7 @@
</span><span class="cx"> namespace WTR {
</span><span class="cx"> 
</span><span class="cx"> struct Options {
</span><del>-    Options(double, double);
-    double longTimeout;
-    double shortTimeout;
</del><ins>+    Options();
</ins><span class="cx">     bool useWaitToDumpWatchdogTimer;
</span><span class="cx">     bool forceNoTimeout;
</span><span class="cx">     bool verbose;
</span><span class="lines">@@ -49,8 +47,6 @@
</span><span class="cx">     bool shouldUseAcceleratedDrawing;
</span><span class="cx">     bool shouldUseRemoteLayerTree;
</span><span class="cx">     std::vector&lt;std::string&gt; paths;
</span><del>-    double defaultLongTimeout;
-    double defaultShortTimeout;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class Option {
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerTestControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (177869 => 177870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/TestController.cpp        2015-01-02 22:40:14 UTC (rev 177869)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp        2015-01-02 22:49:44 UTC (rev 177870)
</span><span class="lines">@@ -70,14 +70,18 @@
</span><span class="cx"> const unsigned TestController::w3cSVGViewWidth = 480;
</span><span class="cx"> const unsigned TestController::w3cSVGViewHeight = 360;
</span><span class="cx"> 
</span><del>-// defaultLongTimeout + defaultShortTimeout should be less than 35,
-// the default timeout value of the test harness so we can detect an
-// unresponsive web process.
-// These values are only used by ports that don't have --timeout option passed to WebKitTestRunner.
-static const double defaultLongTimeout = 25;
-static const double defaultShortTimeout = 5;
-static const double defaultNoTimeout = -1;
</del><ins>+#if defined(__has_feature)
+#if __has_feature(address_sanitizer)
+const double TestController::shortTimeout = 10.0;
+#else
+const double TestController::shortTimeout = 5.0;
+#endif
+#else
+const double TestController::shortTimeout = 5.0;
+#endif
</ins><span class="cx"> 
</span><ins>+const double TestController::noTimeout = -1;
+
</ins><span class="cx"> static WKURLRef blankURL()
</span><span class="cx"> {
</span><span class="cx">     static WKURLRef staticBlankURL = WKURLCreateWithUTF8CString(&quot;about:blank&quot;);
</span><span class="lines">@@ -106,9 +110,6 @@
</span><span class="cx">     , m_shouldDumpPixelsForAllTests(false)
</span><span class="cx">     , m_state(Initial)
</span><span class="cx">     , m_doneResetting(false)
</span><del>-    , m_longTimeout(defaultLongTimeout)
-    , m_shortTimeout(defaultShortTimeout)
-    , m_noTimeout(defaultNoTimeout)
</del><span class="cx">     , m_useWaitToDumpWatchdogTimer(true)
</span><span class="cx">     , m_forceNoTimeout(false)
</span><span class="cx">     , m_didPrintWebProcessCrashedMessage(false)
</span><span class="lines">@@ -337,7 +338,7 @@
</span><span class="cx"> {
</span><span class="cx">     platformInitialize();
</span><span class="cx"> 
</span><del>-    Options options(defaultLongTimeout, defaultShortTimeout);
</del><ins>+    Options options;
</ins><span class="cx">     OptionsHandler optionsHandler(options);
</span><span class="cx"> 
</span><span class="cx">     if (argc &lt; 2) {
</span><span class="lines">@@ -347,8 +348,6 @@
</span><span class="cx">     if (!optionsHandler.parse(argc, argv))
</span><span class="cx">         exit(1);
</span><span class="cx"> 
</span><del>-    m_longTimeout = options.longTimeout;
-    m_shortTimeout = options.shortTimeout;
</del><span class="cx">     m_useWaitToDumpWatchdogTimer = options.useWaitToDumpWatchdogTimer;
</span><span class="cx">     m_forceNoTimeout = options.forceNoTimeout;
</span><span class="cx">     m_verbose = options.verbose;
</span><span class="lines">@@ -740,7 +739,7 @@
</span><span class="cx">     m_doneResetting = false;
</span><span class="cx"> 
</span><span class="cx">     WKPageLoadURL(m_mainWebView-&gt;page(), blankURL());
</span><del>-    runUntil(m_doneResetting, ShortTimeout);
</del><ins>+    runUntil(m_doneResetting, shortTimeout);
</ins><span class="cx">     return m_doneResetting;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -754,7 +753,7 @@
</span><span class="cx">     // Loading a web page is the only way to reattach an existing page to a process.
</span><span class="cx">     m_doneResetting = false;
</span><span class="cx">     WKPageLoadURL(m_mainWebView-&gt;page(), blankURL());
</span><del>-    runUntil(m_doneResetting, LongTimeout);
</del><ins>+    runUntil(m_doneResetting, shortTimeout);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TestController::updateWebViewSizeForTest(const TestInvocation&amp; test)
</span><span class="lines">@@ -962,23 +961,10 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void TestController::runUntil(bool&amp; done, TimeoutDuration timeoutDuration)
</del><ins>+void TestController::runUntil(bool&amp; done, double timeout)
</ins><span class="cx"> {
</span><del>-    double timeout = m_noTimeout;
-    if (!m_forceNoTimeout) {
-        switch (timeoutDuration) {
-        case ShortTimeout:
-            timeout = m_shortTimeout;
-            break;
-        case LongTimeout:
-            timeout = m_longTimeout;
-            break;
-        case NoTimeout:
-        default:
-            timeout = m_noTimeout;
-            break;
-        }
-    }
</del><ins>+    if (m_forceNoTimeout)
+        timeout = noTimeout;
</ins><span class="cx"> 
</span><span class="cx">     platformRunUntil(done, timeout);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerTestControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/TestController.h (177869 => 177870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/TestController.h        2015-01-02 22:40:14 UTC (rev 177869)
+++ trunk/Tools/WebKitTestRunner/TestController.h        2015-01-02 22:49:44 UTC (rev 177870)
</span><span class="lines">@@ -51,6 +51,9 @@
</span><span class="cx">     static const unsigned w3cSVGViewWidth;
</span><span class="cx">     static const unsigned w3cSVGViewHeight;
</span><span class="cx"> 
</span><ins>+    static const double shortTimeout;
+    static const double noTimeout;
+
</ins><span class="cx">     TestController(int argc, const char* argv[]);
</span><span class="cx">     ~TestController();
</span><span class="cx"> 
</span><span class="lines">@@ -68,9 +71,8 @@
</span><span class="cx">     bool shouldUseRemoteLayerTree() const { return m_shouldUseRemoteLayerTree; }
</span><span class="cx">     
</span><span class="cx">     // Runs the run loop until `done` is true or the timeout elapses.
</span><del>-    enum TimeoutDuration { ShortTimeout, LongTimeout, NoTimeout };
</del><span class="cx">     bool useWaitToDumpWatchdogTimer() { return m_useWaitToDumpWatchdogTimer; }
</span><del>-    void runUntil(bool&amp; done, TimeoutDuration);
</del><ins>+    void runUntil(bool&amp; done, double timeoutSeconds);
</ins><span class="cx">     void notifyDone();
</span><span class="cx">     
</span><span class="cx">     void configureViewForTest(const TestInvocation&amp;);
</span><span class="lines">@@ -223,9 +225,6 @@
</span><span class="cx">     State m_state;
</span><span class="cx">     bool m_doneResetting;
</span><span class="cx"> 
</span><del>-    double m_longTimeout;
-    double m_shortTimeout;
-    double m_noTimeout;
</del><span class="cx">     bool m_useWaitToDumpWatchdogTimer;
</span><span class="cx">     bool m_forceNoTimeout;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerTestInvocationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/TestInvocation.cpp (177869 => 177870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/TestInvocation.cpp        2015-01-02 22:40:14 UTC (rev 177869)
+++ trunk/Tools/WebKitTestRunner/TestInvocation.cpp        2015-01-02 22:49:44 UTC (rev 177870)
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx"> 
</span><span class="cx">     WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), beginTestMessageBody.get());
</span><span class="cx"> 
</span><del>-    TestController::shared().runUntil(m_gotInitialResponse, TestController::ShortTimeout);
</del><ins>+    TestController::shared().runUntil(m_gotInitialResponse, TestController::shortTimeout);
</ins><span class="cx">     if (!m_gotInitialResponse) {
</span><span class="cx">         m_errorMessage = &quot;Timed out waiting for initial response from web process\n&quot;;
</span><span class="cx">         m_webProcessIsUnresponsive = true;
</span><span class="lines">@@ -171,13 +171,7 @@
</span><span class="cx"> 
</span><span class="cx">     WKPageLoadURL(TestController::shared().mainWebView()-&gt;page(), m_url.get());
</span><span class="cx"> 
</span><del>-    TestController::shared().runUntil(m_gotFinalMessage, TestController::NoTimeout);
-
-    if (!m_gotFinalMessage) {
-        m_errorMessage = &quot;Timed out waiting for final message from web process\n&quot;;
-        m_webProcessIsUnresponsive = true;
-        goto end;
-    }
</del><ins>+    TestController::shared().runUntil(m_gotFinalMessage, TestController::noTimeout);
</ins><span class="cx">     if (m_error)
</span><span class="cx">         goto end;
</span><span class="cx"> 
</span><span class="lines">@@ -254,7 +248,7 @@
</span><span class="cx">         if (PlatformWebView::windowSnapshotEnabled()) {
</span><span class="cx">             m_gotRepaint = false;
</span><span class="cx">             WKPageForceRepaint(TestController::shared().mainWebView()-&gt;page(), this, TestInvocation::forceRepaintDoneCallback);
</span><del>-            TestController::shared().runUntil(m_gotRepaint, TestController::ShortTimeout);
</del><ins>+            TestController::shared().runUntil(m_gotRepaint, TestController::shortTimeout);
</ins><span class="cx">             if (!m_gotRepaint) {
</span><span class="cx">                 m_errorMessage = &quot;Timed out waiting for pre-pixel dump repaint\n&quot;;
</span><span class="cx">                 m_webProcessIsUnresponsive = true;
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnereflTestControllerEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/efl/TestControllerEfl.cpp (177869 => 177870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/efl/TestControllerEfl.cpp        2015-01-02 22:40:14 UTC (rev 177869)
+++ trunk/Tools/WebKitTestRunner/efl/TestControllerEfl.cpp        2015-01-02 22:49:44 UTC (rev 177870)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> 
</span><span class="cx"> void TestController::platformRunUntil(bool&amp; condition, double timeout)
</span><span class="cx"> {
</span><del>-    if (timeout == m_noTimeout) {
</del><ins>+    if (timeout &lt;= 0) {
</ins><span class="cx">         // Never timeout if we are debugging or not meant to timeout.
</span><span class="cx">         while (!condition)
</span><span class="cx">             ecore_main_loop_iterate();
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnergtkTestControllerGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp (177869 => 177870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp        2015-01-02 22:40:14 UTC (rev 177869)
+++ trunk/Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp        2015-01-02 22:49:44 UTC (rev 177870)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> 
</span><span class="cx"> void TestController::platformRunUntil(bool&amp;, double timeout)
</span><span class="cx"> {
</span><del>-    if (timeout != m_noTimeout) {
</del><ins>+    if (timeout &gt; 0) {
</ins><span class="cx">         timeoutSource.scheduleAfterDelay(&quot;[WTR] Test timeout source&quot;, [] {
</span><span class="cx">             fprintf(stderr, &quot;FAIL: TestControllerRunLoop timed out.\n&quot;);
</span><span class="cx">             gtk_main_quit();
</span></span></pre>
</div>
</div>

</body>
</html>