@@ -240,37 +240,47 @@ jobs:
240240 cargo test --tests --features "${{ matrix.lua }},vendored"
241241 cargo test --tests --features "${{ matrix.lua }},vendored,async,serde,macros,anyhow,userdata-wrappers"
242242
243- test_wasm32_wasip2 :
244- name : Test on wasm32-wasip2
243+ test_wasm32_unknown :
244+ name : Test on wasm32-unknown-unknown (${{ matrix.c_target }})
245245 runs-on : ubuntu-latest
246+ timeout-minutes : 15
246247 needs : build
247248 strategy :
248249 matrix :
249- lua : [lua55, lua54, lua53, lua52, lua51]
250+ lua : [lua55, lua54, lua53, lua52, lua51, luau]
251+ c_target : [wasm32-wasip1, wasm32-wasip2]
250252 steps :
251253 - uses : actions/checkout@main
252- - uses : dtolnay/rust-toolchain@stable
254+ - uses : ./.github/actions/setup-wasm
253255 with :
254- toolchain : nightly-2025-10-02
255- target : wasm32-wasip2
256- - name : Install wasi-sdk/Wasmtime
257- working-directory : ${{ runner.tool_cache }}
258- run : |
259- wasi_sdk=29
260- wasmtime=v40.0.1
256+ target : wasm32-unknown-unknown
257+ c_target : ${{ matrix.c_target }}
258+ - name : Run Wasm tests
259+ run : bash tests/wasm/run.sh "${{ matrix.lua }}" "${{ matrix.c_target }}"
261260
262- curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$wasi_sdk/wasi-sdk-$wasi_sdk.0-x86_64-linux.tar.gz
263- tar xf wasi-sdk-$wasi_sdk.0-x86_64-linux.tar.gz
264- WASI_SDK_PATH=`pwd`/wasi-sdk-$wasi_sdk.0-x86_64-linux
265- echo "WASI_SDK_PATH=$WASI_SDK_PATH" >> $GITHUB_ENV
266- echo "CC_wasm32_wasip2=$WASI_SDK_PATH/bin/clang" >> $GITHUB_ENV
267- echo "CARGO_TARGET_WASM32_WASIP2_LINKER=$WASI_SDK_PATH/bin/clang" >> $GITHUB_ENV
268- echo "CARGO_TARGET_WASM32_WASIP2_RUSTFLAGS=-Clink-arg=-Wl,--export=cabi_realloc" >> $GITHUB_ENV
269-
270- curl -LO https://github.com/bytecodealliance/wasmtime/releases/download/$wasmtime/wasmtime-$wasmtime-x86_64-linux.tar.xz
271- tar xf wasmtime-$wasmtime-x86_64-linux.tar.xz
272- echo "CARGO_TARGET_WASM32_WASIP2_RUNNER=`pwd`/wasmtime-$wasmtime-x86_64-linux/wasmtime -W exceptions" >> $GITHUB_ENV
273- - name : Run ${{ matrix.lua }} tests
261+ test_wasm32_wasi :
262+ name : Test on ${{ matrix.target }}
263+ runs-on : ubuntu-latest
264+ timeout-minutes : 15
265+ needs : build
266+ strategy :
267+ matrix :
268+ lua : [lua55, lua54, lua53, lua52, lua51, luau]
269+ target : [wasm32-wasip1, wasm32-wasip2, wasm32-wasip3]
270+ include :
271+ # Stable Rust does not yet distribute the WASIp3 standard library.
272+ - target : wasm32-wasip3
273+ toolchain : nightly
274+ steps :
275+ - uses : actions/checkout@main
276+ - uses : ./.github/actions/setup-wasm
277+ with :
278+ target : ${{ matrix.target }}
279+ toolchain : ${{ matrix.toolchain || 'stable' }}
280+ - name : Run Wasm tests
281+ run : cargo test --manifest-path tests/wasm/Cargo.toml --target ${{ matrix.target }} --lib --features "${{ matrix.lua }}"
282+ - name : Run full ${{ matrix.lua }} tests
283+ if : ${{ matrix.target == 'wasm32-wasip2' && matrix.lua != 'luau' }}
274284 run : |
275285 cargo test --target wasm32-wasip2 --tests --features "${{ matrix.lua }},vendored"
276286 cargo test --target wasm32-wasip2 --tests --features "${{ matrix.lua }},vendored,serde,macros,anyhow,userdata-wrappers"
@@ -283,7 +293,9 @@ jobs:
283293 - uses : dtolnay/rust-toolchain@nightly
284294 with :
285295 components : rustfmt
286- - run : cargo fmt -- --check
296+ - run : |
297+ cargo fmt -- --check
298+ cargo fmt --manifest-path tests/wasm/Cargo.toml -- --check
287299
288300 clippy :
289301 name : Clippy
0 commit comments