[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: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50887}
This commit is contained in:
Michael Achenbach 2018-01-26 11:53:33 +01:00 committed by Commit Bot
parent 35bce874d4
commit f4ebbb3fd4
4 changed files with 15 additions and 4 deletions

View File

@ -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

View File

@ -94,9 +94,12 @@ class TestProc(object):
self._prev_proc.heartbeat()
def stop(self):
self._stopped = True
if self._prev_proc:
self._prev_proc.stop()
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):

View File

@ -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:

View File

@ -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