1 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2 // -*- Mode: C++ -*-
3 //
4 // Copyright (C) 2013-2022 Red Hat, Inc.
5 //
6 // Author: Dodji Seketeli
7
8 /// @file
9 ///
10 /// This test harness program runs a diff between input ELF files
11 /// containing DWARF debugging information, exercising the
12 /// suppressions features of the "bidiff" command line program.
13 ///
14 /// So it runs the diff diff between the two input files, using a
15 /// suppression file and compares the resulting diff with a reference
16 /// one.
17
18 #include <sys/wait.h>
19 #include <cstdlib>
20 #include <cstring>
21 #include <fstream>
22 #include <iostream>
23 #include <memory>
24 #include <string>
25 #include <unordered_set>
26 #include "abg-tools-utils.h"
27 #include "abg-workers.h"
28 #include "test-utils.h"
29
30 using abigail::tests::get_src_dir;
31 using abigail::tests::get_build_dir;
32
33 /// This is an aggregate that specifies where a test shall get its
34 /// input from and where it shall write its ouput to.
35 struct InOutSpec
36 {
37 const char* in_elfv0_path;
38 const char* in_elfv1_path;
39 const char* headers_dir1;
40 const char* headers_dir2;
41 const char* in_suppr_path;
42 const char* abidiff_options;
43 const char* in_report_path;
44 const char* out_report_path;
45 }; // end struct InOutSpec;
46
47 InOutSpec in_out_specs[] =
48 {
49 {
50 "data/test-diff-suppr/test0-type-suppr-v0.o",
51 "data/test-diff-suppr/test0-type-suppr-v1.o",
52 NULL,
53 NULL,
54 NULL,
55 "--no-default-suppression --no-show-locs --no-redundant",
56 "data/test-diff-suppr/test0-type-suppr-report-0.txt",
57 "output/test-diff-suppr/test0-type-suppr-report-0.txt",
58 },
59 {
60 "data/test-diff-suppr/test0-type-suppr-v0.o",
61 "data/test-diff-suppr/test0-type-suppr-v1.o",
62 "",
63 "",
64 "data/test-diff-suppr/test0-type-suppr-0.suppr",
65 "--no-default-suppression --no-show-locs --no-redundant",
66 "data/test-diff-suppr/test0-type-suppr-report-1.txt",
67 "output/test-diff-suppr/test0-type-suppr-report-1.txt",
68 },
69 {
70 "data/test-diff-suppr/test0-type-suppr-v0.o",
71 "data/test-diff-suppr/test0-type-suppr-v1.o",
72 "",
73 "",
74 "data/test-diff-suppr/test0-type-suppr-1.suppr",
75 "--no-default-suppression --no-show-locs --no-redundant",
76 "data/test-diff-suppr/test0-type-suppr-report-2.txt",
77 "output/test-diff-suppr/test0-type-suppr-report-2.txt",
78 },
79 {
80 "data/test-diff-suppr/test0-type-suppr-v0.o",
81 "data/test-diff-suppr/test0-type-suppr-v1.o",
82 "",
83 "",
84 "data/test-diff-suppr/test0-type-suppr-2.suppr",
85 "--no-default-suppression --no-show-locs --no-redundant",
86 "data/test-diff-suppr/test0-type-suppr-report-3.txt",
87 "output/test-diff-suppr/test0-type-suppr-report-3.txt",
88 },
89 {
90 "data/test-diff-suppr/test0-type-suppr-v0.o",
91 "data/test-diff-suppr/test0-type-suppr-v1.o",
92 "",
93 "",
94 "data/test-diff-suppr/test0-type-suppr-3.suppr",
95 "--no-default-suppression --no-show-locs --no-redundant",
96 "data/test-diff-suppr/test0-type-suppr-report-4.txt",
97 "output/test-diff-suppr/test0-type-suppr-report-4.txt",
98 },
99 {
100 "data/test-diff-suppr/test0-type-suppr-v0.o",
101 "data/test-diff-suppr/test0-type-suppr-v1.o",
102 "",
103 "",
104 "data/test-diff-suppr/test0-type-suppr-4.suppr",
105 "--no-default-suppression --no-show-locs --no-redundant",
106 "data/test-diff-suppr/test0-type-suppr-report-5.txt",
107 "output/test-diff-suppr/test0-type-suppr-report-5.txt",
108 },
109 {
110 "data/test-diff-suppr/test0-type-suppr-v0.o",
111 "data/test-diff-suppr/test0-type-suppr-v1.o",
112 "",
113 "",
114 "data/test-diff-suppr/test0-type-suppr-5.suppr",
115 "--no-default-suppression --no-show-locs --no-redundant",
116 "data/test-diff-suppr/test0-type-suppr-report-6.txt",
117 "output/test-diff-suppr/test0-type-suppr-report-6.txt",
118 },
119 {
120 "data/test-diff-suppr/test0-type-suppr-v0.o",
121 "data/test-diff-suppr/test0-type-suppr-v1.o",
122 "",
123 "",
124 "data/test-diff-suppr/test0-type-suppr-6.suppr",
125 "--no-default-suppression --no-show-locs --no-redundant",
126 "data/test-diff-suppr/test0-type-suppr-report-7.txt",
127 "output/test-diff-suppr/test0-type-suppr-report-7.txt",
128 },
129 {
130 "data/test-diff-suppr/test1-typedef-suppr-v0.o",
131 "data/test-diff-suppr/test1-typedef-suppr-v1.o",
132 "",
133 "",
134 "",
135 "--no-default-suppression --no-show-locs --no-redundant",
136 "data/test-diff-suppr/test1-typedef-suppr-report-0.txt",
137 "output/test-diff-suppr/test1-typedef-suppr-report-0.txt",
138 },
139 {
140 "data/test-diff-suppr/test1-typedef-suppr-v0.o",
141 "data/test-diff-suppr/test1-typedef-suppr-v1.o",
142 "",
143 "",
144 "data/test-diff-suppr/test1-typedef-suppr-0.suppr",
145 "--no-default-suppression --no-show-locs --no-redundant",
146 "data/test-diff-suppr/test1-typedef-suppr-report-1.txt",
147 "output/test-diff-suppr/test1-typedef-suppr-report-1.txt",
148 },
149 {
150 "data/test-diff-suppr/test1-typedef-suppr-v0.o",
151 "data/test-diff-suppr/test1-typedef-suppr-v1.o",
152 "",
153 "",
154 "data/test-diff-suppr/test1-typedef-suppr-1.suppr",
155 "--no-default-suppression --no-show-locs --no-redundant",
156 "data/test-diff-suppr/test1-typedef-suppr-report-2.txt",
157 "output/test-diff-suppr/test1-typedef-suppr-report-2.txt",
158 },
159 {
160 "data/test-diff-suppr/test2-struct-suppr-v0.o",
161 "data/test-diff-suppr/test2-struct-suppr-v1.o",
162 "",
163 "",
164 "data/test-diff-suppr/test2-struct-suppr-0.suppr",
165 "--no-default-suppression --no-show-locs --no-redundant",
166 "data/test-diff-suppr/test2-struct-suppr-report-0.txt",
167 "output/test-diff-suppr/test2-struct-suppr-report-0.txt",
168 },
169 {
170 "data/test-diff-suppr/test2-struct-suppr-v0.o",
171 "data/test-diff-suppr/test2-struct-suppr-v1.o",
172 "",
173 "",
174 "data/test-diff-suppr/test2-struct-suppr-1.suppr",
175 "--no-default-suppression --no-show-locs --no-redundant",
176 "data/test-diff-suppr/test2-struct-suppr-report-1.txt",
177 "output/test-diff-suppr/test2-struct-suppr-report-1.txt",
178 },
179 {
180 "data/test-diff-suppr/test3-struct-suppr-v0.o",
181 "data/test-diff-suppr/test3-struct-suppr-v1.o",
182 "",
183 "",
184 NULL,
185 "--no-default-suppression --no-show-locs --no-redundant",
186 "data/test-diff-suppr/test3-struct-suppr-report-0.txt",
187 "output/test-diff-suppr/test3-struct-suppr-report-0.txt",
188 },
189 {
190 "data/test-diff-suppr/test3-struct-suppr-v0.o",
191 "data/test-diff-suppr/test3-struct-suppr-v1.o",
192 "",
193 "",
194 "data/test-diff-suppr/test3-struct-suppr-0.suppr",
195 "--no-default-suppression --no-show-locs --no-redundant",
196 "data/test-diff-suppr/test3-struct-suppr-report-1.txt",
197 "output/test-diff-suppr/test3-struct-suppr-report-1.txt",
198 },
199 {
200 "data/test-diff-suppr/test3-struct-suppr-v0.o",
201 "data/test-diff-suppr/test3-struct-suppr-v1.o",
202 "",
203 "",
204 "data/test-diff-suppr/test3-struct-suppr-1.suppr",
205 "--no-default-suppression --no-show-locs --no-redundant",
206 "data/test-diff-suppr/test3-struct-suppr-report-2.txt",
207 "output/test-diff-suppr/test3-struct-suppr-report-2.txt",
208 },
209 {
210 "data/test-diff-suppr/libtest4-local-suppr-v0.so",
211 "data/test-diff-suppr/libtest4-local-suppr-v1.so",
212 "",
213 "",
214 "data/test-diff-suppr/test4-local-suppr-0.suppr",
215 "--no-default-suppression --no-show-locs --no-redundant",
216 "data/test-diff-suppr/test4-local-suppr-report-1.txt",
217 "output/test-diff-suppr/test4-local-suppr-report-1.txt",
218 },
219 {
220 "data/test-diff-suppr/libtest4-local-suppr-v0.so",
221 "data/test-diff-suppr/libtest4-local-suppr-v1.so",
222 "",
223 "",
224 "",
225 "--no-default-suppression --no-show-locs",
226 "data/test-diff-suppr/test4-local-suppr-report-0.txt",
227 "output/test-diff-suppr/test4-local-suppr-report-0.txt",
228 },
229 {
230 "data/test-diff-suppr/libtest5-fn-suppr-v0.so",
231 "data/test-diff-suppr/libtest5-fn-suppr-v1.so",
232 "",
233 "",
234 "",
235 "--no-default-suppression --no-show-locs --no-redundant",
236 "data/test-diff-suppr/test5-fn-suppr-report-0.txt",
237 "output/test-diff-suppr/test5-fn-suppr-report-0.txt",
238 },
239 {
240 "data/test-diff-suppr/libtest5-fn-suppr-v0.so",
241 "data/test-diff-suppr/libtest5-fn-suppr-v1.so",
242 "",
243 "",
244 "data/test-diff-suppr/test5-fn-suppr-0.suppr",
245 "--no-default-suppression --no-show-locs --no-redundant",
246 "data/test-diff-suppr/test5-fn-suppr-report-1.txt",
247 "output/test-diff-suppr/test5-fn-suppr-report-1.txt",
248 },
249 {
250 "data/test-diff-suppr/libtest5-fn-suppr-v0.so",
251 "data/test-diff-suppr/libtest5-fn-suppr-v1.so",
252 "",
253 "",
254 "data/test-diff-suppr/test5-fn-suppr-1.suppr",
255 "--no-default-suppression --no-show-locs --no-redundant",
256 "data/test-diff-suppr/test5-fn-suppr-report-2.txt",
257 "output/test-diff-suppr/test5-fn-suppr-report-2.txt",
258 },
259 {
260 "data/test-diff-suppr/libtest5-fn-suppr-v0.so",
261 "data/test-diff-suppr/libtest5-fn-suppr-v1.so",
262 "",
263 "",
264 "data/test-diff-suppr/test5-fn-suppr-2.suppr",
265 "--no-default-suppression --no-show-locs --no-redundant",
266 "data/test-diff-suppr/test5-fn-suppr-report-3.txt",
267 "output/test-diff-suppr/test5-fn-suppr-report-3.txt",
268 },
269 {
270 "data/test-diff-suppr/libtest5-fn-suppr-v0.so",
271 "data/test-diff-suppr/libtest5-fn-suppr-v1.so",
272 "",
273 "",
274 "data/test-diff-suppr/test5-fn-suppr-3.suppr",
275 "--no-default-suppression --no-show-locs --no-redundant",
276 "data/test-diff-suppr/test5-fn-suppr-report-4.txt",
277 "output/test-diff-suppr/test5-fn-suppr-report-4.txt",
278 },
279 {
280 "data/test-diff-suppr/libtest5-fn-suppr-v0.so",
281 "data/test-diff-suppr/libtest5-fn-suppr-v1.so",
282 "",
283 "",
284 "data/test-diff-suppr/test5-fn-suppr-4.suppr",
285 "--no-default-suppression --no-show-locs --no-redundant",
286 "data/test-diff-suppr/test5-fn-suppr-report-5.txt",
287 "output/test-diff-suppr/test5-fn-suppr-report-5.txt",
288 },
289 {
290 "data/test-diff-suppr/libtest6-fn-suppr-v0.so",
291 "data/test-diff-suppr/libtest6-fn-suppr-v1.so",
292 "",
293 "",
294 "",
295 "--no-default-suppression --no-show-locs --no-redundant",
296 "data/test-diff-suppr/test6-fn-suppr-report-0.txt",
297 "output/test-diff-suppr/test6-fn-suppr-report-0.txt",
298 },
299 { // Just like the previous test, but loc info is emitted.
300 "data/test-diff-suppr/libtest6-fn-suppr-v0.so",
301 "data/test-diff-suppr/libtest6-fn-suppr-v1.so",
302 "",
303 "",
304 "",
305 "--no-default-suppression --no-redundant",
306 "data/test-diff-suppr/test6-fn-suppr-report-0-1.txt",
307 "output/test-diff-suppr/test6-fn-suppr-report-0-1.txt",
308 },
309 {
310 "data/test-diff-suppr/libtest6-fn-suppr-v0.so",
311 "data/test-diff-suppr/libtest6-fn-suppr-v1.so",
312 "",
313 "",
314 "data/test-diff-suppr/test6-fn-suppr-0.suppr",
315 "--no-default-suppression --no-show-locs --no-redundant",
316 "data/test-diff-suppr/test6-fn-suppr-report-1.txt",
317 "output/test-diff-suppr/test6-fn-suppr-report-1.txt",
318 },
319 {
320 "data/test-diff-suppr/libtest6-fn-suppr-v0.so",
321 "data/test-diff-suppr/libtest6-fn-suppr-v1.so",
322 "",
323 "",
324 "data/test-diff-suppr/test6-fn-suppr-1.suppr",
325 "--no-default-suppression --no-show-locs --no-redundant",
326 "data/test-diff-suppr/test6-fn-suppr-report-2.txt",
327 "output/test-diff-suppr/test6-fn-suppr-report-2.txt",
328 },
329 {
330 "data/test-diff-suppr/libtest6-fn-suppr-v0.so",
331 "data/test-diff-suppr/libtest6-fn-suppr-v1.so",
332 "",
333 "",
334 "data/test-diff-suppr/test6-fn-suppr-2.suppr",
335 "--no-default-suppression --no-show-locs --no-redundant",
336 "data/test-diff-suppr/test6-fn-suppr-report-3.txt",
337 "output/test-diff-suppr/test6-fn-suppr-report-3.txt",
338 },
339 {
340 "data/test-diff-suppr/libtest6-fn-suppr-v0.so",
341 "data/test-diff-suppr/libtest6-fn-suppr-v1.so",
342 "",
343 "",
344 "data/test-diff-suppr/test6-fn-suppr-3.suppr",
345 "--no-default-suppression --no-show-locs --no-redundant",
346 "data/test-diff-suppr/test6-fn-suppr-report-4.txt",
347 "output/test-diff-suppr/test6-fn-suppr-report-4.txt",
348 },
349 {
350 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
351 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
352 "",
353 "",
354 "",
355 "--no-default-suppression --no-show-locs --no-redundant",
356 "data/test-diff-suppr/test7-var-suppr-report-0.txt",
357 "output/test-diff-suppr/test7-var-suppr-report-0.txt"
358 },
359 {
360 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
361 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
362 "",
363 "",
364 "data/test-diff-suppr/test7-var-suppr-1.suppr",
365 "--no-default-suppression --no-show-locs --no-redundant",
366 "data/test-diff-suppr/test7-var-suppr-report-1.txt",
367 "output/test-diff-suppr/test7-var-suppr-report-1.txt"
368 },
369 {
370 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
371 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
372 "",
373 "",
374 "data/test-diff-suppr/test7-var-suppr-2.suppr",
375 "--no-default-suppression --no-show-locs --no-redundant",
376 "data/test-diff-suppr/test7-var-suppr-report-2.txt",
377 "output/test-diff-suppr/test7-var-suppr-report-2.txt"
378 },
379 {
380 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
381 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
382 "",
383 "",
384 "data/test-diff-suppr/test7-var-suppr-3.suppr",
385 "--no-default-suppression --no-show-locs --no-redundant",
386 "data/test-diff-suppr/test7-var-suppr-report-3.txt",
387 "output/test-diff-suppr/test7-var-suppr-report-3.txt"
388 },
389 {
390 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
391 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
392 "",
393 "",
394 "data/test-diff-suppr/test7-var-suppr-4.suppr",
395 "--no-default-suppression --no-show-locs --no-redundant",
396 "data/test-diff-suppr/test7-var-suppr-report-4.txt",
397 "output/test-diff-suppr/test7-var-suppr-report-4.txt"
398 },
399 {
400 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
401 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
402 "",
403 "",
404 "data/test-diff-suppr/test7-var-suppr-5.suppr",
405 "--no-default-suppression --no-show-locs --no-redundant",
406 "data/test-diff-suppr/test7-var-suppr-report-5.txt",
407 "output/test-diff-suppr/test7-var-suppr-report-5.txt"
408 },
409 {
410 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
411 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
412 "",
413 "",
414 "data/test-diff-suppr/test7-var-suppr-6.suppr",
415 "--no-default-suppression --no-show-locs --no-redundant",
416 "data/test-diff-suppr/test7-var-suppr-report-6.txt",
417 "output/test-diff-suppr/test7-var-suppr-report-6.txt"
418 },
419 {
420 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
421 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
422 "",
423 "",
424 "data/test-diff-suppr/test7-var-suppr-7.suppr",
425 "--no-default-suppression --no-show-locs --no-redundant",
426 "data/test-diff-suppr/test7-var-suppr-report-7.txt",
427 "output/test-diff-suppr/test7-var-suppr-report-7.txt"
428 },
429 {
430 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
431 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
432 "",
433 "",
434 "data/test-diff-suppr/test7-var-suppr-8.suppr",
435 "--no-default-suppression --no-show-locs --no-redundant",
436 "data/test-diff-suppr/test7-var-suppr-report-8.txt",
437 "output/test-diff-suppr/test7-var-suppr-report-8.txt"
438 },
439 {
440 "data/test-diff-suppr/libtest7-var-suppr-v0.so",
441 "data/test-diff-suppr/libtest7-var-suppr-v1.so",
442 "",
443 "",
444 "data/test-diff-suppr/test7-var-suppr-9.suppr",
445 "--no-default-suppression --no-show-locs --no-redundant",
446 "data/test-diff-suppr/test7-var-suppr-report-9.txt",
447 "output/test-diff-suppr/test7-var-suppr-report-9.txt"
448 },
449 {
450 "data/test-diff-suppr/libtest8-redundant-fn-v0.so",
451 "data/test-diff-suppr/libtest8-redundant-fn-v1.so",
452 "",
453 "",
454 "",
455 "--no-default-suppression --no-show-locs --no-redundant",
456 "data/test-diff-suppr/test8-redundant-fn-report-0.txt",
457 "output/test-diff-suppr/test8-redundant-fn-report-0.txt"
458 },
459 {
460 "data/test-diff-suppr/libtest8-redundant-fn-v0.so",
461 "data/test-diff-suppr/libtest8-redundant-fn-v1.so",
462 "",
463 "",
464 "",
465 "--no-default-suppression --no-show-locs --redundant",
466 "data/test-diff-suppr/test8-redundant-fn-report-1.txt",
467 "output/test-diff-suppr/test8-redundant-fn-report-1.txt"
468 },
469 {
470 "data/test-diff-suppr/libtest9-changed-parm-c-v0.so",
471 "data/test-diff-suppr/libtest9-changed-parm-c-v1.so",
472 "",
473 "",
474 "",
475 "--no-default-suppression --no-show-locs --no-redundant",
476 "data/test-diff-suppr/test9-changed-parm-c-report-0.txt",
477 "output/test-diff-suppr/est9-changed-parm-c-report-0.txt"
478 },
479 {
480 "data/test-diff-suppr/libtest9-changed-parm-c-v0.so",
481 "data/test-diff-suppr/libtest9-changed-parm-c-v1.so",
482 "",
483 "",
484 "",
485 "--no-default-suppression --no-show-locs --redundant",
486 "data/test-diff-suppr/test9-changed-parm-c-report-1.txt",
487 "output/test-diff-suppr/est9-changed-parm-c-report-1.txt"
488 },
489 {
490 "data/test-diff-suppr/libtest10-changed-parm-c-v0.so",
491 "data/test-diff-suppr/libtest10-changed-parm-c-v1.so",
492 "",
493 "",
494 "",
495 "--no-default-suppression --no-show-locs --no-redundant",
496 "data/test-diff-suppr/test10-changed-parm-c-report-0.txt",
497 "output/test-diff-suppr/test10-changed-parm-c-report-0.txt"
498 },
499 {
500 "data/test-diff-suppr/libtest11-add-data-member-v0.so",
501 "data/test-diff-suppr/libtest11-add-data-member-v1.so",
502 "",
503 "",
504 "",
505 "--no-default-suppression --no-show-locs --no-redundant",
506 "data/test-diff-suppr/test11-add-data-member-report-0.txt",
507 "output/test-diff-suppr/test11-add-data-member-report-0.txt"
508 },
509 {
510 "data/test-diff-suppr/libtest11-add-data-member-v0.so",
511 "data/test-diff-suppr/libtest11-add-data-member-v1.so",
512 "",
513 "",
514 "data/test-diff-suppr/test11-add-data-member-0.suppr",
515 "--no-default-suppression --no-show-locs --no-redundant",
516 "data/test-diff-suppr/test11-add-data-member-report-1.txt",
517 "output/test-diff-suppr/test11-add-data-member-report-1_0.txt"
518 },
519 {
520 "data/test-diff-suppr/libtest11-add-data-member-v0.so",
521 "data/test-diff-suppr/libtest11-add-data-member-v1.so",
522 "",
523 "",
524 "data/test-diff-suppr/test11-add-data-member-1.suppr",
525 "--no-default-suppression --no-show-locs --no-redundant",
526 "data/test-diff-suppr/test11-add-data-member-report-1.txt",
527 "output/test-diff-suppr/test11-add-data-member-report-1_1.txt"
528 },
529 {
530 "data/test-diff-suppr/libtest11-add-data-member-v0.so",
531 "data/test-diff-suppr/libtest11-add-data-member-v1.so",
532 "",
533 "",
534 "data/test-diff-suppr/test11-add-data-member-2.suppr",
535 "--no-default-suppression --no-show-locs --no-redundant",
536 "data/test-diff-suppr/test11-add-data-member-report-1.txt",
537 "output/test-diff-suppr/test11-add-data-member-report-1_2.txt"
538 },
539 {
540 "data/test-diff-suppr/libtest11-add-data-member-v0.so",
541 "data/test-diff-suppr/libtest11-add-data-member-v1.so",
542 "",
543 "",
544 "data/test-diff-suppr/test11-add-data-member-3.suppr",
545 "--no-default-suppression --no-show-locs --no-redundant",
546 "data/test-diff-suppr/test11-add-data-member-report-1.txt",
547 "output/test-diff-suppr/test11-add-data-member-report-1_3.txt"
548 },
549 {
550 "data/test-diff-suppr/libtest11-add-data-member-v0.so",
551 "data/test-diff-suppr/libtest11-add-data-member-v1.so",
552 "",
553 "",
554 "data/test-diff-suppr/test11-add-data-member-4.suppr",
555 "--no-default-suppression --no-show-locs --no-redundant",
556 "data/test-diff-suppr/test11-add-data-member-report-1.txt",
557 "output/test-diff-suppr/test11-add-data-member-report-1_4.txt"
558 },
559 {
560 "data/test-diff-suppr/libtest12-add-data-member-v0.so",
561 "data/test-diff-suppr/libtest12-add-data-member-v1.so",
562 "",
563 "",
564 "",
565 "--no-default-suppression --no-show-locs --no-redundant",
566 "data/test-diff-suppr/test12-add-data-member-report-0.txt",
567 "output/test-diff-suppr/test12-add-data-member-report-0.txt"
568 },
569 {
570 "data/test-diff-suppr/libtest12-add-data-member-v0.so",
571 "data/test-diff-suppr/libtest12-add-data-member-v1.so",
572 "",
573 "",
574 "data/test-diff-suppr/test12-add-data-member-0.suppr",
575 "--no-default-suppression --no-show-locs --no-redundant",
576 "data/test-diff-suppr/test12-add-data-member-report-1.txt",
577 "output/test-diff-suppr/test12-add-data-member-report-1.txt"
578 },
579 {
580 "data/test-diff-suppr/libtest12-add-data-member-v0.so",
581 "data/test-diff-suppr/libtest12-add-data-member-v1.so",
582 "",
583 "",
584 "data/test-diff-suppr/test12-add-data-member-1.suppr",
585 "--no-default-suppression --no-show-locs --no-redundant",
586 "data/test-diff-suppr/test12-add-data-member-report-2.txt",
587 "output/test-diff-suppr/test12-add-data-member-report-2.txt"
588 },
589 {
590 "data/test-diff-suppr/libtest13-suppr-through-pointer-v0.so",
591 "data/test-diff-suppr/libtest13-suppr-through-pointer-v1.so",
592 "",
593 "",
594 "",
595 "--no-default-suppression --no-show-locs --no-redundant",
596 "data/test-diff-suppr/test13-suppr-through-pointer-report-0.txt",
597 "output/test-diff-suppr/test13-suppr-through-pointer-report-0.txt"
598 },
599 {
600 "data/test-diff-suppr/libtest13-suppr-through-pointer-v0.so",
601 "data/test-diff-suppr/libtest13-suppr-through-pointer-v1.so",
602 "",
603 "",
604 "data/test-diff-suppr/test13-suppr-through-pointer-0.suppr",
605 "--no-default-suppression --no-show-locs --no-redundant",
606 "data/test-diff-suppr/test13-suppr-through-pointer-report-1.txt",
607 "output/test-diff-suppr/test13-suppr-through-pointer-report-1.txt"
608 },
609 {
610 "data/test-diff-suppr/test14-suppr-non-redundant-v0.o",
611 "data/test-diff-suppr/test14-suppr-non-redundant-v1.o",
612 "",
613 "",
614 "",
615 "--no-default-suppression --no-show-locs --no-redundant",
616 "data/test-diff-suppr/test14-suppr-non-redundant-report-0.txt",
617 "output/test-diff-suppr/test14-suppr-non-redundant-report-0.txt"
618 },
619 {
620 "data/test-diff-suppr/test14-suppr-non-redundant-v0.o",
621 "data/test-diff-suppr/test14-suppr-non-redundant-v1.o",
622 "",
623 "",
624 "data/test-diff-suppr/test14-suppr-non-redundant-0.suppr",
625 "--no-default-suppression --no-show-locs --no-redundant",
626 "data/test-diff-suppr/test14-suppr-non-redundant-report-1.txt",
627 "output/test-diff-suppr/test14-suppr-non-redundant-report-1.txt"
628 },
629 {
630 "data/test-diff-suppr/test15-suppr-added-fn-v0.o",
631 "data/test-diff-suppr/test15-suppr-added-fn-v1.o",
632 "",
633 "",
634 "",
635 "--no-default-suppression --no-show-locs --no-redundant",
636 "data/test-diff-suppr/test15-suppr-added-fn-report-0.txt",
637 "output/test-diff-suppr/test15-suppr-added-fn-report-0.txt"
638 },
639 {
640 "data/test-diff-suppr/test15-suppr-added-fn-v0.o",
641 "data/test-diff-suppr/test15-suppr-added-fn-v1.o",
642 "",
643 "",
644 "data/test-diff-suppr/test15-suppr-added-fn-0.suppr",
645 "--no-default-suppression --no-show-locs --no-redundant",
646 "data/test-diff-suppr/test15-suppr-added-fn-report-1.txt",
647 "output/test-diff-suppr/test15-suppr-added-fn-report-1.txt"
648 },
649 {
650 "data/test-diff-suppr/test15-suppr-added-fn-v0.o",
651 "data/test-diff-suppr/test15-suppr-added-fn-v1.o",
652 "",
653 "",
654 "data/test-diff-suppr/test15-suppr-added-fn-1.suppr",
655 "--no-default-suppression --no-show-locs --no-redundant",
656 "data/test-diff-suppr/test15-suppr-added-fn-report-2.txt",
657 "output/test-diff-suppr/test15-suppr-added-fn-report-2.txt"
658 },
659 {
660 "data/test-diff-suppr/test15-suppr-added-fn-v0.o",
661 "data/test-diff-suppr/test15-suppr-added-fn-v1.o",
662 "",
663 "",
664 "data/test-diff-suppr/test15-suppr-added-fn-2.suppr",
665 "--no-default-suppression --no-show-locs --no-redundant",
666 "data/test-diff-suppr/test15-suppr-added-fn-report-3.txt",
667 "output/test-diff-suppr/test15-suppr-added-fn-report-3.txt"
668 },
669 {
670 "data/test-diff-suppr/test15-suppr-added-fn-v0.o",
671 "data/test-diff-suppr/test15-suppr-added-fn-v1.o",
672 "",
673 "",
674 "data/test-diff-suppr/test15-suppr-added-fn-3.suppr",
675 "--no-default-suppression --no-show-locs --no-redundant",
676 "data/test-diff-suppr/test15-suppr-added-fn-report-4.txt",
677 "output/test-diff-suppr/test15-suppr-added-fn-report-4.txt"
678 },
679 {
680 "data/test-diff-suppr/test15-suppr-added-fn-v0.o",
681 "data/test-diff-suppr/test15-suppr-added-fn-v1.o",
682 "",
683 "",
684 "data/test-diff-suppr/test15-suppr-added-fn-4.suppr",
685 "--no-default-suppression --no-show-locs --no-redundant",
686 "data/test-diff-suppr/test15-suppr-added-fn-report-5.txt",
687 "output/test-diff-suppr/test15-suppr-added-fn-report-5.txt"
688 },
689 {
690 "data/test-diff-suppr/test16-suppr-removed-fn-v0.o",
691 "data/test-diff-suppr/test16-suppr-removed-fn-v1.o",
692 "",
693 "",
694 "",
695 "--no-default-suppression --no-show-locs --no-redundant",
696 "data/test-diff-suppr/test16-suppr-removed-fn-report-0.txt",
697 "output/test-diff-suppr/test16-suppr-removed-fn-report-0.txt"
698 },
699 {
700 "data/test-diff-suppr/test16-suppr-removed-fn-v0.o",
701 "data/test-diff-suppr/test16-suppr-removed-fn-v1.o",
702 "",
703 "",
704 "data/test-diff-suppr/test16-suppr-removed-fn-0.suppr",
705 "--no-default-suppression --no-show-locs --no-redundant",
706 "data/test-diff-suppr/test16-suppr-removed-fn-report-1.txt",
707 "output/test-diff-suppr/test16-suppr-removed-fn-report-1.txt"
708 },
709 {
710 "data/test-diff-suppr/test16-suppr-removed-fn-v0.o",
711 "data/test-diff-suppr/test16-suppr-removed-fn-v1.o",
712 "",
713 "",
714 "data/test-diff-suppr/test16-suppr-removed-fn-1.suppr",
715 "--no-default-suppression --no-show-locs --no-redundant",
716 "data/test-diff-suppr/test16-suppr-removed-fn-report-2.txt",
717 "output/test-diff-suppr/test16-suppr-removed-fn-report-2.txt"
718 },
719 {
720 "data/test-diff-suppr/test16-suppr-removed-fn-v0.o",
721 "data/test-diff-suppr/test16-suppr-removed-fn-v1.o",
722 "",
723 "",
724 "data/test-diff-suppr/test16-suppr-removed-fn-2.suppr",
725 "--no-default-suppression --no-show-locs --no-redundant",
726 "data/test-diff-suppr/test16-suppr-removed-fn-report-3.txt",
727 "output/test-diff-suppr/test16-suppr-removed-fn-report-3.txt"
728 },
729 {
730 "data/test-diff-suppr/test16-suppr-removed-fn-v0.o",
731 "data/test-diff-suppr/test16-suppr-removed-fn-v1.o",
732 "",
733 "",
734 "data/test-diff-suppr/test16-suppr-removed-fn-3.suppr",
735 "--no-default-suppression --no-show-locs --no-redundant",
736 "data/test-diff-suppr/test16-suppr-removed-fn-report-4.txt",
737 "output/test-diff-suppr/test16-suppr-removed-fn-report-4.txt"
738 },
739 {
740 "data/test-diff-suppr/test16-suppr-removed-fn-v0.o",
741 "data/test-diff-suppr/test16-suppr-removed-fn-v1.o",
742 "",
743 "",
744 "data/test-diff-suppr/test16-suppr-removed-fn-4.suppr",
745 "--no-default-suppression --no-show-locs --no-redundant",
746 "data/test-diff-suppr/test16-suppr-removed-fn-report-5.txt",
747 "output/test-diff-suppr/test16-suppr-removed-fn-report-5.txt"
748 },
749 {
750 "data/test-diff-suppr/test17-suppr-added-var-v0.o",
751 "data/test-diff-suppr/test17-suppr-added-var-v1.o",
752 "",
753 "",
754 "",
755 "--no-default-suppression --no-show-locs --no-redundant",
756 "data/test-diff-suppr/test17-suppr-added-var-report-0.txt",
757 "output/test-diff-suppr/test17-suppr-added-var-report-0.txt"
758 },
759 {
760 "data/test-diff-suppr/test17-suppr-added-var-v0.o",
761 "data/test-diff-suppr/test17-suppr-added-var-v1.o",
762 "",
763 "",
764 "data/test-diff-suppr/test17-suppr-added-var-0.suppr",
765 "--no-default-suppression --no-show-locs --no-redundant",
766 "data/test-diff-suppr/test17-suppr-added-var-report-1.txt",
767 "output/test-diff-suppr/test17-suppr-added-var-report-1.txt"
768 },
769 {
770 "data/test-diff-suppr/test17-suppr-added-var-v0.o",
771 "data/test-diff-suppr/test17-suppr-added-var-v1.o",
772 "",
773 "",
774 "data/test-diff-suppr/test17-suppr-added-var-1.suppr",
775 "--no-default-suppression --no-show-locs --no-redundant",
776 "data/test-diff-suppr/test17-suppr-added-var-report-2.txt",
777 "output/test-diff-suppr/test17-suppr-added-var-report-2.txt"
778 },
779 {
780 "data/test-diff-suppr/test17-suppr-added-var-v0.o",
781 "data/test-diff-suppr/test17-suppr-added-var-v1.o",
782 "",
783 "",
784 "data/test-diff-suppr/test17-suppr-added-var-2.suppr",
785 "--no-default-suppression --no-show-locs --no-redundant",
786 "data/test-diff-suppr/test17-suppr-added-var-report-3.txt",
787 "output/test-diff-suppr/test17-suppr-added-var-report-3.txt"
788 },
789 {
790 "data/test-diff-suppr/test17-suppr-added-var-v0.o",
791 "data/test-diff-suppr/test17-suppr-added-var-v1.o",
792 "",
793 "",
794 "data/test-diff-suppr/test17-suppr-added-var-3.suppr",
795 "--no-default-suppression --no-show-locs --no-redundant",
796 "data/test-diff-suppr/test17-suppr-added-var-report-4.txt",
797 "output/test-diff-suppr/test17-suppr-added-var-report-4.txt"
798 },
799 {
800 "data/test-diff-suppr/test17-suppr-added-var-v0.o",
801 "data/test-diff-suppr/test17-suppr-added-var-v1.o",
802 "",
803 "",
804 "data/test-diff-suppr/test17-suppr-added-var-4.suppr",
805 "--no-default-suppression --no-show-locs --no-redundant",
806 "data/test-diff-suppr/test17-suppr-added-var-report-5.txt",
807 "output/test-diff-suppr/test17-suppr-added-var-report-5.txt"
808 },
809 {
810 "data/test-diff-suppr/test18-suppr-removed-var-v0.o",
811 "data/test-diff-suppr/test18-suppr-removed-var-v1.o",
812 "",
813 "",
814 "",
815 "--no-default-suppression --no-show-locs --no-redundant",
816 "data/test-diff-suppr/test18-suppr-removed-var-report-0.txt",
817 "output/test-diff-suppr/test18-suppr-removed-var-report-0.txt"
818 },
819 {
820 "data/test-diff-suppr/test18-suppr-removed-var-v0.o",
821 "data/test-diff-suppr/test18-suppr-removed-var-v1.o",
822 "",
823 "",
824 "data/test-diff-suppr/test18-suppr-removed-var-0.suppr",
825 "--no-default-suppression --no-show-locs --no-redundant",
826 "data/test-diff-suppr/test18-suppr-removed-var-report-1.txt",
827 "output/test-diff-suppr/test18-suppr-removed-var-report-1.txt"
828 },
829 {
830 "data/test-diff-suppr/test18-suppr-removed-var-v0.o",
831 "data/test-diff-suppr/test18-suppr-removed-var-v1.o",
832 "",
833 "",
834 "data/test-diff-suppr/test18-suppr-removed-var-1.suppr",
835 "--no-default-suppression --no-show-locs --no-redundant",
836 "data/test-diff-suppr/test18-suppr-removed-var-report-2.txt",
837 "output/test-diff-suppr/test18-suppr-removed-var-report-2.txt"
838 },
839 {
840 "data/test-diff-suppr/test18-suppr-removed-var-v0.o",
841 "data/test-diff-suppr/test18-suppr-removed-var-v1.o",
842 "",
843 "",
844 "data/test-diff-suppr/test18-suppr-removed-var-2.suppr",
845 "--no-default-suppression --no-show-locs --no-redundant",
846 "data/test-diff-suppr/test18-suppr-removed-var-report-3.txt",
847 "output/test-diff-suppr/test18-suppr-removed-var-report-3.txt"
848 },
849 {
850 "data/test-diff-suppr/test18-suppr-removed-var-v0.o",
851 "data/test-diff-suppr/test18-suppr-removed-var-v1.o",
852 "",
853 "",
854 "data/test-diff-suppr/test18-suppr-removed-var-3.suppr",
855 "--no-default-suppression --no-show-locs --no-redundant",
856 "data/test-diff-suppr/test18-suppr-removed-var-report-4.txt",
857 "output/test-diff-suppr/test18-suppr-removed-var-report-4.txt"
858 },
859 {
860 "data/test-diff-suppr/test18-suppr-removed-var-v0.o",
861 "data/test-diff-suppr/test18-suppr-removed-var-v1.o",
862 "",
863 "",
864 "data/test-diff-suppr/test18-suppr-removed-var-4.suppr",
865 "--no-default-suppression --no-show-locs --no-redundant",
866 "data/test-diff-suppr/test18-suppr-removed-var-report-5.txt",
867 "output/test-diff-suppr/test18-suppr-removed-var-report-5.txt"
868 },
869 {
870 "data/test-diff-suppr/test19-suppr-added-fn-sym-v0.o",
871 "data/test-diff-suppr/test19-suppr-added-fn-sym-v1.o",
872 "",
873 "",
874 "",
875 "--no-default-suppression --no-show-locs --no-redundant",
876 "data/test-diff-suppr/test19-suppr-added-fn-sym-report-0.txt",
877 "output/test-diff-suppr/test19-suppr-added-fn-sym-report-0.txt"
878 },
879 {
880 "data/test-diff-suppr/test19-suppr-added-fn-sym-v0.o",
881 "data/test-diff-suppr/test19-suppr-added-fn-sym-v1.o",
882 "",
883 "",
884 "data/test-diff-suppr/test19-suppr-added-fn-sym-0.suppr",
885 "--no-default-suppression --no-show-locs --no-redundant",
886 "data/test-diff-suppr/test19-suppr-added-fn-sym-report-1.txt",
887 "output/test-diff-suppr/test19-suppr-added-fn-sym-report-1.txt"
888 },
889 {
890 "data/test-diff-suppr/test19-suppr-added-fn-sym-v0.o",
891 "data/test-diff-suppr/test19-suppr-added-fn-sym-v1.o",
892 "",
893 "",
894 "data/test-diff-suppr/test19-suppr-added-fn-sym-1.suppr",
895 "--no-default-suppression --no-show-locs --no-redundant",
896 "data/test-diff-suppr/test19-suppr-added-fn-sym-report-2.txt",
897 "output/test-diff-suppr/test19-suppr-added-fn-sym-report-2.txt"
898 },
899 {
900 "data/test-diff-suppr/test19-suppr-added-fn-sym-v0.o",
901 "data/test-diff-suppr/test19-suppr-added-fn-sym-v1.o",
902 "",
903 "",
904 "data/test-diff-suppr/test19-suppr-added-fn-sym-2.suppr",
905 "--no-default-suppression --no-show-locs --no-redundant",
906 "data/test-diff-suppr/test19-suppr-added-fn-sym-report-3.txt",
907 "output/test-diff-suppr/test19-suppr-added-fn-sym-report-3.txt"
908 },
909 {
910 "data/test-diff-suppr/test19-suppr-added-fn-sym-v0.o",
911 "data/test-diff-suppr/test19-suppr-added-fn-sym-v1.o",
912 "",
913 "",
914 "data/test-diff-suppr/test19-suppr-added-fn-sym-3.suppr",
915 "--no-default-suppression --no-show-locs --no-redundant",
916 "data/test-diff-suppr/test19-suppr-added-fn-sym-report-4.txt",
917 "output/test-diff-suppr/test19-suppr-added-fn-sym-report-4.txt"
918 },
919 {
920 "data/test-diff-suppr/test19-suppr-added-fn-sym-v0.o",
921 "data/test-diff-suppr/test19-suppr-added-fn-sym-v1.o",
922 "",
923 "",
924 "data/test-diff-suppr/test19-suppr-added-fn-sym-4.suppr",
925 "--no-default-suppression --no-show-locs --no-redundant",
926 "data/test-diff-suppr/test19-suppr-added-fn-sym-report-5.txt",
927 "output/test-diff-suppr/test19-suppr-added-fn-sym-report-5.txt"
928 },
929 {
930 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v0.o",
931 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v1.o",
932 "",
933 "",
934 "",
935 "--no-default-suppression --no-show-locs --no-redundant",
936 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-0.txt",
937 "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-0.txt"
938 },
939 {
940 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v0.o",
941 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v1.o",
942 "",
943 "",
944 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-0.txt",
945 "--no-default-suppression --no-show-locs --no-redundant",
946 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-1.txt",
947 "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-1.txt"
948 },
949 {
950 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v0.o",
951 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v1.o",
952 "",
953 "",
954 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-1.txt",
955 "--no-default-suppression --no-show-locs --no-redundant",
956 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-2.txt",
957 "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-2.txt"
958 },
959 {
960 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v0.o",
961 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v1.o",
962 "",
963 "",
964 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-2.txt",
965 "--no-default-suppression --no-show-locs --no-redundant",
966 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-3.txt",
967 "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-3.txt"
968 },
969 {
970 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v0.o",
971 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v1.o",
972 "",
973 "",
974 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-3.txt",
975 "--no-default-suppression --no-show-locs --no-redundant",
976 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-4.txt",
977 "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-4.txt"
978 },
979 {
980 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v0.o",
981 "data/test-diff-suppr/test20-suppr-removed-fn-sym-v1.o",
982 "",
983 "",
984 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-4.txt",
985 "--no-default-suppression --no-show-locs --no-redundant",
986 "data/test-diff-suppr/test20-suppr-removed-fn-sym-report-5.txt",
987 "output/test-diff-suppr/test20-suppr-removed-fn-sym-report-5.txt"
988 },
989 {
990 "data/test-diff-suppr/test21-suppr-added-var-sym-v0.o",
991 "data/test-diff-suppr/test21-suppr-added-var-sym-v1.o",
992 "",
993 "",
994 "",
995 "--no-default-suppression --no-show-locs --no-redundant",
996 "data/test-diff-suppr/test21-suppr-added-var-sym-report-0.txt",
997 "output/test-diff-suppr/test21-suppr-added-var-sym-report-0.txt"
998 },
999 {
1000 "data/test-diff-suppr/test21-suppr-added-var-sym-v0.o",
1001 "data/test-diff-suppr/test21-suppr-added-var-sym-v1.o",
1002 "",
1003 "",
1004 "data/test-diff-suppr/test21-suppr-added-var-sym-0.suppr",
1005 "--no-default-suppression --no-show-locs --no-redundant",
1006 "data/test-diff-suppr/test21-suppr-added-var-sym-report-1.txt",
1007 "output/test-diff-suppr/test21-suppr-added-var-sym-report-1.txt"
1008 },
1009 {
1010 "data/test-diff-suppr/test21-suppr-added-var-sym-v0.o",
1011 "data/test-diff-suppr/test21-suppr-added-var-sym-v1.o",
1012 "",
1013 "",
1014 "data/test-diff-suppr/test21-suppr-added-var-sym-1.suppr",
1015 "--no-default-suppression --no-show-locs --no-redundant",
1016 "data/test-diff-suppr/test21-suppr-added-var-sym-report-2.txt",
1017 "output/test-diff-suppr/test21-suppr-added-var-sym-report-2.txt"
1018 },
1019 {
1020 "data/test-diff-suppr/test21-suppr-added-var-sym-v0.o",
1021 "data/test-diff-suppr/test21-suppr-added-var-sym-v1.o",
1022 "",
1023 "",
1024 "data/test-diff-suppr/test21-suppr-added-var-sym-2.suppr",
1025 "--no-default-suppression --no-show-locs --no-redundant",
1026 "data/test-diff-suppr/test21-suppr-added-var-sym-report-3.txt",
1027 "output/test-diff-suppr/test21-suppr-added-var-sym-report-3.txt"
1028 },
1029 {
1030 "data/test-diff-suppr/test21-suppr-added-var-sym-v0.o",
1031 "data/test-diff-suppr/test21-suppr-added-var-sym-v1.o",
1032 "",
1033 "",
1034 "data/test-diff-suppr/test21-suppr-added-var-sym-3.suppr",
1035 "--no-default-suppression --no-show-locs --no-redundant",
1036 "data/test-diff-suppr/test21-suppr-added-var-sym-report-4.txt",
1037 "output/test-diff-suppr/test21-suppr-added-var-sym-report-4.txt"
1038 },
1039 {
1040 "data/test-diff-suppr/test21-suppr-added-var-sym-v0.o",
1041 "data/test-diff-suppr/test21-suppr-added-var-sym-v1.o",
1042 "",
1043 "",
1044 "data/test-diff-suppr/test21-suppr-added-var-sym-4.suppr",
1045 "--no-default-suppression --no-show-locs --no-redundant",
1046 "data/test-diff-suppr/test21-suppr-added-var-sym-report-5.txt",
1047 "output/test-diff-suppr/test21-suppr-added-var-sym-report-5.txt"
1048 },
1049 {
1050 "data/test-diff-suppr/test22-suppr-removed-var-sym-v0.o",
1051 "data/test-diff-suppr/test22-suppr-removed-var-sym-v1.o",
1052 "",
1053 "",
1054 "",
1055 "--no-default-suppression --no-show-locs --no-redundant",
1056 "data/test-diff-suppr/test22-suppr-removed-var-sym-report-0.txt",
1057 "output/test-diff-suppr/test22-suppr-removed-var-sym-report-0.txt"
1058 },
1059 {
1060 "data/test-diff-suppr/test22-suppr-removed-var-sym-v0.o",
1061 "data/test-diff-suppr/test22-suppr-removed-var-sym-v1.o",
1062 "",
1063 "",
1064 "data/test-diff-suppr/test22-suppr-removed-var-sym-0.suppr",
1065 "--no-default-suppression --no-show-locs --no-redundant",
1066 "data/test-diff-suppr/test22-suppr-removed-var-sym-report-1.txt",
1067 "output/test-diff-suppr/test22-suppr-removed-var-sym-report-1.txt"
1068 },
1069 {
1070 "data/test-diff-suppr/test22-suppr-removed-var-sym-v0.o",
1071 "data/test-diff-suppr/test22-suppr-removed-var-sym-v1.o",
1072 "",
1073 "",
1074 "data/test-diff-suppr/test22-suppr-removed-var-sym-1.suppr",
1075 "--no-default-suppression --no-show-locs --no-redundant",
1076 "data/test-diff-suppr/test22-suppr-removed-var-sym-report-2.txt",
1077 "output/test-diff-suppr/test22-suppr-removed-var-sym-report-2.txt"
1078 },
1079 {
1080 "data/test-diff-suppr/test22-suppr-removed-var-sym-v0.o",
1081 "data/test-diff-suppr/test22-suppr-removed-var-sym-v1.o",
1082 "",
1083 "",
1084 "data/test-diff-suppr/test22-suppr-removed-var-sym-2.suppr",
1085 "--no-default-suppression --no-show-locs --no-redundant",
1086 "data/test-diff-suppr/test22-suppr-removed-var-sym-report-3.txt",
1087 "output/test-diff-suppr/test22-suppr-removed-var-sym-report-3.txt"
1088 },
1089 {
1090 "data/test-diff-suppr/test22-suppr-removed-var-sym-v0.o",
1091 "data/test-diff-suppr/test22-suppr-removed-var-sym-v1.o",
1092 "",
1093 "",
1094 "data/test-diff-suppr/test22-suppr-removed-var-sym-3.suppr",
1095 "--no-default-suppression --no-show-locs --no-redundant",
1096 "data/test-diff-suppr/test22-suppr-removed-var-sym-report-4.txt",
1097 "output/test-diff-suppr/test22-suppr-removed-var-sym-report-4.txt"
1098 },
1099 {
1100 "data/test-diff-suppr/test22-suppr-removed-var-sym-v0.o",
1101 "data/test-diff-suppr/test22-suppr-removed-var-sym-v1.o",
1102 "",
1103 "",
1104 "data/test-diff-suppr/test22-suppr-removed-var-sym-4.suppr",
1105 "--no-default-suppression --no-show-locs --no-redundant",
1106 "data/test-diff-suppr/test22-suppr-removed-var-sym-report-5.txt",
1107 "output/test-diff-suppr/test22-suppr-removed-var-sym-report-5.txt"
1108 },
1109 {
1110 "data/test-diff-suppr/libtest23-alias-filter-v0.so",
1111 "data/test-diff-suppr/libtest23-alias-filter-v1.so ",
1112 "",
1113 "",
1114 "",
1115 "--no-default-suppression --no-show-locs --no-redundant",
1116 "data/test-diff-suppr/test23-alias-filter-report-0.txt",
1117 "output/test-diff-suppr/test23-alias-filter-report-0.txt"
1118 },
1119 {
1120 "data/test-diff-suppr/libtest23-alias-filter-v0.so",
1121 "data/test-diff-suppr/libtest23-alias-filter-v1.so ",
1122 "",
1123 "",
1124 "data/test-diff-suppr/test23-alias-filter-0.suppr",
1125 "--no-default-suppression --no-show-locs --no-redundant",
1126 "data/test-diff-suppr/test23-alias-filter-report-1.txt",
1127 "output/test-diff-suppr/test23-alias-filter-report-1.txt"
1128 },
1129 {
1130 "data/test-diff-suppr/libtest23-alias-filter-v0.so",
1131 "data/test-diff-suppr/libtest23-alias-filter-v1.so ",
1132 "",
1133 "",
1134 "data/test-diff-suppr/test23-alias-filter-1.suppr",
1135 "--no-default-suppression --no-show-locs --no-redundant",
1136 "data/test-diff-suppr/test23-alias-filter-report-2.txt",
1137 "output/test-diff-suppr/test23-alias-filter-report-2.txt"
1138 },
1139 {
1140 "data/test-diff-suppr/libtest23-alias-filter-v0.so",
1141 "data/test-diff-suppr/libtest23-alias-filter-v1.so ",
1142 "",
1143 "",
1144 "data/test-diff-suppr/test23-alias-filter-2.suppr",
1145 "--no-default-suppression --no-show-locs --no-redundant",
1146 "data/test-diff-suppr/test23-alias-filter-report-3.txt",
1147 "output/test-diff-suppr/test23-alias-filter-report-3.txt"
1148 },
1149 {
1150 "data/test-diff-suppr/libtest23-alias-filter-v0.so",
1151 "data/test-diff-suppr/libtest23-alias-filter-v1.so ",
1152 "",
1153 "",
1154 "data/test-diff-suppr/test23-alias-filter-3.suppr",
1155 "--no-default-suppression --no-show-locs --no-redundant",
1156 "data/test-diff-suppr/test23-alias-filter-report-4.txt",
1157 "output/test-diff-suppr/test23-alias-filter-report-4.txt"
1158 },
1159 {
1160 "data/test-diff-suppr/libtest23-alias-filter-v0.so",
1161 "data/test-diff-suppr/libtest23-alias-filter-v1.so ",
1162 "",
1163 "",
1164 "data/test-diff-suppr/test23-alias-filter-4.suppr",
1165 "--no-default-suppression --no-show-locs --no-redundant",
1166 "data/test-diff-suppr/test23-alias-filter-report-5.txt",
1167 "output/test-diff-suppr/test23-alias-filter-report-5.txt"
1168 },
1169 {
1170 "data/test-diff-suppr/libtest24-soname-v0.so",
1171 "data/test-diff-suppr/libtest24-soname-v1.so",
1172 "",
1173 "",
1174 "data/test-diff-suppr/test24-soname-suppr-0.txt",
1175 "--no-default-suppression --no-show-locs --no-redundant",
1176 "data/test-diff-suppr/test24-soname-report-0.txt",
1177 "output/test-diff-suppr/test24-soname-report-0.txt"
1178 },
1179 {
1180 "data/test-diff-suppr/libtest24-soname-v0.so",
1181 "data/test-diff-suppr/libtest24-soname-v1.so",
1182 "",
1183 "",
1184 "data/test-diff-suppr/test24-soname-suppr-1.txt",
1185 "--no-default-suppression --no-show-locs --no-redundant",
1186 "data/test-diff-suppr/test24-soname-report-1.txt",
1187 "output/test-diff-suppr/test24-soname-report-1.txt"
1188 },
1189 {
1190 "data/test-diff-suppr/libtest24-soname-v0.so",
1191 "data/test-diff-suppr/libtest24-soname-v1.so",
1192 "",
1193 "",
1194 "data/test-diff-suppr/test24-soname-suppr-2.txt",
1195 "--no-default-suppression --no-show-locs --no-redundant",
1196 "data/test-diff-suppr/test24-soname-report-2.txt",
1197 "output/test-diff-suppr/test24-soname-report-2.txt"
1198 },
1199 {
1200 "data/test-diff-suppr/libtest24-soname-v0.so",
1201 "data/test-diff-suppr/libtest24-soname-v1.so",
1202 "",
1203 "",
1204 "data/test-diff-suppr/test24-soname-suppr-3.txt",
1205 "--no-default-suppression --no-show-locs --no-redundant",
1206 "data/test-diff-suppr/test24-soname-report-3.txt",
1207 "output/test-diff-suppr/test24-soname-report-3.txt"
1208 },
1209 {
1210 "data/test-diff-suppr/libtest24-soname-v0.so",
1211 "data/test-diff-suppr/libtest24-soname-v1.so",
1212 "",
1213 "",
1214 "data/test-diff-suppr/test24-soname-suppr-4.txt",
1215 "--no-default-suppression --no-show-locs --no-redundant",
1216 "data/test-diff-suppr/test24-soname-report-4.txt",
1217 "output/test-diff-suppr/test24-soname-report-4.txt"
1218 },
1219 {
1220 "data/test-diff-suppr/libtest24-soname-v0.so",
1221 "data/test-diff-suppr/libtest24-soname-v1.so",
1222 "",
1223 "",
1224 "data/test-diff-suppr/test24-soname-suppr-5.txt",
1225 "--no-default-suppression --no-show-locs --no-redundant",
1226 "data/test-diff-suppr/test24-soname-report-5.txt",
1227 "output/test-diff-suppr/test24-soname-report-5.txt"
1228 },
1229 {
1230 "data/test-diff-suppr/libtest24-soname-v0.so",
1231 "data/test-diff-suppr/libtest24-soname-v1.so",
1232 "",
1233 "",
1234 "data/test-diff-suppr/test24-soname-suppr-6.txt",
1235 "--no-default-suppression --no-show-locs --no-redundant",
1236 "data/test-diff-suppr/test24-soname-report-6.txt",
1237 "output/test-diff-suppr/test24-soname-report-6.txt"
1238 },
1239 {
1240 "data/test-diff-suppr/libtest24-soname-v0.so",
1241 "data/test-diff-suppr/libtest24-soname-v1.so",
1242 "",
1243 "",
1244 "data/test-diff-suppr/test24-soname-suppr-7.txt",
1245 "--no-default-suppression --no-show-locs --no-redundant",
1246 "data/test-diff-suppr/test24-soname-report-7.txt",
1247 "output/test-diff-suppr/test24-soname-report-7.txt"
1248 },
1249 {
1250 "data/test-diff-suppr/libtest24-soname-v0.so",
1251 "data/test-diff-suppr/libtest24-soname-v1.so",
1252 "",
1253 "",
1254 "data/test-diff-suppr/test24-soname-suppr-8.txt",
1255 "--no-default-suppression --no-show-locs --no-redundant",
1256 "data/test-diff-suppr/test24-soname-report-8.txt",
1257 "output/test-diff-suppr/test24-soname-report-8.txt"
1258 },
1259 {
1260 "data/test-diff-suppr/libtest24-soname-v0.so",
1261 "data/test-diff-suppr/libtest24-soname-v1.so",
1262 "",
1263 "",
1264 "data/test-diff-suppr/test24-soname-suppr-9.txt",
1265 "--no-default-suppression --no-show-locs --no-redundant",
1266 "data/test-diff-suppr/test24-soname-report-9.txt",
1267 "output/test-diff-suppr/test24-soname-report-9.txt"
1268 },
1269 {
1270 "data/test-diff-suppr/libtest24-soname-v0.so",
1271 "data/test-diff-suppr/libtest24-soname-v1.so",
1272 "",
1273 "",
1274 "data/test-diff-suppr/test24-soname-suppr-10.txt",
1275 "--no-default-suppression --no-show-locs --no-redundant",
1276 "data/test-diff-suppr/test24-soname-report-10.txt",
1277 "output/test-diff-suppr/test24-soname-report-10.txt"
1278 },
1279 {
1280 "data/test-diff-suppr/libtest24-soname-v0.so",
1281 "data/test-diff-suppr/libtest24-soname-v1.so",
1282 "",
1283 "",
1284 "data/test-diff-suppr/test24-soname-suppr-11.txt",
1285 "--no-default-suppression --no-show-locs --no-redundant",
1286 "data/test-diff-suppr/test24-soname-report-11.txt",
1287 "output/test-diff-suppr/test24-soname-report-11.txt"
1288 },
1289 {
1290 "data/test-diff-suppr/libtest24-soname-v0.so",
1291 "data/test-diff-suppr/libtest24-soname-v1.so",
1292 "",
1293 "",
1294 "data/test-diff-suppr/test24-soname-suppr-12.txt",
1295 "--no-default-suppression --no-show-locs --no-redundant",
1296 "data/test-diff-suppr/test24-soname-report-12.txt",
1297 "output/test-diff-suppr/test24-soname-report-12.txt"
1298 },
1299 {
1300 "data/test-diff-suppr/libtest24-soname-v0.so",
1301 "data/test-diff-suppr/libtest24-soname-v1.so",
1302 "",
1303 "",
1304 "data/test-diff-suppr/test24-soname-suppr-13.txt",
1305 "--no-default-suppression --no-show-locs --no-redundant",
1306 "data/test-diff-suppr/test24-soname-report-13.txt",
1307 "output/test-diff-suppr/test24-soname-report-13.txt"
1308 },
1309 {
1310 "data/test-diff-suppr/libtest24-soname-v0.so",
1311 "data/test-diff-suppr/libtest24-soname-v1.so",
1312 "",
1313 "",
1314 "data/test-diff-suppr/test24-soname-suppr-14.txt",
1315 "--no-default-suppression --no-show-locs --no-redundant",
1316 "data/test-diff-suppr/test24-soname-report-14.txt",
1317 "output/test-diff-suppr/test24-soname-report-14.txt"
1318 },
1319 {
1320 "data/test-diff-suppr/libtest24-soname-v0.so",
1321 "data/test-diff-suppr/libtest24-soname-v1.so",
1322 "",
1323 "",
1324 "data/test-diff-suppr/test24-soname-suppr-15.txt",
1325 "--no-default-suppression --no-show-locs --no-redundant",
1326 "data/test-diff-suppr/test24-soname-report-15.txt",
1327 "output/test-diff-suppr/test24-soname-report-15.txt"
1328 },
1329 {
1330 "data/test-diff-suppr/libtest24-soname-v0.so",
1331 "data/test-diff-suppr/libtest24-soname-v1.so",
1332 "",
1333 "",
1334 "data/test-diff-suppr/test24-soname-suppr-16.txt",
1335 "--no-default-suppression --no-show-locs --no-redundant",
1336 "data/test-diff-suppr/test24-soname-report-16.txt",
1337 "output/test-diff-suppr/test24-soname-report-16.txt"
1338 },
1339 {
1340 "data/test-diff-suppr/libtest25-typedef-v0.so",
1341 "data/test-diff-suppr/libtest25-typedef-v1.so",
1342 "",
1343 "",
1344 "",
1345 "--no-default-suppression --no-show-locs --no-redundant",
1346 "data/test-diff-suppr/test25-typedef-report-0.txt",
1347 "output/test-diff-suppr/test25-typedef-report-0.txt"
1348 },
1349 {
1350 "data/test-diff-suppr/libtest25-typedef-v0.so",
1351 "data/test-diff-suppr/libtest25-typedef-v1.so",
1352 "",
1353 "",
1354 "data/test-diff-suppr/test25-typedef-suppr-0.txt",
1355 "--no-default-suppression --no-show-locs --no-redundant",
1356 "data/test-diff-suppr/test25-typedef-report-1.txt",
1357 "output/test-diff-suppr/test25-typedef-report-1.txt"
1358 },
1359 {
1360 "data/test-diff-suppr/libtest26-loc-suppr-v0.so",
1361 "data/test-diff-suppr/libtest26-loc-suppr-v1.so",
1362 "",
1363 "",
1364 "",
1365 "--no-default-suppression --no-show-locs --no-redundant",
1366 "data/test-diff-suppr/test26-loc-suppr-report-0.txt",
1367 "output/test-diff-suppr/test26-loc-suppr-report-0.txt"
1368 },
1369 {
1370 "data/test-diff-suppr/libtest26-loc-suppr-v0.so",
1371 "data/test-diff-suppr/libtest26-loc-suppr-v1.so",
1372 "",
1373 "",
1374 "data/test-diff-suppr/test26-loc-suppr-0.suppr",
1375 "--no-default-suppression --no-show-locs --no-redundant",
1376 "data/test-diff-suppr/test26-loc-suppr-report-1.txt",
1377 "output/test-diff-suppr/test26-loc-suppr-report-1.txt"
1378 },
1379 {
1380 "data/test-diff-suppr/libtest26-loc-suppr-v0.so",
1381 "data/test-diff-suppr/libtest26-loc-suppr-v1.so",
1382 "",
1383 "",
1384 "data/test-diff-suppr/test26-loc-suppr-1.suppr",
1385 "--no-default-suppression --no-show-locs --no-redundant",
1386 "data/test-diff-suppr/test26-loc-suppr-report-2.txt",
1387 "output/test-diff-suppr/test26-loc-suppr-report-2.txt"
1388 },
1389 {
1390 "data/test-diff-suppr/libtest26-loc-suppr-v0.so",
1391 "data/test-diff-suppr/libtest26-loc-suppr-v1.so",
1392 "",
1393 "",
1394 "data/test-diff-suppr/test26-loc-suppr-2.suppr",
1395 "--no-default-suppression --no-show-locs --no-redundant",
1396 "data/test-diff-suppr/test26-loc-suppr-report-3.txt",
1397 "output/test-diff-suppr/test26-loc-suppr-report-3.txt"
1398 },
1399 {
1400 "data/test-diff-suppr/test27-add-aliased-function-v0.o",
1401 "data/test-diff-suppr/test27-add-aliased-function-v1.o",
1402 "",
1403 "",
1404 "",
1405 "--no-default-suppression --no-show-locs --no-redundant",
1406 "data/test-diff-suppr/test27-add-aliased-function-report-0.txt",
1407 "output/test-diff-suppr/test27-add-aliased-function-report-0.txt"
1408 },
1409 {
1410 "data/test-diff-suppr/test27-add-aliased-function-v0.o",
1411 "data/test-diff-suppr/test27-add-aliased-function-v1.o",
1412 "",
1413 "",
1414 "data/test-diff-suppr/test27-add-aliased-function-0.suppr",
1415 "--no-default-suppression --no-show-locs --no-redundant",
1416 "data/test-diff-suppr/test27-add-aliased-function-report-1.txt",
1417 "output/test-diff-suppr/test27-add-aliased-function-report-1.txt"
1418 },
1419 {
1420 "data/test-diff-suppr/test27-add-aliased-function-v0.o",
1421 "data/test-diff-suppr/test27-add-aliased-function-v1.o",
1422 "",
1423 "",
1424 "data/test-diff-suppr/test27-add-aliased-function-1.suppr",
1425 "--no-default-suppression --no-show-locs --no-redundant",
1426 "data/test-diff-suppr/test27-add-aliased-function-report-2.txt",
1427 "output/test-diff-suppr/test27-add-aliased-function-report-2.txt"
1428 },
1429 {
1430 "data/test-diff-suppr/test27-add-aliased-function-v0.o",
1431 "data/test-diff-suppr/test27-add-aliased-function-v1.o",
1432 "",
1433 "",
1434 "data/test-diff-suppr/test27-add-aliased-function-2.suppr",
1435 "--no-default-suppression --no-show-locs --no-redundant",
1436 "data/test-diff-suppr/test27-add-aliased-function-report-3.txt",
1437 "output/test-diff-suppr/test27-add-aliased-function-report-3.txt"
1438 },
1439 {
1440 "data/test-diff-suppr/test27-add-aliased-function-v0.o",
1441 "data/test-diff-suppr/test27-add-aliased-function-v1.o",
1442 "",
1443 "",
1444 "data/test-diff-suppr/test27-add-aliased-function-3.suppr",
1445 "--no-default-suppression --no-show-locs --no-redundant",
1446 "data/test-diff-suppr/test27-add-aliased-function-report-4.txt",
1447 "output/test-diff-suppr/test27-add-aliased-function-report-4.txt"
1448 },
1449 {
1450 "data/test-diff-suppr/test27-add-aliased-function-v0.o",
1451 "data/test-diff-suppr/test27-add-aliased-function-v1.o",
1452 "",
1453 "",
1454 "data/test-diff-suppr/test27-add-aliased-function-4.suppr",
1455 "--no-default-suppression --no-show-locs --no-redundant",
1456 "data/test-diff-suppr/test27-add-aliased-function-report-5.txt",
1457 "output/test-diff-suppr/test27-add-aliased-function-report-5.txt"
1458 },
1459 {
1460 "data/test-diff-suppr/test28-add-aliased-function-v0.o",
1461 "data/test-diff-suppr/test28-add-aliased-function-v1.o",
1462 "",
1463 "",
1464 "",
1465 "--no-default-suppression --no-show-locs --no-redundant",
1466 "data/test-diff-suppr/test28-add-aliased-function-report-0.txt",
1467 "output/test-diff-suppr/test28-add-aliased-function-report-0.txt"
1468 },
1469 {
1470 "data/test-diff-suppr/test28-add-aliased-function-v0.o",
1471 "data/test-diff-suppr/test28-add-aliased-function-v1.o",
1472 "",
1473 "",
1474 "data/test-diff-suppr/test28-add-aliased-function-0.suppr",
1475 "--no-default-suppression --no-show-locs --no-redundant",
1476 "data/test-diff-suppr/test28-add-aliased-function-report-1.txt",
1477 "output/test-diff-suppr/test28-add-aliased-function-report-1.txt"
1478 },
1479 {
1480 "data/test-diff-suppr/test28-add-aliased-function-v0.o",
1481 "data/test-diff-suppr/test28-add-aliased-function-v1.o",
1482 "",
1483 "",
1484 "data/test-diff-suppr/test28-add-aliased-function-1.suppr",
1485 "--no-default-suppression --no-show-locs --no-redundant",
1486 "data/test-diff-suppr/test28-add-aliased-function-report-2.txt",
1487 "output/test-diff-suppr/test28-add-aliased-function-report-2.txt"
1488 },
1489 {
1490 "data/test-diff-suppr/test28-add-aliased-function-v0.o",
1491 "data/test-diff-suppr/test28-add-aliased-function-v1.o",
1492 "",
1493 "",
1494 "data/test-diff-suppr/test28-add-aliased-function-2.suppr",
1495 "--no-default-suppression --no-show-locs --no-redundant",
1496 "data/test-diff-suppr/test28-add-aliased-function-report-3.txt",
1497 "output/test-diff-suppr/test28-add-aliased-function-report-3.txt"
1498 },
1499 {
1500 "data/test-diff-suppr/test28-add-aliased-function-v0.o",
1501 "data/test-diff-suppr/test28-add-aliased-function-v1.o",
1502 "",
1503 "",
1504 "data/test-diff-suppr/test28-add-aliased-function-3.suppr",
1505 "--no-default-suppression --no-show-locs --no-redundant",
1506 "data/test-diff-suppr/test28-add-aliased-function-report-4.txt",
1507 "output/test-diff-suppr/test28-add-aliased-function-report-4.txt"
1508 },
1509 {
1510 "data/test-diff-suppr/test28-add-aliased-function-v0.o",
1511 "data/test-diff-suppr/test28-add-aliased-function-v1.o",
1512 "",
1513 "",
1514 "data/test-diff-suppr/test28-add-aliased-function-4.suppr",
1515 "--no-default-suppression --no-show-locs --no-redundant",
1516 "data/test-diff-suppr/test28-add-aliased-function-report-5.txt",
1517 "output/test-diff-suppr/test28-add-aliased-function-report-5.txt"
1518 },
1519 {
1520 "data/test-diff-suppr/test28-add-aliased-function-v0.o",
1521 "data/test-diff-suppr/test28-add-aliased-function-v1.o",
1522 "",
1523 "",
1524 "data/test-diff-suppr/test28-add-aliased-function-5.suppr",
1525 "--no-default-suppression --no-show-locs --no-redundant",
1526 "data/test-diff-suppr/test28-add-aliased-function-report-6.txt",
1527 "output/test-diff-suppr/test28-add-aliased-function-report-6.txt"
1528 },
1529 {
1530 "data/test-diff-suppr/libtest29-soname-v0.so",
1531 "data/test-diff-suppr/libtest29-soname-v1.so",
1532 "",
1533 "",
1534 "data/test-diff-suppr/test29-suppr-0.txt",
1535 "--no-default-suppression --no-show-locs --no-redundant",
1536 "data/test-diff-suppr/test29-soname-report-0.txt",
1537 "output/test-diff-suppr/test29-soname-report-0.txt"
1538 },
1539 {
1540 "data/test-diff-suppr/libtest29-soname-v0.so",
1541 "data/test-diff-suppr/libtest29-soname-v1.so",
1542 "",
1543 "",
1544 "data/test-diff-suppr/test29-suppr-1.txt",
1545 "--no-default-suppression --no-show-locs --no-redundant",
1546 "data/test-diff-suppr/test29-soname-report-1.txt",
1547 "output/test-diff-suppr/test29-soname-report-1.txt"
1548 },
1549 {
1550 "data/test-diff-suppr/libtest29-soname-v0.so",
1551 "data/test-diff-suppr/libtest29-soname-v1.so",
1552 "",
1553 "",
1554 "data/test-diff-suppr/test29-suppr-2.txt",
1555 "--no-default-suppression --no-show-locs --no-redundant",
1556 "data/test-diff-suppr/test29-soname-report-2.txt",
1557 "output/test-diff-suppr/test29-soname-report-2.txt"
1558 },
1559 {
1560 "data/test-diff-suppr/libtest29-soname-v0.so",
1561 "data/test-diff-suppr/libtest29-soname-v1.so",
1562 "",
1563 "",
1564 "data/test-diff-suppr/test29-suppr-3.txt",
1565 "--no-default-suppression --no-show-locs --no-redundant",
1566 "data/test-diff-suppr/test29-soname-report-3.txt",
1567 "output/test-diff-suppr/test29-soname-report-3.txt"
1568 },
1569 {
1570 "data/test-diff-suppr/libtest29-soname-v0.so",
1571 "data/test-diff-suppr/libtest29-soname-v1.so",
1572 "",
1573 "",
1574 "data/test-diff-suppr/test29-suppr-4.txt",
1575 "--no-default-suppression --no-show-locs --no-redundant",
1576 "data/test-diff-suppr/test29-soname-report-4.txt",
1577 "output/test-diff-suppr/test29-soname-report-4.txt"
1578 },
1579 {
1580 "data/test-diff-suppr/libtest29-soname-v0.so",
1581 "data/test-diff-suppr/libtest29-soname-v1.so",
1582 "",
1583 "",
1584 "data/test-diff-suppr/test29-suppr-5.txt",
1585 "--no-default-suppression --no-show-locs --no-redundant",
1586 "data/test-diff-suppr/test29-soname-report-5.txt",
1587 "output/test-diff-suppr/test29-soname-report-5.txt"
1588 },
1589 {
1590 "data/test-diff-suppr/libtest29-soname-v0.so",
1591 "data/test-diff-suppr/libtest29-soname-v1.so",
1592 "",
1593 "",
1594 "data/test-diff-suppr/test29-suppr-6.txt",
1595 "--no-default-suppression --no-show-locs --no-redundant",
1596 "data/test-diff-suppr/test29-soname-report-6.txt",
1597 "output/test-diff-suppr/test29-soname-report-6.txt"
1598 },
1599 {
1600 "data/test-diff-suppr/libtest29-soname-v0.so",
1601 "data/test-diff-suppr/libtest29-soname-v1.so",
1602 "",
1603 "",
1604 "data/test-diff-suppr/test29-suppr-7.txt",
1605 "--no-default-suppression --no-show-locs --no-redundant",
1606 "data/test-diff-suppr/test29-soname-report-7.txt",
1607 "output/test-diff-suppr/test29-soname-report-7.txt"
1608 },
1609 {
1610 "data/test-diff-suppr/libtest29-soname-v0.so",
1611 "data/test-diff-suppr/libtest29-soname-v1.so",
1612 "",
1613 "",
1614 "data/test-diff-suppr/test29-suppr-8.txt",
1615 "--no-default-suppression --no-show-locs --no-redundant",
1616 "data/test-diff-suppr/test29-soname-report-8.txt",
1617 "output/test-diff-suppr/test29-soname-report-8.txt"
1618 },
1619 {
1620 "data/test-diff-suppr/test30-pub-lib-v0.so",
1621 "data/test-diff-suppr/test30-pub-lib-v1.so",
1622 "",
1623 "",
1624 "",
1625 "--no-default-suppression",
1626 "data/test-diff-suppr/test30-report-0.txt",
1627 "output/test-diff-suppr/test30-report-0.txt"
1628 },
1629 {
1630 "data/test-diff-suppr/test30-pub-lib-v0.so",
1631 "data/test-diff-suppr/test30-pub-lib-v1.so",
1632 "data/test-diff-suppr/test30-include-dir-v0",
1633 "data/test-diff-suppr/test30-include-dir-v1",
1634 "",
1635 "--no-default-suppression",
1636 "data/test-diff-suppr/test30-report-1.txt",
1637 "output/test-diff-suppr/test30-report-1.txt"
1638 },
1639 {
1640 "data/test-diff-suppr/libtest31-v0.so",
1641 "data/test-diff-suppr/libtest31-v1.so",
1642 "",
1643 "",
1644 "data/test-diff-suppr/libtest31.suppr",
1645 "--no-default-suppression --no-show-locs --no-redundant",
1646 "data/test-diff-suppr/test31-report-0.txt",
1647 "output/test-diff-suppr/test31-report-0.txt"
1648 },
1649 {
1650 "data/test-diff-suppr/libtest31-v0.so",
1651 "data/test-diff-suppr/libtest31-v1.so",
1652 "",
1653 "",
1654 "",
1655 "--no-default-suppression --no-show-locs --no-redundant",
1656 "data/test-diff-suppr/test31-report-1.txt",
1657 "output/test-diff-suppr/test31-report-1.txt"
1658 },
1659 {
1660 "data/test-diff-suppr/libtest32-v0.so",
1661 "data/test-diff-suppr/libtest32-v1.so",
1662 "",
1663 "",
1664 "",
1665 "--no-default-suppression --no-show-locs --no-redundant",
1666 "data/test-diff-suppr/test32-report-0.txt",
1667 "output/test-diff-suppr/test32-report-0.txt"
1668 },
1669 {
1670 "data/test-diff-suppr/libtest32-v0.so",
1671 "data/test-diff-suppr/libtest32-v1.so",
1672 "",
1673 "",
1674 "data/test-diff-suppr/libtest32-0.suppr",
1675 "--no-default-suppression --no-show-locs --no-redundant",
1676 "data/test-diff-suppr/test32-report-1.txt",
1677 "output/test-diff-suppr/test32-report-1.txt"
1678 },
1679 {
1680 "data/test-diff-suppr/libtest33-v0.so",
1681 "data/test-diff-suppr/libtest33-v1.so",
1682 "",
1683 "",
1684 "data/test-diff-suppr/test33-suppr-1.txt",
1685 "--no-default-suppression --no-show-locs --no-redundant",
1686 "data/test-diff-suppr/test33-report-0.txt",
1687 "output/test-diff-suppr/test33-report-0.txt"
1688 },
1689 {
1690 "data/test-diff-suppr/libtest34-v0.so",
1691 "data/test-diff-suppr/libtest34-v1.so",
1692 "data/test-diff-suppr/test34-pub-include-dir-v0",
1693 "data/test-diff-suppr/test34-pub-include-dir-v1",
1694 "",
1695 "--no-default-suppression",
1696 "data/test-diff-suppr/test34-report-0.txt",
1697 "output/test-diff-suppr/test34-report-0.txt"
1698 },
1699 {
1700 "data/test-diff-suppr/libtest35-leaf-v0.so",
1701 "data/test-diff-suppr/libtest35-leaf-v1.so",
1702 "",
1703 "",
1704 "data/test-diff-suppr/test35-leaf.suppr",
1705 "--no-default-suppression --leaf-changes-only --impacted-interfaces",
1706 "data/test-diff-suppr/test35-leaf-report-0.txt",
1707 "output/test-diff-suppr/test35-leaf-report-0.txt"
1708 },
1709 {
1710 "data/test-diff-suppr/libtest36-leaf-v0.so",
1711 "data/test-diff-suppr/libtest36-leaf-v1.so",
1712 "",
1713 "",
1714 "",
1715 "--no-default-suppression --leaf-changes-only --impacted-interfaces",
1716 "data/test-diff-suppr/test36-leaf-report-0.txt",
1717 "output/test-diff-suppr/test36-leaf-report-0.txt"
1718 },
1719 {
1720 "data/test-diff-suppr/test37-opaque-type-v0.o",
1721 "data/test-diff-suppr/test37-opaque-type-v1.o",
1722 "data/test-diff-suppr/test37-opaque-type-header-dir",
1723 "data/test-diff-suppr/test37-opaque-type-header-dir",
1724 "",
1725 "--no-default-suppression",
1726 "data/test-diff-suppr/test37-opaque-type-report-0.txt",
1727 "output/test-diff-suppr/test37-opaque-type-report-0.txt"
1728 },
1729 {
1730 "data/test-diff-suppr/test38-char-class-in-ini-v0.o",
1731 "data/test-diff-suppr/test38-char-class-in-ini-v1.o",
1732 "",
1733 "",
1734 "data/test-diff-suppr/test38-char-class-in-ini.abignore",
1735 "--no-default-suppression",
1736 "data/test-diff-suppr/test38-char-class-in-ini-report-0.txt",
1737 "output/test-diff-suppr/test38-char-class-in-ini-report-0.txt"
1738 },
1739 {
1740 "data/test-diff-suppr/test39-opaque-type-v0.o",
1741 "data/test-diff-suppr/test39-opaque-type-v1.o",
1742 "data/test-diff-suppr/test39-public-headers-dir",
1743 "data/test-diff-suppr/test39-public-headers-dir",
1744 "",
1745 "--no-default-suppression",
1746 "data/test-diff-suppr/test39-opaque-type-report-0.txt",
1747 "output/test-diff-suppr/test39-opaque-type-report-0.txt"
1748 },
1749 {
1750 "data/test-diff-suppr/libtest40-enumerator-changes-v0.so",
1751 "data/test-diff-suppr/libtest40-enumerator-changes-v1.so",
1752 "",
1753 "",
1754 "data/test-diff-suppr/test40-enumerator-changes-0.suppr",
1755 "--no-default-suppression",
1756 "data/test-diff-suppr/test40-enumerator-changes-report-0.txt",
1757 "output/test-diff-suppr/test40-enumerator-changes-report-0.txt"
1758 },
1759 {
1760 "data/test-diff-suppr/libtest41-enumerator-changes-v0.so",
1761 "data/test-diff-suppr/libtest41-enumerator-changes-v1.so",
1762 "",
1763 "",
1764 "data/test-diff-suppr/test41-enumerator-changes-0.suppr",
1765 "--no-default-suppression",
1766 "data/test-diff-suppr/test41-enumerator-changes-report-0.txt",
1767 "output/test-diff-suppr/test41-enumerator-changes-report-0.txt"
1768 },
1769 {
1770 "data/test-diff-suppr/test42-negative-suppr-type-v0.o",
1771 "data/test-diff-suppr/test42-negative-suppr-type-v1.o",
1772 "",
1773 "",
1774 "data/test-diff-suppr/test42-negative-suppr-type-suppr-1.txt",
1775 "--no-default-suppression",
1776 "data/test-diff-suppr/test42-negative-suppr-type-report-0.txt",
1777 "output/test-diff-suppr/test42-negative-suppr-type-report-0.txt"
1778 },
1779 {
1780 "data/test-diff-suppr/test42-negative-suppr-type-v0.o",
1781 "data/test-diff-suppr/test42-negative-suppr-type-v1.o",
1782 "",
1783 "",
1784 "data/test-diff-suppr/test42-negative-suppr-type-suppr-2.txt",
1785 "--no-default-suppression",
1786 "data/test-diff-suppr/test42-negative-suppr-type-report-1.txt",
1787 "output/test-diff-suppr/test42-negative-suppr-type-report-1.txt"
1788 },
1789 {
1790 "data/test-diff-suppr/test43-suppr-direct-fn-subtype-v0.o",
1791 "data/test-diff-suppr/test43-suppr-direct-fn-subtype-v1.o",
1792 "",
1793 "",
1794 "data/test-diff-suppr/test43-suppr-direct-fn-subtype-suppr-1.txt",
1795 "--no-default-suppression",
1796 "data/test-diff-suppr/test43-suppr-direct-fn-subtype-report-1.txt",
1797 "output/test-diff-suppr/test43-suppr-direct-fn-subtype-report-1.txt"
1798 },
1799 {
1800 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v0.o",
1801 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v1.o",
1802 "",
1803 "",
1804 "",
1805 "--no-default-suppression",
1806 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-1.txt",
1807 "output/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-1.txt"
1808 },
1809 {
1810 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v0.o",
1811 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v1.o",
1812 "",
1813 "",
1814 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp.suppr.txt",
1815 "--no-default-suppression",
1816 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-2.txt",
1817 "output/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-2.txt"
1818 },
1819 {
1820 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v0.o.abi",
1821 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v1.o.abi",
1822 "",
1823 "",
1824 "",
1825 "--no-default-suppression",
1826 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-1.txt",
1827 "output/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-1_abi.txt"
1828 },
1829 {
1830 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v0.o.abi",
1831 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v1.o.abi",
1832 "",
1833 "",
1834 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp.suppr.txt",
1835 "--no-default-suppression",
1836 "data/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-2.txt",
1837 "output/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-2_abi.txt"
1838 },
1839 {
1840 "data/test-diff-suppr/test45-abi.xml",
1841 "data/test-diff-suppr/test45-abi-wl.xml",
1842 "",
1843 "",
1844 "data/test-diff-suppr/test45-abi.suppr.txt",
1845 "--no-default-suppression",
1846 "data/test-diff-suppr/test45-abi-report-1.txt",
1847 "output/test-diff-suppr/test45-abi-report-1.txt"
1848 },
1849 {
1850 "data/test-diff-suppr/test46-PR25128-base.xml",
1851 "data/test-diff-suppr/test46-PR25128-new.xml",
1852 "",
1853 "",
1854 "",
1855 "--no-default-suppression --leaf-changes-only",
1856 "data/test-diff-suppr/test46-PR25128-report-1.txt",
1857 "output/test-diff-suppr/test46-PR25128-report-1.txt"
1858 },
1859 {
1860 "data/test-diff-suppr/test46-PR25128-base.xml",
1861 "data/test-diff-suppr/test46-PR25128-new.xml",
1862 "",
1863 "",
1864 "",
1865 "--no-default-suppression --leaf-changes-only --no-added-syms",
1866 "data/test-diff-suppr/test46-PR25128-report-2.txt",
1867 "output/test-diff-suppr/test46-PR25128-report-2.txt"
1868 },
1869 {
1870 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1871 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1872 "",
1873 "",
1874 "",
1875 "--no-default-suppression --non-reachable-types",
1876 "data/test-diff-suppr/test47-non-reachable-types-report-1.txt",
1877 "output/test-diff-suppr/test47-non-reachable-types-report-1.txt"
1878 },
1879 {
1880 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1881 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1882 "",
1883 "",
1884 "data/test-diff-suppr/test47-non-reachable-types-suppr-1.txt",
1885 "--no-default-suppression --non-reachable-types",
1886 "data/test-diff-suppr/test47-non-reachable-types-report-2.txt",
1887 "output/test-diff-suppr/test47-non-reachable-types-report-2.txt"
1888 },
1889 {
1890 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1891 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1892 "",
1893 "",
1894 "data/test-diff-suppr/test47-non-reachable-types-suppr-2.txt",
1895 "--no-default-suppression --non-reachable-types",
1896 "data/test-diff-suppr/test47-non-reachable-types-report-3.txt",
1897 "output/test-diff-suppr/test47-non-reachable-types-report-3.txt"
1898 },
1899 {
1900 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1901 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1902 "",
1903 "",
1904 "data/test-diff-suppr/test47-non-reachable-types-suppr-3.txt",
1905 "--no-default-suppression --non-reachable-types",
1906 "data/test-diff-suppr/test47-non-reachable-types-report-4.txt",
1907 "output/test-diff-suppr/test47-non-reachable-types-report-4.txt"
1908 },
1909 {
1910 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1911 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1912 "",
1913 "",
1914 "data/test-diff-suppr/test47-non-reachable-types-suppr-4.txt",
1915 "--no-default-suppression --non-reachable-types",
1916 "data/test-diff-suppr/test47-non-reachable-types-report-5.txt",
1917 "output/test-diff-suppr/test47-non-reachable-types-report-5.txt"
1918 },
1919 {
1920 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1921 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1922 "",
1923 "",
1924 "data/test-diff-suppr/test47-non-reachable-types-suppr-5.txt",
1925 "--no-default-suppression --non-reachable-types",
1926 "data/test-diff-suppr/test47-non-reachable-types-report-6.txt",
1927 "output/test-diff-suppr/test47-non-reachable-types-report-6.txt"
1928 },
1929 {
1930 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1931 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1932 "",
1933 "",
1934 "",
1935 "--no-default-suppression --non-reachable-types --leaf-changes-only",
1936 "data/test-diff-suppr/test47-non-reachable-types-report-7.txt",
1937 "output/test-diff-suppr/test47-non-reachable-types-report-7.txt"
1938 },
1939 {
1940 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1941 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1942 "",
1943 "",
1944 "data/test-diff-suppr/test47-non-reachable-types-suppr-4.txt",
1945 "--no-default-suppression --non-reachable-types --leaf-changes-only",
1946 "data/test-diff-suppr/test47-non-reachable-types-report-8.txt",
1947 "output/test-diff-suppr/test47-non-reachable-types-report-8.txt"
1948 },
1949 {
1950 "data/test-diff-suppr/test47-non-reachable-types-v0.o",
1951 "data/test-diff-suppr/test47-non-reachable-types-v1.o",
1952 "",
1953 "",
1954 "data/test-diff-suppr/test47-non-reachable-types-suppr-5.txt",
1955 "--no-default-suppression --non-reachable-types --leaf-changes-only",
1956 "data/test-diff-suppr/test47-non-reachable-types-report-9.txt",
1957 "output/test-diff-suppr/test47-non-reachable-types-report-9.txt"
1958 },
1959 {
1960 "data/test-diff-suppr/test47-non-reachable-types-v0.o.alltypes.abixml",
1961 "data/test-diff-suppr/test47-non-reachable-types-v1.o.alltypes.abixml",
1962 "",
1963 "",
1964 "",
1965 "--no-default-suppression --non-reachable-types",
1966 "data/test-diff-suppr/test47-non-reachable-types-report-1.txt",
1967 "output/test-diff-suppr/test47-non-reachable-types-report-1_alltypes.txt"
1968 },
1969 {
1970 "data/test-diff-suppr/test47-non-reachable-types-v0.o.alltypes.abixml",
1971 "data/test-diff-suppr/test47-non-reachable-types-v1.o.alltypes.abixml",
1972 "",
1973 "",
1974 "",
1975 "--no-default-suppression",
1976 "data/test-diff-suppr/test47-non-reachable-types-report-10.txt",
1977 "output/test-diff-suppr/test47-non-reachable-types-report-10.txt"
1978 },
1979 {
1980 "data/test-diff-suppr/libtest48-soname-abixml-v0.so",
1981 "data/test-diff-suppr/libtest48-soname-abixml-v1.so.abi",
1982 "",
1983 "",
1984 "",
1985 "--no-default-suppression",
1986 "data/test-diff-suppr/libtest48-soname-abixml-report-1.txt",
1987 "output/test-diff-suppr/libtest48-soname-abixml-report-1.txt"
1988 },
1989 {
1990 "data/test-diff-suppr/libtest48-soname-abixml-v0.so",
1991 "data/test-diff-suppr/libtest48-soname-abixml-v1.so.abi",
1992 "",
1993 "",
1994 "data/test-diff-suppr/libtest48-soname-abixml-suppr.txt",
1995 "--no-default-suppression",
1996 "data/test-diff-suppr/libtest48-soname-abixml-report-2.txt",
1997 "output/test-diff-suppr/libtest48-soname-abixml-report-2.txt"
1998 },
1999 {
2000 "data/test-diff-suppr/libtest48-soname-abixml-v0.so",
2001 "data/test-diff-suppr/libtest48-soname-abixml-v1.so.abi",
2002 "",
2003 "",
2004 "data/test-diff-suppr/libtest48-soname-abixml-suppr-2.txt",
2005 "--no-default-suppression",
2006 "data/test-diff-suppr/libtest48-soname-abixml-report-1.txt",
2007 "output/test-diff-suppr/libtest48-soname-abixml-report-1_suppr2.txt"
2008 },
2009 {
2010 "data/test-diff-suppr/libtest48-soname-abixml-v0.so",
2011 "data/test-diff-suppr/libtest48-soname-abixml-v1.so.abi",
2012 "",
2013 "",
2014 "data/test-diff-suppr/libtest48-soname-abixml-suppr-3.txt",
2015 "--no-default-suppression",
2016 "data/test-diff-suppr/libtest48-soname-abixml-report-2.txt",
2017 "output/test-diff-suppr/libtest48-soname-abixml-report-2_suppr3.txt"
2018 },
2019 {
2020 "data/test-diff-suppr/libtest48-soname-abixml-v0.so",
2021 "data/test-diff-suppr/libtest48-soname-abixml-v1.so.abi",
2022 "",
2023 "",
2024 "data/test-diff-suppr/libtest48-soname-abixml-suppr-4.txt",
2025 "--no-default-suppression",
2026 "data/test-diff-suppr/libtest48-soname-abixml-report-1.txt",
2027 "output/test-diff-suppr/libtest48-soname-abixml-report-1_suppr4.txt"
2028 },
2029 {
2030 "data/test-diff-suppr/PR27267/libtestpr27267-v0.so",
2031 "data/test-diff-suppr/PR27267/libtestpr27267-v1.so",
2032 "data/test-diff-suppr/PR27267/include-dir-v0",
2033 "data/test-diff-suppr/PR27267/include-dir-v1",
2034 "",
2035 "--drop-private-types --no-default-suppression",
2036 "data/test-diff-suppr/PR27267/report-1.txt",
2037 "output/test-diff-suppr/PR27267/report-1.txt"
2038 },
2039 {
2040 "data/test-diff-suppr/PR28073/PR28073.before.o.abi",
2041 "data/test-diff-suppr/PR28073/PR28073.after.o.abi",
2042 "",
2043 "",
2044 "data/test-diff-suppr/PR28073/bitfield.suppr",
2045 "--drop-private-types --no-default-suppression",
2046 "data/test-diff-suppr/PR28073/PR28073-output-1.txt",
2047 "output/test-diff-suppr/PR28073/PR28073-output-1.txt"
2048 },
2049 {
2050 "data/test-diff-suppr/PR28073/PR28073.before.o.abi",
2051 "data/test-diff-suppr/PR28073/PR28073-bitfield-removed.o.abi",
2052 "",
2053 "",
2054 "data/test-diff-suppr/PR28073/bitfield.suppr",
2055 "--drop-private-types --no-default-suppression",
2056 "data/test-diff-suppr/PR28073/PR28073-output-2.txt",
2057 "output/test-diff-suppr/PR28073/PR28073-output-2.txt"
2058 },
2059 // This should be the last entry
2060 {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}
2061 };
2062
2063 /// The task that performs the tests.
2064 struct test_task : public abigail::workers::task
2065 {
2066 const InOutSpec& spec;
2067 const std::string& in_base_path;
2068 const std::string& out_base_path;
2069
2070 bool is_ok;
2071 std::string error_message;
2072
test_tasktest_task2073 test_task(const InOutSpec& s,
2074 const std::string& in_base_path,
2075 const std::string& out_base_path)
2076 : spec(s),
2077 in_base_path(in_base_path),
2078 out_base_path(out_base_path),
2079 is_ok(true)
2080 {}
2081
2082 virtual void
performtest_task2083 perform()
2084 {
2085 using abigail::tools_utils::ensure_parent_dir_created;
2086 using abigail::tools_utils::abidiff_status;
2087
2088 const std::string in_elfv0_path = in_base_path + spec.in_elfv0_path;
2089 const std::string in_elfv1_path = in_base_path + spec.in_elfv1_path;
2090
2091 std::string in_suppression_path;
2092 if (spec.in_suppr_path && strcmp(spec.in_suppr_path, ""))
2093 in_suppression_path = in_base_path + spec.in_suppr_path;
2094
2095 const std::string ref_diff_report_path =
2096 in_base_path + spec.in_report_path;
2097 const std::string out_diff_report_path =
2098 out_base_path + spec.out_report_path;
2099
2100 std::string headers_dir1;
2101 if (spec.headers_dir1 && strcmp(spec.headers_dir1, ""))
2102 headers_dir1 = spec.headers_dir1;
2103
2104 std::string headers_dir2;
2105 if (spec.headers_dir2 && strcmp(spec.headers_dir2, ""))
2106 headers_dir2 = spec.headers_dir2;
2107
2108 if (!ensure_parent_dir_created(out_diff_report_path))
2109 {
2110 error_message =
2111 "could not create parent directory for " + out_diff_report_path;
2112 is_ok = false;
2113 return;
2114 }
2115
2116 std::string abidiff = std::string(get_build_dir()) + "/tools/abidiff" + " "
2117 + spec.abidiff_options;
2118
2119 if (!in_suppression_path.empty())
2120 abidiff += " --suppressions " + in_suppression_path;
2121
2122 if (!headers_dir1.empty())
2123 abidiff += " --hd1 " + in_base_path + headers_dir1;
2124
2125 if (!headers_dir2.empty())
2126 abidiff += " --hd2 " + in_base_path + headers_dir2;
2127
2128 const std::string cmd = abidiff + " " + in_elfv0_path + " " + in_elfv1_path
2129 + " > " + out_diff_report_path;
2130
2131 bool bidiff_ok = true;
2132 int code = system(cmd.c_str());
2133 if (!WIFEXITED(code))
2134 bidiff_ok = false;
2135 else
2136 {
2137 abigail::tools_utils::abidiff_status status =
2138 static_cast<abidiff_status>(WEXITSTATUS(code));
2139 if (abigail::tools_utils::abidiff_status_has_error(status))
2140 bidiff_ok = false;
2141 }
2142
2143 if (bidiff_ok)
2144 {
2145 const std::string diff_cmd =
2146 "diff -u " + ref_diff_report_path + " " + out_diff_report_path;
2147 if (system(diff_cmd.c_str()))
2148 is_ok = false;
2149 }
2150 else
2151 is_ok = false;
2152 }
2153 };
2154
2155
2156 int
main(int argc,char * argv[])2157 main(int argc, char *argv[])
2158 {
2159 bool no_parallel = false;
2160
2161 if (argc == 2)
2162 {
2163 if (argv[1] == std::string("--no-parallel"))
2164 no_parallel = true;
2165 else
2166 {
2167 std::cerr << "unrecognized option\n";
2168 std::cerr << "usage: " << argv[0] << " [--no-parallel]\n";
2169 return 1;
2170 }
2171 }
2172
2173 /// Create a task queue. The max number of worker threads of the
2174 /// queue is the number of the concurrent threads supported by the
2175 /// processor of the machine this code runs on. But if
2176 /// --no-parallel was provided then the number of worker threads
2177 /// equals 1.
2178 const size_t num_tests = sizeof(in_out_specs) / sizeof (InOutSpec) - 1;
2179 const size_t num_workers = (no_parallel
2180 ? 1
2181 : std::min(abigail::workers::get_number_of_threads(),
2182 num_tests));
2183 abigail::workers::queue task_queue(num_workers);
2184
2185 const std::string in_base_path = std::string(get_src_dir()) + "/tests/";
2186 const std::string out_base_path = std::string(get_build_dir()) + "/tests/";
2187
2188 // output paths need to be unique to avoid collisions during parallel testing
2189 std::unordered_set<std::string> out_paths;
2190 bool non_unique_output_paths = false;
2191 for (InOutSpec* s = in_out_specs; s->in_elfv0_path; ++s) {
2192 if (!out_paths.insert(s->out_report_path).second) {
2193 std::cerr << "Non-unique output path: " << s->out_report_path
2194 << '\n';
2195 non_unique_output_paths = true;
2196 }
2197 }
2198 if (non_unique_output_paths)
2199 return 1;
2200
2201 for (InOutSpec* s = in_out_specs; s->in_elfv0_path; ++s)
2202 {
2203 std::shared_ptr<test_task> t(
2204 new test_task(*s, in_base_path, out_base_path));
2205 ABG_ASSERT(task_queue.schedule_task(t));
2206 }
2207
2208 /// Wait for all worker threads to finish their job, and wind down.
2209 task_queue.wait_for_workers_to_complete();
2210
2211 // Now walk the results and print whatever error messages need to be printed.
2212 const std::vector<abigail::workers::task_sptr>& completed_tasks =
2213 task_queue.get_completed_tasks();
2214
2215 ABG_ASSERT(completed_tasks.size() == num_tests);
2216
2217 bool is_ok = true;
2218 for (std::vector<abigail::workers::task_sptr>::const_iterator ti =
2219 completed_tasks.begin();
2220 ti != completed_tasks.end();
2221 ++ti)
2222 {
2223 std::shared_ptr<test_task> t =
2224 std::dynamic_pointer_cast<test_task>(*ti);
2225 if (!t->is_ok)
2226 {
2227 is_ok = false;
2228 if (!t->error_message.empty())
2229 std::cerr << t->error_message << '\n';
2230 else
2231 std::cerr << "FAIL: test with output '" << t->spec.out_report_path
2232 << "' failed!\n";
2233 }
2234 }
2235
2236 return !is_ok;
2237 }
2238