[llvm] 917bdfa - [llvm-readobj] - Simplify and refine hash table tests

Georgii Rymar via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 1 02:11:11 PDT 2020


Author: Georgii Rymar
Date: 2020-07-01T12:09:08+03:00
New Revision: 917bdfaca6df575f617b0f3aa989183ab187e8ac

URL: https://github.com/llvm/llvm-project/commit/917bdfaca6df575f617b0f3aa989183ab187e8ac
DIFF: https://github.com/llvm/llvm-project/commit/917bdfaca6df575f617b0f3aa989183ab187e8ac.diff

LOG: [llvm-readobj] - Simplify and refine hash table tests

Now we are able to have default values for macros in YAML descriptions.
I've applied it for hash table tests and also fixed few copy-paste issues
in their comments.

Differential revision: https://reviews.llvm.org/D82870

Added: 
    

Modified: 
    llvm/test/tools/llvm-readobj/ELF/gnuhash.test
    llvm/test/tools/llvm-readobj/ELF/hash-histogram.test
    llvm/test/tools/llvm-readobj/ELF/hash-symbols.test

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/llvm-readobj/ELF/gnuhash.test b/llvm/test/tools/llvm-readobj/ELF/gnuhash.test
index 7fe2e465c648..ce10cc3d997d 100644
--- a/llvm/test/tools/llvm-readobj/ELF/gnuhash.test
+++ b/llvm/test/tools/llvm-readobj/ELF/gnuhash.test
@@ -1,7 +1,7 @@
 ## Check how the GNU Hash section is dumped with --gnu-hash-table.
 
-# RUN: yaml2obj --docnum=1 -DBITS=64 -DMACHINE=EM_X86_64 -D MASKWORDS=2 -D NBUCKETS=3 %s -o %t.x64
-# RUN: yaml2obj --docnum=1 -DBITS=32 -DMACHINE=EM_386 %s -D MASKWORDS=2 -D NBUCKETS=3 -o %t.x32
+# RUN: yaml2obj --docnum=1 -DBITS=64 -DMACHINE=EM_X86_64 %s -o %t.x64
+# RUN: yaml2obj --docnum=1 -DBITS=32 -DMACHINE=EM_386 %s -o %t.x32
 
 # RUN: llvm-readobj --gnu-hash-table %t.x64 | FileCheck %s
 # RUN: llvm-readelf --gnu-hash-table %t.x64 | FileCheck %s
@@ -33,9 +33,9 @@ Sections:
       SymNdx: 0x1
       Shift2: 0x2
 ## The number of words in the Bloom filter. The value of 2 is no-op.
-      MaskWords: [[MASKWORDS]]
+      MaskWords: [[MASKWORDS=2]]
 ## The number of hash buckets. The value of 3 is no-op.
-      NBuckets:  [[NBUCKETS]]
+      NBuckets:  [[NBUCKETS=3]]
     BloomFilter: [0x3, 0x4]
     HashBuckets: [0x5, 0x6, 0x7]
     HashValues:  [0x8, 0x9, 0xA, 0xB]
@@ -290,15 +290,15 @@ ProgramHeaders:
 
 ## Check we report a proper warning when a hash table goes past the end of the file.
 
-## Case A: the 'nbuckets' field is set so that the table goes past the end of the file.
-# RUN: yaml2obj --docnum=1 -DBITS=64 -DMACHINE=EM_X86_64 -D MASKWORDS=4294967295 -D NBUCKETS=3 %s -o %t.err.maskwords
+## Case A: the 'maskwords' field is set so that the table goes past the end of the file.
+# RUN: yaml2obj --docnum=1 -DBITS=64 -DMACHINE=EM_X86_64 -D MASKWORDS=4294967295 %s -o %t.err.maskwords
 # RUN: llvm-readobj --gnu-hash-table %t.err.maskwords 2>&1 | \
 # RUN:   FileCheck %s -DFILE=%t.err.maskwords -DMASKWORDS=4294967295 -DNBUCKETS=3 --check-prefix=ERR
 # RUN: llvm-readelf --gnu-hash-table %t.err.maskwords 2>&1 | \
 # RUN:   FileCheck %s -DFILE=%t.err.maskwords -DMASKWORDS=4294967295 -DNBUCKETS=3 --check-prefix=ERR
 
-## Case B: the 'maskwords' field is set so that the table goes past the end of the file.
-# RUN: yaml2obj --docnum=1 -DBITS=64 -DMACHINE=EM_X86_64 -D MASKWORDS=2 -D NBUCKETS=4294967295 %s -o %t.err.nbuckets
+## Case B: the 'nbuckets' field is set so that the table goes past the end of the file.
+# RUN: yaml2obj --docnum=1 -DBITS=64 -DMACHINE=EM_X86_64 -D NBUCKETS=4294967295 %s -o %t.err.nbuckets
 # RUN: llvm-readobj --gnu-hash-table %t.err.nbuckets 2>&1 | \
 # RUN:   FileCheck %s -DFILE=%t.err.nbuckets -DMASKWORDS=2 -DNBUCKETS=4294967295 --check-prefix=ERR
 # RUN: llvm-readelf --gnu-hash-table %t.err.nbuckets 2>&1 | \

diff  --git a/llvm/test/tools/llvm-readobj/ELF/hash-histogram.test b/llvm/test/tools/llvm-readobj/ELF/hash-histogram.test
index 525240e7dea7..736f170e4951 100644
--- a/llvm/test/tools/llvm-readobj/ELF/hash-histogram.test
+++ b/llvm/test/tools/llvm-readobj/ELF/hash-histogram.test
@@ -211,8 +211,7 @@ ProgramHeaders:
 ## Check we dump a histogram for the .gnu.hash table even when the .hash table is skipped.
 
 ## Case A: the .hash table has no data to build histogram and it is skipped.
-##         (NBUCKET == 0x2 is a no-op: it does not change the number of buckets described by the "Bucket" key).
-# RUN: yaml2obj --docnum=5 -DNBUCKET=0x2 %s -o %t5.o
+# RUN: yaml2obj --docnum=5 %s -o %t5.o
 # RUN: llvm-readelf --elf-hash-histogram %t5.o 2>&1 | \
 # RUN:   FileCheck %s --check-prefix=GNU-HASH --implicit-check-not="Histogram"
 
@@ -236,7 +235,8 @@ Sections:
     Type:    SHT_HASH
     Flags:   [ SHF_ALLOC ]
     Bucket:  [ 0 ]
-    NBucket: [[NBUCKET]]
+## 0x2 is a no-op: it does not change the number of buckets described by the "Bucket" key
+    NBucket: [[NBUCKET=0x2]]
     Chain:   [ 0, 0 ]
   - Name:  .gnu.hash
     Type:  SHT_GNU_HASH
@@ -269,17 +269,15 @@ ProgramHeaders:
 
 ## Check we report a proper warning when the GNU hash table goes past the end of the file.
 
-## Case A: the 'nbuckets' field is set so that the GNU hash table goes past the end of the file.
-##         The value of 1 for the NBUCKETS is no-op.
-# RUN: yaml2obj --docnum=6 -D MASKWORDS=0x80000000 -D NBUCKETS=1 %s -o %t7
+## Case A: the 'maskwords' field is set so that the GNU hash table goes past the end of the file.
+# RUN: yaml2obj --docnum=6 -D MASKWORDS=0x80000000 %s -o %t7
 # RUN: llvm-readelf --elf-hash-histogram %t7 2>&1 | \
 # RUN:   FileCheck %s -DFILE=%t7 --check-prefix=ERR5 --implicit-check-not="Histogram"
 
 # ERR5: warning: '[[FILE]]': unable to dump the SHT_GNU_HASH section at 0x78: it goes past the end of the file
 
-## Case B: the 'maskwords' field is set so that the GNU hash table goes past the end of the file.
-##         The value of 1 for the MASKWORDS is no-op.
-# RUN: yaml2obj --docnum=6 -D MASKWORDS=1 -D NBUCKETS=0x80000000 %s -o %t8
+## Case B: the 'nbuckets' field is set so that the GNU hash table goes past the end of the file.
+# RUN: yaml2obj --docnum=6 -D NBUCKETS=0x80000000 %s -o %t8
 # RUN: llvm-readelf --elf-hash-histogram %t8 2>&1 | \
 # RUN:   FileCheck %s -DFILE=%t8 --check-prefix=ERR5 --implicit-check-not="Histogram"
 
@@ -296,10 +294,10 @@ Sections:
     Header:
       SymNdx: 0x0
       Shift2: 0x0
-## The number of words in the Bloom filter.
-      MaskWords: [[MASKWORDS]]
-## The number of hash buckets.
-      NBuckets:  [[NBUCKETS]]
+## The number of words in the Bloom filter. The value of 1 is no-op.
+      MaskWords: [[MASKWORDS=1]]
+## The number of hash buckets. The value of 1 is no-op.
+      NBuckets:  [[NBUCKETS=1]]
     BloomFilter: [ 0x0 ]
     HashBuckets: [ 0x0 ]
     HashValues:  [ 0x0 ]

diff  --git a/llvm/test/tools/llvm-readobj/ELF/hash-symbols.test b/llvm/test/tools/llvm-readobj/ELF/hash-symbols.test
index edd3c1e9b84c..b43f3eb64aec 100644
--- a/llvm/test/tools/llvm-readobj/ELF/hash-symbols.test
+++ b/llvm/test/tools/llvm-readobj/ELF/hash-symbols.test
@@ -388,7 +388,7 @@ ProgramHeaders:
 
 ## Case A.1: the hash table ends right before the EOF. We have a broken nbucket
 ##           field that has a value larger than the number of buckets.
-# RUN: yaml2obj --docnum=7 %s -o %t7.1.o -DNBUCKET=0x5d -DNCHAIN=0x1
+# RUN: yaml2obj --docnum=7 %s -o %t7.1.o -DNBUCKET=0x5d
 # RUN: llvm-readelf --hash-symbols %t7.1.o 2>&1 | FileCheck %s --check-prefix=NOERR1
 # NOERR1:            Symbol table of .hash for image:
 # NOERR1-NEXT:         Num Buc:    Value  Size   Type   Bind Vis      Ndx Name
@@ -396,7 +396,7 @@ ProgramHeaders:
 
 ## Case A.2: the hash table ends 1 byte past the EOF. We have a broken nbucket
 ##           field that has a value larger than the number of buckets.
-# RUN: yaml2obj --docnum=7 %s -o %t7.2.o -DNBUCKET=0x5e -DNCHAIN=0x1
+# RUN: yaml2obj --docnum=7 %s -o %t7.2.o -DNBUCKET=0x5e
 # RUN: llvm-readelf --hash-symbols %t7.2.o 2>&1 | FileCheck %s --check-prefix=ERR2 -DFILE=%t7.2.o
 # ERR2:      Symbol table of .hash for image:
 # ERR2-NEXT: warning: '[[FILE]]': the hash table at offset 0x54 goes past the end of the file (0x1d4), nbucket = 94, nchain = 1{{$}}
@@ -404,7 +404,7 @@ ProgramHeaders:
 
 ## Case B.1: the hash table ends right before the EOF. We have a broken nchain
 ##           field that has a value larger than the number of chains.
-# RUN: yaml2obj --docnum=7 %s -o %t7.3.o -DNBUCKET=0x1 -DNCHAIN=0x5d
+# RUN: yaml2obj --docnum=7 %s -o %t7.3.o -DNCHAIN=0x5d
 # RUN: llvm-readelf --hash-symbols %t7.3.o 2>&1 | \
 # RUN:   FileCheck %s --implicit-check-not="warning:" --check-prefix=NOERR2 -DFILE=%t7.3.o
 # NOERR2:      warning: '[[FILE]]': hash table nchain (93) 
diff ers from symbol count derived from SHT_DYNSYM section header (1)
@@ -414,7 +414,7 @@ ProgramHeaders:
 
 ## Case B.2: the hash table ends 1 byte past the EOF. We have a broken nchain
 ##           field that has a value larger than the number of chains.
-# RUN: yaml2obj --docnum=7 %s -o %t7.4.o -DNBUCKET=0x1 -DNCHAIN=0x5e
+# RUN: yaml2obj --docnum=7 %s -o %t7.4.o -DNCHAIN=0x5e
 # RUN: llvm-readelf --hash-symbols %t7.4.o 2>&1 | FileCheck %s --check-prefix=ERR3 -DFILE=%t7.4.o
 # ERR3:      Symbol table of .hash for image:
 # ERR3-NEXT: warning: '[[FILE]]': the hash table at offset 0x54 goes past the end of the file (0x1d4), nbucket = 1, nchain = 94{{$}}
@@ -431,9 +431,9 @@ Sections:
     Type:    SHT_HASH
     Flags:   [ SHF_ALLOC ]
     Bucket:  [ 0 ]
-    NBucket: [[NBUCKET]]
+    NBucket: [[NBUCKET=1]]
     Chain:   [ 0 ]
-    NChain:  [[NCHAIN]]
+    NChain:  [[NCHAIN=1]]
   - Name:  .dynamic
     Type:  SHT_DYNAMIC
     Flags: [ SHF_WRITE, SHF_ALLOC ]
@@ -451,19 +451,19 @@ ProgramHeaders:
 
 ## Check we report a proper warning when a GNU hash table goes past the end of the file.
 
-## Case A: the 'nbuckets' field is set so that the table goes past the end of the file.
-# RUN: yaml2obj --docnum=8 -D MASKWORDS=4294967295 -D NBUCKETS=3 %s -o %t.err.maskwords
+## Case A: the 'maskwords' field is set so that the table goes past the end of the file.
+# RUN: yaml2obj --docnum=8 -D MASKWORDS=4294967295 %s -o %t.err.maskwords
 # RUN: llvm-readelf --hash-symbols %t.err.maskwords 2>&1 | \
-# RUN:   FileCheck %s -DFILE=%t.err.maskwords -DMASKWORDS=4294967295 -DNBUCKETS=3 --check-prefix=ERR4
+# RUN:   FileCheck %s -DFILE=%t.err.maskwords --check-prefix=ERR4
 
 # ERR4:      Symbol table of .gnu.hash for image:
 # ERR4-NEXT:  Num Buc: Value Size Type Bind Vis Ndx Name
 # ERR4-NEXT: warning: '[[FILE]]': unable to dump the SHT_GNU_HASH section at 0x78: it goes past the end of the file
 
-## Case B: the 'maskwords' field is set so that the table goes past the end of the file.
-# RUN: yaml2obj --docnum=8 -D MASKWORDS=2 -D NBUCKETS=4294967295 %s -o %t.err.nbuckets
+## Case B: the 'nbuckets' field is set so that the table goes past the end of the file.
+# RUN: yaml2obj --docnum=8 -D NBUCKETS=4294967295 %s -o %t.err.nbuckets
 # RUN: llvm-readelf --hash-symbols %t.err.nbuckets 2>&1 | \
-# RUN:   FileCheck %s -DFILE=%t.err.nbuckets -DMASKWORDS=2 -DNBUCKETS=4294967295 --check-prefix=ERR4
+# RUN:   FileCheck %s -DFILE=%t.err.nbuckets --check-prefix=ERR4
 
 --- !ELF
 FileHeader:
@@ -479,9 +479,9 @@ Sections:
       SymNdx: 0x1
       Shift2: 0x2
 ## The number of words in the Bloom filter. The value of 2 is no-op.
-      MaskWords: [[MASKWORDS]]
+      MaskWords: [[MASKWORDS=2]]
 ## The number of hash buckets. The value of 3 is no-op.
-      NBuckets:  [[NBUCKETS]]
+      NBuckets:  [[NBUCKETS=3]]
     BloomFilter: [0x3, 0x4]
     HashBuckets: [0x5, 0x6, 0x7]
     HashValues:  [0x8, 0x9, 0xA, 0xB]


        


More information about the llvm-commits mailing list