I discovered that when compared to GNU the llvm-ar MRI script parsing of CREATE could lead to some strange behaviour. This fix improves the error message in the case when no archive name is given and will not allow the adding of members until CREATE is called. Along with this change I added more testing of the CREATE command. Differential Revision: https://reviews.llvm.org/D128055
114 lines
2.4 KiB
Plaintext
114 lines
2.4 KiB
Plaintext
## Test the CREATE MRI command.
|
|
|
|
# RUN: rm -rf %t && mkdir -p %t/path/ && split-file %s %t
|
|
# RUN: cd %t
|
|
|
|
# RUN: llvm-ar -M < create.mri
|
|
# RUN: llvm-ar -M < thin.mri
|
|
|
|
## Test use of CREATE with no archive name.
|
|
# RUN: not llvm-ar -M < none.mri 2>&1 | FileCheck --check-prefix=NONE %s
|
|
# RUN: not llvm-ar -M < thin-none.mri 2>&1 | FileCheck --check-prefix=NONE %s
|
|
# RUN: not llvm-ar -M < none-add.mri 2>&1 | FileCheck --check-prefix=NONE %s
|
|
# RUN: not llvm-ar -M < thin-none-add.mri 2>&1 | FileCheck --check-prefix=NONE %s
|
|
|
|
# NONE: error: script line 1: missing archive name
|
|
|
|
## Test use of paths with CREATE.
|
|
# RUN: llvm-ar -M < path.mri
|
|
# RUN: ls path/path.a
|
|
# RUN: llvm-ar -M < thin-path.mri
|
|
# RUN: ls path/thin-path.a
|
|
|
|
## Test bad paths with CREATE.
|
|
# RUN: not llvm-ar -M < bad.mri 2>&1 | FileCheck --check-prefix=BAD -DMSG=%errc_ENOENT %s
|
|
# RUN: not llvm-ar -M < thin-bad.mri 2>&1 | FileCheck --check-prefix=BAD -DMSG=%errc_ENOENT %s
|
|
# BAD: error: bad/bad.a: [[MSG]]
|
|
|
|
## Test duplicate use of CREATE.
|
|
# RUN: not llvm-ar -M < create2.mri 2>&1 | FileCheck --check-prefix=MULTIPLE %s -DLINE=2
|
|
# RUN: not llvm-ar -M < thin2.mri 2>&1 | FileCheck --check-prefix=MULTIPLE %s -DLINE=2
|
|
# RUN: not llvm-ar -M < mix1.mri 2>&1 | FileCheck --check-prefix=MULTIPLE %s -DLINE=2
|
|
# RUN: not llvm-ar -M < mix2.mri 2>&1 | FileCheck --check-prefix=MULTIPLE %s -DLINE=2
|
|
# RUN: not llvm-ar -M < save.mri 2>&1 | FileCheck --check-prefix=MULTIPLE %s -DLINE=3
|
|
# RUN: not llvm-ar -M < thin-save.mri 2>&1 | FileCheck --check-prefix=MULTIPLE %s -DLINE=3
|
|
|
|
# MULTIPLE: error: script line [[LINE]]: editing multiple archives not supported
|
|
|
|
#--- create.mri
|
|
CREATE create.a
|
|
SAVE
|
|
|
|
#--- thin.mri
|
|
CREATETHIN thin.a
|
|
SAVE thin.mri
|
|
|
|
#--- none.mri
|
|
CREATE
|
|
SAVE
|
|
|
|
#--- thin-none.mri
|
|
CREATETHIN
|
|
SAVE
|
|
|
|
#--- foo.txt
|
|
FOO
|
|
|
|
#--- none-add.mri
|
|
CREATE
|
|
ADDMOD foo.txt
|
|
SAVE
|
|
|
|
#--- thin-none-add.mri
|
|
CREATETHIN
|
|
ADDMOD foo.txt
|
|
SAVE
|
|
|
|
#--- path.mri
|
|
CREATE path/path.a
|
|
SAVE
|
|
|
|
#--- thin-path.mri
|
|
CREATETHIN path/thin-path.a
|
|
SAVE
|
|
|
|
#--- bad.mri
|
|
CREATE bad/bad.a
|
|
SAVE
|
|
|
|
#--- thin-bad.mri
|
|
CREATETHIN bad/bad.a
|
|
SAVE
|
|
|
|
#--- create2.mri
|
|
CREATE create1.a
|
|
CREATE create2.a
|
|
SAVE
|
|
|
|
#--- thin2.mri
|
|
CREATETHIN thin1.a
|
|
CREATETHIN thin2.a
|
|
SAVE
|
|
|
|
#--- mix1.mri
|
|
CREATE mix1.a
|
|
CREATETHIN mixthin1.a
|
|
SAVE
|
|
|
|
#--- mix2.mri
|
|
CREATETHIN mixthin2.a
|
|
CREATE mix2.a
|
|
SAVE
|
|
|
|
#--- save.mri
|
|
CREATE create1.a
|
|
SAVE
|
|
CREATE create2.a
|
|
SAVE
|
|
|
|
#--- thin-save.mri
|
|
CREATETHIN create1.a
|
|
SAVE
|
|
CREATETHIN create2.a
|
|
SAVE
|