## Check how obj2yaml produces SHT_HASH section descriptions.

## Check that obj2yaml uses "Bucket" and "Chain" tags to describe
## a SHT_HASH section when it has content of a correct size.
## I.e. data size == 4 * (2 + nbucket + nchain).

# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=CHAIN-BUCKET

# CHAIN-BUCKET:      - Name:  .hash1
# CHAIN-BUCKET-NEXT:  Type:   SHT_HASH
# CHAIN-BUCKET-NEXT:  Bucket: [ 3 ]
# CHAIN-BUCKET-NEXT:  Chain:  [ 4, 5 ]
# CHAIN-BUCKET:      - Name:  .hash2
# CHAIN-BUCKET-NEXT:  Type:   SHT_HASH
# CHAIN-BUCKET-NEXT:  Bucket: [  ]
# CHAIN-BUCKET-NEXT:  Chain:  [  ]

--- !ELF
FileHeader:
  Class: ELFCLASS32
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
## Case 1: A non-empty hash table: nbucket == 1, nchain == 2. 
  - Name:    .hash1
    Type:    SHT_HASH
    Content: '0100000002000000030000000400000005000000'
## Case 2: An empty hash table: nbucket == 0, nchain == 0.
  - Name:    .hash2
    Type:    SHT_HASH
    Content: '0000000000000000'

## Check that obj2yaml falls back to using the "Content" tag when
## hash sections are broken.

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

# CONTENT:      - Name:    .empty_hash
# CONTENT-NEXT:   Type:    SHT_HASH
# CONTENT-NEXT:   Content: ''
# CONTENT-NEXT: - Name:    .invalid_header
# CONTENT-NEXT:   Type:    SHT_HASH
# CONTENT-NEXT:   Content: '00'
# CONTENT-NEXT: - Name:    .truncated
# CONTENT-NEXT:   Type:    SHT_HASH
# CONTENT-NEXT:   Content: '01000000020000000300000004000000'
# CONTENT-NEXT: - Name:    .oversized
# CONTENT-NEXT:   Type:    SHT_HASH
# CONTENT-NEXT:   Content: '0100000002000000030000000400000000'
# CONTENT-NEXT: - Name:    .overflow1
# CONTENT-NEXT:   Type:    SHT_HASH
# CONTENT-NEXT:   Content: 01000000FFFFFFFF{{$}}
# CONTENT-NEXT: - Name:    .overflow2
# CONTENT-NEXT:   Type:    SHT_HASH
# CONTENT-NEXT:   Content: FFFFFFFF01000000{{$}}
# CONTENT-NEXT: ...

--- !ELF
FileHeader:
  Class: ELFCLASS32
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
## Case 1: section has no data.
  - Name:    .empty_hash
    Type:    SHT_HASH
    Content: ''
## Case 2: section size is less than 2 * 4.
  - Name:    .invalid_header
    Type:    SHT_HASH
    Content: '00'
## Case 3: nbucket == 1, nchain == 2.
##         Section size is less than (2 * nbucket + nchain) * 4.
  - Name:    .truncated
    Type:    SHT_HASH
    Content: '01000000020000000300000004000000'
## Case 4: nbucket == 1, nchain == 2.
##         Section size is greater than (2 * nbucket + nchain) * 4.
  - Name:    .oversized
    Type:    SHT_HASH
    Content: '0100000002000000030000000400000000'
## Case 5, 6: NChain/NBucket are incorrect and causing 32-bit
##            unsigned overflows of intermediate expressions.
  - Name:    .overflow1
    Type:    SHT_HASH
    Bucket:  [ ]
    Chain:   [ ]
    NBucket: 0x1
    NChain:  0xffffffff
  - Name:    .overflow2
    Type:    SHT_HASH
    Bucket:  [ ]
    Chain:   [ ]
    NBucket: 0xffffffff
    NChain:  0x1

## Check how we dump the "EntSize" field. When the sh_entsize is 4,
## we don't print it, because it is the default value for the SHT_HASH section.

# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: obj2yaml %t3 | FileCheck %s --check-prefix=ENT-SIZE

# ENT-SIZE:      - Name:    .hash.entsize.0
# ENT-SIZE-NEXT:   Type:    SHT_HASH
# ENT-SIZE-NEXT:   EntSize: 0x0
# ENT-SIZE-NEXT:   Content: ''
# ENT-SIZE-NEXT: - Name:    .hash.entsize.4.default
# ENT-SIZE-NEXT:   Type:    SHT_HASH
# ENT-SIZE-NEXT:   Content: ''
# ENT-SIZE-NEXT: - Name:    .hash.entsize.255
# ENT-SIZE-NEXT:   Type:    SHT_HASH
# ENT-SIZE-NEXT:   EntSize: 0xFF
# ENT-SIZE-NEXT:   Content: ''

--- !ELF
FileHeader:
  Class: ELFCLASS32
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name:    .hash.entsize.0
    Type:    SHT_HASH
    EntSize: 0
    Size:    0
  - Name:    .hash.entsize.4.default
    Type:    SHT_HASH
    EntSize: 4
    Size:    0
  - Name:    .hash.entsize.255
    Type:    SHT_HASH
    EntSize: 255
    Size:    0
