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

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

Issue 2771453003: Format all tests. (Closed)
Patch Set: Format files Created 3 years, 8 months 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
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 // VMOptions= 5 // VMOptions=
6 // VMOptions=--short_socket_read 6 // VMOptions=--short_socket_read
7 // VMOptions=--short_socket_write 7 // VMOptions=--short_socket_write
8 // VMOptions=--short_socket_read --short_socket_write 8 // VMOptions=--short_socket_read --short_socket_write
9 9
10 import "dart:async"; 10 import "dart:async";
(...skipping 13 matching lines...) Expand all
24 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((s) { 24 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((s) {
25 Expect.isTrue(s.port > 0); 25 Expect.isTrue(s.port > 0);
26 s.close(); 26 s.close();
27 asyncEnd(); 27 asyncEnd();
28 }); 28 });
29 } 29 }
30 30
31 void testInvalidBind() { 31 void testInvalidBind() {
32 // Bind to a unknown DNS name. 32 // Bind to a unknown DNS name.
33 asyncStart(); 33 asyncStart();
34 RawServerSocket.bind("ko.faar.__hest__", 0) 34 RawServerSocket.bind("ko.faar.__hest__", 0).then((_) {
35 .then((_) { Expect.fail("Failure expected"); } ) 35 Expect.fail("Failure expected");
36 .catchError((error) { 36 }).catchError((error) {
37 Expect.isTrue(error is SocketException); 37 Expect.isTrue(error is SocketException);
38 asyncEnd(); 38 asyncEnd();
39 }); 39 });
40 40
41 // Bind to an unavaliable IP-address. 41 // Bind to an unavaliable IP-address.
42 asyncStart(); 42 asyncStart();
43 RawServerSocket.bind("8.8.8.8", 0) 43 RawServerSocket.bind("8.8.8.8", 0).then((_) {
44 .then((_) { Expect.fail("Failure expected"); } ) 44 Expect.fail("Failure expected");
45 .catchError((error) { 45 }).catchError((error) {
46 Expect.isTrue(error is SocketException); 46 Expect.isTrue(error is SocketException);
47 asyncEnd(); 47 asyncEnd();
48 }); 48 });
49 49
50 // Bind to a port already in use. 50 // Bind to a port already in use.
51 asyncStart(); 51 asyncStart();
52 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0) 52 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((s) {
53 .then((s) { 53 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, s.port).then((t) {
54 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, s.port) 54 Expect.fail("Multiple listens on same port");
55 .then((t) { 55 }).catchError((error) {
56 Expect.fail("Multiple listens on same port"); 56 Expect.isTrue(error is SocketException);
57 }) 57 s.close();
58 .catchError((error) { 58 asyncEnd();
59 Expect.isTrue(error is SocketException); 59 });
60 s.close(); 60 });
61 asyncEnd();
62 });
63 });
64 } 61 }
65 62
66 void testSimpleConnect() { 63 void testSimpleConnect() {
67 asyncStart(); 64 asyncStart();
68 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) { 65 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) {
69 server.listen((socket) { socket.close(); }); 66 server.listen((socket) {
67 socket.close();
68 });
70 RawSocket.connect("127.0.0.1", server.port).then((socket) { 69 RawSocket.connect("127.0.0.1", server.port).then((socket) {
71 server.close(); 70 server.close();
72 socket.close(); 71 socket.close();
73 asyncEnd(); 72 asyncEnd();
74 }); 73 });
75 }); 74 });
76 } 75 }
77 76
78 void testCloseOneEnd(String toClose) { 77 void testCloseOneEnd(String toClose) {
79 asyncStart(); 78 asyncStart();
80 Completer serverDone = new Completer(); 79 Completer serverDone = new Completer();
81 Completer serverEndDone = new Completer(); 80 Completer serverEndDone = new Completer();
82 Completer clientEndDone = new Completer(); 81 Completer clientEndDone = new Completer();
83 Future.wait([serverDone.future, serverEndDone.future, clientEndDone.future]) 82 Future.wait([
84 .then((_) { 83 serverDone.future,
85 asyncEnd(); 84 serverEndDone.future,
86 }); 85 clientEndDone.future
86 ]).then((_) {
87 asyncEnd();
88 });
87 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) { 89 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) {
88 server.listen((serverConnection) { 90 server.listen((serverConnection) {
89 serverConnection.listen((event) { 91 serverConnection.listen((event) {
90 if (toClose == "server" || event == RawSocketEvent.READ_CLOSED) { 92 if (toClose == "server" || event == RawSocketEvent.READ_CLOSED) {
91 serverConnection.shutdown(SocketDirection.SEND); 93 serverConnection.shutdown(SocketDirection.SEND);
92 } 94 }
93 }, 95 }, onDone: () {
94 onDone: () {
95 serverEndDone.complete(null); 96 serverEndDone.complete(null);
96 }); 97 });
97 }, 98 }, onDone: () {
98 onDone:() {
99 serverDone.complete(null); 99 serverDone.complete(null);
100 }); 100 });
101 RawSocket.connect("127.0.0.1", server.port).then((clientConnection) { 101 RawSocket.connect("127.0.0.1", server.port).then((clientConnection) {
102 clientConnection.listen((event){ 102 clientConnection.listen((event) {
103 if (toClose == "client" || event == RawSocketEvent.READ_CLOSED) { 103 if (toClose == "client" || event == RawSocketEvent.READ_CLOSED) {
104 clientConnection.shutdown(SocketDirection.SEND); 104 clientConnection.shutdown(SocketDirection.SEND);
105 } 105 }
106 }, 106 }, onDone: () {
107 onDone: () {
108 clientEndDone.complete(null); 107 clientEndDone.complete(null);
109 server.close(); 108 server.close();
110 }); 109 });
111 }); 110 });
112 }); 111 });
113 } 112 }
114 113
115 void testServerListenAfterConnect() { 114 void testServerListenAfterConnect() {
116 asyncStart(); 115 asyncStart();
117 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) { 116 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 var buffer = client.read(200); 173 var buffer = client.read(200);
175 data.setRange(bytesRead, bytesRead + buffer.length, buffer); 174 data.setRange(bytesRead, bytesRead + buffer.length, buffer);
176 bytesRead += buffer.length; 175 bytesRead += buffer.length;
177 if (bytesRead == data.length) { 176 if (bytesRead == data.length) {
178 verifyTestData(data); 177 verifyTestData(data);
179 client.writeEventsEnabled = true; 178 client.writeEventsEnabled = true;
180 } 179 }
181 break; 180 break;
182 case RawSocketEvent.WRITE: 181 case RawSocketEvent.WRITE:
183 Expect.isFalse(client.writeEventsEnabled); 182 Expect.isFalse(client.writeEventsEnabled);
184 bytesWritten += client.write( 183 bytesWritten +=
185 data, bytesWritten, data.length - bytesWritten); 184 client.write(data, bytesWritten, data.length - bytesWritten);
186 if (bytesWritten < data.length) { 185 if (bytesWritten < data.length) {
187 client.writeEventsEnabled = true; 186 client.writeEventsEnabled = true;
188 } 187 }
189 if (bytesWritten == data.length) { 188 if (bytesWritten == data.length) {
190 client.shutdown(SocketDirection.SEND); 189 client.shutdown(SocketDirection.SEND);
191 } 190 }
192 break; 191 break;
193 case RawSocketEvent.READ_CLOSED: 192 case RawSocketEvent.READ_CLOSED:
194 server.close(); 193 server.close();
195 break; 194 break;
196 case RawSocketEvent.CLOSED: 195 case RawSocketEvent.CLOSED:
197 Expect.isFalse(closedEventReceived); 196 Expect.isFalse(closedEventReceived);
198 closedEventReceived = true; 197 closedEventReceived = true;
199 break; 198 break;
200 default: throw "Unexpected event $event"; 199 default:
200 throw "Unexpected event $event";
201 } 201 }
202 }, 202 }, onDone: () => Expect.isTrue(closedEventReceived));
203 onDone: () => Expect.isTrue(closedEventReceived));
204 }); 203 });
205 204
206 RawSocket.connect("127.0.0.1", server.port).then((socket) { 205 RawSocket.connect("127.0.0.1", server.port).then((socket) {
207 int bytesRead = 0; 206 int bytesRead = 0;
208 int bytesWritten = 0; 207 int bytesWritten = 0;
209 bool closedEventReceived = false; 208 bool closedEventReceived = false;
210 List<int> data = createTestData(); 209 List<int> data = createTestData();
211 210
212 socket.listen((event) { 211 socket.listen((event) {
213 switch (event) { 212 switch (event) {
214 case RawSocketEvent.READ: 213 case RawSocketEvent.READ:
215 Expect.isTrue(socket.available() > 0); 214 Expect.isTrue(socket.available() > 0);
216 if (dropReads) { 215 if (dropReads) {
217 if (clientReadCount != 10) { 216 if (clientReadCount != 10) {
218 clientReadCount++; 217 clientReadCount++;
219 break; 218 break;
220 } else { 219 } else {
221 clientReadCount = 0; 220 clientReadCount = 0;
222 } 221 }
223 } 222 }
224 var buffer = socket.read(); 223 var buffer = socket.read();
225 data.setRange(bytesRead, bytesRead + buffer.length, buffer); 224 data.setRange(bytesRead, bytesRead + buffer.length, buffer);
226 bytesRead += buffer.length; 225 bytesRead += buffer.length;
227 break; 226 break;
228 case RawSocketEvent.WRITE: 227 case RawSocketEvent.WRITE:
229 Expect.isTrue(bytesRead == 0); 228 Expect.isTrue(bytesRead == 0);
230 Expect.isFalse(socket.writeEventsEnabled); 229 Expect.isFalse(socket.writeEventsEnabled);
231 bytesWritten += socket.write( 230 bytesWritten +=
232 data, bytesWritten, data.length - bytesWritten); 231 socket.write(data, bytesWritten, data.length - bytesWritten);
233 if (bytesWritten < data.length) { 232 if (bytesWritten < data.length) {
234 socket.writeEventsEnabled = true; 233 socket.writeEventsEnabled = true;
235 } else { 234 } else {
236 data = new List<int>(messageSize); 235 data = new List<int>(messageSize);
237 } 236 }
238 break; 237 break;
239 case RawSocketEvent.READ_CLOSED: 238 case RawSocketEvent.READ_CLOSED:
240 verifyTestData(data); 239 verifyTestData(data);
241 socket.close(); 240 socket.close();
242 break; 241 break;
243 case RawSocketEvent.CLOSED: 242 case RawSocketEvent.CLOSED:
244 Expect.isFalse(closedEventReceived); 243 Expect.isFalse(closedEventReceived);
245 closedEventReceived = true; 244 closedEventReceived = true;
246 break; 245 break;
247 default: throw "Unexpected event $event"; 246 default:
247 throw "Unexpected event $event";
248 } 248 }
249 }, 249 }, onDone: () {
250 onDone: () {
251 Expect.isTrue(closedEventReceived); 250 Expect.isTrue(closedEventReceived);
252 asyncEnd(); 251 asyncEnd();
253 }); 252 });
254 }); 253 });
255 }); 254 });
256 } 255 }
257 256
258 testPauseServerSocket() { 257 testPauseServerSocket() {
259 const int socketCount = 10; 258 const int socketCount = 10;
260 var acceptCount = 0; 259 var acceptCount = 0;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 server.listen((client) { 309 server.listen((client) {
311 bool closedEventReceived = false; 310 bool closedEventReceived = false;
312 List<int> data = new List<int>.filled(messageSize, 0); 311 List<int> data = new List<int>.filled(messageSize, 0);
313 writeSubscription = client.listen((event) { 312 writeSubscription = client.listen((event) {
314 switch (event) { 313 switch (event) {
315 case RawSocketEvent.READ: 314 case RawSocketEvent.READ:
316 throw "Unexpected read event"; 315 throw "Unexpected read event";
317 case RawSocketEvent.WRITE: 316 case RawSocketEvent.WRITE:
318 if (pauseResumeCount == loopCount) return; 317 if (pauseResumeCount == loopCount) return;
319 Expect.isFalse(client.writeEventsEnabled); 318 Expect.isFalse(client.writeEventsEnabled);
320 Expect.equals(0, bytesRead); // Checks that reader is paused. 319 Expect.equals(0, bytesRead); // Checks that reader is paused.
321 bytesWritten += client.write( 320 bytesWritten +=
322 data, bytesWritten, data.length - bytesWritten); 321 client.write(data, bytesWritten, data.length - bytesWritten);
323 // Ensure all data is written. When done disable the write 322 // Ensure all data is written. When done disable the write
324 // event and resume the receiver. 323 // event and resume the receiver.
325 if (bytesWritten == data.length) { 324 if (bytesWritten == data.length) {
326 writeSubscription.pause(); 325 writeSubscription.pause();
327 bytesWritten = 0; 326 bytesWritten = 0;
328 connected.future.then((_) { readSubscription.resume(); }); 327 connected.future.then((_) {
328 readSubscription.resume();
329 });
329 } 330 }
330 client.writeEventsEnabled = true; 331 client.writeEventsEnabled = true;
331 break; 332 break;
332 case RawSocketEvent.READ_CLOSED: 333 case RawSocketEvent.READ_CLOSED:
333 client.close(); 334 client.close();
334 server.close(); 335 server.close();
335 break; 336 break;
336 case RawSocketEvent.CLOSED: 337 case RawSocketEvent.CLOSED:
337 Expect.isFalse(closedEventReceived); 338 Expect.isFalse(closedEventReceived);
338 closedEventReceived = true; 339 closedEventReceived = true;
339 break; 340 break;
340 default: throw "Unexpected event $event"; 341 default:
342 throw "Unexpected event $event";
341 } 343 }
342 }, 344 }, onDone: () => Expect.isTrue(closedEventReceived));
343 onDone: () => Expect.isTrue(closedEventReceived));
344 }); 345 });
345 346
346 RawSocket.connect("127.0.0.1", server.port).then((socket) { 347 RawSocket.connect("127.0.0.1", server.port).then((socket) {
347 bool closedEventReceived = false; 348 bool closedEventReceived = false;
348 socket.writeEventsEnabled = false; 349 socket.writeEventsEnabled = false;
349 readSubscription = socket.listen((event) { 350 readSubscription = socket.listen((event) {
350 switch (event) { 351 switch (event) {
351 case RawSocketEvent.READ: 352 case RawSocketEvent.READ:
352 Expect.equals(0, bytesWritten); // Checks that writer is paused. 353 Expect.equals(0, bytesWritten); // Checks that writer is paused.
353 Expect.isTrue(socket.available() > 0); 354 Expect.isTrue(socket.available() > 0);
354 var buffer = socket.read(); 355 var buffer = socket.read();
355 bytesRead += buffer.length; 356 bytesRead += buffer.length;
356 // Ensure all data is read. When done pause and resume the sender 357 // Ensure all data is read. When done pause and resume the sender
357 if (bytesRead == messageSize) { 358 if (bytesRead == messageSize) {
358 if (++pauseResumeCount == loopCount) { 359 if (++pauseResumeCount == loopCount) {
359 socket.close(); 360 socket.close();
360 asyncEnd(); 361 asyncEnd();
361 } else { 362 } else {
362 readSubscription.pause(); 363 readSubscription.pause();
363 } 364 }
364 // Always resume writer as it needs the read closed 365 // Always resume writer as it needs the read closed
365 // event when done. 366 // event when done.
366 bytesRead = 0; 367 bytesRead = 0;
367 writeSubscription.resume(); 368 writeSubscription.resume();
368 } 369 }
369 break; 370 break;
370 case RawSocketEvent.WRITE: 371 case RawSocketEvent.WRITE:
371 throw "Unexpected write event"; 372 throw "Unexpected write event";
372 case RawSocketEvent.READ_CLOSED: 373 case RawSocketEvent.READ_CLOSED:
373 throw "Unexpected read closed event"; 374 throw "Unexpected read closed event";
374 case RawSocketEvent.CLOSED: 375 case RawSocketEvent.CLOSED:
375 Expect.isFalse(closedEventReceived); 376 Expect.isFalse(closedEventReceived);
376 closedEventReceived = true; 377 closedEventReceived = true;
377 break; 378 break;
378 default: throw "Unexpected event $event"; 379 default:
380 throw "Unexpected event $event";
379 } 381 }
380 }, 382 }, onDone: () => Expect.isTrue(closedEventReceived));
381 onDone: () => Expect.isTrue(closedEventReceived));
382 readSubscription.pause(); 383 readSubscription.pause();
383 connected.complete(true); 384 connected.complete(true);
384 }); 385 });
385 }); 386 });
386 } 387 }
387 388
388 void testSocketZone() { 389 void testSocketZone() {
389 asyncStart(); 390 asyncStart();
390 Expect.equals(Zone.ROOT, Zone.current); 391 Expect.equals(Zone.ROOT, Zone.current);
391 runZoned(() { 392 runZoned(() {
(...skipping 24 matching lines...) Expand all
416 Expect.notEquals(Zone.ROOT, Zone.current); 417 Expect.notEquals(Zone.ROOT, Zone.current);
417 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) { 418 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) {
418 Expect.notEquals(Zone.ROOT, Zone.current); 419 Expect.notEquals(Zone.ROOT, Zone.current);
419 server.listen((socket) { 420 server.listen((socket) {
420 Expect.notEquals(Zone.ROOT, Zone.current); 421 Expect.notEquals(Zone.ROOT, Zone.current);
421 var timer; 422 var timer;
422 void write() { 423 void write() {
423 socket.write(const [0]); 424 socket.write(const [0]);
424 timer = new Timer(const Duration(milliseconds: 5), write); 425 timer = new Timer(const Duration(milliseconds: 5), write);
425 } 426 }
427
426 write(); 428 write();
427 socket.listen((_) { 429 socket.listen((_) {}, onError: (error) {
428 }, onError: (error) {
429 timer.cancel(); 430 timer.cancel();
430 Expect.notEquals(Zone.ROOT, Zone.current); 431 Expect.notEquals(Zone.ROOT, Zone.current);
431 socket.close(); 432 socket.close();
432 server.close(); 433 server.close();
433 throw error; 434 throw error;
434 }); 435 });
435 }); 436 });
436 RawSocket.connect("127.0.0.1", server.port).then((socket) { 437 RawSocket.connect("127.0.0.1", server.port).then((socket) {
437 socket.close(); 438 socket.close();
438 }); 439 });
439 }); 440 });
440 }, onError: (e) { 441 }, onError: (e) {
441 asyncEnd(); 442 asyncEnd();
442 }); 443 });
443 } 444 }
444 445
445 void testClosedError() { 446 void testClosedError() {
446 asyncStart(); 447 asyncStart();
447 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) { 448 RawServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) {
448 server.listen((socket) { socket.close(); }); 449 server.listen((socket) {
450 socket.close();
451 });
449 RawSocket.connect("127.0.0.1", server.port).then((socket) { 452 RawSocket.connect("127.0.0.1", server.port).then((socket) {
450 server.close(); 453 server.close();
451 socket.close(); 454 socket.close();
452 Expect.throws(() => socket.remotePort, (e) => e is SocketException); 455 Expect.throws(() => socket.remotePort, (e) => e is SocketException);
453 Expect.throws(() => socket.remoteAddress, (e) => e is SocketException); 456 Expect.throws(() => socket.remoteAddress, (e) => e is SocketException);
454 asyncEnd(); 457 asyncEnd();
455 }); 458 });
456 }); 459 });
457 } 460 }
458 461
459 main() { 462 main() {
460 asyncStart(); 463 asyncStart();
461 testArguments(); 464 testArguments();
462 testSimpleBind(); 465 testSimpleBind();
463 testCloseOneEnd("client"); 466 testCloseOneEnd("client");
464 testCloseOneEnd("server"); 467 testCloseOneEnd("server");
465 testInvalidBind(); 468 testInvalidBind();
466 testSimpleConnect(); 469 testSimpleConnect();
467 testServerListenAfterConnect(); 470 testServerListenAfterConnect();
468 testSimpleReadWrite(dropReads: false); 471 testSimpleReadWrite(dropReads: false);
469 testSimpleReadWrite(dropReads: true); 472 testSimpleReadWrite(dropReads: true);
470 testPauseServerSocket(); 473 testPauseServerSocket();
471 testPauseSocket(); 474 testPauseSocket();
472 testSocketZone(); 475 testSocketZone();
473 testSocketZoneError(); 476 testSocketZoneError();
474 testClosedError(); 477 testClosedError();
475 asyncEnd(); 478 asyncEnd();
476 } 479 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698