[PATCH] D74879: [llvm-objcopy][test] Improve empty section tests
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 19 16:17:38 PST 2020
MaskRay created this revision.
MaskRay added reviewers: grimar, jhenderson, rupprecht.
Herald added subscribers: llvm-commits, abrachet, emaste.
Herald added a reviewer: espindola.
Herald added a reviewer: alexshap.
Herald added a project: LLVM.
Clean up empty-sections.test, and add a test by @jhenderson https://reviews.llvm.org/D74755#1882221
They mostly test the behavior of Object.cpp:sectionWithinSegment : how we attribute sections to segments.
`ParentSegment` can affect some subtle layout decisions.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D74879
Files:
llvm/test/tools/llvm-objcopy/ELF/empty-section.test
Index: llvm/test/tools/llvm-objcopy/ELF/empty-section.test
===================================================================
--- llvm/test/tools/llvm-objcopy/ELF/empty-section.test
+++ llvm/test/tools/llvm-objcopy/ELF/empty-section.test
@@ -1,6 +1,14 @@
-# RUN: yaml2obj %s -o %t
-# RUN: llvm-objcopy %t %t2
-# RUN: llvm-readobj --sections %t2 | FileCheck %s
+# RUN: yaml2obj --docnum=1 %s -o %t1
+# RUN: llvm-objcopy %t1 %t1.out
+# RUN: llvm-readelf -S %t1.out | FileCheck --check-prefix=CHECK1 %s
+
+# CHECK1: Name Type Address Off Size ES Flg Lk Inf Al
+# CHECK1-NEXT: NULL 0000000000000000 000000 000000 00 0 0 0
+# CHECK1-NEXT: .text PROGBITS 0000000000000000 001000 000004 00 AX 0 0 4
+# CHECK1-NEXT: .empty PROGBITS 0000000000001000 002000 000000 00 A 0 0 4096
+# CHECK1-NEXT: .data PROGBITS 0000000000001000 002000 000004 00 A 0 0 4096
+# CHECK1-NEXT: .strtab STRTAB 0000000000000000 002004 000001 00 0 0 1
+# CHECK1-NEXT: .shstrtab STRTAB 0000000000000000 002005 000026 00 0 0 1
!ELF
FileHeader:
@@ -28,28 +36,53 @@
AddressAlign: 0x0000000000001000
Content: "00000000"
+# RUN: yaml2obj --docnum=2 %s -o %t2
+# RUN: llvm-objcopy %t2 %t2.out
+# RUN: llvm-readelf -S %t2.out | FileCheck --check-prefix=CHECK2 %s
-# CHECK: Name: .text
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: SHF_EXECINSTR
-# CHECK-NEXT: ]
+# CHECK2: Name Type Address Off Size ES Flg Lk Inf Al
+# CHECK2-NEXT: NULL 0000000000000000 000000 000000 00 0 0 0
+# CHECK2-NEXT: .foo PROGBITS 0000000000000000 000100 000100 00 A 0 0 256
+# CHECK2-NEXT: .empty PROGBITS 0000000000001000 001000 000000 00 A 0 0 0
+# CHECK2-NEXT: .baz PROGBITS 0000000000001000 001000 000100 00 A 0 0 4096
-# CHECK: Name: .empty
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x1000
-# CHECK-NEXT: Offset: 0x2000
-# CHECK-NEXT: Size: 0
-
-# CHECK: Name: .data
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x1000
-# CHECK-NEXT: Offset: 0x2000
-# CHECK-NEXT: Size: 4
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_EXEC
+ Machine: EM_X86_64
+Sections:
+ - Name: gap
+ Type: Fill
+ Size: 0xE00
+ - Name: .foo
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ AddressAlign: 0x100
+ Address: 0
+ Size: 0x100
+ - Name: .empty
+ Type: SHT_PROGBITS
+ Flags: [SHF_ALLOC]
+ Address: 0x1000
+ - Name: .baz
+ Type: SHT_PROGBITS
+ Flags: [SHF_ALLOC]
+ AddressAlign: 0x1000
+ Address: 0x1000
+ Size: 0x100
+ProgramHeaders:
+ - Type: PT_LOAD
+ VAddr: 0
+ PAddr: 0
+ Align: 0x100
+ Sections:
+ - Section: .foo
+ - Type: PT_LOAD
+ VAddr: 0x1000
+ PAddr: 0x1000
+ Align: 0x1000
+ Sections:
+ - Section: .empty
+ - Section: .baz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74879.245551.patch
Type: text/x-patch
Size: 3285 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200220/79446383/attachment.bin>
More information about the llvm-commits
mailing list