[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / tools / llvm-libtool-darwin / create-static-lib.test
blob92baea34c7bc2f9fd9cc8750538b3540d519c37c
1 ## This test checks that a correct static library is created.
3 # RUN: yaml2obj %S/Inputs/input1.yaml -o %t-input1.o
4 # RUN: yaml2obj %S/Inputs/input2.yaml -o %t-input2.o
5 # RUN: llvm-as %S/Inputs/x86_64-osx.ll -o %t-x86_64.bc
7 # RUN: rm -rf %t.lib
8 # RUN: llvm-libtool-darwin -static -o %t.lib %t-input1.o %t-input2.o %t-x86_64.bc
10 ## Check that binaries are present:
11 # RUN: llvm-ar t %t.lib | \
12 # RUN:   FileCheck %s --check-prefix=CHECK-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp
14 # CHECK-NAMES:      [[PREFIX]]-input1.o
15 # CHECK-NAMES-NEXT: [[PREFIX]]-input2.o
16 # CHECK-NAMES-NEXT: [[PREFIX]]-x86_64.bc
18 ## Check that symbols are present:
19 # RUN: llvm-nm --print-armap %t.lib | \
20 # RUN:   FileCheck %s --check-prefix=CHECK-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines
22 # CHECK-SYMBOLS:      Archive map
23 # CHECK-SYMBOLS-NEXT: _symbol1 in [[PREFIX]]-input1.o
24 # CHECK-SYMBOLS-NEXT: _symbol2 in [[PREFIX]]-input2.o
25 # CHECK-SYMBOLS-NEXT: _x86_64 in [[PREFIX]]-x86_64.bc
26 # CHECK-SYMBOLS-EMPTY:
28 ## Check that output archive is in Darwin format:
29 # RUN: llvm-objdump --macho --archive-headers %t.lib | \
30 # RUN:   FileCheck %s --check-prefix=FORMAT -DPREFIX=%basename_t.tmp -DARCHIVE=%t
32 # FORMAT:      Archive : [[ARCHIVE]]
33 # FORMAT-NEXT: __.SYMDEF
34 # FORMAT-NEXT: [[PREFIX]]-input1.o
35 # FORMAT-NEXT: [[PREFIX]]-input2.o
36 # FORMAT-NEXT: [[PREFIX]]-x86_64.bc
37 # FORMAT-NOT:  {{.}}
39 ## Check that the output file is overwritten:
40 # RUN: llvm-libtool-darwin -static -o %t.lib %t-input2.o
41 # RUN: llvm-ar t %t.lib | \
42 # RUN:   FileCheck %s --check-prefix=OVERWRITE-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp
43 # RUN: llvm-nm --print-armap %t.lib | \
44 # RUN:   FileCheck %s --check-prefix=OVERWRITE-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines
46 # OVERWRITE-NAMES: [[PREFIX]]-input2.o
48 # OVERWRITE-SYMBOLS:      Archive map
49 # OVERWRITE-SYMBOLS-NEXT: _symbol2 in [[PREFIX]]-input2.o
50 # OVERWRITE-SYMBOLS-EMPTY:
52 ## Duplicate a binary:
53 ## cctools' libtool raises a warning in this case.
54 ## The warning is not yet implemented for llvm-libtool-darwin.
55 # RUN: llvm-libtool-darwin -static -o %t.lib %t-input1.o %t-input2.o %t-input1.o 2>&1 | \
56 # RUN:   FileCheck %s --allow-empty --implicit-check-not={{.}}
57 # RUN: llvm-ar t %t.lib | \
58 # RUN:   FileCheck %s --check-prefix=DUPLICATE-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp
59 # RUN: llvm-nm --print-armap %t.lib | \
60 # RUN:   FileCheck %s --check-prefix=DUPLICATE-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines
62 # DUPLICATE-NAMES:      [[PREFIX]]-input1.o
63 # DUPLICATE-NAMES-NEXT: [[PREFIX]]-input2.o
64 # DUPLICATE-NAMES-NEXT: [[PREFIX]]-input1.o
66 # DUPLICATE-SYMBOLS:      Archive map
67 # DUPLICATE-SYMBOLS-NEXT: _symbol1 in [[PREFIX]]-input1.o
68 # DUPLICATE-SYMBOLS-NEXT: _symbol2 in [[PREFIX]]-input2.o
69 # DUPLICATE-SYMBOLS-NEXT: _symbol1 in [[PREFIX]]-input1.o
70 # DUPLICATE-SYMBOLS-EMPTY: