use std::sync::{Arc, RwLock};
use crate::emulation::{
AddressSpace, CaptureContext, EmulationConfig, EmulationThread, RuntimeState,
SharedFakeObjects, ThreadContext, ThreadId, VirtualFs,
};
pub fn create_test_context() -> Arc<ThreadContext> {
let address_space = Arc::new(AddressSpace::new());
let fake_objects = SharedFakeObjects::new(address_space.managed_heap());
Arc::new(ThreadContext::new(
address_space,
Arc::new(RwLock::new(RuntimeState::new())),
Arc::new(CaptureContext::new()),
Arc::new(EmulationConfig::default()),
None,
fake_objects,
Arc::new(VirtualFs::new()),
))
}
pub fn create_test_thread() -> EmulationThread {
EmulationThread::new(ThreadId::MAIN, create_test_context())
}