/wast-wrong

Running every WebAssembly test on every WebAssembly implementation

Primary LanguageShell

"Wast" Wrong with WebAssembly?

Migrating WebAssembly tests

About

This is a class project for Advanced Software Engineering with Jon Bell. You can look at a poster i made or read a report i wrote about it, including analysis of failures found. Reporting and validating failures is ongoing work.

Dependencies

Make sure to download this repository with submodules:

git clone --recurse-submodules git@github.com:CosineP/wast-wrong.git

I have a small patch to the wasmtime tests that prevents a few failures in wasmtime.patch.

Install nix package manager. Run nix-shell. Otherwise you will need to manually install many packages, and i can't help you.

Then, install wasmtime v7.0.0. One way to do that is to run cd wasmtime && cargo build --release and then add $PWD/wasmtime/target/release to your PATH.

Run the tests

$ ./harness.sh p # | grep FAILED for quiet output

Are these all definitely bugs?

No. While I've put a lot of effort into making sure silly spurious failures haven't crept in, it's not guaranteed that every failure is a bug. Reporting these failures to maintainers will be the only way to ultimately determine that.

Are there known false positives?

Known false positives are in the file called uninteresting. They are automatically excluded from the test harness. Note that 31 of these are the same spurious failure over many instructions.

Other things you can do with the harness

Runs each implementation on a single test:

$ ./harness.sh run ./my-test.wast

Run the harness on the spec testsuite to see many spurious failures:

$ ./harness.sh smoke