()
| 623 | #[test] |
| 624 | #[cfg_attr(miri, ignore)] |
| 625 | fn deserialize_raw_fails_for_native() { |
| 626 | // target pulley |
| 627 | let engine = Engine::default(); |
| 628 | let wat = String::from( |
| 629 | r#" |
| 630 | (module |
| 631 | (func (export "add") (param $lhs i32) (param $rhs i32) (result i32) |
| 632 | (i32.add (local.get $lhs) (local.get $rhs)) |
| 633 | ) |
| 634 | ) |
| 635 | "#, |
| 636 | ); |
| 637 | let module = Module::new(&engine, &wat).unwrap(); |
| 638 | let mut serialized = module.serialize().expect("Serialize failed"); |
| 639 | let serialized_ptr = std::ptr::slice_from_raw_parts(serialized.as_mut_ptr(), serialized.len()); |
| 640 | let module_memory = std::ptr::NonNull::new(serialized_ptr.cast_mut()).unwrap(); |
| 641 | let deserialize_res = unsafe { Module::deserialize_raw(&engine, module_memory) }; |
| 642 | |
| 643 | if engine.is_pulley() { |
| 644 | let _mod = deserialize_res.expect("Module should deserialize fine for pulley"); |
| 645 | } else { |
| 646 | let err = deserialize_res.expect_err("Deserialization should fail for host target"); |
| 647 | assert_eq!( |
| 648 | format!("{err}"), |
| 649 | "this target requires virtual memory to be enabled" |
| 650 | ); |
| 651 | } |
| 652 | } |
nothing calls this directly
no test coverage detected