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..1abfe99d4a4e0b6c2c9d49be644c6e4fe1c25e8a 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) { |
| + return InternetAddress.lookup("::0", type: ANY).then((serverAddr) { |
| InternetAddress.lookup("::1", type: ANY).then((clientAddr) { |
| - ServerSocket.bind(serverAddr.first, 0).then((server) { |
| + ServerSocket.bind(serverAddr.first, 0).then((server) { |
|
kustermann
2016/12/13 22:22:38
InternetAddress.lookup()
ServerSocket.bind()
Socke
Florian Schneider
2016/12/13 23:03:19
Ok, but async/await is not needed for correctness.
|
| Expect.equals('::0', server.address.host); |
| Expect.equals('::', server.address.address); |
| server.listen((socket) { |
| @@ -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) { |
| + ServerSocket.bind(serverAddr.first, 0).then((server) { |
| Expect.equals('::0', server.address.host); |
| Expect.equals('::', server.address.address); |
| server.listen((socket) { |
| @@ -47,16 +49,19 @@ void testIPv4toIPv6() { |
| }); |
| } |
| -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) { |
| + 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) { |
| + 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) { |
| @@ -80,9 +85,9 @@ void testIPv4toIPv4() { |
| }); |
| } |
| -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) { |
| + ServerSocket.bind(serverAddr.first, 0, v6Only: true).then((server) { |
| + server.listen((socket) { |
| + throw "Unexpected socket"; |
| + }); |
| + Socket.connect("127.0.0.1", server.port).then((socket) { |
| + socket.destroy(); |
| + throw "Unexpected connect"; |
| + }, onError: (e) {}).whenComplete(() { |
| + server.close(); |
| + asyncEnd(); |
| }); |
| + }); |
| + }); |
| } |
| void main() { |
|
kustermann
2016/12/13 22:22:38
Could use
main() async {
await test...();
}
Florian Schneider
2016/12/13 23:03:19
Sure, but it seems outside the scope of this CL.
|
| - 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 |
| } |