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

Function assert_behaves_well

tests/all/memory.rs:463–483  ·  view source on GitHub ↗
(store: &mut Store<()>, mem: &Memory)

Source from the content-addressed store, hash-verified

461 let mut store = Store::new(&engine, ());
462
463 fn assert_behaves_well(store: &mut Store<()>, mem: &Memory) -> Result<()> {
464 let ptr = mem.data_ptr(&store);
465
466 // Each growth here should retain the same linear pointer in memory and the
467 // memory shouldn't get moved.
468 for _ in 0..EXTRA_PAGES {
469 mem.grow(&mut *store, 1)?;
470 assert_eq!(ptr, mem.data_ptr(&store));
471 }
472
473 // Growth afterwards though will be forced to move the pointer
474 mem.grow(&mut *store, 1)?;
475 let new_ptr = mem.data_ptr(&store);
476 assert_ne!(ptr, new_ptr);
477
478 for _ in 0..EXTRA_PAGES - 1 {
479 mem.grow(&mut *store, 1)?;
480 assert_eq!(new_ptr, mem.data_ptr(&store));
481 }
482 Ok(())
483 }
484
485 let mem = Memory::new(&mut store, MemoryType::new(10, None))?;
486 assert_behaves_well(&mut store, &mem)?;

Calls 3

OkFunction · 0.85
data_ptrMethod · 0.80
growMethod · 0.45

Tested by

no test coverage detected