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

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

Issue 1534993003: Remove use of DeterministicSocketData from QUIC tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test Created 5 years 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/quic/quic_stream_factory.h" 5 #include "net/quic/quic_stream_factory.h"
6 6
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/thread_task_runner_handle.h" 9 #include "base/thread_task_runner_handle.h"
10 #include "net/base/test_data_directory.h" 10 #include "net/base/test_data_directory.h"
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 192
193 int GetSourcePortForNewSessionAndGoAway( 193 int GetSourcePortForNewSessionAndGoAway(
194 const HostPortPair& destination) { 194 const HostPortPair& destination) {
195 return GetSourcePortForNewSessionInner(destination, true); 195 return GetSourcePortForNewSessionInner(destination, true);
196 } 196 }
197 197
198 int GetSourcePortForNewSessionInner(const HostPortPair& destination, 198 int GetSourcePortForNewSessionInner(const HostPortPair& destination,
199 bool goaway_received) { 199 bool goaway_received) {
200 // Should only be called if there is no active session for this destination. 200 // Should only be called if there is no active session for this destination.
201 EXPECT_FALSE(HasActiveSession(destination)); 201 EXPECT_FALSE(HasActiveSession(destination));
202 size_t socket_count = socket_factory_.udp_client_sockets().size(); 202 size_t socket_count = socket_factory_.udp_client_socket_ports().size();
203 203
204 MockRead reads[] = { 204 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
mmenke 2015/12/18 17:37:53 This operation was never completed, since the Dete
205 MockRead(ASYNC, OK, 0) // EOF 205 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
206 };
207 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
208 socket_data.StopAfter(1);
209 socket_factory_.AddSocketDataProvider(&socket_data); 206 socket_factory_.AddSocketDataProvider(&socket_data);
210 207
211 QuicStreamRequest request(factory_.get()); 208 QuicStreamRequest request(factory_.get());
212 EXPECT_EQ(ERR_IO_PENDING, 209 EXPECT_EQ(ERR_IO_PENDING,
213 request.Request(destination, privacy_mode_, 210 request.Request(destination, privacy_mode_,
214 /*cert_verify_flags=*/0, destination.host(), 211 /*cert_verify_flags=*/0, destination.host(),
215 "GET", net_log_, callback_.callback())); 212 "GET", net_log_, callback_.callback()));
216 213
217 EXPECT_EQ(OK, callback_.WaitForResult()); 214 EXPECT_EQ(OK, callback_.WaitForResult());
218 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 215 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
219 EXPECT_TRUE(stream.get()); 216 EXPECT_TRUE(stream.get());
220 stream.reset(); 217 stream.reset();
221 218
222 QuicChromiumClientSession* session = 219 QuicChromiumClientSession* session =
223 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); 220 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination);
224 221
225 if (socket_count + 1 != socket_factory_.udp_client_sockets().size()) { 222 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) {
226 EXPECT_TRUE(false); 223 ADD_FAILURE();
227 return 0; 224 return 0;
228 } 225 }
229 226
230 IPEndPoint endpoint;
231 socket_factory_.
232 udp_client_sockets()[socket_count]->GetLocalAddress(&endpoint);
233 int port = endpoint.port();
234 if (goaway_received) { 227 if (goaway_received) {
235 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); 228 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, "");
236 session->connection()->OnGoAwayFrame(goaway); 229 session->connection()->OnGoAwayFrame(goaway);
237 } 230 }
238 231
239 factory_->OnSessionClosed(session); 232 factory_->OnSessionClosed(session);
240 EXPECT_FALSE(HasActiveSession(destination)); 233 EXPECT_FALSE(HasActiveSession(destination));
241 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 234 EXPECT_TRUE(socket_data.AllReadDataConsumed());
242 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 235 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
243 return port; 236 return socket_factory_.udp_client_socket_ports()[socket_count];
244 } 237 }
245 238
246 scoped_ptr<QuicEncryptedPacket> ConstructConnectionClosePacket( 239 scoped_ptr<QuicEncryptedPacket> ConstructConnectionClosePacket(
247 QuicPacketNumber num) { 240 QuicPacketNumber num) {
248 return maker_.MakeConnectionClosePacket(num); 241 return maker_.MakeConnectionClosePacket(num);
249 } 242 }
250 243
251 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { 244 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() {
252 QuicStreamId stream_id = kClientDataStreamId1; 245 QuicStreamId stream_id = kClientDataStreamId1;
253 return maker_.MakeRstPacket( 246 return maker_.MakeRstPacket(
(...skipping 14 matching lines...) Expand all
268 } 261 }
269 262
270 void NotifyIPAddressChanged() { 263 void NotifyIPAddressChanged() {
271 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); 264 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests();
272 // For thread safety, the NCN queues tasks to do the actual notifications, 265 // For thread safety, the NCN queues tasks to do the actual notifications,
273 // so we need to spin the message loop so the notification is delivered. 266 // so we need to spin the message loop so the notification is delivered.
274 base::MessageLoop::current()->RunUntilIdle(); 267 base::MessageLoop::current()->RunUntilIdle();
275 } 268 }
276 269
277 MockHostResolver host_resolver_; 270 MockHostResolver host_resolver_;
278 DeterministicMockClientSocketFactory socket_factory_; 271 MockClientSocketFactory socket_factory_;
279 MockCryptoClientStreamFactory crypto_client_stream_factory_; 272 MockCryptoClientStreamFactory crypto_client_stream_factory_;
280 MockRandom random_generator_; 273 MockRandom random_generator_;
281 MockClock* clock_; // Owned by factory_. 274 MockClock* clock_; // Owned by factory_.
282 scoped_refptr<TestTaskRunner> runner_; 275 scoped_refptr<TestTaskRunner> runner_;
283 QuicTestPacketMaker maker_; 276 QuicTestPacketMaker maker_;
284 HttpServerPropertiesImpl http_server_properties_; 277 HttpServerPropertiesImpl http_server_properties_;
285 scoped_ptr<CertVerifier> cert_verifier_; 278 scoped_ptr<CertVerifier> cert_verifier_;
286 scoped_ptr<ChannelIDService> channel_id_service_; 279 scoped_ptr<ChannelIDService> channel_id_service_;
287 TransportSecurityState transport_security_state_; 280 TransportSecurityState transport_security_state_;
288 scoped_ptr<CTVerifier> cert_transparency_verifier_; 281 scoped_ptr<CTVerifier> cert_transparency_verifier_;
(...skipping 24 matching lines...) Expand all
313 int idle_connection_timeout_seconds_; 306 int idle_connection_timeout_seconds_;
314 }; 307 };
315 308
316 INSTANTIATE_TEST_CASE_P(Version, 309 INSTANTIATE_TEST_CASE_P(Version,
317 QuicStreamFactoryTest, 310 QuicStreamFactoryTest,
318 ::testing::ValuesIn(GetTestParams())); 311 ::testing::ValuesIn(GetTestParams()));
319 312
320 TEST_P(QuicStreamFactoryTest, Create) { 313 TEST_P(QuicStreamFactoryTest, Create) {
321 Initialize(); 314 Initialize();
322 315
323 MockRead reads[] = { 316 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
324 MockRead(ASYNC, OK, 0) // EOF 317 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
325 };
326 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
327 socket_factory_.AddSocketDataProvider(&socket_data); 318 socket_factory_.AddSocketDataProvider(&socket_data);
328 socket_data.StopAfter(1);
329 319
330 QuicStreamRequest request(factory_.get()); 320 QuicStreamRequest request(factory_.get());
331 EXPECT_EQ(ERR_IO_PENDING, 321 EXPECT_EQ(ERR_IO_PENDING,
332 request.Request(host_port_pair_, privacy_mode_, 322 request.Request(host_port_pair_, privacy_mode_,
333 /*cert_verify_flags=*/0, host_port_pair_.host(), 323 /*cert_verify_flags=*/0, host_port_pair_.host(),
334 "GET", net_log_, callback_.callback())); 324 "GET", net_log_, callback_.callback()));
335 325
336 EXPECT_EQ(OK, callback_.WaitForResult()); 326 EXPECT_EQ(OK, callback_.WaitForResult());
337 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 327 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
338 EXPECT_TRUE(stream.get()); 328 EXPECT_TRUE(stream.get());
(...skipping 12 matching lines...) Expand all
351 stream = request2.ReleaseStream(); // Will reset stream 5. 341 stream = request2.ReleaseStream(); // Will reset stream 5.
352 stream.reset(); // Will reset stream 7. 342 stream.reset(); // Will reset stream 7.
353 343
354 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 344 EXPECT_TRUE(socket_data.AllReadDataConsumed());
355 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 345 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
356 } 346 }
357 347
358 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { 348 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) {
359 Initialize(); 349 Initialize();
360 350
361 MockRead reads[] = { 351 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
362 MockRead(ASYNC, OK, 0) // EOF 352 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
363 };
364 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
365 socket_factory_.AddSocketDataProvider(&socket_data); 353 socket_factory_.AddSocketDataProvider(&socket_data);
366 socket_data.StopAfter(1);
367 354
368 crypto_client_stream_factory_.set_handshake_mode( 355 crypto_client_stream_factory_.set_handshake_mode(
369 MockCryptoClientStream::ZERO_RTT); 356 MockCryptoClientStream::ZERO_RTT);
370 host_resolver_.set_synchronous_mode(true); 357 host_resolver_.set_synchronous_mode(true);
371 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 358 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
372 "192.168.0.1", ""); 359 "192.168.0.1", "");
373 360
374 QuicStreamRequest request(factory_.get()); 361 QuicStreamRequest request(factory_.get());
375 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 362 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
376 /*cert_verify_flags=*/0, host_port_pair_.host(), 363 /*cert_verify_flags=*/0, host_port_pair_.host(),
377 "GET", net_log_, callback_.callback())); 364 "GET", net_log_, callback_.callback()));
378 365
379 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 366 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
380 EXPECT_TRUE(stream.get()); 367 EXPECT_TRUE(stream.get());
381 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 368 EXPECT_TRUE(socket_data.AllReadDataConsumed());
382 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 369 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
383 } 370 }
384 371
385 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { 372 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) {
386 Initialize(); 373 Initialize();
387 374
388 MockRead reads[] = { 375 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
389 MockRead(ASYNC, OK, 0) // EOF 376 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
390 };
391 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
392 socket_factory_.AddSocketDataProvider(&socket_data); 377 socket_factory_.AddSocketDataProvider(&socket_data);
393 socket_data.StopAfter(1);
394 378
395 crypto_client_stream_factory_.set_handshake_mode( 379 crypto_client_stream_factory_.set_handshake_mode(
396 MockCryptoClientStream::ZERO_RTT); 380 MockCryptoClientStream::ZERO_RTT);
397 host_resolver_.set_synchronous_mode(true); 381 host_resolver_.set_synchronous_mode(true);
398 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 382 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
399 "192.168.0.1", ""); 383 "192.168.0.1", "");
400 384
401 QuicStreamRequest request(factory_.get()); 385 QuicStreamRequest request(factory_.get());
402 // Posts require handshake confirmation, so this will return asynchronously. 386 // Posts require handshake confirmation, so this will return asynchronously.
403 EXPECT_EQ(ERR_IO_PENDING, 387 EXPECT_EQ(ERR_IO_PENDING,
404 request.Request(host_port_pair_, privacy_mode_, 388 request.Request(host_port_pair_, privacy_mode_,
405 /*cert_verify_flags=*/0, host_port_pair_.host(), 389 /*cert_verify_flags=*/0, host_port_pair_.host(),
406 "POST", net_log_, callback_.callback())); 390 "POST", net_log_, callback_.callback()));
407 391
408 // Confirm the handshake and verify that the stream is created. 392 // Confirm the handshake and verify that the stream is created.
409 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( 393 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent(
410 QuicSession::HANDSHAKE_CONFIRMED); 394 QuicSession::HANDSHAKE_CONFIRMED);
411 395
412 EXPECT_EQ(OK, callback_.WaitForResult()); 396 EXPECT_EQ(OK, callback_.WaitForResult());
413 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 397 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
414 EXPECT_TRUE(stream.get()); 398 EXPECT_TRUE(stream.get());
415 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 399 EXPECT_TRUE(socket_data.AllReadDataConsumed());
416 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 400 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
417 } 401 }
418 402
419 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { 403 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) {
420 Initialize(); 404 Initialize();
421 405
422 MockRead reads[] = { 406 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
423 MockRead(ASYNC, OK, 0), 407 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
424 };
425 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
426 socket_factory_.AddSocketDataProvider(&socket_data); 408 socket_factory_.AddSocketDataProvider(&socket_data);
427 socket_data.StopAfter(1);
428 409
429 crypto_client_stream_factory_.set_handshake_mode( 410 crypto_client_stream_factory_.set_handshake_mode(
430 MockCryptoClientStream::ZERO_RTT); 411 MockCryptoClientStream::ZERO_RTT);
431 host_resolver_.set_synchronous_mode(true); 412 host_resolver_.set_synchronous_mode(true);
432 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 413 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
433 "192.168.0.1", ""); 414 "192.168.0.1", "");
434 415
435 QuicStreamRequest request(factory_.get()); 416 QuicStreamRequest request(factory_.get());
436 int rv = request.Request( 417 int rv = request.Request(
437 host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, 418 host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0,
438 "different.host.example.com", "GET", net_log_, callback_.callback()); 419 "different.host.example.com", "GET", net_log_, callback_.callback());
439 // If server and origin have different hostnames, then handshake confirmation 420 // If server and origin have different hostnames, then handshake confirmation
440 // should be required, so Request will return asynchronously. 421 // should be required, so Request will return asynchronously.
441 EXPECT_EQ(ERR_IO_PENDING, rv); 422 EXPECT_EQ(ERR_IO_PENDING, rv);
442 // Confirm handshake. 423 // Confirm handshake.
443 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( 424 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent(
444 QuicSession::HANDSHAKE_CONFIRMED); 425 QuicSession::HANDSHAKE_CONFIRMED);
445 EXPECT_EQ(OK, callback_.WaitForResult()); 426 EXPECT_EQ(OK, callback_.WaitForResult());
446 427
447 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 428 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
448 EXPECT_TRUE(stream.get()); 429 EXPECT_TRUE(stream.get());
449 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 430 EXPECT_TRUE(socket_data.AllReadDataConsumed());
450 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 431 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
451 } 432 }
452 433
453 TEST_P(QuicStreamFactoryTest, GoAway) { 434 TEST_P(QuicStreamFactoryTest, GoAway) {
454 Initialize(); 435 Initialize();
455 436
456 MockRead reads[] = { 437 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
457 MockRead(ASYNC, OK, 0) // EOF 438 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
458 };
459 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
460 socket_factory_.AddSocketDataProvider(&socket_data); 439 socket_factory_.AddSocketDataProvider(&socket_data);
461 socket_data.StopAfter(1);
462 440
463 QuicStreamRequest request(factory_.get()); 441 QuicStreamRequest request(factory_.get());
464 EXPECT_EQ(ERR_IO_PENDING, 442 EXPECT_EQ(ERR_IO_PENDING,
465 request.Request(host_port_pair_, privacy_mode_, 443 request.Request(host_port_pair_, privacy_mode_,
466 /*cert_verify_flags=*/0, host_port_pair_.host(), 444 /*cert_verify_flags=*/0, host_port_pair_.host(),
467 "GET", net_log_, callback_.callback())); 445 "GET", net_log_, callback_.callback()));
468 446
469 EXPECT_EQ(OK, callback_.WaitForResult()); 447 EXPECT_EQ(OK, callback_.WaitForResult());
470 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 448 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
471 EXPECT_TRUE(stream.get()); 449 EXPECT_TRUE(stream.get());
472 450
473 QuicChromiumClientSession* session = 451 QuicChromiumClientSession* session =
474 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 452 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
475 453
476 session->OnGoAway(QuicGoAwayFrame()); 454 session->OnGoAway(QuicGoAwayFrame());
477 455
478 EXPECT_FALSE( 456 EXPECT_FALSE(
479 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 457 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
480 458
481 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 459 EXPECT_TRUE(socket_data.AllReadDataConsumed());
482 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 460 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
483 } 461 }
484 462
485 TEST_P(QuicStreamFactoryTest, Pooling) { 463 TEST_P(QuicStreamFactoryTest, Pooling) {
486 Initialize(); 464 Initialize();
487 465
488 MockRead reads[] = { 466 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
489 MockRead(ASYNC, OK, 0) // EOF 467 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
490 };
491 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
492 socket_factory_.AddSocketDataProvider(&socket_data); 468 socket_factory_.AddSocketDataProvider(&socket_data);
493 socket_data.StopAfter(1);
494 469
495 HostPortPair server2("mail.google.com", kDefaultServerPort); 470 HostPortPair server2("mail.google.com", kDefaultServerPort);
496 host_resolver_.set_synchronous_mode(true); 471 host_resolver_.set_synchronous_mode(true);
497 host_resolver_.rules()->AddIPLiteralRule( 472 host_resolver_.rules()->AddIPLiteralRule(
498 kDefaultServerHostName, "192.168.0.1", ""); 473 kDefaultServerHostName, "192.168.0.1", "");
499 host_resolver_.rules()->AddIPLiteralRule( 474 host_resolver_.rules()->AddIPLiteralRule(
500 "mail.google.com", "192.168.0.1", ""); 475 "mail.google.com", "192.168.0.1", "");
501 476
502 QuicStreamRequest request(factory_.get()); 477 QuicStreamRequest request(factory_.get());
503 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 478 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
(...skipping 15 matching lines...) Expand all
519 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 494 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
520 495
521 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 496 EXPECT_TRUE(socket_data.AllReadDataConsumed());
522 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 497 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
523 } 498 }
524 499
525 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { 500 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) {
526 disable_connection_pooling_ = true; 501 disable_connection_pooling_ = true;
527 Initialize(); 502 Initialize();
528 503
529 MockRead reads[] = { 504 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
530 MockRead(ASYNC, OK, 0) // EOF 505 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
531 }; 506 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
532 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
533 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
534 socket_factory_.AddSocketDataProvider(&socket_data1); 507 socket_factory_.AddSocketDataProvider(&socket_data1);
535 socket_factory_.AddSocketDataProvider(&socket_data2); 508 socket_factory_.AddSocketDataProvider(&socket_data2);
536 socket_data1.StopAfter(1);
537 socket_data2.StopAfter(1);
538 509
539 HostPortPair server2("mail.google.com", kDefaultServerPort); 510 HostPortPair server2("mail.google.com", kDefaultServerPort);
540 host_resolver_.set_synchronous_mode(true); 511 host_resolver_.set_synchronous_mode(true);
541 host_resolver_.rules()->AddIPLiteralRule( 512 host_resolver_.rules()->AddIPLiteralRule(
542 kDefaultServerHostName, "192.168.0.1", ""); 513 kDefaultServerHostName, "192.168.0.1", "");
543 host_resolver_.rules()->AddIPLiteralRule( 514 host_resolver_.rules()->AddIPLiteralRule(
544 "mail.google.com", "192.168.0.1", ""); 515 "mail.google.com", "192.168.0.1", "");
545 516
546 QuicStreamRequest request(factory_.get()); 517 QuicStreamRequest request(factory_.get());
547 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 518 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
(...skipping 16 matching lines...) Expand all
564 535
565 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 536 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
566 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 537 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
567 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 538 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
568 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 539 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
569 } 540 }
570 541
571 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { 542 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) {
572 Initialize(); 543 Initialize();
573 544
574 MockRead reads[] = { 545 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
575 MockRead(ASYNC, OK, 0) // EOF 546 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
576 }; 547 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
577 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
578 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
579 socket_factory_.AddSocketDataProvider(&socket_data1); 548 socket_factory_.AddSocketDataProvider(&socket_data1);
580 socket_factory_.AddSocketDataProvider(&socket_data2); 549 socket_factory_.AddSocketDataProvider(&socket_data2);
581 socket_data1.StopAfter(1);
582 socket_data2.StopAfter(1);
583 550
584 HostPortPair server2("mail.google.com", kDefaultServerPort); 551 HostPortPair server2("mail.google.com", kDefaultServerPort);
585 host_resolver_.set_synchronous_mode(true); 552 host_resolver_.set_synchronous_mode(true);
586 host_resolver_.rules()->AddIPLiteralRule( 553 host_resolver_.rules()->AddIPLiteralRule(
587 kDefaultServerHostName, "192.168.0.1", ""); 554 kDefaultServerHostName, "192.168.0.1", "");
588 host_resolver_.rules()->AddIPLiteralRule( 555 host_resolver_.rules()->AddIPLiteralRule(
589 "mail.google.com", "192.168.0.1", ""); 556 "mail.google.com", "192.168.0.1", "");
590 557
591 QuicStreamRequest request(factory_.get()); 558 QuicStreamRequest request(factory_.get());
592 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 559 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
(...skipping 28 matching lines...) Expand all
621 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); 588 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2));
622 589
623 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 590 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
624 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 591 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
625 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 592 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
626 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 593 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
627 } 594 }
628 595
629 TEST_P(QuicStreamFactoryTest, HttpsPooling) { 596 TEST_P(QuicStreamFactoryTest, HttpsPooling) {
630 Initialize(); 597 Initialize();
631 MockRead reads[] = { 598 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
632 MockRead(ASYNC, OK, 0) // EOF 599 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
633 };
634 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
635 socket_factory_.AddSocketDataProvider(&socket_data); 600 socket_factory_.AddSocketDataProvider(&socket_data);
636 socket_data.StopAfter(1);
637 601
638 HostPortPair server1("www.example.org", 443); 602 HostPortPair server1("www.example.org", 443);
639 HostPortPair server2("mail.example.org", 443); 603 HostPortPair server2("mail.example.org", 443);
640 604
641 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 605 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
642 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 606 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
643 607
644 host_resolver_.set_synchronous_mode(true); 608 host_resolver_.set_synchronous_mode(true);
645 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 609 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
646 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 610 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
(...skipping 17 matching lines...) Expand all
664 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 628 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
665 629
666 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 630 EXPECT_TRUE(socket_data.AllReadDataConsumed());
667 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 631 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
668 } 632 }
669 633
670 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { 634 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) {
671 disable_connection_pooling_ = true; 635 disable_connection_pooling_ = true;
672 Initialize(); 636 Initialize();
673 637
674 MockRead reads[] = { 638 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
675 MockRead(ASYNC, OK, 0) // EOF 639 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
676 }; 640 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
677 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
678 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
679 socket_factory_.AddSocketDataProvider(&socket_data1); 641 socket_factory_.AddSocketDataProvider(&socket_data1);
680 socket_factory_.AddSocketDataProvider(&socket_data2); 642 socket_factory_.AddSocketDataProvider(&socket_data2);
681 socket_data1.StopAfter(1);
682 socket_data2.StopAfter(1);
683 643
684 HostPortPair server1("www.example.org", 443); 644 HostPortPair server1("www.example.org", 443);
685 HostPortPair server2("mail.example.org", 443); 645 HostPortPair server2("mail.example.org", 443);
686 646
687 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 647 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
688 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 648 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
689 649
690 host_resolver_.set_synchronous_mode(true); 650 host_resolver_.set_synchronous_mode(true);
691 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 651 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
692 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 652 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
(...skipping 19 matching lines...) Expand all
712 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 672 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
713 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 673 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
714 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 674 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
715 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 675 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
716 } 676 }
717 677
718 class QuicAlternativeServiceCertificateValidationPooling 678 class QuicAlternativeServiceCertificateValidationPooling
719 : public QuicStreamFactoryTest { 679 : public QuicStreamFactoryTest {
720 public: 680 public:
721 void Run(bool valid) { 681 void Run(bool valid) {
722 MockRead reads[] = { 682 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
723 MockRead(ASYNC, OK, 0) // EOF 683 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
724 };
725 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
726 socket_factory_.AddSocketDataProvider(&socket_data1); 684 socket_factory_.AddSocketDataProvider(&socket_data1);
727 socket_data1.StopAfter(1);
728 685
729 HostPortPair server1("www.example.org", 443); 686 HostPortPair server1("www.example.org", 443);
730 HostPortPair server2("mail.example.org", 443); 687 HostPortPair server2("mail.example.org", 443);
731 688
732 std::string origin_host(valid ? "mail.example.org" : "invalid.example.org"); 689 std::string origin_host(valid ? "mail.example.org" : "invalid.example.org");
733 HostPortPair alternative("www.example.org", 443); 690 HostPortPair alternative("www.example.org", 443);
734 691
735 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 692 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
736 bool common_name_fallback_used; 693 bool common_name_fallback_used;
737 EXPECT_EQ(valid, 694 EXPECT_EQ(valid,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 Run(true); 741 Run(true);
785 } 742 }
786 743
787 TEST_P(QuicAlternativeServiceCertificateValidationPooling, Invalid) { 744 TEST_P(QuicAlternativeServiceCertificateValidationPooling, Invalid) {
788 Initialize(); 745 Initialize();
789 Run(false); 746 Run(false);
790 } 747 }
791 748
792 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { 749 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) {
793 Initialize(); 750 Initialize();
794 MockRead reads[] = { 751 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
795 MockRead(ASYNC, OK, 0) // EOF 752 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
796 };
797 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
798 socket_factory_.AddSocketDataProvider(&socket_data); 753 socket_factory_.AddSocketDataProvider(&socket_data);
799 socket_data.StopAfter(1);
800 754
801 HostPortPair server1("www.example.org", 443); 755 HostPortPair server1("www.example.org", 443);
802 HostPortPair server2("mail.example.org", 443); 756 HostPortPair server2("mail.example.org", 443);
803 uint8 primary_pin = 1; 757 uint8 primary_pin = 1;
804 uint8 backup_pin = 2; 758 uint8 backup_pin = 2;
805 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 759 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin,
806 backup_pin); 760 backup_pin);
807 761
808 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 762 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
809 verify_details.cert_verify_result.public_key_hashes.push_back( 763 verify_details.cert_verify_result.public_key_hashes.push_back(
(...skipping 23 matching lines...) Expand all
833 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 787 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
834 788
835 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 789 EXPECT_TRUE(socket_data.AllReadDataConsumed());
836 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 790 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
837 } 791 }
838 792
839 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { 793 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) {
840 disable_connection_pooling_ = true; 794 disable_connection_pooling_ = true;
841 Initialize(); 795 Initialize();
842 796
843 MockRead reads[] = { 797 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
844 MockRead(ASYNC, OK, 0) // EOF 798 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
845 }; 799 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
846 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
847 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
848 socket_factory_.AddSocketDataProvider(&socket_data1); 800 socket_factory_.AddSocketDataProvider(&socket_data1);
849 socket_factory_.AddSocketDataProvider(&socket_data2); 801 socket_factory_.AddSocketDataProvider(&socket_data2);
850 socket_data1.StopAfter(1);
851 socket_data2.StopAfter(1);
852 802
853 HostPortPair server1("www.example.org", 443); 803 HostPortPair server1("www.example.org", 443);
854 HostPortPair server2("mail.example.org", 443); 804 HostPortPair server2("mail.example.org", 443);
855 uint8 primary_pin = 1; 805 uint8 primary_pin = 1;
856 uint8 backup_pin = 2; 806 uint8 backup_pin = 2;
857 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 807 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin,
858 backup_pin); 808 backup_pin);
859 809
860 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 810 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
861 verify_details.cert_verify_result.public_key_hashes.push_back( 811 verify_details.cert_verify_result.public_key_hashes.push_back(
(...skipping 23 matching lines...) Expand all
885 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 835 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
886 836
887 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 837 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
888 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 838 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
889 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 839 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
890 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 840 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
891 } 841 }
892 842
893 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { 843 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) {
894 Initialize(); 844 Initialize();
895 MockRead reads[] = { 845 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
896 MockRead(ASYNC, OK, 0) // EOF 846 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
897 }; 847 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
898 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0);
899 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
900 socket_factory_.AddSocketDataProvider(&socket_data1); 848 socket_factory_.AddSocketDataProvider(&socket_data1);
901 socket_factory_.AddSocketDataProvider(&socket_data2); 849 socket_factory_.AddSocketDataProvider(&socket_data2);
902 socket_data1.StopAfter(1);
903 socket_data2.StopAfter(1);
904 850
905 HostPortPair server1("www.example.org", 443); 851 HostPortPair server1("www.example.org", 443);
906 HostPortPair server2("mail.example.org", 443); 852 HostPortPair server2("mail.example.org", 443);
907 uint8 primary_pin = 1; 853 uint8 primary_pin = 1;
908 uint8 backup_pin = 2; 854 uint8 backup_pin = 2;
909 uint8 bad_pin = 3; 855 uint8 bad_pin = 3;
910 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, 856 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin,
911 backup_pin); 857 backup_pin);
912 858
913 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails(); 859 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails();
(...skipping 29 matching lines...) Expand all
943 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 889 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
944 890
945 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 891 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
946 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 892 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
947 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 893 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
948 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 894 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
949 } 895 }
950 896
951 TEST_P(QuicStreamFactoryTest, Goaway) { 897 TEST_P(QuicStreamFactoryTest, Goaway) {
952 Initialize(); 898 Initialize();
953 MockRead reads[] = { 899 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
954 MockRead(ASYNC, OK, 0) // EOF 900 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
955 };
956 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
957 socket_data.StopAfter(1);
958 socket_factory_.AddSocketDataProvider(&socket_data); 901 socket_factory_.AddSocketDataProvider(&socket_data);
959 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 902 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
960 socket_data2.StopAfter(1);
961 socket_factory_.AddSocketDataProvider(&socket_data2); 903 socket_factory_.AddSocketDataProvider(&socket_data2);
962 904
963 QuicStreamRequest request(factory_.get()); 905 QuicStreamRequest request(factory_.get());
964 EXPECT_EQ(ERR_IO_PENDING, 906 EXPECT_EQ(ERR_IO_PENDING,
965 request.Request(host_port_pair_, privacy_mode_, 907 request.Request(host_port_pair_, privacy_mode_,
966 /*cert_verify_flags=*/0, host_port_pair_.host(), 908 /*cert_verify_flags=*/0, host_port_pair_.host(),
967 "GET", net_log_, callback_.callback())); 909 "GET", net_log_, callback_.callback()));
968 910
969 EXPECT_EQ(OK, callback_.WaitForResult()); 911 EXPECT_EQ(OK, callback_.WaitForResult());
970 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 912 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 QuicStreamId stream_id = kClientDataStreamId1; 955 QuicStreamId stream_id = kClientDataStreamId1;
1014 scoped_ptr<QuicEncryptedPacket> client_rst( 956 scoped_ptr<QuicEncryptedPacket> client_rst(
1015 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); 957 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED));
1016 MockWrite writes[] = { 958 MockWrite writes[] = {
1017 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0), 959 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0),
1018 }; 960 };
1019 scoped_ptr<QuicEncryptedPacket> server_rst( 961 scoped_ptr<QuicEncryptedPacket> server_rst(
1020 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); 962 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED));
1021 MockRead reads[] = { 963 MockRead reads[] = {
1022 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), 964 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1),
1023 MockRead(ASYNC, OK, 2) // EOF 965 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2)};
mmenke 2015/12/18 17:37:53 Because this was calling RunFor(2) before, the fin
Ryan Hamilton 2015/12/18 19:50:25 Yeah, this test was "exploiting" RunFor(). Your fi
1024 }; 966 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1025 DeterministicSocketData socket_data(reads, arraysize(reads), 967 arraysize(writes));
1026 writes, arraysize(writes));
1027 socket_factory_.AddSocketDataProvider(&socket_data); 968 socket_factory_.AddSocketDataProvider(&socket_data);
1028 socket_data.StopAfter(2);
1029 969
1030 HttpRequestInfo request_info; 970 HttpRequestInfo request_info;
1031 std::vector<QuicHttpStream*> streams; 971 std::vector<QuicHttpStream*> streams;
1032 // The MockCryptoClientStream sets max_open_streams to be 972 // The MockCryptoClientStream sets max_open_streams to be
1033 // kDefaultMaxStreamsPerConnection / 2. 973 // kDefaultMaxStreamsPerConnection / 2.
1034 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { 974 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) {
1035 QuicStreamRequest request(factory_.get()); 975 QuicStreamRequest request(factory_.get());
1036 int rv = request.Request(host_port_pair_, privacy_mode_, 976 int rv = request.Request(host_port_pair_, privacy_mode_,
1037 /*cert_verify_flags=*/0, host_port_pair_.host(), 977 /*cert_verify_flags=*/0, host_port_pair_.host(),
1038 "GET", net_log_, callback_.callback()); 978 "GET", net_log_, callback_.callback());
(...skipping 16 matching lines...) Expand all
1055 "GET", net_log_, CompletionCallback())); 995 "GET", net_log_, CompletionCallback()));
1056 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 996 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1057 EXPECT_TRUE(stream); 997 EXPECT_TRUE(stream);
1058 EXPECT_EQ(ERR_IO_PENDING, stream->InitializeStream( 998 EXPECT_EQ(ERR_IO_PENDING, stream->InitializeStream(
1059 &request_info, DEFAULT_PRIORITY, net_log_, callback_.callback())); 999 &request_info, DEFAULT_PRIORITY, net_log_, callback_.callback()));
1060 1000
1061 // Close the first stream. 1001 // Close the first stream.
1062 streams.front()->Close(false); 1002 streams.front()->Close(false);
1063 // Trigger exchange of RSTs that in turn allow progress for the last 1003 // Trigger exchange of RSTs that in turn allow progress for the last
1064 // stream. 1004 // stream.
1065 socket_data.RunFor(2);
1066
1067 ASSERT_TRUE(callback_.have_result());
1068 EXPECT_EQ(OK, callback_.WaitForResult()); 1005 EXPECT_EQ(OK, callback_.WaitForResult());
1069 1006
1070 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1007 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1071 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1008 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1072 1009
1073 // Force close of the connection to suppress the generation of RST 1010 // Force close of the connection to suppress the generation of RST
1074 // packets when streams are torn down, which wouldn't be relevant to 1011 // packets when streams are torn down, which wouldn't be relevant to
1075 // this test anyway. 1012 // this test anyway.
1076 QuicChromiumClientSession* session = 1013 QuicChromiumClientSession* session =
1077 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 1014 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
1078 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, true); 1015 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, true);
1079 1016
1080 STLDeleteElements(&streams); 1017 STLDeleteElements(&streams);
1081 } 1018 }
1082 1019
1083 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { 1020 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) {
1084 Initialize(); 1021 Initialize();
1085 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); 1022 SequencedSocketData socket_data(nullptr, 0, nullptr, 0);
1086 socket_factory_.AddSocketDataProvider(&socket_data); 1023 socket_factory_.AddSocketDataProvider(&socket_data);
1087 1024
1088 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); 1025 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName);
1089 1026
1090 QuicStreamRequest request(factory_.get()); 1027 QuicStreamRequest request(factory_.get());
1091 EXPECT_EQ(ERR_IO_PENDING, 1028 EXPECT_EQ(ERR_IO_PENDING,
1092 request.Request(host_port_pair_, privacy_mode_, 1029 request.Request(host_port_pair_, privacy_mode_,
1093 /*cert_verify_flags=*/0, host_port_pair_.host(), 1030 /*cert_verify_flags=*/0, host_port_pair_.host(),
1094 "GET", net_log_, callback_.callback())); 1031 "GET", net_log_, callback_.callback()));
1095 1032
1096 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); 1033 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult());
1097 1034
1098 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1035 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1099 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1036 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1100 } 1037 }
1101 1038
1102 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { 1039 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) {
1103 Initialize(); 1040 Initialize();
1104 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); 1041 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE);
1105 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); 1042 SequencedSocketData socket_data(nullptr, 0, nullptr, 0);
1106 socket_data.set_connect_data(connect); 1043 socket_data.set_connect_data(connect);
1107 socket_factory_.AddSocketDataProvider(&socket_data); 1044 socket_factory_.AddSocketDataProvider(&socket_data);
1108 socket_data.StopAfter(1);
1109 1045
1110 QuicStreamRequest request(factory_.get()); 1046 QuicStreamRequest request(factory_.get());
1111 EXPECT_EQ(ERR_IO_PENDING, 1047 EXPECT_EQ(ERR_IO_PENDING,
1112 request.Request(host_port_pair_, privacy_mode_, 1048 request.Request(host_port_pair_, privacy_mode_,
1113 /*cert_verify_flags=*/0, host_port_pair_.host(), 1049 /*cert_verify_flags=*/0, host_port_pair_.host(),
1114 "GET", net_log_, callback_.callback())); 1050 "GET", net_log_, callback_.callback()));
1115 1051
1116 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); 1052 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult());
1117 1053
1118 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1054 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1119 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1055 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1120 } 1056 }
1121 1057
1122 TEST_P(QuicStreamFactoryTest, CancelCreate) { 1058 TEST_P(QuicStreamFactoryTest, CancelCreate) {
1123 Initialize(); 1059 Initialize();
1124 MockRead reads[] = { 1060 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1125 MockRead(ASYNC, OK, 0) // EOF 1061 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1126 };
1127 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1128 socket_factory_.AddSocketDataProvider(&socket_data); 1062 socket_factory_.AddSocketDataProvider(&socket_data);
1129 { 1063 {
1130 QuicStreamRequest request(factory_.get()); 1064 QuicStreamRequest request(factory_.get());
1131 EXPECT_EQ(ERR_IO_PENDING, 1065 EXPECT_EQ(ERR_IO_PENDING,
1132 request.Request(host_port_pair_, privacy_mode_, 1066 request.Request(host_port_pair_, privacy_mode_,
1133 /*cert_verify_flags=*/0, host_port_pair_.host(), 1067 /*cert_verify_flags=*/0, host_port_pair_.host(),
1134 "GET", net_log_, callback_.callback())); 1068 "GET", net_log_, callback_.callback()));
1135 } 1069 }
1136 1070
1137 socket_data.StopAfter(1); 1071 base::RunLoop().RunUntilIdle();
1138 base::RunLoop run_loop;
1139 run_loop.RunUntilIdle();
1140 1072
1141 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); 1073 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_));
1142 EXPECT_TRUE(stream.get()); 1074 EXPECT_TRUE(stream.get());
1143 stream.reset(); 1075 stream.reset();
1144 1076
1145 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1077 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1146 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1078 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1147 } 1079 }
1148 1080
1149 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { 1081 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) {
(...skipping 19 matching lines...) Expand all
1169 int original_port = 1101 int original_port =
1170 GetSourcePortForNewSessionAndGoAway(host_port_pair_); 1102 GetSourcePortForNewSessionAndGoAway(host_port_pair_);
1171 // Verify that the port is different after the goaway. 1103 // Verify that the port is different after the goaway.
1172 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_)); 1104 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_));
1173 // Since the previous session did not goaway we should see the original port. 1105 // Since the previous session did not goaway we should see the original port.
1174 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); 1106 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_));
1175 } 1107 }
1176 1108
1177 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { 1109 TEST_P(QuicStreamFactoryTest, CloseAllSessions) {
1178 Initialize(); 1110 Initialize();
1179 MockRead reads[] = { 1111 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1180 MockRead(ASYNC, 0, 0) // EOF
1181 };
1182 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1112 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1183 std::vector<MockWrite> writes; 1113 std::vector<MockWrite> writes;
1184 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1114 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1185 DeterministicSocketData socket_data(reads, arraysize(reads), 1115 SequencedSocketData socket_data(reads, arraysize(reads),
1186 writes.empty() ? nullptr : &writes[0], 1116 writes.empty() ? nullptr : &writes[0],
1187 writes.size()); 1117 writes.size());
1188 socket_factory_.AddSocketDataProvider(&socket_data); 1118 socket_factory_.AddSocketDataProvider(&socket_data);
1189 socket_data.StopAfter(1);
1190 1119
1191 MockRead reads2[] = { 1120 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1192 MockRead(ASYNC, 0, 0) // EOF 1121 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1193 };
1194 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1195 socket_factory_.AddSocketDataProvider(&socket_data2); 1122 socket_factory_.AddSocketDataProvider(&socket_data2);
1196 socket_data2.StopAfter(1);
1197 1123
1198 QuicStreamRequest request(factory_.get()); 1124 QuicStreamRequest request(factory_.get());
1199 EXPECT_EQ(ERR_IO_PENDING, 1125 EXPECT_EQ(ERR_IO_PENDING,
1200 request.Request(host_port_pair_, privacy_mode_, 1126 request.Request(host_port_pair_, privacy_mode_,
1201 /*cert_verify_flags=*/0, host_port_pair_.host(), 1127 /*cert_verify_flags=*/0, host_port_pair_.host(),
1202 "GET", net_log_, callback_.callback())); 1128 "GET", net_log_, callback_.callback()));
1203 1129
1204 EXPECT_EQ(OK, callback_.WaitForResult()); 1130 EXPECT_EQ(OK, callback_.WaitForResult());
1205 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1131 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1206 HttpRequestInfo request_info; 1132 HttpRequestInfo request_info;
(...skipping 22 matching lines...) Expand all
1229 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1155 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1230 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1156 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1231 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1157 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1232 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1158 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1233 } 1159 }
1234 1160
1235 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { 1161 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) {
1236 close_sessions_on_ip_change_ = true; 1162 close_sessions_on_ip_change_ = true;
1237 Initialize(); 1163 Initialize();
1238 1164
1239 MockRead reads[] = { 1165 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1240 MockRead(ASYNC, 0, 0) // EOF
1241 };
1242 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1166 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1243 std::vector<MockWrite> writes; 1167 std::vector<MockWrite> writes;
1244 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1168 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1245 DeterministicSocketData socket_data(reads, arraysize(reads), 1169 SequencedSocketData socket_data(reads, arraysize(reads),
1246 writes.empty() ? nullptr : &writes[0], 1170 writes.empty() ? nullptr : &writes[0],
1247 writes.size()); 1171 writes.size());
1248 socket_factory_.AddSocketDataProvider(&socket_data); 1172 socket_factory_.AddSocketDataProvider(&socket_data);
1249 socket_data.StopAfter(1);
1250 1173
1251 MockRead reads2[] = { 1174 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1252 MockRead(ASYNC, 0, 0) // EOF 1175 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1253 };
1254 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1255 socket_factory_.AddSocketDataProvider(&socket_data2); 1176 socket_factory_.AddSocketDataProvider(&socket_data2);
1256 socket_data2.StopAfter(1);
1257 1177
1258 QuicStreamRequest request(factory_.get()); 1178 QuicStreamRequest request(factory_.get());
1259 EXPECT_EQ(ERR_IO_PENDING, 1179 EXPECT_EQ(ERR_IO_PENDING,
1260 request.Request(host_port_pair_, privacy_mode_, 1180 request.Request(host_port_pair_, privacy_mode_,
1261 /*cert_verify_flags=*/0, host_port_pair_.host(), 1181 /*cert_verify_flags=*/0, host_port_pair_.host(),
1262 "GET", net_log_, callback_.callback())); 1182 "GET", net_log_, callback_.callback()));
1263 1183
1264 EXPECT_EQ(OK, callback_.WaitForResult()); 1184 EXPECT_EQ(OK, callback_.WaitForResult());
1265 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1185 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1266 HttpRequestInfo request_info; 1186 HttpRequestInfo request_info;
(...skipping 21 matching lines...) Expand all
1288 stream.reset(); // Will reset stream 3. 1208 stream.reset(); // Will reset stream 3.
1289 1209
1290 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1210 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1291 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1211 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1292 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1212 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1293 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1213 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1294 } 1214 }
1295 1215
1296 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { 1216 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) {
1297 Initialize(); 1217 Initialize();
1298 MockRead reads[] = { 1218 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1299 MockRead(ASYNC, 0, 0) // EOF
1300 };
1301 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1219 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1302 std::vector<MockWrite> writes; 1220 std::vector<MockWrite> writes;
1303 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1221 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1304 DeterministicSocketData socket_data(reads, arraysize(reads), 1222 SequencedSocketData socket_data(reads, arraysize(reads),
1305 writes.empty() ? nullptr : &writes[0], 1223 writes.empty() ? nullptr : &writes[0],
1306 writes.size()); 1224 writes.size());
1307 socket_factory_.AddSocketDataProvider(&socket_data); 1225 socket_factory_.AddSocketDataProvider(&socket_data);
1308 socket_data.StopAfter(1);
1309 1226
1310 MockRead reads2[] = { 1227 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1311 MockRead(ASYNC, 0, 0) // EOF 1228 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1312 };
1313 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1314 socket_factory_.AddSocketDataProvider(&socket_data2); 1229 socket_factory_.AddSocketDataProvider(&socket_data2);
1315 socket_data2.StopAfter(1);
1316 1230
1317 QuicStreamRequest request(factory_.get()); 1231 QuicStreamRequest request(factory_.get());
1318 EXPECT_EQ(ERR_IO_PENDING, 1232 EXPECT_EQ(ERR_IO_PENDING,
1319 request.Request(host_port_pair_, privacy_mode_, 1233 request.Request(host_port_pair_, privacy_mode_,
1320 /*cert_verify_flags=*/0, host_port_pair_.host(), 1234 /*cert_verify_flags=*/0, host_port_pair_.host(),
1321 "GET", net_log_, callback_.callback())); 1235 "GET", net_log_, callback_.callback()));
1322 1236
1323 EXPECT_EQ(OK, callback_.WaitForResult()); 1237 EXPECT_EQ(OK, callback_.WaitForResult());
1324 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1238 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1325 HttpRequestInfo request_info; 1239 HttpRequestInfo request_info;
(...skipping 19 matching lines...) Expand all
1345 stream.reset(); // Will reset stream 3. 1259 stream.reset(); // Will reset stream 3.
1346 1260
1347 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1261 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1348 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1262 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1349 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1263 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1350 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1264 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1351 } 1265 }
1352 1266
1353 TEST_P(QuicStreamFactoryTest, OnCertAdded) { 1267 TEST_P(QuicStreamFactoryTest, OnCertAdded) {
1354 Initialize(); 1268 Initialize();
1355 MockRead reads[] = { 1269 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1356 MockRead(ASYNC, 0, 0) // EOF
1357 };
1358 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1270 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1359 std::vector<MockWrite> writes; 1271 std::vector<MockWrite> writes;
1360 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1272 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1361 DeterministicSocketData socket_data(reads, arraysize(reads), 1273 SequencedSocketData socket_data(reads, arraysize(reads),
1362 writes.empty() ? nullptr : &writes[0], 1274 writes.empty() ? nullptr : &writes[0],
1363 writes.size()); 1275 writes.size());
1364 socket_factory_.AddSocketDataProvider(&socket_data); 1276 socket_factory_.AddSocketDataProvider(&socket_data);
1365 socket_data.StopAfter(1);
1366 1277
1367 MockRead reads2[] = { 1278 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1368 MockRead(ASYNC, 0, 0) // EOF 1279 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1369 };
1370 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1371 socket_factory_.AddSocketDataProvider(&socket_data2); 1280 socket_factory_.AddSocketDataProvider(&socket_data2);
1372 socket_data2.StopAfter(1);
1373 1281
1374 QuicStreamRequest request(factory_.get()); 1282 QuicStreamRequest request(factory_.get());
1375 EXPECT_EQ(ERR_IO_PENDING, 1283 EXPECT_EQ(ERR_IO_PENDING,
1376 request.Request(host_port_pair_, privacy_mode_, 1284 request.Request(host_port_pair_, privacy_mode_,
1377 /*cert_verify_flags=*/0, host_port_pair_.host(), 1285 /*cert_verify_flags=*/0, host_port_pair_.host(),
1378 "GET", net_log_, callback_.callback())); 1286 "GET", net_log_, callback_.callback()));
1379 1287
1380 EXPECT_EQ(OK, callback_.WaitForResult()); 1288 EXPECT_EQ(OK, callback_.WaitForResult());
1381 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1289 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1382 HttpRequestInfo request_info; 1290 HttpRequestInfo request_info;
(...skipping 21 matching lines...) Expand all
1404 stream.reset(); // Will reset stream 3. 1312 stream.reset(); // Will reset stream 3.
1405 1313
1406 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1314 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1407 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1315 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1408 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1316 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1409 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1317 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1410 } 1318 }
1411 1319
1412 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { 1320 TEST_P(QuicStreamFactoryTest, OnCACertChanged) {
1413 Initialize(); 1321 Initialize();
1414 MockRead reads[] = { 1322 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1415 MockRead(ASYNC, 0, 0) // EOF
1416 };
1417 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); 1323 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket());
1418 std::vector<MockWrite> writes; 1324 std::vector<MockWrite> writes;
1419 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); 1325 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1));
1420 DeterministicSocketData socket_data(reads, arraysize(reads), 1326 SequencedSocketData socket_data(reads, arraysize(reads),
1421 writes.empty() ? nullptr : &writes[0], 1327 writes.empty() ? nullptr : &writes[0],
1422 writes.size()); 1328 writes.size());
1423 socket_factory_.AddSocketDataProvider(&socket_data); 1329 socket_factory_.AddSocketDataProvider(&socket_data);
1424 socket_data.StopAfter(1);
1425 1330
1426 MockRead reads2[] = { 1331 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1427 MockRead(ASYNC, 0, 0) // EOF 1332 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1428 };
1429 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1430 socket_factory_.AddSocketDataProvider(&socket_data2); 1333 socket_factory_.AddSocketDataProvider(&socket_data2);
1431 socket_data2.StopAfter(1);
1432 1334
1433 QuicStreamRequest request(factory_.get()); 1335 QuicStreamRequest request(factory_.get());
1434 EXPECT_EQ(ERR_IO_PENDING, 1336 EXPECT_EQ(ERR_IO_PENDING,
1435 request.Request(host_port_pair_, privacy_mode_, 1337 request.Request(host_port_pair_, privacy_mode_,
1436 /*cert_verify_flags=*/0, host_port_pair_.host(), 1338 /*cert_verify_flags=*/0, host_port_pair_.host(),
1437 "GET", net_log_, callback_.callback())); 1339 "GET", net_log_, callback_.callback()));
1438 1340
1439 EXPECT_EQ(OK, callback_.WaitForResult()); 1341 EXPECT_EQ(OK, callback_.WaitForResult());
1440 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1342 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1441 HttpRequestInfo request_info; 1343 HttpRequestInfo request_info;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1541 1443
1542 TEST_P(QuicStreamFactoryTest, RacingConnections) { 1444 TEST_P(QuicStreamFactoryTest, RacingConnections) {
1543 disable_disk_cache_ = false; 1445 disable_disk_cache_ = false;
1544 Initialize(); 1446 Initialize();
1545 1447
1546 if (!GetParam().enable_connection_racing) 1448 if (!GetParam().enable_connection_racing)
1547 return; 1449 return;
1548 1450
1549 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1451 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1550 1452
1551 MockRead reads[] = { 1453 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1552 MockRead(ASYNC, OK, 0) // EOF 1454 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1553 };
1554 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1555 socket_factory_.AddSocketDataProvider(&socket_data); 1455 socket_factory_.AddSocketDataProvider(&socket_data);
1556 socket_data.StopAfter(1);
1557 1456
1558 MockRead reads2[] = { 1457 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1559 MockRead(ASYNC, 0, 0) // EOF 1458 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1560 };
1561 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1562 socket_factory_.AddSocketDataProvider(&socket_data2); 1459 socket_factory_.AddSocketDataProvider(&socket_data2);
1563 socket_data2.StopAfter(1);
1564 1460
1565 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), 1461 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(),
1566 host_port_pair_.port()); 1462 host_port_pair_.port());
1567 AlternativeServiceInfoVector alternative_service_info_vector; 1463 AlternativeServiceInfoVector alternative_service_info_vector;
1568 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 1464 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
1569 alternative_service_info_vector.push_back( 1465 alternative_service_info_vector.push_back(
1570 AlternativeServiceInfo(alternative_service1, 1.0, expiration)); 1466 AlternativeServiceInfo(alternative_service1, 1.0, expiration));
1571 1467
1572 http_server_properties_.SetAlternativeServices( 1468 http_server_properties_.SetAlternativeServices(
1573 host_port_pair_, alternative_service_info_vector); 1469 host_port_pair_, alternative_service_info_vector);
(...skipping 21 matching lines...) Expand all
1595 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1491 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1596 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), 1492 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(),
1597 server_id)); 1493 server_id));
1598 } 1494 }
1599 1495
1600 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { 1496 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) {
1601 disable_disk_cache_ = true; 1497 disable_disk_cache_ = true;
1602 Initialize(); 1498 Initialize();
1603 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1499 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1604 1500
1605 MockRead reads[] = { 1501 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1606 MockRead(ASYNC, OK, 0) // EOF 1502 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1607 };
1608 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1609 socket_factory_.AddSocketDataProvider(&socket_data); 1503 socket_factory_.AddSocketDataProvider(&socket_data);
1610 socket_data.StopAfter(1);
1611 1504
1612 crypto_client_stream_factory_.set_handshake_mode( 1505 crypto_client_stream_factory_.set_handshake_mode(
1613 MockCryptoClientStream::ZERO_RTT); 1506 MockCryptoClientStream::ZERO_RTT);
1614 host_resolver_.set_synchronous_mode(true); 1507 host_resolver_.set_synchronous_mode(true);
1615 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1508 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1616 "192.168.0.1", ""); 1509 "192.168.0.1", "");
1617 1510
1618 QuicStreamRequest request(factory_.get()); 1511 QuicStreamRequest request(factory_.get());
1619 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1512 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
1620 /*cert_verify_flags=*/0, host_port_pair_.host(), 1513 /*cert_verify_flags=*/0, host_port_pair_.host(),
(...skipping 13 matching lines...) Expand all
1634 disable_disk_cache_ = false; 1527 disable_disk_cache_ = false;
1635 max_number_of_lossy_connections_ = 2; 1528 max_number_of_lossy_connections_ = 2;
1636 Initialize(); 1529 Initialize();
1637 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1530 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1638 1531
1639 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1532 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1640 host_port_pair_.port())); 1533 host_port_pair_.port()));
1641 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1534 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1642 factory_.get(), host_port_pair_.port())); 1535 factory_.get(), host_port_pair_.port()));
1643 1536
1644 MockRead reads[] = { 1537 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1645 MockRead(ASYNC, OK, 0) // EOF 1538 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1646 };
1647 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1648 socket_factory_.AddSocketDataProvider(&socket_data); 1539 socket_factory_.AddSocketDataProvider(&socket_data);
1649 socket_data.StopAfter(1);
1650 1540
1651 DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); 1541 SequencedSocketData socket_data2(nullptr, 0, nullptr, 0);
1652 socket_factory_.AddSocketDataProvider(&socket_data2); 1542 socket_factory_.AddSocketDataProvider(&socket_data2);
1653 socket_data2.StopAfter(1);
1654 1543
1655 DeterministicSocketData socket_data3(nullptr, 0, nullptr, 0); 1544 SequencedSocketData socket_data3(nullptr, 0, nullptr, 0);
1656 socket_factory_.AddSocketDataProvider(&socket_data3); 1545 socket_factory_.AddSocketDataProvider(&socket_data3);
1657 socket_data3.StopAfter(1);
1658 1546
1659 DeterministicSocketData socket_data4(nullptr, 0, nullptr, 0); 1547 SequencedSocketData socket_data4(nullptr, 0, nullptr, 0);
1660 socket_factory_.AddSocketDataProvider(&socket_data4); 1548 socket_factory_.AddSocketDataProvider(&socket_data4);
1661 socket_data4.StopAfter(1);
1662 1549
1663 HostPortPair server2("mail.example.org", kDefaultServerPort); 1550 HostPortPair server2("mail.example.org", kDefaultServerPort);
1664 HostPortPair server3("docs.example.org", kDefaultServerPort); 1551 HostPortPair server3("docs.example.org", kDefaultServerPort);
1665 HostPortPair server4("images.example.org", kDefaultServerPort); 1552 HostPortPair server4("images.example.org", kDefaultServerPort);
1666 1553
1667 crypto_client_stream_factory_.set_handshake_mode( 1554 crypto_client_stream_factory_.set_handshake_mode(
1668 MockCryptoClientStream::ZERO_RTT); 1555 MockCryptoClientStream::ZERO_RTT);
1669 host_resolver_.set_synchronous_mode(true); 1556 host_resolver_.set_synchronous_mode(true);
1670 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1557 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1671 "192.168.0.1", ""); 1558 "192.168.0.1", "");
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1807 disable_disk_cache_ = false; 1694 disable_disk_cache_ = false;
1808 threshold_public_resets_post_handshake_ = 2; 1695 threshold_public_resets_post_handshake_ = 2;
1809 Initialize(); 1696 Initialize();
1810 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1697 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1811 1698
1812 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1699 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1813 host_port_pair_.port())); 1700 host_port_pair_.port()));
1814 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1701 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1815 factory_.get(), host_port_pair_.port())); 1702 factory_.get(), host_port_pair_.port()));
1816 1703
1817 MockRead reads[] = { 1704 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1818 MockRead(ASYNC, OK, 0) // EOF 1705 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1819 };
1820 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1821 socket_factory_.AddSocketDataProvider(&socket_data); 1706 socket_factory_.AddSocketDataProvider(&socket_data);
1822 socket_data.StopAfter(1);
1823 1707
1824 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 1708 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
1825 socket_factory_.AddSocketDataProvider(&socket_data2); 1709 socket_factory_.AddSocketDataProvider(&socket_data2);
1826 socket_data2.StopAfter(1);
1827 1710
1828 HostPortPair server2("mail.example.org", kDefaultServerPort); 1711 HostPortPair server2("mail.example.org", kDefaultServerPort);
1829 1712
1830 crypto_client_stream_factory_.set_handshake_mode( 1713 crypto_client_stream_factory_.set_handshake_mode(
1831 MockCryptoClientStream::CONFIRM_HANDSHAKE); 1714 MockCryptoClientStream::CONFIRM_HANDSHAKE);
1832 host_resolver_.set_synchronous_mode(true); 1715 host_resolver_.set_synchronous_mode(true);
1833 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1716 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1834 "192.168.0.1", ""); 1717 "192.168.0.1", "");
1835 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1718 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1836 1719
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1891 disable_disk_cache_ = true; 1774 disable_disk_cache_ = true;
1892 threshold_timeouts_with_open_streams_ = 2; 1775 threshold_timeouts_with_open_streams_ = 2;
1893 Initialize(); 1776 Initialize();
1894 1777
1895 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1778 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
1896 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1779 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1897 host_port_pair_.port())); 1780 host_port_pair_.port()));
1898 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1781 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1899 factory_.get(), host_port_pair_.port())); 1782 factory_.get(), host_port_pair_.port()));
1900 1783
1901 MockRead reads[] = { 1784 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1902 MockRead(ASYNC, OK, 0) // EOF 1785 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1903 };
1904 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1905 socket_factory_.AddSocketDataProvider(&socket_data); 1786 socket_factory_.AddSocketDataProvider(&socket_data);
1906 socket_data.StopAfter(1);
1907 1787
1908 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 1788 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
1909 socket_factory_.AddSocketDataProvider(&socket_data2); 1789 socket_factory_.AddSocketDataProvider(&socket_data2);
1910 socket_data2.StopAfter(1);
1911 1790
1912 HostPortPair server2("mail.example.org", kDefaultServerPort); 1791 HostPortPair server2("mail.example.org", kDefaultServerPort);
1913 1792
1914 crypto_client_stream_factory_.set_handshake_mode( 1793 crypto_client_stream_factory_.set_handshake_mode(
1915 MockCryptoClientStream::CONFIRM_HANDSHAKE); 1794 MockCryptoClientStream::CONFIRM_HANDSHAKE);
1916 host_resolver_.set_synchronous_mode(true); 1795 host_resolver_.set_synchronous_mode(true);
1917 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1796 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1918 "192.168.0.1", ""); 1797 "192.168.0.1", "");
1919 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1798 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1920 1799
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { 1860 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) {
1982 disable_disk_cache_ = true; 1861 disable_disk_cache_ = true;
1983 threshold_public_resets_post_handshake_ = 2; 1862 threshold_public_resets_post_handshake_ = 2;
1984 Initialize(); 1863 Initialize();
1985 1864
1986 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1865 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
1987 host_port_pair_.port())); 1866 host_port_pair_.port()));
1988 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1867 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
1989 factory_.get(), host_port_pair_.port())); 1868 factory_.get(), host_port_pair_.port()));
1990 1869
1991 MockRead reads[] = { 1870 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1992 MockRead(ASYNC, OK, 0) // EOF 1871 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1993 };
1994 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1995 socket_factory_.AddSocketDataProvider(&socket_data); 1872 socket_factory_.AddSocketDataProvider(&socket_data);
1996 socket_data.StopAfter(1);
1997 1873
1998 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 1874 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
1999 socket_factory_.AddSocketDataProvider(&socket_data2); 1875 socket_factory_.AddSocketDataProvider(&socket_data2);
2000 socket_data2.StopAfter(1);
2001 1876
2002 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); 1877 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0);
2003 socket_factory_.AddSocketDataProvider(&socket_data3); 1878 socket_factory_.AddSocketDataProvider(&socket_data3);
2004 socket_data3.StopAfter(1);
2005 1879
2006 HostPortPair server2("mail.example.org", kDefaultServerPort); 1880 HostPortPair server2("mail.example.org", kDefaultServerPort);
2007 HostPortPair server3("docs.example.org", kDefaultServerPort); 1881 HostPortPair server3("docs.example.org", kDefaultServerPort);
2008 1882
2009 crypto_client_stream_factory_.set_handshake_mode( 1883 crypto_client_stream_factory_.set_handshake_mode(
2010 MockCryptoClientStream::CONFIRM_HANDSHAKE); 1884 MockCryptoClientStream::CONFIRM_HANDSHAKE);
2011 host_resolver_.set_synchronous_mode(true); 1885 host_resolver_.set_synchronous_mode(true);
2012 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1886 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2013 "192.168.0.1", ""); 1887 "192.168.0.1", "");
2014 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1888 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
2096 disable_disk_cache_ = true; 1970 disable_disk_cache_ = true;
2097 threshold_public_resets_post_handshake_ = 2; 1971 threshold_public_resets_post_handshake_ = 2;
2098 Initialize(); 1972 Initialize();
2099 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 1973 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
2100 1974
2101 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 1975 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2102 host_port_pair_.port())); 1976 host_port_pair_.port()));
2103 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 1977 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
2104 factory_.get(), host_port_pair_.port())); 1978 factory_.get(), host_port_pair_.port()));
2105 1979
2106 MockRead reads[] = { 1980 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2107 MockRead(ASYNC, OK, 0) // EOF 1981 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2108 };
2109 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2110 socket_factory_.AddSocketDataProvider(&socket_data); 1982 socket_factory_.AddSocketDataProvider(&socket_data);
2111 socket_data.StopAfter(1);
2112 1983
2113 // DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); 1984 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0);
2114 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 1985 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
2115 socket_factory_.AddSocketDataProvider(&socket_data2); 1986 socket_factory_.AddSocketDataProvider(&socket_data2);
2116 socket_data2.StopAfter(1);
2117 1987
2118 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); 1988 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0);
2119 socket_factory_.AddSocketDataProvider(&socket_data3); 1989 socket_factory_.AddSocketDataProvider(&socket_data3);
2120 socket_data3.StopAfter(1);
2121 1990
2122 HostPortPair server2("mail.example.org", kDefaultServerPort); 1991 HostPortPair server2("mail.example.org", kDefaultServerPort);
2123 HostPortPair server3("docs.example.org", kDefaultServerPort); 1992 HostPortPair server3("docs.example.org", kDefaultServerPort);
2124 1993
2125 crypto_client_stream_factory_.set_handshake_mode( 1994 crypto_client_stream_factory_.set_handshake_mode(
2126 MockCryptoClientStream::CONFIRM_HANDSHAKE); 1995 MockCryptoClientStream::CONFIRM_HANDSHAKE);
2127 host_resolver_.set_synchronous_mode(true); 1996 host_resolver_.set_synchronous_mode(true);
2128 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1997 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2129 "192.168.0.1", ""); 1998 "192.168.0.1", "");
2130 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1999 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
2219 disable_disk_cache_ = true; 2088 disable_disk_cache_ = true;
2220 threshold_public_resets_post_handshake_ = 2; 2089 threshold_public_resets_post_handshake_ = 2;
2221 Initialize(); 2090 Initialize();
2222 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 2091 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
2223 2092
2224 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2093 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2225 host_port_pair_.port())); 2094 host_port_pair_.port()));
2226 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 2095 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
2227 factory_.get(), host_port_pair_.port())); 2096 factory_.get(), host_port_pair_.port()));
2228 2097
2229 MockRead reads[] = { 2098 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2230 MockRead(ASYNC, OK, 0) // EOF 2099 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2231 };
2232 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2233 socket_factory_.AddSocketDataProvider(&socket_data); 2100 socket_factory_.AddSocketDataProvider(&socket_data);
2234 socket_data.StopAfter(1);
2235 2101
2236 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 2102 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
2237 socket_factory_.AddSocketDataProvider(&socket_data2); 2103 socket_factory_.AddSocketDataProvider(&socket_data2);
2238 socket_data2.StopAfter(1);
2239 2104
2240 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); 2105 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0);
2241 socket_factory_.AddSocketDataProvider(&socket_data3); 2106 socket_factory_.AddSocketDataProvider(&socket_data3);
2242 socket_data3.StopAfter(1);
2243 2107
2244 DeterministicSocketData socket_data4(reads, arraysize(reads), nullptr, 0); 2108 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0);
2245 socket_factory_.AddSocketDataProvider(&socket_data4); 2109 socket_factory_.AddSocketDataProvider(&socket_data4);
2246 socket_data4.StopAfter(1);
2247 2110
2248 HostPortPair server2("mail.example.org", kDefaultServerPort); 2111 HostPortPair server2("mail.example.org", kDefaultServerPort);
2249 HostPortPair server3("docs.example.org", kDefaultServerPort); 2112 HostPortPair server3("docs.example.org", kDefaultServerPort);
2250 HostPortPair server4("images.example.org", kDefaultServerPort); 2113 HostPortPair server4("images.example.org", kDefaultServerPort);
2251 2114
2252 crypto_client_stream_factory_.set_handshake_mode( 2115 crypto_client_stream_factory_.set_handshake_mode(
2253 MockCryptoClientStream::CONFIRM_HANDSHAKE); 2116 MockCryptoClientStream::CONFIRM_HANDSHAKE);
2254 host_resolver_.set_synchronous_mode(true); 2117 host_resolver_.set_synchronous_mode(true);
2255 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2118 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2256 "192.168.0.1", ""); 2119 "192.168.0.1", "");
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2359 disable_disk_cache_ = true; 2222 disable_disk_cache_ = true;
2360 threshold_public_resets_post_handshake_ = 2; 2223 threshold_public_resets_post_handshake_ = 2;
2361 Initialize(); 2224 Initialize();
2362 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 2225 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
2363 2226
2364 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2227 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2365 host_port_pair_.port())); 2228 host_port_pair_.port()));
2366 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 2229 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
2367 factory_.get(), host_port_pair_.port())); 2230 factory_.get(), host_port_pair_.port()));
2368 2231
2369 MockRead reads[] = { 2232 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2370 MockRead(ASYNC, OK, 0) // EOF 2233 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2371 };
2372 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2373 socket_factory_.AddSocketDataProvider(&socket_data); 2234 socket_factory_.AddSocketDataProvider(&socket_data);
2374 socket_data.StopAfter(1);
2375 2235
2376 // DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); 2236 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0);
2377 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 2237 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
2378 socket_factory_.AddSocketDataProvider(&socket_data2); 2238 socket_factory_.AddSocketDataProvider(&socket_data2);
2379 socket_data2.StopAfter(1);
2380 2239
2381 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); 2240 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0);
2382 socket_factory_.AddSocketDataProvider(&socket_data3); 2241 socket_factory_.AddSocketDataProvider(&socket_data3);
2383 socket_data3.StopAfter(1);
2384 2242
2385 DeterministicSocketData socket_data4(reads, arraysize(reads), nullptr, 0); 2243 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0);
2386 socket_factory_.AddSocketDataProvider(&socket_data4); 2244 socket_factory_.AddSocketDataProvider(&socket_data4);
2387 socket_data4.StopAfter(1);
2388 2245
2389 HostPortPair server2("mail.example.org", kDefaultServerPort); 2246 HostPortPair server2("mail.example.org", kDefaultServerPort);
2390 HostPortPair server3("docs.example.org", kDefaultServerPort); 2247 HostPortPair server3("docs.example.org", kDefaultServerPort);
2391 HostPortPair server4("images.example.org", kDefaultServerPort); 2248 HostPortPair server4("images.example.org", kDefaultServerPort);
2392 2249
2393 crypto_client_stream_factory_.set_handshake_mode( 2250 crypto_client_stream_factory_.set_handshake_mode(
2394 MockCryptoClientStream::CONFIRM_HANDSHAKE); 2251 MockCryptoClientStream::CONFIRM_HANDSHAKE);
2395 host_resolver_.set_synchronous_mode(true); 2252 host_resolver_.set_synchronous_mode(true);
2396 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2253 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2397 "192.168.0.1", ""); 2254 "192.168.0.1", "");
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2500 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 2357 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
2501 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 2358 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
2502 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); 2359 EXPECT_TRUE(socket_data4.AllReadDataConsumed());
2503 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); 2360 EXPECT_TRUE(socket_data4.AllWriteDataConsumed());
2504 } 2361 }
2505 2362
2506 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { 2363 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) {
2507 Initialize(); 2364 Initialize();
2508 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); 2365 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get());
2509 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); 2366 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false);
2510 MockRead reads[] = { 2367 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2511 MockRead(ASYNC, OK, 0), 2368 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2512 };
2513 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0);
2514 socket_factory_.AddSocketDataProvider(&socket_data); 2369 socket_factory_.AddSocketDataProvider(&socket_data);
2515 socket_data.StopAfter(1);
2516 2370
2517 ServerNetworkStats stats1; 2371 ServerNetworkStats stats1;
2518 stats1.srtt = base::TimeDelta::FromMicroseconds(10); 2372 stats1.srtt = base::TimeDelta::FromMicroseconds(10);
2519 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1); 2373 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1);
2520 2374
2521 crypto_client_stream_factory_.set_handshake_mode( 2375 crypto_client_stream_factory_.set_handshake_mode(
2522 MockCryptoClientStream::ZERO_RTT); 2376 MockCryptoClientStream::ZERO_RTT);
2523 host_resolver_.set_synchronous_mode(true); 2377 host_resolver_.set_synchronous_mode(true);
2524 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2378 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2525 "192.168.0.1", ""); 2379 "192.168.0.1", "");
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
2649 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { 2503 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) {
2650 Initialize(); 2504 Initialize();
2651 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0); 2505 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0);
2652 2506
2653 scoped_ptr<QuicEncryptedPacket> close_packet( 2507 scoped_ptr<QuicEncryptedPacket> close_packet(
2654 ConstructConnectionClosePacket(0)); 2508 ConstructConnectionClosePacket(0));
2655 vector<MockRead> reads; 2509 vector<MockRead> reads;
2656 reads.push_back( 2510 reads.push_back(
2657 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); 2511 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0));
2658 reads.push_back(MockRead(ASYNC, OK, 1)); 2512 reads.push_back(MockRead(ASYNC, OK, 1));
2659 DeterministicSocketData socket_data(&reads[0], reads.size(), nullptr, 0); 2513 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0);
2660 socket_factory_.AddSocketDataProvider(&socket_data); 2514 socket_factory_.AddSocketDataProvider(&socket_data);
2661 socket_data.StopAfter(1);
2662 2515
2663 crypto_client_stream_factory_.set_handshake_mode( 2516 crypto_client_stream_factory_.set_handshake_mode(
2664 MockCryptoClientStream::ZERO_RTT); 2517 MockCryptoClientStream::ZERO_RTT);
2665 host_resolver_.set_synchronous_mode(true); 2518 host_resolver_.set_synchronous_mode(true);
2666 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2519 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2667 "192.168.0.1", ""); 2520 "192.168.0.1", "");
2668 2521
2669 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a 2522 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a
2670 // task. 2523 // task.
2671 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? 2524 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver??
(...skipping 23 matching lines...) Expand all
2695 Initialize(); 2548 Initialize();
2696 QuicStreamFactoryPeer::SetYieldAfterDuration( 2549 QuicStreamFactoryPeer::SetYieldAfterDuration(
2697 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); 2550 factory_.get(), QuicTime::Delta::FromMilliseconds(-1));
2698 2551
2699 scoped_ptr<QuicEncryptedPacket> close_packet( 2552 scoped_ptr<QuicEncryptedPacket> close_packet(
2700 ConstructConnectionClosePacket(0)); 2553 ConstructConnectionClosePacket(0));
2701 vector<MockRead> reads; 2554 vector<MockRead> reads;
2702 reads.push_back( 2555 reads.push_back(
2703 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); 2556 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0));
2704 reads.push_back(MockRead(ASYNC, OK, 1)); 2557 reads.push_back(MockRead(ASYNC, OK, 1));
2705 DeterministicSocketData socket_data(&reads[0], reads.size(), nullptr, 0); 2558 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0);
2706 socket_factory_.AddSocketDataProvider(&socket_data); 2559 socket_factory_.AddSocketDataProvider(&socket_data);
2707 socket_data.StopAfter(1);
2708 2560
2709 crypto_client_stream_factory_.set_handshake_mode( 2561 crypto_client_stream_factory_.set_handshake_mode(
2710 MockCryptoClientStream::ZERO_RTT); 2562 MockCryptoClientStream::ZERO_RTT);
2711 host_resolver_.set_synchronous_mode(true); 2563 host_resolver_.set_synchronous_mode(true);
2712 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2564 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2713 "192.168.0.1", ""); 2565 "192.168.0.1", "");
2714 2566
2715 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a 2567 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a
2716 // task. 2568 // task.
2717 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? 2569 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver??
(...skipping 14 matching lines...) Expand all
2732 EXPECT_EQ(1u, observer.executed_count()); 2584 EXPECT_EQ(1u, observer.executed_count());
2733 2585
2734 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2586 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2735 EXPECT_TRUE(stream.get()); 2587 EXPECT_TRUE(stream.get());
2736 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2588 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2737 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2589 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2738 } 2590 }
2739 2591
2740 } // namespace test 2592 } // namespace test
2741 } // namespace net 2593 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698