Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-libtool-darwin / filelist.test
blob1c1da31facaf36d7a1fca7f742d44f10c14a74a2
1 ## This test checks that the -filelist option works correctly.
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 ## Passing files in a listfile:
8 # RUN: echo %t-input1.o >  %t.files.txt
9 # RUN: echo %t-input2.o >> %t.files.txt
10 # RUN: echo %t-x86_64.bc >> %t.files.txt
11 # RUN: llvm-libtool-darwin -static -o %t.lib -filelist %t.files.txt
13 ## Check that binaries are present:
14 # RUN: llvm-ar t %t.lib | \
15 # RUN:   FileCheck %s --check-prefix=CHECK-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp
17 # CHECK-NAMES:      [[PREFIX]]-input1.o
18 # CHECK-NAMES-NEXT: [[PREFIX]]-input2.o
19 # CHECK-NAMES-NEXT: [[PREFIX]]-x86_64.bc
21 ## Check that symbols are present:
22 # RUN: llvm-nm --print-armap %t.lib | \
23 # RUN:   FileCheck %s --check-prefix=CHECK-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines
25 # CHECK-SYMBOLS:      Archive map
26 # CHECK-SYMBOLS-NEXT: _symbol1 in [[PREFIX]]-input1.o
27 # CHECK-SYMBOLS-NEXT: _symbol2 in [[PREFIX]]-input2.o
28 # CHECK-SYMBOLS-NEXT: _x86_64 in [[PREFIX]]-x86_64.bc
29 # CHECK-SYMBOLS-EMPTY:
31 # RUN: rm -rf %t/dirname && mkdir -p %t/dirname
32 # RUN: yaml2obj %S/Inputs/input1.yaml -o %t/dirname/%basename_t.tmp-input1.o
33 # RUN: echo %basename_t.tmp-input1.o > %t.files2.txt
35 ## Passing in dirname:
36 # RUN: llvm-libtool-darwin -static -o %t.lib -filelist %t.files2.txt,%t/dirname
37 # RUN: llvm-ar t %t.lib | \
38 # RUN:   FileCheck %s --check-prefix=DIRNAME-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp
39 # RUN: llvm-nm --print-armap %t.lib | \
40 # RUN:   FileCheck %s --check-prefix=DIRNAME-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines
42 # DIRNAME-NAMES:      [[PREFIX]]-input1.o
44 # DIRNAME-SYMBOLS:      Archive map
45 # DIRNAME-SYMBOLS-NEXT: _symbol1 in [[PREFIX]]-input1.o
46 # DIRNAME-SYMBOLS-EMPTY:
48 ## Passing both -filelist option and object file as input:
49 # RUN: llvm-libtool-darwin -static -o %t.lib -filelist %t.files2.txt,%t/dirname %t-input2.o
50 # RUN: llvm-ar t %t.lib | \
51 # RUN:   FileCheck %s --check-prefix=REVERSE-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp
52 # RUN: llvm-nm --print-armap %t.lib | \
53 # RUN:   FileCheck %s --check-prefix=REVERSE-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines
55 # REVERSE-NAMES:      [[PREFIX]]-input2.o
56 # REVERSE-NAMES-NEXT: [[PREFIX]]-input1.o
58 # REVERSE-SYMBOLS:      Archive map
59 # REVERSE-SYMBOLS-NEXT: _symbol2 in [[PREFIX]]-input2.o
60 # REVERSE-SYMBOLS-NEXT: _symbol1 in [[PREFIX]]-input1.o
61 # REVERSE-SYMBOLS-EMPTY:
63 ## Check that an error is thrown when a file in the filelist doesn't exist in the cwd and no dirname is specified:
64 # RUN: echo 'no-such-file' > %t.invalid-list.txt
65 # RUN: not llvm-libtool-darwin -static -o %t.lib -filelist %t.invalid-list.txt 2>&1 | \
66 # RUN:   FileCheck %s --check-prefix=FILE-ERROR -DFILE=no-such-file -DMSG=%errc_ENOENT
68 # FILE-ERROR: error: '[[FILE]]': [[MSG]]
70 ## Check that an error is thrown when the directory exists but does not contain the requested file:
71 # RUN: not llvm-libtool-darwin -static -o %t.lib -filelist %t.invalid-list.txt,%t/dirname 2>&1 | \
72 # RUN:   FileCheck %s --check-prefix=DIR-ERROR -DDIR=%t/dirname -DFILE=no-such-file -DMSG=%errc_ENOENT
74 # DIR-ERROR: error: '[[DIR]]{{[/\\]}}[[FILE]]': [[MSG]]
76 ## Check that an error is thrown when a file is in the cwd but dirname is specified:
77 # RUN: yaml2obj %S/Inputs/input2.yaml -o %basename_t.tmp-input2.o
78 # RUN: echo %basename_t.tmp-input2.o > %t.files-cwd.txt
79 # RUN: not llvm-libtool-darwin -static -o %t.lib -filelist %t.files-cwd.txt,%t/dirname 2>&1 | \
80 # RUN:   FileCheck %s --check-prefix=DIR-ERROR -DDIR=%t/dirname -DFILE=%basename_t.tmp-input2.o -DMSG=%errc_ENOENT
82 ## Check that an error is thrown when the directory doesn't exist:
83 # RUN: not llvm-libtool-darwin -static -o %t.lib -filelist %t.files-cwd.txt,%t/Invalid-Dir 2>&1 | \
84 # RUN:   FileCheck %s --check-prefix=DIR-ERROR -DDIR=%t/Invalid-Dir -DFILE=%basename_t.tmp-input2.o -DMSG=%errc_ENOENT
86 ## Check that an error is thrown when the filelist is empty:
87 # RUN: touch %t.empty-list
88 # RUN: not llvm-libtool-darwin -static -o %t.lib -filelist %t.empty-list 2>&1 | \
89 # RUN:   FileCheck %s --check-prefix=EMPTY-ERROR -DFILE=%t.empty-list
91 # EMPTY-ERROR: error: file list file: '[[FILE]]' is empty
93 ## Check that an error is thrown when the filelist contains a blank line:
94 # RUN: echo %t-input2.o > %t.blank-line.txt
95 # RUN: echo '' >> %t.blank-line.txt
96 # RUN: not llvm-libtool-darwin -static -o %t.lib -filelist %t.blank-line.txt 2>&1 | \
97 # RUN:   FileCheck %s --check-prefix=EMPTY-FILENAME -DFILE=%t.blank-line.txt
99 # EMPTY-FILENAME: error: file list file: '[[FILE]]': filename cannot be empty
101 ## Check that an error is thrown when the filelist contains a line with only spaces:
102 # RUN: echo %t-input2.o > %t.space-line.txt
103 # RUN: echo "     " >> %t.space-line.txt
104 # RUN: not llvm-libtool-darwin -static -o %t.lib -filelist %t.space-line.txt 2>&1 | \
105 # RUN:   FileCheck %s --check-prefix=FILE-ERROR -DFILE='     ' -DMSG=%errc_ENOENT --strict-whitespace
107 ## Filelist option specified more than once:
108 # RUN: touch %t.list1.txt and %t.list2.txt
109 # RUN: llvm-libtool-darwin -static -o %t.lib -filelist %t.empty-list -filelist %t.files.txt 2>&1
110 # RUN: llvm-ar t %t.lib | \
111 # RUN:   FileCheck %s --check-prefix=CHECK-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp