xref: /aosp_15_r20/external/llvm/test/Object/archive-extract.test (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; This test just makes sure that llvm-ar can extract bytecode members
2*9880d681SAndroid Build Coastguard Worker; from various style archives.
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; RUN: cd %T
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; RUN: rm -f very_long_bytecode_file_name.bc
7*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar p %p/Inputs/GNU.a very_long_bytecode_file_name.bc | \
8*9880d681SAndroid Build Coastguard Worker; RUN:   cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
9*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar x %p/Inputs/GNU.a very_long_bytecode_file_name.bc
10*9880d681SAndroid Build Coastguard Worker; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
11*9880d681SAndroid Build Coastguard Worker; RUN:        very_long_bytecode_file_name.bc
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker; RUN: rm -f very_long_bytecode_file_name.bc
14*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar p %p/Inputs/MacOSX.a very_long_bytecode_file_name.bc | \
15*9880d681SAndroid Build Coastguard Worker; RUN:   cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
16*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar x %p/Inputs/MacOSX.a very_long_bytecode_file_name.bc
17*9880d681SAndroid Build Coastguard Worker; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
18*9880d681SAndroid Build Coastguard Worker; RUN:        very_long_bytecode_file_name.bc
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Worker; RUN: rm -f very_long_bytecode_file_name.bc
21*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar p %p/Inputs/SVR4.a very_long_bytecode_file_name.bc | \
22*9880d681SAndroid Build Coastguard Worker; RUN:   cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
23*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar x %p/Inputs/SVR4.a very_long_bytecode_file_name.bc
24*9880d681SAndroid Build Coastguard Worker; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
25*9880d681SAndroid Build Coastguard Worker; RUN:        very_long_bytecode_file_name.bc
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker; RUN: rm -f very_long_bytecode_file_name.bc
28*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar p %p/Inputs/xpg4.a very_long_bytecode_file_name.bc |\
29*9880d681SAndroid Build Coastguard Worker; RUN:   cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
30*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar x %p/Inputs/xpg4.a very_long_bytecode_file_name.bc
31*9880d681SAndroid Build Coastguard Worker; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
32*9880d681SAndroid Build Coastguard Worker; RUN:        very_long_bytecode_file_name.bc
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Worker; Test that the 'o' option is working by extracting a file, putting it in o
36*9880d681SAndroid Build Coastguard Worker; new archive and checking that date.
37*9880d681SAndroid Build Coastguard Worker; RUN: rm -f very_long_bytecode_file_name.bc
38*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar xo %p/Inputs/GNU.a very_long_bytecode_file_name.bc
39*9880d681SAndroid Build Coastguard Worker; RUN: rm -f %t.a
40*9880d681SAndroid Build Coastguard Worker; RUN: llvm-ar rcU %t.a very_long_bytecode_file_name.bc
41*9880d681SAndroid Build Coastguard Worker; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard WorkerCHECK: 1465 2004-11-19 03:01:31.000000000 very_long_bytecode_file_name.bc
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard WorkerRUN: not llvm-ar x %p/Inputs/GNU.a foo.o 2>&1 | FileCheck --check-prefix=NOTFOUND %s
47*9880d681SAndroid Build Coastguard WorkerNOTFOUND: foo.o was not found
48*9880d681SAndroid Build Coastguard Worker
49*9880d681SAndroid Build Coastguard WorkerRUN: not llvm-ar x %p/Inputs/thin.a foo.o 2>&1 | FileCheck %s --check-prefix=THINEXTRACT
50*9880d681SAndroid Build Coastguard WorkerTHINEXTRACT: extracting from a thin archive is not supported
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard WorkerRUN: llvm-ar p %p/Inputs/thin.a evenlen | FileCheck %s --check-prefix=EVENLEN
53*9880d681SAndroid Build Coastguard WorkerEVENLEN: evenlen
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard WorkerRUN: not llvm-ar p %p/Inputs/thin-path.a t/test2.o | FileCheck %s --check-prefix=MISSING
56*9880d681SAndroid Build Coastguard WorkerMISSING: {{N|n}}o such file or directory.
57