summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2022-07-07 10:40:02 -0700
committerGitHub <noreply@github.com>2022-07-07 10:40:02 -0700
commita82e2dbfc3a554377b93cc1f5fca731ff688f925 (patch)
tree19eed61813e8359d6fad3f84136a6b17b9c34028
parentdc73f07807400eb48b8c4bc173bae37f188fc90b (diff)
downloadbinaryen-a82e2dbfc3a554377b93cc1f5fca731ff688f925.tar.gz
binaryen-a82e2dbfc3a554377b93cc1f5fca731ff688f925.tar.bz2
binaryen-a82e2dbfc3a554377b93cc1f5fca731ff688f925.zip
Fuzzer: Fix determinism fuzzing (#4767)
#4758 regressed the determinism fuzzer. First, FEATURE_OPTS is not a list but a string. Second, as a hack another location would add --strip-dwarf to that list, but that only works in wasm-opt. To fix that, remove the hack and instead just ignore DWARF-containing files.
-rwxr-xr-xscripts/fuzz_opt.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/scripts/fuzz_opt.py b/scripts/fuzz_opt.py
index 62ca41e44..a85d2378a 100755
--- a/scripts/fuzz_opt.py
+++ b/scripts/fuzz_opt.py
@@ -263,7 +263,18 @@ INITIAL_CONTENTS_IGNORE = [
# not all relaxed SIMD instructions are implemented in the interpreter
'relaxed-simd.wast',
# TODO fuzzer and interpreter support for strings
- 'strings.wast'
+ 'strings.wast',
+ # ignore DWARF because it is incompatible with multivalue atm
+ 'zlib.wasm',
+ 'cubescript.wasm',
+ 'class_with_dwarf_noprint.wasm',
+ 'fib2_dwarf.wasm',
+ 'fib_nonzero-low-pc_dwarf.wasm',
+ 'inlined_to_start_dwarf.wasm',
+ 'fannkuch3_manyopts_dwarf.wasm',
+ 'fib2_emptylocspan_dwarf.wasm',
+ 'fannkuch3_dwarf.wasm',
+ 'multi_unit_abbrev_noprint.wasm',
]
@@ -350,9 +361,6 @@ def pick_initial_contents():
# )
# )
'--disable-multivalue',
- # DWARF is incompatible with multivalue atm; it's more important to
- # fuzz multivalue since we aren't actually fuzzing DWARF here
- '--strip-dwarf',
]
# the given wasm may not work with the chosen feature opts. for example, if
@@ -823,8 +831,8 @@ class CheckDeterminism(TestCaseHandler):
b1 = open('b1.wasm', 'rb').read()
b2 = open('b2.wasm', 'rb').read()
if (b1 != b2):
- run([in_bin('wasm-dis'), 'b1.wasm', '-o', 'b1.wat', FEATURE_OPTS])
- run([in_bin('wasm-dis'), 'b2.wasm', '-o', 'b2.wat', FEATURE_OPTS])
+ run([in_bin('wasm-dis'), 'b1.wasm', '-o', 'b1.wat'] + FEATURE_OPTS)
+ run([in_bin('wasm-dis'), 'b2.wasm', '-o', 'b2.wat'] + FEATURE_OPTS)
t1 = open('b1.wat', 'r').read()
t2 = open('b2.wat', 'r').read()
compare(t1, t2, 'Output must be deterministic.', verbose=False)