123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- use crate::platform::{Pal, Sys};
- // Stub for call used in exit
- #[no_mangle]
- pub extern "C" fn pthread_terminate() {}
- mod epoll;
- #[test]
- fn access() {
- use crate::header::unistd;
- //TODO: create test files
- assert_eq!(Sys::access(c_str!("not a file!"), unistd::F_OK), !0);
- assert_eq!(Sys::access(c_str!("README.md"), unistd::F_OK), 0);
- assert_eq!(Sys::access(c_str!("README.md"), unistd::R_OK), 0);
- assert_eq!(Sys::access(c_str!("README.md"), unistd::W_OK), 0);
- assert_eq!(Sys::access(c_str!("README.md"), unistd::X_OK), !0);
- }
- #[test]
- fn brk() {
- use core::ptr;
- let current = Sys::brk(ptr::null_mut());
- assert_ne!(current, ptr::null_mut());
- let request = unsafe { current.add(4096) };
- let next = Sys::brk(request);
- assert_eq!(next, request);
- }
- #[test]
- fn chdir() {
- //TODO: create test files
- assert_eq!(Sys::chdir(c_str!("src")), 0);
- }
- //TODO: chmod
- //TODO: chown
- #[test]
- fn clock_gettime() {
- use crate::header::time;
- {
- let mut timespec = time::timespec {
- tv_sec: -1,
- tv_nsec: -1,
- };
- assert_eq!(Sys::clock_gettime(time::CLOCK_REALTIME, &mut timespec), 0);
- assert_ne!(timespec.tv_sec, -1);
- assert_ne!(timespec.tv_nsec, -1);
- }
- {
- let mut timespec = time::timespec {
- tv_sec: -1,
- tv_nsec: -1,
- };
- assert_eq!(Sys::clock_gettime(time::CLOCK_MONOTONIC, &mut timespec), 0);
- assert_ne!(timespec.tv_sec, -1);
- assert_ne!(timespec.tv_nsec, -1);
- }
- }
- //TDOO: everything else
- #[test]
- fn getrandom() {
- use crate::platform::types::ssize_t;
- let mut arrays = [[0; 32]; 32];
- for i in 1..arrays.len() {
- assert_eq!(
- Sys::getrandom(&mut arrays[i], 0),
- arrays[i].len() as ssize_t
- );
- for j in 0..arrays.len() {
- if i != j {
- assert_ne!(&arrays[i], &arrays[j]);
- }
- }
- }
- }
|