From b4bf8fbfba44c9f13e01ea62ff63189a0c3e894a Mon Sep 17 00:00:00 2001 From: Ivan Enderlin Date: Fri, 6 Jul 2018 10:41:51 +0200 Subject: [PATCH] test(js) New `WebAssembly.validate_with_invalid_input` test case. --- tests/all/js_globals/WebAssembly.rs | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/all/js_globals/WebAssembly.rs b/tests/all/js_globals/WebAssembly.rs index c829909e..a62c51aa 100644 --- a/tests/all/js_globals/WebAssembly.rs +++ b/tests/all/js_globals/WebAssembly.rs @@ -31,3 +31,38 @@ fn validate() { "#) .test() } + +#[test] +fn validate_with_invalid_input() { + project() + .file("src/lib.rs", r#" + #![feature(proc_macro, wasm_custom_section)] + + extern crate wasm_bindgen; + use JsValue; + use wasm_bindgen::prelude::*; + use wasm_bindgen::js::WebAssembly; + + #[wasm_bindgen] + pub fn validate_wasm(wasm: JsValue) -> JsValue { + match WebAssembly::validate(wasm) { + Ok(value) => value.into(), + Err(err) => err + } + } + "#) + .file("test.js", r#" + import * as assert from "assert"; + import * as wasm from "./out"; + + export function test() { + try { + wasm.validate_wasm(42); + assert.ok(false); + } catch (e) { + assert.ok(true); + } + } + "#) + .test() +}