]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/COFF/pdb-diff.test
Vendor import of lld trunk r321530:
[FreeBSD/FreeBSD.git] / test / COFF / pdb-diff.test
1 This test verifies that we produce PDBs compatible with MSVC in various ways.
2 We check in a cl-generated object file, PDB, and original source which serve
3 as the "baseline" for us to measure against.  Then we link the same object
4 file with LLD and compare the two PDBs.  Since the baseline object file and
5 PDB are already checked in, we just run LLD on the object file.
6
7 RUN: rm -f %T/pdb-diff-lld.pdb %T/pdb-diff-lld.exe
8 RUN: lld-link /debug /pdb:%T/pdb-diff-lld.pdb /out:%T/pdb-diff-lld.exe /nodefaultlib \
9 RUN:   /entry:main %S/Inputs/pdb-diff.obj
10 RUN: llvm-pdbutil diff -result -values=false -left-bin-root=%S -right-bin-root=D:/src/llvm-mono/lld/test/COFF/ \
11 RUN:   %T/pdb-diff-lld.pdb %S/Inputs/pdb-diff-cl.pdb | FileCheck %s
12
13 CHECK:        ----------------------
14 CHECK-NEXT:   |  MSF Super Block   |
15 CHECK-NEXT:   |----------------+---|
16 CHECK-NEXT:   |           File |   |
17 CHECK-NEXT:   |----------------+---|
18 CHECK-NEXT:   |     Block Size | I |
19 CHECK-NEXT:   |----------------+---|
20 CHECK-NEXT:   |    Block Count |
21 CHECK-NEXT:   |----------------+---|
22 CHECK-NEXT:   |      Unknown 1 | I |
23 CHECK-NEXT:   |----------------+---|
24 CHECK-NEXT:   | Directory Size |
25 CHECK-NEXT:   |----------------+---|
26 CHECK-NEXT:   ------------------------------------
27 CHECK-NEXT:   |         Stream Directory         |
28 CHECK-NEXT:   |------------------------------+---|
29 CHECK-NEXT:   |                         File |   |
30 CHECK-NEXT:   |------------------------------+---|
31 CHECK-NEXT:   |                 Stream Count | I |
32 CHECK-NEXT:   |------------------------------+---|
33 CHECK-NEXT:   |            Old MSF Directory | I |
34 CHECK-NEXT:   |------------------------------+---|
35 CHECK-NEXT:   |                   PDB Stream | I |
36 CHECK-NEXT:   |------------------------------+---|
37 CHECK-NEXT:   |                   TPI Stream | I |
38 CHECK-NEXT:   |------------------------------+---|
39 CHECK-NEXT:   |                   DBI Stream | I |
40 CHECK-NEXT:   |------------------------------+---|
41 CHECK-NEXT:   |                   IPI Stream | I |
42 CHECK-NEXT:   |------------------------------+---|
43 CHECK-NEXT:   |                 New FPO Data | {{[EI]}} |
44 CHECK-NEXT:   |------------------------------+---|
45 CHECK-NEXT:   |          Section Header Data | {{[EI]}} |
46 CHECK-NEXT:   |------------------------------+---|
47 CHECK-NEXT:   |        Named Stream "/names" | {{[EI]}} |
48 CHECK-NEXT:   |------------------------------+---|
49 CHECK-NEXT:   |     Named Stream "/LinkInfo" | {{[EI]}} |
50 CHECK-NEXT:   |------------------------------+---|
51 CHECK-NEXT:   | Module "Inputs\pdb-diff.obj" | {{[EI]}} |
52 CHECK-NEXT:   |------------------------------+---|
53 CHECK-NEXT:   |          Module "* Linker *" | {{[EI]}} |
54 CHECK-NEXT:   |------------------------------+---|
55 CHECK-NEXT:   |                     TPI Hash | {{[EI]}} |
56 CHECK-NEXT:   |------------------------------+---|
57 CHECK-NEXT:   |                     IPI Hash | {{[EI]}} |
58 CHECK-NEXT:   |------------------------------+---|
59 CHECK-NEXT:   |           Public Symbol Hash | {{[EI]}} |
60 CHECK-NEXT:   |------------------------------+---|
61 CHECK-NEXT:   |           Global Symbol Hash | {{[EI]}} |
62 CHECK-NEXT:   |------------------------------+---|
63 CHECK-NEXT:   |               Symbol Records | {{[EI]}} |
64 CHECK-NEXT:   |------------------------------+---|
65 CHECK-NEXT:   ------------------------------------
66 CHECK-NEXT:   |           String Table           |
67 CHECK-NEXT:   |------------------------------+---|
68 CHECK-NEXT:   |                         File |   |
69 CHECK-NEXT:   |------------------------------+---|
70 CHECK-NEXT:   |            Number of Strings | D |
71 CHECK-NEXT:   |------------------------------+---|
72 CHECK-NEXT:   |                 Hash Version | I |
73 CHECK-NEXT:   |------------------------------+---|
74 CHECK-NEXT:   |                    Byte Size |
75 CHECK-NEXT:   |------------------------------+---|
76 CHECK-NEXT:   |                    Signature | I |
77 CHECK-NEXT:   |------------------------------+---|
78 CHECK-NEXT:   |                Empty Strings |
79 CHECK-NEXT:   |------------------------------+---|
80 CHECK-NEXT:   |  {{.*}}pdb-diff.cpp | {{[EI]}} |
81 CHECK-NEXT:   |------------------------------+---|
82 CHECK-NEXT:   |  $T0 $ebp = $...p $T0 8 + =  | D |
83 CHECK-NEXT:   |------------------------------+---|
84 CHECK-NEXT:   |  d:\src\llvm-...er internal) | D |
85 CHECK-NEXT:   |------------------------------+---|
86 CHECK-NEXT:   ----------------------------
87 CHECK-NEXT:   |        PDB Stream        |
88 CHECK-NEXT:   |----------------------+---|
89 CHECK-NEXT:   |                 File |   |
90 CHECK-NEXT:   |----------------------+---|
91 CHECK-NEXT:   |          Stream Size |
92 CHECK-NEXT:   |----------------------+---|
93 CHECK-NEXT:   |                  Age | I |
94 CHECK-NEXT:   |----------------------+---|
95 CHECK-NEXT:   |                 Guid | D |
96 CHECK-NEXT:   |----------------------+---|
97 CHECK-NEXT:   |            Signature | D |
98 CHECK-NEXT:   |----------------------+---|
99 CHECK-NEXT:   |              Version | I |
100 CHECK-NEXT:   |----------------------+---|
101 CHECK-NEXT:   |       Features (set) | I |
102 CHECK-NEXT:   |----------------------+---|
103 CHECK-NEXT:   |              Feature | I |
104 CHECK-NEXT:   |----------------------+---|
105 CHECK-NEXT:   |    Named Stream Size |
106 CHECK-NEXT:   |----------------------+---|
107 CHECK-NEXT:   |  Named Streams (map) | {{[EI]}} |
108 CHECK-NEXT:   |----------------------+---|
109 CHECK-NEXT:   |               /names | {{[EI]}} |
110 CHECK-NEXT:   |----------------------+---|
111 CHECK-NEXT:   |            /LinkInfo | {{[EI]}} |
112 CHECK-NEXT:   |----------------------+---|
113 CHECK-NEXT:   ----------------------------------------------
114 CHECK-NEXT:   |                 DBI Stream                 |
115 CHECK-NEXT:   |----------------------------------------+---|
116 CHECK-NEXT:   |                                   File |   |
117 CHECK-NEXT:   |----------------------------------------+---|
118 CHECK-NEXT:   |                            Dbi Version | I |
119 CHECK-NEXT:   |----------------------------------------+---|
120 CHECK-NEXT:   |                                    Age | I |
121 CHECK-NEXT:   |----------------------------------------+---|
122 CHECK-NEXT:   |                                Machine | I |
123 CHECK-NEXT:   |----------------------------------------+---|
124 CHECK-NEXT:   |                                  Flags | D |
125 CHECK-NEXT:   |----------------------------------------+---|
126 CHECK-NEXT:   |                            Build Major | D |
127 CHECK-NEXT:   |----------------------------------------+---|
128 CHECK-NEXT:   |                            Build Minor | D |
129 CHECK-NEXT:   |----------------------------------------+---|
130 CHECK-NEXT:   |                           Build Number | D |
131 CHECK-NEXT:   |----------------------------------------+---|
132 CHECK-NEXT:   |                        PDB DLL Version | D |
133 CHECK-NEXT:   |----------------------------------------+---|
134 CHECK-NEXT:   |                           PDB DLL RBLD | I |
135 CHECK-NEXT:   |----------------------------------------+---|
136 CHECK-NEXT:   |                              DBG (FPO) | I |
137 CHECK-NEXT:   |----------------------------------------+---|
138 CHECK-NEXT:   |                        DBG (Exception) | I |
139 CHECK-NEXT:   |----------------------------------------+---|
140 CHECK-NEXT:   |                            DBG (Fixup) | I |
141 CHECK-NEXT:   |----------------------------------------+---|
142 CHECK-NEXT:   |                        DBG (OmapToSrc) | I |
143 CHECK-NEXT:   |----------------------------------------+---|
144 CHECK-NEXT:   |                      DBG (OmapFromSrc) | I |
145 CHECK-NEXT:   |----------------------------------------+---|
146 CHECK-NEXT:   |                       DBG (SectionHdr) | {{[EI]}} |
147 CHECK-NEXT:   |----------------------------------------+---|
148 CHECK-NEXT:   |                      DBG (TokenRidMap) | I |
149 CHECK-NEXT:   |----------------------------------------+---|
150 CHECK-NEXT:   |                            DBG (Xdata) | I |
151 CHECK-NEXT:   |----------------------------------------+---|
152 CHECK-NEXT:   |                            DBG (Pdata) | I |
153 CHECK-NEXT:   |----------------------------------------+---|
154 CHECK-NEXT:   |                           DBG (NewFPO) | {{[EI]}} |
155 CHECK-NEXT:   |----------------------------------------+---|
156 CHECK-NEXT:   |                   DBG (SectionHdrOrig) | I |
157 CHECK-NEXT:   |----------------------------------------+---|
158 CHECK-NEXT:   |                         Globals Stream | {{[EI]}} |
159 CHECK-NEXT:   |----------------------------------------+---|
160 CHECK-NEXT:   |                         Publics Stream | {{[EI]}} |
161 CHECK-NEXT:   |----------------------------------------+---|
162 CHECK-NEXT:   |                         Symbol Records | {{[EI]}} |
163 CHECK-NEXT:   |----------------------------------------+---|
164 CHECK-NEXT:   |                             Has CTypes | I |
165 CHECK-NEXT:   |----------------------------------------+---|
166 CHECK-NEXT:   |                Is Incrementally Linked | D |
167 CHECK-NEXT:   |----------------------------------------+---|
168 CHECK-NEXT:   |                            Is Stripped | I |
169 CHECK-NEXT:   |----------------------------------------+---|
170 CHECK-NEXT:   |                           Module Count | I |
171 CHECK-NEXT:   |----------------------------------------+---|
172 CHECK-NEXT:   |                      Source File Count | I |
173 CHECK-NEXT:   |----------------------------------------+---|
174 CHECK-NEXT:   | Module "Inputs\pdb-diff.obj" |
175 CHECK-NEXT:   |----------------------------------------+---|
176 CHECK-NEXT:   |                                 - Modi | I |
177 CHECK-NEXT:   |----------------------------------------+---|
178 CHECK-NEXT:   |                        - Obj File Name | {{[EI]}} |
179 CHECK-NEXT:   |----------------------------------------+---|
180 CHECK-NEXT:   |                         - Debug Stream | {{[EI]}} |
181 CHECK-NEXT:   |----------------------------------------+---|
182 CHECK-NEXT:   |                        - C11 Byte Size | I |
183 CHECK-NEXT:   |----------------------------------------+---|
184 CHECK-NEXT:   |                        - C13 Byte Size | I |
185 CHECK-NEXT:   |----------------------------------------+---|
186 CHECK-NEXT:   |                           - # of files | I |
187 CHECK-NEXT:   |----------------------------------------+---|
188 CHECK-NEXT:   |                  - Pdb File Path Index | I |
189 CHECK-NEXT:   |----------------------------------------+---|
190 CHECK-NEXT:   |               - Source File Name Index | I |
191 CHECK-NEXT:   |----------------------------------------+---|
192 CHECK-NEXT:   |                     - Symbol Byte Size |
193 CHECK-NEXT:   |----------------------------------------+---|
194 CHECK-NEXT:   |            Module "* Linker *"             |
195 CHECK-NEXT:   |----------------------------------------+---|
196 CHECK-NEXT:   |                                 - Modi | I |
197 CHECK-NEXT:   |----------------------------------------+---|
198 CHECK-NEXT:   |                        - Obj File Name | I |
199 CHECK-NEXT:   |----------------------------------------+---|
200 CHECK-NEXT:   |                         - Debug Stream | {{[EI]}} |
201 CHECK-NEXT:   |----------------------------------------+---|
202 CHECK-NEXT:   |                        - C11 Byte Size | I |
203 CHECK-NEXT:   |----------------------------------------+---|
204 CHECK-NEXT:   |                        - C13 Byte Size | I |
205 CHECK-NEXT:   |----------------------------------------+---|
206 CHECK-NEXT:   |                           - # of files | I |
207 CHECK-NEXT:   |----------------------------------------+---|
208 CHECK-NEXT:   |                  - Pdb File Path Index | {{[EI]}} |
209 CHECK-NEXT:   |----------------------------------------+---|
210 CHECK-NEXT:   |               - Source File Name Index | {{[EI]}} |
211 CHECK-NEXT:   |----------------------------------------+---|
212 CHECK-NEXT:   |                     - Symbol Byte Size |
213 CHECK-NEXT:   |----------------------------------------+---|
214
215