use crate::tests::helpers;
use crate::*;
const MACHO64_ADD: &[u8] = include_bytes!("../../fixtures/macho64_aarch64_add.bin");
#[test]
fn macho64_aarch64_load_and_execute() {
helpers::setup();
let tmp = std::env::temp_dir().join("mwemu_test_macho64_add.bin");
std::fs::write(&tmp, MACHO64_ADD).unwrap();
let mut emu = emu_aarch64();
emu.load_code(tmp.to_str().unwrap());
assert!(emu.cfg.arch.is_aarch64());
let pc = emu.regs_aarch64().pc;
assert!(pc >= 0x100000000, "entry 0x{:x} should be in __TEXT", pc);
let sp_before = emu.regs_aarch64().sp;
for _ in 0..10 {
emu.step();
}
assert_eq!(emu.regs_aarch64().x[0] & 0xffffffff, 4);
assert_eq!(emu.regs_aarch64().sp, sp_before);
}