Testing

August 28, 2026 ยท View on GitHub

Thanks to the WebAssembly spec tests we can ensure 100% compatibility with the WebAssembly spec test suite.

Run the full local suite with make test (needs cargo-nextest; make require-nextest installs it). It automatically detects the compilers available on your system. Follow the Building from Source guide to prepare your system with the requirements for each backend.

The Makefile lists the individual test targets and their purpose: the WAST spec tests per backend, the CLI, the examples, the C API, and more.

It is also possible to test specific parts. One crate:

cargo test -p wasmer-wasix --features sys

One test by name filter:

cargo test --release --tests --features cranelift -- cranelift::spec::simd

Skipping Tests

If a test fails only on one backend or platform, add a line to tests/ignores.txt with a reason (<compiler> <test> # reason). Do not chase Singlepass failures for SIMD, relaxed SIMD, exception handling, or wide arithmetic. Singlepass does not support these proposals.

To debug a failing WAST test, see AGENTS.md.

WASIX Guest-Side Tests

WASIX guest-side tests live in lib/wasix/tests/wasm_tests/. They need wasixcc and cargo-wasix on PATH. Fixture directives are documented in lib/wasix/tests/wasm_tests.rs.

CI Coverage Gaps

macOS and musl CI jobs run on a PR only when the PR carries the macos or musl label (see CONTRIBUTING.md). A PR can pass CI and still break main on those platforms.