Changeset 110382 in webkit
- Timestamp:
- Mar 10, 2012 10:44:59 AM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r110381 r110382 1 2012-03-09 Zan Dobersek <zandobersek@gmail.com> 2 3 [WK2] run-perf-tests should be able to run with WTR 4 https://bugs.webkit.org/show_bug.cgi?id=80042 5 6 Reviewed by Martin Robinson. 7 8 Add an option to PerfTestRunner to use WebKitTestRunner instead of 9 DumpRenderTree and add the '--no-timeout' flag to WebKitTestRunner 10 to avoid timing out when running performance tests. 11 12 * Scripts/webkitpy/performance_tests/perftestsrunner.py: 13 (PerfTestsRunner._parse_args): 14 * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: 15 (WTR::InjectedBundle::InjectedBundle): Initialize m_useWaitToDumpWatchdogTimer 16 to true. 17 (WTR::InjectedBundle::didReceiveMessage): Unpack the 'BeginTest' message 18 as a dictionary containing DumpPixels and UseWaitToDumpWatchdogTimer keys. 19 * WebKitTestRunner/InjectedBundle/InjectedBundle.h: 20 (WTR::InjectedBundle::useWaitToDumpWatchdogTimer): Make m_useWaitToDumpWatchdogTimer 21 publicly accessible. 22 * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: 23 (WTR::LayoutTestController::waitUntilDone): Only initialize the watchdog if it 24 is required. 25 * WebKitTestRunner/TestController.cpp: 26 (WTR::TestController::TestController): Initialize m_useWaitToDumpWatchdogTimer 27 to true. 28 (WTR::TestController::initialize): Set m_useWaitToDumpWatchdogTimer to false 29 if '--no-timeout' option is present. 30 (WTR::TestController::runUntil): Translate TimeoutDuration to a proper timeout 31 value, or -1.0 if timeout should not occur. 32 * WebKitTestRunner/TestController.h: 33 (WTR::TestController::useWaitToDumpWatchdogTimer): Make m_useWaitToDumpWatchdogTimer 34 publicly accessible. 35 * WebKitTestRunner/TestInvocation.cpp: 36 (WTR::TestInvocation::invoke): Pack the 'BeginTest' message as a dictionary, 37 containing DumpPixels and UseWaitToDumpWatchdogTimer keys and corresponding values. 38 Waiting for final message should not time out if not necessary. 39 * WebKitTestRunner/gtk/TestControllerGtk.cpp: 40 (WTR::TestController::platformRunUntil): Only set up a timeout if necessary. 41 * WebKitTestRunner/qt/TestControllerQt.cpp: 42 (WTR::TestController::platformRunUntil): Ditto. 43 * WebKitTestRunner/mac/TestControllerMac.mm: 44 (WTR::TestController::platformRunUntil): Add a FIXME, indicating functionality 45 is missing. 46 * WebKitTestRunner/win/TestControllerWin.cpp: 47 (WTR::TestController::platformRunUntil): Ditto. 48 1 49 2012-03-09 Jon Lee <jonlee@apple.com> 2 50 -
trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py
r109482 r110382 100 100 optparse.make_option("--test-results-server", 101 101 help="Upload the generated JSON file to the specified server when --output-json-path is present"), 102 optparse.make_option("--webkit-test-runner", "-2", action="store_true", 103 help="Use WebKitTestRunner rather than DumpRenderTree."), 102 104 ] 103 105 -
trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
r100488 r110382 52 52 , m_state(Idle) 53 53 , m_dumpPixels(false) 54 , m_useWaitToDumpWatchdogTimer(true) 54 55 { 55 56 } … … 132 133 if (WKStringIsEqualToUTF8CString(messageName, "BeginTest")) { 133 134 ASSERT(messageBody); 134 ASSERT(WKGetTypeID(messageBody) == WKBooleanGetTypeID()); 135 m_dumpPixels = WKBooleanGetValue(static_cast<WKBooleanRef>(messageBody)); 135 ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID()); 136 WKDictionaryRef messageBodyDictionary = static_cast<WKDictionaryRef>(messageBody); 137 138 WKRetainPtr<WKStringRef> dumpPixelsKey(AdoptWK, WKStringCreateWithUTF8CString("DumpPixels")); 139 m_dumpPixels = WKBooleanGetValue(static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, dumpPixelsKey.get()))); 140 141 WKRetainPtr<WKStringRef> useWaitToDumpWatchdogTimerKey(AdoptWK, WKStringCreateWithUTF8CString("UseWaitToDumpWatchdogTimer")); 142 m_useWaitToDumpWatchdogTimer = WKBooleanGetValue(static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, useWaitToDumpWatchdogTimerKey.get()))); 136 143 137 144 WKRetainPtr<WKStringRef> ackMessageName(AdoptWK, WKStringCreateWithUTF8CString("Ack")); -
trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h
r100488 r110382 77 77 78 78 bool shouldDumpPixels() const { return m_dumpPixels; } 79 bool useWaitToDumpWatchdogTimer() const { return m_useWaitToDumpWatchdogTimer; } 79 80 80 81 void postNewBeforeUnloadReturnValue(bool); … … 126 127 127 128 bool m_dumpPixels; 129 bool m_useWaitToDumpWatchdogTimer; 128 130 129 131 WKRetainPtr<WKImageRef> m_pixelResult; -
trunk/Tools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp
r106005 r110382 151 151 { 152 152 m_waitToDump = true; 153 initializeWaitToDumpWatchdogTimerIfNeeded(); 153 if (InjectedBundle::shared().useWaitToDumpWatchdogTimer()) 154 initializeWaitToDumpWatchdogTimerIfNeeded(); 154 155 } 155 156 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r108643 r110382 47 47 static const double defaultLongTimeout = 30; 48 48 static const double defaultShortTimeout = 5; 49 static const double defaultNoTimeout = -1; 49 50 50 51 static WKURLRef blankURL() … … 73 74 , m_longTimeout(defaultLongTimeout) 74 75 , m_shortTimeout(defaultShortTimeout) 76 , m_noTimeout(defaultNoTimeout) 77 , m_useWaitToDumpWatchdogTimer(true) 75 78 , m_didPrintWebProcessCrashedMessage(false) 76 79 , m_shouldExitWhenWebProcessCrashes(true) … … 249 252 } 250 253 254 if (argument == "--no-timeout") { 255 m_useWaitToDumpWatchdogTimer = false; 256 continue; 257 } 258 251 259 if (argument == "--skip-pixel-test-if-no-baseline") { 252 260 m_skipPixelTestOption = true; … … 538 546 void TestController::runUntil(bool& done, TimeoutDuration timeoutDuration) 539 547 { 540 platformRunUntil(done, timeoutDuration == ShortTimeout ? m_shortTimeout : m_longTimeout); 548 double timeout; 549 switch (timeoutDuration) { 550 case ShortTimeout: 551 timeout = m_shortTimeout; 552 break; 553 case LongTimeout: 554 timeout = m_longTimeout; 555 break; 556 case NoTimeout: 557 default: 558 timeout = m_noTimeout; 559 break; 560 } 561 562 platformRunUntil(done, timeout); 541 563 } 542 564 -
trunk/Tools/WebKitTestRunner/TestController.h
r107113 r110382 55 55 56 56 // Runs the run loop until `done` is true or the timeout elapses. 57 enum TimeoutDuration { ShortTimeout, LongTimeout }; 57 enum TimeoutDuration { ShortTimeout, LongTimeout, NoTimeout }; 58 bool useWaitToDumpWatchdogTimer() { return m_useWaitToDumpWatchdogTimer; } 58 59 void runUntil(bool& done, TimeoutDuration); 59 60 void notifyDone(); … … 128 129 double m_longTimeout; 129 130 double m_shortTimeout; 131 double m_noTimeout; 132 bool m_useWaitToDumpWatchdogTimer; 130 133 131 134 bool m_didPrintWebProcessCrashedMessage; -
trunk/Tools/WebKitTestRunner/TestInvocation.cpp
r109509 r110382 141 141 142 142 WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("BeginTest")); 143 WKRetainPtr<WKBooleanRef> dumpPixels = adoptWK(WKBooleanCreate(m_dumpPixels)); 144 WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), dumpPixels.get()); 143 WKRetainPtr<WKMutableDictionaryRef> beginTestMessageBody = adoptWK(WKMutableDictionaryCreate()); 144 145 WKRetainPtr<WKStringRef> dumpPixelsKey = adoptWK(WKStringCreateWithUTF8CString("DumpPixels")); 146 WKRetainPtr<WKBooleanRef> dumpPixelsValue = adoptWK(WKBooleanCreate(m_dumpPixels)); 147 WKDictionaryAddItem(beginTestMessageBody.get(), dumpPixelsKey.get(), dumpPixelsValue.get()); 148 149 WKRetainPtr<WKStringRef> useWaitToDumpWatchdogTimerKey = adoptWK(WKStringCreateWithUTF8CString("UseWaitToDumpWatchdogTimer")); 150 WKRetainPtr<WKBooleanRef> useWaitToDumpWatchdogTimerValue = adoptWK(WKBooleanCreate(TestController::shared().useWaitToDumpWatchdogTimer())); 151 WKDictionaryAddItem(beginTestMessageBody.get(), useWaitToDumpWatchdogTimerKey.get(), useWaitToDumpWatchdogTimerValue.get()); 152 153 WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), beginTestMessageBody.get()); 145 154 146 155 TestController::shared().runUntil(m_gotInitialResponse, TestController::ShortTimeout); … … 159 168 WKPageLoadURL(TestController::shared().mainWebView()->page(), m_url.get()); 160 169 161 TestController::shared().runUntil(m_gotFinalMessage, TestController:: LongTimeout);170 TestController::shared().runUntil(m_gotFinalMessage, TestController::shared().useWaitToDumpWatchdogTimer() ? TestController::LongTimeout : TestController::NoTimeout); 162 171 if (!m_gotFinalMessage) 163 172 dump("Timed out waiting for final message from web process\n"); -
trunk/Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp
r89616 r110382 65 65 { 66 66 cancelTimeout(); 67 gTimeoutSourceId = g_timeout_add(timeout * 1000, timeoutCallback, 0); 67 if (timeout != m_noTimeout) 68 gTimeoutSourceId = g_timeout_add(timeout * 1000, timeoutCallback, 0); 68 69 gtk_main(); 69 70 } -
trunk/Tools/WebKitTestRunner/mac/TestControllerMac.mm
r81140 r110382 54 54 void TestController::platformRunUntil(bool& done, double timeout) 55 55 { 56 // FIXME: No timeout should occur if timeout is equal to m_noTimeout (necessary when running performance tests). 56 57 CFAbsoluteTime end = CFAbsoluteTimeGetCurrent() + timeout; 57 58 CFDateRef endDate = CFDateCreate(0, end); -
trunk/Tools/WebKitTestRunner/qt/TestControllerQt.cpp
r103329 r110382 56 56 void TestController::platformRunUntil(bool& condition, double timeout) 57 57 { 58 if (qgetenv("QT_WEBKIT2_DEBUG") == "1" ) {59 // Never timeout if we are debugging .58 if (qgetenv("QT_WEBKIT2_DEBUG") == "1" || timeout == m_noTimeout) { 59 // Never timeout if we are debugging or not meant to timeout. 60 60 while (!condition) 61 61 QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents, 50); -
trunk/Tools/WebKitTestRunner/win/TestControllerWin.cpp
r81135 r110382 173 173 void TestController::platformRunUntil(bool& done, double timeout) 174 174 { 175 // FIXME: No timeout should occur if timeout is equal to m_noTimeout (necessary when running performance tests). 175 176 RunLoopResult result = runRunLoopUntil(done, webProcessCrashingEvent, timeout); 176 177 if (result == TimedOut || result == ConditionSatisfied)
Note: See TracChangeset
for help on using the changeset viewer.