Chromium Code Reviews| 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 58d6dd1300cb2581acf6bac1e6ea038a910fce72..f8c5179223fb70d04e34d33095c3204315f90af9 100644 |
| --- a/tests/standalone/io/http_close_test.dart |
| +++ b/tests/standalone/io/http_close_test.dart |
| @@ -70,10 +70,21 @@ void testClientCloseServerListen(int connections) { |
| void testClientCloseDelayed(int connections) { |
| HttpServer.bind().then((server) { |
| + int closed = 0; |
| + void check() { |
| + closed++; |
| + // Wait for both server and client to see the connection as closed. |
|
Søren Gjesse
2013/02/27 08:46:53
connection -> connections
Anders Johnsen
2013/06/11 12:21:50
Done.
|
| + if (closed == connections * 2) { |
| + Expect.equals(0, server.connectionsInfo().active); |
| + Expect.equals(server.connectionsInfo().total, |
| + server.connectionsInfo().idle); |
| + server.close(); |
| + } |
| + } |
| server.listen((request) { |
| - request.pipe(request.response); |
| + request.pipe(request.response) |
| + .then((_) => check()); |
| }); |
| - int closed = 0; |
| var client = new HttpClient(); |
| for (int i = 0; i < connections; i++) { |
| var req; |
| @@ -90,13 +101,7 @@ void testClientCloseDelayed(int connections) { |
| response.listen( |
| (_) {}, |
| onDone: () { |
| - closed++; |
| - if (closed == connections) { |
| - Expect.equals(0, server.connectionsInfo().active); |
| - Expect.equals(server.connectionsInfo().total, |
| - server.connectionsInfo().idle); |
| - server.close(); |
| - } |
| + check(); |
| }); |
| }); |
| } |