Test for BadFile
This commit is contained in:
parent
d97e2e4b4a
commit
8a6d9b8c9d
|
@ -5,7 +5,12 @@ use super::{Error, Result};
|
|||
/// Read syscall
|
||||
pub fn read(fd: usize, buf: &mut [u8]) -> Result<usize> {
|
||||
println!("Read {}: {}", fd, buf.len());
|
||||
if let Some(file) = unsafe { &mut ::context::CONTEXT }.files.get(fd) {
|
||||
println!("{:?}", file);
|
||||
Ok(0)
|
||||
} else {
|
||||
Err(Error::BadFile)
|
||||
}
|
||||
}
|
||||
|
||||
/// Write syscall
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
use arch::interrupt::{enable_interrupts, halt};
|
||||
|
||||
use syscall;
|
||||
use syscall::{self, Error};
|
||||
|
||||
/// Test halting
|
||||
#[test]
|
||||
fn halt_with_interrupts() {
|
||||
unsafe {
|
||||
enable_interrupts();
|
||||
halt();
|
||||
//enable_interrupts();
|
||||
//halt();
|
||||
}
|
||||
}
|
||||
|
||||
/// Test stdio
|
||||
#[test]
|
||||
fn open_stdio() {
|
||||
fn stdio() {
|
||||
// Test opening stdin
|
||||
assert_eq!(syscall::open(b"debug:", 0), Ok(0));
|
||||
|
||||
|
@ -29,3 +31,10 @@ fn open_stdio() {
|
|||
let stderr_str = b"STDERR";
|
||||
assert_eq!(syscall::write(2, stderr_str), Ok(stderr_str.len()));
|
||||
}
|
||||
|
||||
/// Test that invalid reads/writes cause errors
|
||||
#[test]
|
||||
fn invalid_path() {
|
||||
assert_eq!(syscall::read(999, &mut []), Err(Error::BadFile));
|
||||
assert_eq!(syscall::write(999, &[]), Err(Error::BadFile));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue