Skip to content

Commit 971ac4c

Browse files
author
Owen Reynolds
committed
Reapply [llvm-ar][test] Add to MRI test coverage
This reapplies 363232 without mri-utf8.test due to failing on Darwin. Differential Revision: https://reviews.llvm.org/D63197 llvm-svn: 366201
1 parent 0afffab commit 971ac4c

File tree

4 files changed

+139
-0
lines changed

4 files changed

+139
-0
lines changed
+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## Test the ADDLIB MRI command.
2+
3+
# RUN: rm -rf %t && mkdir -p %t
4+
# RUN: yaml2obj %s -o %t/f.o
5+
# RUN: llvm-ar r %t/f.a %t/f.o
6+
7+
## Merge contents of archives.
8+
# RUN: echo "CREATE %t/addlib.a" > %t/addlib.mri
9+
# RUN: echo "ADDLIB %t/f.a" >> %t/addlib.mri
10+
# RUN: echo "SAVE" >> %t/addlib.mri
11+
# RUN: llvm-ar -M < %t/addlib.mri
12+
# RUN: llvm-nm --print-armap %t/addlib.a | FileCheck --check-prefix=SYMS %s
13+
# RUN: llvm-ar t %t/addlib.a | FileCheck --check-prefix=FILES %s
14+
15+
# SYMS: f in {{.*}}
16+
# FILES: f.o
17+
18+
## ADDLIB with non-archive file.
19+
# RUN: echo "CREATE %t/badlib.a" > %t/badlib.mri
20+
# RUN: echo "ADDLIB %s" >> %t/badlib.mri
21+
# RUN: echo "SAVE" >> %t/badlib.mri
22+
# RUN: not llvm-ar -M < %t/badlib.mri 2>&1 | FileCheck --check-prefix=PARSE %s
23+
# RUN: not ls %t/badlib.a
24+
25+
# PARSE: Could not parse library
26+
27+
## No create command.
28+
# RUN: echo "ADDLIB %t/f.a" > %t/nocreate.mri
29+
# RUN: echo "SAVE" >> %t/nocreate.mri
30+
# RUN: not llvm-ar -M < %t/nocreate.mri
31+
32+
--- !ELF
33+
FileHeader:
34+
Class: ELFCLASS64
35+
Data: ELFDATA2LSB
36+
Type: ET_REL
37+
Machine: EM_X86_64
38+
Sections:
39+
- Name: .text
40+
Type: SHT_PROGBITS
41+
Symbols:
42+
- Name: f
43+
Binding: STB_GLOBAL
44+
Section: .text
45+
...
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
## Test the ADDMOD MRI command.
2+
3+
# RUN: rm -rf %t && mkdir -p %t
4+
# RUN: yaml2obj %s -o %t/f.o
5+
6+
# RUN: echo "CREATE %t/addmod.a" > %t/addmod.mri
7+
# RUN: echo "ADDMOD %t/f.o" >> %t/addmod.mri
8+
# RUN: echo "SAVE" >> %t/addmod.mri
9+
# RUN: llvm-ar -M < %t/addmod.mri
10+
# RUN: llvm-nm --print-armap %t/addmod.a | FileCheck %s
11+
12+
# CHECK: f in f.o
13+
14+
--- !ELF
15+
FileHeader:
16+
Class: ELFCLASS64
17+
Data: ELFDATA2LSB
18+
Type: ET_REL
19+
Machine: EM_X86_64
20+
Sections:
21+
- Name: .text
22+
Type: SHT_PROGBITS
23+
Symbols:
24+
- Name: f
25+
Binding: STB_GLOBAL
26+
Section: .text
27+
...
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Test different MRI comment formats and white space.
2+
3+
RUN: rm -rf %t && mkdir -p %t
4+
RUN: yaml2obj %S/Inputs/elf.yaml -o %t/elf.o
5+
6+
RUN: echo "create %t/mri.ar;comment" > %t/script.mri
7+
RUN: echo "addmod %t/elf.o * comment" >> %t/script.mri
8+
RUN: echo "; comment" >> %t/script.mri
9+
RUN: echo " ;comment" >> %t/script.mri
10+
RUN: echo "* comment" >> %t/script.mri
11+
RUN: echo " *comment" >> %t/script.mri
12+
RUN: echo "" >> %t/script.mri
13+
RUN: echo " " >> %t/script.mri
14+
RUN: echo " save" >> %t/script.mri
15+
16+
RUN: llvm-ar -M < %t/script.mri
17+
RUN: llvm-ar t %t/mri.ar | FileCheck %s
18+
19+
CHECK: elf.o

llvm/test/tools/llvm-ar/mri-end.test

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# The END MRI command is optional. Scripts that omit
2+
# or include END should be handled by llvm-ar.
3+
RUN: rm -rf %t && mkdir -p %t
4+
5+
# Empty File
6+
RUN: yaml2obj %S/Inputs/elf.yaml -o %t/elf.o
7+
8+
RUN: touch %t/empty.mri
9+
RUN: llvm-ar -M < %t/empty.mri
10+
11+
RUN: echo "END" > %t/empty-end.mri
12+
RUN: llvm-ar -M < %t/empty-end.mri
13+
14+
# Comment only
15+
RUN: echo "; a comment" > %t/comment.mri
16+
RUN: llvm-ar -M < %t/comment.mri
17+
18+
RUN: echo "; a comment" > %t/comment-end.mri
19+
RUN: echo "END" > %t/comment-end.mri
20+
RUN: llvm-ar -M < %t/comment-end.mri
21+
22+
# Without Save
23+
RUN: echo "create %t/mri.ar" > %t/no-save.mri
24+
RUN: echo "addmod %t/elf.o" >> %t/no-save.mri
25+
RUN: llvm-ar -M < %t/no-save.mri
26+
RUN: test ! -e %t/mri.ar
27+
28+
RUN: echo "create %t/mri.ar" > %t/no-save-end.mri
29+
RUN: echo "addmod %t/elf.o" >> %t/no-save-end.mri
30+
RUN: echo "END" > %t/no-save-end.mri
31+
RUN: llvm-ar -M < %t/no-save-end.mri
32+
RUN: test ! -e %t/mri.ar
33+
34+
# With Save
35+
RUN: echo "create %t/mri.ar" > %t/save.mri
36+
RUN: echo "addmod %t/elf.o" >> %t/save.mri
37+
RUN: echo "save" >> %t/save.mri
38+
RUN: llvm-ar -M < %t/save.mri
39+
RUN: llvm-ar t %t/mri.ar | FileCheck %s
40+
41+
RUN: echo "create %t/mri.ar" > %t/save-end.mri
42+
RUN: echo "addmod %t/elf.o" >> %t/save-end.mri
43+
RUN: echo "save" >> %t/save-end.mri
44+
RUN: echo "END" > %t/no-save-end.mri
45+
RUN: llvm-ar -M < %t/save-end.mri
46+
RUN: llvm-ar t %t/mri.ar | FileCheck %s
47+
48+
CHECK: elf.o

0 commit comments

Comments
 (0)