This repository has been archived on 2026-10-10. You can view files and clone it, but cannot push or open issues or pull requests.
molotov/crates/molotov-core/tests/elf_parser_test.rs

28 lines
828 B
Rust

// 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");
}