Files
wasmer/tests/compilers/deterministic.rs
Anbang Wen b32e8d92c1 add a compiler test to check for deterministic
This is to test #2173, the empty test always pass while the table one
fails sometimes.
2021-11-22 15:49:11 +00:00

45 lines
809 B
Rust

use anyhow::Result;
use wasmer::{wat2wasm, Module};
fn compile_and_compare(wasm: &[u8]) -> Result<()> {
let store = Default::default();
// compile for first time
let module = Module::new(&store, wasm)?;
let first = module.serialize()?;
// compile for second time
let module = Module::new(&store, wasm)?;
let second = module.serialize()?;
assert!(first == second);
Ok(())
}
#[test]
fn deterministic_empty() -> Result<()> {
let wasm_bytes = wat2wasm(
br#"
(module)
"#,
)?;
compile_and_compare(&wasm_bytes)
}
#[test]
fn deterministic_table() -> Result<()> {
let wasm_bytes = wat2wasm(
br#"
(module
(table 2 funcref)
(func $f1)
(func $f2)
(elem (i32.const 0) $f1 $f2))
"#,
)?;
compile_and_compare(&wasm_bytes)
}