OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/callback.h" | 7 #include "base/callback.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/platform_thread.h" | 10 #include "base/platform_thread.h" |
(...skipping 28 matching lines...) Loading... |
39 // Socket methods: | 39 // Socket methods: |
40 virtual int Read( | 40 virtual int Read( |
41 IOBuffer* /* buf */, int /* len */, CompletionCallback* /* callback */) { | 41 IOBuffer* /* buf */, int /* len */, CompletionCallback* /* callback */) { |
42 return ERR_UNEXPECTED; | 42 return ERR_UNEXPECTED; |
43 } | 43 } |
44 | 44 |
45 virtual int Write( | 45 virtual int Write( |
46 IOBuffer* /* buf */, int /* len */, CompletionCallback* /* callback */) { | 46 IOBuffer* /* buf */, int /* len */, CompletionCallback* /* callback */) { |
47 return ERR_UNEXPECTED; | 47 return ERR_UNEXPECTED; |
48 } | 48 } |
49 virtual bool SetReceiveBufferSize(int32 size) { return true; }; | 49 virtual bool SetReceiveBufferSize(int32 size) { return true; } |
50 virtual bool SetSendBufferSize(int32 size) { return true; }; | 50 virtual bool SetSendBufferSize(int32 size) { return true; } |
51 | 51 |
52 // ClientSocket methods: | 52 // ClientSocket methods: |
53 | 53 |
54 virtual int Connect(CompletionCallback* callback) { | 54 virtual int Connect(CompletionCallback* callback) { |
55 connected_ = true; | 55 connected_ = true; |
56 return OK; | 56 return OK; |
57 } | 57 } |
58 | 58 |
59 virtual void Disconnect() { connected_ = false; } | 59 virtual void Disconnect() { connected_ = false; } |
60 virtual bool IsConnected() const { return connected_; } | 60 virtual bool IsConnected() const { return connected_; } |
(...skipping 54 matching lines...) Loading... |
115 kMockWaitingJob, | 115 kMockWaitingJob, |
116 kMockAdvancingLoadStateJob, | 116 kMockAdvancingLoadStateJob, |
117 }; | 117 }; |
118 | 118 |
119 TestConnectJob(JobType job_type, | 119 TestConnectJob(JobType job_type, |
120 const std::string& group_name, | 120 const std::string& group_name, |
121 const TestClientSocketPoolBase::Request& request, | 121 const TestClientSocketPoolBase::Request& request, |
122 base::TimeDelta timeout_duration, | 122 base::TimeDelta timeout_duration, |
123 ConnectJob::Delegate* delegate, | 123 ConnectJob::Delegate* delegate, |
124 MockClientSocketFactory* client_socket_factory, | 124 MockClientSocketFactory* client_socket_factory, |
125 const BoundNetLog& net_log) | 125 NetLog* net_log) |
126 : ConnectJob(group_name, timeout_duration, delegate, net_log), | 126 : ConnectJob(group_name, timeout_duration, delegate, |
| 127 BoundNetLog::Make(net_log, NetLog::SOURCE_CONNECT_JOB)), |
127 job_type_(job_type), | 128 job_type_(job_type), |
128 client_socket_factory_(client_socket_factory), | 129 client_socket_factory_(client_socket_factory), |
129 method_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), | 130 method_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
130 load_state_(LOAD_STATE_IDLE) {} | 131 load_state_(LOAD_STATE_IDLE) {} |
131 | 132 |
132 void Signal() { | 133 void Signal() { |
133 DoConnect(waiting_success_, true /* async */); | 134 DoConnect(waiting_success_, true /* async */); |
134 } | 135 } |
135 | 136 |
136 virtual LoadState GetLoadState() const { return load_state_; } | 137 virtual LoadState GetLoadState() const { return load_state_; } |
(...skipping 111 matching lines...) Loading... |
248 | 249 |
249 void set_timeout_duration(base::TimeDelta timeout_duration) { | 250 void set_timeout_duration(base::TimeDelta timeout_duration) { |
250 timeout_duration_ = timeout_duration; | 251 timeout_duration_ = timeout_duration; |
251 } | 252 } |
252 | 253 |
253 // ConnectJobFactory methods: | 254 // ConnectJobFactory methods: |
254 | 255 |
255 virtual ConnectJob* NewConnectJob( | 256 virtual ConnectJob* NewConnectJob( |
256 const std::string& group_name, | 257 const std::string& group_name, |
257 const TestClientSocketPoolBase::Request& request, | 258 const TestClientSocketPoolBase::Request& request, |
258 ConnectJob::Delegate* delegate, | 259 ConnectJob::Delegate* delegate) const { |
259 const BoundNetLog& net_log) const { | |
260 return new TestConnectJob(job_type_, | 260 return new TestConnectJob(job_type_, |
261 group_name, | 261 group_name, |
262 request, | 262 request, |
263 timeout_duration_, | 263 timeout_duration_, |
264 delegate, | 264 delegate, |
265 client_socket_factory_, | 265 client_socket_factory_, |
266 net_log); | 266 NULL); |
267 } | 267 } |
268 | 268 |
269 virtual base::TimeDelta ConnectionTimeout() const { | 269 virtual base::TimeDelta ConnectionTimeout() const { |
270 return timeout_duration_; | 270 return timeout_duration_; |
271 } | 271 } |
272 | 272 |
273 private: | 273 private: |
274 TestConnectJob::JobType job_type_; | 274 TestConnectJob::JobType job_type_; |
275 base::TimeDelta timeout_duration_; | 275 base::TimeDelta timeout_duration_; |
276 MockClientSocketFactory* const client_socket_factory_; | 276 MockClientSocketFactory* const client_socket_factory_; |
(...skipping 200 matching lines...) Loading... |
477 ClientSocketHandle ignored; | 477 ClientSocketHandle ignored; |
478 TestClientSocketPoolBase::Request request( | 478 TestClientSocketPoolBase::Request request( |
479 &ignored, NULL, kDefaultPriority, NULL, BoundNetLog()); | 479 &ignored, NULL, kDefaultPriority, NULL, BoundNetLog()); |
480 scoped_ptr<TestConnectJob> job( | 480 scoped_ptr<TestConnectJob> job( |
481 new TestConnectJob(TestConnectJob::kMockJob, | 481 new TestConnectJob(TestConnectJob::kMockJob, |
482 "a", | 482 "a", |
483 request, | 483 request, |
484 base::TimeDelta::FromMicroseconds(1), | 484 base::TimeDelta::FromMicroseconds(1), |
485 &delegate, | 485 &delegate, |
486 &client_socket_factory_, | 486 &client_socket_factory_, |
487 BoundNetLog())); | 487 NULL)); |
488 EXPECT_EQ(OK, job->Connect()); | 488 EXPECT_EQ(OK, job->Connect()); |
489 } | 489 } |
490 | 490 |
491 TEST_F(ClientSocketPoolBaseTest, ConnectJob_TimedOut) { | 491 TEST_F(ClientSocketPoolBaseTest, ConnectJob_TimedOut) { |
492 TestConnectJobDelegate delegate; | 492 TestConnectJobDelegate delegate; |
493 ClientSocketHandle ignored; | 493 ClientSocketHandle ignored; |
494 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 494 CapturingNetLog log(CapturingNetLog::kUnbounded); |
495 | 495 |
496 TestClientSocketPoolBase::Request request( | 496 TestClientSocketPoolBase::Request request( |
497 &ignored, NULL, kDefaultPriority, NULL, BoundNetLog()); | 497 &ignored, NULL, kDefaultPriority, NULL, BoundNetLog()); |
498 // Deleted by TestConnectJobDelegate. | 498 // Deleted by TestConnectJobDelegate. |
499 TestConnectJob* job = | 499 TestConnectJob* job = |
500 new TestConnectJob(TestConnectJob::kMockPendingJob, | 500 new TestConnectJob(TestConnectJob::kMockPendingJob, |
501 "a", | 501 "a", |
502 request, | 502 request, |
503 base::TimeDelta::FromMicroseconds(1), | 503 base::TimeDelta::FromMicroseconds(1), |
504 &delegate, | 504 &delegate, |
505 &client_socket_factory_, | 505 &client_socket_factory_, |
506 log.bound()); | 506 &log); |
507 ASSERT_EQ(ERR_IO_PENDING, job->Connect()); | 507 ASSERT_EQ(ERR_IO_PENDING, job->Connect()); |
508 PlatformThread::Sleep(1); | 508 PlatformThread::Sleep(1); |
509 EXPECT_EQ(ERR_TIMED_OUT, delegate.WaitForResult()); | 509 EXPECT_EQ(ERR_TIMED_OUT, delegate.WaitForResult()); |
510 | 510 |
511 EXPECT_EQ(3u, log.entries().size()); | 511 EXPECT_EQ(6u, log.entries().size()); |
512 EXPECT_TRUE(LogContainsBeginEvent( | 512 EXPECT_TRUE(LogContainsBeginEvent( |
513 log.entries(), 0, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | 513 log.entries(), 0, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); |
| 514 EXPECT_TRUE(LogContainsBeginEvent( |
| 515 log.entries(), 1, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_CONNECT)); |
514 EXPECT_TRUE(LogContainsEvent( | 516 EXPECT_TRUE(LogContainsEvent( |
515 log.entries(), 1, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_TIMED_OUT, | 517 log.entries(), 2, NetLog::TYPE_CONNECT_JOB_SET_SOCKET, |
| 518 NetLog::PHASE_NONE)); |
| 519 EXPECT_TRUE(LogContainsEvent( |
| 520 log.entries(), 3, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_TIMED_OUT, |
516 NetLog::PHASE_NONE)); | 521 NetLog::PHASE_NONE)); |
517 EXPECT_TRUE(LogContainsEndEvent( | 522 EXPECT_TRUE(LogContainsEndEvent( |
518 log.entries(), 2, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | 523 log.entries(), 4, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_CONNECT)); |
| 524 EXPECT_TRUE(LogContainsEndEvent( |
| 525 log.entries(), 5, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); |
519 } | 526 } |
520 | 527 |
521 TEST_F(ClientSocketPoolBaseTest, BasicSynchronous) { | 528 TEST_F(ClientSocketPoolBaseTest, BasicSynchronous) { |
522 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 529 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
523 | 530 |
524 TestCompletionCallback callback; | 531 TestCompletionCallback callback; |
525 ClientSocketHandle handle; | 532 ClientSocketHandle handle; |
526 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 533 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
527 | 534 |
528 EXPECT_EQ(OK, InitHandle(&handle, "a", kDefaultPriority, &callback, pool_, | 535 EXPECT_EQ(OK, InitHandle(&handle, "a", kDefaultPriority, &callback, pool_, |
529 log.bound())); | 536 log.bound())); |
530 EXPECT_TRUE(handle.is_initialized()); | 537 EXPECT_TRUE(handle.is_initialized()); |
531 EXPECT_TRUE(handle.socket()); | 538 EXPECT_TRUE(handle.socket()); |
532 handle.Reset(); | 539 handle.Reset(); |
533 | 540 |
534 EXPECT_EQ(7u, log.entries().size()); | 541 EXPECT_EQ(4u, log.entries().size()); |
535 EXPECT_TRUE(LogContainsBeginEvent( | 542 EXPECT_TRUE(LogContainsBeginEvent( |
536 log.entries(), 0, NetLog::TYPE_SOCKET_POOL)); | 543 log.entries(), 0, NetLog::TYPE_SOCKET_POOL)); |
537 EXPECT_TRUE(LogContainsBeginEvent( | |
538 log.entries(), 1, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID)); | |
539 EXPECT_TRUE(LogContainsBeginEvent( | |
540 log.entries(), 2, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | |
541 EXPECT_TRUE(LogContainsEndEvent( | |
542 log.entries(), 3, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | |
543 EXPECT_TRUE(LogContainsEndEvent( | |
544 log.entries(), 4, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID)); | |
545 EXPECT_TRUE(LogContainsEvent( | 544 EXPECT_TRUE(LogContainsEvent( |
546 log.entries(), 5, NetLog::TYPE_SOCKET_POOL_SOCKET_ID, | 545 log.entries(), 1, NetLog::TYPE_SOCKET_POOL_BOUND_TO_CONNECT_JOB, |
| 546 NetLog::PHASE_NONE)); |
| 547 EXPECT_TRUE(LogContainsEvent( |
| 548 log.entries(), 2, NetLog::TYPE_SOCKET_POOL_BOUND_TO_SOCKET, |
547 NetLog::PHASE_NONE)); | 549 NetLog::PHASE_NONE)); |
548 EXPECT_TRUE(LogContainsEndEvent( | 550 EXPECT_TRUE(LogContainsEndEvent( |
549 log.entries(), 6, NetLog::TYPE_SOCKET_POOL)); | 551 log.entries(), 3, NetLog::TYPE_SOCKET_POOL)); |
550 } | 552 } |
551 | 553 |
552 TEST_F(ClientSocketPoolBaseTest, InitConnectionFailure) { | 554 TEST_F(ClientSocketPoolBaseTest, InitConnectionFailure) { |
553 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 555 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
554 | 556 |
555 connect_job_factory_->set_job_type(TestConnectJob::kMockFailingJob); | 557 connect_job_factory_->set_job_type(TestConnectJob::kMockFailingJob); |
556 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 558 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
557 | 559 |
558 TestSocketRequest req(&request_order_, &completion_count_); | 560 TestSocketRequest req(&request_order_, &completion_count_); |
559 EXPECT_EQ(ERR_CONNECTION_FAILED, | 561 EXPECT_EQ(ERR_CONNECTION_FAILED, |
560 InitHandle(req.handle(), "a", kDefaultPriority, &req, pool_, | 562 InitHandle(req.handle(), "a", kDefaultPriority, &req, pool_, |
561 log.bound())); | 563 log.bound())); |
562 | 564 |
563 EXPECT_EQ(6u, log.entries().size()); | 565 EXPECT_EQ(3u, log.entries().size()); |
564 EXPECT_TRUE(LogContainsBeginEvent( | 566 EXPECT_TRUE(LogContainsBeginEvent( |
565 log.entries(), 0, NetLog::TYPE_SOCKET_POOL)); | 567 log.entries(), 0, NetLog::TYPE_SOCKET_POOL)); |
566 EXPECT_TRUE(LogContainsBeginEvent( | 568 EXPECT_TRUE(LogContainsEvent( |
567 log.entries(), 2, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | 569 log.entries(), 1, NetLog::TYPE_SOCKET_POOL_BOUND_TO_CONNECT_JOB, |
| 570 NetLog::PHASE_NONE)); |
568 EXPECT_TRUE(LogContainsEndEvent( | 571 EXPECT_TRUE(LogContainsEndEvent( |
569 log.entries(), 3, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | 572 log.entries(), 2, NetLog::TYPE_SOCKET_POOL)); |
570 EXPECT_TRUE(LogContainsEndEvent(log.entries(), 5, NetLog::TYPE_SOCKET_POOL)); | |
571 } | 573 } |
572 | 574 |
573 TEST_F(ClientSocketPoolBaseTest, TotalLimit) { | 575 TEST_F(ClientSocketPoolBaseTest, TotalLimit) { |
574 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 576 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
575 | 577 |
576 // TODO(eroman): Check that the NetLog contains this event. | 578 // TODO(eroman): Check that the NetLog contains this event. |
577 | 579 |
578 EXPECT_EQ(OK, StartRequest("a", kDefaultPriority)); | 580 EXPECT_EQ(OK, StartRequest("a", kDefaultPriority)); |
579 EXPECT_EQ(OK, StartRequest("b", kDefaultPriority)); | 581 EXPECT_EQ(OK, StartRequest("b", kDefaultPriority)); |
580 EXPECT_EQ(OK, StartRequest("c", kDefaultPriority)); | 582 EXPECT_EQ(OK, StartRequest("c", kDefaultPriority)); |
(...skipping 617 matching lines...) Loading... |
1198 TestSocketRequest req(&request_order_, &completion_count_); | 1200 TestSocketRequest req(&request_order_, &completion_count_); |
1199 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 1201 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
1200 int rv = InitHandle(req.handle(), "a", LOWEST, &req, pool_, log.bound()); | 1202 int rv = InitHandle(req.handle(), "a", LOWEST, &req, pool_, log.bound()); |
1201 EXPECT_EQ(ERR_IO_PENDING, rv); | 1203 EXPECT_EQ(ERR_IO_PENDING, rv); |
1202 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); | 1204 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); |
1203 EXPECT_EQ(OK, req.WaitForResult()); | 1205 EXPECT_EQ(OK, req.WaitForResult()); |
1204 EXPECT_TRUE(req.handle()->is_initialized()); | 1206 EXPECT_TRUE(req.handle()->is_initialized()); |
1205 EXPECT_TRUE(req.handle()->socket()); | 1207 EXPECT_TRUE(req.handle()->socket()); |
1206 req.handle()->Reset(); | 1208 req.handle()->Reset(); |
1207 | 1209 |
1208 EXPECT_EQ(7u, log.entries().size()); | 1210 EXPECT_EQ(4u, log.entries().size()); |
1209 EXPECT_TRUE(LogContainsBeginEvent( | 1211 EXPECT_TRUE(LogContainsBeginEvent( |
1210 log.entries(), 0, NetLog::TYPE_SOCKET_POOL)); | 1212 log.entries(), 0, NetLog::TYPE_SOCKET_POOL)); |
1211 EXPECT_TRUE(LogContainsBeginEvent( | 1213 EXPECT_TRUE(LogContainsEvent( |
1212 log.entries(), 2, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | 1214 log.entries(), 1, NetLog::TYPE_SOCKET_POOL_BOUND_TO_CONNECT_JOB, |
| 1215 NetLog::PHASE_NONE)); |
| 1216 EXPECT_TRUE(LogContainsEvent( |
| 1217 log.entries(), 2, NetLog::TYPE_SOCKET_POOL_BOUND_TO_SOCKET, |
| 1218 NetLog::PHASE_NONE)); |
1213 EXPECT_TRUE(LogContainsEndEvent( | 1219 EXPECT_TRUE(LogContainsEndEvent( |
1214 log.entries(), 3, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | 1220 log.entries(), 3, NetLog::TYPE_SOCKET_POOL)); |
1215 EXPECT_TRUE(LogContainsEndEvent( | |
1216 log.entries(), 5, NetLog::TYPE_SOCKET_POOL)); | |
1217 } | 1221 } |
1218 | 1222 |
1219 TEST_F(ClientSocketPoolBaseTest, | 1223 TEST_F(ClientSocketPoolBaseTest, |
1220 InitConnectionAsynchronousFailure) { | 1224 InitConnectionAsynchronousFailure) { |
1221 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 1225 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
1222 | 1226 |
1223 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingFailingJob); | 1227 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingFailingJob); |
1224 TestSocketRequest req(&request_order_, &completion_count_); | 1228 TestSocketRequest req(&request_order_, &completion_count_); |
1225 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 1229 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
1226 EXPECT_EQ(ERR_IO_PENDING, | 1230 EXPECT_EQ(ERR_IO_PENDING, |
1227 InitHandle(req.handle(), "a", kDefaultPriority, &req, pool_, | 1231 InitHandle(req.handle(), "a", kDefaultPriority, &req, pool_, |
1228 log.bound())); | 1232 log.bound())); |
1229 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); | 1233 EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle())); |
1230 EXPECT_EQ(ERR_CONNECTION_FAILED, req.WaitForResult()); | 1234 EXPECT_EQ(ERR_CONNECTION_FAILED, req.WaitForResult()); |
1231 | 1235 |
1232 EXPECT_EQ(6u, log.entries().size()); | 1236 EXPECT_EQ(3u, log.entries().size()); |
1233 EXPECT_TRUE(LogContainsBeginEvent( | 1237 EXPECT_TRUE(LogContainsBeginEvent( |
1234 log.entries(), 0, NetLog::TYPE_SOCKET_POOL)); | 1238 log.entries(), 0, NetLog::TYPE_SOCKET_POOL)); |
1235 EXPECT_TRUE(LogContainsBeginEvent( | 1239 EXPECT_TRUE(LogContainsEvent( |
1236 log.entries(), 2, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | 1240 log.entries(), 1, NetLog::TYPE_SOCKET_POOL_BOUND_TO_CONNECT_JOB, |
| 1241 NetLog::PHASE_NONE)); |
1237 EXPECT_TRUE(LogContainsEndEvent( | 1242 EXPECT_TRUE(LogContainsEndEvent( |
1238 log.entries(), 3, NetLog::TYPE_SOCKET_POOL_CONNECT_JOB)); | 1243 log.entries(), 2, NetLog::TYPE_SOCKET_POOL)); |
1239 EXPECT_TRUE(LogContainsEndEvent( | |
1240 log.entries(), 5, NetLog::TYPE_SOCKET_POOL)); | |
1241 } | 1244 } |
1242 | 1245 |
1243 TEST_F(ClientSocketPoolBaseTest, TwoRequestsCancelOne) { | 1246 TEST_F(ClientSocketPoolBaseTest, TwoRequestsCancelOne) { |
1244 // TODO(eroman): Add back the log expectations! Removed them because the | 1247 // TODO(eroman): Add back the log expectations! Removed them because the |
1245 // ordering is difficult, and some may fire during destructor. | 1248 // ordering is difficult, and some may fire during destructor. |
1246 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); | 1249 CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
1247 | 1250 |
1248 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); | 1251 connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); |
1249 TestSocketRequest req(&request_order_, &completion_count_); | 1252 TestSocketRequest req(&request_order_, &completion_count_); |
1250 TestSocketRequest req2(&request_order_, &completion_count_); | 1253 TestSocketRequest req2(&request_order_, &completion_count_); |
(...skipping 377 matching lines...) Loading... |
1628 TestReleasingSocketRequest request(pool_.get()); | 1631 TestReleasingSocketRequest request(pool_.get()); |
1629 EXPECT_EQ(ERR_IO_PENDING, InitHandle(request.handle(), "a", kDefaultPriority, | 1632 EXPECT_EQ(ERR_IO_PENDING, InitHandle(request.handle(), "a", kDefaultPriority, |
1630 &request, pool_, BoundNetLog())); | 1633 &request, pool_, BoundNetLog())); |
1631 | 1634 |
1632 EXPECT_EQ(OK, request.WaitForResult()); | 1635 EXPECT_EQ(OK, request.WaitForResult()); |
1633 } | 1636 } |
1634 | 1637 |
1635 } // namespace | 1638 } // namespace |
1636 | 1639 |
1637 } // namespace net | 1640 } // namespace net |
OLD | NEW |