@@ -23,6 +23,26 @@ using namespace lldb_private;
23
23
using namespace lldb_private ::plugin::dwarf;
24
24
using namespace lldb_private ::dwarf;
25
25
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
+
26
46
TEST (DWARFDIETest, ChildIteration) {
27
47
// Tests DWARFDIE::child_iterator.
28
48
@@ -466,6 +486,14 @@ TEST(DWARFDIETest, TestDWARFTypePrinter) {
466
486
Attributes:
467
487
- Attribute: DW_AT_type
468
488
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
469
497
debug_info:
470
498
- Version: 4
471
499
AddrSize: 8
@@ -494,6 +522,10 @@ TEST(DWARFDIETest, TestDWARFTypePrinter) {
494
522
- AbbrCode: 0x7
495
523
Values:
496
524
- Value: 0x0000000c # update
525
+ - AbbrCode: 0x8
526
+ Values:
527
+ - Value: 0x0000000c
528
+ - CStr: my_int
497
529
- AbbrCode: 0x0
498
530
- AbbrCode: 0x0)" ;
499
531
YAMLModuleTester t (yamldata);
@@ -505,17 +537,7 @@ TEST(DWARFDIETest, TestDWARFTypePrinter) {
505
537
unit->Dump (&debug_os);
506
538
ASSERT_TRUE (unit);
507
539
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" );
521
543
}
0 commit comments