[−][src]Function checkers::with
pub fn with<F>(f: F) -> Snapshot where
F: FnOnce(),
Run the specified closure and return a snapshot of the memory state afterwards.
This can be useful to programmatically test for allocation invariants, while the default behavior is to simply panic on invariant errors.
Examples
#[global_allocator] static ALLOCATOR: checkers::Allocator = checkers::Allocator::system(); let snapshot = checkers::with(|| { let _ = vec![1, 2, 3, 4]; }); assert_eq!(2, snapshot.events.len()); assert!(snapshot.events[0].is_alloc_with(|a| a.size >= 16)); assert!(snapshot.events[1].is_free_with(|a| a.size >= 16)); assert_eq!(1, snapshot.events.allocs()); assert_eq!(1, snapshot.events.frees()); assert!(snapshot.events.max_memory_used().unwrap() >= 16);