Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: tests/standalone/io/socket_ipv6_test.dart

Issue 2566273007: Fix flaky timeouts of socket_ipv6_test. (Closed)
Patch Set: last missing return Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tests/standalone/io/test_utils.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:io'; 5 import 'dart:io';
6 import 'dart:async';
6 7
7 import "package:async_helper/async_helper.dart"; 8 import "package:async_helper/async_helper.dart";
8 import "package:expect/expect.dart"; 9 import "package:expect/expect.dart";
10 import "test_utils.dart" show retry;
9 11
10 const ANY = InternetAddressType.ANY; 12 const ANY = InternetAddressType.ANY;
11 13
12 void testIPv6toIPv6() { 14 Future testIPv6toIPv6() {
13 asyncStart(); 15 asyncStart();
14 InternetAddress.lookup("::0", type: ANY).then((serverAddr) { 16 return InternetAddress.lookup("::0", type: ANY).then((serverAddr) {
15 InternetAddress.lookup("::1", type: ANY).then((clientAddr) { 17 return InternetAddress.lookup("::1", type: ANY).then((clientAddr) {
16 ServerSocket.bind(serverAddr.first, 0).then((server) { 18 return ServerSocket.bind(serverAddr.first, 0).then((server) {
17 Expect.equals('::0', server.address.host); 19 Expect.equals('::0', server.address.host);
18 Expect.equals('::', server.address.address); 20 Expect.equals('::', server.address.address);
19 server.listen((socket) { 21 server.listen((socket) {
20 socket.destroy(); 22 socket.destroy();
21 server.close(); 23 server.close();
22 asyncEnd(); 24 asyncEnd();
23 }); 25 });
24 Socket.connect(clientAddr.first, server.port).then((socket) { 26 return Socket.connect(clientAddr.first, server.port).then((socket) {
25 socket.destroy(); 27 socket.destroy();
26 }); 28 });
27 }); 29 });
28 }); 30 });
29 }); 31 });
30 } 32 }
31 33
32 void testIPv4toIPv6() { 34 Future testIPv4toIPv6() {
33 asyncStart(); 35 asyncStart();
34 InternetAddress.lookup("::0", type: ANY).then((serverAddr) { 36 return InternetAddress.lookup("::0", type: ANY).then((serverAddr) {
35 ServerSocket.bind(serverAddr.first, 0).then((server) { 37 return ServerSocket.bind(serverAddr.first, 0).then((server) {
36 Expect.equals('::0', server.address.host); 38 Expect.equals('::0', server.address.host);
37 Expect.equals('::', server.address.address); 39 Expect.equals('::', server.address.address);
38 server.listen((socket) { 40 server.listen((socket) {
39 socket.destroy(); 41 socket.destroy();
40 server.close(); 42 server.close();
41 asyncEnd(); 43 asyncEnd();
42 }); 44 });
43 Socket.connect("127.0.0.1", server.port).then((socket) { 45 return Socket.connect("127.0.0.1", server.port).then((socket) {
44 socket.destroy(); 46 socket.destroy();
45 }); 47 });
46 }); 48 });
47 }); 49 });
48 } 50 }
49 51
50 void testIPv6toIPv4() { 52 Future testIPv6toIPv4() {
51 asyncStart(); 53 asyncStart();
52 InternetAddress.lookup("::1", type: ANY).then((clientAddr) { 54 return InternetAddress.lookup("::1", type: ANY).then((clientAddr) {
53 ServerSocket.bind("127.0.0.1", 0).then((server) { 55 return ServerSocket.bind("127.0.0.1", 0).then((server) {
54 Expect.equals('127.0.0.1', server.address.host); 56 Expect.equals('127.0.0.1', server.address.host);
55 Expect.equals('127.0.0.1', server.address.address); 57 Expect.equals('127.0.0.1', server.address.address);
56 server.listen((socket) { 58 server.listen((socket) {
57 throw "Unexpected socket"; 59 throw "Unexpected socket";
58 }); 60 });
59 Socket.connect(clientAddr.first, server.port).catchError((e) { 61 return Socket.connect(clientAddr.first, server.port).then((socket) {
62 socket.destroy();
63 throw "Unexpected connect";
64 }, onError: (e) {}).whenComplete(() {
60 server.close(); 65 server.close();
61 asyncEnd(); 66 asyncEnd();
62 }); 67 });
63 }); 68 });
64 }); 69 });
65 } 70 }
66 71
67 void testIPv4toIPv4() { 72 Future testIPv4toIPv4() {
68 asyncStart(); 73 asyncStart();
69 ServerSocket.bind("127.0.0.1", 0).then((server) { 74 return ServerSocket.bind("127.0.0.1", 0).then((server) {
70 Expect.equals('127.0.0.1', server.address.host); 75 Expect.equals('127.0.0.1', server.address.host);
71 Expect.equals('127.0.0.1', server.address.address); 76 Expect.equals('127.0.0.1', server.address.address);
72 server.listen((socket) { 77 server.listen((socket) {
73 socket.destroy(); 78 socket.destroy();
74 server.close(); 79 server.close();
75 asyncEnd(); 80 asyncEnd();
76 }); 81 });
77 Socket.connect("127.0.0.1", server.port).then((socket) { 82 return Socket.connect("127.0.0.1", server.port).then((socket) {
78 socket.destroy(); 83 socket.destroy();
79 }); 84 });
80 }); 85 });
81 } 86 }
82 87
83 void testIPv6Lookup() { 88 Future testIPv6Lookup() {
84 asyncStart(); 89 asyncStart();
85 InternetAddress.lookup("::0", type: ANY).then((list) { 90 return InternetAddress.lookup("::0", type: ANY).then((list) {
86 if (list.length < 0) throw "no address"; 91 if (list.length < 0) throw "no address";
87 for (var entry in list) { 92 for (var entry in list) {
88 if (entry.type != InternetAddressType.IP_V6) { 93 if (entry.type != InternetAddressType.IP_V6) {
89 throw "Wrong IP type"; 94 throw "Wrong IP type";
90 } 95 }
91 } 96 }
92 asyncEnd(); 97 asyncEnd();
93 }); 98 });
94 } 99 }
95 100
96 void testIPv4Lookup() { 101 Future testIPv4Lookup() {
97 asyncStart(); 102 asyncStart();
98 InternetAddress.lookup("127.0.0.1").then((list) { 103 return InternetAddress.lookup("127.0.0.1").then((list) {
99 if (list.length < 0) throw "no address"; 104 if (list.length < 0) throw "no address";
100 for (var entry in list) { 105 for (var entry in list) {
101 if (entry.type != InternetAddressType.IP_V4) { 106 if (entry.type != InternetAddressType.IP_V4) {
102 throw "Wrong IP type"; 107 throw "Wrong IP type";
103 } 108 }
104 } 109 }
105 asyncEnd(); 110 asyncEnd();
106 }); 111 });
107 } 112 }
108 113
109 void testIPv4toIPv6_IPV6Only() { 114 Future testIPv4toIPv6_IPV6Only() {
110 asyncStart(); 115 asyncStart();
111 InternetAddress.lookup("::0", type: ANY) 116 return InternetAddress.lookup("::0", type: ANY).then((serverAddr) {
112 .then((serverAddr) { 117 return ServerSocket.bind(serverAddr.first, 0, v6Only: true).then((server) {
113 ServerSocket.bind(serverAddr.first, 0, v6Only: true) 118 server.listen((socket) {
114 .then((server) { 119 throw "Unexpected socket";
115 server.listen((socket) {
116 throw "Unexpected socket";
117 });
118 Socket.connect("127.0.0.1", server.port).catchError((error) {
119 server.close();
120 asyncEnd();
121 });
122 });
123 }); 120 });
121 return Socket.connect("127.0.0.1", server.port).then((socket) {
122 socket.destroy();
123 throw "Unexpected connect";
124 }, onError: (e) {}).whenComplete(() {
125 server.close();
126 asyncEnd();
127 });
128 });
129 });
124 } 130 }
125 131
126 void main() { 132 void main() {
127 testIPv6toIPv6(); /// none: ok 133 testIPv6toIPv6(); /// 01: ok
128 testIPv4toIPv6(); /// 01: ok 134 testIPv4toIPv6(); /// 02: ok
129 testIPv6toIPv4(); /// 02: ok 135 testIPv4toIPv4(); /// 03: ok
130 testIPv4toIPv4(); /// 03: ok 136 testIPv6Lookup(); /// 04: ok
131 testIPv6Lookup(); /// 04: ok 137 testIPv4Lookup(); /// 05: ok
132 testIPv4Lookup(); /// 05: ok
133 138
134 testIPv4toIPv6_IPV6Only(); /// 06: ok 139 retry(testIPv6toIPv4); /// 06: ok
140 retry(testIPv4toIPv6_IPV6Only); /// 07: ok
135 } 141 }
OLDNEW
« no previous file with comments | « no previous file | tests/standalone/io/test_utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698