From df67942dccc33379051e66f075615e579f3bdb49 Mon Sep 17 00:00:00 2001 From: Luqman Aden Date: Fri, 26 Jul 2013 05:02:53 -0400 Subject: libstd: Tests for {peer, socket}_name. --- src/libstd/rt/io/net/tcp.rs | 57 +++++++++++++++++++++++++++++++++++++++++++++ src/libstd/rt/io/net/udp.rs | 29 +++++++++++++++++++++++ 2 files changed, 86 insertions(+) (limited to 'src/libstd') 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()); + } } -- cgit 1.4.1-3-g733a5