1*1208bc7eSAndroid Build Coastguard Worker #include "test/jemalloc_test.h"
2*1208bc7eSAndroid Build Coastguard Worker
TEST_BEGIN(test_pages_huge)3*1208bc7eSAndroid Build Coastguard Worker TEST_BEGIN(test_pages_huge) {
4*1208bc7eSAndroid Build Coastguard Worker size_t alloc_size;
5*1208bc7eSAndroid Build Coastguard Worker bool commit;
6*1208bc7eSAndroid Build Coastguard Worker void *pages, *hugepage;
7*1208bc7eSAndroid Build Coastguard Worker
8*1208bc7eSAndroid Build Coastguard Worker alloc_size = HUGEPAGE * 2 - PAGE;
9*1208bc7eSAndroid Build Coastguard Worker commit = true;
10*1208bc7eSAndroid Build Coastguard Worker pages = pages_map(NULL, alloc_size, PAGE, &commit);
11*1208bc7eSAndroid Build Coastguard Worker assert_ptr_not_null(pages, "Unexpected pages_map() error");
12*1208bc7eSAndroid Build Coastguard Worker
13*1208bc7eSAndroid Build Coastguard Worker if (init_system_thp_mode == thp_mode_default) {
14*1208bc7eSAndroid Build Coastguard Worker hugepage = (void *)(ALIGNMENT_CEILING((uintptr_t)pages, HUGEPAGE));
15*1208bc7eSAndroid Build Coastguard Worker assert_b_ne(pages_huge(hugepage, HUGEPAGE), have_madvise_huge,
16*1208bc7eSAndroid Build Coastguard Worker "Unexpected pages_huge() result");
17*1208bc7eSAndroid Build Coastguard Worker assert_false(pages_nohuge(hugepage, HUGEPAGE),
18*1208bc7eSAndroid Build Coastguard Worker "Unexpected pages_nohuge() result");
19*1208bc7eSAndroid Build Coastguard Worker }
20*1208bc7eSAndroid Build Coastguard Worker
21*1208bc7eSAndroid Build Coastguard Worker pages_unmap(pages, alloc_size);
22*1208bc7eSAndroid Build Coastguard Worker }
23*1208bc7eSAndroid Build Coastguard Worker TEST_END
24*1208bc7eSAndroid Build Coastguard Worker
25*1208bc7eSAndroid Build Coastguard Worker int
main(void)26*1208bc7eSAndroid Build Coastguard Worker main(void) {
27*1208bc7eSAndroid Build Coastguard Worker return test(
28*1208bc7eSAndroid Build Coastguard Worker test_pages_huge);
29*1208bc7eSAndroid Build Coastguard Worker }
30