3 use std
::net
::{TcpStream, IpAddr, Ipv4Addr, Ipv6Addr}
;
4 use std
::io
::prelude
::*;
10 ($e
:expr
) => (match $e
{
12 Err(e
) => panic
!("{} failed with: {}", stringify
!($e
), e
),
17 fn smoke_build_listener() {
18 let b
= t
!(TcpBuilder
::new_v4());
19 t
!(b
.bind("127.0.0.1:0"));
21 let addr
= t
!(b
.local_addr());
22 assert_eq
!(addr
.ip(), IpAddr
::V4(Ipv4Addr
::new(127, 0, 0, 1)));
24 let listener
= t
!(b
.listen(200));
26 let t
= thread
::spawn(move || {
27 let mut s
= t
!(listener
.accept()).0;
30 assert_eq
!(b
, [1, 2, 3, 0]);
33 let mut stream
= t
!(TcpStream
::connect(&addr
));
34 t
!(stream
.write(&[1,2,3]));
39 fn smoke_build_listener_v6() {
40 let b
= t
!(TcpBuilder
::new_v6());
43 let addr
= t
!(b
.local_addr());
44 assert_eq
!(addr
.ip(), IpAddr
::V6(Ipv6Addr
::new(0, 0, 0, 0, 0, 0, 0, 1)));