# RUN: yaml2obj %s -o %t # RUN: llvm-objcopy -O binary -j .test2 %t %t.sec # RUN: llvm-objcopy -R .test2 %t %t2 # RUN: llvm-objcopy --add-section=.test2=%t.sec %t2 %t3 # RUN: llvm-readobj --file-headers --sections --section-data %t3 | FileCheck %s !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .test1 Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Content: "c3c3c3c3" - Name: .test2 Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Content: "DEADBEEF" - Name: .test3 Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Content: "32323232" # CHECK: SectionHeaderCount: 6 # CHECK: Name: .test1 # CHECK: Name: .test3 # CHECK: Name: .strtab # CHECK: Name: .shstrtab # CHECK: Name: .test2 # CHECK: SectionData ( # CHECK-NEXT: 0000: DEADBEEF # CHECK-NEXT: ) ## Test that llvm-objcopy produces an error if the file with section contents ## to be added does not exist. # RUN: not llvm-objcopy --add-section=.section.name=%t.missing %t %t.out 2>&1 | FileCheck -DFILE1=%t -DFILE2=%t.missing %s --check-prefixes=ERR1 # ERR1: error: '[[FILE1]]': '[[FILE2]]': {{[Nn]}}o such file or directory ## Negative test for invalid --add-sections argument - missing '='. # RUN: not llvm-objcopy --add-section=.section.name %t %t.out 2>&1 | FileCheck %s --check-prefixes=ERR2 # ERR2: error: bad format for --add-section: missing '=' ## Negative test for invalid --add-sections argument - missing file name. # RUN: not llvm-objcopy --add-section=.section.name= %t %t.out 2>&1 | FileCheck %s --check-prefixes=ERR3 # ERR3: error: bad format for --add-section: missing file name