diff options
author | Dennis Kobert <dennis@kobert.dev> | 2019-10-31 21:06:46 +0100 |
---|---|---|
committer | Dennis Kobert <dennis@kobert.dev> | 2019-10-31 21:06:46 +0100 |
commit | 6c09097e5441eafc971c8d5d414963a4e66a892f (patch) | |
tree | c1af76085f453dc2503ce85030bcafcc0c234110 /kernel/src/io/serial.rs | |
parent | 5a00ecaa8bdc60e1849de1df8c1655fa84faf984 (diff) |
Add testing to build
Diffstat (limited to 'kernel/src/io/serial.rs')
-rw-r--r-- | kernel/src/io/serial.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/kernel/src/io/serial.rs b/kernel/src/io/serial.rs new file mode 100644 index 0000000..bab770d --- /dev/null +++ b/kernel/src/io/serial.rs @@ -0,0 +1,26 @@ +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[repr(u32)] +pub enum QemuExitCode { + Success = 0x10, // The actual exit code is (value << 1) | 1. + 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); + } +} + +#[test_case] +fn trivial_assertion() { + use crate::vga_text::OStream; + let mut stdout = OStream::new(); + stdout.clear(); + + stdout.print(b"trivial assertion... "); + assert_eq!(0, 1); + stdout.print(b"[ok]"); +} |