| 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 |