Changeset 177870 in webkit
- Timestamp:
- Jan 2, 2015 2:49:44 PM (9 years ago)
- Location:
- trunk/Tools
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r177868 r177870 1 2015-01-01 Alexey Proskuryakov <ap@apple.com> 2 3 Simplify WebKitTestRunner timeout tracking 4 https://bugs.webkit.org/show_bug.cgi?id=140036 5 6 Reviewed by Darin Adler. 7 8 The code for configuring timeouts was mostly dead, because run-webkit-tests never 9 passes the --timeout option to WebKitTestRunner. 10 11 * WebKitTestRunner/Options.h: 12 * WebKitTestRunner/Options.cpp: 13 (WTR::Options::Options): 14 (WTR::OptionsHandler::OptionsHandler): 15 (WTR::handleOptionTimeout): Deleted. 16 Removed support for --timeout. Timeouts are passed for each test individually, 17 and defaults are good enough for the rare cases where WebKitTestRunner is run 18 manually without run-webkit-tests. 19 20 * WebKitTestRunner/TestController.cpp: 21 (WTR::TestController::TestController): 22 (WTR::TestController::initialize): 23 (WTR::TestController::resetStateToConsistentValues): 24 (WTR::TestController::reattachPageToWebProcess): 25 (WTR::TestController::runUntil): 26 * WebKitTestRunner/TestController.h: 27 Simplified runUntil by passing the actual timeout, not an enum. 28 Increased short timeout for ASan enabled builds, as WebProcess launching takes 29 quite a while. 30 31 * WebKitTestRunner/TestInvocation.cpp: 32 (WTR::TestInvocation::invoke): Removed dead code that handled a timeout from NoTimeout. 33 34 * WebKitTestRunner/efl/TestControllerEfl.cpp: 35 (WTR::TestController::platformRunUntil): 36 * WebKitTestRunner/gtk/TestControllerGtk.cpp: 37 (WTR::TestController::platformRunUntil): 38 Build fixes. 39 1 40 2015-01-02 Anders Carlsson <andersca@apple.com> 2 41 -
trunk/Tools/WebKitTestRunner/Options.cpp
r160627 r177870 32 32 namespace WTR { 33 33 34 Options::Options(double defaultLongTimeout, double defaultShortTimeout) 35 : longTimeout(defaultLongTimeout) 36 , shortTimeout(defaultShortTimeout) 37 , useWaitToDumpWatchdogTimer(true) 34 Options::Options() 35 : useWaitToDumpWatchdogTimer(true) 38 36 , forceNoTimeout(false) 39 37 , verbose(false) … … 44 42 , shouldUseAcceleratedDrawing(false) 45 43 , shouldUseRemoteLayerTree(false) 46 , defaultLongTimeout(defaultLongTimeout)47 , defaultShortTimeout(defaultShortTimeout)48 44 { 49 }50 51 bool handleOptionTimeout(Options& options, const char*, const char* argument)52 {53 options.longTimeout = atoi(argument);54 // Scale up the short timeout to match.55 options.shortTimeout = options.defaultShortTimeout * options.longTimeout / options.defaultLongTimeout;56 return true;57 45 } 58 46 … … 123 111 : options(o) 124 112 { 125 optionList.append(Option("--timeout", "Sets long timeout to <param> and scales short timeout.", handleOptionTimeout, true)); 126 optionList.append(Option("--no-timeout", "Disables timeout.", handleOptionNoTimeout)); 113 optionList.append(Option("--no-timeout", "Disables waitUntilDone timeout.", handleOptionNoTimeout)); 127 114 optionList.append(Option("--no-timeout-at-all", "Disables all timeouts.", handleOptionNoTimeoutAtAll)); 128 115 optionList.append(Option("--verbose", "Turns on messages.", handleOptionVerbose)); -
trunk/Tools/WebKitTestRunner/Options.h
r160627 r177870 37 37 38 38 struct Options { 39 Options(double, double); 40 double longTimeout; 41 double shortTimeout; 39 Options(); 42 40 bool useWaitToDumpWatchdogTimer; 43 41 bool forceNoTimeout; … … 50 48 bool shouldUseRemoteLayerTree; 51 49 std::vector<std::string> paths; 52 double defaultLongTimeout;53 double defaultShortTimeout;54 50 }; 55 51 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r177774 r177870 71 71 const unsigned TestController::w3cSVGViewHeight = 360; 72 72 73 // defaultLongTimeout + defaultShortTimeout should be less than 35, 74 // the default timeout value of the test harness so we can detect an 75 // unresponsive web process. 76 // These values are only used by ports that don't have --timeout option passed to WebKitTestRunner. 77 static const double defaultLongTimeout = 25; 78 static const double defaultShortTimeout = 5; 79 static const double defaultNoTimeout = -1; 73 #if defined(__has_feature) 74 #if __has_feature(address_sanitizer) 75 const double TestController::shortTimeout = 10.0; 76 #else 77 const double TestController::shortTimeout = 5.0; 78 #endif 79 #else 80 const double TestController::shortTimeout = 5.0; 81 #endif 82 83 const double TestController::noTimeout = -1; 80 84 81 85 static WKURLRef blankURL() … … 107 111 , m_state(Initial) 108 112 , m_doneResetting(false) 109 , m_longTimeout(defaultLongTimeout)110 , m_shortTimeout(defaultShortTimeout)111 , m_noTimeout(defaultNoTimeout)112 113 , m_useWaitToDumpWatchdogTimer(true) 113 114 , m_forceNoTimeout(false) … … 338 339 platformInitialize(); 339 340 340 Options options (defaultLongTimeout, defaultShortTimeout);341 Options options; 341 342 OptionsHandler optionsHandler(options); 342 343 … … 348 349 exit(1); 349 350 350 m_longTimeout = options.longTimeout;351 m_shortTimeout = options.shortTimeout;352 351 m_useWaitToDumpWatchdogTimer = options.useWaitToDumpWatchdogTimer; 353 352 m_forceNoTimeout = options.forceNoTimeout; … … 741 740 742 741 WKPageLoadURL(m_mainWebView->page(), blankURL()); 743 runUntil(m_doneResetting, ShortTimeout);742 runUntil(m_doneResetting, shortTimeout); 744 743 return m_doneResetting; 745 744 } … … 755 754 m_doneResetting = false; 756 755 WKPageLoadURL(m_mainWebView->page(), blankURL()); 757 runUntil(m_doneResetting, LongTimeout);756 runUntil(m_doneResetting, shortTimeout); 758 757 } 759 758 … … 963 962 } 964 963 965 void TestController::runUntil(bool& done, TimeoutDuration timeoutDuration) 966 { 967 double timeout = m_noTimeout; 968 if (!m_forceNoTimeout) { 969 switch (timeoutDuration) { 970 case ShortTimeout: 971 timeout = m_shortTimeout; 972 break; 973 case LongTimeout: 974 timeout = m_longTimeout; 975 break; 976 case NoTimeout: 977 default: 978 timeout = m_noTimeout; 979 break; 980 } 981 } 964 void TestController::runUntil(bool& done, double timeout) 965 { 966 if (m_forceNoTimeout) 967 timeout = noTimeout; 982 968 983 969 platformRunUntil(done, timeout); -
trunk/Tools/WebKitTestRunner/TestController.h
r177363 r177870 52 52 static const unsigned w3cSVGViewHeight; 53 53 54 static const double shortTimeout; 55 static const double noTimeout; 56 54 57 TestController(int argc, const char* argv[]); 55 58 ~TestController(); … … 69 72 70 73 // Runs the run loop until `done` is true or the timeout elapses. 71 enum TimeoutDuration { ShortTimeout, LongTimeout, NoTimeout };72 74 bool useWaitToDumpWatchdogTimer() { return m_useWaitToDumpWatchdogTimer; } 73 void runUntil(bool& done, TimeoutDuration);75 void runUntil(bool& done, double timeoutSeconds); 74 76 void notifyDone(); 75 77 … … 224 226 bool m_doneResetting; 225 227 226 double m_longTimeout;227 double m_shortTimeout;228 double m_noTimeout;229 228 bool m_useWaitToDumpWatchdogTimer; 230 229 bool m_forceNoTimeout; -
trunk/Tools/WebKitTestRunner/TestInvocation.cpp
r177363 r177870 161 161 WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), beginTestMessageBody.get()); 162 162 163 TestController::shared().runUntil(m_gotInitialResponse, TestController:: ShortTimeout);163 TestController::shared().runUntil(m_gotInitialResponse, TestController::shortTimeout); 164 164 if (!m_gotInitialResponse) { 165 165 m_errorMessage = "Timed out waiting for initial response from web process\n"; … … 172 172 WKPageLoadURL(TestController::shared().mainWebView()->page(), m_url.get()); 173 173 174 TestController::shared().runUntil(m_gotFinalMessage, TestController::NoTimeout); 175 176 if (!m_gotFinalMessage) { 177 m_errorMessage = "Timed out waiting for final message from web process\n"; 178 m_webProcessIsUnresponsive = true; 179 goto end; 180 } 174 TestController::shared().runUntil(m_gotFinalMessage, TestController::noTimeout); 181 175 if (m_error) 182 176 goto end; … … 255 249 m_gotRepaint = false; 256 250 WKPageForceRepaint(TestController::shared().mainWebView()->page(), this, TestInvocation::forceRepaintDoneCallback); 257 TestController::shared().runUntil(m_gotRepaint, TestController:: ShortTimeout);251 TestController::shared().runUntil(m_gotRepaint, TestController::shortTimeout); 258 252 if (!m_gotRepaint) { 259 253 m_errorMessage = "Timed out waiting for pre-pixel dump repaint\n"; -
trunk/Tools/WebKitTestRunner/efl/TestControllerEfl.cpp
r168045 r177870 70 70 void TestController::platformRunUntil(bool& condition, double timeout) 71 71 { 72 if (timeout == m_noTimeout) {72 if (timeout <= 0) { 73 73 // Never timeout if we are debugging or not meant to timeout. 74 74 while (!condition) -
trunk/Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp
r176921 r177870 58 58 void TestController::platformRunUntil(bool&, double timeout) 59 59 { 60 if (timeout != m_noTimeout) {60 if (timeout > 0) { 61 61 timeoutSource.scheduleAfterDelay("[WTR] Test timeout source", [] { 62 62 fprintf(stderr, "FAIL: TestControllerRunLoop timed out.\n");
Note: See TracChangeset
for help on using the changeset viewer.