[test] Don't hide crashes in predictable mode

Bug: v8:6426
Change-Id: I278dda0d628732bb9c539c2648d2b27bcbc89bf0
Reviewed-on: https://chromium-review.googlesource.com/512643
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45504}
This commit is contained in:
Michael Achenbach 2017-05-24 10:58:32 +02:00 committed by Commit Bot
parent 5728ac6187
commit 589a4d1df4
2 changed files with 24 additions and 7 deletions

View File

@ -594,6 +594,19 @@
# crbug.com/v8/5803
'wasm/gc-frame': [SKIP],
# BUG(v8:6426): Investigate why these crash.
'array-functions-prototype-misc': [CRASH],
'generated-transition-stub': [CRASH],
'ignition/regress-672027': [CRASH],
'regress/regress-2790': [CRASH],
'regress/regress-331444': [CRASH],
'regress/regress-410912': [CRASH],
'regress/regress-542823': [CRASH],
'unbox-double-arrays': [CRASH],
# BUG(v8:6426): Investigate why this fails.
'harmony/futex': [FAIL],
}], # 'predictable == True'
##############################################################################

View File

@ -294,19 +294,25 @@ class Runner(object):
# Always pass the test duration for the database update.
test.duration = result[2]
if test.run == 1 and result[1].HasTimedOut():
# If we get a timeout in the first run, we are already in an
# unpredictable state. Just report it as a failure and don't rerun.
test.output = result[1]
previous_output = test.output
test.output = result[1]
if test.run == 1 and test.suite.HasUnexpectedOutput(test):
# TODO(machenbach): Rerunning failures is not supported in predictable
# mode.
self.remaining -= 1
self.failed.append(test)
self.indicator.HasRun(test, True)
if test.run > 1 and HasDifferentAllocations(test.output, result[1]):
elif test.run > 1 and HasDifferentAllocations(previous_output, result[1]):
# From the second run on, check for different allocations. If a
# difference is found, call the indicator twice to report both tests.
# All runs of each test are counted as one for the statistic.
self.remaining -= 1
self.failed.append(test)
# TODO(machenbach): The indicator needs a makeover. We should
# differentiate between a test and a particular run (including
# output/duration) of that test.
test.output = previous_output
self.indicator.HasRun(test, True)
test.output = result[1]
self.indicator.HasRun(test, True)
@ -314,13 +320,11 @@ class Runner(object):
# No difference on the third run -> report a success.
self.remaining -= 1
self.succeeded += 1
test.output = result[1]
self.indicator.HasRun(test, False)
else:
# No difference yet and less than three runs -> add another run and
# remember the output for comparison.
test.run += 1
test.output = result[1]
pool.add([TestJob(test)])
# Always update the perf database.
return True