[llvm-readobj/elf][test] - Refine --headers testing and the related code comment.

Specifying --headers is equivalent to setting --file-headers,
--program-headers and --section-headers at the same time.

The existent test case uses a precompiled object and doesn't test the
output properly. This patch fixes it.

Differential revision: https://reviews.llvm.org/D85832
This commit is contained in:
Georgii Rymar 2020-08-12 15:49:37 +03:00
parent 385c9d673f
commit 936ba7eec3
2 changed files with 49 additions and 6 deletions

View File

@ -1,5 +1,48 @@
RUN: llvm-readelf -e %p/Inputs/trivial.obj.elf-i386 > %t.e
RUN: llvm-readelf --headers %p/Inputs/trivial.obj.elf-i386 > %t.headers
RUN: llvm-readelf -h -l -S %p/Inputs/trivial.obj.elf-i386 > %t.hlS
RUN: cmp %t.e %t.headers
RUN: cmp %t.e %t.hlS
## This is a test for --headers and its alias -e.
## Specifying --headers is equivalent to setting --file-headers,
## --program-headers and --section-headers at the same time.
## We test these options independently, so here we just check
## that --headers triggers them.
# RUN: yaml2obj %s -o %t
## Case A: test llvm-readelf output.
# RUN: llvm-readelf --headers %t > %t.headers.gnu.txt
# RUN: FileCheck %s --input-file=%t.headers.gnu.txt --check-prefix=GNU
# GNU: ELF Header:
# GNU: Section Headers:
# GNU: Program Headers:
# GNU: Section to Segment mapping:
# RUN: llvm-readelf -e %t > %t.e.gnu.txt
# RUN: cmp %t.headers.gnu.txt %t.e.gnu.txt
# RUN: llvm-readelf --file-headers --program-headers --section-headers %t > %t.all.gnu.txt
# RUN: cmp %t.headers.gnu.txt %t.all.gnu.txt
## Case B: test llvm-readobj output.
# RUN: llvm-readobj --headers %t > %t.headers.llvm.txt
# RUN: FileCheck %s --input-file=%t.headers.llvm.txt --check-prefix=LLVM
# LLVM: ElfHeader {
# LLVM: Sections [
# LLVM: ProgramHeaders [
# RUN: llvm-readobj -e %t > %t.e.llvm.txt
# RUN: cmp %t.headers.llvm.txt %t.e.llvm.txt
# RUN: llvm-readobj --file-headers --program-headers --section-headers %t > %t.all.llvm.txt
# RUN: cmp %t.headers.llvm.txt %t.all.llvm.txt
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_NONE
Sections:
- Name: .foo
Type: SHT_PROGBITS
ProgramHeaders:
- Type: PT_LOAD

View File

@ -63,7 +63,7 @@ namespace opts {
DependentLibraries("dependent-libraries",
cl::desc("Display the dependent libraries section"));
// --headers -e
// --headers, -e
cl::opt<bool>
Headers("headers",
cl::desc("Equivalent to setting: --file-headers, --program-headers, "