Skip to content

Commit 43dd25d

Browse files
authored
Merge pull request remram44#19 from remram44/wasm
Run CI on wasm target
2 parents 6091b5c + 1739db3 commit 43dd25d

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

.github/workflows/test.yml

+33-1
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,56 @@ jobs:
1010
matrix:
1111
os: [ubuntu-latest]
1212
rust-version: [1.33.0, stable, nightly]
13+
mode: [native]
1314
include:
1415
- os: macos-latest
1516
rust-version: 1.33.0
17+
mode: native
1618
- os: windows-latest
1719
rust-version: 1.33.0
20+
mode: native
21+
- os: ubuntu-latest
22+
rust-version: stable
23+
mode: wasm
1824
runs-on: ${{ matrix.os }}
25+
env:
26+
TARGET: ""
1927
steps:
2028
- uses: actions/checkout@v2
2129
- name: Set up Rust ${{ matrix.rust-version }}
2230
uses: actions-rs/toolchain@v1
31+
id: rustup
2332
with:
2433
toolchain: ${{ matrix.rust-version }}
2534
override: true
35+
- name: Cache wasm binaries
36+
if: matrix.mode == 'wasm'
37+
uses: actions/cache@v2
38+
id: wasm-binaries
39+
with:
40+
path: |
41+
~/.cargo/bin
42+
~/.cargo/.crates.toml
43+
~/.cargo/.crates2.json
44+
key: rust-${{ steps.rustup.outputs.rustc_hash }}-bindgen-0.2.63-pack-0.9.1
45+
- name: Set up wasm
46+
if: matrix.mode == 'wasm'
47+
run: |
48+
rustup target add wasm32-unknown-unknown
49+
echo "::set-env name=TARGET::--target wasm32-unknown-unknown"
50+
cargo install --version 0.2.63 wasm-bindgen-cli
51+
cargo install --version 0.9.1 wasm-pack
2652
- name: Build
27-
run: cargo build --verbose
53+
run: cargo build --verbose $TARGET
2854
- name: Run tests
55+
if: matrix.mode == 'native'
2956
run: cargo test --verbose
3057
- name: Run benchmarks
58+
if: matrix.mode == 'native'
3159
run: cargo bench --verbose
60+
- name: Run wasm tests
61+
if: matrix.mode == 'wasm'
62+
run: wasm-pack test --node
3263
- name: Build doc
64+
if: matrix.mode == 'native'
3365
run: cargo doc

Cargo.toml

+5
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ rustc-dep-of-std = ['core', 'compiler_builtins']
2828
criterion = "=0.3.2" # 0.3.3 broken on Rust 1.33
2929
humansize = "1.1"
3030
rand = "0.7"
31+
getrandom = { version = "0.1", features = ["wasm-bindgen"] }
32+
33+
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
34+
wasm-bindgen = "0.2.63"
35+
wasm-bindgen-test = "0.3"
3136

3237
[[bench]]
3338
path = "src/bench.rs"

src/lib.rs

+6
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,8 @@ pub fn adler32<R: std::io::Read>(mut reader: R) -> std::io::Result<u32> {
208208
mod test {
209209
use rand::Rng;
210210
use std::io;
211+
#[cfg(target_arch = "wasm32")]
212+
use wasm_bindgen_test::wasm_bindgen_test;
211213

212214
use super::{adler32, RollingAdler32, BASE};
213215

@@ -225,6 +227,7 @@ mod test {
225227
}
226228

227229
#[test]
230+
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
228231
fn testvectors() {
229232
fn do_test(v: u32, bytes: &[u8]) {
230233
let mut hash = RollingAdler32::new();
@@ -254,6 +257,7 @@ mod test {
254257
}
255258

256259
#[test]
260+
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
257261
fn compare() {
258262
let mut rng = rand::thread_rng();
259263
let mut data = vec![0u8; 5589];
@@ -273,6 +277,7 @@ mod test {
273277
}
274278

275279
#[test]
280+
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
276281
fn rolling() {
277282
assert_eq!(RollingAdler32::from_value(0x01020304).hash(), 0x01020304);
278283

@@ -294,6 +299,7 @@ mod test {
294299
}
295300

296301
#[test]
302+
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
297303
fn long_window_remove() {
298304
let mut hash = RollingAdler32::new();
299305
let w = 65536;

0 commit comments

Comments
 (0)