[llvm] a5b484c - [obj2yaml][test] - Improve and fix section-group.yaml test.

Georgii Rymar via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 11 04:24:55 PST 2021


Author: Georgii Rymar
Date: 2021-01-11T15:24:21+03:00
New Revision: a5b484c4d41a7452b590a2c1c98dc31f43d3dc1a

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

LOG: [obj2yaml][test] - Improve and fix section-group.yaml test.

It has multiple issues fixed by this patch:
1) It shouldn't test how llvm-readelf/yaml2obj works.
2) It should use "-NEXT" prefix for check lines.
3) It can use YAML macros, that allows to use a single YAML.
4) It should probably test the case when a group member is a null section.

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

Added: 
    

Modified: 
    llvm/test/tools/obj2yaml/ELF/section-group.yaml

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/obj2yaml/ELF/section-group.yaml b/llvm/test/tools/obj2yaml/ELF/section-group.yaml
index aba787ff59ac..33044ceeb36c 100644
--- a/llvm/test/tools/obj2yaml/ELF/section-group.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/section-group.yaml
@@ -1,30 +1,17 @@
 ## Checks that the tool is able to read section groups from ELF.
 
-# RUN: yaml2obj --docnum=1 %s -o %t1.o
-# RUN: llvm-readobj --elf-section-groups %t1.o | FileCheck %s -check-prefix=OBJ
-# RUN: obj2yaml %t1.o | FileCheck %s --check-prefix YAML
-
-# OBJ:      Groups {
-# OBJ-NEXT:   Group {
-# OBJ-NEXT:     Name: .group
-# OBJ-NEXT:     Index: 1
-# OBJ-NEXT:     Link: 3
-# OBJ-NEXT:     Info: 1
-# OBJ-NEXT:     Type: COMDAT (0x1)
-# OBJ-NEXT:     Signature: signature
-# OBJ-NEXT:     Section(s) in group [
-# OBJ-NEXT:       .rodata (2)
-# OBJ-NEXT:     ]
-# OBJ-NEXT:   }
-# OBJ-NEXT: }
-
-# YAML: - Name: .group
-# YAML:   Type: SHT_GROUP
-# YAML:   Link: .symtab
-# YAML:   Info: signature
-# YAML:   Members:
-# YAML:     - SectionOrType: GRP_COMDAT
-# YAML:     - SectionOrType: .rodata
+# RUN: yaml2obj %s -o %t1.o
+# RUN: obj2yaml %t1.o | FileCheck %s -DSEC=.rodata
+
+# CHECK:      - Name:    .group
+# CHECK-NEXT:   Type:    SHT_GROUP
+# CHECK-NEXT:   Link:    .symtab
+# CHECK-NEXT:   EntSize: 0x4
+# CHECK-NEXT:   Info:    signature
+# CHECK-NEXT:   Members:
+# CHECK-NEXT:     - SectionOrType: GRP_COMDAT
+# CHECK-NEXT:     - SectionOrType: [[SEC]]
+# CHECK-NEXT: - Name:
 
 --- !ELF
 FileHeader:
@@ -35,10 +22,10 @@ Sections:
   - Name: .group
     Type: SHT_GROUP
     Link: .symtab
-    Info: signature
+    Info: [[INFO=signature]]
     Members:
       - SectionOrType: GRP_COMDAT
-      - SectionOrType: .rodata
+      - SectionOrType: [[SEC=.rodata]]
   - Name: .rodata
     Type: SHT_PROGBITS
 Symbols:
@@ -46,24 +33,16 @@ Symbols:
     Type:    STT_OBJECT
     Section: .rodata
 
+## Check we are able to dump members of the SHT_GROUP section even when
+## one of them has section index 0.
+
+# RUN: yaml2obj -DSEC=0 %s -o %tnull.o
+# RUN: obj2yaml %tnull.o | FileCheck %s -DSEC="''"
+
 ## Check obj2yaml report an error when sh_info field of
 ## group section contains invalid (too large) signature symbol index.
 
-# RUN: yaml2obj --docnum=2 %s -o %t2.o
-# RUN: not obj2yaml %t2.o 2>&1 | FileCheck %s --check-prefix ERR
-
---- !ELF
-FileHeader:
-  Class: ELFCLASS64
-  Data:  ELFDATA2LSB
-  Type:  ET_REL
-Sections:
-  - Name: .group
-    Type: SHT_GROUP
-    Link: .symtab
-    Info: 0xFF
-    Members:
-      - SectionOrType: GRP_COMDAT
-Symbols: []
+# RUN: yaml2obj -DINFO=0xFF %s -o %t2.o
+# RUN: not obj2yaml %t2.o 2>&1 | FileCheck %s -DFILE=%t2.o --check-prefix=ERR
 
-# ERR: Error reading file: {{.*}}2.o: unable to get symbol from section [index 2]: invalid symbol index (255)
+# ERR: Error reading file: [[FILE]]: unable to get symbol from section [index 3]: invalid symbol index (255)


        


More information about the llvm-commits mailing list