Skip to content

Commit

Permalink
Add regression test for a spurious import
Browse files Browse the repository at this point in the history
  • Loading branch information
athei committed Aug 30, 2021
1 parent dbb0fe9 commit 14cbb4b
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/test/run-make/wasm-spurious-import/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-include ../../run-make-fulldeps/tools.mk

# only-wasm32-bare

all:
$(RUSTC) main.rs -C overflow-checks=yes -C panic=abort -C lto -C opt-level=z --target wasm32-unknown-unknown
$(NODE) verify.js $(TMPDIR)/main.wasm
14 changes: 14 additions & 0 deletions src/test/run-make/wasm-spurious-import/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#![crate_type = "cdylib"]
#![no_std]

#[panic_handler]
fn my_panic(_info: &core::panic::PanicInfo) -> ! {
loop {}
}

#[no_mangle]
pub fn multer(a: i128, b: i128) -> i128 {
// Trigger usage of the __multi3 compiler intrinsic which then leads to an imported
// panic function in case of a bug. We verify that no imports exist in our verifier.
a * b
}
9 changes: 9 additions & 0 deletions src/test/run-make/wasm-spurious-import/verify.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const fs = require('fs');
const process = require('process');
const assert = require('assert');
const buffer = fs.readFileSync(process.argv[2]);

let m = new WebAssembly.Module(buffer);
let imports = WebAssembly.Module.imports(m);
console.log('imports', imports);
assert.strictEqual(imports.length, 0);

0 comments on commit 14cbb4b

Please sign in to comment.