| Index: tests/standalone/io/raw_secure_server_socket_test.dart
|
| diff --git a/tests/standalone/io/raw_secure_server_socket_test.dart b/tests/standalone/io/raw_secure_server_socket_test.dart
|
| index a886f7d990f15ae2617638a7b386614e969f7fe8..3cd4181a07a9d64b04d5c92b27bd306b4925defb 100644
|
| --- a/tests/standalone/io/raw_secure_server_socket_test.dart
|
| +++ b/tests/standalone/io/raw_secure_server_socket_test.dart
|
| @@ -155,10 +155,13 @@ void testServerListenAfterConnect() {
|
| // server will not happen until the first TLS handshake data has been
|
| // received from the client. This argument only takes effect when
|
| // handshakeBeforeSecure is true.
|
| -void testSimpleReadWrite(bool listenSecure,
|
| - bool connectSecure,
|
| - bool handshakeBeforeSecure,
|
| - [bool postponeSecure = false]) {
|
| +void testSimpleReadWrite({bool listenSecure,
|
| + bool connectSecure,
|
| + bool handshakeBeforeSecure,
|
| + bool postponeSecure,
|
| + bool dropReads}) {
|
| + int clientReads = 0;
|
| + int serverReads = 0;
|
| if (handshakeBeforeSecure == true &&
|
| (listenSecure == true || connectSecure == true)) {
|
| Expect.fail("Invalid arguments to testSimpleReadWrite");
|
| @@ -211,6 +214,14 @@ void testSimpleReadWrite(bool listenSecure,
|
| subscription = client.listen((event) {
|
| switch (event) {
|
| case RawSocketEvent.READ:
|
| + if (dropReads) {
|
| + if (serverReads != 10) {
|
| + ++serverReads;
|
| + break;
|
| + } else {
|
| + serverReads = 0;
|
| + }
|
| + }
|
| Expect.isTrue(bytesWritten == 0);
|
| Expect.isTrue(client.available() > 0);
|
| var buffer = client.read();
|
| @@ -262,6 +273,14 @@ void testSimpleReadWrite(bool listenSecure,
|
| switch (event) {
|
| case RawSocketEvent.READ:
|
| Expect.isTrue(socket.available() > 0);
|
| + if (dropReads) {
|
| + if (clientReads != 10) {
|
| + ++clientReads;
|
| + break;
|
| + } else {
|
| + clientReads = 0;
|
| + }
|
| + }
|
| var buffer = socket.read();
|
| if (buffer != null) {
|
| dataReceived.setRange(bytesRead, bytesRead + buffer.length, buffer);
|
| @@ -301,6 +320,14 @@ void testSimpleReadWrite(bool listenSecure,
|
| Expect.isTrue(bytesWritten == 0);
|
| }
|
| Expect.isTrue(client.available() > 0);
|
| + if (dropReads) {
|
| + if (serverReads != 10) {
|
| + ++serverReads;
|
| + break;
|
| + } else {
|
| + serverReads = 0;
|
| + }
|
| + }
|
| var buffer = client.read();
|
| if (buffer != null) {
|
| if (bytesRead == data.length) {
|
| @@ -359,6 +386,14 @@ void testSimpleReadWrite(bool listenSecure,
|
| subscription = socket.listen((event) {
|
| switch (event) {
|
| case RawSocketEvent.READ:
|
| + if (dropReads) {
|
| + if (clientReads != 10) {
|
| + ++clientReads;
|
| + break;
|
| + } else {
|
| + clientReads = 0;
|
| + }
|
| + }
|
| Expect.isTrue(socket.available() > 0);
|
| var buffer = socket.read();
|
| if (buffer != null) {
|
| @@ -418,7 +453,7 @@ void testSimpleReadWrite(bool listenSecure,
|
| client,
|
| CERTIFICATE,
|
| subscription: secure[0],
|
| - carryOverData: secure[1]).then((client) {
|
| + bufferedData: secure[1]).then((client) {
|
| runServer(client).then((_) => server.close());
|
| });
|
| });
|
| @@ -454,10 +489,44 @@ main() {
|
| testSimpleConnectFail("not_a_nickname", true);
|
| testSimpleConnectFail("CN=notARealDistinguishedName", true);
|
| testServerListenAfterConnect();
|
| - testSimpleReadWrite(true, true, false);
|
| - testSimpleReadWrite(true, false, false);
|
| - testSimpleReadWrite(false, true, false);
|
| - testSimpleReadWrite(false, false, false);
|
| - testSimpleReadWrite(false, false, true, true);
|
| - testSimpleReadWrite(false, false, true, false);
|
| + testSimpleReadWrite(listenSecure: true,
|
| + connectSecure: true,
|
| + handshakeBeforeSecure: false,
|
| + postponeSecure: false,
|
| + dropReads: false);
|
| + testSimpleReadWrite(listenSecure: true,
|
| + connectSecure: false,
|
| + handshakeBeforeSecure: false,
|
| + postponeSecure: false,
|
| + dropReads: false);
|
| + testSimpleReadWrite(listenSecure: false,
|
| + connectSecure: true,
|
| + handshakeBeforeSecure: false,
|
| + postponeSecure: false,
|
| + dropReads: false);
|
| + testSimpleReadWrite(listenSecure: false,
|
| + connectSecure: false,
|
| + handshakeBeforeSecure: false,
|
| + postponeSecure: false,
|
| + dropReads: false);
|
| + testSimpleReadWrite(listenSecure: false,
|
| + connectSecure: false,
|
| + handshakeBeforeSecure: true,
|
| + postponeSecure: true,
|
| + dropReads: false);
|
| + testSimpleReadWrite(listenSecure: false,
|
| + connectSecure: false,
|
| + handshakeBeforeSecure: true,
|
| + postponeSecure: false,
|
| + dropReads: false);
|
| + testSimpleReadWrite(listenSecure: true,
|
| + connectSecure: true,
|
| + handshakeBeforeSecure: false,
|
| + postponeSecure: false,
|
| + dropReads: true);
|
| + testSimpleReadWrite(listenSecure: false,
|
| + connectSecure: false,
|
| + handshakeBeforeSecure: true,
|
| + postponeSecure: true,
|
| + dropReads: true);
|
| }
|
|
|