@@ -243,32 +243,34 @@ $(RTS_RUST_DEBUG_WASM_64_A): $(RTS_DEPENDENCIES_64)
243243TEST_DEPENDENCIES_32 =$(TOMMATH_WASM_32_A ) $(TOMMATH_BINDINGS_RS_32 )
244244TEST_DEPENDENCIES_64 =$(TOMMATH_WASM_64_A ) $(TOMMATH_BINDINGS_RS_64 )
245245
246- # Separate CARGO_TARGET_DIR per variant to allow parallel builds (make -j3)
247- TEST_BUILD_32_NI =cd motoko-rts-tests && CARGO_TARGET_DIR=target-ni RUSTFLAGS="${RTS_COMPILE_FLAGS}" cargo build --target=wasm32-wasip1
248- TEST_RUN_32_NI =wasmtime -C cache=n -W nan-canonicalization=y motoko-rts-tests/target-ni/wasm32-wasip1/debug/motoko-rts-tests.wasm
249-
250- TEST_BUILD_32_INC =cd motoko-rts-tests && CARGO_TARGET_DIR=target-inc RUSTFLAGS="${RTS_COMPILE_FLAGS}" cargo build --target=wasm32-wasip1
251- TEST_RUN_32_INC =wasmtime -C cache=n -W nan-canonicalization=y motoko-rts-tests/target-inc/wasm32-wasip1/debug/motoko-rts-tests.wasm
252-
253- TEST_BUILD_64 =cd motoko-rts-tests && CARGO_TARGET_DIR=target-64 RUSTFLAGS="${RTS_COMPILE_FLAGS}" cargo build --target=wasm64-unknown-unknown -Zbuild-std=core,alloc,std,panic_abort --features enhanced_orthogonal_persistence
254- TEST_RUN_64 =wasmtime -C cache=n -W nan-canonicalization=y -W memory64 motoko-rts-tests/target-64/wasm64-unknown-unknown/debug/motoko-rts-tests.wasm
255-
256- .PHONY : test test32-non-incremental test32-incremental test64
257-
246+ # RTS test variant template.
247+ # Each variant gets its own CARGO_TARGET_DIR (target-<name>) for parallel builds.
248+ # $(1) = target name, $(2) = cargo target triple,
249+ # $(3) = extra cargo flags, $(4) = features, $(5) = extra wasmtime flags, $(6) = dependencies
250+ define test_variant
251+ .PHONY: $(1 )
252+ $(1 ) : $(6 )
253+ cd motoko-rts-tests && CARGO_TARGET_DIR=target-$(1 ) RUSTFLAGS="$${RTS_COMPILE_FLAGS}" \
254+ cargo build --target=$(2 ) $(3 ) $(4 )
255+ wasmtime -C cache=n -W nan-canonicalization=y $(5 ) \
256+ motoko-rts-tests/target-$(1 ) /$(2 ) /debug/motoko-rts-tests.wasm
257+ endef
258+
259+ comma := ,
260+
261+ $(eval $(call test_variant,test32-non-incremental,wasm32-wasip1,,\
262+ --features classical_persistence,,$$(TEST_DEPENDENCIES_32)))
263+
264+ $(eval $(call test_variant,test32-incremental,wasm32-wasip1,,\
265+ --features classical_persistence$(comma)incremental_gc,,$$(TEST_DEPENDENCIES_32)))
266+
267+ $(eval $(call test_variant,test64,wasm64-unknown-unknown,\
268+ -Zbuild-std =core$(comma ) alloc$(comma ) std$(comma ) panic_abort,\
269+ --features enhanced_orthogonal_persistence,-W memory64,$$(TEST_DEPENDENCIES_64 ) ))
270+
271+ .PHONY : test
258272test : test32-non-incremental test32-incremental test64
259273
260- test32-non-incremental : $(TEST_DEPENDENCIES_32 )
261- $(TEST_BUILD_32_NI ) --features classical_persistence
262- $(TEST_RUN_32_NI )
263-
264- test32-incremental : $(TEST_DEPENDENCIES_32 )
265- $(TEST_BUILD_32_INC ) --features classical_persistence,incremental_gc
266- $(TEST_RUN_32_INC )
267-
268- test64 : $(TEST_DEPENDENCIES_64 )
269- $(TEST_BUILD_64 )
270- $(TEST_RUN_64 )
271-
272274#
273275# Putting it all together
274276#
0 commit comments