https://bugs.webkit.org/show_bug.cgi?id=143837
Reviewed by Chris Dumez.
--no-timeout used to only affect waitUntilDone timeout, but not IPC timeout in
WebKitTestRunner, and not pipe reading timeout in run-webkit-tests.
Now it disables all timeouts in tools, as is best for debugging tests.
* Scripts/webkitpy/port/driver.py: (Driver.run_test): Respect --no-timeout, so
that the script doesn't terminate DRT/WKTR when there is no output for a long time.
* WebKitTestRunner/Options.cpp: Removed --no-timeout-at-all, as --no-timeout
now has the same functionality.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@182916
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2015-04-16 Alexey Proskuryakov <ap@apple.com>
+
+ It is very hard to attach a debugger to WebProcess to debug tests
+ https://bugs.webkit.org/show_bug.cgi?id=143837
+
+ Reviewed by Chris Dumez.
+
+ --no-timeout used to only affect waitUntilDone timeout, but not IPC timeout in
+ WebKitTestRunner, and not pipe reading timeout in run-webkit-tests.
+
+ Now it disables all timeouts in tools, as is best for debugging tests.
+
+ * Scripts/webkitpy/port/driver.py: (Driver.run_test): Respect --no-timeout, so
+ that the script doesn't terminate DRT/WKTR when there is no output for a long time.
+
+ * WebKitTestRunner/Options.cpp: Removed --no-timeout-at-all, as --no-timeout
+ now has the same functionality.
+
2015-04-16 Beth Dakin <bdakin@apple.com>
Force mouse events should go through normal mouse event handling code paths
# 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
+ if self._no_timeout:
+ deadline = test_begin_time + 60 * 60 * 24 * 7 # 7 days. Using sys.maxint causes a hang.
+ else:
+ 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
bool handleOptionNoTimeout(Options& options, const char*, const char*)
{
options.useWaitToDumpWatchdogTimer = false;
- return true;
-}
-
-bool handleOptionNoTimeoutAtAll(Options& options, const char*, const char*)
-{
- options.useWaitToDumpWatchdogTimer = false;
options.forceNoTimeout = true;
return true;
}
OptionsHandler::OptionsHandler(Options& o)
: options(o)
{
- optionList.append(Option("--no-timeout", "Disables waitUntilDone timeout.", handleOptionNoTimeout));
- optionList.append(Option("--no-timeout-at-all", "Disables all timeouts.", handleOptionNoTimeoutAtAll));
+ optionList.append(Option("--no-timeout", "Disables all timeouts.", handleOptionNoTimeout));
optionList.append(Option("--verbose", "Turns on messages.", handleOptionVerbose));
optionList.append(Option("--gc-between-tests", "Garbage collection between tests.", handleOptionGcBetweenTests));
optionList.append(Option("--pixel-tests", "Check pixels.", handleOptionPixelTests));