1*85381e67SAlex Brachet# RUN: echo -n AAAB > %t.diff 2*85381e67SAlex Brachet# RUN: echo -n AAA > %t.smaller 3*85381e67SAlex Brachet# RUN: echo -n AAAAA > %t.larger 4*85381e67SAlex Brachet 5*85381e67SAlex Brachet# RUN: yaml2obj %s -o %t 6*85381e67SAlex Brachet 7*85381e67SAlex Brachet# RUN: llvm-objcopy --update-section=.text=%t.diff %t - | llvm-readobj -S -x .text - | FileCheck %s 8*85381e67SAlex Brachet# CHECK: Section { 9*85381e67SAlex Brachet# CHECK-NEXT: Number: 1 10*85381e67SAlex Brachet# CHECK-NEXT: Name: .text 11*85381e67SAlex Brachet# CHECK-NOT: } 12*85381e67SAlex Brachet# CHECK: RawDataSize: 4 13*85381e67SAlex Brachet# CHECK: Hex dump of section '.text': 14*85381e67SAlex Brachet# CHECK-NEXT: 0x00000000 41414142 AAAB 15*85381e67SAlex Brachet 16*85381e67SAlex Brachet# RUN: llvm-objcopy --update-section=.text=%t.smaller %t - | llvm-readobj -S -x .text - | FileCheck %s --check-prefix=SMALLER 17*85381e67SAlex Brachet# SMALLER: Section { 18*85381e67SAlex Brachet# SMALLER-NEXT: Number: 1 19*85381e67SAlex Brachet# SMALLER-NEXT: Name: .text 20*85381e67SAlex Brachet# SMALLER-NOT: } 21*85381e67SAlex Brachet# SMALLER: RawDataSize: 3 22*85381e67SAlex Brachet# SMALLER: Hex dump of section '.text': 23*85381e67SAlex Brachet# SMALLER-NEXT: 0x00000000 414141 AAA 24*85381e67SAlex Brachet 25*85381e67SAlex Brachet# RUN: llvm-objcopy --update-section=.text=%t.diff --update-section=.other=%t.diff %t - | \ 26*85381e67SAlex Brachet# RUN: llvm-readobj -S -x .text -x .other - | FileCheck %s --check-prefix=MULTIPLE 27*85381e67SAlex Brachet# MULTIPLE: Section { 28*85381e67SAlex Brachet# MULTIPLE-NEXT: Number: 1 29*85381e67SAlex Brachet# MULTIPLE-NEXT: Name: .text 30*85381e67SAlex Brachet# MULTIPLE-NOT: } 31*85381e67SAlex Brachet# MULTIPLE: RawDataSize: 4 32*85381e67SAlex Brachet# MULTIPLE: Section { 33*85381e67SAlex Brachet# MULTIPLE-NEXT: Number: 2 34*85381e67SAlex Brachet# MULTIPLE-NEXT: Name: .other 35*85381e67SAlex Brachet# MULTIPLE-NOT: } 36*85381e67SAlex Brachet# MULTIPLE: RawDataSize: 4 37*85381e67SAlex Brachet# MULTIPLE: Hex dump of section '.text': 38*85381e67SAlex Brachet# MULTIPLE-NEXT: 0x00000000 41414142 AAAB 39*85381e67SAlex Brachet# MULTIPLE: Hex dump of section '.other': 40*85381e67SAlex Brachet# MULTIPLE-NEXT: 0x00000000 41414142 AAAB 41*85381e67SAlex Brachet 42*85381e67SAlex Brachet# RUN: not llvm-objcopy --update-section=.text=%t.larger %t /dev/null 2>&1 | FileCheck %s --check-prefix=TOO-LARGE 43*85381e67SAlex Brachet# TOO-LARGE: error: {{.*}}new section cannot be larger than previous section 44*85381e67SAlex Brachet 45*85381e67SAlex Brachet# RUN: not llvm-objcopy --update-section=.bss=%t.diff %t /dev/null 2>&1 | FileCheck %s --check-prefix=NO-CONTENTS 46*85381e67SAlex Brachet# NO-CONTENTS: error: {{.*}}section '.bss' cannot be updated because it does not have contents 47*85381e67SAlex Brachet 48*85381e67SAlex Brachet# RUN: not llvm-objcopy --update-section=.text=%t.noexist %t /dev/null 2>&1 | \ 49*85381e67SAlex Brachet# RUN: FileCheck %s --check-prefix=NOENT -DENOENT=%errc_ENOENT 50*85381e67SAlex Brachet# NOENT: error: {{.*}}: [[ENOENT]] 51*85381e67SAlex Brachet 52*85381e67SAlex Brachet# RUN: not llvm-objcopy --update-section=.noexist=%t.diff %t /dev/null 2>&1 | FileCheck %s --check-prefix=NO-SECTION 53*85381e67SAlex Brachet# NO-SECTION: error: {{.*}}could not find section with name '.noexist' 54*85381e67SAlex Brachet 55*85381e67SAlex Brachet--- !COFF 56*85381e67SAlex Brachetheader: 57*85381e67SAlex Brachet Machine: IMAGE_FILE_MACHINE_AMD64 58*85381e67SAlex Brachet Characteristics: [ ] 59*85381e67SAlex Brachetsections: 60*85381e67SAlex Brachet - Name: .text 61*85381e67SAlex Brachet Characteristics: [ ] 62*85381e67SAlex Brachet Alignment: 4 63*85381e67SAlex Brachet SectionData: '41414141' 64*85381e67SAlex Brachet - Name: .other 65*85381e67SAlex Brachet Characteristics: [ ] 66*85381e67SAlex Brachet Alignment: 4 67*85381e67SAlex Brachet SectionData: '42424242' 68*85381e67SAlex Brachet - Name: .bss 69*85381e67SAlex Brachet Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA ] 70*85381e67SAlex Brachet SizeOfRawData: 0 71*85381e67SAlex Brachetsymbols: 72*85381e67SAlex Brachet... 73