Expand description
Generator for exception-handling fuzz test cases.
Generates Wasm modules that exercise throw/try_table/catch in
various combinations: multiple tags with different signatures, nested
handler scopes, throws at various call depths, catch vs catch_all, and
multiple catch clauses per try_table.
Structs§
- Enum
Mutator - Mutator for unit-variant enums (
SimpleValTypeandCatchKind), which need manual impls because#[derive(Mutate)]doesn’t switch between variants. - Exception
Ops - A description of a Wasm module that exercises exception throw/catch.
- Exception
OpsLimits - Limits controlling the structure of a generated Wasm module.
- Exception
OpsLimits Mutator - A mutator for the
ExceptionOpsLimitstype. - Exception
OpsMutator - A mutator for the
ExceptionOpstype. - Scenario
- One throw-and-catch scenario.
- Scenario
Mutator - A mutator for the
Scenariotype. - TagSig
- A tag signature.
- TagSig
Mutator - A mutator for the
TagSigtype.
Enums§
- Catch
Kind - Which kind of catch clause to use for the handler.
- Simple
ValType - Subset of ValType that we generate for tag params.
Constants§
- CALL_
DEPTH_ MAX - Max call-chain depth (number of functions between run and thrower).
- MAX_
DECOY_ CATCHES - Maximum number of decoy catches.
- MAX_
SCENARIOS - Max number of scenarios (throw+catch combos) per test case.
- MAX_
TAG_ PARAMS - Maximum params per tag signature.
- NUM_
TAGS_ MAX - Max number of tags.