summaryrefslogtreecommitdiffstats
path: root/test/unit/pages.c
blob: f297215a298c550d82698d2de23b18511328ac39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "test/jemalloc_test.h"

TEST_BEGIN(test_pages_huge)
{
	size_t alloc_size;
	bool commit;
	void *pages, *hugepage;

	alloc_size = HUGEPAGE * 2 - PAGE;
	commit = true;
	pages = pages_map(NULL, alloc_size, &commit);
	assert_ptr_not_null(pages, "Unexpected pages_map() error");

	hugepage = (void *)(ALIGNMENT_CEILING((uintptr_t)pages, HUGEPAGE));
	assert_b_ne(pages_huge(hugepage, HUGEPAGE), have_thp,
	    "Unexpected pages_huge() result");
	assert_false(pages_nohuge(hugepage, HUGEPAGE),
	    "Unexpected pages_nohuge() result");

	pages_unmap(pages, alloc_size);
}
TEST_END

int
main(void)
{

	return (test(
	    test_pages_huge));
}