Summary: In D39387, I was quick to jump to conclusion that ArchSpec has no external dependencies. It turns there still was one call to HostInfo::GetArchitecture left -- for implementing the "systemArch32" architecture and friends. Since GetAugmentedArchSpec is the place we handle these "incomplete" triples that don't specify os or vendor and "systemArch" looks very much like an incomplete triple, I move its handling there. After this ArchSpec *really* does not have external dependencies, and I'll move it to the Utility module as a follow-up. Reviewers: zturner, clayborg, jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D39896 llvm-svn: 318046
46 lines
1.7 KiB
C++
46 lines
1.7 KiB
C++
//===-- HostInfoTest.cpp ----------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/Host/HostInfo.h"
|
|
#include "lldb/lldb-defines.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace lldb_private;
|
|
using namespace llvm;
|
|
|
|
namespace {
|
|
class HostInfoTest: public ::testing::Test {
|
|
public:
|
|
void SetUp() override { HostInfo::Initialize(); }
|
|
void TearDown() override { HostInfo::Terminate(); }
|
|
};
|
|
}
|
|
|
|
TEST_F(HostInfoTest, GetAugmentedArchSpec) {
|
|
// Fully specified triple should not be changed.
|
|
ArchSpec spec = HostInfo::GetAugmentedArchSpec("x86_64-pc-linux-gnu");
|
|
EXPECT_EQ(spec.GetTriple().getTriple(), "x86_64-pc-linux-gnu");
|
|
|
|
// Same goes if we specify at least one of (os, vendor, env).
|
|
spec = HostInfo::GetAugmentedArchSpec("x86_64-pc");
|
|
EXPECT_EQ(spec.GetTriple().getTriple(), "x86_64-pc");
|
|
|
|
// But if we specify only an arch, we should fill in the rest from the host.
|
|
spec = HostInfo::GetAugmentedArchSpec("x86_64");
|
|
Triple triple(sys::getDefaultTargetTriple());
|
|
EXPECT_EQ(spec.GetTriple().getArch(), Triple::x86_64);
|
|
EXPECT_EQ(spec.GetTriple().getOS(), triple.getOS());
|
|
EXPECT_EQ(spec.GetTriple().getVendor(), triple.getVendor());
|
|
EXPECT_EQ(spec.GetTriple().getEnvironment(), triple.getEnvironment());
|
|
|
|
// Test LLDB_ARCH_DEFAULT
|
|
EXPECT_EQ(HostInfo::GetAugmentedArchSpec(LLDB_ARCH_DEFAULT).GetTriple(),
|
|
HostInfo::GetArchitecture(HostInfo::eArchKindDefault).GetTriple());
|
|
}
|