1 # RUN: yaml2obj %s -o %t
2 # RUN: llvm-objcopy -O binary -j .test2 %t %t.sec
3 # RUN: llvm-objcopy -R .test2 %t %t2
4 # RUN: llvm-objcopy --add-section=.test2=%t.sec %t2 %t3
5 # RUN: llvm-readobj --file-headers --sections --section-data %t3 | FileCheck %s
27 # CHECK: SectionHeaderCount: 6
31 # CHECK: Name: .strtab
32 # CHECK: Name: .shstrtab
33 # CHECK: Offset: 0x[[#%x,OFFSET:]]
34 # CHECK: Size: [[#%u,SIZE:]]
36 # CHECK-NEXT: Type: SHT_PROGBITS
37 # CHECK-NEXT: Flags [ (0x0)
39 # CHECK-NEXT: Address: 0x0
40 # CHECK-NEXT: Offset: 0x[[#%x,OFFSET+SIZE]]
44 # CHECK-NEXT: AddressAlignment: 1
45 # CHECK-NEXT: EntrySize: 0
46 # CHECK-NEXT: SectionData (
47 # CHECK-NEXT: 0000: DEADBEEF
50 ## Test that llvm-objcopy produces an error if the file with section contents
51 ## to be added does not exist.
52 # RUN: not llvm-objcopy --add-section=.section.name=%t.missing %t %t.out 2>&1 | FileCheck -DFILE=%t.missing -DMSG=%errc_ENOENT %s --check-prefixes=ERR1
54 # ERR1: error: '[[FILE]]': [[MSG]]
56 ## Negative test for invalid --add-sections argument - missing '='.
57 # RUN: not llvm-objcopy --add-section=.section.name %t %t.out 2>&1 | FileCheck %s --check-prefixes=ERR2
59 # ERR2: error: bad format for --add-section: missing '='
61 ## Negative test for invalid --add-sections argument - missing file name.
62 # RUN: not llvm-objcopy --add-section=.section.name= %t %t.out 2>&1 | FileCheck %s --check-prefixes=ERR3
64 # ERR3: error: bad format for --add-section: missing file name