• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #[cfg(any(target_os = "android", target_os = "linux"))]
2 #[test]
test_eventfd()3 fn test_eventfd() {
4     use rustix::io::{eventfd, read, write, EventfdFlags};
5     use std::mem::size_of;
6     use std::thread;
7 
8     let efd = eventfd(0, EventfdFlags::CLOEXEC).unwrap();
9 
10     let child = thread::spawn(move || {
11         for u in [1_u64, 3, 6, 11, 5000].iter() {
12             assert_eq!(write(&efd, &u.to_ne_bytes()).unwrap(), size_of::<u64>());
13         }
14         efd
15     });
16 
17     let efd = child.join().unwrap();
18 
19     let mut bytes = [0_u8; size_of::<u64>()];
20     let s = read(&efd, &mut bytes).unwrap();
21     assert_eq!(s, bytes.len());
22     let u = u64::from_ne_bytes(bytes);
23     assert_eq!(u, 5021);
24 }
25