| OLD | NEW |
| 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 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 void testSimpleReadWrite() { | 136 void testSimpleReadWrite() { |
| 137 // This test creates a server and a client connects. The client then | 137 // This test creates a server and a client connects. The client then |
| 138 // writes and the server echos. When the server has finished its | 138 // writes and the server echos. When the server has finished its |
| 139 // echo it half-closes. When the client gets the close event is | 139 // echo it half-closes. When the client gets the close event is |
| 140 // closes fully. | 140 // closes fully. |
| 141 ReceivePort port = new ReceivePort(); | 141 ReceivePort port = new ReceivePort(); |
| 142 | 142 |
| 143 const messageSize = 1000; | 143 const messageSize = 1000; |
| 144 | 144 |
| 145 List<int> createTestData() { | 145 List<int> createTestData() { |
| 146 List<int> data = new List.fixedLength(messageSize); | 146 List<int> data = new List<int>(messageSize); |
| 147 for (int i = 0; i < messageSize; i++) { | 147 for (int i = 0; i < messageSize; i++) { |
| 148 data[i] = i & 0xff; | 148 data[i] = i & 0xff; |
| 149 } | 149 } |
| 150 return data; | 150 return data; |
| 151 } | 151 } |
| 152 | 152 |
| 153 void verifyTestData(List<int> data) { | 153 void verifyTestData(List<int> data) { |
| 154 Expect.equals(messageSize, data.length); | 154 Expect.equals(messageSize, data.length); |
| 155 List<int> expected = createTestData(); | 155 List<int> expected = createTestData(); |
| 156 for (int i = 0; i < messageSize; i++) { | 156 for (int i = 0; i < messageSize; i++) { |
| 157 Expect.equals(expected[i], data[i]); | 157 Expect.equals(expected[i], data[i]); |
| 158 } | 158 } |
| 159 } | 159 } |
| 160 | 160 |
| 161 RawSecureServerSocket.bind(SERVER_ADDRESS, 0, 5, CERTIFICATE).then((server) { | 161 RawSecureServerSocket.bind(SERVER_ADDRESS, 0, 5, CERTIFICATE).then((server) { |
| 162 server.listen((client) { | 162 server.listen((client) { |
| 163 int bytesRead = 0; | 163 int bytesRead = 0; |
| 164 int bytesWritten = 0; | 164 int bytesWritten = 0; |
| 165 List<int> data = new List.fixedLength(messageSize); | 165 List<int> data = new List<int>(messageSize); |
| 166 | 166 |
| 167 client.writeEventsEnabled = false; | 167 client.writeEventsEnabled = false; |
| 168 client.listen((event) { | 168 client.listen((event) { |
| 169 switch (event) { | 169 switch (event) { |
| 170 case RawSocketEvent.READ: | 170 case RawSocketEvent.READ: |
| 171 Expect.isTrue(bytesWritten == 0); | 171 Expect.isTrue(bytesWritten == 0); |
| 172 Expect.isTrue(client.available() > 0); | 172 Expect.isTrue(client.available() > 0); |
| 173 var buffer = client.read(); | 173 var buffer = client.read(); |
| 174 if (buffer != null) { | 174 if (buffer != null) { |
| 175 data.setRange(bytesRead, buffer.length, buffer); | 175 data.setRange(bytesRead, buffer.length, buffer); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 205 break; | 205 break; |
| 206 default: throw "Unexpected event $event"; | 206 default: throw "Unexpected event $event"; |
| 207 } | 207 } |
| 208 }); | 208 }); |
| 209 }); | 209 }); |
| 210 | 210 |
| 211 RawSecureSocket.connect(HOST_NAME, server.port).then((socket) { | 211 RawSecureSocket.connect(HOST_NAME, server.port).then((socket) { |
| 212 int bytesRead = 0; | 212 int bytesRead = 0; |
| 213 int bytesWritten = 0; | 213 int bytesWritten = 0; |
| 214 List<int> dataSent = createTestData(); | 214 List<int> dataSent = createTestData(); |
| 215 List<int> dataReceived = new List<int>.fixedLength(dataSent.length); | 215 List<int> dataReceived = new List<int>(dataSent.length); |
| 216 socket.listen((event) { | 216 socket.listen((event) { |
| 217 switch (event) { | 217 switch (event) { |
| 218 case RawSocketEvent.READ: | 218 case RawSocketEvent.READ: |
| 219 Expect.isTrue(socket.available() > 0); | 219 Expect.isTrue(socket.available() > 0); |
| 220 var buffer = socket.read(); | 220 var buffer = socket.read(); |
| 221 if (buffer != null) { | 221 if (buffer != null) { |
| 222 dataReceived.setRange(bytesRead, buffer.length, buffer); | 222 dataReceived.setRange(bytesRead, buffer.length, buffer); |
| 223 bytesRead += buffer.length; | 223 bytesRead += buffer.length; |
| 224 } | 224 } |
| 225 break; | 225 break; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 253 testArguments(); | 253 testArguments(); |
| 254 testSimpleBind(); | 254 testSimpleBind(); |
| 255 testInvalidBind(); | 255 testInvalidBind(); |
| 256 testSimpleConnect(CERTIFICATE); | 256 testSimpleConnect(CERTIFICATE); |
| 257 testSimpleConnect("CN=localhost"); | 257 testSimpleConnect("CN=localhost"); |
| 258 testSimpleConnectFail("not_a_nickname"); | 258 testSimpleConnectFail("not_a_nickname"); |
| 259 testSimpleConnectFail("CN=notARealDistinguishedName"); | 259 testSimpleConnectFail("CN=notARealDistinguishedName"); |
| 260 testServerListenAfterConnect(); | 260 testServerListenAfterConnect(); |
| 261 testSimpleReadWrite(); | 261 testSimpleReadWrite(); |
| 262 } | 262 } |
| OLD | NEW |