# RUN: echo -n AAAB > %t.diff # RUN: echo -n AAA > %t.smaller # RUN: echo -n AAAAAAAAA > %t.larger # RUN: yaml2obj --docnum=1 %s -o %t # RUN: llvm-objcopy --update-section __TEXT,__text=%t.diff %t - | obj2yaml | FileCheck %s # CHECK: content: '41414142' # RUN: llvm-objcopy --update-section __TEXT,__text=%t.smaller %t - | obj2yaml | FileCheck %s --check-prefix=SMALLER # SMALLER: content: '414141' # RUN: not llvm-objcopy --update-section __TEXT,__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 __TEXT,__text=%t.noexist %t /dev/null # RUN: not llvm-objcopy --update-section __NOEXIST,__text=%t.diff %t /dev/null 2>&1 | FileCheck %s --check-prefix=NO-SEGMENT # NO-SEGMENT: error: {{.*}}could not find segment with name '__NOEXIST' # RUN: not llvm-objcopy --update-section __TEXT,__noexist=%t.diff %t /dev/null 2>&1 | FileCheck %s --check-prefix=NO-SECTION # NO-SECTION: error: {{.*}}could not find section with name '__noexist' # RUN: yaml2obj --docnum=2 %s -o %t # RUN: llvm-objcopy --update-section __TEXT,__text=%t.diff %t - | obj2yaml | FileCheck %s --check-prefix=FULL-SECNAME # FULL-SECNAME: content: '41414142' # RUN: not llvm-objcopy --update-section __text=%t.diff %t /dev/null 2>&1 | FileCheck %s --check-prefix=NON-CANONICAL-SECNAME # NON-CANONICAL-SECNAME: error: {{.*}}invalid section name '__text' (should be formatted as '<segment name>,<section name>') --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x01000007 cpusubtype: 0x00000003 filetype: 0x00000001 ncmds: 1 sizeofcmds: 152 flags: 0x00002000 reserved: 0x00000000 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 152 segname: __TEXT vmaddr: 0 vmsize: 4 fileoff: 184 filesize: 4 maxprot: 7 initprot: 7 nsects: 1 flags: 0 Sections: - sectname: __text segname: __TEXT addr: 0x0000000000000000 content: '41414141' size: 4 offset: 184 align: 0 reloff: 0x00000000 nreloc: 0 flags: 0x80000400 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x01000007 cpusubtype: 0x00000003 filetype: 0x00000001 ncmds: 1 sizeofcmds: 312 flags: 0x00002000 reserved: 0x00000000 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 312 segname: '__TEXT' vmaddr: 0 vmsize: 12 fileoff: 344 filesize: 12 maxprot: 7 initprot: 7 nsects: 3 flags: 0 Sections: - sectname: __text segname: __TEXT addr: 0x0000000000000000 content: 'AABBCCDD' size: 4 offset: 344 align: 0 reloff: 0x00000000 nreloc: 0 flags: 0x80000400 reserved1: 0x00000000 reserved2: 0x00000000 - sectname: __text segname: __TEXT2 addr: 0x0000000000000004 content: '' size: 0 offset: 348 align: 0 reloff: 0x00000000 nreloc: 0 flags: 0x00000000 reserved1: 0x00000000 reserved2: 0x00000000