Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / yaml2obj / program-header-size-offset.yaml
blob53ceee20c655f64d2f038a0837f5438b028b0d7d
1 # Show that yaml2obj properly emits program headers with explicit file size,
2 # memory size and offset parameters.
4 # RUN: yaml2obj %s -o %t
5 # RUN: llvm-readobj %t --program-headers | FileCheck %s
7 # CHECK: ProgramHeaders [
8 # CHECK:    Offset: 0x1234
9 # CHECK:    FileSize: 1111
10 # CHECK:    MemSize: 9999
12 # CHECK:    Offset: 0x2000
13 # CHECK:    FileSize: 6
14 # CHECK:    MemSize: 6
16 # CHECK:    Offset: 0x2000
17 # CHECK:    FileSize: 4
18 # CHECK:    MemSize: 6
20 # CHECK:    Offset: 0x1FFF
21 # CHECK:    FileSize: 5
22 # CHECK:    MemSize: 5
24 # CHECK:    Offset: 0xFFE
25 # CHECK:    FileSize: 7
26 # CHECK:    MemSize: 9
28 # CHECK:    Offset: 0x3000
29 # CHECK:    FileSize: 3
30 # CHECK:    MemSize: 2
31 # CHECK: ]
33 !ELF
34 FileHeader:
35   Class:           ELFCLASS64
36   Data:            ELFDATA2LSB
37   Type:            ET_EXEC
38   Machine:         EM_X86_64
39 Sections:
40   - Name: .text
41     Type: SHT_PROGBITS
42     Size: 4
43     AddressAlign: 0x1000
44   - Name: .rodata
45     Type: SHT_PROGBITS
46     Size: 4
47     AddressAlign: 0x1000
48   - Name: .data
49     Type: SHT_PROGBITS
50     Size: 4
51 ProgramHeaders:
52   # Program header with no sections.
53   - Type:     0x6abcdef0 # arbitrary type
54     Offset:   0x1234
55     FileSize: 1111
56     MemSize:  9999
57   # Program header with only file size set.
58   - Type:     0x6abcdef0
59     FileSize: 6
60     Sections:
61       - Section: .rodata
62   # Program header with only mem size set.
63   - Type:     0x6abcdef0
64     MemSize: 6
65     Sections:
66       - Section: .rodata
67   # Program header with only offset set.
68   - Type:     0x6abcdef0
69     Offset:   0x1fff
70     Sections:
71       - Section: .rodata
72   # Program header with sections, valid properties.
73   - Type:     0x6abcdef0
74     Offset:   0xffe
75     FileSize: 7
76     MemSize:  9
77     Sections:
78       - Section: .text
79   # Program header with sections, invalid properties.
80   - Type:     0x6abcdef0
81     Offset:   0x3000
82     FileSize: 3
83     MemSize:  2
84     Sections:
85       - Section: .data