[llvm] 840737f - [yaml2obj][test] - Merge dynsymtab-shlink.yaml to dynsym-section.yaml

Georgii Rymar via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 29 03:34:26 PDT 2020


Author: Georgii Rymar
Date: 2020-10-29T13:30:07+03:00
New Revision: 840737fc82277f5303708ff062cdedd084248631

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

LOG: [yaml2obj][test] - Merge dynsymtab-shlink.yaml to dynsym-section.yaml

This simplifies the dynsymtab-shlink.yaml test (with use of macros)
and merges it into the dynsym-section.yaml test.

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

Added: 
    

Modified: 
    llvm/test/tools/yaml2obj/ELF/dynsym-section.yaml

Removed: 
    llvm/test/tools/yaml2obj/ELF/dynsymtab-shlink.yaml


################################################################################
diff  --git a/llvm/test/tools/yaml2obj/ELF/dynsym-section.yaml b/llvm/test/tools/yaml2obj/ELF/dynsym-section.yaml
index 1c6f3efe3cfd..5c461132fc9d 100644
--- a/llvm/test/tools/yaml2obj/ELF/dynsym-section.yaml
+++ b/llvm/test/tools/yaml2obj/ELF/dynsym-section.yaml
@@ -31,3 +31,50 @@ Sections:
 # OFFSET-NEXT:   [Nr] Name    Type   Address          Off    Size   ES Flg Lk Inf Al
 # OFFSET-NEXT:   [ 0]         NULL   0000000000000000 000000 000000 00     0   0  0
 # OFFSET-NEXT:   [ 1] .dynsym DYNSYM 0000000000000000 000100 000018 18   A 0   1  0
+
+## Check we are able to set Link = 0 for the .dynsym section explicitly.
+
+# RUN: yaml2obj %s --docnum=2 -DLINK="Link: 0" -o %t2
+# RUN: llvm-readelf --section-headers %t2 | FileCheck %s --check-prefix=LINK-NULL
+
+# LINK-NULL: [Nr] Name    {{.*}} Flg Lk Inf
+# LINK-NULL: [ 1] .dynsym {{.*}}   A 0   1
+
+--- !ELF
+FileHeader:
+  Class: ELFCLASS64
+  Data:  ELFDATA2LSB
+  Type:  ET_DYN
+Sections:
+  - Name: .dynsym
+    Type: SHT_DYNSYM
+    [[LINK]]
+  - Name: .dynstr
+    Type: SHT_STRTAB
+  - Name: .foo
+    Type: SHT_PROGBITS
+
+## Check that by default the .dynsym section will be linked to the .dynstr section,
+## when the latter one exists.
+
+# RUN: yaml2obj %s --docnum=2 -DLINK="" -o %t3
+# RUN: llvm-readelf --section-headers %t3 | FileCheck %s --check-prefix=LINK-DEFAULT
+
+# LINK-DEFAULT: [Nr] Name    {{.*}} Flg Lk Inf
+# LINK-DEFAULT: [ 1] .dynsym {{.*}}   A 2   1
+# LINK-DEFAULT: [ 2] .dynstr {{.*}}   A 0   0
+
+## Even when the .dynstr section exists, we can explicitly link the .dynsym section
+## to another section.
+
+# RUN: yaml2obj %s --docnum=2 -DLINK="Link: 3" -o %t4
+# RUN: llvm-readelf --section-headers %t4 | FileCheck %s --check-prefix=LINK-FOO
+
+# LINK-FOO: [Nr] Name     {{.*}} Flg Lk Inf
+# LINK-FOO: [ 1] .dynsym  {{.*}}   A 3   1
+# LINK-FOO: [ 3] .foo
+
+## Check we can use a section name as a Link value for .dynsym.
+
+# RUN: yaml2obj %s --docnum=2 -DLINK="Link: .foo" -o %t5
+# RUN: llvm-readelf --section-headers %t5 | FileCheck %s --check-prefix=LINK-FOO

diff  --git a/llvm/test/tools/yaml2obj/ELF/dynsymtab-shlink.yaml b/llvm/test/tools/yaml2obj/ELF/dynsymtab-shlink.yaml
deleted file mode 100644
index b69413e7136b..000000000000
--- a/llvm/test/tools/yaml2obj/ELF/dynsymtab-shlink.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-## For implicit dynamic symbol table sections, `Link` field can also
-## be specified in YAML. Here we test the behavior in 
diff erent cases.
-
-## Check we are able to set Link = 0 for .dynsym explicitly.
-
-# RUN: yaml2obj --docnum=1 %s -o %t1
-# RUN: llvm-readobj %t1 -S | FileCheck %s --check-prefix=CASE1
-
-# CASE1: Name: .dynsym
-# CASE1: Link:
-# CASE1-SAME: 0
-
---- !ELF
-FileHeader:
-  Class: ELFCLASS64
-  Data:  ELFDATA2LSB
-  Type:  ET_DYN
-Sections:
-  - Name: .dynsym
-    Type: SHT_DYNSYM
-    Link: 0
-
-## Check that by default .dynsym will be linked to .dynstr
-## if the latter exists.
-
-# RUN: yaml2obj --docnum=2 %s -o %t2
-# RUN: llvm-readobj %t2 -S | FileCheck %s --check-prefix=CASE2
-
-# CASE2:      .dynsym
-# CASE2:      Link:
-# CASE2-SAME: 2
-# CASE2:      Index: 2
-# CASE2-NEXT: Name: .dynstr
-
---- !ELF
-FileHeader:
-  Class: ELFCLASS64
-  Data:  ELFDATA2LSB
-  Type:  ET_DYN
-Sections:
-  - Name: .dynsym
-    Type: SHT_DYNSYM
-  - Name: .dynstr
-    Type: SHT_STRTAB
-
-## Even if .dynstr exists, we can explicitly link .dynsym
-## to another section.
-
-# RUN: yaml2obj --docnum=3 %s -o %t3
-# RUN: llvm-readobj %t3 -S | FileCheck %s --check-prefix=CASE3
-
-# CASE3:      .dynsym
-# CASE3:      Link:
-# CASE3-SAME: 3
-# CASE3:      Index: 3
-# CASE3-NEXT: Name: .foo
-
---- !ELF
-FileHeader:
-  Class: ELFCLASS64
-  Data:  ELFDATA2LSB
-  Type:  ET_DYN
-Sections:
-  - Name: .dynsym
-    Type: SHT_DYNSYM
-    Link: 3
-  - Name: .dynstr
-    Type: SHT_STRTAB
-  - Name: .foo
-    Type: SHT_PROGBITS
-
-## Check we can use a section name as a Link value for .dynsym.
-
-# RUN: yaml2obj --docnum=4 %s -o %t4
-# RUN: llvm-readobj %t4 -S | FileCheck %s --check-prefix=CASE4
-
-# CASE4:      .dynsym
-# CASE4:      Link:
-# CASE4-SAME: 2
-# CASE4:      Index: 2
-# CASE4-NEXT: Name: .foo
-
---- !ELF
-FileHeader:
-  Class: ELFCLASS64
-  Data:  ELFDATA2LSB
-  Type:  ET_DYN
-Sections:
-  - Name: .dynsym
-    Type: SHT_DYNSYM
-    Link: .foo
-  - Name: .foo
-    Type: SHT_PROGBITS


        


More information about the llvm-commits mailing list