xref: /llvm-project/llvm/test/tools/llvm-objcopy/MachO/sub-load-commands.test (revision d6704e5ed91478464e551ee9d5520584978553ee)
1## This test verifies that llvm-objcopy correctly ignores the LC_SUB_* load
2## commands.
3
4# RUN: yaml2obj %s -o %t
5# RUN: llvm-objcopy %t %t2
6# RUN: cmp %t %t2
7# RUN: llvm-objdump --macho --private-headers %t2 | FileCheck %s
8
9--- !mach-o
10FileHeader:
11  magic:      0xFEEDFACF
12  cputype:    0x01000007
13  cpusubtype: 0x80000003
14  filetype:   0x00000002
15  ncmds:      4
16  sizeofcmds: 72
17  flags:      0x00200085
18  reserved:   0x00000000
19LoadCommands:
20  - cmd:          LC_SUB_FRAMEWORK
21    cmdsize:      16
22    umbrella:     12
23    Content:      'Bar'
24    ZeroPadBytes: 1
25  - cmd:          LC_SUB_UMBRELLA
26    cmdsize:      16
27    sub_umbrella: 12
28    Content:      'Foo'
29    ZeroPadBytes: 1
30  - cmd:          LC_SUB_LIBRARY
31    cmdsize:      24
32    sub_library:  12
33    Content:      'libfoo'
34    ZeroPadBytes: 6
35  - cmd:          LC_SUB_CLIENT
36    cmdsize:      16
37    client:       12
38    Content:      'bar'
39    ZeroPadBytes: 1
40
41# CHECK: Load command 0
42# CHECK:           cmd LC_SUB_FRAMEWORK
43# CHECK:       cmdsize 16
44# CHECK:      umbrella Bar (offset 12)
45# CHECK: Load command 1
46# CHECK:           cmd LC_SUB_UMBRELLA
47# CHECK:       cmdsize 16
48# CHECK:  sub_umbrella Foo (offset 12)
49# CHECK: Load command 2
50# CHECK:           cmd LC_SUB_LIBRARY
51# CHECK:       cmdsize 24
52# CHECK:   sub_library libfoo (offset 12)
53# CHECK: Load command 3
54# CHECK:           cmd LC_SUB_CLIENT
55# CHECK:       cmdsize 16
56# CHECK:        client bar (offset 12)
57