diff options
Diffstat (limited to 'src/vga/buffer.rs')
| -rw-r--r-- | src/vga/buffer.rs | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/vga/buffer.rs b/src/vga/buffer.rs index 34c665d..4ca001c 100644 --- a/src/vga/buffer.rs +++ b/src/vga/buffer.rs @@ -109,6 +109,7 @@ impl NullLock<VgaWriter> { }); } + #[allow(dead_code)] pub fn write_string(&self, s: &str) { self.lock(|writer| { writer.write_string(s); @@ -152,6 +153,37 @@ macro_rules! println { pub static WRITER: NullLock<VgaWriter> = NullLock::new(VgaWriter { column_position: 0, - color_code: ColorCode::new(Color::Yellow, Color::Black), + color_code: ColorCode::new(Color::LightBlue, Color::Black), buffer: None, }); + +#[test_case] +fn test_println_simple() { + println!("test_println_simple output"); +} + +#[test_case] +fn test_println_many() { + for _ in 0..200 { + println!("test_println_many output"); + } +} + +#[test_case] +fn test_println_output() { + let s = "Some test string that fits on a single line"; + println!("{}", s); + for (i, c) in s.chars().enumerate() { + let screen_char = WRITER.lock(|writer| { + if let Some(buffer) = &writer.buffer { + return buffer.chars[BUFFER_HEIGHT - 2][i].read(); + } else { + return ScreenChar { + ascii_character: b' ', + color_code: ColorCode::new(Color::LightBlue, Color::Black), + }; + } + }); + assert_eq!(char::from(screen_char.ascii_character), c); + } +} |
