Skip to content

Commit

Permalink
Merge pull request #696 from stevebob/wasm-bindgen-test
Browse files Browse the repository at this point in the history
Add minimal wasm-bindgen test crate
  • Loading branch information
dhardy committed Jan 22, 2019
2 parents b09f92a + ff5a700 commit 6f3875f
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .travis.yml
Expand Up @@ -142,6 +142,8 @@ matrix:
- ./utils/ci/install_cargo_web.sh
- cargo web prepare-emscripten
- cargo web -V
- cargo list | grep install-update || cargo install -f cargo-update
- cargo install-update -i cargo-update wasm-bindgen-cli wasm-pack
addons:
chrome: stable
script:
Expand All @@ -154,6 +156,10 @@ matrix:
#- cargo build --target wasm32-unknown-unknown # without any features
- cargo build --target wasm32-unknown-unknown --features=wasm-bindgen
- cargo web test --target wasm32-unknown-unknown --features=stdweb
- cargo build --manifest-path tests/wasm_bindgen/Cargo.toml --target wasm32-unknown-unknown
- wasm-bindgen --nodejs target/wasm32-unknown-unknown/debug/rand_wasm_bindgen_test.wasm --out-dir tests/wasm_bindgen/js
- node tests/wasm_bindgen/js/index.js
- wasm-pack test --node tests/wasm_bindgen

- rust: nightly
env: DESCRIPTION="cross-platform builder (doesn't run tests)"
Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Expand Up @@ -42,6 +42,7 @@ members = [
"rand_pcg",
"rand_xorshift",
"rand_xoshiro",
"tests/wasm_bindgen",
]

[dependencies]
Expand Down
15 changes: 15 additions & 0 deletions tests/wasm_bindgen/Cargo.toml
@@ -0,0 +1,15 @@
[package]
name = "rand_wasm_bindgen_test"
description = "Minimal crate to test that rand can be build for web assembly target"
version = "0.1.0"
authors = ["The Rand Project Developers"]
publish = false
license = "MIT/Apache-2.0"

[lib]
crate-type = ["cdylib"]

[dependencies]
rand = { path = "../..", features = ["wasm-bindgen"] }
wasm-bindgen = "0.2"
wasm-bindgen-test = "0.2"
7 changes: 7 additions & 0 deletions tests/wasm_bindgen/js/index.js
@@ -0,0 +1,7 @@
'use strict';

const rand_wasm_bindgen_test = require('./rand_wasm_bindgen_test');

console.log(rand_wasm_bindgen_test.generate_from_entropy());
console.log(rand_wasm_bindgen_test.generate_from_os_rand());
console.log(rand_wasm_bindgen_test.generate_from_seed());
42 changes: 42 additions & 0 deletions tests/wasm_bindgen/src/lib.rs
@@ -0,0 +1,42 @@
extern crate rand;
extern crate wasm_bindgen;
extern crate wasm_bindgen_test;

use rand::rngs::{OsRng, StdRng};
use rand::FromEntropy;
use rand::{Rng, SeedableRng};
use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn generate_from_seed(seed: u32) -> i32 {
StdRng::seed_from_u64(seed as u64).gen()
}

#[wasm_bindgen]
pub fn generate_from_os_rand() -> i32 {
OsRng::new().unwrap().gen()
}

#[wasm_bindgen]
pub fn generate_from_entropy() -> i32 {
StdRng::from_entropy().gen()
}

pub mod tests {
use wasm_bindgen_test::*;

#[wasm_bindgen_test]
fn generate_from_seed() {
let _ = super::generate_from_seed(42);
}

#[wasm_bindgen_test]
fn generate_from_os_rand() {
let _ = super::generate_from_os_rand();
}

#[wasm_bindgen_test]
fn generate_from_entropy() {
let _ = super::generate_from_entropy();
}
}

0 comments on commit 6f3875f

Please sign in to comment.