1
0
mirror of https://github.com/fluencelabs/wasm-bindgen synced 2025-04-03 02:41:06 +00:00

Add more tests then comment them out

This commit is contained in:
Richard Dodd 2018-08-21 14:07:29 +01:00
parent b8c1f72dab
commit 8ff0da6f85
2 changed files with 44 additions and 17 deletions

@ -1,6 +1,7 @@
const wasm = require('wasm-bindgen-test.js'); const wasm = require('wasm-bindgen-test.js');
const assert = require('assert'); const assert = require('assert');
// a function for testing numbers
function variadic_sum(...args) { function variadic_sum(...args) {
let answer = 0; let answer = 0;
for(var i=0; i<args.length; i++) { for(var i=0; i<args.length; i++) {
@ -21,6 +22,7 @@ exports.variadic_sum_f32 = variadic_sum;
exports.variadic_sum_f64 = variadic_sum; exports.variadic_sum_f64 = variadic_sum;
exports.variadic_sum_rest_vec = variadic_sum; exports.variadic_sum_rest_vec = variadic_sum;
// a function for testing nullable numbers
function variadic_sum_opt(...args) { function variadic_sum_opt(...args) {
let answer = 0; let answer = 0;
for(var i=0; i<args.length; i++) { for(var i=0; i<args.length; i++) {
@ -33,6 +35,7 @@ function variadic_sum_opt(...args) {
exports.variadic_sum_opt = variadic_sum_opt; exports.variadic_sum_opt = variadic_sum_opt;
// a function for testing strings
function variadic_concat(...args) { function variadic_concat(...args) {
let answer = ""; let answer = "";
for(var i=0; i<args.length; i++) { for(var i=0; i<args.length; i++) {
@ -43,3 +46,15 @@ function variadic_concat(...args) {
exports.variadic_concat_str = variadic_concat; exports.variadic_concat_str = variadic_concat;
exports.variadic_concat_string = variadic_concat; exports.variadic_concat_string = variadic_concat;
// a test that takes any type of arguments (for testing JsValue).
function variadic_compare_pairs(...args) {
assert(args.length % 2 == 0, "args must be sequence of pairs");
for(var i=0; i<args.length; i++) {
const first = args[i++];
const second = args[i];
assert.equal(first, second);
}
}
exports.variadic_compare_pairs = variadic_compare_pairs;

@ -32,9 +32,14 @@ extern {
//#[wasm_bindgen(variadic)] //#[wasm_bindgen(variadic)]
//fn variadic_concat_str(first: &str, second: &str, rest: &[&str]) -> String; //fn variadic_concat_str(first: &str, second: &str, rest: &[&str]) -> String;
//#[wasm_bindgen(variadic)] //#[wasm_bindgen(variadic)]
//fn variadic_concat_string(first: String, second: String, rest: ::std::vec::Vec<String>) -> String; //fn variadic_concat_string(first: String,
// second: String,
// rest: ::std::vec::Vec<String>) -> String;
#[wasm_bindgen(variadic)] #[wasm_bindgen(variadic)]
fn variadic_sum_rest_vec(first: u8, second: u8, rest: ::std::vec::Vec<u8>) -> u8; fn variadic_sum_rest_vec(first: u8, second: u8, rest: ::std::vec::Vec<u8>) -> u8;
//#[wasm_bindgen(variadic)]
//fn variadic_compare_pairs(first: JsValue, second: JsValue, rest: &[JsValue]);
//TODO imported type
} }
// ints // ints
@ -51,16 +56,16 @@ macro_rules! variadic_test_int {
} }
// The <int>64 tests throw js `Cannot mix BigInt and other types, use explicit conversions` // The <int>64 tests throw js `Cannot mix BigInt and other types, use explicit conversions`
variadic_test_int!(variadic_simple_u8, variadic_sum_u8); variadic_test_int!(u8, variadic_sum_u8);
variadic_test_int!(variadic_simple_u16, variadic_sum_u16); variadic_test_int!(u16, variadic_sum_u16);
variadic_test_int!(variadic_simple_u32, variadic_sum_u32); variadic_test_int!(u32, variadic_sum_u32);
//variadic_test_int!(variadic_simple_u64, variadic_sum_u64); //variadic_test_int!(u64, variadic_sum_u64);
//variadic_test_int!(variadic_simple_usize, variadic_sum_usize); //variadic_test_int!(usize, variadic_sum_usize);
variadic_test_int!(variadic_simple_i8, variadic_sum_i8); variadic_test_int!(i8, variadic_sum_i8);
variadic_test_int!(variadic_simple_i16, variadic_sum_i16); variadic_test_int!(i16, variadic_sum_i16);
variadic_test_int!(variadic_simple_i32, variadic_sum_i32); variadic_test_int!(i32, variadic_sum_i32);
//variadic_test_int!(variadic_simple_i64, variadic_sum_i64); //variadic_test_int!(i64, variadic_sum_i64);
//variadic_test_int!(variadic_simple_isize, variadic_sum_isize); //variadic_test_int!(isize, variadic_sum_isize);
// floats // floats
@ -75,22 +80,22 @@ macro_rules! variadic_test_float {
} }
} }
variadic_test_float!(variadic_simple_f32, variadic_sum_f32); variadic_test_float!(f32, variadic_sum_f32);
variadic_test_float!(variadic_simple_f64, variadic_sum_f64); variadic_test_float!(f64, variadic_sum_f64);
// strings // strings
// `the trait `wasm_bindgen::convert::IntoWasmAbi` is not implemented for `&[&str]` // `the trait `wasm_bindgen::convert::IntoWasmAbi` is not implemented for `&[&str]`
/* /*
#[wasm_bindgen_test] #[wasm_bindgen_test]
fn variadic_simple_str() { fn str() {
assert_eq!(variadic_concat_str("a ", "test", &[]), "a test"); assert_eq!(variadic_concat_str("a ", "test", &[]), "a test");
assert_eq!(variadic_concat_str("a", "nother ", &["test"]), "another test"); assert_eq!(variadic_concat_str("a", "nother ", &["test"]), "another test");
assert_eq!(variadic_concat_str("yet ", "a", &["nother ", "test"]), "yet another test"); assert_eq!(variadic_concat_str("yet ", "a", &["nother ", "test"]), "yet another test");
} }
#[wasm_bindgen_test] #[wasm_bindgen_test]
fn variadic_simple_string() { fn string() {
assert_eq!(variadic_concat_string("a ".into(), "test".into(), vec![]), "a test"); assert_eq!(variadic_concat_string("a ".into(), "test".into(), vec![]), "a test");
assert_eq!(variadic_concat_string("a".into(), "nother ".into(), vec!["test".into()]), assert_eq!(variadic_concat_string("a".into(), "nother ".into(), vec!["test".into()]),
"another test"); "another test");
@ -105,7 +110,7 @@ fn variadic_simple_string() {
/* /*
#[wasm_bindgen_test] #[wasm_bindgen_test]
fn variadic_simple_opt() { fn opt() {
assert_eq!(variadic_sum_opt(Some(1), None, &[]), 1); assert_eq!(variadic_sum_opt(Some(1), None, &[]), 1);
assert_eq!(variadic_sum_opt(Some(1), None, &[Some(2)]), 3); assert_eq!(variadic_sum_opt(Some(1), None, &[Some(2)]), 3);
assert_eq!(variadic_sum_opt(Some(1), None, &[None, Some(2)]), 3); assert_eq!(variadic_sum_opt(Some(1), None, &[None, Some(2)]), 3);
@ -115,9 +120,16 @@ fn variadic_simple_opt() {
// vec not slice // vec not slice
#[wasm_bindgen_test] #[wasm_bindgen_test]
fn variadic_simple_rest_vec() { fn rest_vec() {
assert_eq!(variadic_sum_rest_vec(1, 2, vec![]), 3); assert_eq!(variadic_sum_rest_vec(1, 2, vec![]), 3);
assert_eq!(variadic_sum_rest_vec(1, 2, vec![3]), 6); assert_eq!(variadic_sum_rest_vec(1, 2, vec![3]), 6);
assert_eq!(variadic_sum_rest_vec(1, 2, vec![3, 4]), 10); assert_eq!(variadic_sum_rest_vec(1, 2, vec![3, 4]), 10);
} }
// JsValue
//#[wasm_bindgen_test]
//fn jsvalue() {
// variadic_compare_pairs_jsvalue(true, true, vec![]);
// variadic_compare_pairs_jsvalue(false, false, vec![3, 3]);
//}