File: unload-engine.rs

package info (click to toggle)
rust-wasmtime 26.0.1%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 48,492 kB
  • sloc: ansic: 4,003; sh: 561; javascript: 542; cpp: 254; asm: 175; ml: 96; makefile: 55
file content (29 lines) | stat: -rw-r--r-- 936 bytes parent folder | download | duplicates (3)
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();
    }
}