xref: /llvm-project/llvm/test/tools/llvm-ar/mri-end.test (revision 2ab260eecfab56aabc9cff979c1618859d3b883d)
1## The END MRI command is optional. Scripts that omit
2## or include END should be handled by llvm-ar.
3
4# RUN: rm -rf %t && split-file %s %t
5# RUN: cd %t
6
7# RUN: yaml2obj %S/Inputs/elf.yaml -o elf.o
8
9## Empty file.
10# RUN: touch empty.mri
11# RUN: llvm-ar -M < empty.mri
12# RUN: llvm-ar -M < empty-end.mri
13
14## Comment only.
15# RUN: llvm-ar -M < comment.mri
16# RUN: llvm-ar -M < comment-end.mri
17
18## Without SAVE.
19# RUN: llvm-ar -M < no-save.mri
20# RUN: test ! -e no-save.ar
21
22# RUN: llvm-ar -M < no-save-end.mri
23# RUN: test ! -e no-save-end.ar
24
25## With SAVE.
26# RUN: llvm-ar -M < save.mri
27# RUN: llvm-ar t save.ar | FileCheck %s
28
29# RUN: llvm-ar -M < save-end.mri
30# RUN: llvm-ar t save-end.ar | FileCheck %s
31
32## Duplicate use of END.
33# RUN: llvm-ar -M < duplicate-end-no-save.mri
34# RUN: test ! -e duplicate-end-no-save.ar
35
36# RUN: llvm-ar -M < duplicate-end-save.mri
37# RUN: llvm-ar t duplicate-end-save.ar | FileCheck %s
38
39## Use of END before saving.
40# RUN: llvm-ar -M < end-before-save.mri
41# RUN: llvm-ar t end-before-save.ar | FileCheck %s
42
43# CHECK: elf.o
44
45#--- empty-end.mri
46END
47
48#--- comment.mri
49; a comment
50
51#--- comment-end.mri
52; a comment
53END
54
55#--- no-save.mri
56create no-save.ar
57addmod elf.o
58
59#--- no-save-end.mri
60create no-save-end.ar
61addmod elf.o
62END
63
64#--- save.mri
65create save.ar
66addmod elf.o
67save
68
69#--- save-end.mri
70create save-end.ar
71addmod elf.o
72save
73end
74
75#--- duplicate-end-no-save.mri
76create duplicate-end-no-save.ar
77addmod elf.o
78END
79END
80
81#--- duplicate-end-save.mri
82create duplicate-end-save.ar
83addmod elf.o
84save
85END
86END
87
88#--- end-before-save.mri
89create end-before-save.ar
90addmod elf.o
91end
92save
93