[yaml2obj][obj2yaml] - Do not create a symbol table by default.
[llvm-complete.git] / test / tools / llvm-objdump / section-headers.test
blobbff362d89e909dd70b6cd89dad042735335dbd64
1 ## Test various details of llvm-objdump -h (--section-headers).
3 ## Check leading and trailing whitespace for full lines.
5 # RUN: yaml2obj %s --docnum=1 -o %t-whitespace.o
6 # RUN: llvm-objdump -h --show-lma %t-whitespace.o \
7 # RUN:   | FileCheck %s --check-prefix=WHITESPACE --strict-whitespace
8 # RUN: llvm-objdump -h %t-whitespace.o \
9 # RUN:   | FileCheck %s --check-prefix=WHITESPACE-NO-LMA --strict-whitespace
11 # WHITESPACE:      {{^}}Sections:{{$}}
12 # WHITESPACE-NEXT: {{^}}Idx Name          Size     VMA              LMA              Type{{$}}
13 # WHITESPACE-NEXT: {{^}}  0               00000000 0000000000000000 0000000000000000 {{$}}
14 # WHITESPACE-NEXT: {{^}}  1 .text         00000000 0000000000000000 0000000000000000 TEXT{{$}}
15 # WHITESPACE-NEXT: {{^}}  2 .data         00000000 0000000000000000 0000000000000000 DATA{{$}}
16 # WHITESPACE-NEXT: {{^}}  3 .bss          00000000 0000000000000000 0000000000000000 BSS{{$}}
17 # WHITESPACE-NEXT: {{^}}  4 .other        00000000 0000000000000000 0000000000000000 {{$}}
19 # WHITESPACE-NO-LMA:      {{^}}Sections:{{$}}
20 # WHITESPACE-NO-LMA-NEXT: {{^}}Idx Name          Size     VMA              Type{{$}}
21 # WHITESPACE-NO-LMA-NEXT: {{^}}  0               00000000 0000000000000000 {{$}}
22 # WHITESPACE-NO-LMA-NEXT: {{^}}  1 .text         00000000 0000000000000000 TEXT{{$}}
23 # WHITESPACE-NO-LMA-NEXT: {{^}}  2 .data         00000000 0000000000000000 DATA{{$}}
24 # WHITESPACE-NO-LMA-NEXT: {{^}}  3 .bss          00000000 0000000000000000 BSS{{$}}
25 # WHITESPACE-NO-LMA-NEXT: {{^}}  4 .other        00000000 0000000000000000 {{$}}
27 --- !ELF
28 FileHeader:
29   Class:   ELFCLASS64
30   Data:    ELFDATA2LSB
31   Type:    ET_EXEC
32   Machine: EM_X86_64
33 Sections:
34   - Name:  .text
35     Type:  SHT_PROGBITS
36     Flags: [SHF_ALLOC, SHF_EXECINSTR]
37   - Name:  .data
38     Type:  SHT_PROGBITS
39     Flags: [SHF_ALLOC, SHF_WRITE]
40   - Name:  .bss
41     Type:  SHT_NOBITS
42     Flags: [SHF_ALLOC, SHF_WRITE]
43   - Name:  .other
44     Type:  SHT_REL
46 ## The name field automatically expands past the default 13 columns when a
47 ## section name is longer than that.
48 ## Note: check with and without --show-lma to make sure resizing happens in
49 ## both cases.
51 # RUN: yaml2obj %s --docnum=2 -o %t-name13chars.o
52 # RUN: llvm-objdump -h --show-lma %t-name13chars.o \
53 # RUN:   | FileCheck %s --check-prefix=NAME-13 --strict-whitespace
54 # RUN: llvm-objdump -h %t-name13chars.o \
55 # RUN:   | FileCheck %s --check-prefix=NAME-13 --strict-whitespace
57 # NAME-13:      Sections:
58 # NAME-13-NEXT: {{^}}Idx Name          Size
59 # NAME-13-NEXT: {{^}}  0               00000000
60 # NAME-13-NEXT: {{^}}  1 .foo          00000000
61 # NAME-13-NEXT: {{^}}  2 .thirteenchar 00000000
62 # NAME-13-NEXT: {{^}}  3 .bar          00000000
64 ## Including a section with a name of length 14 expands the width of the "Name"
65 ## column.
66 # RUN: yaml2obj %s --docnum=3 -o %t-name14chars.o
67 # RUN: llvm-objdump -h --show-lma %t-name14chars.o \
68 # RUN:   | FileCheck %s --check-prefix=NAME-14 --strict-whitespace
69 # RUN: llvm-objdump -h %t-name14chars.o \
70 # RUN:   | FileCheck %s --check-prefix=NAME-14 --strict-whitespace
72 # NAME-14:      Sections:
73 # NAME-14-NEXT: {{^}}Idx Name           Size
74 # NAME-14-NEXT: {{^}}  0                00000000
75 # NAME-14-NEXT: {{^}}  1 .foo           00000000
76 # NAME-14-NEXT: {{^}}  2 .fourteenchars 00000000
77 # NAME-14-NEXT: {{^}}  3 .bar           00000000
79 --- !ELF
80 FileHeader:
81   Class:   ELFCLASS64
82   Data:    ELFDATA2LSB
83   Type:    ET_EXEC
84   Machine: EM_X86_64
85 Sections:
86   - Name: .foo
87     Type: SHT_PROGBITS
88   - Name: .thirteenchar
89     Type: SHT_PROGBITS
90   - Name: .bar
91     Type: SHT_PROGBITS
93 --- !ELF
94 FileHeader:
95   Class:   ELFCLASS64
96   Data:    ELFDATA2LSB
97   Type:    ET_EXEC
98   Machine: EM_X86_64
99 Sections:
100   - Name: .foo
101     Type: SHT_PROGBITS
102   - Name: .fourteenchars
103     Type: SHT_PROGBITS
104   - Name: .bar
105     Type: SHT_PROGBITS
107 ## Check that objdump -h only prints the necessary amount of bytes for
108 ## addresses.
110 # RUN: yaml2obj %s --docnum=4 -o %t-32bit.o
111 # RUN: yaml2obj %s --docnum=5 -o %t-64bit.o
113 # RUN: llvm-objdump -h --show-lma %t-32bit.o \
114 # RUN:   | FileCheck %s --check-prefix=32 --strict-whitespace
115 # 32: {{^}}Idx Name          Size     VMA      LMA      Type{{$}}
116 # 32: {{^}}  1 .foo          00000000 00000400 00000400 TEXT{{$}}
118 # RUN: llvm-objdump -h %t-32bit.o \
119 # RUN:   | FileCheck %s --check-prefix=32-NO-LMA --strict-whitespace
120 # 32-NO-LMA: {{^}}Idx Name          Size     VMA      Type{{$}}
121 # 32-NO-LMA: {{^}}  1 .foo          00000000 00000400 TEXT{{$}}
123 # RUN: llvm-objdump -h --show-lma %t-64bit.o \
124 # RUN:   | FileCheck %s --check-prefix=64 --strict-whitespace
125 # 64: {{^}}Idx Name          Size     VMA              LMA              Type{{$}}
126 # 64: {{^}}  1 .foo          00000000 0000000000000400 0000000000000400 TEXT{{$}}
128 # RUN: llvm-objdump -h %t-64bit.o \
129 # RUN:   | FileCheck %s --check-prefix=64-NO-LMA --strict-whitespace
130 # 64-NO-LMA: {{^}}Idx Name          Size     VMA              Type{{$}}
131 # 64-NO-LMA: {{^}}  1 .foo          00000000 0000000000000400 TEXT{{$}}
133 --- !ELF
134 FileHeader:
135   Class:   ELFCLASS32
136   Data:    ELFDATA2LSB
137   Type:    ET_EXEC
138   Machine: EM_386
139 Sections:
140   - Name:    .foo
141     Type:    SHT_PROGBITS
142     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
143     Address: 0x400
145 --- !ELF
146 FileHeader:
147   Class:   ELFCLASS64
148   Data:    ELFDATA2LSB
149   Type:    ET_EXEC
150   Machine: EM_X86_64
151 Sections:
152   - Name:    .foo
153     Type:    SHT_PROGBITS
154     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
155     Address: 0x400