Skip to main content

Module exception_ops

Module exception_ops 

Source
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§

EnumMutator
Mutator for unit-variant enums (SimpleValType and CatchKind), which need manual impls because #[derive(Mutate)] doesn’t switch between variants.
ExceptionOps
A description of a Wasm module that exercises exception throw/catch.
ExceptionOpsLimits
Limits controlling the structure of a generated Wasm module.
ExceptionOpsLimitsMutator
A mutator for the ExceptionOpsLimits type.
ExceptionOpsMutator
A mutator for the ExceptionOps type.
Scenario
One throw-and-catch scenario.
ScenarioMutator
A mutator for the Scenario type.
TagSig
A tag signature.
TagSigMutator
A mutator for the TagSig type.

Enums§

CatchKind
Which kind of catch clause to use for the handler.
SimpleValType
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.