1 //===-- HostTest.cpp --------------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "lldb/Host/Host.h" 11 #include "lldb/Host/HostInfo.h" 12 #include "lldb/Target/Process.h" 13 #include "gtest/gtest.h" 14 15 using namespace lldb_private; 16 17 namespace { 18 class HostTest : public testing::Test { 19 public: 20 static void SetUpTestCase() { HostInfo::Initialize(); } 21 static void TearDownTestCase() { HostInfo::Terminate(); } 22 }; 23 } // namespace 24 25 TEST_F(HostTest, GetProcessInfo) { 26 ProcessInstanceInfo Info; 27 ASSERT_FALSE(Host::GetProcessInfo(0, Info)); 28 29 ASSERT_TRUE(Host::GetProcessInfo(getpid(), Info)); 30 31 ASSERT_TRUE(Info.ProcessIDIsValid()); 32 EXPECT_EQ(lldb::pid_t(getpid()), Info.GetProcessID()); 33 34 ASSERT_TRUE(Info.ParentProcessIDIsValid()); 35 EXPECT_EQ(lldb::pid_t(getppid()), Info.GetParentProcessID()); 36 37 ASSERT_TRUE(Info.EffectiveUserIDIsValid()); 38 EXPECT_EQ(geteuid(), Info.GetEffectiveUserID()); 39 40 ASSERT_TRUE(Info.EffectiveGroupIDIsValid()); 41 EXPECT_EQ(getegid(), Info.GetEffectiveGroupID()); 42 43 ASSERT_TRUE(Info.UserIDIsValid()); 44 EXPECT_EQ(geteuid(), Info.GetUserID()); 45 46 ASSERT_TRUE(Info.GroupIDIsValid()); 47 EXPECT_EQ(getegid(), Info.GetGroupID()); 48 49 EXPECT_TRUE(Info.GetArchitecture().IsValid()); 50 EXPECT_EQ(HostInfo::GetArchitecture(HostInfo::eArchKindDefault), 51 Info.GetArchitecture()); 52 } 53