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