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