Commit f4ebbb3f authored by Michael Achenbach's avatar Michael Achenbach Committed by Commit Bot

[test] Let fuzzer total timeout also stop the execution loop

TBR=sergiyb@chromium.org

Bug: v8:6917
Change-Id: I5bc8f49dc01d98949e3efab01192c663de8027bf
Reviewed-on: https://chromium-review.googlesource.com/888578
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50887}
parent 35bce874
......@@ -177,6 +177,7 @@ class CombinedTest(testcase.TestCase):
self._tests = tests
def _prepare_outcomes(self, force_update=True):
# We tolerate timeout with combined tests.
self._statusfile_outcomes = outproc.OUTCOMES_PASS_OR_TIMEOUT
self.expected_outcomes = outproc.OUTCOMES_PASS_OR_TIMEOUT
......
......@@ -94,9 +94,12 @@ class TestProc(object):
self._prev_proc.heartbeat()
def stop(self):
if not self._stopped:
self._stopped = True
if self._prev_proc:
self._prev_proc.stop()
if self._next_proc:
self._next_proc.stop()
@property
def is_stopped(self):
......
......@@ -65,6 +65,8 @@ class ExecutionProc(base.TestProc):
)
for pool_result in it:
if pool_result.heartbeat:
if self.is_stopped:
break
continue
job_result = pool_result.value
......@@ -73,6 +75,11 @@ class ExecutionProc(base.TestProc):
test, result.cmd = self._tests[test_id]
del self._tests[test_id]
self._send_result(test, result)
if self.is_stopped:
# Stop first after sending the current result to not waste it.
break
except KeyboardInterrupt:
raise
except:
......
......@@ -34,7 +34,7 @@ class RerunProc(base.TestProcProducer):
results = self._results[test.procid]
results.append(result)
if self._needs_rerun(test, result):
if not self.is_stopped and self._needs_rerun(test, result):
self._rerun[test.procid] += 1
if self._rerun_total_left is not None:
self._rerun_total_left -= 1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment