use ach_util::{AtomicMemoryRefer, MemoryRefer, MemoryState}; #[test] fn test() { assert!(AtomicMemoryRefer::is_lock_free()); assert_eq!( MemoryRefer::from(MemoryState::Initialized).state(), MemoryState::Initialized ); let mut refer = MemoryRefer::new(); assert!(!refer.state().is_initialized()); assert!(refer.ref_num().is_err()); refer.set_state(MemoryState::Initialized); assert!(refer.state().is_initialized()); assert_eq!(refer.ref_num(), Ok(0)); refer.ref_add().unwrap(); assert!(refer.state().is_initialized()); assert_eq!(refer.ref_num(), Ok(1)); refer.ref_sub().unwrap(); assert!(refer.state().is_initialized()); assert_eq!(refer.ref_num(), Ok(0)); refer.ref_sub().unwrap(); assert!(refer.state().is_initialized()); assert_eq!(refer.ref_num(), Ok(0)); }