| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 // Test creating a large number of socket connections. | 5 // Test creating a large number of socket connections. |
| 6 | 6 |
| 7 #import("dart:io"); | 7 #import("dart:io"); |
| 8 #import("dart:isolate"); | 8 #import("dart:isolate"); |
| 9 #source("testing_server.dart"); | 9 #source("testing_server.dart"); |
| 10 | 10 |
| 11 const CONNECTIONS = 200; | 11 const CONNECTIONS = 200; |
| 12 | 12 |
| 13 class SocketManyConnectionsTest { | 13 class SocketManyConnectionsTest { |
| 14 | 14 |
| 15 SocketManyConnectionsTest.start() | 15 SocketManyConnectionsTest.start() |
| 16 : _receivePort = new ReceivePort(), | 16 : _receivePort = new ReceivePort(), |
| 17 _sendPort = null, | 17 _sendPort = null, |
| 18 _connections = 0, | 18 _connections = 0, |
| 19 _sockets = new List<Socket>(CONNECTIONS) { | 19 _sockets = new List<Socket>(CONNECTIONS) { |
| 20 _sendPort = spawnFunction(startTestServer); | 20 _sendPort = spawnFunction(startTestServer); |
| 21 start(); | 21 initialize(); |
| 22 } | 22 } |
| 23 | 23 |
| 24 void run() { | 24 void run() { |
| 25 | 25 |
| 26 void connectHandler() { | 26 void connectHandler() { |
| 27 _connections++; | 27 _connections++; |
| 28 if (_connections == CONNECTIONS) { | 28 if (_connections == CONNECTIONS) { |
| 29 for (int i = 0; i < CONNECTIONS; i++) { | 29 for (int i = 0; i < CONNECTIONS; i++) { |
| 30 _sockets[i].close(); | 30 _sockets[i].close(); |
| 31 } | 31 } |
| 32 shutdown(); | 32 shutdown(); |
| 33 } | 33 } |
| 34 } | 34 } |
| 35 | 35 |
| 36 for (int i = 0; i < CONNECTIONS; i++) { | 36 for (int i = 0; i < CONNECTIONS; i++) { |
| 37 _sockets[i] = new Socket(TestingServer.HOST, _port); | 37 _sockets[i] = new Socket(TestingServer.HOST, _port); |
| 38 if (_sockets[i] !== null) { | 38 if (_sockets[i] !== null) { |
| 39 _sockets[i].onConnect = connectHandler; | 39 _sockets[i].onConnect = connectHandler; |
| 40 } else { | 40 } else { |
| 41 Expect.fail("socket creation failed"); | 41 Expect.fail("socket creation failed"); |
| 42 } | 42 } |
| 43 } | 43 } |
| 44 } | 44 } |
| 45 | 45 |
| 46 void start() { | 46 void initialize() { |
| 47 _receivePort.receive((var message, SendPort replyTo) { | 47 _receivePort.receive((var message, SendPort replyTo) { |
| 48 _port = message; | 48 _port = message; |
| 49 run(); | 49 run(); |
| 50 }); | 50 }); |
| 51 _sendPort.send(TestingServer.INIT, _receivePort.toSendPort()); | 51 _sendPort.send(TestingServer.INIT, _receivePort.toSendPort()); |
| 52 } | 52 } |
| 53 | 53 |
| 54 void shutdown() { | 54 void shutdown() { |
| 55 _sendPort.send(TestingServer.SHUTDOWN, _receivePort.toSendPort()); | 55 _sendPort.send(TestingServer.SHUTDOWN, _receivePort.toSendPort()); |
| 56 _receivePort.close(); | 56 _receivePort.close(); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 87 connection.onClosed = closeHandler; | 87 connection.onClosed = closeHandler; |
| 88 connection.onError = errorHandler; | 88 connection.onError = errorHandler; |
| 89 } | 89 } |
| 90 | 90 |
| 91 int _connections = 0; | 91 int _connections = 0; |
| 92 } | 92 } |
| 93 | 93 |
| 94 main() { | 94 main() { |
| 95 SocketManyConnectionsTest test = new SocketManyConnectionsTest.start(); | 95 SocketManyConnectionsTest test = new SocketManyConnectionsTest.start(); |
| 96 } | 96 } |
| OLD | NEW |