| Index: tests/standalone/io/http_close_test.dart
|
| diff --git a/tests/standalone/io/http_close_test.dart b/tests/standalone/io/http_close_test.dart
|
| index 17b4e47b7c449e32f05d57877b8a67a9f2ceb2dc..bd972c1515965037ed7e2c95515781824f106021 100644
|
| --- a/tests/standalone/io/http_close_test.dart
|
| +++ b/tests/standalone/io/http_close_test.dart
|
| @@ -11,6 +11,7 @@ import "package:expect/expect.dart";
|
| import "dart:async";
|
| import "dart:io";
|
| import "dart:typed_data";
|
| +import "dart:math";
|
|
|
|
|
| void testClientAndServerCloseNoListen(int connections) {
|
| @@ -70,6 +71,11 @@ void testClientCloseServerListen(int connections) {
|
|
|
|
|
| void testClientCloseSendingResponse(int connections) {
|
| + var buffer = new Uint8List(64 * 1024);
|
| + var rand = new Random();
|
| + for (int i = 0; i < buffer.length; i++) {
|
| + buffer[i] = rand.nextInt(256);
|
| + }
|
| HttpServer.bind("127.0.0.1", 0).then((server) {
|
| int closed = 0;
|
| void check() {
|
| @@ -83,8 +89,8 @@ void testClientCloseSendingResponse(int connections) {
|
| }
|
| }
|
| server.listen((request) {
|
| - var timer = new Timer.periodic(const Duration(milliseconds: 20), (_) {
|
| - request.response.add(new Uint8List(16 * 1024));
|
| + var timer = new Timer.periodic(const Duration(milliseconds: 50), (_) {
|
| + request.response.add(buffer);
|
| });
|
| request.response.done
|
| .catchError((_) {})
|
| @@ -101,7 +107,7 @@ void testClientCloseSendingResponse(int connections) {
|
| // Ensure we don't accept the response until we have send the entire
|
| // request.
|
| var subscription = response.listen((_) {});
|
| - new Timer(const Duration(milliseconds: 200), () {
|
| + new Timer(const Duration(milliseconds: 20), () {
|
| subscription.cancel();
|
| check();
|
| });
|
| @@ -115,9 +121,10 @@ void testClientCloseWhileSendingRequest(int connections) {
|
| HttpServer.bind("127.0.0.1", 0).then((server) {
|
| int errors = 0;
|
| server.listen((request) {
|
| - request.listen((_) {}, onError: (e) { errors++; });
|
| + request.listen((_) {});
|
| });
|
| var client = new HttpClient();
|
| + int closed = 0;
|
| for (int i = 0; i < connections; i++) {
|
| client.post("127.0.0.1", server.port, "/")
|
| .then((request) {
|
| @@ -125,14 +132,13 @@ void testClientCloseWhileSendingRequest(int connections) {
|
| request.write("0123456789");
|
| return request.close();
|
| })
|
| - .catchError((_) {});
|
| + .catchError((_) {
|
| + closed++;
|
| + if (closed == connections) {
|
| + server.close();
|
| + }
|
| + });
|
| }
|
| - new Timer.periodic(const Duration(milliseconds: 100), (t) {
|
| - if (errors == connections && server.connectionsInfo().total == 0) {
|
| - t.cancel();
|
| - server.close();
|
| - }
|
| - });
|
| });
|
| }
|
|
|
|
|