#![no_std] #![no_main] #![feature(custom_test_frameworks)] #![test_runner(xe_os::test_runner)] #![reexport_test_harness_main = "test_main"] extern crate alloc; use alloc::string::ToString; use bootloader::{entry_point, BootInfo}; use core::panic::PanicInfo; use xe_os::{clock, init, println, wasm}; entry_point!(kernel_main); fn kernel_main(boot_info: &'static BootInfo) -> ! { init(&boot_info); #[cfg(test)] test_main(); // Read the rtc date time using this year let now = clock::current_time(); println!("now: {}", now.to_string()); println!("Running WASM:"); wasm::run(); println!("[ ] success"); xe_os::hlt_loop(); } // our existing panic handler #[cfg(not(test))] // new attribute #[panic_handler] fn panic(info: &PanicInfo) -> ! { println!("{}", info); xe_os::hlt_loop(); } // our panic handler in test mode #[cfg(test)] #[panic_handler] fn panic(info: &PanicInfo) -> ! { xe_os::test_panic_handler(info); }