summaryrefslogtreecommitdiffstats
path: root/Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py')
-rw-r--r--Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py b/Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py
index 4bdc79b..3be2556 100644
--- a/Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py
+++ b/Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py
@@ -46,7 +46,11 @@ class CommitQueueTaskDelegate(object):
def layout_test_results(self):
raise NotImplementedError("subclasses must implement")
- def report_flaky_tests(self, patch, flaky_tests):
+ def archive_last_layout_test_results(self, patch):
+ raise NotImplementedError("subclasses must implement")
+
+ # We could make results_archive optional, but for now it's required.
+ def report_flaky_tests(self, patch, flaky_tests, results_archive):
raise NotImplementedError("subclasses must implement")
@@ -66,6 +70,8 @@ class CommitQueueTask(object):
return False
if not self._patch.committer():
return False
+ if not self._patch.review() != "-":
+ return False
# Reviewer is not required. Missing reviewers will be caught during
# the ChangeLog check during landing.
return True
@@ -168,8 +174,8 @@ class CommitQueueTask(object):
"Landed patch",
"Unable to land patch")
- def _report_flaky_tests(self, flaky_test_results):
- self._delegate.report_flaky_tests(self._patch, flaky_test_results)
+ def _report_flaky_tests(self, flaky_test_results, results_archive):
+ self._delegate.report_flaky_tests(self._patch, flaky_test_results, results_archive)
def _test_patch(self):
if self._patch.is_rollout():
@@ -177,14 +183,15 @@ class CommitQueueTask(object):
if self._test():
return True
- first_failing_results = self._failing_results_from_last_run()
- first_failing_tests = [result.filename for result in first_failing_results]
+ first_results = self._failing_results_from_last_run()
+ first_failing_tests = [result.filename for result in first_results]
+ first_results_archive = self._delegate.archive_last_layout_test_results(self._patch)
if self._test():
- self._report_flaky_tests(first_failing_results)
+ self._report_flaky_tests(first_results, first_results_archive)
return True
- second_failing_results = self._failing_results_from_last_run()
- second_failing_tests = [result.filename for result in second_failing_results]
+ second_results = self._failing_results_from_last_run()
+ second_failing_tests = [result.filename for result in second_results]
if first_failing_tests != second_failing_tests:
# We could report flaky tests here, but since run-webkit-tests
# is run with --exit-after-N-failures=1, we would need to