// SPDX-License-Identifier: GPL-2.0-only #include <sys/mman.h> #include <mmap_test.h> #include "../../kselftest_harness.h" TEST(infinite_rlimit) { // Only works on 64 bit #if __riscv_xlen == 64 struct addresses mmap_addresses; EXPECT_EQ(BOTTOM_UP, memory_layout()); do_mmaps(&mmap_addresses); EXPECT_NE(MAP_FAILED, mmap_addresses.no_hint); EXPECT_NE(MAP_FAILED, mmap_addresses.on_37_addr); EXPECT_NE(MAP_FAILED, mmap_addresses.on_38_addr); EXPECT_NE(MAP_FAILED, mmap_addresses.on_46_addr); EXPECT_NE(MAP_FAILED, mmap_addresses.on_47_addr); EXPECT_NE(MAP_FAILED, mmap_addresses.on_55_addr); EXPECT_NE(MAP_FAILED, mmap_addresses.on_56_addr); EXPECT_GT(1UL << 47, (unsigned long)mmap_addresses.no_hint); EXPECT_GT(1UL << 38, (unsigned long)mmap_addresses.on_37_addr); EXPECT_GT(1UL << 38, (unsigned long)mmap_addresses.on_38_addr); EXPECT_GT(1UL << 38, (unsigned long)mmap_addresses.on_46_addr); EXPECT_GT(1UL << 47, (unsigned long)mmap_addresses.on_47_addr); EXPECT_GT(1UL << 47, (unsigned long)mmap_addresses.on_55_addr); EXPECT_GT(1UL << 56, (unsigned long)mmap_addresses.on_56_addr); #endif } TEST_HARNESS_MAIN