Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 | 5 |
| 6 #import("dart:isolate"); | 6 #import("dart:isolate"); |
| 7 #import("dart:io"); | 7 #import("dart:io"); |
| 8 | 8 |
| 9 void test1(int totalConnections) { | 9 void test1(int totalConnections) { |
| 10 // Server which just closes immediately. | 10 // Server which just closes immediately. |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 88 count++; | 88 count++; |
| 89 if (count == totalConnections) { | 89 if (count == totalConnections) { |
| 90 client.shutdown(); | 90 client.shutdown(); |
| 91 server.close(); | 91 server.close(); |
| 92 } | 92 } |
| 93 }; | 93 }; |
| 94 } | 94 } |
| 95 } | 95 } |
| 96 | 96 |
| 97 | 97 |
| 98 void test4() { | |
| 99 var server = new HttpServer(); | |
| 100 server.listen("127.0.0.1", 0); | |
| 101 server.defaultRequestHandler = (var request, var response) { | |
| 102 request.inputStream.onClosed = () { | |
| 103 new Timer.repeating(100, (timer) { | |
| 104 if (server.connectionsInfo().total == 0) { | |
| 105 server.close(); | |
| 106 timer.cancel(); | |
| 107 } | |
| 108 }); | |
| 109 response.outputStream.close(); | |
| 110 }; | |
| 111 }; | |
| 112 | |
| 113 var client= new HttpClient(); | |
| 114 var conn = client.get("127.0.0.1", server.port, "/"); | |
| 115 conn.onResponse = (var response) { | |
| 116 response.inputStream.onClosed = () { | |
| 117 client.shutdown(); | |
| 118 }; | |
| 119 }; | |
| 120 } | |
| 121 | |
| 122 | |
| 123 void test5(int totalConnections) { | |
| 124 var server = new HttpServer(); | |
| 125 server.listen("127.0.0.1", 0, backlog: totalConnections); | |
| 126 server.defaultRequestHandler = (var request, var response) { | |
| 127 request.inputStream.onClosed = () { | |
| 128 response.outputStream.close(); | |
| 129 }; | |
| 130 }; | |
| 131 server.onError = (e) => { }; | |
| 132 | |
| 133 // Create a number of client requests and keep then active. Then | |
| 134 // close the client and wait for the server to loose all active | |
|
Mads Ager (google)
2012/11/19 10:56:57
loose -> lose
| |
| 135 // connections. | |
| 136 var client= new HttpClient(); | |
| 137 for (int i = 0; i < totalConnections; i++) { | |
| 138 var conn = client.post("127.0.0.1", server.port, "/"); | |
| 139 conn.onRequest = (req) { req.outputStream.write([0]); }; | |
| 140 } | |
| 141 bool clientClosed = false; | |
| 142 new Timer.repeating(100, (timer) { | |
| 143 if (!clientClosed) { | |
| 144 if (server.connectionsInfo().total == totalConnections) { | |
| 145 clientClosed = true; | |
| 146 client.shutdown(); | |
| 147 } | |
| 148 } else { | |
| 149 if (server.connectionsInfo().total == 0) { | |
| 150 server.close(); | |
| 151 timer.cancel(); | |
| 152 } | |
| 153 } | |
| 154 }); | |
| 155 } | |
| 156 | |
| 157 | |
| 98 void main() { | 158 void main() { |
| 99 test1(1); | 159 test1(1); |
| 100 test1(10); | 160 test1(10); |
| 101 test2(1); | 161 test2(1); |
| 102 test2(10); | 162 test2(10); |
| 103 test3(1); | 163 test3(1); |
| 104 test3(10); | 164 test3(10); |
| 165 test4(); | |
| 166 test5(1); | |
| 167 test5(10); | |
| 105 } | 168 } |
| OLD | NEW |