[lld] f097c10 - [ELF][test] Improve INSERT [AFTER|BEFORE] and adjustSectionsBeforeSorting tests

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 28 22:21:18 PST 2022


Author: Fangrui Song
Date: 2022-01-28T22:21:13-08:00
New Revision: f097c108b88d9d1cb2978fef1ecac16956430d7a

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

LOG: [ELF][test] Improve INSERT [AFTER|BEFORE] and adjustSectionsBeforeSorting tests

Added: 
    

Modified: 
    lld/test/ELF/linkerscript/insert-after.test
    lld/test/ELF/linkerscript/insert-before.test
    lld/test/ELF/linkerscript/symbol-only-flags.test

Removed: 
    


################################################################################
diff  --git a/lld/test/ELF/linkerscript/insert-after.test b/lld/test/ELF/linkerscript/insert-after.test
index 65751c75206ab..b438389c795fe 100644
--- a/lld/test/ELF/linkerscript/insert-after.test
+++ b/lld/test/ELF/linkerscript/insert-after.test
@@ -7,12 +7,13 @@
 
 # RUN: ld.lld %t1.o -o %t1 --script %p/Inputs/insert-after.script --script %s
 # RUN: llvm-readelf -S -l %t1 | FileCheck %s
-# CHECK:      Name      Type     Address          Off
+# CHECK:      Name      Type     Address          Off    Size   ES Flg
 # CHECK-NEXT:           NULL     0000000000000000 000000
-# CHECK-NEXT: .text     PROGBITS 0000000000000000 001000
-# CHECK-NEXT: .foo.text PROGBITS 0000000000000008 001008
-# CHECK-NEXT: .data     PROGBITS 0000000000000010 001010
-# CHECK-NEXT: .foo.data PROGBITS 0000000000000018 001018
+# CHECK-NEXT: .text     PROGBITS 0000000000000000 001000 000008 00  AX
+# CHECK-NEXT: .foo.text PROGBITS 0000000000000008 001008 000008 00  AX
+# CHECK-NEXT: .data     PROGBITS 0000000000000010 001010 000008 00  WA
+# CHECK-NEXT: .foo.data PROGBITS 0000000000000018 001018 000008 00  WA
+# CHECK-NEXT: .byte     PROGBITS 0000000000000020 001020 000001 00  WA
 # CHECK:      Type
 # CHECK-NEXT: LOAD {{.*}} R E
 # CHECK-NEXT: LOAD {{.*}} RW
@@ -24,18 +25,21 @@
 
 # RUN: ld.lld --script %s %t1.o -o %t2
 # RUN: llvm-readelf -S -l %t2 | FileCheck --check-prefix=CHECK2 %s
-# CHECK2:      Name      Type     Address          Off
-# CHECK2-NEXT:           NULL     0000000000000000 000000
-# CHECK2-NEXT: .text     PROGBITS 0000000000201158 000158
-# CHECK2-NEXT: .foo.text PROGBITS 0000000000201160 000160
-# CHECK2-NEXT: .data     PROGBITS 0000000000202168 000168
-# CHECK2-NEXT: .foo.data PROGBITS 0000000000202170 000170
-# CHECK2:      Type
-# CHECK2-NEXT: PHDR {{.*}} R
-# CHECK2-NEXT: LOAD {{.*}} R
-# CHECK2-NEXT: LOAD {{.*}} R E
-# CHECK2-NEXT: LOAD {{.*}} RW
-# CHECK2-NEXT: GNU_STACK {{.*}} RW
+# CHECK2:      Name      Type     Address            Off      Size   ES Flg
+# CHECK2-NEXT:           NULL
+# CHECK2-NEXT: .text     PROGBITS 000000000020{{.*}} [[#%x,]] 000008 00  AX
+# CHECK2-NEXT: .foo.text PROGBITS [[#%x,]]           [[#%x,]] 000008 00  AX
+# CHECK2-NEXT: .data     PROGBITS [[#%x,]]           [[#%x,]] 000008 00  WA
+# CHECK2-NEXT: .foo.data PROGBITS [[#%x,]]           [[#%x,]] 000008 00  WA
+# CHECK2-NEXT: .byte     PROGBITS [[#%x,]]           [[#%x,]] 000001 00     0
+# CHECK2:      Type      {{.*}} Flg Align
+# CHECK2-NEXT: PHDR      {{.*}} R   0x8
+# CHECK2-NEXT: LOAD      {{.*}} R   0x1000
+# CHECK2-NEXT: LOAD      {{.*}} R E 0x1000
+# CHECK2-NEXT: LOAD      {{.*}} RW  0x1000
+# CHECK2-NEXT: GNU_STACK {{.*}} RW  0
+
+SECTIONS { .byte : { BYTE(0) } } INSERT AFTER .data;
 
 SECTIONS { .foo.data : { *(.foo.data) } } INSERT AFTER .data;
 

diff  --git a/lld/test/ELF/linkerscript/insert-before.test b/lld/test/ELF/linkerscript/insert-before.test
index 8fe912fdf9123..ff407464e3f53 100644
--- a/lld/test/ELF/linkerscript/insert-before.test
+++ b/lld/test/ELF/linkerscript/insert-before.test
@@ -7,12 +7,13 @@
 
 # RUN: ld.lld %t1.o -o %t1 --script %p/Inputs/insert-after.script --script %s
 # RUN: llvm-readelf -S -l %t1 | FileCheck %s
-# CHECK:      Name      Type     Address          Off
-# CHECK-NEXT:           NULL     0000000000000000 000000
-# CHECK-NEXT: .foo.text PROGBITS 0000000000000000 001000
-# CHECK-NEXT: .text     PROGBITS 0000000000000008 001008
-# CHECK-NEXT: .foo.data PROGBITS 0000000000000010 001010
-# CHECK-NEXT: .data     PROGBITS 0000000000000018 001018
+# CHECK:      Name      Type     Address          Off    Size   ES Flg
+# CHECK-NEXT:           NULL
+# CHECK-NEXT: .foo.text PROGBITS 0000000000000000 001000 000008 00  AX
+# CHECK-NEXT: .text     PROGBITS 0000000000000008 001008 000008 00  AX
+# CHECK-NEXT: .byte     PROGBITS 0000000000000010 001010 000001 00  WA
+# CHECK-NEXT: .foo.data PROGBITS 0000000000000011 001011 000008 00  WA
+# CHECK-NEXT: .data     PROGBITS 0000000000000019 001019 000008 00  WA
 # CHECK:      Type
 # CHECK-NEXT: LOAD {{.*}} R E
 # CHECK-NEXT: LOAD {{.*}} RW
@@ -24,17 +25,21 @@
 
 # RUN: ld.lld --script %s %t1.o -o %t2
 # RUN: llvm-readelf -S -l %t2 | FileCheck --check-prefix=CHECK2 %s
-# CHECK2:      Name      Type     Address          Off
-# CHECK2-NEXT:           NULL     0000000000000000 000000
-# CHECK2-NEXT: .foo.text PROGBITS 0000000000201158 000158
-# CHECK2-NEXT: .text     PROGBITS 0000000000201160 000160
-# CHECK2-NEXT: .foo.data PROGBITS 0000000000202168 000168
-# CHECK2-NEXT: .data     PROGBITS 0000000000202170 000170
-# CHECK2:      Type
-# CHECK2-NEXT: PHDR {{.*}} R
-# CHECK2-NEXT: LOAD {{.*}} R
-# CHECK2-NEXT: LOAD {{.*}} R E
-# CHECK2-NEXT: LOAD {{.*}} RW
+# CHECK2:      Name      Type     Address            Off      Size   ES Flg
+# CHECK2-NEXT:           NULL
+# CHECK2-NEXT: .foo.text PROGBITS 000000000020{{.*}} [[#%x,]] 000008 00  AX
+# CHECK2-NEXT: .text     PROGBITS [[#%x,]]           [[#%x,]] 000008 00  AX
+# CHECK2-NEXT: .byte     PROGBITS [[#%x,]]           [[#%x,]] 000001 00     0
+# CHECK2-NEXT: .foo.data PROGBITS [[#%x,]]           [[#%x,]] 000008 00  WA
+# CHECK2-NEXT: .data     PROGBITS [[#%x,]]           [[#%x,]] 000008 00  WA
+# CHECK2:      Type      {{.*}} Flg Align
+# CHECK2-NEXT: PHDR      {{.*}} R   0x8
+# CHECK2-NEXT: LOAD      {{.*}} R   0x1000
+# CHECK2-NEXT: LOAD      {{.*}} R E 0x1000
+# CHECK2-NEXT: LOAD      {{.*}} RW  0x1000
+# CHECK2-NEXT: GNU_STACK {{.*}} RW  0
+
+SECTIONS { .byte : { BYTE(0) } } INSERT BEFORE .data;
 
 SECTIONS { .foo.data : { *(.foo.data) } } INSERT BEFORE .data;
 

diff  --git a/lld/test/ELF/linkerscript/symbol-only-flags.test b/lld/test/ELF/linkerscript/symbol-only-flags.test
index ed2ea762f8725..c16917971f854 100644
--- a/lld/test/ELF/linkerscript/symbol-only-flags.test
+++ b/lld/test/ELF/linkerscript/symbol-only-flags.test
@@ -2,20 +2,14 @@
 # RUN: echo '.section .tbss,"awT", at nobits; .quad 0' \
 # RUN:   | llvm-mc -filetype=obj -triple=x86_64-unknown-linux - -o %t.o
 # RUN: ld.lld -o %t --script %s %t.o
-# RUN: llvm-readobj -S %t | FileCheck %s
+# RUN: llvm-readelf -S %t | FileCheck %s
+
+## Check .foo does not get SHF_TLS flag.
+# CHECK:      .tbss        NOBITS   [[#%x,]] [[#%x,]] [[#%x,]] 00 WAT
+# CHECK-NEXT: .foo         PROGBITS [[#%x,]] [[#%x,]] [[#%x,]] 00  WA
 
 SECTIONS {
   . = SIZEOF_HEADERS;
   .tbss : { *(.tbss) }
   .foo : { bar = .; }
 }
-
-## Check .foo does not get SHF_TLS flag.
-# CHECK:     Section {
-# CHECK:       Index:
-# CHECK:       Name: .foo
-# CHECK-NEXT:  Type: SHT_PROGBITS
-# CHECK-NEXT:  Flags [
-# CHECK-NEXT:    SHF_ALLOC
-# CHECK-NEXT:    SHF_WRITE
-# CHECK-NEXT:  ]


        


More information about the llvm-commits mailing list