// SPDX-License-Identifier: GPL-3.0-or-later use molotov_core::elf::ElfBinary; #[test] fn test_rejects_non_elf_magic() { let dummy = b"NOT_AN_ELF_BINARY"; let res = ElfBinary::parse(dummy); assert!(res.is_err(), "Must reject files without 0x7F 'E' 'L' 'F' magic header"); } #[test] fn test_parses_valid_minimal_elf64() { let mut header = vec![0u8; 64]; // e_ident header[0..4].copy_from_slice(b"\x7fELF"); header[4] = 2; // ELFCLASS64 header[5] = 1; // ELFDATA2LSB (little endian) header[6] = 1; // EV_CURRENT // e_type = ET_DYN (3) header[16] = 3; // e_machine = EM_X86_64 (62) header[18] = 62; // e_phentsize = 56 header[54] = 56; let res = ElfBinary::parse(&header); assert!(res.is_ok(), "Valid minimal ELF64 dynamic library header must be accepted"); }