OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/socket/client_socket_pool_base.h" | 5 #include "net/socket/client_socket_pool_base.h" |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/platform_thread.h" | 9 #include "base/platform_thread.h" |
10 #include "base/scoped_vector.h" | 10 #include "base/scoped_vector.h" |
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 base::TimeDelta::FromMicroseconds(1), | 463 base::TimeDelta::FromMicroseconds(1), |
464 &delegate, | 464 &delegate, |
465 &client_socket_factory_, | 465 &client_socket_factory_, |
466 NULL)); | 466 NULL)); |
467 EXPECT_EQ(OK, job->Connect()); | 467 EXPECT_EQ(OK, job->Connect()); |
468 } | 468 } |
469 | 469 |
470 TEST_F(ClientSocketPoolBaseTest, ConnectJob_TimedOut) { | 470 TEST_F(ClientSocketPoolBaseTest, ConnectJob_TimedOut) { |
471 TestConnectJobDelegate delegate; | 471 TestConnectJobDelegate delegate; |
472 ClientSocketHandle ignored; | 472 ClientSocketHandle ignored; |
473 scoped_refptr<LoadLog> log(new LoadLog); | 473 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
474 TestClientSocketPoolBase::Request request( | 474 TestClientSocketPoolBase::Request request( |
475 &ignored, NULL, kDefaultPriority, NULL, NULL); | 475 &ignored, NULL, kDefaultPriority, NULL, NULL); |
476 // Deleted by TestConnectJobDelegate. | 476 // Deleted by TestConnectJobDelegate. |
477 TestConnectJob* job = | 477 TestConnectJob* job = |
478 new TestConnectJob(TestConnectJob::kMockPendingJob, | 478 new TestConnectJob(TestConnectJob::kMockPendingJob, |
479 "a", | 479 "a", |
480 request, | 480 request, |
481 base::TimeDelta::FromMicroseconds(1), | 481 base::TimeDelta::FromMicroseconds(1), |
482 &delegate, | 482 &delegate, |
483 &client_socket_factory_, | 483 &client_socket_factory_, |
484 log); | 484 log); |
485 ASSERT_EQ(ERR_IO_PENDING, job->Connect()); | 485 ASSERT_EQ(ERR_IO_PENDING, job->Connect()); |
486 PlatformThread::Sleep(1); | 486 PlatformThread::Sleep(1); |
487 EXPECT_EQ(ERR_TIMED_OUT, delegate.WaitForResult()); | 487 EXPECT_EQ(ERR_TIMED_OUT, delegate.WaitForResult()); |
488 | 488 |
489 EXPECT_EQ(3u, log->events().size()); | 489 EXPECT_EQ(3u, log->events().size()); |
490 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 490 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
491 LoadLog::PHASE_BEGIN); | 491 LoadLog::PHASE_BEGIN); |
492 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB_TIMED_OUT, | 492 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB_TIMED_OUT, |
493 LoadLog::PHASE_NONE); | 493 LoadLog::PHASE_NONE); |
494 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 494 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
495 LoadLog::PHASE_END); | 495 LoadLog::PHASE_END); |
496 } | 496 } |
497 | 497 |
498 TEST_F(ClientSocketPoolBaseTest, BasicSynchronous) { | 498 TEST_F(ClientSocketPoolBaseTest, BasicSynchronous) { |
499 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 499 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
500 | 500 |
501 TestCompletionCallback callback; | 501 TestCompletionCallback callback; |
502 ClientSocketHandle handle; | 502 ClientSocketHandle handle; |
503 scoped_refptr<LoadLog> log(new LoadLog); | 503 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
504 EXPECT_EQ(OK, InitHandle(&handle, "a", kDefaultPriority, | 504 EXPECT_EQ(OK, InitHandle(&handle, "a", kDefaultPriority, |
505 &callback, pool_.get(), log)); | 505 &callback, pool_.get(), log)); |
506 EXPECT_TRUE(handle.is_initialized()); | 506 EXPECT_TRUE(handle.is_initialized()); |
507 EXPECT_TRUE(handle.socket()); | 507 EXPECT_TRUE(handle.socket()); |
508 handle.Reset(); | 508 handle.Reset(); |
509 | 509 |
510 EXPECT_EQ(4u, log->events().size()); | 510 EXPECT_EQ(4u, log->events().size()); |
511 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 511 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
512 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 512 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
513 LoadLog::PHASE_BEGIN); | 513 LoadLog::PHASE_BEGIN); |
514 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 514 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
515 LoadLog::PHASE_END); | 515 LoadLog::PHASE_END); |
516 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); | 516 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); |
517 } | 517 } |
518 | 518 |
519 TEST_F(ClientSocketPoolBaseTest, BasicAsynchronous) { | 519 TEST_F(ClientSocketPoolBaseTest, BasicAsynchronous) { |
520 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 520 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
521 | 521 |
522 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); | 522 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); |
523 scoped_refptr<LoadLog> log(new LoadLog); | 523 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
524 TestSocketRequest req(&request_order_, &completion_count_); | 524 TestSocketRequest req(&request_order_, &completion_count_); |
525 int rv = InitHandle(req.handle(), "a", 0, &req, pool_.get(), log); | 525 int rv = InitHandle(req.handle(), "a", 0, &req, pool_.get(), log); |
526 EXPECT_EQ(ERR_IO_PENDING, rv); | 526 EXPECT_EQ(ERR_IO_PENDING, rv); |
527 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); | 527 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); |
528 EXPECT_EQ(OK, req.WaitForResult()); | 528 EXPECT_EQ(OK, req.WaitForResult()); |
529 EXPECT_TRUE(req.handle()->is_initialized()); | 529 EXPECT_TRUE(req.handle()->is_initialized()); |
530 EXPECT_TRUE(req.handle()->socket()); | 530 EXPECT_TRUE(req.handle()->socket()); |
531 req.handle()->Reset(); | 531 req.handle()->Reset(); |
532 | 532 |
533 EXPECT_EQ(4u, log->events().size()); | 533 EXPECT_EQ(4u, log->events().size()); |
534 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 534 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
535 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 535 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
536 LoadLog::PHASE_BEGIN); | 536 LoadLog::PHASE_BEGIN); |
537 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 537 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
538 LoadLog::PHASE_END); | 538 LoadLog::PHASE_END); |
539 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); | 539 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); |
540 } | 540 } |
541 | 541 |
542 TEST_F(ClientSocketPoolBaseTest, InitConnectionFailure) { | 542 TEST_F(ClientSocketPoolBaseTest, InitConnectionFailure) { |
543 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 543 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
544 | 544 |
545 connect_job_factory_->set_job_type(TestConnectJob::kMockFailingJob); | 545 connect_job_factory_->set_job_type(TestConnectJob::kMockFailingJob); |
546 scoped_refptr<LoadLog> log(new LoadLog); | 546 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
547 TestSocketRequest req(&request_order_, &completion_count_); | 547 TestSocketRequest req(&request_order_, &completion_count_); |
548 EXPECT_EQ(ERR_CONNECTION_FAILED, | 548 EXPECT_EQ(ERR_CONNECTION_FAILED, |
549 InitHandle(req.handle(), "a", kDefaultPriority, &req, | 549 InitHandle(req.handle(), "a", kDefaultPriority, &req, |
550 pool_.get(), log)); | 550 pool_.get(), log)); |
551 | 551 |
552 EXPECT_EQ(4u, log->events().size()); | 552 EXPECT_EQ(4u, log->events().size()); |
553 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 553 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
554 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 554 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
555 LoadLog::PHASE_BEGIN); | 555 LoadLog::PHASE_BEGIN); |
556 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 556 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
557 LoadLog::PHASE_END); | 557 LoadLog::PHASE_END); |
558 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); | 558 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); |
559 } | 559 } |
560 | 560 |
561 TEST_F(ClientSocketPoolBaseTest, InitConnectionAsynchronousFailure) { | 561 TEST_F(ClientSocketPoolBaseTest, InitConnectionAsynchronousFailure) { |
562 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 562 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
563 | 563 |
564 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingFailingJob); | 564 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingFailingJob); |
565 scoped_refptr<LoadLog> log(new LoadLog); | 565 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
566 TestSocketRequest req(&request_order_, &completion_count_); | 566 TestSocketRequest req(&request_order_, &completion_count_); |
567 EXPECT_EQ(ERR_IO_PENDING, | 567 EXPECT_EQ(ERR_IO_PENDING, |
568 InitHandle(req.handle(), "a", kDefaultPriority, &req, | 568 InitHandle(req.handle(), "a", kDefaultPriority, &req, |
569 pool_.get(), log)); | 569 pool_.get(), log)); |
570 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); | 570 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); |
571 EXPECT_EQ(ERR_CONNECTION_FAILED, req.WaitForResult()); | 571 EXPECT_EQ(ERR_CONNECTION_FAILED, req.WaitForResult()); |
572 | 572 |
573 EXPECT_EQ(4u, log->events().size()); | 573 EXPECT_EQ(4u, log->events().size()); |
574 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 574 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
575 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 575 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1289 ASSERT_EQ(ERR_IO_PENDING, job->Connect()); | 1289 ASSERT_EQ(ERR_IO_PENDING, job->Connect()); |
1290 PlatformThread::Sleep(1); | 1290 PlatformThread::Sleep(1); |
1291 EXPECT_EQ(ERR_TIMED_OUT, delegate.WaitForResult()); | 1291 EXPECT_EQ(ERR_TIMED_OUT, delegate.WaitForResult()); |
1292 } | 1292 } |
1293 | 1293 |
1294 TEST_F(ClientSocketPoolBaseTest_LateBinding, BasicSynchronous) { | 1294 TEST_F(ClientSocketPoolBaseTest_LateBinding, BasicSynchronous) { |
1295 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 1295 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
1296 | 1296 |
1297 TestCompletionCallback callback; | 1297 TestCompletionCallback callback; |
1298 ClientSocketHandle handle; | 1298 ClientSocketHandle handle; |
1299 scoped_refptr<LoadLog> log(new LoadLog); | 1299 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
1300 EXPECT_EQ(OK, InitHandle(&handle, "a", kDefaultPriority, &callback, | 1300 EXPECT_EQ(OK, InitHandle(&handle, "a", kDefaultPriority, &callback, |
1301 pool_.get(), log)); | 1301 pool_.get(), log)); |
1302 EXPECT_TRUE(handle.is_initialized()); | 1302 EXPECT_TRUE(handle.is_initialized()); |
1303 EXPECT_TRUE(handle.socket()); | 1303 EXPECT_TRUE(handle.socket()); |
1304 handle.Reset(); | 1304 handle.Reset(); |
1305 | 1305 |
1306 EXPECT_EQ(4u, log->events().size()); | 1306 EXPECT_EQ(4u, log->events().size()); |
1307 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 1307 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
1308 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 1308 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
1309 LoadLog::PHASE_BEGIN); | 1309 LoadLog::PHASE_BEGIN); |
1310 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 1310 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
1311 LoadLog::PHASE_END); | 1311 LoadLog::PHASE_END); |
1312 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); | 1312 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); |
1313 } | 1313 } |
1314 | 1314 |
1315 TEST_F(ClientSocketPoolBaseTest_LateBinding, BasicAsynchronous) { | 1315 TEST_F(ClientSocketPoolBaseTest_LateBinding, BasicAsynchronous) { |
1316 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 1316 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
1317 | 1317 |
1318 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); | 1318 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); |
1319 TestSocketRequest req(&request_order_, &completion_count_); | 1319 TestSocketRequest req(&request_order_, &completion_count_); |
1320 scoped_refptr<LoadLog> log(new LoadLog); | 1320 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
1321 int rv = InitHandle(req.handle(), "a", 0, &req, pool_.get(), log); | 1321 int rv = InitHandle(req.handle(), "a", 0, &req, pool_.get(), log); |
1322 EXPECT_EQ(ERR_IO_PENDING, rv); | 1322 EXPECT_EQ(ERR_IO_PENDING, rv); |
1323 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); | 1323 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); |
1324 EXPECT_EQ(OK, req.WaitForResult()); | 1324 EXPECT_EQ(OK, req.WaitForResult()); |
1325 EXPECT_TRUE(req.handle()->is_initialized()); | 1325 EXPECT_TRUE(req.handle()->is_initialized()); |
1326 EXPECT_TRUE(req.handle()->socket()); | 1326 EXPECT_TRUE(req.handle()->socket()); |
1327 req.handle()->Reset(); | 1327 req.handle()->Reset(); |
1328 | 1328 |
1329 EXPECT_EQ(6u, log->events().size()); | 1329 EXPECT_EQ(6u, log->events().size()); |
1330 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 1330 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
1331 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_WAITING_IN_QUEUE, | 1331 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_WAITING_IN_QUEUE, |
1332 LoadLog::PHASE_BEGIN); | 1332 LoadLog::PHASE_BEGIN); |
1333 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_WAITING_IN_QUEUE, | 1333 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_WAITING_IN_QUEUE, |
1334 LoadLog::PHASE_END); | 1334 LoadLog::PHASE_END); |
1335 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 1335 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
1336 LoadLog::PHASE_BEGIN); | 1336 LoadLog::PHASE_BEGIN); |
1337 ExpectLogContains(log, 4, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 1337 ExpectLogContains(log, 4, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
1338 LoadLog::PHASE_END); | 1338 LoadLog::PHASE_END); |
1339 ExpectLogContains(log, 5, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); | 1339 ExpectLogContains(log, 5, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); |
1340 } | 1340 } |
1341 | 1341 |
1342 TEST_F(ClientSocketPoolBaseTest_LateBinding, InitConnectionFailure) { | 1342 TEST_F(ClientSocketPoolBaseTest_LateBinding, InitConnectionFailure) { |
1343 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 1343 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
1344 | 1344 |
1345 connect_job_factory_->set_job_type(TestConnectJob::kMockFailingJob); | 1345 connect_job_factory_->set_job_type(TestConnectJob::kMockFailingJob); |
1346 TestSocketRequest req(&request_order_, &completion_count_); | 1346 TestSocketRequest req(&request_order_, &completion_count_); |
1347 scoped_refptr<LoadLog> log(new LoadLog); | 1347 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
1348 EXPECT_EQ(ERR_CONNECTION_FAILED, | 1348 EXPECT_EQ(ERR_CONNECTION_FAILED, |
1349 InitHandle(req.handle(), "a", kDefaultPriority, &req, | 1349 InitHandle(req.handle(), "a", kDefaultPriority, &req, |
1350 pool_.get(), log)); | 1350 pool_.get(), log)); |
1351 | 1351 |
1352 EXPECT_EQ(4u, log->events().size()); | 1352 EXPECT_EQ(4u, log->events().size()); |
1353 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 1353 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
1354 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 1354 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
1355 LoadLog::PHASE_BEGIN); | 1355 LoadLog::PHASE_BEGIN); |
1356 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, | 1356 ExpectLogContains(log, 2, LoadLog::TYPE_SOCKET_POOL_CONNECT_JOB, |
1357 LoadLog::PHASE_END); | 1357 LoadLog::PHASE_END); |
1358 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); | 1358 ExpectLogContains(log, 3, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_END); |
1359 } | 1359 } |
1360 | 1360 |
1361 TEST_F(ClientSocketPoolBaseTest_LateBinding, | 1361 TEST_F(ClientSocketPoolBaseTest_LateBinding, |
1362 InitConnectionAsynchronousFailure) { | 1362 InitConnectionAsynchronousFailure) { |
1363 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 1363 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
1364 | 1364 |
1365 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingFailingJob); | 1365 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingFailingJob); |
1366 TestSocketRequest req(&request_order_, &completion_count_); | 1366 TestSocketRequest req(&request_order_, &completion_count_); |
1367 scoped_refptr<LoadLog> log(new LoadLog); | 1367 scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); |
1368 EXPECT_EQ(ERR_IO_PENDING, | 1368 EXPECT_EQ(ERR_IO_PENDING, |
1369 InitHandle(req.handle(), "a", kDefaultPriority, &req, | 1369 InitHandle(req.handle(), "a", kDefaultPriority, &req, |
1370 pool_.get(), log)); | 1370 pool_.get(), log)); |
1371 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); | 1371 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); |
1372 EXPECT_EQ(ERR_CONNECTION_FAILED, req.WaitForResult()); | 1372 EXPECT_EQ(ERR_CONNECTION_FAILED, req.WaitForResult()); |
1373 | 1373 |
1374 EXPECT_EQ(6u, log->events().size()); | 1374 EXPECT_EQ(6u, log->events().size()); |
1375 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 1375 ExpectLogContains(log, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
1376 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_WAITING_IN_QUEUE, | 1376 ExpectLogContains(log, 1, LoadLog::TYPE_SOCKET_POOL_WAITING_IN_QUEUE, |
1377 LoadLog::PHASE_BEGIN); | 1377 LoadLog::PHASE_BEGIN); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1448 req.handle()->Reset(); | 1448 req.handle()->Reset(); |
1449 } | 1449 } |
1450 | 1450 |
1451 TEST_F(ClientSocketPoolBaseTest_LateBinding, TwoRequestsCancelOne) { | 1451 TEST_F(ClientSocketPoolBaseTest_LateBinding, TwoRequestsCancelOne) { |
1452 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 1452 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
1453 | 1453 |
1454 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); | 1454 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); |
1455 TestSocketRequest req(&request_order_, &completion_count_); | 1455 TestSocketRequest req(&request_order_, &completion_count_); |
1456 TestSocketRequest req2(&request_order_, &completion_count_); | 1456 TestSocketRequest req2(&request_order_, &completion_count_); |
1457 | 1457 |
1458 scoped_refptr<LoadLog> log1(new LoadLog); | 1458 scoped_refptr<LoadLog> log1(new LoadLog(LoadLog::kUnbounded)); |
1459 EXPECT_EQ(ERR_IO_PENDING, | 1459 EXPECT_EQ(ERR_IO_PENDING, |
1460 InitHandle(req.handle(), "a", kDefaultPriority, &req, | 1460 InitHandle(req.handle(), "a", kDefaultPriority, &req, |
1461 pool_.get(), log1)); | 1461 pool_.get(), log1)); |
1462 scoped_refptr<LoadLog> log2(new LoadLog); | 1462 scoped_refptr<LoadLog> log2(new LoadLog(LoadLog::kUnbounded)); |
1463 EXPECT_EQ(ERR_IO_PENDING, | 1463 EXPECT_EQ(ERR_IO_PENDING, |
1464 InitHandle(req2.handle(), "a", kDefaultPriority, &req2, | 1464 InitHandle(req2.handle(), "a", kDefaultPriority, &req2, |
1465 pool_.get(), log2)); | 1465 pool_.get(), log2)); |
1466 | 1466 |
1467 req.handle()->Reset(); | 1467 req.handle()->Reset(); |
1468 | 1468 |
1469 EXPECT_EQ(5u, log1->events().size()); | 1469 EXPECT_EQ(5u, log1->events().size()); |
1470 ExpectLogContains(log1, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); | 1470 ExpectLogContains(log1, 0, LoadLog::TYPE_SOCKET_POOL, LoadLog::PHASE_BEGIN); |
1471 ExpectLogContains(log1, 1, LoadLog::TYPE_SOCKET_POOL_WAITING_IN_QUEUE, | 1471 ExpectLogContains(log1, 1, LoadLog::TYPE_SOCKET_POOL_WAITING_IN_QUEUE, |
1472 LoadLog::PHASE_BEGIN); | 1472 LoadLog::PHASE_BEGIN); |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1870 | 1870 |
1871 pool_->CleanupTimedOutIdleSockets(); | 1871 pool_->CleanupTimedOutIdleSockets(); |
1872 rv = InitHandle(req.handle(), "a", 0, &req, pool_.get(), NULL); | 1872 rv = InitHandle(req.handle(), "a", 0, &req, pool_.get(), NULL); |
1873 EXPECT_EQ(OK, rv); | 1873 EXPECT_EQ(OK, rv); |
1874 EXPECT_TRUE(req.handle()->is_reused()); | 1874 EXPECT_TRUE(req.handle()->is_reused()); |
1875 } | 1875 } |
1876 | 1876 |
1877 } // namespace | 1877 } // namespace |
1878 | 1878 |
1879 } // namespace net | 1879 } // namespace net |
OLD | NEW |