xref: /linux/tools/testing/selftests/riscv/mm/mmap_bottomup.c (revision ad30469a841b50dbb541df4d6971d891f703c297)
1 // SPDX-License-Identifier: GPL-2.0-only
2 #include <sys/mman.h>
3 #include <mmap_test.h>
4 
5 #include "../../kselftest_harness.h"
6 
7 TEST(infinite_rlimit)
8 {
9 // Only works on 64 bit
10 #if __riscv_xlen == 64
11 	struct addresses mmap_addresses;
12 
13 	EXPECT_EQ(BOTTOM_UP, memory_layout());
14 
15 	do_mmaps(&mmap_addresses);
16 
17 	EXPECT_NE(MAP_FAILED, mmap_addresses.no_hint);
18 	EXPECT_NE(MAP_FAILED, mmap_addresses.on_37_addr);
19 	EXPECT_NE(MAP_FAILED, mmap_addresses.on_38_addr);
20 	EXPECT_NE(MAP_FAILED, mmap_addresses.on_46_addr);
21 	EXPECT_NE(MAP_FAILED, mmap_addresses.on_47_addr);
22 	EXPECT_NE(MAP_FAILED, mmap_addresses.on_55_addr);
23 	EXPECT_NE(MAP_FAILED, mmap_addresses.on_56_addr);
24 
25 	EXPECT_GT(1UL << 47, (unsigned long)mmap_addresses.no_hint);
26 	EXPECT_GT(1UL << 38, (unsigned long)mmap_addresses.on_37_addr);
27 	EXPECT_GT(1UL << 38, (unsigned long)mmap_addresses.on_38_addr);
28 	EXPECT_GT(1UL << 38, (unsigned long)mmap_addresses.on_46_addr);
29 	EXPECT_GT(1UL << 47, (unsigned long)mmap_addresses.on_47_addr);
30 	EXPECT_GT(1UL << 47, (unsigned long)mmap_addresses.on_55_addr);
31 	EXPECT_GT(1UL << 56, (unsigned long)mmap_addresses.on_56_addr);
32 #endif
33 }
34 
35 TEST_HARNESS_MAIN
36