Skip to content

Commit df67942

Browse files
committed
libstd: Tests for {peer, socket}_name.
1 parent 037bf37 commit df67942

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

src/libstd/rt/io/net/tcp.rs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,4 +568,61 @@ mod test {
568568
}
569569
}
570570

571+
#[cfg(test)]
572+
fn socket_name(addr: IpAddr) {
573+
do run_in_newsched_task {
574+
do spawntask_immediately {
575+
let listener = TcpListener::bind(addr);
576+
577+
assert!(listener.is_some());
578+
let mut listener = listener.unwrap();
579+
580+
// Make sure socket_name gives
581+
// us the socket we binded to.
582+
let so_name = listener.socket_name();
583+
assert!(so_name.is_some());
584+
assert_eq!(addr, so_name.unwrap());
585+
586+
}
587+
}
588+
}
589+
590+
#[cfg(test)]
591+
fn peer_name(addr: IpAddr) {
592+
do run_in_newsched_task {
593+
do spawntask_immediately {
594+
let mut listener = TcpListener::bind(addr);
595+
596+
listener.accept();
597+
}
598+
599+
do spawntask_immediately {
600+
let stream = TcpStream::connect(addr);
601+
602+
assert!(stream.is_some());
603+
let mut stream = stream.unwrap();
604+
605+
// Make sure peer_name gives us the
606+
// address/port of the peer we've
607+
// connected to.
608+
let peer_name = stream.peer_name();
609+
assert!(peer_name.is_some());
610+
assert_eq!(addr, peer_name.unwrap());
611+
}
612+
}
613+
}
614+
615+
#[test]
616+
fn socket_and_peer_name_ip4() {
617+
peer_name(next_test_ip4());
618+
socket_name(next_test_ip4());
619+
}
620+
621+
#[test]
622+
fn socket_and_peer_name_ip6() {
623+
// XXX: peer name is not consistent
624+
//peer_name(next_test_ip6());
625+
socket_name(next_test_ip6());
626+
}
627+
571628
}

src/libstd/rt/io/net/udp.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,4 +263,33 @@ mod test {
263263
}
264264
}
265265
}
266+
267+
#[cfg(test)]
268+
fn socket_name(addr: IpAddr) {
269+
do run_in_newsched_task {
270+
do spawntask_immediately {
271+
let server = UdpSocket::bind(addr);
272+
273+
assert!(server.is_some());
274+
let mut server = server.unwrap();
275+
276+
// Make sure socket_name gives
277+
// us the socket we binded to.
278+
let so_name = server.socket_name();
279+
assert!(so_name.is_some());
280+
assert_eq!(addr, so_name.unwrap());
281+
282+
}
283+
}
284+
}
285+
286+
#[test]
287+
fn socket_name_ip4() {
288+
socket_name(next_test_ip4());
289+
}
290+
291+
#[test]
292+
fn socket_name_ip6() {
293+
socket_name(next_test_ip6());
294+
}
266295
}

0 commit comments

Comments
 (0)