OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // VMOptions= | 5 // VMOptions= |
6 // VMOptions=--short_socket_read | 6 // VMOptions=--short_socket_read |
7 // VMOptions=--short_socket_write | 7 // VMOptions=--short_socket_write |
8 // VMOptions=--short_socket_read --short_socket_write | 8 // VMOptions=--short_socket_read --short_socket_write |
9 | 9 |
10 import "package:expect/expect.dart"; | 10 import "package:expect/expect.dart"; |
11 import "dart:async"; | 11 import "dart:async"; |
12 import "dart:io"; | 12 import "dart:io"; |
13 | 13 |
14 void test1(int totalConnections) { | 14 void test1(int totalConnections) { |
15 // Server which just closes immediately. | 15 // Server which just closes immediately. |
16 HttpServer.bind().then((server) { | 16 HttpServer.bind("127.0.0.1", 0).then((server) { |
17 server.listen((HttpRequest request) { | 17 server.listen((HttpRequest request) { |
18 request.response.close(); | 18 request.response.close(); |
19 }); | 19 }); |
20 | 20 |
21 int count = 0; | 21 int count = 0; |
22 HttpClient client = new HttpClient(); | 22 HttpClient client = new HttpClient(); |
23 for (int i = 0; i < totalConnections; i++) { | 23 for (int i = 0; i < totalConnections; i++) { |
24 client.get("127.0.0.1", server.port, "/") | 24 client.get("127.0.0.1", server.port, "/") |
25 .then((HttpClientRequest request) => request.close()) | 25 .then((HttpClientRequest request) => request.close()) |
26 .then((HttpClientResponse response) { | 26 .then((HttpClientResponse response) { |
27 response.listen((_) {}, onDone: () { | 27 response.listen((_) {}, onDone: () { |
28 count++; | 28 count++; |
29 if (count == totalConnections) { | 29 if (count == totalConnections) { |
30 client.close(); | 30 client.close(); |
31 server.close(); | 31 server.close(); |
32 } | 32 } |
33 }); | 33 }); |
34 }); | 34 }); |
35 } | 35 } |
36 }); | 36 }); |
37 } | 37 } |
38 | 38 |
39 | 39 |
40 void test2(int totalConnections, int outputStreamWrites) { | 40 void test2(int totalConnections, int outputStreamWrites) { |
41 // Server which responds without waiting for request body. | 41 // Server which responds without waiting for request body. |
42 HttpServer.bind().then((server) { | 42 HttpServer.bind("127.0.0.1", 0).then((server) { |
43 server.listen((HttpRequest request) { | 43 server.listen((HttpRequest request) { |
44 request.response.write("!dlrow ,olleH"); | 44 request.response.write("!dlrow ,olleH"); |
45 request.response.close(); | 45 request.response.close(); |
46 }); | 46 }); |
47 | 47 |
48 int count = 0; | 48 int count = 0; |
49 HttpClient client = new HttpClient(); | 49 HttpClient client = new HttpClient(); |
50 for (int i = 0; i < totalConnections; i++) { | 50 for (int i = 0; i < totalConnections; i++) { |
51 client.get("127.0.0.1", server.port, "/") | 51 client.get("127.0.0.1", server.port, "/") |
52 .then((HttpClientRequest request) { | 52 .then((HttpClientRequest request) { |
(...skipping 23 matching lines...) Expand all Loading... |
76 server.close(); | 76 server.close(); |
77 } | 77 } |
78 }); | 78 }); |
79 } | 79 } |
80 }); | 80 }); |
81 } | 81 } |
82 | 82 |
83 | 83 |
84 void test3(int totalConnections) { | 84 void test3(int totalConnections) { |
85 // Server which responds when request body has been received. | 85 // Server which responds when request body has been received. |
86 HttpServer.bind().then((server) { | 86 HttpServer.bind("127.0.0.1", 0).then((server) { |
87 | 87 |
88 server.listen((HttpRequest request) { | 88 server.listen((HttpRequest request) { |
89 request.listen((_) {}, onDone: () { | 89 request.listen((_) {}, onDone: () { |
90 request.response.write("!dlrow ,olleH"); | 90 request.response.write("!dlrow ,olleH"); |
91 request.response.close(); | 91 request.response.close(); |
92 }); | 92 }); |
93 }); | 93 }); |
94 | 94 |
95 int count = 0; | 95 int count = 0; |
96 HttpClient client = new HttpClient(); | 96 HttpClient client = new HttpClient(); |
(...skipping 13 matching lines...) Expand all Loading... |
110 } | 110 } |
111 }); | 111 }); |
112 }); | 112 }); |
113 } | 113 } |
114 | 114 |
115 }); | 115 }); |
116 } | 116 } |
117 | 117 |
118 | 118 |
119 void test4() { | 119 void test4() { |
120 HttpServer.bind().then((server) { | 120 HttpServer.bind("127.0.0.1", 0).then((server) { |
121 | 121 |
122 server.listen((var request) { | 122 server.listen((var request) { |
123 request.listen((_) {}, onDone: () { | 123 request.listen((_) {}, onDone: () { |
124 new Timer.periodic(new Duration(milliseconds: 100), (timer) { | 124 new Timer.periodic(new Duration(milliseconds: 100), (timer) { |
125 if (server.connectionsInfo().total == 0) { | 125 if (server.connectionsInfo().total == 0) { |
126 server.close(); | 126 server.close(); |
127 timer.cancel(); | 127 timer.cancel(); |
128 } | 128 } |
129 }); | 129 }); |
130 request.response.close(); | 130 request.response.close(); |
131 }); | 131 }); |
132 }); | 132 }); |
133 | 133 |
134 var client= new HttpClient(); | 134 var client= new HttpClient(); |
135 client.get("127.0.0.1", server.port, "/") | 135 client.get("127.0.0.1", server.port, "/") |
136 .then((request) => request.close()) | 136 .then((request) => request.close()) |
137 .then((response) { | 137 .then((response) { |
138 response.listen((_) {}, onDone: () { | 138 response.listen((_) {}, onDone: () { |
139 client.close(); | 139 client.close(); |
140 }); | 140 }); |
141 }); | 141 }); |
142 | 142 |
143 }); | 143 }); |
144 } | 144 } |
145 | 145 |
146 | 146 |
147 void test5(int totalConnections) { | 147 void test5(int totalConnections) { |
148 HttpServer.bind().then((server) { | 148 HttpServer.bind("127.0.0.1", 0).then((server) { |
149 server.listen( | 149 server.listen( |
150 (request) { | 150 (request) { |
151 request.listen( | 151 request.listen( |
152 (_) { }, | 152 (_) { }, |
153 onDone: () { | 153 onDone: () { |
154 request.response.close(); | 154 request.response.close(); |
155 request.response.done.catchError((e) {}); | 155 request.response.done.catchError((e) {}); |
156 }, | 156 }, |
157 onError: (error) { }); | 157 onError: (error) { }); |
158 }, | 158 }, |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 test1(10); | 198 test1(10); |
199 test2(1, 10); | 199 test2(1, 10); |
200 test2(10, 10); | 200 test2(10, 10); |
201 test2(10, 1000); | 201 test2(10, 1000); |
202 test3(1); | 202 test3(1); |
203 test3(10); | 203 test3(10); |
204 test4(); | 204 test4(); |
205 test5(1); | 205 test5(1); |
206 test5(10); | 206 test5(10); |
207 } | 207 } |
OLD | NEW |