Skip to content

Commit 3c94a44

Browse files
committed
Fix tests to match the new output.
1 parent ee3a081 commit 3c94a44

File tree

2 files changed

+337
-212
lines changed

2 files changed

+337
-212
lines changed

llvm/test/tools/llvm-readobj/ELF/call-graph-info-callgraph-section.test

Lines changed: 126 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,139 @@
11
## Tests --call-graph-info prints information from call graph section.
22

33
# RUN: llvm-mc %s -filetype=obj -triple=x86_64-pc-linux -o %t
4-
# RUN: llvm-readelf --call-graph-info %t 2>&1 | FileCheck %s -DFILE=%t --match-full-lines --check-prefix=GNU
4+
# RUN: llvm-readelf --call-graph-info %t 2>&1 | FileCheck %s -DFILE=%t --match-full-lines
55
# RUN: llvm-readelf --elf-output-style=LLVM --call-graph-info %t 2>&1 | FileCheck %s --match-full-lines -DFILE=%t --check-prefix=LLVM
66
# RUN: llvm-readelf --elf-output-style=JSON --pretty-print --call-graph-info %t 2>&1 | FileCheck %s --match-full-lines -DFILE=%t --check-prefix=JSON
77

8-
# GNU: {{.*}}llvm-readelf: warning: '[[FILE]]': .callgraph section has unknown type id for 1 indirect targets.
9-
# GNU-EMPTY:
10-
# GNU-NEXT: INDIRECT TARGET TYPES (TYPEID [FUNC_ADDR,])
11-
# GNU-NEXT: UNKNOWN 6
12-
# GNU-NEXT: 20 a
13-
# GNU-EMPTY:
14-
# GNU-NEXT: INDIRECT CALL TYPES (TYPEID [CALL_SITE_ADDR,])
15-
# GNU-NEXT: 10 9
16-
# GNU-EMPTY:
17-
# GNU-NEXT: INDIRECT CALL SITES (CALLER_ADDR [CALL_SITE_ADDR,])
18-
# GNU-NEXT: 6 9
19-
# GNU-EMPTY:
20-
# GNU-NEXT: DIRECT CALL SITES (CALLER_ADDR [(CALL_SITE_ADDR, TARGET_ADDR),])
21-
# GNU-NEXT: 0 5
8+
# CHECK: {{.*}}llvm-readelf: warning: '[[FILE]]': .callgraph section has unknown type id for 1 indirect targets.
9+
# CHECK-NEXT: Per-function call graph information::
10+
# CHECK-EMPTY:
11+
# CHECK-NEXT: Function:: foo
12+
# CHECK-NEXT: Function PC:: 0x0
13+
# CHECK-NEXT: FormatVersionNumber:: 0
14+
# CHECK-NEXT: Function Kind:: NOT_INDIRECT
15+
# CHECK-NEXT: Indirect callee count:: 0
16+
# CHECK-NEXT: Direct callee count:: 1
17+
# CHECK-NEXT: {
18+
# CHECK-NEXT: CalleePC:: 0x5
19+
# CHECK-NEXT: }
20+
# CHECK-EMPTY:
21+
# CHECK-NEXT: Function:: bar
22+
# CHECK-NEXT: Function PC:: 0x6
23+
# CHECK-NEXT: FormatVersionNumber:: 0
24+
# CHECK-NEXT: Function Kind:: UNKNOWN_TID
25+
# CHECK-NEXT: Indirect callee count:: 1
26+
# CHECK-NEXT: {
27+
# CHECK-NEXT: callsite: 0x9
28+
# CHECK-NEXT: calleeTypeId: 0x10
29+
# CHECK-NEXT: }
30+
# CHECK-NEXT: Direct callee count:: 0
31+
# CHECK-EMPTY:
32+
# CHECK-NEXT: Function:: baz
33+
# CHECK-NEXT: Function PC:: 0xa
34+
# CHECK-NEXT: FormatVersionNumber:: 0
35+
# CHECK-NEXT: Function Kind:: KNOWN_TID
36+
# CHECK-NEXT: Function Type ID:: 0x20
37+
# CHECK-NEXT: Indirect callee count:: 0
38+
# CHECK-NEXT: Direct callee count:: 0
39+
2240

2341
# LLVM: {{.*}}llvm-readelf: warning: '[[FILE]]': .callgraph section has unknown type id for 1 indirect targets.
24-
# LLVM: callgraph_info {
25-
# LLVM-NEXT: unknown_target_types: [0x6]
26-
# LLVM-NEXT: indirect_target_types [
27-
# LLVM-NEXT: {
28-
# LLVM-NEXT: function_address: 0xA
29-
# LLVM-NEXT: type_id: 0x20
30-
# LLVM-NEXT: }
31-
# LLVM-NEXT: ]
32-
# LLVM-NEXT: direct_call_sites [
33-
# LLVM-NEXT: {
34-
# LLVM-NEXT: caller: 0x0
35-
# LLVM-NEXT: call_sites [
36-
# LLVM-NEXT: {
37-
# LLVM-NEXT: callee: 0x5
38-
# LLVM-NEXT: }
39-
# LLVM-NEXT: ]
40-
# LLVM-NEXT: }
41-
# LLVM-NEXT: ]
42-
# LLVM-NEXT: indirect_call_sites [
43-
# LLVM-NEXT: {
44-
# LLVM-NEXT: caller: 0x6
45-
# LLVM-NEXT: call_sites: [0x9]
46-
# LLVM-NEXT: }
47-
# LLVM-NEXT: ]
48-
# LLVM-NEXT: indirect_call_types [
49-
# LLVM-NEXT: {
50-
# LLVM-NEXT: call_site: 0x9
51-
# LLVM-NEXT: type_id: 0x10
52-
# LLVM-NEXT: }
53-
# LLVM-NEXT: ]
54-
# LLVM-NEXT: }
42+
# LLVM: callgraph_info [
43+
# LLVM-NEXT: Function {
44+
# LLVM-NEXT: Name: foo
45+
# LLVM-NEXT: Address: 0x0
46+
# LLVM-NEXT: Version: 0
47+
# LLVM-NEXT: KindStr: NOT_INDIRECT
48+
# LLVM-NEXT: Kind: 0
49+
# LLVM-NEXT: NumIndirectCallSites: 0
50+
# LLVM-NEXT: NumDirectCallSites: 1
51+
# LLVM-NEXT: DirectCallees [
52+
# LLVM-NEXT: Entry {
53+
# LLVM-NEXT: Address: 0x5
54+
# LLVM-NEXT: }
55+
# LLVM-NEXT: ]
56+
# LLVM-NEXT: }
57+
# LLVM-NEXT: Function {
58+
# LLVM-NEXT: Name: bar
59+
# LLVM-NEXT: Address: 0x6
60+
# LLVM-NEXT: Version: 0
61+
# LLVM-NEXT: KindStr: UNKNOWN_TID
62+
# LLVM-NEXT: Kind: 1
63+
# LLVM-NEXT: NumIndirectCallSites: 1
64+
# LLVM-NEXT: IndirectCallsites [
65+
# LLVM-NEXT: IndirectCallsite {
66+
# LLVM-NEXT: Address: 0x9
67+
# LLVM-NEXT: TypeId: 0x10
68+
# LLVM-NEXT: }
69+
# LLVM-NEXT: ]
70+
# LLVM-NEXT: NumDirectCallSites: 0
71+
# LLVM-NEXT: }
72+
# LLVM-NEXT: Function {
73+
# LLVM-NEXT: Name: baz
74+
# LLVM-NEXT: Address: 0xA
75+
# LLVM-NEXT: Version: 0
76+
# LLVM-NEXT: KindStr: KNOWN_TID
77+
# LLVM-NEXT: Kind: 2
78+
# LLVM-NEXT: TypeId: 0x20
79+
# LLVM-NEXT: NumIndirectCallSites: 0
80+
# LLVM-NEXT: NumDirectCallSites: 0
81+
# LLVM-NEXT: }
82+
# LLVM-NEXT: ]
5583

5684
# JSON: {{.*}}llvm-readelf: warning: '[[FILE]]': .callgraph section has unknown type id for 1 indirect targets.
57-
# JSON: "callgraph_info": {
58-
# JSON-NEXT: "unknown_target_types": [
59-
# JSON-NEXT: 6
60-
# JSON-NEXT: ],
61-
# JSON-NEXT: "indirect_target_types": [
62-
# JSON-NEXT: {
63-
# JSON-NEXT: "function_address": 10,
64-
# JSON-NEXT: "type_id": 32
65-
# JSON-NEXT: }
66-
# JSON-NEXT: ],
67-
# JSON-NEXT: "direct_call_sites": [
68-
# JSON-NEXT: {
69-
# JSON-NEXT: "caller": 0,
70-
# JSON-NEXT: "call_sites": [
71-
# JSON-NEXT: {
72-
# JSON-NEXT: "callee": 5
73-
# JSON-NEXT: }
74-
# JSON-NEXT: ]
75-
# JSON-NEXT: }
76-
# JSON-NEXT: ],
77-
# JSON-NEXT: "indirect_call_sites": [
78-
# JSON-NEXT: {
79-
# JSON-NEXT: "caller": 6,
80-
# JSON-NEXT: "call_sites": [
81-
# JSON-NEXT: 9
82-
# JSON-NEXT: ]
83-
# JSON-NEXT: }
84-
# JSON-NEXT: ],
85-
# JSON-NEXT: "indirect_call_types": [
86-
# JSON-NEXT: {
87-
# JSON-NEXT: "call_site": 9,
88-
# JSON-NEXT: "type_id": 16
89-
# JSON-NEXT: }
90-
# JSON-NEXT: ]
91-
# JSON-NEXT: }
85+
# JSON: "callgraph_info": [
86+
# JSON-NEXT: {
87+
# JSON-NEXT: "Function": {
88+
# JSON-NEXT: "Name": "foo",
89+
# JSON-NEXT: "Address": 0,
90+
# JSON-NEXT: "Version": 0,
91+
# JSON-NEXT: "KindStr": "NOT_INDIRECT",
92+
# JSON-NEXT: "Kind": 0,
93+
# JSON-NEXT: "NumIndirectCallSites": 0,
94+
# JSON-NEXT: "NumDirectCallSites": 1,
95+
# JSON-NEXT: "DirectCallees": [
96+
# JSON-NEXT: {
97+
# JSON-NEXT: "Entry": {
98+
# JSON-NEXT: "Address": 5
99+
# JSON-NEXT: }
100+
# JSON-NEXT: }
101+
# JSON-NEXT: ]
102+
# JSON-NEXT: }
103+
# JSON-NEXT: },
104+
# JSON-NEXT: {
105+
# JSON-NEXT: "Function": {
106+
# JSON-NEXT: "Name": "bar",
107+
# JSON-NEXT: "Address": 6,
108+
# JSON-NEXT: "Version": 0,
109+
# JSON-NEXT: "KindStr": "UNKNOWN_TID",
110+
# JSON-NEXT: "Kind": 1,
111+
# JSON-NEXT: "NumIndirectCallSites": 1,
112+
# JSON-NEXT: "IndirectCallsites": [
113+
# JSON-NEXT: {
114+
# JSON-NEXT: "IndirectCallsite": {
115+
# JSON-NEXT: "Address": 9,
116+
# JSON-NEXT: "TypeId": 16
117+
# JSON-NEXT: }
118+
# JSON-NEXT: }
119+
# JSON-NEXT: ],
120+
# JSON-NEXT: "NumDirectCallSites": 0
121+
# JSON-NEXT: }
122+
# JSON-NEXT: },
123+
# JSON-NEXT: {
124+
# JSON-NEXT: "Function": {
125+
# JSON-NEXT: "Name": "baz",
126+
# JSON-NEXT: "Address": 10,
127+
# JSON-NEXT: "Version": 0,
128+
# JSON-NEXT: "KindStr": "KNOWN_TID",
129+
# JSON-NEXT: "Kind": 2,
130+
# JSON-NEXT: "TypeId": 32,
131+
# JSON-NEXT: "NumIndirectCallSites": 0,
132+
# JSON-NEXT: "NumDirectCallSites": 0
133+
# JSON-NEXT: }
134+
# JSON-NEXT: }
135+
# JSON-NEXT: ]
136+
92137

93138
.text
94139

0 commit comments

Comments
 (0)