about summary refs log tree commit diff
path: root/src/libstd/rt
diff options
context:
space:
mode:
authorLuqman Aden <me@luqman.ca>2013-07-26 05:02:53 -0400
committerLuqman Aden <me@luqman.ca>2013-07-26 05:02:53 -0400
commitdf67942dccc33379051e66f075615e579f3bdb49 (patch)
tree5d441f9dbcc95bcd03ef4f6647d8cc7878307ee0 /src/libstd/rt
parent037bf3757cf54e38544c494657ac88bc002b945c (diff)
downloadrust-df67942dccc33379051e66f075615e579f3bdb49.tar.gz
rust-df67942dccc33379051e66f075615e579f3bdb49.zip
libstd: Tests for {peer, socket}_name.
Diffstat (limited to 'src/libstd/rt')
-rw-r--r--src/libstd/rt/io/net/tcp.rs57
-rw-r--r--src/libstd/rt/io/net/udp.rs29
2 files changed, 86 insertions, 0 deletions
diff --git a/src/libstd/rt/io/net/tcp.rs b/src/libstd/rt/io/net/tcp.rs
index 0107d30519e..c997373bf9d 100644
--- a/src/libstd/rt/io/net/tcp.rs
+++ b/src/libstd/rt/io/net/tcp.rs
@@ -568,4 +568,61 @@ mod test {
         }
     }
 
+    #[cfg(test)]
+    fn socket_name(addr: IpAddr) {
+        do run_in_newsched_task {
+            do spawntask_immediately {
+                let listener = TcpListener::bind(addr);
+
+                assert!(listener.is_some());
+                let mut listener = listener.unwrap();
+
+                // Make sure socket_name gives
+                // us the socket we binded to.
+                let so_name = listener.socket_name();
+                assert!(so_name.is_some());
+                assert_eq!(addr, so_name.unwrap());
+
+            }
+        }
+    }
+
+    #[cfg(test)]
+    fn peer_name(addr: IpAddr) {
+        do run_in_newsched_task {
+            do spawntask_immediately {
+                let mut listener = TcpListener::bind(addr);
+
+                listener.accept();
+            }
+
+            do spawntask_immediately {
+                let stream = TcpStream::connect(addr);
+
+                assert!(stream.is_some());
+                let mut stream = stream.unwrap();
+
+                // Make sure peer_name gives us the
+                // address/port of the peer we've
+                // connected to.
+                let peer_name = stream.peer_name();
+                assert!(peer_name.is_some());
+                assert_eq!(addr, peer_name.unwrap());
+            }
+        }
+    }
+
+    #[test]
+    fn socket_and_peer_name_ip4() {
+        peer_name(next_test_ip4());
+        socket_name(next_test_ip4());
+    }
+
+    #[test]
+    fn socket_and_peer_name_ip6() {
+        // XXX: peer name is not consistent
+        //peer_name(next_test_ip6());
+        socket_name(next_test_ip6());
+    }
+
 }
diff --git a/src/libstd/rt/io/net/udp.rs b/src/libstd/rt/io/net/udp.rs
index d78adbbbe4d..8e654de47f0 100644
--- a/src/libstd/rt/io/net/udp.rs
+++ b/src/libstd/rt/io/net/udp.rs
@@ -263,4 +263,33 @@ mod test {
             }
         }
     }
+
+    #[cfg(test)]
+    fn socket_name(addr: IpAddr) {
+        do run_in_newsched_task {
+            do spawntask_immediately {
+                let server = UdpSocket::bind(addr);
+
+                assert!(server.is_some());
+                let mut server = server.unwrap();
+
+                // Make sure socket_name gives
+                // us the socket we binded to.
+                let so_name = server.socket_name();
+                assert!(so_name.is_some());
+                assert_eq!(addr, so_name.unwrap());
+
+            }
+        }
+    }
+
+    #[test]
+    fn socket_name_ip4() {
+        socket_name(next_test_ip4());
+    }
+
+    #[test]
+    fn socket_name_ip6() {
+        socket_name(next_test_ip6());
+    }
 }