## Here we check that we are able to define sections with a type of "Fill".
## Fills are custom pieces of data that can be placed anywhere just like normal
## output sections, but they are not real output sections and you'll never see them in
## the section headers.

## Check we can create named and unnamed fills and use "Pattern" and "Size" fields
## to describe the data emitted.
## Check the data emitted and how it affects regular sections offsets.
## Check that the "Name" field is optional for fills.
## Check that "Size" can be greater than or equal to the pattern data size.

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

# BASIC:        Number of section headers: 5
# BASIC:        Section Headers:
# BASIC-NEXT:   [Nr] Name      Type     Address          Off    Size   ES Flg Lk Inf Al
# BASIC-NEXT:   [ 0]           NULL     0000000000000000 000000 000000 00     0   0  0
# BASIC-NEXT:   [ 1] .foo      PROGBITS 0000000000000000 000043 000002 00     0   0  0
# BASIC-NEXT:   [ 2] .bar      PROGBITS 0000000000000000 000049 000001 00     0   0  0
# BASIC-NEXT:   [ 3] .strtab   STRTAB   0000000000000000 00004b 000001 00     0   0  1
# BASIC-NEXT:   [ 4] .shstrtab STRTAB   0000000000000000 00004c 00001d 00     0   0  1

## The fill we dump starts at (offset of .foo - 3), which is (0x43 - 3) = 0x40.
# RUN: od -t x1 -v -j 0x40 -N 11 %t1 | FileCheck %s --ignore-case --check-prefix=DATA
# DATA: aa bb aa 11 22 cc dd cc dd ff ee

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Pattern: "AABB"
    Size:    0x3
  - Name:    .foo
    Type:    SHT_PROGBITS
    Content: "1122"
  - Type:    Fill
    Name:    unusedName
    Pattern: "CCDD"
    Size:    4
  - Name:    .bar
    Type:    SHT_PROGBITS
    Content: "FF"
  - Type:    Fill
    Pattern: "EE"
    Size:    1

## Check we can have no explicit regular sections in the YAML description, and can
## describe the content with the use of fills only.
## Check that "Size" can be less than the pattern data size.

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

## The fill we dump starts at (offset of .strtab - 3 - 2), which is (0x45 - 5) = 0x40.
# RUN: od -t x1 -v -j 0x40 -N 6 %t2 | FileCheck %s --ignore-case --check-prefix=NOSECTIONS-DATA

# NOSECTIONS:      Number of section headers: 3
# NOSECTIONS:      Section Headers:
# NOSECTIONS-NEXT:  [Nr] Name      Type   Address          Off    Size   ES Flg Lk Inf Al
# NOSECTIONS-NEXT:  [ 0]           NULL   0000000000000000 000000 000000 00     0   0  0
# NOSECTIONS-NEXT:  [ 1] .strtab   STRTAB 0000000000000000 000045 000001 00     0   0  1
# NOSECTIONS-NEXT:  [ 2] .shstrtab STRTAB 0000000000000000 000046 000013 00     0   0  1

## .strtab that follows fills starts at 0x46 and always has a null character at the begining.
# NOSECTIONS-DATA: aa bb cc dd ee 00

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Pattern: "AABBCCFF"
    Size:    0x3
  - Type:    Fill
    Pattern: "DDEEFF"
    Size:    0x2

## Check we can use named fills when describing program headers.
## Check that fills consume the file size and therefore affect the p_filesz fields of segments.
## Check that the fill does not affect the p_align field of the segment.

# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: llvm-readelf --sections --program-headers %t3 | FileCheck %s --check-prefix=PHDR

# PHDR: [Nr] Name      Type     Address          Off    Size   ES Flg Lk Inf  Al
# PHDR: [ 0]           NULL     0000000000000000 000000 000000 00      0   0  0
# PHDR: [ 1] .bar      PROGBITS 0000000000000100 0000c0 000005 00      0   0  2
# PHDR: [ 2] .strtab   STRTAB   0000000000000000 00010a 000001 00      0   0  1
# PHDR: [ 3] .shstrtab STRTAB   0000000000000000 00010b 000018 00      0   0  1

# PHDR: Program Headers:
# PHDR:   Type      Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
# PHDR:   LOAD      0x0000b0 0x0000000000000100 0x0000000000000100 0x00005a 0x00005a     0x2
# PHDR:   GNU_RELRO 0x0000c5 0x0000000000000105 0x0000000000000105 0x000045 0x000045     0x1

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Name:    fill1
    Pattern: ""
    Size:    0x10
  - Name:         .bar
    Type:         SHT_PROGBITS
    Size:         0x5
    Address:      0x100
    AddressAlign: 2
  - Type:    Fill
    Name:    fill2
    Pattern: ""
    Size:    0x45
ProgramHeaders:
  - Type:  PT_LOAD
    VAddr: 0x100
    Sections:
      - Section: fill1
      - Section: .bar
      - Section: fill2
  - Type:  PT_GNU_RELRO
    VAddr: 0x105
    Sections:
      - Section: fill2

## Check that the "Pattern" field is not mandatory.
# RUN: yaml2obj --docnum=4 2>&1 -o %t4 %s
# RUN: llvm-readelf --sections %t4 | FileCheck %s --check-prefix=NOPATTERN

## The fill we dump starts at (offset of .strtab - 1 - 3 - 1), which is (0x45 - 5) = 0x40.
# RUN: od -t x1 -v -j 0x40 -N 5 %t4 | FileCheck %s --ignore-case --check-prefix=NOPATTERN-DATA

# NOPATTERN: [Nr] Name    Type   Address          Off
# NOPATTERN: [ 1] .strtab STRTAB 0000000000000000 000045

# NOPATTERN-DATA: aa 00 00 00 bb

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Size:    0x1
    Pattern: "AA"
  - Type: Fill
    Size: 0x3
  - Type:    Fill
    Size:    0x1
    Pattern: "BB"

## Check that the "Size" field is mandatory.
# RUN: not yaml2obj --docnum=5 2>&1 %s | FileCheck %s --check-prefix=NOSIZE

## NOSIZE: error: missing required key 'Size'

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Pattern: "00"

## Check that fills are not allowed to have duplicate names.
# RUN: not yaml2obj --docnum=6 2>&1 %s | FileCheck %s --check-prefix=UNIQUE-NAME

# UNIQUE-NAME: error: repeated section/fill name: 'foo' at YAML section/fill number 2
# UNIQUE-NAME: error: repeated section/fill name: 'foo' at YAML section/fill number 3

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Name:    foo
    Pattern: "00"
    Size:    1
  - Type:    Fill
    Name:    foo
    Pattern: "00"
    Size:    1
  - Name: foo
    Type: SHT_PROGBITS

## Check that "Pattern" can be empty, when "Size" is zero.
# RUN: yaml2obj --docnum=7 2>&1 %s -o %t7
# RUN: llvm-readelf --sections %t7 | FileCheck %s --check-prefix=NOOP

# NOOP: [Nr] Name  Type     Address          Off
# NOOP: [ 1] begin PROGBITS 0000000000000000 000040
# NOOP: [ 2] end   PROGBITS 0000000000000000 000041

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: begin
    Type: SHT_PROGBITS
    Size: 1
  - Type:    Fill
    Pattern: ""
    Size:    0
  - Name: end
    Type: SHT_PROGBITS
    Size: 1

## Check that we can have an empty "Pattern", but have non-zero "Size".
## In this case we emit Size number of zeroes to the output.

# RUN: yaml2obj --docnum=8 2>&1 -o %t8 %s
# RUN: llvm-readelf --sections %t8 | FileCheck %s --check-prefix=EMPTY-PATTERN

## The fill we dump starts at (offset of .strtab - 1 - 3 - 1), which is (0x45 - 5) = 0x40.
# RUN: od -t x1 -v -j 0x40 -N 5 %t8 | FileCheck %s --ignore-case --check-prefix=EMPTY-PATTERN-DATA

# EMPTY-PATTERN:      Section Headers:
# EMPTY-PATTERN-NEXT:  [Nr] Name    Type   Address          Off    Size   ES Flg Lk Inf Al
# EMPTY-PATTERN-NEXT:  [ 0]         NULL   0000000000000000 000000 000000 00     0   0  0
# EMPTY-PATTERN-NEXT:  [ 1] .strtab STRTAB 0000000000000000 000045 000001 00     0   0  1

# EMPTY-PATTERN-DATA: aa 00 00 00 bb

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Pattern: "AA"
    Size:    0x1
  - Type:    Fill
    Size:    3
    Pattern: ""
  - Type:    Fill
    Pattern: "BB"
    Size:    0x1

## Check that "Size" can't be 0, when "Pattern" is not empty.
# RUN: not yaml2obj --docnum=9 2>&1 %s | FileCheck %s --check-prefix=ZERO-SIZE-ERR

# ZERO-SIZE-ERR: error: "Size" can't be 0 when "Pattern" is not empty

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Pattern: "00"
    Size:    0

## Check we report an error when a program header references
## an unknown section or fill and have at least one Fill defined.

# RUN: not yaml2obj --docnum=10 2>&1 %s | FileCheck %s --check-prefix=UNKNOWN-ERR
# UNKNOWN-ERR: error: unknown section or fill referenced: 'fill' by program header

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Type:    Fill
    Pattern: ""
    Size:    0
ProgramHeaders:
  - Type: PT_LOAD
    Sections:
      - Section: fill

## Show that we can use the "Offset" key to set an arbitrary offset for a Fill.

## 0x41 is the minimal possible valid offset for Fill,
## because the .foo section of size 0x1 is placed at 0x40.
# RUN: yaml2obj --docnum=11 -DOFFSET=0x41 -o %t11 %s
# RUN: llvm-readelf --section-headers %t11 | FileCheck %s --check-prefix=OFFSET-MIN

## 0x123 is an arbitrary offset.
# RUN: yaml2obj --docnum=11 -DOFFSET=0x123 -o %t12 %s
# RUN: llvm-readelf --section-headers %t12 | FileCheck %s --check-prefix=OFFSET

# OFFSET-MIN:      Section Headers:
# OFFSET-MIN-NEXT:  [Nr] Name Type     Address          Off    Size
# OFFSET-MIN-NEXT:  [ 0]      NULL     0000000000000000 000000 000000
# OFFSET-MIN-NEXT:  [ 1] .foo PROGBITS 0000000000000000 000040 000001
# OFFSET-MIN-NEXT:  [ 2] .bar PROGBITS 0000000000000000 000042 000001

# OFFSET:      Section Headers:
# OFFSET-NEXT:  [Nr] Name Type     Address          Off    Size
# OFFSET-NEXT:  [ 0]      NULL     0000000000000000 000000 000000
# OFFSET-NEXT:  [ 1] .foo PROGBITS 0000000000000000 000040 000001
# OFFSET-NEXT:  [ 2] .bar PROGBITS 0000000000000000 000124 000001

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .foo
    Type: SHT_PROGBITS
    Size: 1
  - Type:    Fill
    Pattern: "AA"
    Size:    0x1
    Offset:  [[OFFSET]]
  - Name: .bar
    Type: SHT_PROGBITS
    Size: 1

## Show that the "Offset" value can't go backward.
# RUN: not yaml2obj --docnum=11 -DOFFSET=0x40 2>&1 %s | FileCheck %s --check-prefix=OFFSET-ERR

# OFFSET-ERR: error: the 'Offset' value (0x40) goes backward
