## In this test case we check that we can override the default values for
## e_shentsize, e_shoff, e_shnum and e_shstrndx fields in the YAML.

## First we check the default values.

# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: llvm-readelf --file-headers %t1 | FileCheck %s --check-prefix=DEFAULT

# DEFAULT:   Start of section headers:          120 (bytes into file)
# DEFAULT:   Size of section headers:           64 (bytes)
# DEFAULT:   Number of section headers:         4
# DEFAULT:   Section header string table index: 3

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

## Override 3 fields: e_shoff, e_shnum and e_shstrndx. Check the output.

# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: llvm-readelf --file-headers %t2 | FileCheck %s --check-prefix=CUSTOM

# CUSTOM: Start of section headers:          2 (bytes into file)
# CUSTOM: Size of section headers:           64 (bytes)
# CUSTOM: Number of section headers:         3
# CUSTOM: Section header string table index: 4

--- !ELF
FileHeader:
  Class:     ELFCLASS64
  Data:      ELFDATA2LSB
  Type:      ET_REL
  Machine:   EM_X86_64
  SHEntSize: 64
  SHOff:     2
  SHNum:     3
  SHStrNdx:  4

## Finally, we use the same YAML as above, but set e_shentsize to 1.
## Check the result using raw output from 'od' because llvm-readelf
## is unable to dump such headers.

# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: od -A n -t x1 -v -j 0x3a -N 1 %t3 | FileCheck %s --check-prefix=NEWSIZE
# RUN: od -A n -t x1 -v -j 0x3a -N 1 %t2 | FileCheck %s --check-prefix=OLDSIZE
# NEWSIZE: 01
# OLDSIZE: 40

--- !ELF
FileHeader:
  Class:     ELFCLASS64
  Data:      ELFDATA2LSB
  Type:      ET_REL
  Machine:   EM_X86_64
  SHEntSize: 1
  SHOff:     2
  SHNum:     3
  SHStrNdx:  4
