about summary refs log tree commit diff
path: root/src/libstd/net
diff options
context:
space:
mode:
authorTyler Julian <tjulian@uber.com>2017-01-10 22:06:17 -0800
committerTyler Julian <tjulian@uber.com>2017-01-10 22:06:17 -0800
commit30380137f87f1098c0ca6e33bafd9c78dd19c0a8 (patch)
treefd451882735886d1c53050206e34723777eec45d /src/libstd/net
parent0500fbf6ba83b9a6634a5e0580963b44683b44c6 (diff)
downloadrust-30380137f87f1098c0ca6e33bafd9c78dd19c0a8.tar.gz
rust-30380137f87f1098c0ca6e33bafd9c78dd19c0a8.zip
std/net/udp: Improve set_nonblocking test
Diffstat (limited to 'src/libstd/net')
-rw-r--r--src/libstd/net/udp.rs20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/libstd/net/udp.rs b/src/libstd/net/udp.rs
index f8a5ec0b379..a9a19aee5d1 100644
--- a/src/libstd/net/udp.rs
+++ b/src/libstd/net/udp.rs
@@ -883,11 +883,23 @@ mod tests {
 
     #[test]
     fn set_nonblocking() {
-        let addr = next_test_ip4();
+        each_ip(&mut |addr, _| {
+            let socket = t!(UdpSocket::bind(&addr));
 
-        let stream = t!(UdpSocket::bind(&addr));
+            t!(socket.set_nonblocking(true));
+            t!(socket.set_nonblocking(false));
+
+            t!(socket.connect(addr));
 
-        t!(stream.set_nonblocking(true));
-        t!(stream.set_nonblocking(false));
+            t!(socket.set_nonblocking(false));
+            t!(socket.set_nonblocking(true));
+
+            let mut buf = [0];
+            match socket.recv(&mut buf) {
+                Ok(_) => panic!("expected error"),
+                Err(ref e) if e.kind() == ErrorKind::WouldBlock => {}
+                Err(e) => panic!("unexpected error {}", e),
+            }
+        })
     }
 }