@@ -1249,6 +1249,10 @@ mod test {
1249
1249
impl_gl_tcp_ipv4_server_and_client ( ) ;
1250
1250
}
1251
1251
#[ test]
1252
+ fn test_gl_tcp_get_peer_name ( ) unsafe {
1253
+ impl_gl_tcp_ipv4_get_peer_name ( ) ;
1254
+ }
1255
+ #[ test]
1252
1256
fn test_gl_tcp_ipv4_client_error_connection_refused ( ) unsafe {
1253
1257
impl_gl_tcp_ipv4_client_error_connection_refused ( ) ;
1254
1258
}
@@ -1275,6 +1279,11 @@ mod test {
1275
1279
}
1276
1280
#[ test]
1277
1281
#[ ignore( cfg( target_os = "linux" ) ) ]
1282
+ fn test_gl_tcp_get_peer_name ( ) unsafe {
1283
+ impl_gl_tcp_ipv4_get_peer_name ( ) ;
1284
+ }
1285
+ #[ test]
1286
+ #[ ignore( cfg( target_os = "linux" ) ) ]
1278
1287
fn test_gl_tcp_ipv4_client_error_connection_refused ( ) unsafe {
1279
1288
impl_gl_tcp_ipv4_client_error_connection_refused ( ) ;
1280
1289
}
@@ -1342,6 +1351,52 @@ mod test {
1342
1351
assert str:: contains ( actual_req, expected_req) ;
1343
1352
assert str:: contains ( actual_resp, expected_resp) ;
1344
1353
}
1354
+ fn impl_gl_tcp_ipv4_get_peer_name ( ) {
1355
+ let hl_loop = uv:: global_loop:: get ( ) ;
1356
+ let server_ip = ~"127.0 . 0 . 1 ";
1357
+ let server_port = 8889 u;
1358
+ let expected_resp = ~"pong";
1359
+
1360
+ let server_result_po = core:: comm:: Port :: < ~str > ( ) ;
1361
+ let server_result_ch = core:: comm:: Chan ( & server_result_po) ;
1362
+
1363
+ let cont_po = core:: comm:: Port :: < ( ) > ( ) ;
1364
+ let cont_ch = core:: comm:: Chan ( & cont_po) ;
1365
+ // server
1366
+ do task:: spawn_sched ( task:: ManualThreads ( 1 u) ) {
1367
+ let actual_req = do comm:: listen |server_ch| {
1368
+ run_tcp_test_server (
1369
+ server_ip,
1370
+ server_port,
1371
+ expected_resp,
1372
+ server_ch,
1373
+ cont_ch,
1374
+ hl_loop)
1375
+ } ;
1376
+ server_result_ch. send ( actual_req) ;
1377
+ } ;
1378
+ core:: comm:: recv ( cont_po) ;
1379
+ // client
1380
+ log ( debug, ~"server started, firing up client..");
1381
+ do core::comm::listen |client_ch| {
1382
+ let server_ip_addr = ip::v4::parse_addr(server_ip);
1383
+ let iotask = uv::global_loop::get();
1384
+ let connect_result = connect(move server_ip_addr, server_port,
1385
+ iotask);
1386
+
1387
+ let sock = result::unwrap(move connect_result);
1388
+
1389
+ // This is what we are actually testing!
1390
+ assert net::ip::format_addr(&sock.getpeername()) == ~" 127 . 0 . 0 . 1 ";
1391
+ assert net :: ip:: get_port( & sock. getpeername ( ) ) == 8889 ;
1392
+
1393
+ // Fulfill the protocol the test server expects
1394
+ let resp_bytes = str:: to_bytes ( ~"ping") ;
1395
+ tcp_write_single ( & sock, resp_bytes) ;
1396
+ let read_result = sock. read ( 0 u) ;
1397
+ client_ch. send ( str:: from_bytes ( read_result. get ( ) ) ) ;
1398
+ } ;
1399
+ }
1345
1400
fn impl_gl_tcp_ipv4_client_error_connection_refused ( ) {
1346
1401
let hl_loop = uv:: global_loop:: get ( ) ;
1347
1402
let server_ip = ~"127.0 . 0 . 1 ";
0 commit comments