Exit qemu on panic

This commit is contained in:
Philipp Oppermann
2019-04-20 18:50:43 +02:00
parent 1559493802
commit 3ecf9a9b56

View File

@@ -29,12 +29,22 @@ fn test_runner(tests: &[&dyn Fn()]) {
} }
/// This function is called on panic. /// This function is called on panic.
#[cfg(not(test))]
#[panic_handler] #[panic_handler]
fn panic(info: &PanicInfo) -> ! { fn panic(info: &PanicInfo) -> ! {
println!("{}", info); println!("{}", info);
loop {} 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)] #[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u32)] #[repr(u32)]
pub enum QemuExitCode { pub enum QemuExitCode {