implement fuzzing for component types (#4537)
This addresses #4307. For the static API we generate 100 arbitrary test cases at build time, each of which includes 0-5 parameter types, a result type, and a WAT fragment containing an imported function and an exported function. The exported function calls the imported function, which is implemented by the host. At runtime, the fuzz test selects a test case at random and feeds it zero or more sets of arbitrary parameters and results, checking that values which flow host-to-guest and guest-to-host make the transition unchanged. The fuzz test for the dynamic API follows a similar pattern, the only difference being that test cases are generated at runtime. Signed-off-by: Joel Dice <joel.dice@fermyon.com>
This commit is contained in:
@@ -61,6 +61,8 @@ once_cell = "1.9.0"
|
||||
rayon = "1.5.0"
|
||||
component-macro-test = { path = "crates/misc/component-macro-test" }
|
||||
wasmtime-wast = { path = "crates/wast", version = "=0.40.0", features = ['component-model'] }
|
||||
component-test-util = { path = "crates/misc/component-test-util" }
|
||||
wasmtime-component-util = { path = "crates/component-util" }
|
||||
|
||||
[target.'cfg(windows)'.dev-dependencies]
|
||||
windows-sys = { version = "0.36.0", features = ["Win32_System_Memory"] }
|
||||
@@ -110,7 +112,11 @@ memory-init-cow = ["wasmtime/memory-init-cow", "wasmtime-cli-flags/memory-init-c
|
||||
pooling-allocator = ["wasmtime/pooling-allocator", "wasmtime-cli-flags/pooling-allocator"]
|
||||
all-arch = ["wasmtime/all-arch"]
|
||||
posix-signals-on-macos = ["wasmtime/posix-signals-on-macos"]
|
||||
component-model = ["wasmtime/component-model", "wasmtime-wast/component-model", "wasmtime-cli-flags/component-model"]
|
||||
component-model = [
|
||||
"wasmtime/component-model",
|
||||
"wasmtime-wast/component-model",
|
||||
"wasmtime-cli-flags/component-model"
|
||||
]
|
||||
|
||||
# Stub feature that does nothing, for Cargo-features compatibility: the new
|
||||
# backend is the default now.
|
||||
|
||||
Reference in New Issue
Block a user