From 1a41d087a9e2d54573524595eb3706d3723b26ab Mon Sep 17 00:00:00 2001 From: Noah Knegt Date: Tue, 22 Jul 2025 22:19:20 +0200 Subject: [PATCH] Strucutring unit-tests Signed-off-by: Noah Knegt --- kernel/src/adder.rs | 13 +++++++++++++ kernel/src/lib.rs | 16 ++++------------ kernel/tests/qemu.rs | 15 --------------- 3 files changed, 17 insertions(+), 27 deletions(-) create mode 100644 kernel/src/adder.rs delete mode 100644 kernel/tests/qemu.rs diff --git a/kernel/src/adder.rs b/kernel/src/adder.rs new file mode 100644 index 0000000..bd44931 --- /dev/null +++ b/kernel/src/adder.rs @@ -0,0 +1,13 @@ +pub fn add(a: i32, b: i32) -> i32 { + a + b +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn add_test() { + assert_eq!(add(1, 2), 3); + } +} diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs index 4919aa5..f9376dd 100644 --- a/kernel/src/lib.rs +++ b/kernel/src/lib.rs @@ -1,8 +1,9 @@ -#![no_std] +#![cfg_attr(not(test), no_std)] use bootloader_api::BootInfo; mod logging; +mod adder; pub fn main(boot_info: &'static mut BootInfo) -> ! { let info = boot_info.framebuffer.as_ref().unwrap().info(); @@ -11,15 +12,15 @@ pub fn main(boot_info: &'static mut BootInfo) -> ! { logging::init_logger(buffer, info); log::info!("Hello World from KERNEL"); - log::debug!("ADDING 1 & 6, result == {}", add(1, 6)); + log::debug!("ADDING 1 & 6, result == {}", adder::add(1, 6)); // Endless loop as the kernel must stay running #[allow(clippy::empty_loop)] loop {} } -#[panic_handler] #[cfg(not(test))] +#[panic_handler] fn panic(info: &core::panic::PanicInfo) -> ! { logging::force_unlock(); log::error!("{info}"); @@ -27,12 +28,3 @@ fn panic(info: &core::panic::PanicInfo) -> ! { #[allow(clippy::empty_loop)] loop {} } - -fn add(a: i32, b: i32) -> i32 { - a + b -} - -#[test] -fn add_test() { - assert_eq!(add(1, 2), 3); -} diff --git a/kernel/tests/qemu.rs b/kernel/tests/qemu.rs deleted file mode 100644 index 5f9f6b0..0000000 --- a/kernel/tests/qemu.rs +++ /dev/null @@ -1,15 +0,0 @@ -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -#[repr(u32)] -pub enum QemuExitCode { - Success = 0x10, - Failed = 0x11, -} - -pub fn exit_qemu(exit_code: QemuExitCode) { - use x86_64::instructions::port::Port; - - unsafe { - let mut port = Port::new(0xf4); - port.write(exit_code as u32); - } -}