15a2b5ca7SJames Henderson## Show that llvm-objcopy and llvm-strip emit errors when attempting to modify 25a2b5ca7SJames Henderson## archives containing unrecognized files, and do not modify anything. We use 35a2b5ca7SJames Henderson## --strip-debug so that the section should be removed, and a difference 45a2b5ca7SJames Henderson## detectable, if the file were modified. 55a2b5ca7SJames Henderson 65a2b5ca7SJames Henderson# RUN: yaml2obj %s -o %t.o 75a2b5ca7SJames Henderson# RUN: rm -f %t.a 85a2b5ca7SJames Henderson# RUN: llvm-ar rc %t.a %t.o %s 95a2b5ca7SJames Henderson# RUN: cp %t.a %t1.a 105a2b5ca7SJames Henderson# RUN: cp %t.a %t2.a 115a2b5ca7SJames Henderson 125a2b5ca7SJames Henderson# RUN: not llvm-objcopy --strip-debug %t1.a 2>&1 | FileCheck %s -DARCHIVE=%t1.a 135a2b5ca7SJames Henderson# RUN: not llvm-strip --strip-debug %t2.a 2>&1 | FileCheck %s -DARCHIVE=%t2.a 149ca48f26SJames Henderson## Verify that the archive was not modified, if any member couldn't be recognized. 155a2b5ca7SJames Henderson# RUN: cmp %t.a %t1.a 165a2b5ca7SJames Henderson# RUN: cmp %t.a %t2.a 175a2b5ca7SJames Henderson 185a2b5ca7SJames Henderson# CHECK: error: '[[ARCHIVE]](archive-unknown-members.test)': The file was not recognized as a valid object file 195a2b5ca7SJames Henderson 205a2b5ca7SJames Henderson# RUN: rm -f %t.thin1.a %t.thin2.a 215a2b5ca7SJames Henderson# RUN: cp %t.o %t1.o 225a2b5ca7SJames Henderson# RUN: cp %t.o %t2.o 235a2b5ca7SJames Henderson# RUN: llvm-ar rcT %t.thin1.a %t1.o %s 245a2b5ca7SJames Henderson# RUN: llvm-ar rcT %t.thin2.a %t2.o %s 255a2b5ca7SJames Henderson 26*5d5078e3SOwen Reynolds# RUN: not llvm-objcopy --strip-debug %/t.thin1.a 2>&1 \ 27*5d5078e3SOwen Reynolds# RUN: | FileCheck %s --check-prefix=THIN -DARCHIVE=%/t.thin1.a -DMEMBER=%/s 28*5d5078e3SOwen Reynolds# RUN: not llvm-strip --strip-debug %/t.thin2.a 2>&1 \ 29*5d5078e3SOwen Reynolds# RUN: | FileCheck %s --check-prefix=THIN -DARCHIVE=%/t.thin2.a -DMEMBER=%/s 305a2b5ca7SJames Henderson## Verify that the first member was not modified, if a later member could not 319ca48f26SJames Henderson## be recognized. 325a2b5ca7SJames Henderson# RUN: cmp %t.o %t1.o 335a2b5ca7SJames Henderson# RUN: cmp %t.o %t2.o 345a2b5ca7SJames Henderson 355a2b5ca7SJames Henderson# THIN: error: '[[ARCHIVE]]([[MEMBER]])': The file was not recognized as a valid object file 365a2b5ca7SJames Henderson 375a2b5ca7SJames Henderson--- !ELF 385a2b5ca7SJames HendersonFileHeader: 395a2b5ca7SJames Henderson Class: ELFCLASS64 405a2b5ca7SJames Henderson Data: ELFDATA2LSB 415a2b5ca7SJames Henderson Type: ET_EXEC 425a2b5ca7SJames Henderson Machine: EM_X86_64 435a2b5ca7SJames HendersonSections: 445a2b5ca7SJames Henderson - Name: .debug_foo 455a2b5ca7SJames Henderson Type: SHT_PROGBITS 46