add tests, serial, lib, etc (3h1m)

This commit is contained in:
Conzer 2024-12-03 18:02:53 -05:00
parent 584aa7b38d
commit cbd2cfc1d4
7 changed files with 239 additions and 24 deletions

View file

@ -1,39 +1,32 @@
#![allow()]
#![no_std]
#![no_main]
#![feature(custom_test_frameworks)]
#![test_runner(crate::test_runner)]
#![test_runner(donald::test_runner)]
#![reexport_test_harness_main = "test_main"]
#[cfg(test)]
pub fn test_runner(tests: &[&dyn Fn()]) {
println!("Running {} tests", tests.len());
for test in tests {
test();
}
}
mod vga_buffer;
use core::panic::PanicInfo;
#[panic_handler]
fn panic(info: &PanicInfo) -> ! {
println!("{}", info);
loop {}
}
use donald::println;
#[no_mangle]
pub extern "C" fn _start() -> ! {
println!("Hello World!");
println!("Hello World{}", "!");
#[cfg(test)]
test_main();
loop {}
}
#[test_case]
fn trivial_assertion() {
print!("trivial assertion... ");
assert_eq!(1, 1);
println!("[ok]");
/// This function is called on panic.
#[cfg(not(test))]
#[panic_handler]
fn panic(info: &PanicInfo) -> ! {
println!("{}", info);
loop {}
}
#[cfg(test)]
#[panic_handler]
fn panic(info: &PanicInfo) -> ! {
donald::test_panic_handler(info)
}