# 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