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

Georgii Rymar via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 13 03:53:07 PDT 2020


Author: Georgii Rymar
Date: 2020-08-13T13:52:49+03:00
New Revision: 936ba7eec3f00980862bf9a520d810e0e4956376

URL: https://github.com/llvm/llvm-project/commit/936ba7eec3f00980862bf9a520d810e0e4956376
DIFF: https://github.com/llvm/llvm-project/commit/936ba7eec3f00980862bf9a520d810e0e4956376.diff

LOG: [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

Added: 
    

Modified: 
    llvm/test/tools/llvm-readobj/ELF/headers.test
    llvm/tools/llvm-readobj/llvm-readobj.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/llvm-readobj/ELF/headers.test b/llvm/test/tools/llvm-readobj/ELF/headers.test
index cc05ece49fbc..c2e9649ddcab 100644
--- a/llvm/test/tools/llvm-readobj/ELF/headers.test
+++ b/llvm/test/tools/llvm-readobj/ELF/headers.test
@@ -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

diff  --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index d6fc610bc2ca..9b54efec7a3b 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -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, "


        


More information about the llvm-commits mailing list