## Check how obj2yaml dumps the sh_entsize field. ## Check we don't dump the "EntSize" key for SHT_SYMTAB/SHT_DYNSYM sections ## when the value of sh_entsize is equal to sizeof(ELF_Sym) == 0x18. # RUN: yaml2obj %s -o %t # RUN: obj2yaml %t | FileCheck %s # CHECK: - Name: .rodata.cst4 # CHECK-NEXT: Type: SHT_PROGBITS # CHECK-NEXT: EntSize: 0x4 # CHECK-NEXT: - Name: .mysymtab # CHECK-NEXT: Type: SHT_SYMTAB # CHECK-NEXT: Link: .strtab # CHECK-NEXT: Size: 0x0 # CHECK-NEXT: - Name: .mydynsym # CHECK-NEXT: Type: SHT_DYNSYM # CHECK-NEXT: Size: 0x0 # CHECK-NEXT: ... --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Sections: - Name: .rodata.cst4 Type: SHT_PROGBITS EntSize: 0x4 - Name: .mysymtab Type: SHT_SYMTAB EntSize: [[SYMTABES=0x18]] - Name: .mydynsym Type: SHT_DYNSYM EntSize: [[DYNSYMES=0x18]] ## Document that we are unable to dump a SHT_SYMTAB section when its entry size ## is not equal to sizeof(ELF_Sym). # RUN: yaml2obj %s -DSYMTABES=0x19 -o %t2 # RUN: not obj2yaml %t2 2>&1 | FileCheck %s -DFILE=%t2 --check-prefix=ERR1 # ERR1: Error reading file: [[FILE]]: section [index 2] has invalid sh_entsize: expected 24, but got 25 ## Document that we are unable to dump a SHT_DYNSYM section when its entry size ## is not equal to sizeof(ELF_Sym). # RUN: yaml2obj %s -DDYNSYMES=0x19 -o %t3 # RUN: not obj2yaml %t3 2>&1 | FileCheck %s -DFILE=%t3 --check-prefix=ERR2 # ERR2: Error reading file: [[FILE]]: section [index 3] has invalid sh_entsize: expected 24, but got 25