From d60d6713fa799e2369abe5f3c72844e41e102355 Mon Sep 17 00:00:00 2001 From: Michael Zhao Date: Wed, 30 Mar 2022 13:38:40 +0800 Subject: [PATCH] aarch64: Unit test for new memory layout Signed-off-by: Michael Zhao --- arch/src/aarch64/mod.rs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/arch/src/aarch64/mod.rs b/arch/src/aarch64/mod.rs index c941e069b..9b089a2b7 100644 --- a/arch/src/aarch64/mod.rs +++ b/arch/src/aarch64/mod.rs @@ -234,11 +234,29 @@ mod tests { use super::*; #[test] - fn test_arch_memory_regions_dram() { - let regions = arch_memory_regions((1usize << 32) as u64); //4GB - assert_eq!(5, regions.len()); + fn test_arch_memory_regions_dram_2gb() { + let regions = arch_memory_regions((1usize << 31) as u64); //2GB + assert_eq!(6, regions.len()); assert_eq!(layout::RAM_START, regions[4].0); - assert_eq!(((1 << 32) - layout::UEFI_SIZE) as usize, regions[4].1); + assert_eq!(((1 << 31) - layout::UEFI_SIZE) as usize, regions[4].1); assert_eq!(RegionType::Ram, regions[4].2); + assert_eq!(RegionType::Reserved, regions[5].2); + } + + #[test] + fn test_arch_memory_regions_dram_4gb() { + let regions = arch_memory_regions((1usize << 32) as u64); //4GB + let ram_32bit_space_size = + layout::MEM_32BIT_RESERVED_START.unchecked_offset_from(layout::RAM_START); + assert_eq!(7, regions.len()); + assert_eq!(layout::RAM_START, regions[4].0); + assert_eq!(ram_32bit_space_size as usize, regions[4].1); + assert_eq!(RegionType::Ram, regions[4].2); + assert_eq!(RegionType::Reserved, regions[6].2); + assert_eq!(RegionType::Ram, regions[5].2); + assert_eq!( + ((1 << 32) - layout::UEFI_SIZE - ram_32bit_space_size) as usize, + regions[5].1 + ); } }