1*6777b538SAndroid Build Coastguard Worker // Copyright 2023 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "base/posix/sysctl.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <sys/sysctl.h> 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker #include "build/build_config.h" 10*6777b538SAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h" 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker namespace base { 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker namespace { 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker using SysctlTest = testing::Test; 17*6777b538SAndroid Build Coastguard Worker TEST(SysctlTest,MibSuccess)18*6777b538SAndroid Build Coastguard WorkerTEST(SysctlTest, MibSuccess) { 19*6777b538SAndroid Build Coastguard Worker std::optional<std::string> result1 = StringSysctl({CTL_HW, HW_MACHINE}); 20*6777b538SAndroid Build Coastguard Worker EXPECT_TRUE(result1); 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker #if !BUILDFLAG(IS_OPENBSD) 23*6777b538SAndroid Build Coastguard Worker std::optional<std::string> result2 = StringSysctlByName("hw.machine"); 24*6777b538SAndroid Build Coastguard Worker EXPECT_TRUE(result2); 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker EXPECT_EQ(result1, result2); 27*6777b538SAndroid Build Coastguard Worker #endif 28*6777b538SAndroid Build Coastguard Worker } 29*6777b538SAndroid Build Coastguard Worker TEST(SysctlTest,MibFailure)30*6777b538SAndroid Build Coastguard WorkerTEST(SysctlTest, MibFailure) { 31*6777b538SAndroid Build Coastguard Worker std::optional<std::string> result = StringSysctl({-1}); 32*6777b538SAndroid Build Coastguard Worker EXPECT_FALSE(result); 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Worker #if !BUILDFLAG(IS_OPENBSD) 35*6777b538SAndroid Build Coastguard Worker result = StringSysctlByName("banananananananana"); 36*6777b538SAndroid Build Coastguard Worker EXPECT_FALSE(result); 37*6777b538SAndroid Build Coastguard Worker #endif 38*6777b538SAndroid Build Coastguard Worker } 39*6777b538SAndroid Build Coastguard Worker 40*6777b538SAndroid Build Coastguard Worker } // namespace 41*6777b538SAndroid Build Coastguard Worker 42*6777b538SAndroid Build Coastguard Worker } // namespace base 43