diff options
| author | Jordan Rupprecht <rupprecht@google.com> | 2019-10-14 17:47:17 +0000 |
|---|---|---|
| committer | Jordan Rupprecht <rupprecht@google.com> | 2019-10-14 17:47:17 +0000 |
| commit | c526ff8a629e73978a8cf94dba08202d28c296d7 (patch) | |
| tree | 7841f9dc77c5e6b2ddf9c4703cfd4e8afe160162 /llvm/test/tools/llvm-objdump/section-headers.test | |
| parent | 5af0201c2a08370fd3782b445cd96603d7988fd4 (diff) | |
| download | bcm5719-llvm-c526ff8a629e73978a8cf94dba08202d28c296d7.tar.gz bcm5719-llvm-c526ff8a629e73978a8cf94dba08202d28c296d7.zip | |
[llvm-objdump] Adjust spacing and field width for --section-headers
Summary:
- Expand the "Name" column past 13 characters when any of the section names are longer. Current behavior is a staggard output instead of a nice table if a single name is longer.
- Only print the required number of hex chars for addresses (i.e. 8 characters for 32-bit, 16 characters for 64-bit)
- Fix trailing spaces
Reviewers: grimar, jhenderson, espindola
Reviewed By: grimar
Subscribers: emaste, sbc100, arichardson, aheejin, seiya, llvm-commits, MaskRay
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68730
llvm-svn: 374795
Diffstat (limited to 'llvm/test/tools/llvm-objdump/section-headers.test')
| -rw-r--r-- | llvm/test/tools/llvm-objdump/section-headers.test | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objdump/section-headers.test b/llvm/test/tools/llvm-objdump/section-headers.test new file mode 100644 index 00000000000..bff362d89e9 --- /dev/null +++ b/llvm/test/tools/llvm-objdump/section-headers.test @@ -0,0 +1,155 @@ +## Test various details of llvm-objdump -h (--section-headers). + +## Check leading and trailing whitespace for full lines. + +# RUN: yaml2obj %s --docnum=1 -o %t-whitespace.o +# RUN: llvm-objdump -h --show-lma %t-whitespace.o \ +# RUN: | FileCheck %s --check-prefix=WHITESPACE --strict-whitespace +# RUN: llvm-objdump -h %t-whitespace.o \ +# RUN: | FileCheck %s --check-prefix=WHITESPACE-NO-LMA --strict-whitespace + +# WHITESPACE: {{^}}Sections:{{$}} +# WHITESPACE-NEXT: {{^}}Idx Name Size VMA LMA Type{{$}} +# WHITESPACE-NEXT: {{^}} 0 00000000 0000000000000000 0000000000000000 {{$}} +# WHITESPACE-NEXT: {{^}} 1 .text 00000000 0000000000000000 0000000000000000 TEXT{{$}} +# WHITESPACE-NEXT: {{^}} 2 .data 00000000 0000000000000000 0000000000000000 DATA{{$}} +# WHITESPACE-NEXT: {{^}} 3 .bss 00000000 0000000000000000 0000000000000000 BSS{{$}} +# WHITESPACE-NEXT: {{^}} 4 .other 00000000 0000000000000000 0000000000000000 {{$}} + +# WHITESPACE-NO-LMA: {{^}}Sections:{{$}} +# WHITESPACE-NO-LMA-NEXT: {{^}}Idx Name Size VMA Type{{$}} +# WHITESPACE-NO-LMA-NEXT: {{^}} 0 00000000 0000000000000000 {{$}} +# WHITESPACE-NO-LMA-NEXT: {{^}} 1 .text 00000000 0000000000000000 TEXT{{$}} +# WHITESPACE-NO-LMA-NEXT: {{^}} 2 .data 00000000 0000000000000000 DATA{{$}} +# WHITESPACE-NO-LMA-NEXT: {{^}} 3 .bss 00000000 0000000000000000 BSS{{$}} +# WHITESPACE-NO-LMA-NEXT: {{^}} 4 .other 00000000 0000000000000000 {{$}} + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [SHF_ALLOC, SHF_EXECINSTR] + - Name: .data + Type: SHT_PROGBITS + Flags: [SHF_ALLOC, SHF_WRITE] + - Name: .bss + Type: SHT_NOBITS + Flags: [SHF_ALLOC, SHF_WRITE] + - Name: .other + Type: SHT_REL + +## The name field automatically expands past the default 13 columns when a +## section name is longer than that. +## Note: check with and without --show-lma to make sure resizing happens in +## both cases. + +# RUN: yaml2obj %s --docnum=2 -o %t-name13chars.o +# RUN: llvm-objdump -h --show-lma %t-name13chars.o \ +# RUN: | FileCheck %s --check-prefix=NAME-13 --strict-whitespace +# RUN: llvm-objdump -h %t-name13chars.o \ +# RUN: | FileCheck %s --check-prefix=NAME-13 --strict-whitespace + +# NAME-13: Sections: +# NAME-13-NEXT: {{^}}Idx Name Size +# NAME-13-NEXT: {{^}} 0 00000000 +# NAME-13-NEXT: {{^}} 1 .foo 00000000 +# NAME-13-NEXT: {{^}} 2 .thirteenchar 00000000 +# NAME-13-NEXT: {{^}} 3 .bar 00000000 + +## Including a section with a name of length 14 expands the width of the "Name" +## column. +# RUN: yaml2obj %s --docnum=3 -o %t-name14chars.o +# RUN: llvm-objdump -h --show-lma %t-name14chars.o \ +# RUN: | FileCheck %s --check-prefix=NAME-14 --strict-whitespace +# RUN: llvm-objdump -h %t-name14chars.o \ +# RUN: | FileCheck %s --check-prefix=NAME-14 --strict-whitespace + +# NAME-14: Sections: +# NAME-14-NEXT: {{^}}Idx Name Size +# NAME-14-NEXT: {{^}} 0 00000000 +# NAME-14-NEXT: {{^}} 1 .foo 00000000 +# NAME-14-NEXT: {{^}} 2 .fourteenchars 00000000 +# NAME-14-NEXT: {{^}} 3 .bar 00000000 + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .foo + Type: SHT_PROGBITS + - Name: .thirteenchar + Type: SHT_PROGBITS + - Name: .bar + Type: SHT_PROGBITS + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .foo + Type: SHT_PROGBITS + - Name: .fourteenchars + Type: SHT_PROGBITS + - Name: .bar + Type: SHT_PROGBITS + +## Check that objdump -h only prints the necessary amount of bytes for +## addresses. + +# RUN: yaml2obj %s --docnum=4 -o %t-32bit.o +# RUN: yaml2obj %s --docnum=5 -o %t-64bit.o + +# RUN: llvm-objdump -h --show-lma %t-32bit.o \ +# RUN: | FileCheck %s --check-prefix=32 --strict-whitespace +# 32: {{^}}Idx Name Size VMA LMA Type{{$}} +# 32: {{^}} 1 .foo 00000000 00000400 00000400 TEXT{{$}} + +# RUN: llvm-objdump -h %t-32bit.o \ +# RUN: | FileCheck %s --check-prefix=32-NO-LMA --strict-whitespace +# 32-NO-LMA: {{^}}Idx Name Size VMA Type{{$}} +# 32-NO-LMA: {{^}} 1 .foo 00000000 00000400 TEXT{{$}} + +# RUN: llvm-objdump -h --show-lma %t-64bit.o \ +# RUN: | FileCheck %s --check-prefix=64 --strict-whitespace +# 64: {{^}}Idx Name Size VMA LMA Type{{$}} +# 64: {{^}} 1 .foo 00000000 0000000000000400 0000000000000400 TEXT{{$}} + +# RUN: llvm-objdump -h %t-64bit.o \ +# RUN: | FileCheck %s --check-prefix=64-NO-LMA --strict-whitespace +# 64-NO-LMA: {{^}}Idx Name Size VMA Type{{$}} +# 64-NO-LMA: {{^}} 1 .foo 00000000 0000000000000400 TEXT{{$}} + +--- !ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_386 +Sections: + - Name: .foo + Type: SHT_PROGBITS + Flags: [SHF_ALLOC, SHF_EXECINSTR] + Address: 0x400 + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .foo + Type: SHT_PROGBITS + Flags: [SHF_ALLOC, SHF_EXECINSTR] + Address: 0x400 |

