#!/bin/sh set -e # cd to the directory containing this crate's Cargo.toml so that we don't need # to pass --manifest-path to every `cargo` command. cd "$(dirname "$0")/.." if [ $# = 0 ]; then echo "Usage: ./test-wasm " >&2 echo "Example: ./test-wasm cargo test --lib -- --nocapture" >&2 exit 1 fi if ! command -V rustup &> /dev/null; then echo 'please install rustup' >&2 exit 1 fi if ! rustup target list | grep installed | grep -q wasm32-wasip1; then echo 'please run `rustup target add wasm32-wasip1` first' >&2 exit 1 fi export WASMTIME_BACKTRACE_DETAILS=1 export CARGO_BUILD_TARGET=wasm32-wasip1 # Not sure exactly why this is needed, but without it, # `insta` tries to run `cargo`, and wasip1 doesn't like that. export INSTA_WORKSPACE_ROOT="$PWD" export CARGO_TARGET_WASM32_WASIP1_RUNNER="wasmtime run --dir / -S inherit-env" "$@"