// SPDX-License-Identifier: MIT OR Apache-2.0 // // Copyright (c) 2019-2022 Andre Richter //! Console sanity tests - RX, TX and statistics. #![feature(format_args_nl)] #![no_main] #![no_std] /// Console tests should time out on the I/O harness in case of panic. mod panic_wait_forever; use libkernel::{bsp, console, cpu, exception, memory, print}; #[no_mangle] unsafe fn kernel_init() -> ! { use bsp::console::console; use console::interface::*; exception::handling_init(); memory::mmu::post_enable_init(); bsp::console::qemu_bring_up_console(); // Handshake assert_eq!(console().read_char(), 'A'); assert_eq!(console().read_char(), 'B'); assert_eq!(console().read_char(), 'C'); print!("OK1234"); // 6 print!("{}", console().chars_written()); // 3 print!("{}", console().chars_read()); // The QEMU process running this test will be closed by the I/O test harness. cpu::wait_forever(); }