## Check we are able to set custom sh_size field
## for different sections.

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

# CASE1:      Section Headers:
# CASE1-NEXT:  [Nr] Name           Type     Address          Off    Size
# CASE1-NEXT:  [ 0]                NULL     0000000000000000 000000 000000
# CASE1-NEXT:  [ 1] .dynsym        DYNSYM   0000000000000000 000040 000001
# CASE1-NEXT:  [ 2] .symtab        SYMTAB   0000000000000000 000058 000002
# CASE1-NEXT:  [ 3] .dynamic       DYNAMIC  0000000000000000 000070 000003
# CASE1-NEXT:  [ 4] .rela          RELA     0000000000000000 000070 000004
# CASE1-NEXT:  [ 5] .nobits        NOBITS   0000000000000000 000070 000005
# CASE1-NEXT:  [ 6] .group         GROUP    0000000000000000 000070 000006
# CASE1-NEXT:  [ 7] .gnu.version   VERSYM   0000000000000000 000070 000007
# CASE1-NEXT:  [ 8] .gnu.version_r VERNEED  0000000000000000 000070 000008
# CASE1-NEXT:  [ 9] .gnu.version_d VERDEF   0000000000000000 000070 000009
# CASE1-NEXT:  [10] .regular       PROGBITS 0000000000000000 000070 00000a
# CASE1-NEXT:  [11] .strtab        STRTAB   0000000000000000 000070 00000b

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .dynsym
    Type: SHT_DYNSYM
    ShSize: 0x000000001
  - Name: .symtab
    Type: SHT_SYMTAB
    ShSize: 0x000000002
  - Name: .dynamic
    Type: SHT_DYNAMIC
    ShSize: 0x000000003
  - Name: .rela
    Type: SHT_RELA
    ShSize: 0x000000004
  - Name: .nobits
    Type: SHT_NOBITS
    ShSize: 0x000000005
  - Name: .group
    Type: SHT_GROUP
    ShSize: 0x000000006
    Members:
  - Name: .gnu.version
    Type: SHT_GNU_versym
    Entries: [ ]
    ShSize: 0x000000007
  - Name:   .gnu.version_r
    Type:   SHT_GNU_verneed
    ShSize: 0x000000008
    Dependencies:
  - Name: .gnu.version_d
    Type: SHT_GNU_verdef
    ShSize: 0x000000009
    Entries:
  - Name: .regular
    Type: SHT_PROGBITS
    ShSize: 0x00000000A
  - Name: .strtab
    Type: SHT_STRTAB
    ShSize: 0x00000000B

## Here we check that defining ShSize does not actually change
## the content and also does not affect file size.

# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: od -t x1 -v %t2 > %t.txt
# RUN: od -t x1 -v %t3 >> %t.txt
# RUN: FileCheck %s --input-file=%t.txt --ignore-case --check-prefix=CASE2

# CASE2: [[OFFSET:.*]] fe fe fe fe fe fe fe fe
# CASE2: [[FILESIZE:.*]]{{$}}
# CASE2: [[OFFSET]] fe fe fe fe fe fe fe fe
# CASE2: [[FILESIZE]]{{$}}

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .foo
    Type: SHT_PROGBITS
    Content: "fefefefefefefefe"

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .foo
    Type: SHT_PROGBITS
    ShSize: 1
    Content: "fefefefefefefefe"

## Check we can define sh_size larger than section content size
## and thus create overlaping sections.

# RUN: yaml2obj --docnum=4 %s -o %t4
# RUN: llvm-readobj --sections --section-data %t4 | FileCheck %s --check-prefix=CASE4

# CASE4:      Name: .foo
# CASE4:      SectionData (
# CASE4-NEXT: 0000: AAAABBBB |....|
# CASE4:      Name: .bar
# CASE4:      SectionData (
# CASE4-NEXT: 0000: BBBB |..|

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .foo
    Type: SHT_PROGBITS
    Content: "aaaa"
    ShSize: 4
  - Name: .bar
    Type: SHT_PROGBITS
    Content: "bbbb"

## Check we can set both Size and ShSize and the number of the actual
## bytes written is equal to Size in this case.

# RUN: yaml2obj --docnum=5 %s -o %t5
# RUN: od -t x1 -v %t5 | FileCheck %s --ignore-case --check-prefix=CASE5

# CASE5: aa aa 00 00 bb bb

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .foo
    Type: SHT_PROGBITS
    Content: "aaaa"
  - Name: .bar
    Type: SHT_PROGBITS
    Size: 2
    ShSize: 4
  - Name: .zed
    Type: SHT_PROGBITS
    Content: "bbbb"
