1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
//! A single-test executable which only tests `Engine::unload_process_handlers`
//! is possible.
//!
//! It's not safe for this binary to contain any other tests.
use wasmtime::*;
#[test]
#[cfg_attr(miri, ignore)]
fn test_unload_engine() {
for _ in 0..3 {
std::thread::spawn(|| {
let engine = Engine::default();
{
let module =
Module::new(&engine, r#"(module (func (export "x") unreachable))"#).unwrap();
let mut store = Store::new(&engine, ());
let instance = Instance::new(&mut store, &module, &[]).unwrap();
let func = instance.get_typed_func::<(), ()>(&mut store, "x").unwrap();
assert!(func.call(&mut store, ()).unwrap_err().is::<Trap>());
}
unsafe {
engine.unload_process_handlers();
}
})
.join()
.unwrap();
}
}
|