diff options
Diffstat (limited to 'tests/run-getphdrnum.sh')
-rwxr-xr-x | tests/run-getphdrnum.sh | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/tests/run-getphdrnum.sh b/tests/run-getphdrnum.sh new file mode 100755 index 00000000..889cdaf1 --- /dev/null +++ b/tests/run-getphdrnum.sh @@ -0,0 +1,137 @@ +#! /bin/sh + +# testfile-phdrs.elf generated with python3 script +# import struct +# import sys +# +# phnum = 66000 +# +# sys.stdout.buffer.write( +# struct.pack( +# "<16BHHIQQQIHHHHHH", +# # EI_MAG +# *b"\x7fELF", +# # EI_CLASS = ELFCLASS64 +# 2, +# # EI_DATA = ELFDATA2LSB +# 1, +# # EI_VERSION +# 1, +# # EI_OSABI = ELFOSABI_SYSV +# 0, +# # EI_ABIVERSION +# 0, +# # EI_PAD +# *bytes(7), +# # e_type = ET_CORE +# 4, +# # e_machine = EM_X86_64 +# 62, +# # e_version +# 1, +# # e_entry +# 0, +# # e_phoff = sizeof(Elf64_Ehdr) + sizeof(Elf64_Shdr) +# 128, +# # e_shoff = sizeof(Elf64_Ehdr) +# 64, +# # e_flags +# 0, +# # e_ehsize +# 64, +# # e_phentsize +# 56, +# # e_phnum = PN_XNUM +# 0xFFFF, +# # e_shentsize +# 64, +# # e_shnum +# 1, +# # e_shstrndx +# 0, +# ) +# ) +# +# sys.stdout.buffer.write( +# struct.pack( +# "<IIQQQQIIQQ", +# # sh_name +# 0, +# # sh_type = SHT_NULL +# 0, +# # sh_flags +# 0, +# # sh_addr +# 0, +# # sh_offset +# 0, +# # sh_size +# 0, +# # sh_link +# 0, +# # sh_info +# phnum, +# # sh_addralign +# 0, +# # sh_entsize +# 0, +# ) +# ) +# +# for i in range(phnum): +# sys.stdout.buffer.write( +# struct.pack( +# "<IIQQQQQQ", +# # p_type = PT_LOAD +# 1, +# # p_flags = PF_X|PF_W|PF_R +# 0x7, +# # p_offset +# 0, +# # p_vaddr +# # i * 4096, +# 4096, +# # p_paddr +# 0, +# # p_filesz +# 0, +# # p_memsz +# 4096, +# # p_align +# 0, +# ) +# ) + +. $srcdir/test-subr.sh + +testfiles testfile-phdrs.elf + +testrun_compare ${abs_top_builddir}/src/readelf -h testfile-phdrs.elf<<\EOF +ELF Header: + Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF64 + Data: 2's complement, little endian + Ident Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: CORE (Core file) + Machine: AMD x86-64 + Version: 1 (current) + Entry point address: 0 + Start of program headers: 128 (bytes into file) + Start of section headers: 64 (bytes into file) + Flags: + Size of this header: 64 (bytes) + Size of program header entries: 56 (bytes) + Number of program headers entries: 65535 (66000 in [0].sh_info) + Size of section header entries: 64 (bytes) + Number of section headers entries: 1 + Section header string table index: 0 + +EOF + +testrun_compare ${abs_builddir}/getphdrnum testfile-phdrs.elf<<\EOF +66000 +EOF + +exit 0 |