diff options
author | Sean Silva <silvas@purdue.edu> | 2013-06-10 23:44:15 +0000 |
---|---|---|
committer | Sean Silva <silvas@purdue.edu> | 2013-06-10 23:44:15 +0000 |
commit | 5918b7a03d4d6a52e18f7c102250c9cfd6ae52dd (patch) | |
tree | 0b504cae7496e7c519b6ac722286e70ffed66b3f /test | |
parent | 9bdd78501484a1add2d8a757fd29960dd9fc9de7 (diff) | |
download | external_llvm-5918b7a03d4d6a52e18f7c102250c9cfd6ae52dd.zip external_llvm-5918b7a03d4d6a52e18f7c102250c9cfd6ae52dd.tar.gz external_llvm-5918b7a03d4d6a52e18f7c102250c9cfd6ae52dd.tar.bz2 |
[yaml2obj] Initial ELF support.
Currently, only emitting the ELF header is supported (no sections or
segments).
The ELFYAML code organization is broadly similar to the COFFYAML code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183711 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Object/Inputs/ELF/BE32.yaml | 6 | ||||
-rw-r--r-- | test/Object/Inputs/ELF/BE64.yaml | 6 | ||||
-rw-r--r-- | test/Object/Inputs/ELF/Header.yaml | 7 | ||||
-rw-r--r-- | test/Object/Inputs/ELF/LE32.yaml | 6 | ||||
-rw-r--r-- | test/Object/Inputs/ELF/LE64.yaml | 6 | ||||
-rw-r--r-- | test/Object/yaml2obj-elf-basic.test | 32 | ||||
-rw-r--r-- | test/Object/yaml2obj-elf-bits-endian.test | 16 |
7 files changed, 79 insertions, 0 deletions
diff --git a/test/Object/Inputs/ELF/BE32.yaml b/test/Object/Inputs/ELF/BE32.yaml new file mode 100644 index 0000000..3709ff7 --- /dev/null +++ b/test/Object/Inputs/ELF/BE32.yaml @@ -0,0 +1,6 @@ +!ELF +Header: !Header + Class: ELFCLASS32 + Data: ELFDATA2MSB + Type: ET_EXEC + Machine: EM_PPC diff --git a/test/Object/Inputs/ELF/BE64.yaml b/test/Object/Inputs/ELF/BE64.yaml new file mode 100644 index 0000000..d1c4401 --- /dev/null +++ b/test/Object/Inputs/ELF/BE64.yaml @@ -0,0 +1,6 @@ +!ELF +Header: !Header + Class: ELFCLASS64 + Data: ELFDATA2MSB + Type: ET_EXEC + Machine: EM_PPC64 diff --git a/test/Object/Inputs/ELF/Header.yaml b/test/Object/Inputs/ELF/Header.yaml new file mode 100644 index 0000000..085b120 --- /dev/null +++ b/test/Object/Inputs/ELF/Header.yaml @@ -0,0 +1,7 @@ +!ELF +Header: !Header + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 + Entry: 0x400000 diff --git a/test/Object/Inputs/ELF/LE32.yaml b/test/Object/Inputs/ELF/LE32.yaml new file mode 100644 index 0000000..a4f30fb --- /dev/null +++ b/test/Object/Inputs/ELF/LE32.yaml @@ -0,0 +1,6 @@ +!ELF +Header: !Header + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_386 diff --git a/test/Object/Inputs/ELF/LE64.yaml b/test/Object/Inputs/ELF/LE64.yaml new file mode 100644 index 0000000..cd0ca25 --- /dev/null +++ b/test/Object/Inputs/ELF/LE64.yaml @@ -0,0 +1,6 @@ +!ELF +Header: !Header + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 diff --git a/test/Object/yaml2obj-elf-basic.test b/test/Object/yaml2obj-elf-basic.test new file mode 100644 index 0000000..e97ad20 --- /dev/null +++ b/test/Object/yaml2obj-elf-basic.test @@ -0,0 +1,32 @@ +RUN: yaml2obj -format=elf %p/Inputs/ELF/Header.yaml | llvm-readobj -file-headers - | FileCheck %s + +// CHECK: File: <stdin> +// CHECK-NEXT: Format: ELF64-x86-64 +// CHECK-NEXT: Arch: x86_64 +// 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) +// 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_X86_64 (0x3E) +// CHECK-NEXT: Version: 1 +// CHECK-NEXT: Entry: 0x400000 +// CHECK-NEXT: ProgramHeaderOffset: 0x0 +// CHECK-NEXT: SectionHeaderOffset: 0x0 +// CHECK-NEXT: Flags [ (0x0) +// CHECK-NEXT: ] +// CHECK-NEXT: HeaderSize: 64 +// CHECK-NEXT: ProgramHeaderEntrySize: 0 +// CHECK-NEXT: ProgramHeaderCount: 0 +// CHECK-NEXT: SectionHeaderEntrySize: 0 +// CHECK-NEXT: SectionHeaderCount: 0 +// CHECK-NEXT: StringTableSectionIndex: 0 +// CHECK-NEXT: } diff --git a/test/Object/yaml2obj-elf-bits-endian.test b/test/Object/yaml2obj-elf-bits-endian.test new file mode 100644 index 0000000..4be9a44 --- /dev/null +++ b/test/Object/yaml2obj-elf-bits-endian.test @@ -0,0 +1,16 @@ +RUN: yaml2obj -format=elf %p/Inputs/ELF/LE64.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix LE64 +RUN: yaml2obj -format=elf %p/Inputs/ELF/BE64.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix BE64 +RUN: yaml2obj -format=elf %p/Inputs/ELF/LE32.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix LE32 +RUN: yaml2obj -format=elf %p/Inputs/ELF/BE32.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix BE32 + +LE64: Class: 64-bit (0x2) +LE64-NEXT: DataEncoding: LittleEndian (0x1) + +BE64: Class: 64-bit (0x2) +BE64-NEXT: DataEncoding: BigEndian (0x2) + +LE32: Class: 32-bit (0x1) +LE32-NEXT: DataEncoding: LittleEndian (0x1) + +BE32: Class: 32-bit (0x1) +BE32-NEXT: DataEncoding: BigEndian (0x2) |