## Check llvm-readobj and llvm-readelf can dump files of the different ELF types.

# RUN: yaml2obj %s --docnum=1 -o %t1
# RUN: llvm-readobj -h %t1 | FileCheck %s --match-full-lines --check-prefix LLVM-NONE
# RUN: llvm-readelf -h %t1 | FileCheck %s --match-full-lines --check-prefix GNU-NONE

# LLVM-NONE: ElfHeader {
# LLVM-NONE:   Type: None (0x0)

# GNU-NONE: ELF Header:
# GNU-NONE:   Type: NONE (none)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_NONE
  Machine: EM_X86_64

# RUN: yaml2obj %s --docnum=2 -o %t2
# RUN: llvm-readobj -h %t2 | FileCheck %s --match-full-lines --check-prefix LLVM-REL
# RUN: llvm-readelf -h %t2 | FileCheck %s --match-full-lines --check-prefix GNU-REL

# LLVM-REL: ElfHeader {
# LLVM-REL:   Type: Relocatable (0x1)

# GNU-REL: ELF Header:
# GNU-REL:   Type: REL (Relocatable file)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64

# RUN: yaml2obj %s --docnum=3 -o %t3
# RUN: llvm-readobj -h %t3 | FileCheck %s --match-full-lines --check-prefix LLVM-EXEC
# RUN: llvm-readelf -h %t3 | FileCheck %s --match-full-lines --check-prefix GNU-EXEC

# LLVM-EXEC: ElfHeader {
# LLVM-EXEC:   Type: Executable (0x2)

# GNU-EXEC: ELF Header:
# GNU-EXEC:   Type: EXEC (Executable file)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64

# RUN: yaml2obj %s --docnum=4 -o %t4
# RUN: llvm-readobj -h %t4 | FileCheck %s --match-full-lines --check-prefix LLVM-DYN
# RUN: llvm-readelf -h %t4 | FileCheck %s --match-full-lines --check-prefix GNU-DYN

# LLVM-DYN: ElfHeader {
# LLVM-DYN:   Type: SharedObject (0x3)

# GNU-DYN: ELF Header:
# GNU-DYN:   Type: DYN (Shared object file)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64

# RUN: yaml2obj %s --docnum=5 -o %t5
# RUN: llvm-readobj -h %t5 | FileCheck %s --match-full-lines --check-prefix LLVM-CORE
# RUN: llvm-readelf -h %t5 | FileCheck %s --match-full-lines --check-prefix GNU-CORE

# LLVM-CORE: ElfHeader {
# LLVM-CORE:   Type: Core (0x4)

# GNU-CORE: ELF Header:
# GNU-CORE:   Type: CORE (Core file)

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_CORE
  Machine: EM_X86_64

# RUN: yaml2obj %s --docnum=6 -o %t6
# RUN: llvm-readobj -h %t6 | FileCheck %s --match-full-lines --check-prefix LLVM-LOOS
# RUN: llvm-readelf -h %t6 | FileCheck %s --match-full-lines --check-prefix GNU-LOOS

# LLVM-LOOS: ElfHeader {
# LLVM-LOOS:   Type: 0xFE00

# GNU-LOOS: ELF Header:
# GNU-LOOS:   Type: fe00

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    0xfe00
  Machine: EM_X86_64

# RUN: yaml2obj %s --docnum=7 -o %t7
# RUN: llvm-readobj -h %t7 | FileCheck %s --match-full-lines --check-prefix LLVM-HIOS
# RUN: llvm-readelf -h %t7 | FileCheck %s --match-full-lines --check-prefix GNU-HIOS

# LLVM-HIOS: ElfHeader {
# LLVM-HIOS:   Type: 0xFEFF

# GNU-HIOS: ELF Header:
# GNU-HIOS:   Type: feff

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    0xfeff
  Machine: EM_X86_64

# RUN: yaml2obj %s --docnum=8 -o %t8
# RUN: llvm-readobj -h %t8 | FileCheck %s --match-full-lines --check-prefix LLVM-LOPROC
# RUN: llvm-readelf -h %t8 | FileCheck %s --match-full-lines --check-prefix GNU-LOPROC

# LLVM-LOPROC: ElfHeader {
# LLVM-LOPROC:   Type: 0xFF00

# GNU-LOPROC: ELF Header:
# GNU-LOPROC:   Type: ff00

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    0xff00
  Machine: EM_X86_64

# RUN: yaml2obj %s --docnum=9 -o %t9
# RUN: llvm-readobj -h %t9 | FileCheck %s --match-full-lines --check-prefix LLVM-HIPROC
# RUN: llvm-readelf -h %t9 | FileCheck %s --match-full-lines --check-prefix GNU-HIPROC

# LLVM-HIPROC: ElfHeader {
# LLVM-HIPROC:   Type: 0xFFFF

# GNU-HIPROC: ELF Header:
# GNU-HIPROC:   Type: ffff

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    0xffff
  Machine: EM_X86_64
