diff options
Diffstat (limited to 'unittests/DebugInfo')
-rw-r--r-- | unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp | 9 | ||||
-rw-r--r-- | unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp | 71 |
2 files changed, 59 insertions, 21 deletions
diff --git a/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp b/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp index 60ca56b0d143..7ee56042f4be 100644 --- a/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp +++ b/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp @@ -600,4 +600,11 @@ TEST_F(TypeIndexIteratorTest, VariableSizeIntegers) { BaseClassRecord BaseClass2(MemberAccess::Public, TypeIndex(48), 1); writeFieldList(BaseClass1, BaseClass2); checkTypeReferences(0, TypeIndex(47), TypeIndex(48)); -}
\ No newline at end of file +} + +TEST_F(TypeIndexIteratorTest, UsingNamespace) { + UsingNamespaceSym UN(SymbolRecordKind::UsingNamespaceSym); + UN.Name = "std"; + writeSymbolRecords(UN); + checkTypeReferences(0); +} diff --git a/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp b/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp index 442dea3c52f7..273809fcbd32 100644 --- a/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp +++ b/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp @@ -1122,26 +1122,57 @@ TEST(DWARFDebugInfo, TestRelations) { EXPECT_EQ(C1.getParent(), C); EXPECT_EQ(C2.getParent(), C); - // Make sure bidirectional iterator works as expected. - auto Begin = A.begin(); - auto End = A.end(); - auto It = A.begin(); - - EXPECT_EQ(It, Begin); - EXPECT_EQ(*It, B); - ++It; - EXPECT_EQ(*It, C); - ++It; - EXPECT_EQ(*It, D); - ++It; - EXPECT_EQ(It, End); - --It; - EXPECT_EQ(*It, D); - --It; - EXPECT_EQ(*It, C); - --It; - EXPECT_EQ(*It, B); - EXPECT_EQ(It, Begin); + // Make sure iterators work as expected. + EXPECT_THAT(std::vector<DWARFDie>(A.begin(), A.end()), + testing::ElementsAre(B, C, D)); + EXPECT_THAT(std::vector<DWARFDie>(A.rbegin(), A.rend()), + testing::ElementsAre(D, C, B)); + + // Make sure iterator is bidirectional. + { + auto Begin = A.begin(); + auto End = A.end(); + auto It = A.begin(); + + EXPECT_EQ(It, Begin); + EXPECT_EQ(*It, B); + ++It; + EXPECT_EQ(*It, C); + ++It; + EXPECT_EQ(*It, D); + ++It; + EXPECT_EQ(It, End); + --It; + EXPECT_EQ(*It, D); + --It; + EXPECT_EQ(*It, C); + --It; + EXPECT_EQ(*It, B); + EXPECT_EQ(It, Begin); + } + + // Make sure reverse iterator is bidirectional. + { + auto Begin = A.rbegin(); + auto End = A.rend(); + auto It = A.rbegin(); + + EXPECT_EQ(It, Begin); + EXPECT_EQ(*It, D); + ++It; + EXPECT_EQ(*It, C); + ++It; + EXPECT_EQ(*It, B); + ++It; + EXPECT_EQ(It, End); + --It; + EXPECT_EQ(*It, B); + --It; + EXPECT_EQ(*It, C); + --It; + EXPECT_EQ(*It, D); + EXPECT_EQ(It, Begin); + } } TEST(DWARFDebugInfo, TestDWARFDie) { |