@@ -23,6 +23,26 @@ using namespace lldb_private;
2323using namespace lldb_private ::plugin::dwarf;
2424using namespace lldb_private ::dwarf;
2525
26+ namespace {
27+ void Test_appendAndTerminateTemplateParameters (const DWARFDIE &die,
28+ const std::string &expected) {
29+ std::string template_name;
30+ llvm::raw_string_ostream template_name_os (template_name);
31+ llvm::DWARFTypePrinter<DWARFDIE> template_name_printer (template_name_os);
32+ template_name_printer.appendAndTerminateTemplateParameters (die);
33+ EXPECT_THAT (template_name, expected);
34+ }
35+
36+ void Test_appendQualifiedName (const DWARFDIE &die,
37+ const std::string &expected) {
38+ std::string qualified_name;
39+ llvm::raw_string_ostream template_name_os (qualified_name);
40+ llvm::DWARFTypePrinter<DWARFDIE> template_name_printer (template_name_os);
41+ template_name_printer.appendQualifiedName (die);
42+ EXPECT_THAT (qualified_name, expected);
43+ }
44+ } // namespace
45+
2646TEST (DWARFDIETest, ChildIteration) {
2747 // Tests DWARFDIE::child_iterator.
2848
@@ -466,6 +486,14 @@ TEST(DWARFDIETest, TestDWARFTypePrinter) {
466486 Attributes:
467487 - Attribute: DW_AT_type
468488 Form: DW_FORM_ref4
489+ - Code: 0x8
490+ Tag: DW_TAG_typedef
491+ Children: DW_CHILDREN_no
492+ Attributes:
493+ - Attribute: DW_AT_type
494+ Form: DW_FORM_ref4
495+ - Attribute: DW_AT_name
496+ Form: DW_FORM_string
469497 debug_info:
470498 - Version: 4
471499 AddrSize: 8
@@ -494,6 +522,10 @@ TEST(DWARFDIETest, TestDWARFTypePrinter) {
494522 - AbbrCode: 0x7
495523 Values:
496524 - Value: 0x0000000c # update
525+ - AbbrCode: 0x8
526+ Values:
527+ - Value: 0x0000000c
528+ - CStr: my_int
497529 - AbbrCode: 0x0
498530 - AbbrCode: 0x0)" ;
499531 YAMLModuleTester t (yamldata);
@@ -505,17 +537,7 @@ TEST(DWARFDIETest, TestDWARFTypePrinter) {
505537 unit->Dump (&debug_os);
506538 ASSERT_TRUE (unit);
507539
508- DWARFDIE t1_die = unit->GetDIE (0x11 );
509- std::string template_name;
510- llvm::raw_string_ostream template_name_os (template_name);
511- llvm::DWARFTypePrinter<DWARFDIE> template_name_printer (template_name_os);
512- template_name_printer.appendAndTerminateTemplateParameters (t1_die);
513- EXPECT_THAT (template_name, " <t3<int> >" );
514-
515- DWARFDIE t2_die = unit->GetDIE (0x1a );
516- std::string qualified_name;
517- llvm::raw_string_ostream qualified_name_os (qualified_name);
518- llvm::DWARFTypePrinter<DWARFDIE> qualified_name_printer (qualified_name_os);
519- qualified_name_printer.appendQualifiedName (t2_die);
520- EXPECT_THAT (qualified_name, " t1<t3<int> >::t2" );
540+ Test_appendAndTerminateTemplateParameters (unit->GetDIE (0x11 ), " <t3<int> >" );
541+ Test_appendQualifiedName (unit->GetDIE (0x1a ), " t1<t3<int> >::t2" );
542+ Test_appendQualifiedName (unit->GetDIE (0x28 ), " t3<int>::my_int" );
521543}
0 commit comments