diff options
author | Fangrui Song <maskray@google.com> | 2019-07-18 04:54:58 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-07-18 04:54:58 +0000 |
commit | b882c8bae390b434129cff6acbf6ae7dff63ac69 (patch) | |
tree | 675de0bfae6a4afecdecc3df1a85ecf73fb6b4ae | |
parent | 043712f778c8be73973138c0cffc09690dc78aaa (diff) |
[ELF][test] Merge/rename some basic*.s tests
basic64be.s is a big-endian powerpc64 test that just duplicates what
basic-ppc64.s does. Extend basic-ppc64.s to add big-endian tests.
Delete basic64be.s
Rename basic32.s to basic-i386.s
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@366401 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/ELF/basic-i386.s (renamed from test/ELF/basic32.s) | 6 | ||||
-rw-r--r-- | test/ELF/basic-ppc64.s | 56 | ||||
-rw-r--r-- | test/ELF/basic64be.s | 217 |
3 files changed, 40 insertions, 239 deletions
diff --git a/test/ELF/basic32.s b/test/ELF/basic-i386.s index 059cbf932..1f37e7adc 100644 --- a/test/ELF/basic32.s +++ b/test/ELF/basic-i386.s @@ -1,7 +1,7 @@ # REQUIRES: x86 -# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t -# RUN: ld.lld %t -o %t2 -# RUN: llvm-readobj --file-headers --sections -l %t2 | FileCheck %s +# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o +# RUN: ld.lld %t.o -o %t +# RUN: llvm-readobj --file-headers --sections -l %t | FileCheck %s # exits with return code 42 on linux .globl _start diff --git a/test/ELF/basic-ppc64.s b/test/ELF/basic-ppc64.s index 3dd54debe..cab130212 100644 --- a/test/ELF/basic-ppc64.s +++ b/test/ELF/basic-ppc64.s @@ -1,7 +1,12 @@ # REQUIRES: ppc -# # RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t -# RUN: ld.lld --hash-style=sysv -discard-all -shared %t -o %t2 -# RUN: llvm-readobj --file-headers --sections --section-data -l %t2 | FileCheck %s +# RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o +# RUN: ld.lld --hash-style=sysv -discard-all -shared %t.o -o %t.so +# RUN: llvm-readobj --file-headers --sections --section-data -l %t.so | FileCheck --check-prefixes=CHECK,LE %s + +# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o +# RUN: ld.lld --hash-style=sysv -discard-all -shared %t.o -o %t.so +# RUN: llvm-readobj --file-headers --sections --section-data -l %t.so | FileCheck --check-prefixes=CHECK,BE %s + .abiversion 2 # Exits with return code 55 on linux. .text @@ -10,14 +15,16 @@ sc // CHECK:Format: ELF64-ppc64 -// CHECK-NEXT:Arch: powerpc64le -// CHECK-NEXT:AddressSize: 64bit -// CHECK-NEXT:LoadName: -// CHECK-NEXT:ElfHeader { +// LE-NEXT: Arch: powerpc64le +// BE-NEXT: Arch: powerpc64{{$}} +// CHECK-NEXT: AddressSize: 64bit +// CHECK-NEXT: LoadName: +// CHECK-NEXT: ElfHeader { // CHECK-NEXT: Ident { // CHECK-NEXT: Magic: (7F 45 4C 46) // CHECK-NEXT: Class: 64-bit (0x2) -// CHECK-NEXT: DataEncoding: LittleEndian (0x1) +// LE-NEXT: DataEncoding: LittleEndian (0x1) +// BE-NEXT: DataEncoding: BigEndian (0x2) // CHECK-NEXT: FileVersion: 1 // CHECK-NEXT: OS/ABI: SystemV (0x0) // CHECK-NEXT: ABIVersion: 0 @@ -90,7 +97,8 @@ // CHECK-NEXT: AddressAlignment: 4 // CHECK-NEXT: EntrySize: 4 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 01000000 01000000 00000000 00000000 |................| +// LE-NEXT: 0000: 01000000 01000000 00000000 00000000 +// BE-NEXT: 0000: 00000001 00000001 00000000 00000000 // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { @@ -127,7 +135,8 @@ // CHECK-NEXT: AddressAlignment: 4 // CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 01000038 37006038 02000044 |...87.`8...D| +// LE-NEXT: 0000: 01000038 37006038 02000044 +// BE-NEXT: 0000: 38000001 38600037 44000002 // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { @@ -146,12 +155,18 @@ // CHECK-NEXT: AddressAlignment: 8 // CHECK-NEXT: EntrySize: 16 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 06000000 00000000 00020000 00000000 | -// CHECK-NEXT: 0010: 0B000000 00000000 18000000 00000000 | -// CHECK-NEXT: 0020: 05000000 00000000 28020000 00000000 | -// CHECK-NEXT: 0030: 0A000000 00000000 01000000 00000000 | -// CHECK-NEXT: 0040: 04000000 00000000 18020000 00000000 | -// CHECK-NEXT: 0050: 00000000 00000000 00000000 00000000 | +// LE-NEXT: 0000: 06000000 00000000 00020000 00000000 | +// LE-NEXT: 0010: 0B000000 00000000 18000000 00000000 | +// LE-NEXT: 0020: 05000000 00000000 28020000 00000000 | +// LE-NEXT: 0030: 0A000000 00000000 01000000 00000000 | +// LE-NEXT: 0040: 04000000 00000000 18020000 00000000 | +// LE-NEXT: 0050: 00000000 00000000 00000000 00000000 | +// BE-NEXT: 0000: 00000000 00000006 00000000 00000200 | +// BE-NEXT: 0010: 00000000 0000000B 00000000 00000018 | +// BE-NEXT: 0020: 00000000 00000005 00000000 00000228 | +// BE-NEXT: 0030: 00000000 0000000A 00000000 00000001 | +// BE-NEXT: 0040: 00000000 00000004 00000000 00000218 | +// BE-NEXT: 0050: 00000000 00000000 00000000 00000000 | // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { @@ -203,9 +218,12 @@ // CHECK-NEXT: AddressAlignment: 8 // CHECK-NEXT: EntrySize: 24 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 00000000 00000000 00000000 00000000 |................| -// CHECK-NEXT: 0010: 00000000 00000000 01000000 00020500 |................| -// CHECK-NEXT: 0020: 00000200 00000000 00000000 00000000 |................| +// LE-NEXT: 0000: 00000000 00000000 00000000 00000000 |................| +// LE-NEXT: 0010: 00000000 00000000 01000000 00020500 |................| +// LE-NEXT: 0020: 00000200 00000000 00000000 00000000 |................| +// BE-NEXT: 0000: 00000000 00000000 00000000 00000000 |................| +// BE-NEXT: 0010: 00000000 00000000 00000001 00020005 |................| +// BE-NEXT: 0020: 00000000 00020000 00000000 00000000 |................| // CHECK-NEXT: ) // CHECK-NEXT: } // CHECK-NEXT: Section { diff --git a/test/ELF/basic64be.s b/test/ELF/basic64be.s deleted file mode 100644 index fa53406ab..000000000 --- a/test/ELF/basic64be.s +++ /dev/null @@ -1,217 +0,0 @@ -# REQUIRES: ppc -# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t -# RUN: ld.lld -discard-all %t -o %t2 -# RUN: llvm-readobj --file-headers --sections --section-data -l %t2 | FileCheck %s - -# exits with return code 42 on linux -.text - li 0,1 - li 3,42 - sc -# CHECK: ElfHeader { -# CHECK-NEXT: Ident { -# CHECK-NEXT: Magic: (7F 45 4C 46) -# CHECK-NEXT: Class: 64-bit (0x2) -# CHECK-NEXT: DataEncoding: BigEndian (0x2) -# CHECK-NEXT: FileVersion: 1 -# CHECK-NEXT: OS/ABI: SystemV (0x0) -# CHECK-NEXT: ABIVersion: 0 -# CHECK-NEXT: Unused: (00 00 00 00 00 00 00) -# CHECK-NEXT: } -# CHECK-NEXT: Type: Executable (0x2) -# CHECK-NEXT: Machine: EM_PPC64 (0x15) -# CHECK-NEXT: Version: 1 -# CHECK-NEXT: Entry: 0x10010000 -# CHECK-NEXT: ProgramHeaderOffset: 0x40 -# CHECK-NEXT: SectionHeaderOffset: 0x20058 -# CHECK-NEXT: Flags [ (0x2) -# CHECK-NEXT: 0x2 -# CHECK-NEXT: ] -# CHECK-NEXT: HeaderSize: 64 -# CHECK-NEXT: ProgramHeaderEntrySize: 56 -# CHECK-NEXT: ProgramHeaderCount: 4 -# CHECK-NEXT: SectionHeaderEntrySize: 64 -# CHECK-NEXT: SectionHeaderCount: 7 -# CHECK-NEXT: StringTableSectionIndex: 5 -# CHECK-NEXT: } -# CHECK-NEXT: Sections [ -# CHECK-NEXT: Section { -# CHECK-NEXT: Index: 0 -# CHECK-NEXT: Name: (0) -# CHECK-NEXT: Type: SHT_NULL (0x0) -# CHECK-NEXT: Flags [ (0x0) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x0 -# CHECK-NEXT: Offset: 0x0 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 0 -# CHECK-NEXT: EntrySize: 0 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK-NEXT: Section { -# CHECK-NEXT: Index: 1 -# CHECK-NEXT: Name: .text (1) -# CHECK-NEXT: Type: SHT_PROGBITS (0x1) -# CHECK-NEXT: Flags [ (0x6) -# CHECK-NEXT: SHF_ALLOC (0x2) -# CHECK-NEXT: SHF_EXECINSTR (0x4) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x10010000 -# CHECK-NEXT: Offset: 0x10000 -# CHECK-NEXT: Size: 12 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 4 -# CHECK-NEXT: EntrySize: 0 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 38000001 3860002A 44000002 |8...8`.*D...| -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK-NEXT: Section { -# CHECK-NEXT: Index: 2 -# CHECK-NEXT: Name: .branch_lt (7) -# CHECK-NEXT: Type: SHT_PROGBITS (0x1) -# CHECK-NEXT: Flags [ (0x3) -# CHECK-NEXT: SHF_ALLOC (0x2) -# CHECK-NEXT: SHF_WRITE (0x1) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x10020000 -# CHECK-NEXT: Offset: 0x20000 -# CHECK-NEXT: Size: 0 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 8 -# CHECK-NEXT: EntrySize: 0 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK-NEXT: Section { -# CHECK-NEXT: Index: 3 -# CHECK-NEXT: Name: .comment (18) -# CHECK-NEXT: Type: SHT_PROGBITS (0x1) -# CHECK-NEXT: Flags [ (0x30) -# CHECK-NEXT: SHF_MERGE (0x10) -# CHECK-NEXT: SHF_STRINGS (0x20) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x0 -# CHECK-NEXT: Offset: 0x20000 -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 1 -# CHECK-NEXT: EntrySize: 1 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 4C4C4420 312E3000 |LLD 1.0.| -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK-NEXT: Section { -# CHECK-NEXT: Index: 4 -# CHECK-NEXT: Name: .symtab (27) -# CHECK-NEXT: Type: SHT_SYMTAB (0x2) -# CHECK-NEXT: Flags [ (0x0) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x0 -# CHECK-NEXT: Offset: 0x20008 -# CHECK-NEXT: Size: 24 -# CHECK-NEXT: Link: 6 -# CHECK-NEXT: Info: 1 -# CHECK-NEXT: AddressAlignment: 8 -# CHECK-NEXT: EntrySize: 24 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 00000000 00000000 00000000 00000000 |................| -# CHECK-NEXT: 0010: 00000000 00000000 |........| -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK-NEXT: Section { -# CHECK-NEXT: Index: 5 -# CHECK-NEXT: Name: .shstrtab (35) -# CHECK-NEXT: Type: SHT_STRTAB (0x3) -# CHECK-NEXT: Flags [ (0x0) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x0 -# CHECK-NEXT: Offset: 0x20020 -# CHECK-NEXT: Size: 53 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 1 -# CHECK-NEXT: EntrySize: 0 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 002E7465 7874002E 6272616E 63685F6C |..text..branch_l| -# CHECK-NEXT: 0010: 74002E63 6F6D6D65 6E74002E 73796D74 |t..comment..symt| -# CHECK-NEXT: 0020: 6162002E 73687374 72746162 002E7374 |ab..shstrtab..st| -# CHECK-NEXT: 0030: 72746162 00 |rtab.| -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK-NEXT: Section { -# CHECK-NEXT: Index: 6 -# CHECK-NEXT: Name: .strtab (45) -# CHECK-NEXT: Type: SHT_STRTAB (0x3) -# CHECK-NEXT: Flags [ (0x0) -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x0 -# CHECK-NEXT: Offset: 0x20055 -# CHECK-NEXT: Size: 1 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 1 -# CHECK-NEXT: EntrySize: 0 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 00 |.| -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK-NEXT: ] -# CHECK-NEXT: ProgramHeaders [ -# CHECK-NEXT: ProgramHeader { -# CHECK-NEXT: Type: PT_PHDR (0x6) -# CHECK-NEXT: Offset: 0x40 -# CHECK-NEXT: VirtualAddress: 0x10000040 -# CHECK-NEXT: PhysicalAddress: 0x10000040 -# CHECK-NEXT: FileSize: 280 -# CHECK-NEXT: MemSize: 280 -# CHECK-NEXT: Flags [ (0x4) -# CHECK-NEXT: PF_R (0x4) -# CHECK-NEXT: ] -# CHECK-NEXT: Alignment: 8 -# CHECK-NEXT: } -# CHECK-NEXT: ProgramHeader { -# CHECK-NEXT: Type: PT_LOAD (0x1) -# CHECK-NEXT: Offset: 0x0 -# CHECK-NEXT: VirtualAddress: 0x10000000 -# CHECK-NEXT: PhysicalAddress: 0x10000000 -# CHECK-NEXT: FileSize: 344 -# CHECK-NEXT: MemSize: 344 -# CHECK-NEXT: Flags [ (0x4) -# CHECK-NEXT: PF_R (0x4) -# CHECK-NEXT: ] -# CHECK-NEXT: Alignment: 65536 -# CHECK-NEXT: } -# CHECK-NEXT: ProgramHeader { -# CHECK-NEXT: Type: PT_LOAD (0x1) -# CHECK-NEXT: Offset: 0x10000 -# CHECK-NEXT: VirtualAddress: 0x10010000 -# CHECK-NEXT: PhysicalAddress: 0x10010000 -# CHECK-NEXT: FileSize: 4096 -# CHECK-NEXT: MemSize: 4096 -# CHECK-NEXT: Flags [ (0x5) -# CHECK-NEXT: PF_R (0x4) -# CHECK-NEXT: PF_X (0x1) -# CHECK-NEXT: ] -# CHECK-NEXT: Alignment: 65536 -# CHECK-NEXT: } -# CHECK-NEXT: ProgramHeader { -# CHECK-NEXT: Type: PT_GNU_STACK (0x6474E551) -# CHECK-NEXT: Offset: 0x0 -# CHECK-NEXT: VirtualAddress: 0x0 -# CHECK-NEXT: PhysicalAddress: 0x0 -# CHECK-NEXT: FileSize: 0 -# CHECK-NEXT: MemSize: 0 -# CHECK-NEXT: Flags [ (0x6) -# CHECK-NEXT: PF_R (0x4) -# CHECK-NEXT: PF_W (0x2) -# CHECK-NEXT: ] -# CHECK-NEXT: Alignment: 0 -# CHECK-NEXT: } -# CHECK-NEXT: ] |