3212b90600
NumFuzz passes various flags to V8 testing randomly, which can lead to various flag contradictions with existing flags. Up to now the system ignored the check for contradictions and kept running the test cases, leading to false positives. This change adds a new v8 flag --exit-on-contradictory-flags that exists gracefully when a contradiction is detected. On the numfuzz side we now filter simple contradictions beforehand. Measurements showed that ~2% of all numfuzz tests ran into contradictions. Around half of them are simple contradictions (repetitions and inversions), which are now filtered beforehand. The remaining ones (redundant or contradictory implications) are now ignored. Bug: v8:11826 Change-Id: I9942e203ba9668a097fabe1343dd1365c9da94c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650746 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Almothana Athamneh <almuthanna@chromium.org> Cr-Commit-Position: refs/heads/main@{#80589}
23 lines
752 B
Python
23 lines
752 B
Python
# Copyright 2018 the V8 project authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
from . import base
|
|
|
|
|
|
class OutProc(base.ExpectedOutProc):
|
|
def _is_failure_output(self, output):
|
|
if output.exit_code != 0:
|
|
return True
|
|
if output.exit_code == 0 and not output.stdout.strip():
|
|
# Special case for --exit-on-contradictory-flags. It lets tests exit
|
|
# fast with exit code 0. Normally passing webkit tests all have output.
|
|
return False
|
|
return super(OutProc, self)._is_failure_output(output)
|
|
|
|
def _ignore_expected_line(self, line):
|
|
return (
|
|
line.startswith('#') or
|
|
super(OutProc, self)._ignore_expected_line(line)
|
|
)
|