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