.. | ||
address.wast | ||
align.wast | ||
block.wast | ||
br_if.wast | ||
br_table.wast | ||
br.wast | ||
break_drop.wast | ||
call_indirect.wast | ||
call.wast | ||
const_.wast | ||
conversions.wast | ||
data.wast | ||
exports.wast | ||
f32_.wast | ||
f32_bitwise.wast | ||
f32_cmp.wast | ||
f64_.wast | ||
f64_bitwise.wast | ||
f64_cmp.wast | ||
func_ptrs.wast | ||
get_local.wast | ||
globals.wast | ||
i32_.wast | ||
i64_.wast | ||
labels.wast | ||
memory.wast | ||
README.md | ||
set_local.wast | ||
stack.wast | ||
switch.wast | ||
tee_local.wast | ||
types.wast |
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 not implemented yet
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 params to invokations 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