From 14729bb18b073c18fb3cdac9a89d86b0e92d6b80 Mon Sep 17 00:00:00 2001 From: Carlos Bilbao Date: Thu, 9 Nov 2023 09:48:16 -0600 Subject: [PATCH] utils: Add unit tests for util.rs Add unit tests to check correct behavior of auxiliary functions in util.rs. Signed-off-by: Carlos Bilbao --- src/utils/util.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/utils/util.rs b/src/utils/util.rs index e38ae1116..98783577c 100644 --- a/src/utils/util.rs +++ b/src/utils/util.rs @@ -46,3 +46,46 @@ pub fn zero_mem_region(start: VirtAddr, end: VirtAddr) { // Zero region unsafe { start.as_mut_ptr::().write_bytes(0, size) } } + +#[cfg(test)] +mod tests { + + use crate::utils::util::*; + + #[test] + fn test_mem_utils() { + // Align up + assert_eq!(align_up(7, 4), 8); + assert_eq!(align_up(15, 8), 16); + assert_eq!(align_up(10, 2), 10); + // Align down + assert_eq!(align_down(7, 4), 4); + assert_eq!(align_down(15, 8), 8); + assert_eq!(align_down(10, 2), 10); + // Page align up + assert_eq!(page_align_up(4096), 4096); + assert_eq!(page_align_up(4097), 8192); + assert_eq!(page_align_up(0), 0); + // Page offset + assert_eq!(page_offset(4096), 0); + assert_eq!(page_offset(4097), 1); + assert_eq!(page_offset(0), 0); + // Overlaps + assert!(overlap(1, 5, 3, 6)); + assert!(overlap(0, 10, 5, 15)); + assert!(!overlap(1, 5, 6, 8)); + } + + #[test] + fn test_zero_mem_region() { + let mut data: [u8; 10] = [1; 10]; + let start = VirtAddr::new(&mut data[0] as *mut u8 as usize); + let end = start + 10; + + zero_mem_region(start, end); + + for byte in &data { + assert_eq!(*byte, 0); + } + } +}