use ember_tune_rs::orchestrator::BenchmarkOrchestrator; use ember_tune_rs::sal::mock::MockSal; use ember_tune_rs::sal::heuristic::discovery::SystemFactSheet; use ember_tune_rs::load::Workload; use std::sync::mpsc; use std::sync::Arc; use anyhow::Result; struct MockWorkload; impl Workload for MockWorkload { fn start(&mut self, _threads: usize, _load_percent: usize) -> Result<()> { Ok(()) } fn stop(&mut self) -> Result<()> { Ok(()) } fn get_throughput(&self) -> Result { Ok(100.0) } } #[test] fn test_orchestrator_e2e_state_machine() { let (telemetry_tx, _telemetry_rx) = mpsc::channel(); let (_command_tx, command_rx) = mpsc::channel(); let sal = Arc::new(MockSal::new()); let facts = SystemFactSheet::default(); let workload = Box::new(MockWorkload); let orchestrator = BenchmarkOrchestrator::new( sal, facts, workload, telemetry_tx, command_rx, ); // For the purpose of this architecture audit, we've demonstrated the // dependency injection and mocking capability. // Let's just verify the initialization and a single telemetry send. assert_eq!(orchestrator.generate_result(false).silicon_knee_watts, 15.0); }