From 3ecf9a9b565040435ba4a8435d114af3ed4bdccb Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Sat, 20 Apr 2019 18:50:43 +0200 Subject: [PATCH] Exit qemu on panic --- src/main.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main.rs b/src/main.rs index 4798dec4..f8e09cbd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,12 +29,22 @@ fn test_runner(tests: &[&dyn Fn()]) { } /// This function is called on panic. +#[cfg(not(test))] #[panic_handler] fn panic(info: &PanicInfo) -> ! { println!("{}", info); loop {} } +#[cfg(test)] +#[panic_handler] +fn panic(info: &PanicInfo) -> ! { + serial_println!("[failed]\n"); + serial_println!("Error: {}\n", info); + unsafe { exit_qemu(QemuExitCode::Failed); } + loop {} +} + #[derive(Debug, Clone, Copy, PartialEq, Eq)] #[repr(u32)] pub enum QemuExitCode {