MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / core_dump_with_shared_memory

Function core_dump_with_shared_memory

tests/all/coredump.rs:265–295  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

263#[test]
264#[cfg_attr(miri, ignore)]
265fn core_dump_with_shared_memory() -> Result<()> {
266 if super::threads::engine().is_none() {
267 return Ok(());
268 }
269 let mut config = Config::new();
270 config.coredump_on_trap(true);
271 config.shared_memory(true);
272 let engine = Engine::new(&config)?;
273 let mut store = Store::new(&engine, ());
274 let wat = r#"(module
275 (memory 1 1 shared)
276 (func (export "foo") unreachable)
277 (data (i32.const 0) "a")
278 )"#;
279 let module = Module::new(&engine, wat)?;
280 let instance = Instance::new(&mut store, &module, &[])?;
281 let foo = instance.get_typed_func::<(), ()>(&mut store, "foo")?;
282 let err = foo.call(&mut store, ()).unwrap_err();
283 let coredump = err.downcast_ref::<WasmCoreDump>().unwrap();
284 assert!(coredump.memories().is_empty());
285
286 let bytes = coredump.serialize(&mut store, "howdy");
287 for payload in wasmparser::Parser::new(0).parse_all(&bytes) {
288 let payload = payload?;
289 if let wasmparser::Payload::DataSection(s) = payload {
290 assert_eq!(s.count(), 0);
291 }
292 }
293
294 Ok(())
295}

Callers

nothing calls this directly

Calls 9

OkFunction · 0.85
coredump_on_trapMethod · 0.80
engineFunction · 0.70
newFunction · 0.50
is_noneMethod · 0.45
shared_memoryMethod · 0.45
callMethod · 0.45
unwrapMethod · 0.45
serializeMethod · 0.45

Tested by

no test coverage detected