//! Passes only if the test panics. No test harness (`harness = false` in //! Cargo.toml): a single test function, called directly from `_start`. #![no_std] #![no_main] use core::panic::PanicInfo; use rustbelt::{QemuExitCode, exit_qemu, serial_print, serial_println}; #[unsafe(no_mangle)] pub extern "C" fn _start() -> ! { should_fail(); serial_println!("[test did not panic]"); exit_qemu(QemuExitCode::Failed); rustbelt::hlt_loop(); } fn should_fail() { serial_print!("should_panic::should_fail...\t"); assert_eq!(0, 1); } #[panic_handler] fn panic(_info: &PanicInfo) -> ! { serial_println!("[ok]"); exit_qemu(QemuExitCode::Success); rustbelt::hlt_loop(); }