Compiler projects using llvm
## This is a test for --headers and its alias -e.
## Specifying --headers is equivalent to setting --file-headers,
## --program-headers and --section-headers at the same time.
## We test these options independently, so here we just check
## that --headers triggers them.

# RUN: yaml2obj %s -o %t

## Case A: test llvm-readelf output.
# RUN: llvm-readelf --headers %t > %t.headers.gnu.txt
# RUN: FileCheck %s --input-file=%t.headers.gnu.txt --check-prefix=GNU

# GNU: ELF Header:
# GNU: Section Headers:
# GNU: Program Headers:
# GNU: Section to Segment mapping:

# RUN: llvm-readelf -e %t > %t.e.gnu.txt
# RUN: cmp %t.headers.gnu.txt %t.e.gnu.txt

# RUN: llvm-readelf --file-headers --program-headers --section-headers %t > %t.all.gnu.txt
# RUN: cmp %t.headers.gnu.txt %t.all.gnu.txt

## Case B: test llvm-readobj output.
# RUN: llvm-readobj --headers %t > %t.headers.llvm.txt
# RUN: FileCheck %s --input-file=%t.headers.llvm.txt --check-prefix=LLVM

# LLVM: ElfHeader {
# LLVM: Sections [
# LLVM: ProgramHeaders [

# RUN: llvm-readobj -e %t > %t.e.llvm.txt
# RUN: cmp %t.headers.llvm.txt %t.e.llvm.txt

# RUN: llvm-readobj --file-headers --program-headers --section-headers %t > %t.all.llvm.txt
# RUN: cmp %t.headers.llvm.txt %t.all.llvm.txt

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .foo
    Type: SHT_PROGBITS
ProgramHeaders:
  - Type: PT_LOAD