2.4 KiB
This directory contains tests for the core WebAssembly semantics, as described in Semantics.md and specified by the spec interpreter.
This files should be a direct copy of the original WebAssembly spec tests.
Tests are written in the S-Expression script format defined by the interpreter.
Autogenerated Rust test cases
This files will serve as base for autogenerating Rust testcases
when WASM_GENERATE_SPECTESTS=1 cargo build
is executed
(src/build_spectests.rs).
The result autogenerated spectests live in the src/spectests directory.
The spectests are slightly modified from the source. This are the current things that are skipped as they are not yet supported:
Testcases
Currently supported command assertions:
- Module mostly implemented (it should support named modules
(module $Xx)
). - AssertReturn mostly implemented (it should support calls to named modules
(invoke $Xx "call")
). - AssertReturnCanonicalNan not implemented yet
- AssertReturnArithmeticNan not implemented yet
- AssertTrap not implemented yet
- AssertInvalid Fully implemented (it should not require to do validation separate from compilation)
- AssertMalformed Fully implemented
- AssertUninstantiable not implemented yet
- AssertExhaustion not implemented yet
- Register not implemented yet
- PerformAction partially implemented, only function invokations for now
Specific non-supported cases
There are some cases that we decided to skip for now to fasten the time to release:
SKIP_NAN_BITS
: Cases like invokations with params such as:(f32.const nan:0x200000)
are currently not well supported in tests. Files modified:conversions.wast
SKIP_MEMORY_GROW
: When accessing to the context memories multiple times, the mutable access to a memory index raises an error. For this reason we decied to skip the tests (for now) until this issue is resolved. Files modified:block.wast
call_indirect.wast
call.wast
globals.wast
loop.wast