@@ -512,44 +512,6 @@ enum ManagerEvent {
512512 VmExited(Option<String>),
513513}
514514
515−#[cfg(test)]
516−mod tests {
517− use super::*;
518− use std::{sync::mpsc, time::Duration};
519−
520− #[test]
521− fn manager_powers_off_after_grace_when_no_refs() {
522− let _temp = tempfile::Builder::new()
523− .prefix("vb")
524− .tempdir_in("/tmp")
525− .expect("tempdir");
526−
527− let (event_tx, event_rx) = mpsc::channel::<ManagerEvent>();
528− let (vm_tx, vm_rx) = mpsc::channel::<VmInput>();
529− let vm_input_tx = Arc::new(Mutex::new(Some(vm_tx)));
530−
531− let manager_thread = thread::spawn(move || {
532− manager_event_loop(event_rx, vm_input_tx, 50).expect("event loop");
533− });
534−
535− event_tx.send(ManagerEvent::Inc(None)).unwrap();
536− assert!(vm_rx.recv_timeout(Duration::from_millis(100)).is_err());
537−
538− event_tx.send(ManagerEvent::Dec(None)).unwrap();
539− let msg = vm_rx
540− .recv_timeout(Duration::from_secs(2))
541− .expect("poweroff");
542− match msg {
543− VmInput::Bytes(data) => {
544− assert_eq!(data, b"systemctl poweroff\n");
545− }
546− _ => panic!("unexpected vm input"),
547− }
548− let _ = event_tx.send(ManagerEvent::VmExited(None));
549− let _ = manager_thread.join();
550− }
551−}
552−
553515struct ManagerOptions {
554516 ensure_signed: bool,
555517 detach: bool,
@@ -788,3 +750,41 @@ fn manager_event_loop(
788750
789751 Ok(())
790752}
753+
754+#[cfg(test)]
755+mod tests {
756+ use super::*;
757+ use std::{sync::mpsc, time::Duration};
758+
759+ #[test]
760+ fn manager_powers_off_after_grace_when_no_refs() {
761+ let _temp = tempfile::Builder::new()
762+ .prefix("vb")
763+ .tempdir_in("/tmp")
764+ .expect("tempdir");
765+
766+ let (event_tx, event_rx) = mpsc::channel::<ManagerEvent>();
767+ let (vm_tx, vm_rx) = mpsc::channel::<VmInput>();
768+ let vm_input_tx = Arc::new(Mutex::new(Some(vm_tx)));
769+
770+ let manager_thread = thread::spawn(move || {
771+ manager_event_loop(event_rx, vm_input_tx, 50).expect("event loop");
772+ });
773+
774+ event_tx.send(ManagerEvent::Inc(None)).unwrap();
775+ assert!(vm_rx.recv_timeout(Duration::from_millis(100)).is_err());
776+
777+ event_tx.send(ManagerEvent::Dec(None)).unwrap();
778+ let msg = vm_rx
779+ .recv_timeout(Duration::from_secs(2))
780+ .expect("poweroff");
781+ match msg {
782+ VmInput::Bytes(data) => {
783+ assert_eq!(data, b"systemctl poweroff\n");
784+ }
785+ _ => panic!("unexpected vm input"),
786+ }
787+ let _ = event_tx.send(ManagerEvent::VmExited(None));
788+ let _ = manager_thread.join();
789+ }
790+}