1 #![warn(rust_2018_idioms)] 2 #![cfg(feature = "full")] 3 4 use tokio::net::TcpSocket; 5 use tokio_test::assert_ok; 6 7 #[tokio::test] basic_usage_v4()8async fn basic_usage_v4() { 9 // Create server 10 let addr = assert_ok!("127.0.0.1:0".parse()); 11 let srv = assert_ok!(TcpSocket::new_v4()); 12 assert_ok!(srv.bind(addr)); 13 14 let srv = assert_ok!(srv.listen(128)); 15 16 // Create client & connect 17 let addr = srv.local_addr().unwrap(); 18 let cli = assert_ok!(TcpSocket::new_v4()); 19 let _cli = assert_ok!(cli.connect(addr).await); 20 21 // Accept 22 let _ = assert_ok!(srv.accept().await); 23 } 24 25 #[tokio::test] basic_usage_v6()26async fn basic_usage_v6() { 27 // Create server 28 let addr = assert_ok!("[::1]:0".parse()); 29 let srv = assert_ok!(TcpSocket::new_v6()); 30 assert_ok!(srv.bind(addr)); 31 32 let srv = assert_ok!(srv.listen(128)); 33 34 // Create client & connect 35 let addr = srv.local_addr().unwrap(); 36 let cli = assert_ok!(TcpSocket::new_v6()); 37 let _cli = assert_ok!(cli.connect(addr).await); 38 39 // Accept 40 let _ = assert_ok!(srv.accept().await); 41 } 42 43 #[tokio::test] bind_before_connect()44async fn bind_before_connect() { 45 // Create server 46 let any_addr = assert_ok!("127.0.0.1:0".parse()); 47 let srv = assert_ok!(TcpSocket::new_v4()); 48 assert_ok!(srv.bind(any_addr)); 49 50 let srv = assert_ok!(srv.listen(128)); 51 52 // Create client & connect 53 let addr = srv.local_addr().unwrap(); 54 let cli = assert_ok!(TcpSocket::new_v4()); 55 assert_ok!(cli.bind(any_addr)); 56 let _cli = assert_ok!(cli.connect(addr).await); 57 58 // Accept 59 let _ = assert_ok!(srv.accept().await); 60 } 61