Nothing to see here, move along
at main 61 lines 1.8 kB view raw
1crate::kernel_test!( 2 fn hhdm_offset_nonzero_and_aligned() { 3 let offset = crate::arch::boot::hhdm_offset(); 4 assert!(offset != 0, "HHDM offset is zero"); 5 assert!( 6 offset.is_multiple_of(4096), 7 "HHDM offset not 4K-aligned: {:#x}", 8 offset 9 ); 10 } 11); 12 13crate::kernel_test!( 14 fn memory_map_has_usable() { 15 use limine::memory_map::EntryType; 16 let map = crate::arch::boot::memory_map(); 17 let usable_count = map 18 .iter() 19 .filter(|e| e.entry_type == EntryType::USABLE) 20 .count(); 21 assert!(usable_count > 0, "no usable memory regions in memory map"); 22 } 23); 24 25crate::kernel_test!( 26 fn tsc_frequency_plausible() { 27 let freq = crate::wcet::tsc::freq_hz(); 28 assert!( 29 (100_000_000..=10_000_000_000).contains(&freq), 30 "TSC freq {} outside plausible range (100MHz-10GHz)", 31 freq 32 ); 33 } 34); 35 36crate::kernel_test!( 37 fn kernel_virt_base_high_half() { 38 let (_, virt_base) = crate::arch::boot::executable_address(); 39 assert!( 40 virt_base >= 0xFFFF_8000_0000_0000, 41 "kernel virtual base {:#x} is not in high half", 42 virt_base 43 ); 44 } 45); 46 47crate::kernel_test!( 48 fn phys_virt_round_trip() { 49 let phys = x86_64::PhysAddr::new(0x1000); 50 let virt = crate::mem::addr::phys_to_virt(phys); 51 let back = crate::mem::addr::virt_to_phys(virt) 52 .expect("virt_to_phys returned None for valid HHDM address"); 53 assert!( 54 back == phys, 55 "round trip failed: phys {:#x} -> virt {:#x} -> phys {:#x}", 56 phys.as_u64(), 57 virt.as_u64(), 58 back.as_u64() 59 ); 60 } 61);