* Enable simd fuzzing on oss-fuzz This commit generally enables the simd feature while fuzzing, which should affect almost all fuzzers. For fuzzers that just throw random data at the wall and see what sticks, this means that they'll now be able to throw simd-shaped data at the wall and have it stick. For wasm-smith-based fuzzers this commit also updates wasm-smith to 0.6.0 which allows further configuring the `SwarmConfig` after generation, notably allowing `instantiate-swarm` to generate modules using simd using `wasm-smith`. This should much more reliably feed simd-related things into the fuzzers. Finally, this commit updates wasmtime to avoid usage of the general `wasm_smith::Module` generator to instead use a Wasmtime-specific custom default configuration which enables various features we have implemented. * Allow dummy table creation to fail Tables might creation for imports may exceed the memory limit on the store, which we'll want to gracefully recover from and not fail the fuzzers.
102 lines
2.1 KiB
TOML
102 lines
2.1 KiB
TOML
[package]
|
|
name = "wasmtime-fuzz"
|
|
version = "0.0.0"
|
|
authors = ["The Wasmtime Project Developers"]
|
|
edition = "2018"
|
|
publish = false
|
|
|
|
[package.metadata]
|
|
cargo-fuzz = true
|
|
|
|
[dependencies]
|
|
cranelift-codegen = { path = "../cranelift/codegen" }
|
|
cranelift-reader = { path = "../cranelift/reader" }
|
|
cranelift-wasm = { path = "../cranelift/wasm" }
|
|
cranelift-filetests = { path = "../cranelift/filetests" }
|
|
cranelift-interpreter = { path = "../cranelift/interpreter" }
|
|
cranelift-fuzzgen = { path = "../cranelift/fuzzgen" }
|
|
libfuzzer-sys = "0.4.0"
|
|
target-lexicon = "0.12"
|
|
peepmatic-fuzzing = { path = "../cranelift/peepmatic/crates/fuzzing", optional = true }
|
|
wasmtime = { path = "../crates/wasmtime" }
|
|
wasmtime-fuzzing = { path = "../crates/fuzzing" }
|
|
wasm-smith = "0.6.0"
|
|
|
|
[features]
|
|
# Leave a stub feature with no side-effects in place for now: the OSS-Fuzz
|
|
# config builds fuzz targets with this feature enabled and we don't want to
|
|
# break the build.
|
|
experimental_x64 = []
|
|
|
|
[[bin]]
|
|
name = "compile"
|
|
path = "fuzz_targets/compile.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "instantiate"
|
|
path = "fuzz_targets/instantiate.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "api_calls"
|
|
path = "fuzz_targets/api_calls.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "differential"
|
|
path = "fuzz_targets/differential.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "differential_wasmi"
|
|
path = "fuzz_targets/differential_wasmi.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "spectests"
|
|
path = "fuzz_targets/spectests.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "table_ops"
|
|
path = "fuzz_targets/table_ops.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "instantiate-wasm-smith"
|
|
path = "fuzz_targets/instantiate-wasm-smith.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "instantiate-swarm"
|
|
path = "fuzz_targets/instantiate-swarm.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "instantiate-maybe-invalid"
|
|
path = "fuzz_targets/instantiate-maybe-invalid.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "cranelift-fuzzgen"
|
|
path = "fuzz_targets/cranelift-fuzzgen.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "cranelift-fuzzgen-verify"
|
|
path = "fuzz_targets/cranelift-fuzzgen-verify.rs"
|
|
test = false
|
|
doc = false
|