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

Side by Side Diff: net/socket/transport_client_socket_pool_unittest.cc

Issue 451383002: Plumbing for TCP FastOpen for SSL sockets. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments addressed. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
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/socket/transport_client_socket_pool.h" 5 #include "net/socket/transport_client_socket_pool.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 22 matching lines...) Expand all
33 const int kMaxSockets = 32; 33 const int kMaxSockets = 32;
34 const int kMaxSocketsPerGroup = 6; 34 const int kMaxSocketsPerGroup = 6;
35 const RequestPriority kDefaultPriority = LOW; 35 const RequestPriority kDefaultPriority = LOW;
36 36
37 class TransportClientSocketPoolTest : public testing::Test { 37 class TransportClientSocketPoolTest : public testing::Test {
38 protected: 38 protected:
39 TransportClientSocketPoolTest() 39 TransportClientSocketPoolTest()
40 : connect_backup_jobs_enabled_( 40 : connect_backup_jobs_enabled_(
41 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(true)), 41 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(true)),
42 params_( 42 params_(
43 new TransportSocketParams(HostPortPair("www.google.com", 80), 43 new TransportSocketParams(
44 false, false, 44 HostPortPair("www.google.com", 80),
45 OnHostResolutionCallback())), 45 false,
46 false,
47 OnHostResolutionCallback(),
48 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)),
46 histograms_(new ClientSocketPoolHistograms("TCPUnitTest")), 49 histograms_(new ClientSocketPoolHistograms("TCPUnitTest")),
47 host_resolver_(new MockHostResolver), 50 host_resolver_(new MockHostResolver),
48 client_socket_factory_(&net_log_), 51 client_socket_factory_(&net_log_),
49 pool_(kMaxSockets, 52 pool_(kMaxSockets,
50 kMaxSocketsPerGroup, 53 kMaxSocketsPerGroup,
51 histograms_.get(), 54 histograms_.get(),
52 host_resolver_.get(), 55 host_resolver_.get(),
53 &client_socket_factory_, 56 &client_socket_factory_,
54 NULL) { 57 NULL) {
55 } 58 }
56 59
57 virtual ~TransportClientSocketPoolTest() { 60 virtual ~TransportClientSocketPoolTest() {
58 internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( 61 internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(
59 connect_backup_jobs_enabled_); 62 connect_backup_jobs_enabled_);
60 } 63 }
61 64
62 int StartRequest(const std::string& group_name, RequestPriority priority) { 65 int StartRequest(const std::string& group_name, RequestPriority priority) {
63 scoped_refptr<TransportSocketParams> params(new TransportSocketParams( 66 scoped_refptr<TransportSocketParams> params(new TransportSocketParams(
64 HostPortPair("www.google.com", 80), false, false, 67 HostPortPair("www.google.com", 80), false, false,
65 OnHostResolutionCallback())); 68 OnHostResolutionCallback(),
69 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
66 return test_base_.StartRequestUsingPool( 70 return test_base_.StartRequestUsingPool(
67 &pool_, group_name, priority, params); 71 &pool_, group_name, priority, params);
68 } 72 }
69 73
70 int GetOrderOfRequest(size_t index) { 74 int GetOrderOfRequest(size_t index) {
71 return test_base_.GetOrderOfRequest(index); 75 return test_base_.GetOrderOfRequest(index);
72 } 76 }
73 77
74 bool ReleaseOneConnection(ClientSocketPoolTest::KeepAlive keep_alive) { 78 bool ReleaseOneConnection(ClientSocketPoolTest::KeepAlive keep_alive) {
75 return test_base_.ReleaseOneConnection(keep_alive); 79 return test_base_.ReleaseOneConnection(keep_alive);
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 EXPECT_EQ(priority, host_resolver_->last_request_priority()); 198 EXPECT_EQ(priority, host_resolver_->last_request_priority());
195 } 199 }
196 } 200 }
197 201
198 TEST_F(TransportClientSocketPoolTest, InitHostResolutionFailure) { 202 TEST_F(TransportClientSocketPoolTest, InitHostResolutionFailure) {
199 host_resolver_->rules()->AddSimulatedFailure("unresolvable.host.name"); 203 host_resolver_->rules()->AddSimulatedFailure("unresolvable.host.name");
200 TestCompletionCallback callback; 204 TestCompletionCallback callback;
201 ClientSocketHandle handle; 205 ClientSocketHandle handle;
202 HostPortPair host_port_pair("unresolvable.host.name", 80); 206 HostPortPair host_port_pair("unresolvable.host.name", 80);
203 scoped_refptr<TransportSocketParams> dest(new TransportSocketParams( 207 scoped_refptr<TransportSocketParams> dest(new TransportSocketParams(
204 host_port_pair, false, false, 208 host_port_pair, false, false, OnHostResolutionCallback(),
205 OnHostResolutionCallback())); 209 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
206 EXPECT_EQ(ERR_IO_PENDING, 210 EXPECT_EQ(ERR_IO_PENDING,
207 handle.Init("a", dest, kDefaultPriority, callback.callback(), 211 handle.Init("a", dest, kDefaultPriority, callback.callback(),
208 &pool_, BoundNetLog())); 212 &pool_, BoundNetLog()));
209 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback.WaitForResult()); 213 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback.WaitForResult());
210 } 214 }
211 215
212 TEST_F(TransportClientSocketPoolTest, InitConnectionFailure) { 216 TEST_F(TransportClientSocketPoolTest, InitConnectionFailure) {
213 client_socket_factory_.set_default_client_socket_type( 217 client_socket_factory_.set_default_client_socket_type(
214 MockTransportClientSocketFactory::MOCK_FAILING_CLIENT_SOCKET); 218 MockTransportClientSocketFactory::MOCK_FAILING_CLIENT_SOCKET);
215 TestCompletionCallback callback; 219 TestCompletionCallback callback;
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 handle_->socket()->Disconnect(); 474 handle_->socket()->Disconnect();
471 handle_->Reset(); 475 handle_->Reset();
472 { 476 {
473 base::MessageLoop::ScopedNestableTaskAllower allow( 477 base::MessageLoop::ScopedNestableTaskAllower allow(
474 base::MessageLoop::current()); 478 base::MessageLoop::current());
475 base::MessageLoop::current()->RunUntilIdle(); 479 base::MessageLoop::current()->RunUntilIdle();
476 } 480 }
477 within_callback_ = true; 481 within_callback_ = true;
478 scoped_refptr<TransportSocketParams> dest(new TransportSocketParams( 482 scoped_refptr<TransportSocketParams> dest(new TransportSocketParams(
479 HostPortPair("www.google.com", 80), false, false, 483 HostPortPair("www.google.com", 80), false, false,
480 OnHostResolutionCallback())); 484 OnHostResolutionCallback(),
485 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
481 int rv = handle_->Init("a", dest, LOWEST, callback(), pool_, 486 int rv = handle_->Init("a", dest, LOWEST, callback(), pool_,
482 BoundNetLog()); 487 BoundNetLog());
483 EXPECT_EQ(OK, rv); 488 EXPECT_EQ(OK, rv);
484 } 489 }
485 } 490 }
486 491
487 ClientSocketHandle* const handle_; 492 ClientSocketHandle* const handle_;
488 TransportClientSocketPool* const pool_; 493 TransportClientSocketPool* const pool_;
489 bool within_callback_; 494 bool within_callback_;
490 CompletionCallback callback_; 495 CompletionCallback callback_;
491 496
492 DISALLOW_COPY_AND_ASSIGN(RequestSocketCallback); 497 DISALLOW_COPY_AND_ASSIGN(RequestSocketCallback);
493 }; 498 };
494 499
495 TEST_F(TransportClientSocketPoolTest, RequestTwice) { 500 TEST_F(TransportClientSocketPoolTest, RequestTwice) {
496 ClientSocketHandle handle; 501 ClientSocketHandle handle;
497 RequestSocketCallback callback(&handle, &pool_); 502 RequestSocketCallback callback(&handle, &pool_);
498 scoped_refptr<TransportSocketParams> dest(new TransportSocketParams( 503 scoped_refptr<TransportSocketParams> dest(new TransportSocketParams(
499 HostPortPair("www.google.com", 80), false, false, 504 HostPortPair("www.google.com", 80), false, false,
500 OnHostResolutionCallback())); 505 OnHostResolutionCallback(),
506 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
501 int rv = handle.Init("a", dest, LOWEST, callback.callback(), &pool_, 507 int rv = handle.Init("a", dest, LOWEST, callback.callback(), &pool_,
502 BoundNetLog()); 508 BoundNetLog());
503 ASSERT_EQ(ERR_IO_PENDING, rv); 509 ASSERT_EQ(ERR_IO_PENDING, rv);
504 510
505 // The callback is going to request "www.google.com". We want it to complete 511 // The callback is going to request "www.google.com". We want it to complete
506 // synchronously this time. 512 // synchronously this time.
507 host_resolver_->set_synchronous_mode(true); 513 host_resolver_->set_synchronous_mode(true);
508 514
509 EXPECT_EQ(OK, callback.WaitForResult()); 515 EXPECT_EQ(OK, callback.WaitForResult());
510 516
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 EXPECT_TRUE(handle.socket()); 966 EXPECT_TRUE(handle.socket());
961 IPEndPoint endpoint; 967 IPEndPoint endpoint;
962 handle.socket()->GetLocalAddress(&endpoint); 968 handle.socket()->GetLocalAddress(&endpoint);
963 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); 969 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size());
964 EXPECT_EQ(1, client_socket_factory_.allocation_count()); 970 EXPECT_EQ(1, client_socket_factory_.allocation_count());
965 } 971 }
966 972
967 } // namespace 973 } // namespace
968 974
969 } // namespace net 975 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698