diff --git a/Cargo.toml b/Cargo.toml index 4e96e5f494..4e7b31daa9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,3 +14,7 @@ opt-level = 3 [profile.bench] debug = 1 opt-level = 3 + +[patch.crates-io] +wasm-bindgen = { git = 'https://github.com/rustwasm/wasm-bindgen' } +wasm-bindgen-test = { git = 'https://github.com/rustwasm/wasm-bindgen' } diff --git a/ci/docker/wasm32-unknown-unknown/Dockerfile b/ci/docker/wasm32-unknown-unknown/Dockerfile index 453af264a2..734d0bf2ad 100644 --- a/ci/docker/wasm32-unknown-unknown/Dockerfile +++ b/ci/docker/wasm32-unknown-unknown/Dockerfile @@ -17,9 +17,17 @@ RUN make -C wabt -j$(nproc) ENV PATH=$PATH:/wabt/bin # Install `wasm-bindgen-test-runner` -RUN curl -L https://github.com/rustwasm/wasm-bindgen/releases/download/0.2.15/wasm-bindgen-0.2.15-x86_64-unknown-linux-musl.tar.gz \ - | tar xzf - -ENV PATH=$PATH:/wasm-bindgen-0.2.15-x86_64-unknown-linux-musl +# RUN curl -L https://github.com/rustwasm/wasm-bindgen/releases/download/0.2.15/wasm-bindgen-0.2.15-x86_64-unknown-linux-musl.tar.gz \ +# | tar xzf - +# ENV PATH=$PATH:/wasm-bindgen-0.2.15-x86_64-unknown-linux-musl +# TODO: remove these lines once we can use published releases +ENV CARGO_HOME=/cargo RUSTUP_HOME=/rustup +ENV PATH=$PATH:/cargo/bin +RUN curl https://sh.rustup.rs | sh -s -- -y +ENV LIBZ_SYS_STATIC=1 +RUN cargo install --git https://github.com/rustwasm/wasm-bindgen \ + wasm-bindgen-cli --features vendored-openssl + ENV CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-bindgen-test-runner # Install `node` diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 0c560c825c..5226363410 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -13,8 +13,8 @@ run() { --user `id -u`:`id -g` \ --rm \ --init \ - --volume $HOME/.cargo:/cargo \ - --env CARGO_HOME=/cargo \ + --volume $HOME/.cargo:/cargo-h \ + --env CARGO_HOME=/cargo-h \ --volume `rustc --print sysroot`:/rust:ro \ --env TARGET=$target \ --env STDSIMD_TEST_EVERYTHING \ @@ -25,7 +25,7 @@ run() { --privileged \ stdsimd \ bash \ - -c 'PATH=$PATH:/rust/bin exec ci/run.sh' + -c 'PATH=/rust/bin:$PATH exec ci/run.sh' } if [ -z "$1" ]; then diff --git a/coresimd/wasm32/mod.rs b/coresimd/wasm32/mod.rs index 1b0c82bb4e..054e187f9d 100644 --- a/coresimd/wasm32/mod.rs +++ b/coresimd/wasm32/mod.rs @@ -7,6 +7,11 @@ mod simd128; pub mod simd128; pub use self::simd128::*; +#[cfg(test)] +use stdsimd_test::assert_instr; +#[cfg(test)] +use wasm_bindgen_test::wasm_bindgen_test; + extern "C" { #[link_name = "llvm.wasm.grow.memory.i32"] fn llvm_grow_memory(pages: i32) -> i32; @@ -21,6 +26,7 @@ extern "C" { /// /// [instr]: https://github.com/WebAssembly/design/blob/master/Semantics.md#resizing #[inline] +#[cfg_attr(test, assert_instr("memory.size"))] pub unsafe fn current_memory() -> i32 { llvm_current_memory() } @@ -34,6 +40,7 @@ pub unsafe fn current_memory() -> i32 { /// /// [instr]: https://github.com/WebAssembly/design/blob/master/Semantics.md#resizing #[inline] +#[cfg_attr(test, assert_instr("memory.grow"))] pub unsafe fn grow_memory(delta: i32) -> i32 { llvm_grow_memory(delta) } diff --git a/crates/stdsimd-test/src/lib.rs b/crates/stdsimd-test/src/lib.rs index 97d0825ec6..9f56363835 100644 --- a/crates/stdsimd-test/src/lib.rs +++ b/crates/stdsimd-test/src/lib.rs @@ -259,19 +259,13 @@ fn parse_dumpbin(output: &str) -> HashMap> { } -#[cfg_attr(feature = "git_wasm_bindgen", - wasm_bindgen(module = "child_process"))] -#[cfg_attr(not(feature = "git_wasm_bindgen"), - wasm_bindgen(module = "child_process", version = "*"))] +#[wasm_bindgen(module = "child_process")] extern "C" { #[wasm_bindgen(js_name = execSync)] fn exec_sync(cmd: &str) -> Buffer; } -#[cfg_attr(feature = "git_wasm_bindgen", - wasm_bindgen(module = "buffer"))] -#[cfg_attr(not(feature = "git_wasm_bindgen"), - wasm_bindgen(module = "buffer", version = "*"))] +#[wasm_bindgen(module = "buffer")] extern "C" { type Buffer; #[wasm_bindgen(method, js_name = toString)]