| # RUN: echo -n AAAB > %t.diff |
| # RUN: echo -n AAA > %t.smaller |
| # RUN: echo -n AAAAA > %t.larger |
| |
| # RUN: yaml2obj %s -o %t |
| |
| # RUN: llvm-objcopy --update-section=.text=%t.diff %t - | llvm-readobj -S -x .text - | FileCheck %s |
| # CHECK: Section { |
| # CHECK-NEXT: Number: 1 |
| # CHECK-NEXT: Name: .text |
| # CHECK-NOT: } |
| # CHECK: RawDataSize: 4 |
| # CHECK: Hex dump of section '.text': |
| # CHECK-NEXT: 0x00000000 41414142 AAAB |
| |
| # RUN: llvm-objcopy --update-section=.text=%t.smaller %t - | llvm-readobj -S -x .text - | FileCheck %s --check-prefix=SMALLER |
| # SMALLER: Section { |
| # SMALLER-NEXT: Number: 1 |
| # SMALLER-NEXT: Name: .text |
| # SMALLER-NOT: } |
| # SMALLER: RawDataSize: 3 |
| # SMALLER: Hex dump of section '.text': |
| # SMALLER-NEXT: 0x00000000 414141 AAA |
| |
| # RUN: llvm-objcopy --update-section=.text=%t.diff --update-section=.other=%t.diff %t - | \ |
| # RUN: llvm-readobj -S -x .text -x .other - | FileCheck %s --check-prefix=MULTIPLE |
| # MULTIPLE: Section { |
| # MULTIPLE-NEXT: Number: 1 |
| # MULTIPLE-NEXT: Name: .text |
| # MULTIPLE-NOT: } |
| # MULTIPLE: RawDataSize: 4 |
| # MULTIPLE: Section { |
| # MULTIPLE-NEXT: Number: 2 |
| # MULTIPLE-NEXT: Name: .other |
| # MULTIPLE-NOT: } |
| # MULTIPLE: RawDataSize: 4 |
| # MULTIPLE: Hex dump of section '.text': |
| # MULTIPLE-NEXT: 0x00000000 41414142 AAAB |
| # MULTIPLE: Hex dump of section '.other': |
| # MULTIPLE-NEXT: 0x00000000 41414142 AAAB |
| |
| # RUN: not llvm-objcopy --update-section=.text=%t.larger %t /dev/null 2>&1 | FileCheck %s --check-prefix=TOO-LARGE |
| # TOO-LARGE: error: {{.*}}new section cannot be larger than previous section |
| |
| # RUN: not llvm-objcopy --update-section=.bss=%t.diff %t /dev/null 2>&1 | FileCheck %s --check-prefix=NO-CONTENTS |
| # NO-CONTENTS: error: {{.*}}section '.bss' cannot be updated because it does not have contents |
| |
| # RUN: not llvm-objcopy --update-section=.text=%t.noexist %t /dev/null 2>&1 | \ |
| # RUN: FileCheck %s --check-prefix=NOENT -DENOENT=%errc_ENOENT |
| # NOENT: error: {{.*}}: [[ENOENT]] |
| |
| # RUN: not llvm-objcopy --update-section=.noexist=%t.diff %t /dev/null 2>&1 | FileCheck %s --check-prefix=NO-SECTION |
| # NO-SECTION: error: {{.*}}could not find section with name '.noexist' |
| |
| --- !COFF |
| header: |
| Machine: IMAGE_FILE_MACHINE_AMD64 |
| Characteristics: [ ] |
| sections: |
| - Name: .text |
| Characteristics: [ ] |
| Alignment: 4 |
| SectionData: '41414141' |
| - Name: .other |
| Characteristics: [ ] |
| Alignment: 4 |
| SectionData: '42424242' |
| - Name: .bss |
| Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA ] |
| SizeOfRawData: 0 |
| symbols: |
| ... |