Skip to content

Latest commit

 

History

History
106 lines (79 loc) · 2.64 KB

File metadata and controls

106 lines (79 loc) · 2.64 KB

Manual testing commands (CI not set up yet).

Quick build (from repo root):

cd client
cargo build --example basic
cargo build --example basic --release --timings

Test examples:

#[js_bindgen_test::test]
fn test_wasm() {}

#[js_bindgen_test::test]
#[ignore = "hah, it works"]
fn test_ignore() {
	panic!("kaboom");
}

#[js_bindgen_test::test]
#[should_panic(expected = "kaboom")]
fn test_should_panic() {
	panic!("kaboom");
}

Wasm tests: Node.js runner (default):

cargo test --target wasm32-unknown-unknown

Wasm tests: Browser runner (headless):

JBG_TEST_RUNNER=browser cargo test --target wasm32-unknown-unknown

Wasm tests: Browser server mode (open URL in a browser):

JBG_TEST_RUNNER=server cargo test --target wasm32-unknown-unknown

Runner options:

  • JBG_TEST_RUNNER=node-js (run in Node.js)

  • JBG_TEST_RUNNER=deno (run in Deno)

  • JBG_TEST_RUNNER=browser (run in headless browser, auto detect WebDriver)

  • JBG_TEST_GECKODRIVER=<path> (use Firefox)

  • JBG_TEST_CHROMEDRIVER=<path> (use Chrome)

  • JBG_TEST_MSEDGEDRIVER=<path> (use Edge)

  • JBG_TEST_WEBDRIVER_JSON (set WebDriver conf)

  • JBG_TEST_WORKER=dedicated|shared|service

  • JBG_TEST_RUNNER=server (serve browser runner and print URL)

  • JBG_TEST_SERVER_ADDRESS=127.0.0.1:8000 (defaults to 8000; falls back to a random port if busy)

List and filter tests:

cargo test --target wasm32-unknown-unknown -- --list
cargo test --target wasm32-unknown-unknown -- --list --format terse
cargo test --target wasm32-unknown-unknown -- some_substring
cargo test --target wasm32-unknown-unknown -- --exact full::test::name
cargo test --target wasm32-unknown-unknown -- --ignored

Other test flags:

cargo test --target wasm32-unknown-unknown -- --no-capture

Wasm tooling checks:

cd client
wasm-tools print -o examples/basic.wat target/wasm32-unknown-unknown/debug/examples/basic.wasm
wasm-tools validate examples/basic.wat

Shared-memory build (nightly):

cd client
CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUSTFLAGS="-Ctarget-feature=+atomics -Clink-arg=--shared-memory -Clink-arg=--max-memory=4294967296" \
  cargo +nightly build --example basic -Zbuild-std=panic_abort,std --release --timings

Wasm64 builds (nightly):

cd client
cargo +nightly build --example basic --target wasm64-unknown-unknown -Zbuild-std=panic_abort,std --release --timings
cd client
CARGO_TARGET_WASM64_UNKNOWN_UNKNOWN_RUSTFLAGS="-Ctarget-feature=+atomics -Clink-arg=--shared-memory -Clink-arg=--max-memory=17179869184" \
  cargo +nightly build --example basic --target wasm64-unknown-unknown -Zbuild-std=panic_abort,std --release --timings