diff --git a/llvm/test/tools/llvm-objcopy/ELF/empty-section.test b/llvm/test/tools/llvm-objcopy/ELF/empty-section.test --- a/llvm/test/tools/llvm-objcopy/ELF/empty-section.test +++ b/llvm/test/tools/llvm-objcopy/ELF/empty-section.test @@ -1,6 +1,14 @@ -# RUN: yaml2obj %s -o %t -# RUN: llvm-objcopy %t %t2 -# RUN: llvm-readobj --sections %t2 | FileCheck %s +# RUN: yaml2obj --docnum=1 %s -o %t1 +# RUN: llvm-objcopy %t1 %t1.out +# RUN: llvm-readelf -S %t1.out | FileCheck --check-prefix=CHECK1 %s + +# CHECK1: Name Type Address Off Size ES Flg Lk Inf Al +# CHECK1-NEXT: NULL 0000000000000000 000000 000000 00 0 0 0 +# CHECK1-NEXT: .text PROGBITS 0000000000000000 001000 000004 00 AX 0 0 4 +# CHECK1-NEXT: .empty PROGBITS 0000000000001000 002000 000000 00 A 0 0 4096 +# CHECK1-NEXT: .data PROGBITS 0000000000001000 002000 000004 00 A 0 0 4096 +# CHECK1-NEXT: .strtab STRTAB 0000000000000000 002004 000001 00 0 0 1 +# CHECK1-NEXT: .shstrtab STRTAB 0000000000000000 002005 000026 00 0 0 1 !ELF FileHeader: @@ -28,28 +36,53 @@ AddressAlign: 0x0000000000001000 Content: "00000000" +# RUN: yaml2obj --docnum=2 %s -o %t2 +# RUN: llvm-objcopy %t2 %t2.out +# RUN: llvm-readelf -S %t2.out | FileCheck --check-prefix=CHECK2 %s -# CHECK: Name: .text -# CHECK-NEXT: Type: SHT_PROGBITS -# CHECK-NEXT: Flags [ -# CHECK-NEXT: SHF_ALLOC -# CHECK-NEXT: SHF_EXECINSTR -# CHECK-NEXT: ] +# CHECK2: Name Type Address Off Size ES Flg Lk Inf Al +# CHECK2-NEXT: NULL 0000000000000000 000000 000000 00 0 0 0 +# CHECK2-NEXT: .foo PROGBITS 0000000000000000 000100 000100 00 A 0 0 256 +# CHECK2-NEXT: .empty PROGBITS 0000000000001000 001000 000000 00 A 0 0 0 +# CHECK2-NEXT: .baz PROGBITS 0000000000001000 001000 000100 00 A 0 0 4096 -# CHECK: Name: .empty -# CHECK-NEXT: Type: SHT_PROGBITS -# CHECK-NEXT: Flags [ -# CHECK-NEXT: SHF_ALLOC -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x1000 -# CHECK-NEXT: Offset: 0x2000 -# CHECK-NEXT: Size: 0 - -# CHECK: Name: .data -# CHECK-NEXT: Type: SHT_PROGBITS -# CHECK-NEXT: Flags [ -# CHECK-NEXT: SHF_ALLOC -# CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x1000 -# CHECK-NEXT: Offset: 0x2000 -# CHECK-NEXT: Size: 4 +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: gap + Type: Fill + Size: 0xE00 + - Name: .foo + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + AddressAlign: 0x100 + Address: 0 + Size: 0x100 + - Name: .empty + Type: SHT_PROGBITS + Flags: [SHF_ALLOC] + Address: 0x1000 + - Name: .baz + Type: SHT_PROGBITS + Flags: [SHF_ALLOC] + AddressAlign: 0x1000 + Address: 0x1000 + Size: 0x100 +ProgramHeaders: + - Type: PT_LOAD + VAddr: 0 + PAddr: 0 + Align: 0x100 + Sections: + - Section: .foo + - Type: PT_LOAD + VAddr: 0x1000 + PAddr: 0x1000 + Align: 0x1000 + Sections: + - Section: .empty + - Section: .baz