| //===-- HostTest.cpp --------------------------------------------*- C++ -*-===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include "lldb/Host/Host.h" | |
| #include "lldb/Host/FileSystem.h" | |
| #include "lldb/Host/HostInfo.h" | |
| #include "lldb/Target/Process.h" | |
| #include "gtest/gtest.h" | |
| using namespace lldb_private; | |
| namespace { | |
| class HostTest : public testing::Test { | |
| public: | |
| static void SetUpTestCase() { | |
| FileSystem::Initialize(); | |
| HostInfo::Initialize(); | |
| } | |
| static void TearDownTestCase() { | |
| HostInfo::Terminate(); | |
| FileSystem::Terminate(); | |
| } | |
| }; | |
| } // namespace | |
| TEST_F(HostTest, GetProcessInfo) { | |
| ProcessInstanceInfo Info; | |
| ASSERT_FALSE(Host::GetProcessInfo(0, Info)); | |
| ASSERT_TRUE(Host::GetProcessInfo(getpid(), Info)); | |
| ASSERT_TRUE(Info.ProcessIDIsValid()); | |
| EXPECT_EQ(lldb::pid_t(getpid()), Info.GetProcessID()); | |
| ASSERT_TRUE(Info.ParentProcessIDIsValid()); | |
| EXPECT_EQ(lldb::pid_t(getppid()), Info.GetParentProcessID()); | |
| ASSERT_TRUE(Info.EffectiveUserIDIsValid()); | |
| EXPECT_EQ(geteuid(), Info.GetEffectiveUserID()); | |
| ASSERT_TRUE(Info.EffectiveGroupIDIsValid()); | |
| EXPECT_EQ(getegid(), Info.GetEffectiveGroupID()); | |
| ASSERT_TRUE(Info.UserIDIsValid()); | |
| EXPECT_EQ(geteuid(), Info.GetUserID()); | |
| ASSERT_TRUE(Info.GroupIDIsValid()); | |
| EXPECT_EQ(getegid(), Info.GetGroupID()); | |
| EXPECT_TRUE(Info.GetArchitecture().IsValid()); | |
| EXPECT_EQ(HostInfo::GetArchitecture(HostInfo::eArchKindDefault), | |
| Info.GetArchitecture()); | |
| } |