| 133 | #[test] |
| 134 | #[cfg_attr(miri, ignore)] |
| 135 | fn test_probe_shared_memory_size() -> Result<()> { |
| 136 | let wat = r#"(module |
| 137 | (memory (export "memory") 1 2 shared) |
| 138 | (func (export "size") (result i32) (memory.size)) |
| 139 | )"#; |
| 140 | let Some(engine) = engine() else { |
| 141 | return Ok(()); |
| 142 | }; |
| 143 | let module = Module::new(&engine, wat)?; |
| 144 | let mut store = Store::new(&engine, ()); |
| 145 | let instance = Instance::new(&mut store, &module, &[])?; |
| 146 | let size_fn = instance.get_typed_func::<(), i32>(&mut store, "size")?; |
| 147 | let shared_memory = instance.get_shared_memory(&mut store, "memory").unwrap(); |
| 148 | |
| 149 | assert_eq!(size_fn.call(&mut store, ())?, 1); |
| 150 | assert_eq!(shared_memory.size(), 1); |
| 151 | |
| 152 | shared_memory.grow(1)?; |
| 153 | |
| 154 | assert_eq!(shared_memory.size(), 2); |
| 155 | assert_eq!(size_fn.call(&mut store, ())?, 2); |
| 156 | |
| 157 | Ok(()) |
| 158 | } |
| 159 | |
| 160 | #[test] |
| 161 | #[cfg_attr(miri, ignore)] |