Nothing to see here, move along
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);