diff options
Diffstat (limited to 'unittests/IR/DebugInfoTest.cpp')
-rw-r--r-- | unittests/IR/DebugInfoTest.cpp | 128 |
1 files changed, 38 insertions, 90 deletions
diff --git a/unittests/IR/DebugInfoTest.cpp b/unittests/IR/DebugInfoTest.cpp index a957b99..534663a 100644 --- a/unittests/IR/DebugInfoTest.cpp +++ b/unittests/IR/DebugInfoTest.cpp @@ -7,127 +7,75 @@ // //===----------------------------------------------------------------------===// -#include "llvm/IR/DebugInfo.h" +#include "llvm/IR/DebugInfoMetadata.h" #include "gtest/gtest.h" using namespace llvm; -namespace llvm { - -static void PrintTo(const StringRef &S, ::std::ostream *os) { - *os << "(" << (const void *)S.data() << "," << S.size() << ") = '"; - for (auto C : S) - if (C) - *os << C; - else - *os << "\\00"; - *os << "'"; -} -static void PrintTo(const DIHeaderFieldIterator &I, ::std::ostream *os) { - PrintTo(I.getCurrent(), os); - *os << " in "; - PrintTo(I.getHeader(), os); -} - -} // end namespace llvm - namespace { -#define MAKE_FIELD_ITERATOR(S) \ - DIHeaderFieldIterator(StringRef(S, sizeof(S) - 1)) -TEST(DebugInfoTest, DIHeaderFieldIterator) { - ASSERT_EQ(DIHeaderFieldIterator(), DIHeaderFieldIterator()); - - ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("")); - ASSERT_EQ(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("")); - ASSERT_EQ("", *DIHeaderFieldIterator("")); - - ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("stuff")); - ASSERT_EQ(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("stuff")); - ASSERT_EQ("stuff", *DIHeaderFieldIterator("stuff")); - - ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("st\0uff")); - ASSERT_NE(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("st\0uff")); - ASSERT_EQ(DIHeaderFieldIterator(), ++++MAKE_FIELD_ITERATOR("st\0uff")); - ASSERT_EQ("st", *MAKE_FIELD_ITERATOR("st\0uff")); - ASSERT_EQ("uff", *++MAKE_FIELD_ITERATOR("st\0uff")); - - ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("stuff\0")); - ASSERT_NE(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("stuff\0")); - ASSERT_EQ(DIHeaderFieldIterator(), ++++MAKE_FIELD_ITERATOR("stuff\0")); - ASSERT_EQ("stuff", *MAKE_FIELD_ITERATOR("stuff\0")); - ASSERT_EQ("", *++MAKE_FIELD_ITERATOR("stuff\0")); - - ASSERT_NE(DIHeaderFieldIterator(), MAKE_FIELD_ITERATOR("\0stuff")); - ASSERT_NE(DIHeaderFieldIterator(), ++MAKE_FIELD_ITERATOR("\0stuff")); - ASSERT_EQ(DIHeaderFieldIterator(), ++++MAKE_FIELD_ITERATOR("\0stuff")); - ASSERT_EQ("", *MAKE_FIELD_ITERATOR("\0stuff")); - ASSERT_EQ("stuff", *++MAKE_FIELD_ITERATOR("\0stuff")); -} - -TEST(DIDescriptorTest, getFlag) { +TEST(DebugNodeTest, getFlag) { // Some valid flags. - EXPECT_EQ(DIDescriptor::FlagPublic, DIDescriptor::getFlag("DIFlagPublic")); - EXPECT_EQ(DIDescriptor::FlagProtected, - DIDescriptor::getFlag("DIFlagProtected")); - EXPECT_EQ(DIDescriptor::FlagPrivate, DIDescriptor::getFlag("DIFlagPrivate")); - EXPECT_EQ(DIDescriptor::FlagVector, DIDescriptor::getFlag("DIFlagVector")); - EXPECT_EQ(DIDescriptor::FlagRValueReference, - DIDescriptor::getFlag("DIFlagRValueReference")); + EXPECT_EQ(DebugNode::FlagPublic, DebugNode::getFlag("DIFlagPublic")); + EXPECT_EQ(DebugNode::FlagProtected, DebugNode::getFlag("DIFlagProtected")); + EXPECT_EQ(DebugNode::FlagPrivate, DebugNode::getFlag("DIFlagPrivate")); + EXPECT_EQ(DebugNode::FlagVector, DebugNode::getFlag("DIFlagVector")); + EXPECT_EQ(DebugNode::FlagRValueReference, + DebugNode::getFlag("DIFlagRValueReference")); // FlagAccessibility shouldn't work. - EXPECT_EQ(0u, DIDescriptor::getFlag("DIFlagAccessibility")); + EXPECT_EQ(0u, DebugNode::getFlag("DIFlagAccessibility")); // Some other invalid strings. - EXPECT_EQ(0u, DIDescriptor::getFlag("FlagVector")); - EXPECT_EQ(0u, DIDescriptor::getFlag("Vector")); - EXPECT_EQ(0u, DIDescriptor::getFlag("other things")); - EXPECT_EQ(0u, DIDescriptor::getFlag("DIFlagOther")); + EXPECT_EQ(0u, DebugNode::getFlag("FlagVector")); + EXPECT_EQ(0u, DebugNode::getFlag("Vector")); + EXPECT_EQ(0u, DebugNode::getFlag("other things")); + EXPECT_EQ(0u, DebugNode::getFlag("DIFlagOther")); } -TEST(DIDescriptorTest, getFlagString) { +TEST(DebugNodeTest, getFlagString) { // Some valid flags. EXPECT_EQ(StringRef("DIFlagPublic"), - DIDescriptor::getFlagString(DIDescriptor::FlagPublic)); + DebugNode::getFlagString(DebugNode::FlagPublic)); EXPECT_EQ(StringRef("DIFlagProtected"), - DIDescriptor::getFlagString(DIDescriptor::FlagProtected)); + DebugNode::getFlagString(DebugNode::FlagProtected)); EXPECT_EQ(StringRef("DIFlagPrivate"), - DIDescriptor::getFlagString(DIDescriptor::FlagPrivate)); + DebugNode::getFlagString(DebugNode::FlagPrivate)); EXPECT_EQ(StringRef("DIFlagVector"), - DIDescriptor::getFlagString(DIDescriptor::FlagVector)); + DebugNode::getFlagString(DebugNode::FlagVector)); EXPECT_EQ(StringRef("DIFlagRValueReference"), - DIDescriptor::getFlagString(DIDescriptor::FlagRValueReference)); + DebugNode::getFlagString(DebugNode::FlagRValueReference)); // FlagAccessibility actually equals FlagPublic. EXPECT_EQ(StringRef("DIFlagPublic"), - DIDescriptor::getFlagString(DIDescriptor::FlagAccessibility)); + DebugNode::getFlagString(DebugNode::FlagAccessibility)); // Some other invalid flags. - EXPECT_EQ(StringRef(), DIDescriptor::getFlagString(DIDescriptor::FlagPublic | - DIDescriptor::FlagVector)); - EXPECT_EQ(StringRef(), - DIDescriptor::getFlagString(DIDescriptor::FlagFwdDecl | - DIDescriptor::FlagArtificial)); - EXPECT_EQ(StringRef(), DIDescriptor::getFlagString(0xffff)); + EXPECT_EQ(StringRef(), DebugNode::getFlagString(DebugNode::FlagPublic | + DebugNode::FlagVector)); + EXPECT_EQ(StringRef(), DebugNode::getFlagString(DebugNode::FlagFwdDecl | + DebugNode::FlagArtificial)); + EXPECT_EQ(StringRef(), DebugNode::getFlagString(0xffff)); } -TEST(DIDescriptorTest, splitFlags) { - // Some valid flags. +TEST(DebugNodeTest, splitFlags) { +// Some valid flags. #define CHECK_SPLIT(FLAGS, VECTOR, REMAINDER) \ { \ SmallVector<unsigned, 8> V; \ - EXPECT_EQ(REMAINDER, DIDescriptor::splitFlags(FLAGS, V)); \ - EXPECT_TRUE(makeArrayRef(V).equals(VECTOR)); \ + EXPECT_EQ(REMAINDER, DebugNode::splitFlags(FLAGS, V)); \ + EXPECT_TRUE(makeArrayRef(V).equals(VECTOR)); \ } - CHECK_SPLIT(DIDescriptor::FlagPublic, {DIDescriptor::FlagPublic}, 0u); - CHECK_SPLIT(DIDescriptor::FlagProtected, {DIDescriptor::FlagProtected}, 0u); - CHECK_SPLIT(DIDescriptor::FlagPrivate, {DIDescriptor::FlagPrivate}, 0u); - CHECK_SPLIT(DIDescriptor::FlagVector, {DIDescriptor::FlagVector}, 0u); - CHECK_SPLIT(DIDescriptor::FlagRValueReference, {DIDescriptor::FlagRValueReference}, 0u); - unsigned Flags[] = {DIDescriptor::FlagFwdDecl, DIDescriptor::FlagVector}; - CHECK_SPLIT(DIDescriptor::FlagFwdDecl | DIDescriptor::FlagVector, Flags, 0u); + CHECK_SPLIT(DebugNode::FlagPublic, {DebugNode::FlagPublic}, 0u); + CHECK_SPLIT(DebugNode::FlagProtected, {DebugNode::FlagProtected}, 0u); + CHECK_SPLIT(DebugNode::FlagPrivate, {DebugNode::FlagPrivate}, 0u); + CHECK_SPLIT(DebugNode::FlagVector, {DebugNode::FlagVector}, 0u); + CHECK_SPLIT(DebugNode::FlagRValueReference, {DebugNode::FlagRValueReference}, + 0u); + unsigned Flags[] = {DebugNode::FlagFwdDecl, DebugNode::FlagVector}; + CHECK_SPLIT(DebugNode::FlagFwdDecl | DebugNode::FlagVector, Flags, 0u); CHECK_SPLIT(0x100000u, {}, 0x100000u); - CHECK_SPLIT(0x100000u | DIDescriptor::FlagVector, {DIDescriptor::FlagVector}, + CHECK_SPLIT(0x100000u | DebugNode::FlagVector, {DebugNode::FlagVector}, 0x100000u); #undef CHECK_SPLIT } |