Files
clang-p2996/llvm/test/tools/llvm-ar/mri-create.test
gbreynoo 7de277d684 [llvm-ar] Improve MRI script CREATE command handling
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
2022-06-27 11:11:16 +01:00

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