Skip to content

Commit 72a3f5b

Browse files
committed
fixup! add test
1 parent 80328f1 commit 72a3f5b

File tree

1 file changed

+127
-0
lines changed

1 file changed

+127
-0
lines changed
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Tests the --child-tags (-t) option.
2+
# RUN: yaml2obj %s -o %t.o
3+
# RUN: llvm-dwarfdump %t.o --child-tags=DW_TAG_structure_type | FileCheck %s --check-prefix=ONLY_STRUCT
4+
# RUN: llvm-dwarfdump %t.o -t DW_TAG_structure_type -t DW_TAG_namespace | FileCheck %s --check-prefix=STRUCT_AND_NS --implicit-check-not=DW_TAG_subprogram --implicit-check-not=DW_TAG_member
5+
# RUN: llvm-dwarfdump %t.o -c --name=Foo -t DW_TAG_member | FileCheck %s --check-prefix=FOO_MEM --implicit-check-not=DW_TAG_compile_unit --implicit-check-not=DW_TAG_subprogram --implicit-check-not=DW_TAG_namespace
6+
# RUN: llvm-dwarfdump %t.o -c --name=Foo -t not_a_tag -t DW_TAG_member | FileCheck %s --check-prefix=SINGLE_INVALID_TAG --implicit-check-not=DW_TAG_compile_unit --implicit-check-not=DW_TAG_subprogram --implicit-check-not=DW_TAG_namespace
7+
# RUN: llvm-dwarfdump %t.o -c --name=Foo -t not_a_tag | FileCheck %s --check-prefix=ONLY_INVALID_TAGS --implicit-check-not=DW_TAG_compile_unit --implicit-check-not=DW_TAG_subprogram --implicit-check-not=DW_TAG_namespace --implicit-check-not=DW_TAG_member
8+
# RUN: llvm-dwarfdump %t.o -c -p --name=Foo -t DW_TAG_member | FileCheck %s --check-prefix=FOO_MEM_WITH_PARENT --implicit-check-not=DW_TAG_subprogram
9+
# RUN: not llvm-dwarfdump %t.o --name=Foo -t DW_TAG_member 2>&1 | FileCheck %s --check-prefix=ERROR_NO_SHOW_CHILDREN
10+
11+
# ONLY_STRUCT: DW_TAG_compile_unit
12+
# ONLY_STRUCT-NOT: DW_TAG_namespace
13+
# ONLY_STRUCT-NOT: DW_TAG_structure_type
14+
15+
# STRUCT_AND_NS: DW_TAG_compile_unit
16+
# STRUCT_AND_NS: DW_TAG_namespace
17+
# STRUCT_AND_NS: DW_TAG_structure_type
18+
# STRUCT_AND_NS: DW_TAG_structure_type
19+
20+
# FOO_MEM: DW_TAG_structure_type
21+
# FOO_MEM: DW_TAG_member
22+
# FOO_MEM: DW_TAG_member
23+
# FOO_MEM: DW_TAG_member
24+
# FOO_MEM-NOT: DW_TAG_structure_type
25+
# FOO_MEM-NOT: DW_TAG_member
26+
27+
# SINGLE_INVALID_TAG: DW_TAG_structure_type
28+
# SINGLE_INVALID_TAG: DW_TAG_member
29+
# SINGLE_INVALID_TAG: DW_TAG_member
30+
# SINGLE_INVALID_TAG: DW_TAG_member
31+
# SINGLE_INVALID_TAG-NOT: DW_TAG_structure_type
32+
# SINGLE_INVALID_TAG-NOT: DW_TAG_member
33+
34+
# ONLY_INVALID_TAGS: DW_TAG_structure_type
35+
# ONLY_INVALID_TAGS-NOT: DW_TAG_structure_type
36+
37+
# FOO_MEM_WITH_PARENT: DW_TAG_compile_unit
38+
# FOO_MEM_WITH_PARENT: DW_TAG_namespace
39+
# FOO_MEM_WITH_PARENT: DW_TAG_structure_type
40+
# FOO_MEM_WITH_PARENT: DW_TAG_member
41+
# FOO_MEM_WITH_PARENT: DW_TAG_member
42+
# FOO_MEM_WITH_PARENT: DW_TAG_member
43+
# FOO_MEM_WITH_PARENT-NOT: DW_TAG_structure_type
44+
# FOO_MEM_WITH_PARENT-NOT: DW_TAG_member
45+
46+
# ERROR_NO_SHOW_CHILDREN: incompatible arguments: --child-tags requires --show-children
47+
48+
--- !ELF
49+
FileHeader:
50+
Class: ELFCLASS64
51+
Data: ELFDATA2LSB
52+
Type: ET_EXEC
53+
Machine: EM_X86_64
54+
DWARF:
55+
debug_abbrev:
56+
- Table:
57+
# 1
58+
- Tag: DW_TAG_compile_unit
59+
Children: DW_CHILDREN_yes
60+
Attributes:
61+
- Attribute: DW_AT_producer
62+
Form: DW_FORM_string
63+
# 2
64+
- Tag: DW_TAG_namespace
65+
Children: DW_CHILDREN_yes
66+
Attributes:
67+
- Attribute: DW_AT_name
68+
Form: DW_FORM_string
69+
# 3
70+
- Tag: DW_TAG_structure_type
71+
Children: DW_CHILDREN_yes
72+
Attributes:
73+
- Attribute: DW_AT_name
74+
Form: DW_FORM_string
75+
# 4
76+
- Tag: DW_TAG_member
77+
Children: DW_CHILDREN_no
78+
Attributes:
79+
- Attribute: DW_AT_name
80+
Form: DW_FORM_string
81+
# 5
82+
- Tag: DW_TAG_subprogram
83+
Children: DW_CHILDREN_no
84+
Attributes:
85+
- Attribute: DW_AT_name
86+
Form: DW_FORM_string
87+
debug_info:
88+
- Version: 5
89+
UnitType: DW_UT_compile
90+
Entries:
91+
- AbbrCode: 1
92+
Values:
93+
- CStr: handwritten
94+
- AbbrCode: 2
95+
Values:
96+
- CStr: ns
97+
- AbbrCode: 3
98+
Values:
99+
- CStr: Foo
100+
- AbbrCode: 4
101+
Values:
102+
- CStr: mem1
103+
- AbbrCode: 4
104+
Values:
105+
- CStr: mem2
106+
- AbbrCode: 4
107+
Values:
108+
- CStr: mem3
109+
- AbbrCode: 3
110+
Values:
111+
- CStr: NestedInFoo
112+
- AbbrCode: 4
113+
Values:
114+
- CStr: NestedMem1
115+
- AbbrCode: 4
116+
Values:
117+
- CStr: NestedMem2
118+
- AbbrCode: 5
119+
Values:
120+
- CStr: NestedFunc
121+
- AbbrCode: 0x0
122+
- AbbrCode: 5
123+
Values:
124+
- CStr: FooFunc
125+
- AbbrCode: 0x0
126+
- AbbrCode: 0x0
127+
- AbbrCode: 0x0

0 commit comments

Comments
 (0)