History log of /wasmtime-44.0.1/fuzz/Cargo.toml (Results 1 – 25 of 142)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: dev, v36.0.9, v44.0.1, v43.0.2, v36.0.8, v24.0.8, v44.0.0, v43.0.1, v42.0.2, v36.0.7, v24.0.7
# 46780983 01-Apr-2026 Chris Fallin <[email protected]>

Exceptions: add exception-specific (command-sequence) fuzzer. (#12923)

* Exceptions: add exception-specific (command-sequence) fuzzer.

This fuzzer uses a description of a set of "scenarios", arbitr

Exceptions: add exception-specific (command-sequence) fuzzer. (#12923)

* Exceptions: add exception-specific (command-sequence) fuzzer.

This fuzzer uses a description of a set of "scenarios", arbitrarily
generated, to produce a specific kind of module that tests throw/catch
behavior. The module contains a chain of functions that invoke each
other; one will throw, and the rest may have catch clauses that do or
do not catch.

* Review feedback.

show more ...


Revision tags: v43.0.0, v42.0.1, v41.0.4, v42.0.0, v40.0.4, v36.0.6, v24.0.6, v41.0.3, v41.0.2, v41.0.1, v36.0.5, v40.0.3, v41.0.0, v36.0.4, v39.0.2, v40.0.2
# c3a6060b 13-Jan-2026 Nick Fitzgerald <[email protected]>

Polyfill `ToWasmtimeResult` and add eventually-necessary call sites (#12308)

* Polyfill `ToWasmtimeResult` and add eventually-necessary call sites

This commit polyfills `wasmtime_internal_error::To

Polyfill `ToWasmtimeResult` and add eventually-necessary call sites (#12308)

* Polyfill `ToWasmtimeResult` and add eventually-necessary call sites

This commit polyfills `wasmtime_internal_error::ToWasmtimeResult` in
`wasmtime_environ`, adds the cargo feature plumbing that will eventually connect
to the `"wasmtime_internal_error/anyhow"` cargo feature but for now just
configures this polyfill, and adds uses of the polyfill at all the sites that
will be necessary once we swap out `anyhow` for
`wasmtime_internal_error`. Currently, the polyfill is just an identity function,
because `wasmtime::Result`/`wasmtime_environ::error::Result` is just another
name for `anyhow::Result`. Once we do move away from `anyhow`, however, that
will no longer be the case, and these uses will do the necessary conversion.

My goal with landing this as an incremental commit is to make it so that the
actual commit that does the error crate swap out can be as close to _just_ the
`Cargo.toml` dependency change, without any other code changes as much as
possible. This, in turn, means that swap out should be super easy to revert, if
necessary.

* Add a couple more `.to_wasmtime_result()` invocations in fuzz code

* Revert "Add a couple more `.to_wasmtime_result()` invocations in fuzz code"

This reverts commit b33696e5f63f7eed731ca9dad10fec5e55a550d3.

* Move cranelift fuzz targets back to anyhow

* Fix cargo feature enablement for explorer

show more ...


Revision tags: v40.0.1
# 72e909c4 07-Jan-2026 Nick Fitzgerald <[email protected]>

Migrate fuzzing to `wasmtime::error` (#12269)


Revision tags: v40.0.0, v39.0.1, v39.0.0, v38.0.4, v37.0.3, v36.0.3, v24.0.5
# b6f59f05 07-Nov-2025 Khagan (Khan) Karimov <[email protected]>

Split modules (#11993)

* Split GC to different modules and rename table_ops to gc_ops

* Remove table_ops from fuzz_targets. Renamed to gc_ops

* Address formatting failures


Revision tags: v38.0.3, v38.0.2, v38.0.1, v37.0.2, v37.0.1, v37.0.0, v36.0.2, v36.0.1, v36.0.0
# 6047d27e 28-Jul-2025 Khagan (Khan) Karimov <[email protected]>

Add fuzzer integration for gc/mutatis (#11290)

* Add fuzzer integration for gc/mutatis

* Replace bincode with postcard. Inline fuzz_mutate. Address other small comments

* Update Cargo.lock after r

Add fuzzer integration for gc/mutatis (#11290)

* Add fuzzer integration for gc/mutatis

* Replace bincode with postcard. Inline fuzz_mutate. Address other small comments

* Update Cargo.lock after rebase

* Update rng.gen to rng.fill to avoid deprecation failure

* Remove table_ops from misc. Update fuzz_target. Keep Arbitrary impl it gives some dependecy error. Will be addressed later

* Update Cargo.lock to match upstream/main

* Regenerate Cargo.lock after rebase and dependency changes

* Reset Cargo.lock to upstream/main to preserve cargo-deny compatibility

* Update dependencies

---------

Co-authored-by: Khagan Karimov <[email protected]>

show more ...


Revision tags: v35.0.0, v24.0.4, v33.0.2, v34.0.2, v34.0.1, v33.0.1, v24.0.3, v32.0.1, v34.0.0, v33.0.0, v32.0.0
# ca7081a2 20-Mar-2025 Alex Crichton <[email protected]>

Consolidate "util" crates for testing (#10423)

* Consolidate "util" crates for testing

This commit consolidates all of the existing crates we have for testing
into a smaller set of crates. Specific

Consolidate "util" crates for testing (#10423)

* Consolidate "util" crates for testing

This commit consolidates all of the existing crates we have for testing
into a smaller set of crates. Specifically:

* `crates/misc/component-fuzz-util` => `wasmtime-test-util` + `component-fuzz`
feature
* `crates/misc/component-test-util` => `wasmtime-test-util` + `component`
feature
* `crates/wast-util` => `wasmtime-test-util` + `wast` feature
* `crates/misc/component-macro-test` => `wasmtime-test-macros`

The goal is to have one location we put various test helpers/macros
rather than our current organically-grown many locations. This is
inspired by the test failure on #10405 where I'd like to refactor more
infrastructure to a "test util" location but it wasn't clear where to
put it so I wanted to do this refactoring first.

* Remove unused file

show more ...


Revision tags: v31.0.0
# 1ea710d6 14-Mar-2025 Andrew Brown <[email protected]>

asm: fuzz `cranelift-codegen-x64` in the `misc` target (#10403)

As discussed previously, this change adds fuzzing for the x64 assembler
to the melting pot target, `misc`, in order to get at least so

asm: fuzz `cranelift-codegen-x64` in the `misc` target (#10403)

As discussed previously, this change adds fuzzing for the x64 assembler
to the melting pot target, `misc`, in order to get at least some fuzzing
cycles on OSS-Fuzz.

show more ...


# 840f5448 12-Mar-2025 Alex Crichton <[email protected]>

Consolidate some fuzzers into one (#10385)

This commit consolidates a number of fuzzers that we have in Wasmtime
into a single fuzzer. This follows the pattern of [wasm-tools's `run`
fuzzer][tools]

Consolidate some fuzzers into one (#10385)

This commit consolidates a number of fuzzers that we have in Wasmtime
into a single fuzzer. This follows the pattern of [wasm-tools's `run`
fuzzer][tools] where the first byte in the fuzz input says which fuzzer
to run and then the rest of the input is the input to the fuzzer. This
is intended to improve our time-slicing on OSS-Fuzz where less important
fuzzers don't hog time from the "important fuzzers" such as
`differential`. Some minor-ish fuzzers have been folded in to this new
fuzzer, but we can also always move things around as needed

[tools]: https://github.com/bytecodealliance/wasm-tools/blob/main/fuzz/fuzz_targets/run.rs

show more ...


Revision tags: v30.0.2, v30.0.1, v30.0.0, v29.0.1, v29.0.0, v28.0.1
# 1bb71d31 09-Jan-2025 amartosch <[email protected]>

Compute dominator tree using semi-NCA algorithm (#9603)

* Add dominator tree computed using semi-NCA algorithm.

* Add dominator tree fuzz target

* Move previous version of dominator tree to a sepa

Compute dominator tree using semi-NCA algorithm (#9603)

* Add dominator tree computed using semi-NCA algorithm.

* Add dominator tree fuzz target

* Move previous version of dominator tree to a separate file

* Improve comments.

* Use the new dominator tree in verifier.

* Remove unused `iterators` module.

show more ...


Revision tags: v28.0.0, v27.0.0, v26.0.1, v25.0.3, v24.0.2
# b79a96a1 22-Oct-2024 Alex Crichton <[email protected]>

Leverage Rust 1.79, 1.80 (#9498)

This commit is a follow-up to #9496 to leverage various APIs that the
workspace now has access to. For example most dependencies on the
`once_cell` crate are now rem

Leverage Rust 1.79, 1.80 (#9498)

This commit is a follow-up to #9496 to leverage various APIs that the
workspace now has access to. For example most dependencies on the
`once_cell` crate are now removed in favor of the types stabilized in
the standard library: `LazyLock` and `LazyCell`. One dependency remains
in the `wasmtime` crate due to the `get_or_try_init` not being stable
yet.

Some additional helper methods on raw pointer slices are also available
for removing a few minor `unsafe` blocks.

show more ...


Revision tags: v26.0.0, v21.0.2, v22.0.1, v23.0.3, v25.0.2, v24.0.1
# c49a1038 01-Oct-2024 Alex Crichton <[email protected]>

Fix some fuzz issues from updating wasm-tools (#9345)

This commit fixes some fuzz-related issues from the update of the
`wasm-tools` family of crates in #9336:

* Fuzzing with wasmi disables the GC

Fix some fuzz issues from updating wasm-tools (#9345)

This commit fixes some fuzz-related issues from the update of the
`wasm-tools` family of crates in #9336:

* Fuzzing with wasmi disables the GC proposal
* The exceptions proposal is always disabled for Wasmtime
* Wasmtime conditionally enables the GC/reference-types proposal
* Fully disable the GC proposal for now in Wasmtime as its
implementation is not complete and fuzzing needs more support.
* Log wasm module config before generating to help debug issues like
bytecodealliance/wasm-tools#1834

show more ...


# a96845c3 30-Sep-2024 Alex Crichton <[email protected]>

Fold `cranelift-wasm` crate into `wasmtime-cranelift` (#9313)

This commit removes the `cranelift-wasm` crate by folding it directly
into the `wasmtime-cranelift` crate. Maintaining a runtime-agnosti

Fold `cranelift-wasm` crate into `wasmtime-cranelift` (#9313)

This commit removes the `cranelift-wasm` crate by folding it directly
into the `wasmtime-cranelift` crate. Maintaining a runtime-agnostic
translation of WebAssembly to Cranelift has always been a bit of a
burden on us and at this time there are no known users of this crate
who are helping us to maintain this crate. There's a good number of
abstractions in the crate purely for supporting alternative runtimes and
the crate could be much simpler with far less boilerplate if it were
specialized to Wasmtime.

This commit purely moves the crate sources, deletes then-dead code, and
updates `use` paths to all point to the right place. Otherwise this does
not actually yet contain any refactoring to specialize the translation
phase to Wasmtime itself. It's expected that will come in follow-up
commits should we decide to merge this.

show more ...


Revision tags: v25.0.1, v25.0.0, v24.0.0, v23.0.2
# 83029e3f 12-Aug-2024 Alex Crichton <[email protected]>

Add `rust-version.workspace = true` to all crates (#9112)

Right now this is only on some crates such as `wasmtime` itself and
`wasmtime-cli`, but by applying it to all crates it helps with version
s

Add `rust-version.workspace = true` to all crates (#9112)

Right now this is only on some crates such as `wasmtime` itself and
`wasmtime-cli`, but by applying it to all crates it helps with version
selection of those using just Cranelift for example.

show more ...


# 4ac1bedf 25-Jul-2024 Nick Fitzgerald <[email protected]>

Introduce the `pulley-interpreter` crate (#9008)

* Introduce the `pulley-interpreter` crate

This commit is the first step towards implementing
https://github.com/bytecodealliance/rfcs/pull/35

This

Introduce the `pulley-interpreter` crate (#9008)

* Introduce the `pulley-interpreter` crate

This commit is the first step towards implementing
https://github.com/bytecodealliance/rfcs/pull/35

This commit introduces the `pulley-interpreter` crate which contains the Pulley
bytecode definition, encoder, decoder, disassembler, and interpreter.

This is still very much a work in progress! It is expected that we will tweak
encodings and bytecode definitions, that we will overhaul the interpreter (to,
for example, optionally support the unstable Rust `explicit_tail_calls`
feature), and otherwise make large changes. This is just a starting point to get
the ball rolling.

Subsequent commits and pull requests will do things like add the Cranelift
backend to produce Pulley bytecode from Wasm as well as the runtime integration
to run the Pulley interpreter inside Wasmtime.

* remove stray fn main

* Add small tests for special x registers

* Remove now-unused import

* always generate 0 pc rel offsets in arbitrary

* Add doc_auto_cfg feature for docs.rs

* enable all optional features for docs.rs

* Consolidate `BytecodeStream::{advance,get1,get2,...}` into `BytecodeStream::read`

* fix fuzz targets build

* inherit workspace lints in pulley's fuzz crate

* Merge fuzz targets into one target; fix a couple small fuzz bugs

* Add Pulley to our cargo vet config

* Add pulley as a crate to publish

* Move Pulley fuzz target into top level fuzz directory

show more ...


Revision tags: v23.0.1, v23.0.0
# 9f66134e 12-Jul-2024 Nick Fitzgerald <[email protected]>

Resolve aliases before inserting values into the live set (#8945)

* Refactor the internals of `FunctionBuilder::insert_safepoint_spills` into a few smaller methods

* Initialize a logger for the `cr

Resolve aliases before inserting values into the live set (#8945)

* Refactor the internals of `FunctionBuilder::insert_safepoint_spills` into a few smaller methods

* Initialize a logger for the `cranelift-fuzzgen` fuzz target

* Resolve aliases before inserting values into the live set

This fixes a fuzz bug found in the development of
https://github.com/bytecodealliance/wasmtime/pull/8941

show more ...


Revision tags: v22.0.0
# 7a37e313 06-Jun-2024 Nick Fitzgerald <[email protected]>

Add a fuzz target for exercising bounds checks with various memory configs (#8742)


Revision tags: v21.0.1, v21.0.0, v20.0.2, v20.0.1
# b4ecea38 23-Apr-2024 Alex Crichton <[email protected]>

Add a fuzzer for async wasm (#8440)

* Add a fuzzer for async wasm

This commit revives a very old branch of mine to add a fuzzer for
Wasmtime in async mode. This work was originally blocked on
llvm/

Add a fuzzer for async wasm (#8440)

* Add a fuzzer for async wasm

This commit revives a very old branch of mine to add a fuzzer for
Wasmtime in async mode. This work was originally blocked on
llvm/llvm-project#53891 and while that's still an issue it now contains
a workaround for that issue. Support for async fuzzing required a good
deal of refactorings and changes, and the highlights are:

* The main part is that new intrinsics,
`__sanitizer_{start,finish}_fiber_switch` are now invoked around the
stack-switching routines of fibers. This only works on Unix and is set
to only compile when ASAN is enabled (otherwise everything is a noop).
This required refactoring of things to get it all in just the right
way for ASAN since it appears that these functions not only need to be
called but more-or-less need to be adjacent to each other in the code.
My guess is that while we're switching ASAN is in a "weird state" and
it's not ready to run arbitrary code.

* Stacks are a problem. The above issue in LLVM outlines how stacks
cannot be deallocated at this time because if the deallocated virtual
memory is later used for the heap then ASAN will have a false positive
about stack overflow. To handle this stacks are specially handled in
asan mode by using a special allocation path that never deallocates
stacks. This logic additionally applies to the pooling allocator which
uses a different stack allocation strategy with ASAN.

With all of the above a new fuzzer is added. This fuzzer generates an
arbitrary module, selects an arbitrary means of async (e.g.
epochs/fuel), and then tries to execute the exports of the module with
various values. In general the fuzzer is looking for crashes/panics as
opposed to correct answers as there's no oracle here. This is also
intended to stress the code used to switch on and off stacks.

* Fix non-async build

* Remove unused import

* Review comments

* Fix compile on MIRI

* Fix Windows build

show more ...


Revision tags: v20.0.0, v17.0.3, v19.0.2, v18.0.4, v19.0.1, v19.0.0
# 1898b8c7 13-Mar-2024 Alex Crichton <[email protected]>

Run all `*.wast` tests in fuzzing (#8121)

* Run all `*.wast` tests in fuzzing

Currently we have a `spectest` fuzzer which uses fuzz input to generate
an arbitrary configuration for Wasmtime and the

Run all `*.wast` tests in fuzzing (#8121)

* Run all `*.wast` tests in fuzzing

Currently we have a `spectest` fuzzer which uses fuzz input to generate
an arbitrary configuration for Wasmtime and then executes the spec test.
This ensures that no matter the configuration Wasmtime can pass spec
tests. This commit expands this testing to include all `*.wast` tests we
have in this repository. While we don't have a ton we still have some
significant ones like in #8118 which will only reproduce when turning
knobs on CPU features.

* Fix CLI build

* Fix wast testing

show more ...


Revision tags: v18.0.3, v18.0.2, v17.0.2, v18.0.1, v18.0.0
# 04c03b31 12-Feb-2024 Alex Crichton <[email protected]>

Update the wasm-tools family of crates (#7921)

* Update the wasm-tools family of crates

Pulling in some updates to improve how WIT is managed in this
repository. No changes just yet, however, just

Update the wasm-tools family of crates (#7921)

* Update the wasm-tools family of crates

Pulling in some updates to improve how WIT is managed in this
repository. No changes just yet, however, just pulling in the updates
first.

* Fix tests

* Fix fuzzer build

show more ...


Revision tags: v17.0.1, v17.0.0, v16.0.0, v15.0.1
# 5856590f 20-Nov-2023 Alex Crichton <[email protected]>

Configure workspace lints, enable running some Clippy lints on CI (#7561)

* Configure Rust lints at the workspace level

This commit adds necessary configuration knobs to have lints configured
at th

Configure workspace lints, enable running some Clippy lints on CI (#7561)

* Configure Rust lints at the workspace level

This commit adds necessary configuration knobs to have lints configured
at the workspace level in Wasmtime rather than the crate level. This
uses a feature of Cargo first released with 1.74.0 (last week) of the
`[workspace.lints]` table. This should help create a more consistent set
of lints applied across all crates in our workspace in addition to
possibly running select clippy lints on CI as well.

* Move `unused_extern_crates` to the workspace level

This commit configures a `deny` lint level for the
`unused_extern_crates` lint to the workspace level rather than the
previous configuration at the individual crate level.

* Move `trivial_numeric_casts` to workspace level

* Change workspace lint levels to `warn`

CI will ensure that these don't get checked into the codebase and
otherwise provide fewer speed bumps for in-process development.

* Move `unstable_features` lint to workspace level

* Move `unused_import_braces` lint to workspace level

* Start running Clippy on CI

This commit configures our CI to run `cargo clippy --workspace` for all
merged PRs. Historically this hasn't been all the feasible due to the
amount of configuration required to control the number of warnings on
CI, but with Cargo's new `[lint]` table it's possible to have a
one-liner to silence all lints from Clippy by default. This commit by
default sets the `all` lint in Clippy to `allow` to by-default disable
warnings from Clippy. The goal of this PR is to enable selective access
to Clippy lints for Wasmtime on CI.

* Selectively enable `clippy::cast_sign_loss`

This would have fixed #7558 so try to head off future issues with that
by warning against this situation in a few crates. This lint is still
quite noisy though for Cranelift for example so it's not worthwhile at
this time to enable it for the whole workspace.

* Fix CI error

prtest:full

show more ...


Revision tags: v15.0.0, v14.0.4, v14.0.3, v14.0.2, v13.0.1, v14.0.1, v14.0.0
# c16540ed 13-Oct-2023 Nick Fitzgerald <[email protected]>

Update `arbitrary` to 1.3.1 (#7236)

* Update to arbitrary 1.3.1

And use workspace dependencies for arbitrary.

* Prune cargo vet's supply-chain files

This is the mechanical changes made by running

Update `arbitrary` to 1.3.1 (#7236)

* Update to arbitrary 1.3.1

And use workspace dependencies for arbitrary.

* Prune cargo vet's supply-chain files

This is the mechanical changes made by running `cargo vet prune` which was
suggested to me when I ran `cargo vet`.

show more ...


Revision tags: minimum-viable-wasi-proxy-serve, v13.0.0, v12.0.2, v11.0.2, v10.0.2, v12.0.1, v12.0.0, v11.0.1, v11.0.0, v10.0.1, v10.0.0, v9.0.4, v9.0.3, v9.0.2
# a61be19d 23-May-2023 Saúl Cabrera <[email protected]>

winch(fuzz): Refactor Winch's fuzzing (#6432)

* winch(fuzz): Refactor Winch's fuzzing

This change is a follow-up to the discussion in
https://github.com/bytecodealliance/wasmtime/pull/6281.

The mo

winch(fuzz): Refactor Winch's fuzzing (#6432)

* winch(fuzz): Refactor Winch's fuzzing

This change is a follow-up to the discussion in
https://github.com/bytecodealliance/wasmtime/pull/6281.

The most notable characteristic of this change is that it enables
`winch` by default in the fuzzers. If compilation time is a big enough
concern I can add the cargo feature back. I opted to enable `winch` by
default for several reasons:

* It substantially reduces the `cfg` complexity -- at first I thought
I had covered all the places in which a `cfg` check would be needed,
but then I realized that I missed the Cranelift specific compiler
flags.

* It's the fastest route to enable winch by default in the fuzzers,
which we want to do eventually -- the only change we'd need at that
point would be to get rid of the winch-specific environment variable.

* We can get rid of the winch-specific checks in CI for fuzzing

* Implement Arbitraty for CompilerStrategy

Unconditionally return `Cranelift` for the `Arbitrary` implementation of
`CompilerStrategy`. This ensures that `Cranelift` is used as the
compiler for all the targets unless explicitly requested otherwise. As
of this change, only the differential target overrides the
`CompilerStrategy`

show more ...


Revision tags: v9.0.1, v9.0.0
# 42f8ab14 02-May-2023 Alex Crichton <[email protected]>

Improve longevity for fuzzing corpus of wasm modules (#6322)

* Improve longevity for fuzzing corpus of wasm modules

This commit is an improvement to the longevity of Wasmtime's corpus of
fuzz input

Improve longevity for fuzzing corpus of wasm modules (#6322)

* Improve longevity for fuzzing corpus of wasm modules

This commit is an improvement to the longevity of Wasmtime's corpus of
fuzz inputs to the `instantiate` fuzzer. Currently the input to this
fuzzers is arbitrary binary data which is a "DNA" of sorts of what to
do. This DNA changes over time as we update the fuzzer and add
configuration options, for example. When this happens though the
meaning of all existing inputs in the corpus changes because they all
have slightly different meanings now. The goal of this commit is to
improve the usefulness of a historical corpus, with respect to the
WebAssembly modules generated, across changes to the DNA.

A custom mutator is now provided for the `instantiate` fuzzer. This
mutator will not only perform libfuzzer's default mutation for the input
but will additionally place an "envelope" around the fuzz input. Namely,
the fuzz input is encoded as a valid WebAssembly module where the actual
input to the fuzzer is a trailing custom section. When the fuzzer runs
over this input it will read the custom section, perform any
configuration generation necessary, and then use the envelope module as
the actual input to the fuzzer instead of whatever was generated from
the fuzz input. This means that when a future update is made to the DNA
of a module the interpretation of the fuzz input section will change but
the module in question will not change. This means that any interesting
shapes of modules with respect to instructions should be preserved over
time in theory.

Some consequences of this strategy, however, are:

* If the DNA changes then it's difficult to produce minor mutations of
the original module. This is because mutations generate a module based
on the new DNA which is likely much different than the preexisting
module. This mainly just means that libFuzzer will have to rediscover
how to mutate up into interesting shapes on DNA changes but it'll
still be able to retain all the existing interesting modules.
Additionally this can be mitigate with the integration of
`wasm-mutate` perhaps into these fuzzers as well.

* Protection is necessary against libFuzzer itself with respect to the
module. The existing fuzzers only expect valid modules to be created,
but libFuzzer can now create mutations which leave the trailing
section in place, meaning the module is no longer valid. One option is
to record a cryptographic hash in the fuzz input section of the
previous module, only using the module if the hashes match. This
approach will not work over time in the face of binary format changes,
however. For example the multi-memory proposal changed binary
encodings a year or so ago meaning that any previous fuzz-generated
cases would no longer be guaranteed to be valid. The strategy settled
by this PR is to pass a flag to the execution function indicating if
the module is "known valid" and gracefully handle error if it isn't
(for example if it's a prior test case).

I'll note that this new strategy of fuzzing is not applied to the
`differential` fuzzer. This could theoretically use the same strategy
but it relies much more strictly on being able to produce a module with
properties like NaN canonicalization, resource limits, fuel to limit
execution, etc. While it may be possible to integrate this with
`differential` in the future I figured it'd be better to start with the
`instantiate` fuzzer and go from there.

* Fix doc build

show more ...


Revision tags: v6.0.2, v7.0.1, v8.0.1
# a1732b29 25-Apr-2023 Saúl Cabrera <[email protected]>

winch(fuzz): Initial support for differential fuzzing (#6281)

* winch(fuzz): Initial support for differential fuzzing

This commit introduces initial support for differential fuzzing for Winch. In
o

winch(fuzz): Initial support for differential fuzzing (#6281)

* winch(fuzz): Initial support for differential fuzzing

This commit introduces initial support for differential fuzzing for Winch. In
order to fuzz winch, this change introduces the `winch` cargo feature. When the
`winch` cargo feature is enabled the differential fuzz target uses `wasmi` as
the differential engine and `wasm-smith` and `single-inst` as the module sources.

The intention behind this change is to have a *local* approach for fuzzing and
verifying programs generated by Winch and to have an initial implementation that
will allow us to eventually enable this change by default. Currently it's not
worth it to enable this change by default given all the filtering that needs to
happen to ensure that the generated modules are supported by Winch.

It's worth noting that the Wasm filtering code will be temporary, until Winch
reaches feature parity in terms of Wasm operators.

* Check build targets with the `winch` feature flag

* Rename fuzz target feature to `fuzz-winch`

show more ...


Revision tags: v8.0.0
# 7eb89140 05-Apr-2023 Remo Senekowitsch <[email protected]>

Chaos mode MVP: Skip branch optimization in MachBuffer (#6039)

* fuzz: Add chaos mode control plane

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Wa

Chaos mode MVP: Skip branch optimization in MachBuffer (#6039)

* fuzz: Add chaos mode control plane

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* fuzz: Skip branch optimization with chaos mode

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* fuzz: Rename chaos engine -> control plane

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* chaos mode: refactoring ControlPlane to be passed through the call stack by reference

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Remo Senekowitsch <[email protected]>

* fuzz: annotate chaos todos

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* fuzz: cleanup control plane

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* fuzz: remove control plane from compiler context

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* fuzz: move control plane into emit state

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* fuzz: fix remaining compiler errors

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* fix tests

* refactor emission state ctrl plane accessors

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* centralize conditional compilation of chaos mode

Also cleanup a few straggling dependencies on cranelift-control
that aren't needed anymore.

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* add cranelift-control to published crates

prtest:full

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

* add cranelift-control to public crates

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>

---------

Co-authored-by: Falk Zwimpfer <[email protected]>
Co-authored-by: Moritz Waser <[email protected]>
Co-authored-by: Remo Senekowitsch <[email protected]>

show more ...


123456