Chromium Code Reviews| Index: tests/standalone/io/socket_ipv6_test.dart |
| diff --git a/tests/standalone/io/socket_ipv6_test.dart b/tests/standalone/io/socket_ipv6_test.dart |
| index 54f8a5018b1ea478065c0653c4e44b94e6f4ffa2..0048f811ce5519ae8d0b9185e498b8adc62be0b6 100644 |
| --- a/tests/standalone/io/socket_ipv6_test.dart |
| +++ b/tests/standalone/io/socket_ipv6_test.dart |
| @@ -3,17 +3,19 @@ |
| // BSD-style license that can be found in the LICENSE file. |
| import 'dart:io'; |
| +import 'dart:async'; |
| import "package:async_helper/async_helper.dart"; |
| import "package:expect/expect.dart"; |
| +import "test_utils.dart" show retry; |
| const ANY = InternetAddressType.ANY; |
| -void testIPv6toIPv6() { |
| +Future testIPv6toIPv6() { |
| asyncStart(); |
| - InternetAddress.lookup("::0", type: ANY).then((serverAddr) { |
| - InternetAddress.lookup("::1", type: ANY).then((clientAddr) { |
| - ServerSocket.bind(serverAddr.first, 0).then((server) { |
| + return InternetAddress.lookup("::0", type: ANY).then((serverAddr) { |
| + return InternetAddress.lookup("::1", type: ANY).then((clientAddr) { |
| + return ServerSocket.bind(serverAddr.first, 0).then((server) { |
| Expect.equals('::0', server.address.host); |
| Expect.equals('::', server.address.address); |
| server.listen((socket) { |
| @@ -21,7 +23,7 @@ void testIPv6toIPv6() { |
| server.close(); |
| asyncEnd(); |
| }); |
| - Socket.connect(clientAddr.first, server.port).then((socket) { |
| + return Socket.connect(clientAddr.first, server.port).then((socket) { |
| socket.destroy(); |
| }); |
| }); |
| @@ -29,10 +31,10 @@ void testIPv6toIPv6() { |
| }); |
| } |
| -void testIPv4toIPv6() { |
| +Future testIPv4toIPv6() { |
| asyncStart(); |
| - InternetAddress.lookup("::0", type: ANY).then((serverAddr) { |
| - ServerSocket.bind(serverAddr.first, 0).then((server) { |
| + return InternetAddress.lookup("::0", type: ANY).then((serverAddr) { |
| + return ServerSocket.bind(serverAddr.first, 0).then((server) { |
| Expect.equals('::0', server.address.host); |
| Expect.equals('::', server.address.address); |
| server.listen((socket) { |
| @@ -40,23 +42,26 @@ void testIPv4toIPv6() { |
| server.close(); |
| asyncEnd(); |
| }); |
| - Socket.connect("127.0.0.1", server.port).then((socket) { |
| + return Socket.connect("127.0.0.1", server.port).then((socket) { |
| socket.destroy(); |
| }); |
| }); |
| }); |
| } |
| -void testIPv6toIPv4() { |
| +Future testIPv6toIPv4() { |
| asyncStart(); |
| - InternetAddress.lookup("::1", type: ANY).then((clientAddr) { |
| - ServerSocket.bind("127.0.0.1", 0).then((server) { |
| + return InternetAddress.lookup("::1", type: ANY).then((clientAddr) { |
| + return ServerSocket.bind("127.0.0.1", 0).then((server) { |
| Expect.equals('127.0.0.1', server.address.host); |
| Expect.equals('127.0.0.1', server.address.address); |
| server.listen((socket) { |
| throw "Unexpected socket"; |
| }); |
| - Socket.connect(clientAddr.first, server.port).catchError((e) { |
| + Socket.connect(clientAddr.first, server.port).then((socket) { |
|
kustermann
2016/12/13 23:10:57
return
Florian Schneider
2016/12/13 23:30:29
Done.
|
| + socket.destroy(); |
| + throw "Unexpected connect"; |
| + }, onError: (e) {}).whenComplete(() { |
| server.close(); |
| asyncEnd(); |
| }); |
| @@ -64,9 +69,9 @@ void testIPv6toIPv4() { |
| }); |
| } |
| -void testIPv4toIPv4() { |
| +Future testIPv4toIPv4() { |
| asyncStart(); |
| - ServerSocket.bind("127.0.0.1", 0).then((server) { |
| + return ServerSocket.bind("127.0.0.1", 0).then((server) { |
| Expect.equals('127.0.0.1', server.address.host); |
| Expect.equals('127.0.0.1', server.address.address); |
| server.listen((socket) { |
| @@ -74,15 +79,15 @@ void testIPv4toIPv4() { |
| server.close(); |
| asyncEnd(); |
| }); |
| - Socket.connect("127.0.0.1", server.port).then((socket) { |
| + return Socket.connect("127.0.0.1", server.port).then((socket) { |
| socket.destroy(); |
| }); |
| }); |
| } |
| -void testIPv6Lookup() { |
| +Future testIPv6Lookup() { |
| asyncStart(); |
| - InternetAddress.lookup("::0", type: ANY).then((list) { |
| + return InternetAddress.lookup("::0", type: ANY).then((list) { |
| if (list.length < 0) throw "no address"; |
| for (var entry in list) { |
| if (entry.type != InternetAddressType.IP_V6) { |
| @@ -93,9 +98,9 @@ void testIPv6Lookup() { |
| }); |
| } |
| -void testIPv4Lookup() { |
| +Future testIPv4Lookup() { |
| asyncStart(); |
| - InternetAddress.lookup("127.0.0.1").then((list) { |
| + return InternetAddress.lookup("127.0.0.1").then((list) { |
| if (list.length < 0) throw "no address"; |
| for (var entry in list) { |
| if (entry.type != InternetAddressType.IP_V4) { |
| @@ -106,30 +111,31 @@ void testIPv4Lookup() { |
| }); |
| } |
| -void testIPv4toIPv6_IPV6Only() { |
| +Future testIPv4toIPv6_IPV6Only() { |
| asyncStart(); |
| - InternetAddress.lookup("::0", type: ANY) |
| - .then((serverAddr) { |
| - ServerSocket.bind(serverAddr.first, 0, v6Only: true) |
| - .then((server) { |
| - server.listen((socket) { |
| - throw "Unexpected socket"; |
| - }); |
| - Socket.connect("127.0.0.1", server.port).catchError((error) { |
| - server.close(); |
| - asyncEnd(); |
| - }); |
| - }); |
| + return InternetAddress.lookup("::0", type: ANY).then((serverAddr) { |
| + return ServerSocket.bind(serverAddr.first, 0, v6Only: true).then((server) { |
| + server.listen((socket) { |
| + throw "Unexpected socket"; |
| }); |
| + return Socket.connect("127.0.0.1", server.port).then((socket) { |
| + socket.destroy(); |
| + throw "Unexpected connect"; |
| + }, onError: (e) {}).whenComplete(() { |
| + server.close(); |
| + asyncEnd(); |
| + }); |
| + }); |
| + }); |
| } |
| void main() { |
| - testIPv6toIPv6(); /// none: ok |
| - testIPv4toIPv6(); /// 01: ok |
| - testIPv6toIPv4(); /// 02: ok |
| - testIPv4toIPv4(); /// 03: ok |
| - testIPv6Lookup(); /// 04: ok |
| - testIPv4Lookup(); /// 05: ok |
| + testIPv6toIPv6(); /// 01: ok |
| + testIPv4toIPv6(); /// 02: ok |
| + testIPv4toIPv4(); /// 03: ok |
| + testIPv6Lookup(); /// 04: ok |
| + testIPv4Lookup(); /// 05: ok |
| - testIPv4toIPv6_IPV6Only(); /// 06: ok |
| + retry(testIPv6toIPv4); /// 06: ok |
| + retry(testIPv4toIPv6_IPV6Only); /// 07: ok |
| } |