168 lines
3.6 KiB
Text
168 lines
3.6 KiB
Text
# RUN: rm -rf %t && split-file %s %t
|
|
# RUN: cd %t
|
|
|
|
# RUN: yaml2obj %S/Inputs/elf.yaml -o elf.o
|
|
# RUN: llvm-ar -rc elf.a elf.o text.txt
|
|
# RUN: llvm-ar -rc --thin thin-elf.a elf.o text.txt
|
|
|
|
## Basic delete.
|
|
# RUN: llvm-ar -M < delete.mri
|
|
# RUN: llvm-ar tv delete.ar | FileCheck %s --check-prefixes=DELETE --implicit-check-not=elf.o
|
|
|
|
# DELETE: text.txt
|
|
|
|
## Delete so the archive is empty.
|
|
# RUN: llvm-ar -M < empty.mri
|
|
# RUN: llvm-ar tv empty.ar | FileCheck %s --check-prefixes=EMPTY --allow-empty
|
|
|
|
# EMPTY-NOT: elf.o
|
|
|
|
## Attempt to delete a file that is not in the archive.
|
|
# RUN: llvm-ar -M < bad.mri
|
|
# RUN: llvm-ar tv bad.ar | FileCheck %s --check-prefixes=BOTH
|
|
|
|
## Delete operation in a script with comments.
|
|
# RUN: llvm-ar -M < comment.mri
|
|
# RUN: llvm-ar tv comment.ar | FileCheck %s --check-prefixes=DELETE --implicit-check-not=elf.o
|
|
|
|
## Add a file that has been deleted.
|
|
# RUN: llvm-ar -M < re-add.mri
|
|
# RUN: llvm-ar tv re-add.ar | FileCheck %s --check-prefixes=BOTH
|
|
|
|
# BOTH-DAG: text.txt
|
|
# BOTH-DAG: elf.o
|
|
|
|
## Add the same file twice and delete them. It is expected behaviour
|
|
## that one delete command deletes all matching members.
|
|
# RUN: llvm-ar -M < duplicate.mri
|
|
# RUN: llvm-ar tv duplicate.ar | FileCheck %s --check-prefixes=DELETE --implicit-check-not=elf.o
|
|
|
|
## Add and delete the same file twice.
|
|
# RUN: llvm-ar -M < duplicate-re-add.mri
|
|
# RUN: llvm-ar tv duplicate-re-add.ar | FileCheck %s --check-prefixes=DELETE --implicit-check-not=elf.o
|
|
|
|
## Attempt to delete the same file twice.
|
|
# RUN: llvm-ar -M < extra-delete.mri
|
|
# RUN: llvm-ar tv extra-delete.ar | FileCheck %s --check-prefixes=DELETE --implicit-check-not=elf.o
|
|
|
|
## Add the same file to a thin archive twice.
|
|
# RUN: llvm-ar -M < thin-duplicate.mri
|
|
# RUN: llvm-ar tv thin-duplicate.ar | FileCheck %s --check-prefixes=DELETE --implicit-check-not=elf.o
|
|
|
|
## Delete a file after it was added via ADDLIB.
|
|
# RUN: llvm-ar -M < addlib.mri
|
|
# RUN: llvm-ar tv addlib.ar | FileCheck %s --check-prefixes=DELETE --implicit-check-not=elf.o
|
|
|
|
## Attempt to delete an archive after it was added via ADDLIB.
|
|
# RUN: llvm-ar -M < addlib-deletelib.mri
|
|
# RUN: llvm-ar tv addlib-deletelib.ar | FileCheck %s --check-prefixes=BOTH
|
|
|
|
## Add the same archive twice to a thin archive and then delete some members.
|
|
# RUN: llvm-ar -M < addlib-thin-duplicate.mri
|
|
# RUN: llvm-ar tv addlib-thin-duplicate.ar | FileCheck %s --check-prefixes=DELETE --implicit-check-not=elf.o
|
|
|
|
#--- text.txt
|
|
I AM A TEXT FILE
|
|
|
|
#--- delete.mri
|
|
create delete.ar
|
|
addmod text.txt
|
|
addmod elf.o
|
|
delete elf.o
|
|
save
|
|
end
|
|
|
|
#--- empty.mri
|
|
create empty.ar
|
|
addmod elf.o
|
|
delete elf.o
|
|
save
|
|
end
|
|
|
|
#--- bad.mri
|
|
create bad.ar
|
|
addmod text.txt
|
|
addmod elf.o
|
|
delete bad.o
|
|
save
|
|
end
|
|
|
|
#--- comment.mri
|
|
create comment.ar
|
|
addmod elf.o
|
|
; comment
|
|
addmod text.txt
|
|
;comment
|
|
delete elf.o
|
|
* comment
|
|
save
|
|
*comment
|
|
end
|
|
|
|
#--- re-add.mri
|
|
create re-add.ar
|
|
addmod elf.o
|
|
addmod text.txt
|
|
delete elf.o
|
|
addmod elf.o
|
|
save
|
|
end
|
|
|
|
#--- duplicate.mri
|
|
create duplicate.ar
|
|
addmod elf.o
|
|
addmod elf.o
|
|
addmod text.txt
|
|
delete elf.o
|
|
save
|
|
end
|
|
|
|
#--- duplicate-re-add.mri
|
|
create duplicate-re-add.ar
|
|
addmod elf.o
|
|
delete elf.o
|
|
addmod text.txt
|
|
addmod elf.o
|
|
delete elf.o
|
|
save
|
|
end
|
|
|
|
#--- extra-delete.mri
|
|
create extra-delete.ar
|
|
addmod elf.o
|
|
addmod text.txt
|
|
delete elf.o
|
|
delete elf.o
|
|
save
|
|
end
|
|
|
|
#--- thin-duplicate.mri
|
|
createthin thin-duplicate.ar
|
|
addmod elf.o
|
|
addmod elf.o
|
|
addmod text.txt
|
|
delete elf.o
|
|
save
|
|
end
|
|
|
|
#--- addlib.mri
|
|
create addlib.ar
|
|
addlib elf.a
|
|
delete elf.o
|
|
save
|
|
end
|
|
|
|
#--- addlib-deletelib.mri
|
|
create addlib-deletelib.ar
|
|
addlib elf.a
|
|
delete elf.a
|
|
save
|
|
end
|
|
|
|
#--- addlib-thin-duplicate.mri
|
|
createthin addlib-thin-duplicate.ar
|
|
addlib thin-elf.a
|
|
addlib thin-elf.a
|
|
delete elf.o
|
|
save
|
|
end
|