## This is a test case to check how obj2yaml dumps symbols.

## Check that we only dump Size and Value keys when
## their values are not 0.

# RUN: yaml2obj %s -o %t1
# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=FIELDS-DEF

# FIELDS-DEF:      Symbols:
# FIELDS-DEF-NEXT:   - Name:  foo
# FIELDS-DEF-NEXT:   - Name:  bar
# FIELDS-DEF-NEXT:     Value: 0x1
# FIELDS-DEF-NEXT:     Size:  0x1
# FIELDS-DEF-NEXT: ...

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Symbols:
  - Name:  foo
    Size:  0x0
    Value: 0x0
  - Name:  bar
    Size:  0x1
    Value: 0x1

## Check how we dump unnamed section symbols.
## Check we are able to handle the section symbol for the null section.
## Document we name them with a section name they describe.

# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=SECTION-SYM

# SECTION-SYM:      --- !ELF
# SECTION-SYM-NEXT: FileHeader:
# SECTION-SYM-NEXT:   Class: ELFCLASS64
# SECTION-SYM-NEXT:   Data:  ELFDATA2LSB
# SECTION-SYM-NEXT:   Type:  ET_REL
# SECTION-SYM-NEXT: Sections:
# SECTION-SYM-NEXT:   - Name: .section
# SECTION-SYM-NEXT:     Type: SHT_PROGBITS
# SECTION-SYM-NEXT: Symbols:
# SECTION-SYM-NEXT:   - Type: STT_SECTION
# SECTION-SYM-NEXT:   - Name:    .section
# SECTION-SYM-NEXT:     Type:    STT_SECTION
# SECTION-SYM-NEXT:     Section: .section
# SECTION-SYM-NEXT:   - Name:    .section
# SECTION-SYM-NEXT:     Type:    STT_SECTION
# SECTION-SYM-NEXT:     Section: .section
# SECTION-SYM-NEXT: ...

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .section
    Type: SHT_PROGBITS
Symbols:
  - Type:  STT_SECTION
    Index: 0
  - Type:  STT_SECTION
    Index: 1
  - Type:  STT_SECTION
    Index: 1
