WasmEdge-spectest is a repository of spec test data by extracting WebAssembly (WASM) test suites.
-
Test data is from WebAssembly Core Tests and tests from every proposals.
-
S-Expression script of tests are extracted into
jsonandwasmfiles by wast2json tool in wabt. -
For those WASM text format not supported by wabt currently, parsing and converting into binary files are credited by wasm-tools.
wasm-1.0: The WASM 1.0 tests with the following proposal:wasm-2.0: The WASM 2.0 tests with WASM 1.0 and the following proposals:wasm-3.0prefixed folders: The WASM 3.0 tests with WASM 1.0, WASM 2.0, and the following proposals:- Exception handling
- Extended Constant Expressions
- Typed Function References
- Garbage collection
- Memory64 (Temorary not added due to unimplementation in WasmEdge)
- Multiple memories
- Relaxed SIMD
- Tail call
threads: The tests of the Threads proposal.exception-handling-legacy: The legacy version tests of the Exception handling proposal.- This is deprecated.
wasm-2.0/select/select.wastline 325:invalid result arity->type mismatch- This error message is for the WAT format, WASM format cannot detect this error by the bytecode.
wasm-3.0/select/select.wastline 369:invalid result arity->type mismatch- This error message is for the WAT format, WASM format cannot detect this error by the bytecode.
wasm-3.0/align/align.wastline 1005: Temporary disable this test- Temporary disable this test until the implementation of memory64 proposal finished in WasmEdge.
- Disabled data set:
{"type": "assert_invalid", "line": 1005, "filename": "align.115.wasm", "text": "offset out of range", "module_type": "binary"}
wasm-3.0/memory/memory.wastline 78, 82, 86, 91, 95, 99: Temporary disable these tests- Temporary disable these tests until the implementation of memory64 proposal finished in WasmEdge.
- Disabled data set:
{"type": "assert_invalid", "line": 78, "filename": "memory.26.wasm", "text": "memory size", "module_type": "binary"} - Disabled data set:
{"type": "assert_invalid", "line": 82, "filename": "memory.27.wasm", "text": "memory size", "module_type": "binary"} - Disabled data set:
{"type": "assert_invalid", "line": 86, "filename": "memory.28.wasm", "text": "memory size", "module_type": "binary"} - Disabled data set:
{"type": "assert_invalid", "line": 91, "filename": "memory.29.wasm", "text": "memory size", "module_type": "binary"} - Disabled data set:
{"type": "assert_invalid", "line": 95, "filename": "memory.30.wasm", "text": "memory size", "module_type": "binary"} - Disabled data set:
{"type": "assert_invalid", "line": 99, "filename": "memory.31.wasm", "text": "memory size", "module_type": "binary"}
wasm-3.0/instancefolder moved towasm-3.0-exceptions- Temporary move this test set to the exception handling folder until the implementation of exception-handling proposal of AOT/JIT finished in WasmEdge.
- Updated the error message text for old tests
- Update the
global is immutabletoimmutable globalaccording to the newest test suite.wasm-1.0/global/global.wastline 244wasm-2.0/global/global.wastline 274, 279
- Update the
- New S-Expression script not supported by wabt
- module definition: add a new
"module_definition"type in commands array in JSON which has the same content structure as"module".wasm-3.0/instance/instance.wastline 3, 109wasm-3.0/memory/memory.wastline 8wasm-3.0/table/table.wastline 9wasm-3.0-memory64/memory64/memory64.wastline 8wasm-3.0-memory64/table64/table64.wastline 9
- module instance: add a new
"module_instance"type in commands array in JSON which has almost the same content structure as"register", but use the"definition"to present the name of module definition source.wasm-3.0/instance/instance.wastline 10, 11, 125
- module definition: add a new
threads/atomic/atomic.wast: divergence behavior- Please check this issue.
- Modified the
wastfile for fitting thecompare_exchange_strongbehavior in C++.
threads/atomic_wait_notify/atomic_wait_notify.wast: line 73: remove the thread tests.- The S-Expression of threads cannot be parsed by wabt, therefore remove them.
wasm-core-20251029: The test suite in the date 2025/10/29 from the WASM spec and proposals.wasm-core-20250217: The test suite in the date 2025/02/17 from the WASM spec and proposals.
- This repo is moved from the old spec test repo. For older tags and history, please refer to the WasmEdge-unittest repo.
wasm-core-20240217: The test suite in the date 2024/02/17 from the WASM spec.wasm-core-20231026: The test suite in the date 2023/10/26 from the WASM spec.wasm-core-20230511: The test suite in the date 2023/05/11 from the WASM spec.wasm-core-20221215: The test suite in the date 2022/12/15 from the WASM spec.wasm-core-20221026: The test suite in the date 2022/10/26 from the WASM spec.wasm-core-20220712: The test suite in the date 2022/07/12 from the WASM spec.wasm-core-20220504: The test suite in the date 2022/05/04 from the WASM spec.wasm-core-20220223: The test suite in the date 2022/02/23 from the WASM spec.wasm-core-20211214: The test suite in the date 2021/12/14 from the WASM spec.wasm-core-20211119: The test suite in the date 2021/11/19 from the WASM spec.wasm-core-20210414: The test suite in the date 2021/04/14 from the WASM spec.