Index: tests/standalone/io/raw_socket_test.dart |
diff --git a/tests/standalone/io/raw_socket_test.dart b/tests/standalone/io/raw_socket_test.dart |
index 381c0ed2a134911c939223256601e5e114aa91a7..a6bc078d9ceac9674df832a5454cad02f1bc6dae 100644 |
--- a/tests/standalone/io/raw_socket_test.dart |
+++ b/tests/standalone/io/raw_socket_test.dart |
@@ -128,7 +128,7 @@ void testServerListenAfterConnect() { |
}); |
} |
-void testSimpleReadWrite() { |
+void testSimpleReadWrite({bool dropReads}) { |
// This test creates a server and a client connects. The client then |
// writes and the server echos. When the server has finished its |
// echo it half-closes. When the client gets the close event is |
@@ -136,6 +136,8 @@ void testSimpleReadWrite() { |
ReceivePort port = new ReceivePort(); |
const messageSize = 1000; |
+ int serverReadCount = 0; |
+ int clientReadCount = 0; |
List<int> createTestData() { |
return new List<int>.generate(messageSize, (index) => index & 0xff); |
@@ -159,9 +161,17 @@ void testSimpleReadWrite() { |
client.listen((event) { |
switch (event) { |
case RawSocketEvent.READ: |
+ if (dropReads) { |
+ if (serverReadCount != 10) { |
+ serverReadCount++; |
+ break; |
+ } else { |
+ serverReadCount = 0; |
+ } |
+ } |
Expect.isTrue(bytesWritten == 0); |
Expect.isTrue(client.available() > 0); |
- var buffer = client.read(); |
+ var buffer = client.read(200); |
data.setRange(bytesRead, bytesRead + buffer.length, buffer); |
bytesRead += buffer.length; |
if (bytesRead == data.length) { |
@@ -197,6 +207,14 @@ void testSimpleReadWrite() { |
switch (event) { |
case RawSocketEvent.READ: |
Expect.isTrue(socket.available() > 0); |
+ if (dropReads) { |
+ if (clientReadCount != 10) { |
+ clientReadCount++; |
+ break; |
+ } else { |
+ clientReadCount = 0; |
+ } |
+ } |
var buffer = socket.read(); |
data.setRange(bytesRead, bytesRead + buffer.length, buffer); |
bytesRead += buffer.length; |
@@ -348,7 +366,8 @@ main() { |
testInvalidBind(); |
testSimpleConnect(); |
testServerListenAfterConnect(); |
- testSimpleReadWrite(); |
+ testSimpleReadWrite(dropReads: false); |
+ testSimpleReadWrite(dropReads: true); |
testPauseServerSocket(); |
testPauseSocket(); |
} |