use std::sync::Arc;
use arcbox_vm_driver::testkit::{FakeDriver, FakeNetwork};
use crate::config::RuntimeConfig;
use crate::environment::NodeEnvironment;
use crate::error::Result;
use crate::snapshot_cow::{CowManager, CowOptions};
use crate::testkit::agent::FakeAgentFactory;
pub fn fake_environment(config: &RuntimeConfig) -> Result<NodeEnvironment> {
let mut cow_options = CowOptions::new(&config.firecracker.data_dir);
if let Some(candidates) = &config.firecracker.dmsetup_candidates {
cow_options.dmsetup_candidates = candidates.iter().map(std::path::PathBuf::from).collect();
}
Ok(NodeEnvironment {
driver: Arc::new(FakeDriver::new()),
network: Arc::new(FakeNetwork::new()),
agent: Arc::new(FakeAgentFactory::new()),
cow_manager: Arc::new(CowManager::new(cow_options)?),
})
}