@@ -29,34 +29,51 @@ matrix:
29
29
30
30
- name : " WASM via emscripten, stdweb, wasm-bindgen and WASI"
31
31
rust : nightly
32
+ addons :
33
+ firefox : 69.0
34
+ chrome : stable
32
35
install :
33
36
- rustup target add wasm32-unknown-unknown
34
37
- rustup target add wasm32-unknown-emscripten
38
+ - rustup target add asmjs-unknown-emscripten
35
39
- rustup target add wasm32-wasi
36
- - nvm install 9
37
- - ./utils/ci/install_cargo_web.sh
40
+ # Get geckodriver
41
+ - wget -O geckodriver.tar.gz https://github.com/mozilla/geckodriver/releases/download/v0.25.0/geckodriver-v0.25.0-linux64.tar.gz
42
+ - tar -xzf geckodriver.tar.gz
43
+ # Get chromedirver (we cannot pin chrome version, so don't pin chromedriver version)
44
+ - export VERSION=$(wget -q -O - https://chromedriver.storage.googleapis.com/LATEST_RELEASE)
45
+ - wget -O chromedriver.zip https://chromedriver.storage.googleapis.com/$VERSION/chromedriver_linux64.zip
46
+ - unzip chromedriver.zip
47
+ # Get cargo-web
48
+ - wget -O cargo-web.gz https://github.com/koute/cargo-web/releases/download/0.6.26/cargo-web-x86_64-unknown-linux-gnu.gz
49
+ - gunzip cargo-web.gz
50
+ - chmod +x cargo-web
51
+ # Get wasmtime
52
+ - wget -O wasmtime.tar.xz https://github.com/CraneStation/wasmtime/releases/download/v0.3.0/wasmtime-v0.3.0-x86_64-linux.tar.xz
53
+ - tar -xf wasmtime.tar.xz --strip-components=1
54
+ # Get wasm-bindgen-test-runner
55
+ - wget -O wasm-bindgen.tar.gz https://github.com/rustwasm/wasm-bindgen/releases/download/0.2.50/wasm-bindgen-0.2.50-x86_64-unknown-linux-musl.tar.gz
56
+ - tar -xzf wasm-bindgen.tar.gz --strip-components=1
57
+ # Place the runner binaries in our PATH
58
+ - mv cargo-web wasmtime wasm-bindgen-test-runner $HOME/.cargo/bin
59
+ # Download and setup emscripten
38
60
- cargo web prepare-emscripten
39
- - cargo web -V
40
- - cargo list | grep install-update || cargo install -f cargo-update
41
- - cargo install-update -i cargo-update wasm-bindgen-cli wasm-pack
42
- addons :
43
- chrome : stable
61
+ env : EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0"
44
62
script :
45
- # Testing wasm32-unknown- emscripten fails because of rust-lang/rust#49877
63
+ # We cannot run emscripten test binaries (see rust-lang/rust#63649).
46
64
# However, we can still build and link all tests to make sure that works.
47
65
# This is actually useful as it finds stuff such as rust-random/rand#669
48
- - EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0" cargo web test --target wasm32-unknown-emscripten --no-run
49
- # - cargo web test --target wasm32-unknown-emscripten
50
- # - cargo web test --nodejs --target wasm32-unknown-emscripten
51
- # - cargo build --target wasm32-unknown-unknown # without any features
52
- - cargo build --target wasm32-wasi
53
- - cargo build --target wasm32-unknown-unknown
54
- - cargo build --target wasm32-unknown-unknown --features=wasm-bindgen
55
- - cargo web test --target wasm32-unknown-unknown --features=stdweb
56
- - cargo build --manifest-path tests/wasm_bindgen/Cargo.toml --target wasm32-unknown-unknown
57
- - wasm-bindgen --nodejs target/wasm32-unknown-unknown/debug/getrandom_wasm_bindgen_test.wasm --out-dir tests/wasm_bindgen/js
58
- - node tests/wasm_bindgen/js/index.js
59
- - wasm-pack test --node tests/wasm_bindgen
66
+ - cargo web test --target wasm32-unknown-emscripten --no-run
67
+ - cargo web test --target asmjs-unknown-emscripten --no-run
68
+ # wasi tests
69
+ - cargo test --target wasm32-wasi
70
+ # stdweb tests (Node, Chrome)
71
+ - cargo web test --nodejs --target=wasm32-unknown-unknown --features=stdweb
72
+ - cargo web test --target=wasm32-unknown-unknown --features=stdweb
73
+ # wasm-bindgen tests (Node, Firefox, Chrome)
74
+ - cargo test --target wasm32-unknown-unknown --features=wasm-bindgen
75
+ - GECKODRIVER=$PWD/geckodriver cargo test --target wasm32-unknown-unknown --features=test-in-browser
76
+ - CHROMEDRIVER=$PWD/chromedriver cargo test --target wasm32-unknown-unknown --features=test-in-browser
60
77
61
78
- name : " Linux, nightly, docs"
62
79
rust : nightly
0 commit comments