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

Function test_default_value_unknown_import

tests/all/linker.rs:414–445  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

412#[test]
413#[cfg_attr(miri, ignore)]
414fn test_default_value_unknown_import() -> Result<()> {
415 const WAT: &str = r#"
416 (module
417 (import "unknown" "func" (func $unknown_func (result i64 f32 externref)))
418 (func (export "run") (result i64 f32 externref)
419 call $unknown_func
420 )
421 )
422 "#;
423
424 let mut store = Store::<()>::default();
425 let module = Module::new(store.engine(), WAT).expect("failed to create module");
426 let mut linker = Linker::new(store.engine());
427
428 linker.define_unknown_imports_as_default_values(&mut store, &module)?;
429 let instance = linker.instantiate(&mut store, &module)?;
430
431 // "run" calls an import function which will not be defined, so it should
432 // return default values.
433 let run_func = instance
434 .get_func(&mut store, "run")
435 .expect("expected a run func in the module");
436
437 let mut results = vec![Val::I32(1), Val::I32(2), Val::I32(3)];
438 run_func.call(&mut store, &[], &mut results)?;
439
440 assert_eq!(results[0].i64(), Some(0));
441 assert_eq!(results[1].f32(), Some(0.0));
442 assert!(results[2].externref().unwrap().is_none());
443
444 Ok(())
445}
446
447#[test]
448#[cfg_attr(miri, ignore)]

Callers

nothing calls this directly

Calls 8

OkFunction · 0.85
newFunction · 0.50
expectMethod · 0.45
engineMethod · 0.45
instantiateMethod · 0.45
get_funcMethod · 0.45
callMethod · 0.45

Tested by

no test coverage detected