summaryrefslogtreecommitdiff
path: root/test/test_poll.rs
blob: 54fd4029c0fd8ef23b519d622d49843f3c21085b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use nix::poll::*;
use nix::unistd::{write, pipe};

#[test]
fn test_poll() {
    let (r, w) = pipe().unwrap();
    let mut fds = [PollFd {
        fd: r,
        events: POLLIN,
        revents: EventFlags::empty()
    }];

    let nfds = poll(&mut fds, 100).unwrap();
    assert_eq!(nfds, 0);
    assert!(!fds[0].revents.contains(POLLIN));

    write(w, b".").unwrap();

    let nfds = poll(&mut fds, 100).unwrap();
    assert_eq!(nfds, 1);
    assert!(fds[0].revents.contains(POLLIN));
}