From d97e2e4b4ab269ae277408eb025b606b69e45679 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Sun, 14 Aug 2016 18:22:50 -0600 Subject: [PATCH] Add stdout/stderr tests --- kernel/syscall/mod.rs | 4 ++-- kernel/tests/mod.rs | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/kernel/syscall/mod.rs b/kernel/syscall/mod.rs index 5c26941..2107d4f 100644 --- a/kernel/syscall/mod.rs +++ b/kernel/syscall/mod.rs @@ -12,7 +12,7 @@ pub mod fs; pub mod process; /// System call list -#[derive(Copy, Clone, Debug)] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum Call { /// Exit syscall Exit, @@ -47,7 +47,7 @@ impl From for Call { } /// The error number for an invalid value -#[derive(Copy, Clone, Debug)] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum Error { /// Operation not permitted NotPermitted, diff --git a/kernel/tests/mod.rs b/kernel/tests/mod.rs index 3603cde..fa55c4d 100644 --- a/kernel/tests/mod.rs +++ b/kernel/tests/mod.rs @@ -1,5 +1,7 @@ use arch::interrupt::{enable_interrupts, halt}; +use syscall; + #[test] fn halt_with_interrupts() { unsafe { @@ -7,3 +9,23 @@ fn halt_with_interrupts() { halt(); } } + +#[test] +fn open_stdio() { + // Test opening stdin + assert_eq!(syscall::open(b"debug:", 0), Ok(0)); + + // Test opening stdout + assert_eq!(syscall::open(b"debug:", 0), Ok(1)); + + // Test opening stderr + assert_eq!(syscall::open(b"debug:", 0), Ok(2)); + + // Test writing stdout + let stdout_str = b"STDOUT"; + assert_eq!(syscall::write(1, stdout_str), Ok(stdout_str.len())); + + // Test writing stderr + let stderr_str = b"STDERR"; + assert_eq!(syscall::write(2, stderr_str), Ok(stderr_str.len())); +}