Modified: trunk/Tools/ChangeLog (136580 => 136581)
--- trunk/Tools/ChangeLog 2012-12-04 22:51:45 UTC (rev 136580)
+++ trunk/Tools/ChangeLog 2012-12-04 22:54:01 UTC (rev 136581)
@@ -1,5 +1,21 @@
2012-12-04 Dirk Pranke <[email protected]>
+ nrwt: do less work when ctrl-c'ed
+ https://bugs.webkit.org/show_bug.cgi?id=103961
+
+ Reviewed by Ryosuke Niwa.
+
+ Do less work when we are ctrl-c'ed, because the statistics aren't
+ that useful anyway. While we're at it, modify summarize_results
+ to be aware that we don't always retry results (instead of pretending
+ that the retry produced the same results the initial run did).
+
+ * Scripts/webkitpy/layout_tests/controllers/manager.py:
+ (summarize_results):
+ (Manager.run):
+
+2012-12-04 Dirk Pranke <[email protected]>
+
nrwt: result summaries should not require a list of tests to skip
https://bugs.webkit.org/show_bug.cgi?id=103951
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py (136580 => 136581)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py 2012-12-04 22:51:45 UTC (rev 136580)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py 2012-12-04 22:54:01 UTC (rev 136581)
@@ -115,7 +115,7 @@
port_obj: interface to port-specific hooks
expectations: test_expectations.TestExpectations object
result_summary: summary object from initial test runs
- retry_summary: summary object from final test run of retried tests
+ retry_summary: summary object from final test run of retried tests (if any)
only_unexpected: whether to return a summary only for the unexpected results
Returns:
A dictionary containing a summary of the unexpected results from the
@@ -183,16 +183,18 @@
if test_name in result_summary.unexpected_results:
num_missing += 1
elif test_name in result_summary.unexpected_results:
- if test_name not in retry_summary.unexpected_results:
+ if retry_summary and test_name not in retry_summary.unexpected_results:
actual.extend(expectations.get_expectations_string(test_name).split(" "))
num_flaky += 1
- else:
+ elif retry_summary:
retry_result_type = retry_summary.unexpected_results[test_name].type
if result_type != retry_result_type:
actual.append(keywords[retry_result_type])
num_flaky += 1
else:
num_regressions += 1
+ else:
+ num_regressions += 1
test_dict['expected'] = expected
test_dict['actual'] = " ".join(actual)
@@ -406,7 +408,6 @@
start_time = time.time()
- retry_summary = None
try:
result_summary = self._run_tests(self._test_names, result_summary, int(self._options.child_processes), retrying=False)
@@ -419,25 +420,22 @@
_log.info("Retrying %d unexpected failure(s) ..." % len(failures))
_log.info('')
retry_summary = self._run_tests(failures, ResultSummary(self._expectations, failures, 1), 1, retrying=True)
+ else:
+ retry_summary = None
finally:
- # If we are ctrl-c'ed; we still want to try and print the results we got, and clean up,
- # but we don't want to upload anything.
- end_time = time.time()
+ self._clean_up_run()
- # Some crash logs can take a long time to be written out so look
- # for new logs after the test run finishes.
- self._look_for_new_crash_logs(result_summary, start_time)
- if retry_summary:
- self._look_for_new_crash_logs(retry_summary, start_time)
- else:
- # FIXME: Modify summarize_results to handle retry_summary == None.
- retry_summary = result_summary
+ end_time = time.time()
- self._clean_up_run()
+ # Some crash logs can take a long time to be written out so look
+ # for new logs after the test run finishes.
+ self._look_for_new_crash_logs(result_summary, start_time)
+ if retry_summary:
+ self._look_for_new_crash_logs(retry_summary, start_time)
- unexpected_results = summarize_results(self._port, self._expectations, result_summary, retry_summary, _only_unexpected_=True)
+ unexpected_results = summarize_results(self._port, self._expectations, result_summary, retry_summary, _only_unexpected_=True)
- self._printer.print_results(end_time - start_time, result_summary, unexpected_results)
+ self._printer.print_results(end_time - start_time, result_summary, unexpected_results)
# FIXME: remove record_results. It's just used for testing. There's no need
# for it to be a commandline argument.