#include "compat/bionic_sysconf.h" #include #include #include namespace mocktail::compat { namespace { TEST(BionicSysconfTest, TranslatesPageSizeAliases) { const long host_page_size = ::sysconf(_SC_PAGESIZE); EXPECT_EQ(BionicSysconf(static_cast(BionicSysconfName::kPageSize)), host_page_size); EXPECT_EQ(BionicSysconf(static_cast(BionicSysconfName::kPageSizeAlias)), host_page_size); EXPECT_GT(host_page_size, 0); EXPECT_EQ(host_page_size & (host_page_size - 1), 0); } TEST(BionicSysconfTest, TranslatesObservedCapacityNames) { EXPECT_EQ(BionicSysconf(static_cast(BionicSysconfName::kClockTicks)), 100); EXPECT_EQ(BionicSysconf(static_cast(BionicSysconfName::kIovMax)), ::sysconf(_SC_IOV_MAX)); EXPECT_EQ( BionicSysconf(static_cast(BionicSysconfName::kProcessorsConfigured)), ::sysconf(_SC_NPROCESSORS_CONF)); EXPECT_EQ( BionicSysconf(static_cast(BionicSysconfName::kProcessorsOnline)), ::sysconf(_SC_NPROCESSORS_ONLN)); EXPECT_EQ(BionicSysconf(static_cast(BionicSysconfName::kPhysicalPages)), ::sysconf(_SC_PHYS_PAGES)); } TEST(BionicSysconfTest, RejectsUnknownBionicName) { errno = 0; EXPECT_EQ(BionicSysconf(0x7fff), -1); EXPECT_EQ(errno, EINVAL); } } // namespace } // namespace mocktail::compat