38 lines
No EOL
736 B
Rust
38 lines
No EOL
736 B
Rust
#![no_std]
|
|
#![no_main]
|
|
|
|
#[macro_use]
|
|
extern crate user_lib;
|
|
|
|
use user_lib::{
|
|
open,
|
|
close,
|
|
read,
|
|
write,
|
|
OpenFlags,
|
|
};
|
|
|
|
#[no_mangle]
|
|
pub fn main() -> i32 {
|
|
let test_str = "Hello, world!";
|
|
let filea = "filea\0";
|
|
let fd = open(filea, OpenFlags::CREATE | OpenFlags::WRONLY);
|
|
assert!(fd > 0);
|
|
let fd = fd as usize;
|
|
write(fd, test_str.as_bytes());
|
|
close(fd);
|
|
|
|
let fd = open(filea, OpenFlags::RDONLY);
|
|
assert!(fd > 0);
|
|
let fd = fd as usize;
|
|
let mut buffer = [0u8; 100];
|
|
let read_len = read(fd, &mut buffer) as usize;
|
|
close(fd);
|
|
|
|
assert_eq!(
|
|
test_str,
|
|
core::str::from_utf8(&buffer[..read_len]).unwrap(),
|
|
);
|
|
println!("file_test passed!");
|
|
0
|
|
} |