diff options
-rw-r--r-- | test/sys/mod.rs | 1 | ||||
-rw-r--r-- | test/sys/test_sockopt.rs | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/test/sys/mod.rs b/test/sys/mod.rs index fd4e984d..a5f3351d 100644 --- a/test/sys/mod.rs +++ b/test/sys/mod.rs @@ -1,4 +1,5 @@ mod test_socket; +mod test_sockopt; mod test_termios; mod test_ioctl; mod test_wait; diff --git a/test/sys/test_sockopt.rs b/test/sys/test_sockopt.rs new file mode 100644 index 00000000..92769e52 --- /dev/null +++ b/test/sys/test_sockopt.rs @@ -0,0 +1,14 @@ +use rand::{thread_rng, Rng}; +use nix::sys::socket::{socket, sockopt, getsockopt, setsockopt, AddressFamily, SockType, SockFlag, SockLevel}; + +#[test] +fn test_so_buf() { + let fd = socket(AddressFamily::Inet, SockType::Datagram, SockFlag::empty(), SockLevel::Udp as i32).unwrap(); + let bufsize: usize = thread_rng().gen_range(4096, 131072); + setsockopt(fd, sockopt::SndBuf, &bufsize).unwrap(); + let actual = getsockopt(fd, sockopt::SndBuf).unwrap(); + assert!(actual >= bufsize); + setsockopt(fd, sockopt::RcvBuf, &bufsize).unwrap(); + let actual = getsockopt(fd, sockopt::RcvBuf).unwrap(); + assert!(actual >= bufsize); +} |