[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / tools / llvm-objcopy / MachO / code_signature_lc_update.test
blobc25491ed3f9e15e3186344f3b4bbd8d3f552c384
1 # RUN: yaml2obj %s -o %t
3 # RUN: llvm-objdump --private-headers %t | FileCheck %s --check-prefix=CHECK-ORIGINAL
5 ## Check offset, size and index of text segment command
6 # CHECK-ORIGINAL:      Load command 1
7 # CHECK-ORIGINAL-NEXT  cmdsize
8 # CHECK-ORIGINAL-NEXT  segname __TEXT
9 # CHECK-ORIGINAL-NEXT  vmaddr
10 # CHECK-ORIGINAL-NEXT  vmsize
11 # CHECK-ORIGINAL-NEXT  fileoff 0
12 # CHECK-ORIGINAL-NEXT  filesize 16384
14 ## Check offset and index of code signature command
15 # CHECK-ORIGINAL:      Load command 14
16 # CHECK-ORIGINAL-NEXT: cmd LC_CODE_SIGNATURE
17 # CHECK-ORIGINAL-NEXT: cmdsize 16
18 # CHECK-ORIGINAL-NEXT: dataoff 16544
19 # CHECK-ORIGINAL-NEXT: datasize 280
21 # RUN: llvm-install-name-tool -prepend_rpath abcd %t
23 # RUN: llvm-objdump --private-headers %t | FileCheck %s --check-prefix=CHECK-PREPEND
24 ## Verify that the binary contains the new RPATH command, as the first command
25 # CHECK-PREPEND:         Load command 0
26 # CHECK-PREPEND-NEXT:    cmd LC_RPATH
27 # CHECK-PREPEND-NEXT:    cmdsize
28 # CHECK-PREPEND-NEXT:    path abcd
30 ## Verify the text segment command index increased by 1
31 # CHECK-PREPEND:      Load command 2
32 # CHECK-PREPEND-NEXT  cmdsize
33 # CHECK-PREPEND-NEXT  segname __TEXT
34 # CHECK-PREPEND-NEXT  vmaddr
35 # CHECK-PREPEND-NEXT  vmsize
36 # CHECK-PREPEND-NEXT  fileoff 0
37 # CHECK-PREPEND-NEXT  filesize 16384
39 ## Verify the code signature command index increased by 1
40 # CHECK-PREPEND:        Load command 15
41 # CHECK-PREPEND-NEXT:   cmd LC_CODE_SIGNATURE
42 # CHECK-PREPEND-NEXT:   cmdsize 16
43 # CHECK-PREPEND-NEXT:   dataoff 16544
44 # CHECK-PREPEND-NEXT:   datasize 320
46 ## Verify the new signature is valid
47 # RUN: %python %p/Inputs/code-signature-check.py %t 16544 320 0 16544 | FileCheck %s --check-prefix=CHECK-TEXT-SEGMENT
48 ## Verify the text segment offset and text segment size values included in the signature header are accurate
49 # CHECK-TEXT-SEGMENT: execSegBase=0, execSegLimit=16384
51 # RUN: llvm-install-name-tool -delete_rpath abcd %t
53 # RUN: llvm-objdump --private-headers %t | FileCheck %s --check-prefix=CHECK-REMOVE
55 ## Verify text segment command index returned to orignal
56 # CHECK-REMOVE:      Load command 1
57 # CHECK-REMOVE-NEXT  cmdsize
58 # CHECK-REMOVE-NEXT  segname __TEXT
59 # CHECK-REMOVE-NEXT  vmaddr
60 # CHECK-REMOVE-NEXT  vmsize
61 # CHECK-REMOVE-NEXT  fileoff 0
62 # CHECK-REMOVE-NEXT  filesize 16384
64 ## Verify text segment command index returned to original
65 # CHECK-REMOVE:      Load command 14
66 # CHECK-REMOVE-NEXT: cmd LC_CODE_SIGNATURE
67 # CHECK-REMOVE-NEXT: cmdsize 16
68 # CHECK-REMOVE-NEXT: dataoff 16544
69 # CHECK-REMOVE-NEXT: datasize 320
71 ## Verify the new signature is valid and text segment values are accurate
72 # RUN: %python %p/Inputs/code-signature-check.py %t 16544 320 0 16544 | FileCheck %s --check-prefix=CHECK-TEXT-SEGMENT
74 --- !mach-o
75 FileHeader:
76   magic:           0xFEEDFACF
77   cputype:         0x1000007
78   cpusubtype:      0x3
79   filetype:        0x2
80   ncmds:           15
81   sizeofcmds:      760
82   flags:           0x200085
83   reserved:        0x0
84 LoadCommands:
85   - cmd:             LC_SEGMENT_64
86     cmdsize:         72
87     segname:         __PAGEZERO
88     vmaddr:          0
89     vmsize:          4294967296
90     fileoff:         0
91     filesize:        0
92     maxprot:         0
93     initprot:        0
94     nsects:          0
95     flags:           0
96   - cmd:             LC_SEGMENT_64
97     cmdsize:         232
98     segname:         __TEXT
99     vmaddr:          4294967296
100     vmsize:          16384
101     fileoff:         0
102     filesize:        16384
103     maxprot:         5
104     initprot:        5
105     nsects:          2
106     flags:           0
107     Sections:
108       - sectname:        __text
109         segname:         __TEXT
110         addr:            0x100003FA0
111         size:            15
112         offset:          0x3FA0
113         align:           4
114         reloff:          0x0
115         nreloc:          0
116         flags:           0x80000400
117         reserved1:       0x0
118         reserved2:       0x0
119         reserved3:       0x0
120         content:         554889E531C0C745FC000000005DC3
121       - sectname:        __unwind_info
122         segname:         __TEXT
123         addr:            0x100003FB0
124         size:            72
125         offset:          0x3FB0
126         align:           2
127         reloff:          0x0
128         nreloc:          0
129         flags:           0x0
130         reserved1:       0x0
131         reserved2:       0x0
132         reserved3:       0x0
133         content:         010000001C000000000000001C000000000000001C00000002000000A03F00003400000034000000B03F00000000000034000000030000000C000100100001000000000000000001
134   - cmd:             LC_SEGMENT_64
135     cmdsize:         72
136     segname:         __LINKEDIT
137     vmaddr:          4294983680
138     vmsize:          16384
139     fileoff:         16384
140     filesize:        440
141     maxprot:         1
142     initprot:        1
143     nsects:          0
144     flags:           0
145   - cmd:             LC_DYLD_INFO_ONLY
146     cmdsize:         48
147     rebase_off:      0
148     rebase_size:     0
149     bind_off:        0
150     bind_size:       0
151     weak_bind_off:   0
152     weak_bind_size:  0
153     lazy_bind_off:   0
154     lazy_bind_size:  0
155     export_off:      16384
156     export_size:     48
157   - cmd:             LC_SYMTAB
158     cmdsize:         24
159     symoff:          16440
160     nsyms:           3
161     stroff:          16488
162     strsize:         48
163   - cmd:             LC_DYSYMTAB
164     cmdsize:         80
165     ilocalsym:       0
166     nlocalsym:       0
167     iextdefsym:      0
168     nextdefsym:      2
169     iundefsym:       2
170     nundefsym:       1
171     tocoff:          0
172     ntoc:            0
173     modtaboff:       0
174     nmodtab:         0
175     extrefsymoff:    0
176     nextrefsyms:     0
177     indirectsymoff:  0
178     nindirectsyms:   0
179     extreloff:       0
180     nextrel:         0
181     locreloff:       0
182     nlocrel:         0
183   - cmd:             LC_LOAD_DYLINKER
184     cmdsize:         32
185     name:            12
186     Content:         '/usr/lib/dyld'
187     ZeroPadBytes:    7
188   - cmd:             LC_UUID
189     cmdsize:         24
190     uuid:            42759668-1CBA-3094-8E2D-F01E1A66E815
191   - cmd:             LC_BUILD_VERSION
192     cmdsize:         32
193     platform:        1
194     minos:           720896
195     sdk:             721664
196     ntools:          1
197     Tools:
198       - tool:            3
199         version:         42600704
200   - cmd:             LC_SOURCE_VERSION
201     cmdsize:         16
202     version:         0
203   - cmd:             LC_MAIN
204     cmdsize:         24
205     entryoff:        16288
206     stacksize:       0
207   - cmd:             LC_LOAD_DYLIB
208     cmdsize:         56
209     dylib:
210       name:            24
211       timestamp:       2
212       current_version: 84698117
213       compatibility_version: 65536
214     Content:         '/usr/lib/libSystem.B.dylib'
215     ZeroPadBytes:    6
216   - cmd:             LC_FUNCTION_STARTS
217     cmdsize:         16
218     dataoff:         16432
219     datasize:        8
220   - cmd:             LC_DATA_IN_CODE
221     cmdsize:         16
222     dataoff:         16440
223     datasize:        0
224   - cmd:             LC_CODE_SIGNATURE
225     cmdsize:         16
226     dataoff:         16544
227     datasize:        280
228 LinkEditData:
229   ExportTrie:
230     TerminalSize:    0
231     NodeOffset:      0
232     Name:            ''
233     Flags:           0x0
234     Address:         0x0
235     Other:           0x0
236     ImportName:      ''
237     Children:
238       - TerminalSize:    0
239         NodeOffset:      5
240         Name:            _
241         Flags:           0x0
242         Address:         0x0
243         Other:           0x0
244         ImportName:      ''
245         Children:
246           - TerminalSize:    2
247             NodeOffset:      33
248             Name:            _mh_execute_header
249             Flags:           0x0
250             Address:         0x0
251             Other:           0x0
252             ImportName:      ''
253           - TerminalSize:    3
254             NodeOffset:      37
255             Name:            main
256             Flags:           0x0
257             Address:         0x3FA0
258             Other:           0x0
259             ImportName:      ''
260   NameList:
261     - n_strx:          2
262       n_type:          0xF
263       n_sect:          1
264       n_desc:          16
265       n_value:         4294967296
266     - n_strx:          22
267       n_type:          0xF
268       n_sect:          1
269       n_desc:          0
270       n_value:         4294983584
271     - n_strx:          28
272       n_type:          0x1
273       n_sect:          0
274       n_desc:          256
275       n_value:         0
276   StringTable:
277     - ' '
278     - __mh_execute_header
279     - _main
280     - dyld_stub_binder
281     - ''
282     - ''
283     - ''