xref: /xnu-8792.61.2/tests/vm/page_size_globals.c (revision 42e220869062b56f8d7d0726fd4c88954f87902c)
1 #include <darwintest.h>
2 #include <mach/vm_page_size.h>
3 
4 T_GLOBAL_META(
5 	T_META_NAMESPACE("vm_page_size_overrides")
6 	);
7 
8 static void
verify_page_size(int expected_shift,int page_shift,vm_size_t page_size,vm_size_t page_mask)9 verify_page_size(
10 	int expected_shift,
11 	int page_shift,
12 	vm_size_t page_size,
13 	vm_size_t page_mask)
14 {
15 	T_ASSERT_EQ(page_shift, expected_shift, "page_shift");
16 	T_ASSERT_EQ(page_size, 1UL << expected_shift, "page_size");
17 	T_ASSERT_EQ(page_mask, page_size - 1, "page_mask");
18 }
19 
20 
21 T_DECL(kernel_4k,
22     "Can override vm_kernel_page_size",
23     T_META_ENVVAR("VM_KERNEL_PAGE_SIZE_4K=1"),
24     T_META_ENVVAR("MallocGuardEdges=0"),
25     T_META_ENVVAR("MallocDoNotProtectPrelude=1"),
26     T_META_ENVVAR("MallocDoNotProtectPostlude=1"))
27 {
28 	verify_page_size(12, vm_kernel_page_shift, vm_kernel_page_size, vm_kernel_page_mask);
29 }
30 
31 T_DECL(invalid,
32     "Invalid overrides",
33     T_META_ENVVAR("VM_KERNEL_PAGE_SIZE_4K=2"),
34     T_META_ENVVAR("VM_KERNEL_PAGE_SIZE=4K"),
35     T_META_ENVVAR("VM_KERNEL_PAGE_SIZE="))
36 {
37 	/*
38 	 * This test just verifies that libkernel_init doesn't
39 	 * crash when handling invalid overrides.
40 	 * So if we got here, we can pass the test.
41 	 */
42 	T_PASS("Test process spawned");
43 }
44