Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(785)

Unified Diff: Tools/Scripts/webkitpy/layout_tests/controllers/manager.py

Issue 23496003: User interruption should still create results.html for run-webkit-tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixed failing webkitpy tests and skipping printing of bot results in case of user interruption. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Tools/Scripts/webkitpy/layout_tests/controllers/manager.py
diff --git a/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py b/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py
index 5fef70088e0fe95f1629917a32412f5e1d4b2f50..89c2f8a3da5f8db5fa990739997073999da9b7c9 100644
--- a/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py
+++ b/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py
@@ -38,6 +38,7 @@ import datetime
import json
import logging
import random
+import signal
import sys
import time
@@ -213,8 +214,11 @@ class Manager(object):
initial_results = self._run_tests(tests_to_run, tests_to_skip, self._options.repeat_each, self._options.iterations,
int(self._options.child_processes), retrying=False)
+ # Don't retry failures when interrupted by user or failures limit exception.
+ should_retry_failures = should_retry_failures and not (initial_results.interrupted or initial_results.keyboard_interrupted)
+
tests_to_retry = self._tests_to_retry(initial_results)
- if should_retry_failures and tests_to_retry and not initial_results.interrupted:
+ if should_retry_failures and tests_to_retry:
enabled_pixel_tests_in_retry = self._force_pixel_tests_if_needed()
_log.info('')
@@ -249,10 +253,12 @@ class Manager(object):
results_path = self._filesystem.join(self._results_directory, "results.html")
self._copy_results_html_file(results_path)
- if self._options.show_results and (exit_code or (self._options.full_results_html and initial_results.total_failures)):
- self._port.show_results_html_file(results_path)
-
- self._printer.print_results(time.time() - start_time, initial_results, summarized_failing_results)
+ if initial_results.keyboard_interrupted:
+ exit_code = signal.SIGINT + 128
Dirk Pranke 2013/09/12 21:29:06 Seeing as how this constant is actually needed acr
r.kasibhatla 2013/09/13 04:09:42 Uploaded new patch. As explained in previous comme
+ else:
+ if self._options.show_results and (exit_code or (self._options.full_results_html and initial_results.total_failures)):
+ self._port.show_results_html_file(results_path)
+ self._printer.print_results(time.time() - start_time, initial_results, summarized_failing_results)
return test_run_results.RunDetails(exit_code, summarized_full_results, summarized_failing_results, initial_results, retry_results, enabled_pixel_tests_in_retry)
def _run_tests(self, tests_to_run, tests_to_skip, repeat_each, iterations, num_workers, retrying):

Powered by Google App Engine
This is Rietveld 408576698