roc/crates/repl_test/test_wasm.sh

16 lines
1.0 KiB
Bash
Executable File

# https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/
set -euxo pipefail
# Build the compiler for WebAssembly target
# We *could* write a build.rs to do this but we'd have nested cargo processes with different targets.
# If we ever decide to do that, one of the cargo processes will need to use the `--target-dir` option.
# We need to clear RUSTFLAGS for this command, as CI sets normally some flags that are specific to CPU targets.
# Tests target wasm32-wasi instead of wasm32-unknown-unknown, so that we can debug with println! and dbg!
# This has to be built with lto for now. If we do not use lto, it will pull in system calls we don't yet support.
# TODO: Add system calls to our wasi interp so that this can just be built in release without lto.
RUSTFLAGS="" cargo build --locked --profile release-with-lto --target wasm32-wasi -p roc_repl_wasm --no-default-features --features wasi_test
# Build & run the test code on *native* target, not WebAssembly
cargo test --locked --release -p repl_test --features wasm