| 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..6b919579c6681ce2fd23c7f731cede218a6c903f 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) {
|
| + return 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) {
|
| @@ -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
|
| }
|
|
|