Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: net/quic/quic_end_to_end_unittest.cc

Issue 1028923002: Make some changes to the QuicInMemory server to clarify the interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | net/tools/quic/end_to_end_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/compiler_specific.h" 6 #include "base/compiler_specific.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "net/base/elements_upload_data_stream.h" 10 #include "net/base/elements_upload_data_stream.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 return; 151 return;
152 } 152 }
153 if (server_thread_.get()) { 153 if (server_thread_.get()) {
154 server_thread_->Quit(); 154 server_thread_->Quit();
155 server_thread_->Join(); 155 server_thread_->Join();
156 } 156 }
157 } 157 }
158 158
159 // Adds an entry to the cache used by the QUIC server to serve 159 // Adds an entry to the cache used by the QUIC server to serve
160 // responses. 160 // responses.
161 void AddToCache(const StringPiece& method, 161 void AddToCache(StringPiece path,
162 const StringPiece& path, 162 int response_code,
163 const StringPiece& version, 163 StringPiece response_detail,
164 const StringPiece& response_code, 164 StringPiece body) {
165 const StringPiece& response_detail,
166 const StringPiece& body) {
167 QuicInMemoryCache::GetInstance()->AddSimpleResponse( 165 QuicInMemoryCache::GetInstance()->AddSimpleResponse(
168 method, path, version, response_code, response_detail, body); 166 "www.google.com", path, response_code, response_detail, body);
169 } 167 }
170 168
171 // Populates |request_body_| with |length_| ASCII bytes. 169 // Populates |request_body_| with |length_| ASCII bytes.
172 void GenerateBody(size_t length) { 170 void GenerateBody(size_t length) {
173 request_body_.clear(); 171 request_body_.clear();
174 request_body_.reserve(length); 172 request_body_.reserve(length);
175 for (size_t i = 0; i < length; ++i) { 173 for (size_t i = 0; i < length; ++i) {
176 request_body_.append(1, static_cast<char>(32 + i % (126 - 32))); 174 request_body_.append(1, static_cast<char>(32 + i % (126 - 32)));
177 } 175 }
178 } 176 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 IPEndPoint server_address_; 218 IPEndPoint server_address_;
221 std::string server_hostname_; 219 std::string server_hostname_;
222 QuicConfig server_config_; 220 QuicConfig server_config_;
223 bool server_started_; 221 bool server_started_;
224 bool strike_register_no_startup_period_; 222 bool strike_register_no_startup_period_;
225 }; 223 };
226 224
227 TEST_F(QuicEndToEndTest, LargeGetWithNoPacketLoss) { 225 TEST_F(QuicEndToEndTest, LargeGetWithNoPacketLoss) {
228 std::string response(10 * 1024, 'x'); 226 std::string response(10 * 1024, 'x');
229 227
230 AddToCache("GET", request_.url.spec(), 228 AddToCache(request_.url.PathForRequest(), 200, "OK", response);
231 "HTTP/1.1", "200", "OK",
232 response);
233 229
234 TestTransactionConsumer consumer(DEFAULT_PRIORITY, 230 TestTransactionConsumer consumer(DEFAULT_PRIORITY,
235 transaction_factory_.get()); 231 transaction_factory_.get());
236 consumer.Start(&request_, BoundNetLog()); 232 consumer.Start(&request_, BoundNetLog());
237 233
238 // Will terminate when the last consumer completes. 234 // Will terminate when the last consumer completes.
239 base::MessageLoop::current()->Run(); 235 base::MessageLoop::current()->Run();
240 236
241 CheckResponse(consumer, "HTTP/1.1 200 OK", response); 237 CheckResponse(consumer, "HTTP/1.1 200 OK", response);
242 } 238 }
243 239
244 // http://crbug.com/307284 240 // http://crbug.com/307284
245 TEST_F(QuicEndToEndTest, DISABLED_LargePostWithNoPacketLoss) { 241 TEST_F(QuicEndToEndTest, DISABLED_LargePostWithNoPacketLoss) {
246 InitializePostRequest(10 * 1024 * 1024); 242 InitializePostRequest(10 * 1024 * 1024);
247 243
248 AddToCache("POST", request_.url.spec(), 244 AddToCache(request_.url.PathForRequest(), 200, "OK", kResponseBody);
249 "HTTP/1.1", "200", "OK",
250 kResponseBody);
251 245
252 TestTransactionConsumer consumer(DEFAULT_PRIORITY, 246 TestTransactionConsumer consumer(DEFAULT_PRIORITY,
253 transaction_factory_.get()); 247 transaction_factory_.get());
254 consumer.Start(&request_, BoundNetLog()); 248 consumer.Start(&request_, BoundNetLog());
255 249
256 // Will terminate when the last consumer completes. 250 // Will terminate when the last consumer completes.
257 base::MessageLoop::current()->Run(); 251 base::MessageLoop::current()->Run();
258 252
259 CheckResponse(consumer, "HTTP/1.1 200 OK", kResponseBody); 253 CheckResponse(consumer, "HTTP/1.1 200 OK", kResponseBody);
260 } 254 }
261 255
262 TEST_F(QuicEndToEndTest, LargePostWithPacketLoss) { 256 TEST_F(QuicEndToEndTest, LargePostWithPacketLoss) {
263 // FLAGS_fake_packet_loss_percentage = 30; 257 // FLAGS_fake_packet_loss_percentage = 30;
264 InitializePostRequest(1024 * 1024); 258 InitializePostRequest(1024 * 1024);
265 259
266 const char kResponseBody[] = "some really big response body"; 260 const char kResponseBody[] = "some really big response body";
267 AddToCache("POST", request_.url.spec(), 261 AddToCache(request_.url.PathForRequest(), 200, "OK", kResponseBody);
268 "HTTP/1.1", "200", "OK",
269 kResponseBody);
270 262
271 TestTransactionConsumer consumer(DEFAULT_PRIORITY, 263 TestTransactionConsumer consumer(DEFAULT_PRIORITY,
272 transaction_factory_.get()); 264 transaction_factory_.get());
273 consumer.Start(&request_, BoundNetLog()); 265 consumer.Start(&request_, BoundNetLog());
274 266
275 // Will terminate when the last consumer completes. 267 // Will terminate when the last consumer completes.
276 base::MessageLoop::current()->Run(); 268 base::MessageLoop::current()->Run();
277 269
278 CheckResponse(consumer, "HTTP/1.1 200 OK", kResponseBody); 270 CheckResponse(consumer, "HTTP/1.1 200 OK", kResponseBody);
279 } 271 }
280 272
281 TEST_F(QuicEndToEndTest, UberTest) { 273 TEST_F(QuicEndToEndTest, UberTest) {
282 // FLAGS_fake_packet_loss_percentage = 30; 274 // FLAGS_fake_packet_loss_percentage = 30;
283 275
284 const char kResponseBody[] = "some really big response body"; 276 const char kResponseBody[] = "some really big response body";
285 AddToCache("GET", request_.url.spec(), 277 AddToCache(request_.url.PathForRequest(), 200, "OK", kResponseBody);
286 "HTTP/1.1", "200", "OK",
287 kResponseBody);
288 278
289 std::vector<TestTransactionConsumer*> consumers; 279 std::vector<TestTransactionConsumer*> consumers;
290 size_t num_requests = 100; 280 size_t num_requests = 100;
291 for (size_t i = 0; i < num_requests; ++i) { 281 for (size_t i = 0; i < num_requests; ++i) {
292 TestTransactionConsumer* consumer = 282 TestTransactionConsumer* consumer =
293 new TestTransactionConsumer(DEFAULT_PRIORITY, 283 new TestTransactionConsumer(DEFAULT_PRIORITY,
294 transaction_factory_.get()); 284 transaction_factory_.get());
295 consumers.push_back(consumer); 285 consumers.push_back(consumer);
296 consumer->Start(&request_, BoundNetLog()); 286 consumer->Start(&request_, BoundNetLog());
297 } 287 }
298 288
299 // Will terminate when the last consumer completes. 289 // Will terminate when the last consumer completes.
300 base::MessageLoop::current()->Run(); 290 base::MessageLoop::current()->Run();
301 291
302 for (size_t i = 0; i < num_requests; ++i) { 292 for (size_t i = 0; i < num_requests; ++i) {
303 CheckResponse(*consumers[i], "HTTP/1.1 200 OK", kResponseBody); 293 CheckResponse(*consumers[i], "HTTP/1.1 200 OK", kResponseBody);
304 } 294 }
305 STLDeleteElements(&consumers); 295 STLDeleteElements(&consumers);
306 } 296 }
307 297
308 } // namespace test 298 } // namespace test
309 } // namespace net 299 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/tools/quic/end_to_end_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698