mod.rs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. use crate::platform::{Pal, Sys};
  2. // Stub for call used in exit
  3. #[no_mangle]
  4. pub extern "C" fn pthread_terminate() {}
  5. mod epoll;
  6. #[test]
  7. fn access() {
  8. use crate::header::unistd;
  9. //TODO: create test files
  10. assert_eq!(Sys::access(c_str!("not a file!"), unistd::F_OK), !0);
  11. assert_eq!(Sys::access(c_str!("README.md"), unistd::F_OK), 0);
  12. assert_eq!(Sys::access(c_str!("README.md"), unistd::R_OK), 0);
  13. assert_eq!(Sys::access(c_str!("README.md"), unistd::W_OK), 0);
  14. assert_eq!(Sys::access(c_str!("README.md"), unistd::X_OK), !0);
  15. }
  16. #[test]
  17. fn brk() {
  18. use core::ptr;
  19. let current = Sys::brk(ptr::null_mut());
  20. assert_ne!(current, ptr::null_mut());
  21. let request = unsafe { current.add(4096) };
  22. let next = Sys::brk(request);
  23. assert_eq!(next, request);
  24. }
  25. #[test]
  26. fn chdir() {
  27. //TODO: create test files
  28. assert_eq!(Sys::chdir(c_str!("src")), 0);
  29. }
  30. //TODO: chmod
  31. //TODO: chown
  32. #[test]
  33. fn clock_gettime() {
  34. use crate::header::time;
  35. {
  36. let mut timespec = time::timespec {
  37. tv_sec: -1,
  38. tv_nsec: -1,
  39. };
  40. assert_eq!(Sys::clock_gettime(time::CLOCK_REALTIME, &mut timespec), 0);
  41. assert_ne!(timespec.tv_sec, -1);
  42. assert_ne!(timespec.tv_nsec, -1);
  43. }
  44. {
  45. let mut timespec = time::timespec {
  46. tv_sec: -1,
  47. tv_nsec: -1,
  48. };
  49. assert_eq!(Sys::clock_gettime(time::CLOCK_MONOTONIC, &mut timespec), 0);
  50. assert_ne!(timespec.tv_sec, -1);
  51. assert_ne!(timespec.tv_nsec, -1);
  52. }
  53. }
  54. //TDOO: everything else
  55. #[test]
  56. fn getrandom() {
  57. use crate::platform::types::ssize_t;
  58. let mut arrays = [[0; 32]; 32];
  59. for i in 1..arrays.len() {
  60. assert_eq!(
  61. Sys::getrandom(&mut arrays[i], 0),
  62. arrays[i].len() as ssize_t
  63. );
  64. for j in 0..arrays.len() {
  65. if i != j {
  66. assert_ne!(&arrays[i], &arrays[j]);
  67. }
  68. }
  69. }
  70. }