xref: /aosp_15_r20/external/llvm/test/Object/archive-format.test (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard WorkerTest the exact archive format. In particular, test which file names use the
2*9880d681SAndroid Build Coastguard Workerstring table or not.
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard WorkerRUN: mkdir -p %t
5*9880d681SAndroid Build Coastguard WorkerRUN: cd %t
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard WorkerRUN: echo -n bar. > 0123456789abcde
8*9880d681SAndroid Build Coastguard WorkerRUN: echo -n zed. > 0123456789abcdef
9*9880d681SAndroid Build Coastguard WorkerRUN: mkdir -p foo
10*9880d681SAndroid Build Coastguard WorkerRUN: echo -n bar2 > foo/0123456789abcde
11*9880d681SAndroid Build Coastguard WorkerRUN: echo -n zed2 > foo/0123456789abcdef
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard WorkerRUN: rm -f %t.a
14*9880d681SAndroid Build Coastguard WorkerRUN: llvm-ar --format=gnu rc %t.a 0123456789abcde 0123456789abcdef foo/0123456789abcde foo/0123456789abcdef
15*9880d681SAndroid Build Coastguard WorkerRUN: cat %t.a | FileCheck -strict-whitespace %s
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard WorkerCHECK:      !<arch>
18*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: //                                              36        `
19*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: 0123456789abcdef/
20*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: 0123456789abcdef/
21*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: 0123456789abcde/0           0     0     644     4         `
22*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: bar.
23*9880d681SAndroid Build Coastguard WorkerCHECK-SAME: /0              0           0     0     644     4         `
24*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: zed.
25*9880d681SAndroid Build Coastguard WorkerCHECK-SAME: 0123456789abcde/0           0     0     644     4         `
26*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: bar2
27*9880d681SAndroid Build Coastguard WorkerCHECK-SAME: /18             0           0     0     644     4         `
28*9880d681SAndroid Build Coastguard WorkerCHECK-NEXT: zed2
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard WorkerRUN: rm -f %t.a
31*9880d681SAndroid Build Coastguard WorkerRUN: llvm-ar --format=bsd rc %t.a 0123456789abcde 0123456789abcdef
32*9880d681SAndroid Build Coastguard WorkerRUN: cat %t.a | FileCheck -strict-whitespace --check-prefix=BSD %s
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard WorkerBSD:      !<arch>
35*9880d681SAndroid Build Coastguard WorkerBSD-NEXT: #1/20           0           0     0     644     24        `
36*9880d681SAndroid Build Coastguard WorkerBSD-NEXT: 0123456789abcde{{.....}}bar.
37*9880d681SAndroid Build Coastguard WorkerBSD-SAME: #1/16           0           0     0     644     20        `
38*9880d681SAndroid Build Coastguard WorkerBSD-NEXT: 0123456789abcdefzed.
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard WorkerRUN: rm -f test.a
41*9880d681SAndroid Build Coastguard WorkerRUN: llvm-ar --format=gnu rcT test.a 0123456789abcde 0123456789abcdef
42*9880d681SAndroid Build Coastguard WorkerRUN: cat test.a | FileCheck -strict-whitespace --check-prefix=THIN %s
43*9880d681SAndroid Build Coastguard WorkerTHIN: !<thin>
44*9880d681SAndroid Build Coastguard WorkerTHIN-NEXT: //                                              36        `
45*9880d681SAndroid Build Coastguard WorkerTHIN-NEXT: 0123456789abcde/
46*9880d681SAndroid Build Coastguard WorkerTHIN-NEXT: 0123456789abcdef/{{$}}
47*9880d681SAndroid Build Coastguard WorkerTHIN: {{^$}}
48*9880d681SAndroid Build Coastguard WorkerTHIN: /0              0           0     0     644     4         `
49*9880d681SAndroid Build Coastguard WorkerTHIN-NEXT: /17             0           0     0     644     4         `
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard WorkerRUN: mkdir -p bar
52*9880d681SAndroid Build Coastguard WorkerRUN: rm -f bar/test.a
53*9880d681SAndroid Build Coastguard WorkerRUN: llvm-ar --format=gnu rcT bar/test.a 0123456789abcde 0123456789abcdef foo/0123456789abcde foo/0123456789abcdef
54*9880d681SAndroid Build Coastguard WorkerRUN: cat bar/test.a | FileCheck -strict-whitespace --check-prefix=THIN-PATH %s
55*9880d681SAndroid Build Coastguard WorkerTHIN-PATH: !<thin>
56*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: //                                              90        `
57*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: ..{{/|\\}}0123456789abcde/
58*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: ..{{/|\\}}0123456789abcdef/
59*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: ..{{/|\\}}foo{{/|\\}}0123456789abcde/
60*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: ..{{/|\\}}foo{{/|\\}}0123456789abcdef/
61*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: /0              0           0     0     644     4         `
62*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: /20             0           0     0     644     4         `
63*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: /41             0           0     0     644     4         `
64*9880d681SAndroid Build Coastguard WorkerTHIN-PATH-NEXT: /65             0           0     0     644     4         `
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard WorkerRUN: not llvm-ar --format=bsd rcT bad.a 0123456789abcde 0123456789abcdef 2>&1 | FileCheck --check-prefix=BSD-THIN %s
67*9880d681SAndroid Build Coastguard WorkerBSD-THIN: Only the gnu format has a thin mode.
68