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

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

Issue 1376473003: Notify NQE of TCP RTT values (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reorder initialization in constructor Created 4 years, 8 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/macros.h" 10 #include "base/macros.h"
(...skipping 21 matching lines...) Expand all
32 32
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_(new TransportSocketParams(
43 new TransportSocketParams( 43 HostPortPair("www.google.com", 80),
44 HostPortPair("www.google.com", 80), 44 false,
45 false, 45 OnHostResolutionCallback(),
46 OnHostResolutionCallback(), 46 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)),
47 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)),
48 host_resolver_(new MockHostResolver), 47 host_resolver_(new MockHostResolver),
49 client_socket_factory_(&net_log_), 48 client_socket_factory_(&net_log_),
50 pool_(kMaxSockets, 49 pool_(kMaxSockets,
51 kMaxSocketsPerGroup, 50 kMaxSocketsPerGroup,
52 host_resolver_.get(), 51 host_resolver_.get(),
53 &client_socket_factory_, 52 &client_socket_factory_,
54 NULL) { 53 NULL,
55 } 54 NULL) {}
56 55
57 ~TransportClientSocketPoolTest() override { 56 ~TransportClientSocketPoolTest() override {
58 internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( 57 internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(
59 connect_backup_jobs_enabled_); 58 connect_backup_jobs_enabled_);
60 } 59 }
61 60
62 scoped_refptr<TransportSocketParams> CreateParamsForTCPFastOpen() { 61 scoped_refptr<TransportSocketParams> CreateParamsForTCPFastOpen() {
63 return new TransportSocketParams( 62 return new TransportSocketParams(
64 HostPortPair("www.google.com", 80), false, OnHostResolutionCallback(), 63 HostPortPair("www.google.com", 80), false, OnHostResolutionCallback(),
65 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DESIRED); 64 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DESIRED);
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 847
849 // Reset for the next case. 848 // Reset for the next case.
850 host_resolver_->set_synchronous_mode(false); 849 host_resolver_->set_synchronous_mode(false);
851 } 850 }
852 851
853 // Test the case of the IPv6 address stalling, and falling back to the IPv4 852 // Test the case of the IPv6 address stalling, and falling back to the IPv4
854 // socket which finishes first. 853 // socket which finishes first.
855 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv4FinishesFirst) { 854 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv4FinishesFirst) {
856 // Create a pool without backup jobs. 855 // Create a pool without backup jobs.
857 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); 856 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
858 TransportClientSocketPool pool(kMaxSockets, 857 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
859 kMaxSocketsPerGroup, 858 host_resolver_.get(), &client_socket_factory_,
860 host_resolver_.get(), 859 NULL, NULL);
861 &client_socket_factory_,
862 NULL);
863 860
864 MockTransportClientSocketFactory::ClientSocketType case_types[] = { 861 MockTransportClientSocketFactory::ClientSocketType case_types[] = {
865 // This is the IPv6 socket. It stalls, but presents one failed connection 862 // This is the IPv6 socket. It stalls, but presents one failed connection
866 // attempt on GetConnectionAttempts. 863 // attempt on GetConnectionAttempts.
867 MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET, 864 MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET,
868 // This is the IPv4 socket. 865 // This is the IPv4 socket.
869 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET}; 866 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET};
870 867
871 client_socket_factory_.set_client_socket_types(case_types, 2); 868 client_socket_factory_.set_client_socket_types(case_types, 2);
872 869
(...skipping 26 matching lines...) Expand all
899 896
900 EXPECT_EQ(2, client_socket_factory_.allocation_count()); 897 EXPECT_EQ(2, client_socket_factory_.allocation_count());
901 } 898 }
902 899
903 // Test the case of the IPv6 address being slow, thus falling back to trying to 900 // Test the case of the IPv6 address being slow, thus falling back to trying to
904 // connect to the IPv4 address, but having the connect to the IPv6 address 901 // connect to the IPv4 address, but having the connect to the IPv6 address
905 // finish first. 902 // finish first.
906 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv6FinishesFirst) { 903 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv6FinishesFirst) {
907 // Create a pool without backup jobs. 904 // Create a pool without backup jobs.
908 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); 905 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
909 TransportClientSocketPool pool(kMaxSockets, 906 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
910 kMaxSocketsPerGroup, 907 host_resolver_.get(), &client_socket_factory_,
911 host_resolver_.get(), 908 NULL, NULL);
912 &client_socket_factory_,
913 NULL);
914 909
915 MockTransportClientSocketFactory::ClientSocketType case_types[] = { 910 MockTransportClientSocketFactory::ClientSocketType case_types[] = {
916 // This is the IPv6 socket. 911 // This is the IPv6 socket.
917 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET, 912 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET,
918 // This is the IPv4 socket. It stalls, but presents one failed connection 913 // This is the IPv4 socket. It stalls, but presents one failed connection
919 // attempt on GetConnectionATtempts. 914 // attempt on GetConnectionATtempts.
920 MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET}; 915 MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET};
921 916
922 client_socket_factory_.set_client_socket_types(case_types, 2); 917 client_socket_factory_.set_client_socket_types(case_types, 2);
923 client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds( 918 client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds(
(...skipping 26 matching lines...) Expand all
950 ASSERT_EQ(1u, attempts.size()); 945 ASSERT_EQ(1u, attempts.size());
951 EXPECT_EQ(ERR_CONNECTION_FAILED, attempts[0].result); 946 EXPECT_EQ(ERR_CONNECTION_FAILED, attempts[0].result);
952 EXPECT_EQ(kIPv4AddressSize, attempts[0].endpoint.address().size()); 947 EXPECT_EQ(kIPv4AddressSize, attempts[0].endpoint.address().size());
953 948
954 EXPECT_EQ(2, client_socket_factory_.allocation_count()); 949 EXPECT_EQ(2, client_socket_factory_.allocation_count());
955 } 950 }
956 951
957 TEST_F(TransportClientSocketPoolTest, IPv6NoIPv4AddressesToFallbackTo) { 952 TEST_F(TransportClientSocketPoolTest, IPv6NoIPv4AddressesToFallbackTo) {
958 // Create a pool without backup jobs. 953 // Create a pool without backup jobs.
959 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); 954 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
960 TransportClientSocketPool pool(kMaxSockets, 955 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
961 kMaxSocketsPerGroup, 956 host_resolver_.get(), &client_socket_factory_,
962 host_resolver_.get(), 957 NULL, NULL);
963 &client_socket_factory_,
964 NULL);
965 958
966 client_socket_factory_.set_default_client_socket_type( 959 client_socket_factory_.set_default_client_socket_type(
967 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); 960 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET);
968 961
969 // Resolve an AddressList with only IPv6 addresses. 962 // Resolve an AddressList with only IPv6 addresses.
970 host_resolver_->rules() 963 host_resolver_->rules()
971 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); 964 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string());
972 965
973 TestCompletionCallback callback; 966 TestCompletionCallback callback;
974 ClientSocketHandle handle; 967 ClientSocketHandle handle;
(...skipping 10 matching lines...) Expand all
985 IPEndPoint endpoint; 978 IPEndPoint endpoint;
986 handle.socket()->GetLocalAddress(&endpoint); 979 handle.socket()->GetLocalAddress(&endpoint);
987 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); 980 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size());
988 EXPECT_EQ(0u, handle.connection_attempts().size()); 981 EXPECT_EQ(0u, handle.connection_attempts().size());
989 EXPECT_EQ(1, client_socket_factory_.allocation_count()); 982 EXPECT_EQ(1, client_socket_factory_.allocation_count());
990 } 983 }
991 984
992 TEST_F(TransportClientSocketPoolTest, IPv4HasNoFallback) { 985 TEST_F(TransportClientSocketPoolTest, IPv4HasNoFallback) {
993 // Create a pool without backup jobs. 986 // Create a pool without backup jobs.
994 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); 987 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
995 TransportClientSocketPool pool(kMaxSockets, 988 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
996 kMaxSocketsPerGroup, 989 host_resolver_.get(), &client_socket_factory_,
997 host_resolver_.get(), 990 NULL, NULL);
998 &client_socket_factory_,
999 NULL);
1000 991
1001 client_socket_factory_.set_default_client_socket_type( 992 client_socket_factory_.set_default_client_socket_type(
1002 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); 993 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET);
1003 994
1004 // Resolve an AddressList with only IPv4 addresses. 995 // Resolve an AddressList with only IPv4 addresses.
1005 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); 996 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string());
1006 997
1007 TestCompletionCallback callback; 998 TestCompletionCallback callback;
1008 ClientSocketHandle handle; 999 ClientSocketHandle handle;
1009 int rv = 1000 int rv =
(...skipping 14 matching lines...) Expand all
1024 } 1015 }
1025 1016
1026 // Test that if TCP FastOpen is enabled, it is set on the socket 1017 // Test that if TCP FastOpen is enabled, it is set on the socket
1027 // when we have only an IPv4 address. 1018 // when we have only an IPv4 address.
1028 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv4WithNoFallback) { 1019 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv4WithNoFallback) {
1029 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); 1020 SequencedSocketData socket_data(nullptr, 0, nullptr, 0);
1030 MockClientSocketFactory factory; 1021 MockClientSocketFactory factory;
1031 factory.AddSocketDataProvider(&socket_data); 1022 factory.AddSocketDataProvider(&socket_data);
1032 // Create a pool without backup jobs. 1023 // Create a pool without backup jobs.
1033 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); 1024 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
1034 TransportClientSocketPool pool(kMaxSockets, 1025 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
1035 kMaxSocketsPerGroup, 1026 host_resolver_.get(), &factory, NULL, NULL);
1036 host_resolver_.get(),
1037 &factory,
1038 NULL);
1039 // Resolve an AddressList with only IPv4 addresses. 1027 // Resolve an AddressList with only IPv4 addresses.
1040 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); 1028 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string());
1041 1029
1042 TestCompletionCallback callback; 1030 TestCompletionCallback callback;
1043 ClientSocketHandle handle; 1031 ClientSocketHandle handle;
1044 // Enable TCP FastOpen in TransportSocketParams. 1032 // Enable TCP FastOpen in TransportSocketParams.
1045 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); 1033 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen();
1046 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED, 1034 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED,
1047 callback.callback(), &pool, BoundNetLog()); 1035 callback.callback(), &pool, BoundNetLog());
1048 EXPECT_EQ(OK, callback.WaitForResult()); 1036 EXPECT_EQ(OK, callback.WaitForResult());
1049 EXPECT_TRUE(socket_data.IsUsingTCPFastOpen()); 1037 EXPECT_TRUE(socket_data.IsUsingTCPFastOpen());
1050 } 1038 }
1051 1039
1052 // Test that if TCP FastOpen is enabled, it is set on the socket 1040 // Test that if TCP FastOpen is enabled, it is set on the socket
1053 // when we have only IPv6 addresses. 1041 // when we have only IPv6 addresses.
1054 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv6WithNoFallback) { 1042 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv6WithNoFallback) {
1055 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); 1043 SequencedSocketData socket_data(nullptr, 0, nullptr, 0);
1056 MockClientSocketFactory factory; 1044 MockClientSocketFactory factory;
1057 factory.AddSocketDataProvider(&socket_data); 1045 factory.AddSocketDataProvider(&socket_data);
1058 // Create a pool without backup jobs. 1046 // Create a pool without backup jobs.
1059 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); 1047 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
1060 TransportClientSocketPool pool(kMaxSockets, 1048 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
1061 kMaxSocketsPerGroup, 1049 host_resolver_.get(), &factory, NULL, NULL);
1062 host_resolver_.get(),
1063 &factory,
1064 NULL);
1065 client_socket_factory_.set_default_client_socket_type( 1050 client_socket_factory_.set_default_client_socket_type(
1066 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); 1051 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET);
1067 // Resolve an AddressList with only IPv6 addresses. 1052 // Resolve an AddressList with only IPv6 addresses.
1068 host_resolver_->rules() 1053 host_resolver_->rules()
1069 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); 1054 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string());
1070 1055
1071 TestCompletionCallback callback; 1056 TestCompletionCallback callback;
1072 ClientSocketHandle handle; 1057 ClientSocketHandle handle;
1073 // Enable TCP FastOpen in TransportSocketParams. 1058 // Enable TCP FastOpen in TransportSocketParams.
1074 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); 1059 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen();
1075 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED, 1060 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED,
1076 callback.callback(), &pool, BoundNetLog()); 1061 callback.callback(), &pool, BoundNetLog());
1077 EXPECT_EQ(OK, callback.WaitForResult()); 1062 EXPECT_EQ(OK, callback.WaitForResult());
1078 EXPECT_TRUE(socket_data.IsUsingTCPFastOpen()); 1063 EXPECT_TRUE(socket_data.IsUsingTCPFastOpen());
1079 } 1064 }
1080 1065
1081 // Test that if TCP FastOpen is enabled, it does not do anything when there 1066 // Test that if TCP FastOpen is enabled, it does not do anything when there
1082 // is a IPv6 address with fallback to an IPv4 address. This test tests the case 1067 // is a IPv6 address with fallback to an IPv4 address. This test tests the case
1083 // when the IPv6 connect fails and the IPv4 one succeeds. 1068 // when the IPv6 connect fails and the IPv4 one succeeds.
1084 TEST_F(TransportClientSocketPoolTest, 1069 TEST_F(TransportClientSocketPoolTest,
1085 NoTCPFastOpenOnIPv6FailureWithIPv4Fallback) { 1070 NoTCPFastOpenOnIPv6FailureWithIPv4Fallback) {
1086 SequencedSocketData socket_data_1(nullptr, 0, nullptr, 0); 1071 SequencedSocketData socket_data_1(nullptr, 0, nullptr, 0);
1087 socket_data_1.set_connect_data(MockConnect(SYNCHRONOUS, ERR_IO_PENDING)); 1072 socket_data_1.set_connect_data(MockConnect(SYNCHRONOUS, ERR_IO_PENDING));
1088 SequencedSocketData socket_data_2(nullptr, 0, nullptr, 0); 1073 SequencedSocketData socket_data_2(nullptr, 0, nullptr, 0);
1089 MockClientSocketFactory factory; 1074 MockClientSocketFactory factory;
1090 factory.AddSocketDataProvider(&socket_data_1); 1075 factory.AddSocketDataProvider(&socket_data_1);
1091 factory.AddSocketDataProvider(&socket_data_2); 1076 factory.AddSocketDataProvider(&socket_data_2);
1092 // Create a pool without backup jobs. 1077 // Create a pool without backup jobs.
1093 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); 1078 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
1094 TransportClientSocketPool pool(kMaxSockets, 1079 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
1095 kMaxSocketsPerGroup, 1080 host_resolver_.get(), &factory, NULL, NULL);
1096 host_resolver_.get(),
1097 &factory,
1098 NULL);
1099 1081
1100 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. 1082 // Resolve an AddressList with a IPv6 address first and then a IPv4 address.
1101 host_resolver_->rules() 1083 host_resolver_->rules()
1102 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,2.2.2.2", std::string()); 1084 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,2.2.2.2", std::string());
1103 1085
1104 TestCompletionCallback callback; 1086 TestCompletionCallback callback;
1105 ClientSocketHandle handle; 1087 ClientSocketHandle handle;
1106 // Enable TCP FastOpen in TransportSocketParams. 1088 // Enable TCP FastOpen in TransportSocketParams.
1107 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); 1089 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen();
1108 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED, 1090 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED,
(...skipping 10 matching lines...) Expand all
1119 // Test that if TCP FastOpen is enabled, it does not do anything when there 1101 // Test that if TCP FastOpen is enabled, it does not do anything when there
1120 // is a IPv6 address with fallback to an IPv4 address. This test tests the case 1102 // is a IPv6 address with fallback to an IPv4 address. This test tests the case
1121 // when the IPv6 connect succeeds. 1103 // when the IPv6 connect succeeds.
1122 TEST_F(TransportClientSocketPoolTest, 1104 TEST_F(TransportClientSocketPoolTest,
1123 NoTCPFastOpenOnIPv6SuccessWithIPv4Fallback) { 1105 NoTCPFastOpenOnIPv6SuccessWithIPv4Fallback) {
1124 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); 1106 SequencedSocketData socket_data(nullptr, 0, nullptr, 0);
1125 MockClientSocketFactory factory; 1107 MockClientSocketFactory factory;
1126 factory.AddSocketDataProvider(&socket_data); 1108 factory.AddSocketDataProvider(&socket_data);
1127 // Create a pool without backup jobs. 1109 // Create a pool without backup jobs.
1128 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); 1110 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
1129 TransportClientSocketPool pool(kMaxSockets, 1111 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
1130 kMaxSocketsPerGroup, 1112 host_resolver_.get(), &factory, NULL, NULL);
1131 host_resolver_.get(),
1132 &factory,
1133 NULL);
1134 1113
1135 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. 1114 // Resolve an AddressList with a IPv6 address first and then a IPv4 address.
1136 host_resolver_->rules() 1115 host_resolver_->rules()
1137 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,2.2.2.2", std::string()); 1116 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,2.2.2.2", std::string());
1138 1117
1139 TestCompletionCallback callback; 1118 TestCompletionCallback callback;
1140 ClientSocketHandle handle; 1119 ClientSocketHandle handle;
1141 // Enable TCP FastOpen in TransportSocketParams. 1120 // Enable TCP FastOpen in TransportSocketParams.
1142 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); 1121 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen();
1143 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED, 1122 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED,
1144 callback.callback(), &pool, BoundNetLog()); 1123 callback.callback(), &pool, BoundNetLog());
1145 EXPECT_EQ(OK, callback.WaitForResult()); 1124 EXPECT_EQ(OK, callback.WaitForResult());
1146 IPEndPoint endpoint; 1125 IPEndPoint endpoint;
1147 handle.socket()->GetPeerAddress(&endpoint); 1126 handle.socket()->GetPeerAddress(&endpoint);
1148 // Verify that the socket used is connected to the IPv6 address. 1127 // Verify that the socket used is connected to the IPv6 address.
1149 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); 1128 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size());
1150 // Verify that TCP FastOpen was not turned on for the socket. 1129 // Verify that TCP FastOpen was not turned on for the socket.
1151 EXPECT_FALSE(socket_data.IsUsingTCPFastOpen()); 1130 EXPECT_FALSE(socket_data.IsUsingTCPFastOpen());
1152 } 1131 }
1153 1132
1154 } // namespace 1133 } // namespace
1155 1134
1156 } // namespace net 1135 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/transport_client_socket_pool_test_util.cc ('k') | net/socket/transport_client_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698