# This test is checking to ensure that if a section is removed in the presence
# of a segment that the segment maintains its shape and properties and that any
# section inside that segment maintains the relative positioning it had in the
# segment. Note worthy is that .text3 keeps its offset despite it being
# possible to place it after .text when .text2 is removed.

# RUN: yaml2obj %s -o %t
# RUN: llvm-objcopy -R .text2 %t %t2
# RUN: llvm-readobj --file-headers --program-headers --sections %t2 | FileCheck %s
# RUN: od -t x1 -j 8192 -N 4 %t2 | FileCheck %s --check-prefix=DATA

!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_EXEC
  Machine:         EM_X86_64
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Address:         0x1000
    AddressAlign:    0x1000
    Size:            4096
  - Name:            .text2
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Address:         0x2000
    AddressAlign:    0x1000
    Size:            4096
    Content:         "DEADBEEF"
  - Name:            .text3
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Address:         0x3000
    AddressAlign:    0x1000
    Size:            4096
ProgramHeaders:
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    Sections:
      - Section: .text
      - Section: .text2
      - Section: .text3
## TODO (grimar): without the following line (i.e. without an empty symbol table),
## llvm-objcopy adds an empty .strtab section. It doesn't look correct.
Symbols: []

# Make sure that when we remove a section we overwrite it with zeros
# DATA: {{^[^[:blank:]]+}} 00 00 00 00

#CHECK: SectionHeaderCount: 4

# CHECK: Sections [
# CHECK:   Section {
# CHECK-NEXT:     Index: 0
# CHECK-NEXT:     Name:  (0)
# CHECK-NEXT:     Type: SHT_NULL (0x0)
# CHECK-NEXT:     Flags [ (0x0)
# CHECK-NEXT:     ]
# CHECK-NEXT:     Address: 0x0
# CHECK-NEXT:     Offset:
# CHECK-NEXT:     Size:
# CHECK-NEXT:     Link: 0
# CHECK-NEXT:     Info: 0
# CHECK-NEXT:     AddressAlignment: 0
# CHECK-NEXT:     EntrySize: 0
# CHECK-NEXT:   }
# CHECK-NEXT:   Section {
# CHECK-NEXT:     Index: 1
# CHECK-NEXT:     Name: .text
# CHECK-NEXT:     Type: SHT_PROGBITS
# CHECK-NEXT:     Flags [
# CHECK-NEXT:       SHF_ALLOC
# CHECK-NEXT:       SHF_EXECINSTR
# CHECK-NEXT:     ]
# CHECK-NEXT:     Address: 0x1000
# CHECK-NEXT:     Offset: 0x1000
# CHECK-NEXT:     Size:
# CHECK-NEXT:     Link: 0
# CHECK-NEXT:     Info: 0
# CHECK-NEXT:     AddressAlignment: 4096
# CHECK-NEXT:     EntrySize: 0
# CHECK-NEXT:   }
# CHECK-NEXT:   Section {
# CHECK-NEXT:     Index: 2
# CHECK-NEXT:     Name: .text3
# CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
# CHECK-NEXT:     Flags [
# CHECK-NEXT:       SHF_ALLOC
# CHECK-NEXT:       SHF_EXECINSTR
# CHECK-NEXT:     ]
# CHECK-NEXT:     Address: 0x3000
# CHECK-NEXT:     Offset: 0x3000
# CHECK-NEXT:     Size:
# CHECK-NEXT:     Link: 0
# CHECK-NEXT:     Info: 0
# CHECK-NEXT:     AddressAlignment: 4096
# CHECK-NEXT:     EntrySize: 0
# CHECK-NEXT:   }
# CHECK-NEXT:   Section {
# CHECK-NEXT:     Index: 3
# CHECK-NEXT:     Name: .shstrtab
# CHECK-NEXT:     Type: SHT_STRTAB (0x3)
# CHECK-NEXT:     Flags [ (0x0)
# CHECK-NEXT:     ]
# CHECK-NEXT:     Address: 0x0
# CHECK-NEXT:     Offset:
# CHECK-NEXT:     Size:
# CHECK-NEXT:     Link: 0
# CHECK-NEXT:     Info: 0
# CHECK-NEXT:     AddressAlignment: 1
# CHECK-NEXT:     EntrySize: 0
# CHECK-NEXT:   }
# CHECK-NEXT: ]

#CHECK:     ProgramHeaders [
#CHECK-NEXT:  ProgramHeader {
#CHECK-NEXT:    Type: PT_LOAD (0x1)
#CHECK-NEXT:    Offset: 0x1000
#CHECK-NEXT:    VirtualAddress: 0x0
#CHECK-NEXT:    PhysicalAddress: 0x0
#CHECK-NEXT:    FileSize: 12288
#CHECK-NEXT:    MemSize: 12288
#CHECK-NEXT:    Flags [ (0x5)
#CHECK-NEXT:      PF_R (0x4)
#CHECK-NEXT:      PF_X (0x1)
#CHECK-NEXT:    ]
#CHECK-NEXT:    Alignment: 4096
#CHECK-NEXT:  }
#CHECK-NEXT:]
