use crate::io::{qemu, serial, vga_text}; use core::fmt::Write; use qemu::{exit_qemu, QemuExitCode}; use serial::SerialStream; use vga_text::OStream; #[cfg(test)] pub fn serial_test_runner_panic(tests: &[&dyn Fn()]) { let mut stdout = SerialStream::new(); write!(stdout, "Running {} tests", tests.len()).unwrap(); for test in tests { test(); write!(stdout, "[test did not panic]").unwrap(); exit_qemu(QemuExitCode::Failed); } exit_qemu(QemuExitCode::Success); } #[cfg(test)] pub fn serial_test_runner(tests: &[&dyn Fn()]) { let mut stdout = SerialStream::new(); write!(stdout, "Running {} tests", tests.len()).unwrap(); for test in tests { test(); write!(stdout, "[test did not panic]").unwrap(); } exit_qemu(QemuExitCode::Success); } #[cfg(test)] pub fn test_runner_panic(tests: &[&dyn Fn()]) { let mut stdout = OStream::new(); write!(stdout, "Running {} tests", tests.len()).unwrap(); for test in tests { test(); write!(stdout, "[test did not panic]").unwrap(); exit_qemu(QemuExitCode::Failed); } exit_qemu(QemuExitCode::Success); } #[cfg(test)] pub fn test_runner(tests: &[&dyn Fn()]) { let mut stdout = OStream::new(); write!(stdout, "Running {} tests", tests.len()).unwrap(); for test in tests { test(); write!(stdout, "[test did not panic]").unwrap(); } exit_qemu(QemuExitCode::Success); }