## For implicit symbol table sections, `Size` and/or `Content` fields can also
## be specified in YAML. Here we test the behavior in different cases.

## When no `Size` or `Content` is specified for a symbol table section,
## yaml2obj writes the default content.

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

# CASE1:      Symbol table '.symtab' contains 2 entries:
# CASE1-NEXT:    Num:    Value          Size Type    Bind   Vis      Ndx Name
# CASE1-NEXT:      0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
# CASE1-NEXT:      1: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND foo
# CASE1-EMPTY:

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
Symbols:
  - Name: foo

## Specifying both `Size` and symbols at the same time is not allowed.
# RUN: not yaml2obj --docnum=2 %s -o %t2 2>&1 | FileCheck %s --check-prefix=CASE2
# RUN: not yaml2obj --docnum=3 %s -o %t2 2>&1 | FileCheck %s --check-prefix=CASE2

# CASE2: error: cannot specify both `Size` and `Symbols` for symbol table section '.symtab'

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    Size: 0x100
Symbols:
  - Name: foo

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    Size: 0x100
Symbols: []

## Specifying both `Content` and symbols at the same time is not allowed.
# RUN: not yaml2obj --docnum=4 %s -o %t3 2>&1 | FileCheck %s --check-prefix=CASE3
# RUN: not yaml2obj --docnum=5 %s -o %t3 2>&1 | FileCheck %s --check-prefix=CASE3

# CASE3: error: cannot specify both `Content` and `Symbols` for symbol table section '.symtab'

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name:    .symtab
    Type:    SHT_SYMTAB
    Content: "00"
Symbols:
  - Name: foo

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name:    .symtab
    Type:    SHT_SYMTAB
    Content: "00"
Symbols: []

## Check we can use just `Content` to emit custom data in the symbol table section.
# RUN: yaml2obj --docnum=6 %s -o %t4
# RUN: llvm-readobj --section-data -S %t4 | FileCheck %s --check-prefix=CASE4

# CASE4:      Name: .symtab
# CASE4-NEXT: Type: SHT_SYMTAB
# CASE4-NEXT: Flags [ (0x0)
# CASE4-NEXT: ]
# CASE4-NEXT: Address: 0x0
# CASE4-NEXT: Offset: 0x40
# CASE4-NEXT: Size: 2
# CASE4-NEXT: Link: 2
# CASE4-NEXT: Info: 1
# CASE4-NEXT: AddressAlignment: 0
# CASE4-NEXT: EntrySize: 24
# CASE4-NEXT: SectionData (
# CASE4-NEXT:   0000: 0123
# CASE4-NEXT: )

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    Content: "0123"

## Check we can use just `Size` to emit custom data filled with zeroes
## in the symbol table section.
# RUN: yaml2obj --docnum=7 %s -o %t5
# RUN: llvm-readobj --section-data -S %t5 | FileCheck %s --check-prefix=CASE5

# CASE5:      Name: .symtab (19)
# CASE5-NEXT: Type: SHT_SYMTAB (0x2)
# CASE5-NEXT: Flags [ (0x0)
# CASE5-NEXT: ]
# CASE5-NEXT: Address: 0x0
# CASE5-NEXT: Offset: 0x40
# CASE5-NEXT: Size: 5
# CASE5-NEXT: Link: 2
# CASE5-NEXT: Info: 1
# CASE5-NEXT: AddressAlignment: 0
# CASE5-NEXT: EntrySize: 24
# CASE5-NEXT: SectionData (
# CASE5-NEXT:   0000: 00000000 00
# CASE5-NEXT: )

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    Size: 5

## Check we can specify both `Size` and `Content` when size is greater
## than content size. In this case zeroes are added as padding
## after the specified content.

# RUN: yaml2obj --docnum=8 %s -o %t6
# RUN: llvm-readobj %t6 --section-data -S | FileCheck %s --check-prefix=CASE6

# CASE6:      Name: .symtab
# CASE6-NEXT: Type: SHT_SYMTAB
# CASE6-NEXT: Flags [
# CASE6-NEXT: ]
# CASE6-NEXT: Address: 0x0
# CASE6-NEXT: Offset: 0x40
# CASE6-NEXT: Size: 4
# CASE6-NEXT: Link: 2
# CASE6-NEXT: Info: 1
# CASE6-NEXT: AddressAlignment: 0
# CASE6-NEXT: EntrySize: 24
# CASE6-NEXT: SectionData (
# CASE6-NEXT:   0000: 01230000
# CASE6-NEXT: )

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    Content: "0123"
    Size: 4

## Check we can specify both `Size` and `Content` when size is
## equal to content size.

# RUN: yaml2obj --docnum=9 %s -o %t7
# RUN: llvm-readobj --section-data -S %t7 | FileCheck %s --check-prefix=CASE7

# CASE7:       Name: .symtab
# CASE7-NEXT:  Type: SHT_SYMTAB
# CASE7-NEXT:  Flags [
# CASE7-NEXT:  ]
# CASE7-NEXT:  Address: 0x0
# CASE7-NEXT:  Offset: 0x40
# CASE7-NEXT:  Size: 2
# CASE7-NEXT:  Link: 2
# CASE7-NEXT:  Info: 1
# CASE7-NEXT:  AddressAlignment: 0
# CASE7-NEXT:  EntrySize: 24
# CASE7-NEXT:  SectionData (
# CASE7-NEXT:    0000: 0123
# CASE7-NEXT:  )

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
    Content: "0123"
    Size: 2
