#[path = "../../../os-turkfs-journal/src/reservation.rs"] mod reservation; use reservation::{Error, Space}; #[test] fn os_turkfs_journal_reservation_positive() { let mut space = Space::new(9, 4).unwrap(); let last = space.reserve(3).unwrap(); assert_eq!((last.start, last.slots, last.records), (4, 5, 3)); assert_eq!(space.used(), 9); assert_eq!(space.remaining(), 0); let mut small = Space::new(9, 0).unwrap(); assert_eq!(small.reserve(1).unwrap().start, 0); assert_eq!(small.reserve(1).unwrap().start, 3); assert_eq!(small.reserve(1).unwrap().start, 6); assert_eq!(small.remaining(), 0); } #[test] fn os_turkfs_journal_reservation_negative() { let mut short = Space::new(8, 4).unwrap(); let before = short; assert_eq!(short.reserve(3), Err(Error::Full)); assert_eq!(short, before); assert_eq!(short.reserve(0), Err(Error::RecordCount)); assert_eq!(short.reserve(4), Err(Error::RecordCount)); assert_eq!(short, before); let mut end = Space::new(u16::MAX, u16::MAX - 1).unwrap(); let before_end = end; assert_eq!(end.reserve(1), Err(Error::Full)); assert_eq!(end, before_end); assert_eq!(Space::new(8, 9), Err(Error::Capacity)); }