OLD | NEW |
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" |
11 #include "base/threading/platform_thread.h" | 11 #include "base/threading/platform_thread.h" |
12 #include "net/base/capturing_net_log.h" | 12 #include "net/base/capturing_net_log.h" |
13 #include "net/base/ip_endpoint.h" | 13 #include "net/base/ip_endpoint.h" |
14 #include "net/base/load_timing_info.h" | 14 #include "net/base/load_timing_info.h" |
15 #include "net/base/load_timing_info_test_util.h" | 15 #include "net/base/load_timing_info_test_util.h" |
16 #include "net/base/net_errors.h" | 16 #include "net/base/net_errors.h" |
17 #include "net/base/net_util.h" | 17 #include "net/base/net_util.h" |
18 #include "net/base/test_completion_callback.h" | 18 #include "net/base/test_completion_callback.h" |
19 #include "net/dns/mock_host_resolver.h" | 19 #include "net/dns/mock_host_resolver.h" |
20 #include "net/socket/client_socket_handle.h" | 20 #include "net/socket/client_socket_handle.h" |
21 #include "net/socket/client_socket_pool_histograms.h" | |
22 #include "net/socket/socket_test_util.h" | 21 #include "net/socket/socket_test_util.h" |
23 #include "net/socket/stream_socket.h" | 22 #include "net/socket/stream_socket.h" |
24 #include "net/socket/transport_client_socket_pool_test_util.h" | 23 #include "net/socket/transport_client_socket_pool_test_util.h" |
25 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
26 | 25 |
27 namespace net { | 26 namespace net { |
28 | 27 |
29 using internal::ClientSocketPoolBaseHelper; | 28 using internal::ClientSocketPoolBaseHelper; |
30 | 29 |
31 namespace { | 30 namespace { |
32 | 31 |
33 const int kMaxSockets = 32; | 32 const int kMaxSockets = 32; |
34 const int kMaxSocketsPerGroup = 6; | 33 const int kMaxSocketsPerGroup = 6; |
35 const RequestPriority kDefaultPriority = LOW; | 34 const RequestPriority kDefaultPriority = LOW; |
36 | 35 |
37 class TransportClientSocketPoolTest : public testing::Test { | 36 class TransportClientSocketPoolTest : public testing::Test { |
38 protected: | 37 protected: |
39 TransportClientSocketPoolTest() | 38 TransportClientSocketPoolTest() |
40 : connect_backup_jobs_enabled_( | 39 : connect_backup_jobs_enabled_( |
41 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(true)), | 40 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(true)), |
42 params_( | 41 params_( |
43 new TransportSocketParams( | 42 new TransportSocketParams( |
44 HostPortPair("www.google.com", 80), | 43 HostPortPair("www.google.com", 80), |
45 false, | 44 false, |
46 false, | 45 false, |
47 OnHostResolutionCallback(), | 46 OnHostResolutionCallback(), |
48 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)), | 47 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)), |
49 histograms_(new ClientSocketPoolHistograms("TCPUnitTest")), | |
50 host_resolver_(new MockHostResolver), | 48 host_resolver_(new MockHostResolver), |
51 client_socket_factory_(&net_log_), | 49 client_socket_factory_(&net_log_), |
52 pool_(kMaxSockets, | 50 pool_(kMaxSockets, |
53 kMaxSocketsPerGroup, | 51 kMaxSocketsPerGroup, |
54 histograms_.get(), | |
55 host_resolver_.get(), | 52 host_resolver_.get(), |
56 &client_socket_factory_, | 53 &client_socket_factory_, |
57 NULL) { | 54 NULL) { |
58 } | 55 } |
59 | 56 |
60 ~TransportClientSocketPoolTest() override { | 57 ~TransportClientSocketPoolTest() override { |
61 internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( | 58 internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( |
62 connect_backup_jobs_enabled_); | 59 connect_backup_jobs_enabled_); |
63 } | 60 } |
64 | 61 |
(...skipping 23 matching lines...) Expand all Loading... |
88 void ReleaseAllConnections(ClientSocketPoolTest::KeepAlive keep_alive) { | 85 void ReleaseAllConnections(ClientSocketPoolTest::KeepAlive keep_alive) { |
89 test_base_.ReleaseAllConnections(keep_alive); | 86 test_base_.ReleaseAllConnections(keep_alive); |
90 } | 87 } |
91 | 88 |
92 ScopedVector<TestSocketRequest>* requests() { return test_base_.requests(); } | 89 ScopedVector<TestSocketRequest>* requests() { return test_base_.requests(); } |
93 size_t completion_count() const { return test_base_.completion_count(); } | 90 size_t completion_count() const { return test_base_.completion_count(); } |
94 | 91 |
95 bool connect_backup_jobs_enabled_; | 92 bool connect_backup_jobs_enabled_; |
96 CapturingNetLog net_log_; | 93 CapturingNetLog net_log_; |
97 scoped_refptr<TransportSocketParams> params_; | 94 scoped_refptr<TransportSocketParams> params_; |
98 scoped_ptr<ClientSocketPoolHistograms> histograms_; | |
99 scoped_ptr<MockHostResolver> host_resolver_; | 95 scoped_ptr<MockHostResolver> host_resolver_; |
100 MockTransportClientSocketFactory client_socket_factory_; | 96 MockTransportClientSocketFactory client_socket_factory_; |
101 TransportClientSocketPool pool_; | 97 TransportClientSocketPool pool_; |
102 ClientSocketPoolTest test_base_; | 98 ClientSocketPoolTest test_base_; |
103 | 99 |
104 private: | 100 private: |
105 DISALLOW_COPY_AND_ASSIGN(TransportClientSocketPoolTest); | 101 DISALLOW_COPY_AND_ASSIGN(TransportClientSocketPoolTest); |
106 }; | 102 }; |
107 | 103 |
108 TEST(TransportConnectJobTest, MakeAddrListStartWithIPv4) { | 104 TEST(TransportConnectJobTest, MakeAddrListStartWithIPv4) { |
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
822 host_resolver_->set_synchronous_mode(false); | 818 host_resolver_->set_synchronous_mode(false); |
823 } | 819 } |
824 | 820 |
825 // Test the case of the IPv6 address stalling, and falling back to the IPv4 | 821 // Test the case of the IPv6 address stalling, and falling back to the IPv4 |
826 // socket which finishes first. | 822 // socket which finishes first. |
827 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv4FinishesFirst) { | 823 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv4FinishesFirst) { |
828 // Create a pool without backup jobs. | 824 // Create a pool without backup jobs. |
829 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 825 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
830 TransportClientSocketPool pool(kMaxSockets, | 826 TransportClientSocketPool pool(kMaxSockets, |
831 kMaxSocketsPerGroup, | 827 kMaxSocketsPerGroup, |
832 histograms_.get(), | |
833 host_resolver_.get(), | 828 host_resolver_.get(), |
834 &client_socket_factory_, | 829 &client_socket_factory_, |
835 NULL); | 830 NULL); |
836 | 831 |
837 MockTransportClientSocketFactory::ClientSocketType case_types[] = { | 832 MockTransportClientSocketFactory::ClientSocketType case_types[] = { |
838 // This is the IPv6 socket. | 833 // This is the IPv6 socket. |
839 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, | 834 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, |
840 // This is the IPv4 socket. | 835 // This is the IPv4 socket. |
841 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET | 836 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET |
842 }; | 837 }; |
(...skipping 22 matching lines...) Expand all Loading... |
865 } | 860 } |
866 | 861 |
867 // Test the case of the IPv6 address being slow, thus falling back to trying to | 862 // Test the case of the IPv6 address being slow, thus falling back to trying to |
868 // connect to the IPv4 address, but having the connect to the IPv6 address | 863 // connect to the IPv4 address, but having the connect to the IPv6 address |
869 // finish first. | 864 // finish first. |
870 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv6FinishesFirst) { | 865 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv6FinishesFirst) { |
871 // Create a pool without backup jobs. | 866 // Create a pool without backup jobs. |
872 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 867 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
873 TransportClientSocketPool pool(kMaxSockets, | 868 TransportClientSocketPool pool(kMaxSockets, |
874 kMaxSocketsPerGroup, | 869 kMaxSocketsPerGroup, |
875 histograms_.get(), | |
876 host_resolver_.get(), | 870 host_resolver_.get(), |
877 &client_socket_factory_, | 871 &client_socket_factory_, |
878 NULL); | 872 NULL); |
879 | 873 |
880 MockTransportClientSocketFactory::ClientSocketType case_types[] = { | 874 MockTransportClientSocketFactory::ClientSocketType case_types[] = { |
881 // This is the IPv6 socket. | 875 // This is the IPv6 socket. |
882 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET, | 876 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET, |
883 // This is the IPv4 socket. | 877 // This is the IPv4 socket. |
884 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET | 878 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET |
885 }; | 879 }; |
(...skipping 21 matching lines...) Expand all Loading... |
907 handle.socket()->GetLocalAddress(&endpoint); | 901 handle.socket()->GetLocalAddress(&endpoint); |
908 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); | 902 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); |
909 EXPECT_EQ(2, client_socket_factory_.allocation_count()); | 903 EXPECT_EQ(2, client_socket_factory_.allocation_count()); |
910 } | 904 } |
911 | 905 |
912 TEST_F(TransportClientSocketPoolTest, IPv6NoIPv4AddressesToFallbackTo) { | 906 TEST_F(TransportClientSocketPoolTest, IPv6NoIPv4AddressesToFallbackTo) { |
913 // Create a pool without backup jobs. | 907 // Create a pool without backup jobs. |
914 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 908 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
915 TransportClientSocketPool pool(kMaxSockets, | 909 TransportClientSocketPool pool(kMaxSockets, |
916 kMaxSocketsPerGroup, | 910 kMaxSocketsPerGroup, |
917 histograms_.get(), | |
918 host_resolver_.get(), | 911 host_resolver_.get(), |
919 &client_socket_factory_, | 912 &client_socket_factory_, |
920 NULL); | 913 NULL); |
921 | 914 |
922 client_socket_factory_.set_default_client_socket_type( | 915 client_socket_factory_.set_default_client_socket_type( |
923 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 916 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
924 | 917 |
925 // Resolve an AddressList with only IPv6 addresses. | 918 // Resolve an AddressList with only IPv6 addresses. |
926 host_resolver_->rules() | 919 host_resolver_->rules() |
927 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); | 920 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); |
(...skipping 13 matching lines...) Expand all Loading... |
941 handle.socket()->GetLocalAddress(&endpoint); | 934 handle.socket()->GetLocalAddress(&endpoint); |
942 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); | 935 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); |
943 EXPECT_EQ(1, client_socket_factory_.allocation_count()); | 936 EXPECT_EQ(1, client_socket_factory_.allocation_count()); |
944 } | 937 } |
945 | 938 |
946 TEST_F(TransportClientSocketPoolTest, IPv4HasNoFallback) { | 939 TEST_F(TransportClientSocketPoolTest, IPv4HasNoFallback) { |
947 // Create a pool without backup jobs. | 940 // Create a pool without backup jobs. |
948 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 941 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
949 TransportClientSocketPool pool(kMaxSockets, | 942 TransportClientSocketPool pool(kMaxSockets, |
950 kMaxSocketsPerGroup, | 943 kMaxSocketsPerGroup, |
951 histograms_.get(), | |
952 host_resolver_.get(), | 944 host_resolver_.get(), |
953 &client_socket_factory_, | 945 &client_socket_factory_, |
954 NULL); | 946 NULL); |
955 | 947 |
956 client_socket_factory_.set_default_client_socket_type( | 948 client_socket_factory_.set_default_client_socket_type( |
957 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 949 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
958 | 950 |
959 // Resolve an AddressList with only IPv4 addresses. | 951 // Resolve an AddressList with only IPv4 addresses. |
960 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); | 952 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); |
961 | 953 |
(...skipping 14 matching lines...) Expand all Loading... |
976 EXPECT_EQ(1, client_socket_factory_.allocation_count()); | 968 EXPECT_EQ(1, client_socket_factory_.allocation_count()); |
977 } | 969 } |
978 | 970 |
979 // Test that if TCP FastOpen is enabled, it is set on the socket | 971 // Test that if TCP FastOpen is enabled, it is set on the socket |
980 // when we have only an IPv4 address. | 972 // when we have only an IPv4 address. |
981 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv4WithNoFallback) { | 973 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv4WithNoFallback) { |
982 // Create a pool without backup jobs. | 974 // Create a pool without backup jobs. |
983 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 975 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
984 TransportClientSocketPool pool(kMaxSockets, | 976 TransportClientSocketPool pool(kMaxSockets, |
985 kMaxSocketsPerGroup, | 977 kMaxSocketsPerGroup, |
986 histograms_.get(), | |
987 host_resolver_.get(), | 978 host_resolver_.get(), |
988 &client_socket_factory_, | 979 &client_socket_factory_, |
989 NULL); | 980 NULL); |
990 client_socket_factory_.set_default_client_socket_type( | 981 client_socket_factory_.set_default_client_socket_type( |
991 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 982 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
992 // Resolve an AddressList with only IPv4 addresses. | 983 // Resolve an AddressList with only IPv4 addresses. |
993 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); | 984 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); |
994 | 985 |
995 TestCompletionCallback callback; | 986 TestCompletionCallback callback; |
996 ClientSocketHandle handle; | 987 ClientSocketHandle handle; |
997 // Enable TCP FastOpen in TransportSocketParams. | 988 // Enable TCP FastOpen in TransportSocketParams. |
998 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); | 989 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); |
999 handle.Init("a", params, LOW, callback.callback(), &pool, BoundNetLog()); | 990 handle.Init("a", params, LOW, callback.callback(), &pool, BoundNetLog()); |
1000 EXPECT_EQ(OK, callback.WaitForResult()); | 991 EXPECT_EQ(OK, callback.WaitForResult()); |
1001 EXPECT_TRUE(handle.socket()->UsingTCPFastOpen()); | 992 EXPECT_TRUE(handle.socket()->UsingTCPFastOpen()); |
1002 } | 993 } |
1003 | 994 |
1004 // Test that if TCP FastOpen is enabled, it is set on the socket | 995 // Test that if TCP FastOpen is enabled, it is set on the socket |
1005 // when we have only IPv6 addresses. | 996 // when we have only IPv6 addresses. |
1006 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv6WithNoFallback) { | 997 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv6WithNoFallback) { |
1007 // Create a pool without backup jobs. | 998 // Create a pool without backup jobs. |
1008 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 999 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
1009 TransportClientSocketPool pool(kMaxSockets, | 1000 TransportClientSocketPool pool(kMaxSockets, |
1010 kMaxSocketsPerGroup, | 1001 kMaxSocketsPerGroup, |
1011 histograms_.get(), | |
1012 host_resolver_.get(), | 1002 host_resolver_.get(), |
1013 &client_socket_factory_, | 1003 &client_socket_factory_, |
1014 NULL); | 1004 NULL); |
1015 client_socket_factory_.set_default_client_socket_type( | 1005 client_socket_factory_.set_default_client_socket_type( |
1016 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 1006 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
1017 // Resolve an AddressList with only IPv6 addresses. | 1007 // Resolve an AddressList with only IPv6 addresses. |
1018 host_resolver_->rules() | 1008 host_resolver_->rules() |
1019 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); | 1009 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); |
1020 | 1010 |
1021 TestCompletionCallback callback; | 1011 TestCompletionCallback callback; |
1022 ClientSocketHandle handle; | 1012 ClientSocketHandle handle; |
1023 // Enable TCP FastOpen in TransportSocketParams. | 1013 // Enable TCP FastOpen in TransportSocketParams. |
1024 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); | 1014 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); |
1025 handle.Init("a", params, LOW, callback.callback(), &pool, BoundNetLog()); | 1015 handle.Init("a", params, LOW, callback.callback(), &pool, BoundNetLog()); |
1026 EXPECT_EQ(OK, callback.WaitForResult()); | 1016 EXPECT_EQ(OK, callback.WaitForResult()); |
1027 EXPECT_TRUE(handle.socket()->UsingTCPFastOpen()); | 1017 EXPECT_TRUE(handle.socket()->UsingTCPFastOpen()); |
1028 } | 1018 } |
1029 | 1019 |
1030 // Test that if TCP FastOpen is enabled, it does not do anything when there | 1020 // Test that if TCP FastOpen is enabled, it does not do anything when there |
1031 // is a IPv6 address with fallback to an IPv4 address. This test tests the case | 1021 // is a IPv6 address with fallback to an IPv4 address. This test tests the case |
1032 // when the IPv6 connect fails and the IPv4 one succeeds. | 1022 // when the IPv6 connect fails and the IPv4 one succeeds. |
1033 TEST_F(TransportClientSocketPoolTest, | 1023 TEST_F(TransportClientSocketPoolTest, |
1034 NoTCPFastOpenOnIPv6FailureWithIPv4Fallback) { | 1024 NoTCPFastOpenOnIPv6FailureWithIPv4Fallback) { |
1035 // Create a pool without backup jobs. | 1025 // Create a pool without backup jobs. |
1036 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 1026 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
1037 TransportClientSocketPool pool(kMaxSockets, | 1027 TransportClientSocketPool pool(kMaxSockets, |
1038 kMaxSocketsPerGroup, | 1028 kMaxSocketsPerGroup, |
1039 histograms_.get(), | |
1040 host_resolver_.get(), | 1029 host_resolver_.get(), |
1041 &client_socket_factory_, | 1030 &client_socket_factory_, |
1042 NULL); | 1031 NULL); |
1043 | 1032 |
1044 MockTransportClientSocketFactory::ClientSocketType case_types[] = { | 1033 MockTransportClientSocketFactory::ClientSocketType case_types[] = { |
1045 // This is the IPv6 socket. | 1034 // This is the IPv6 socket. |
1046 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, | 1035 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, |
1047 // This is the IPv4 socket. | 1036 // This is the IPv4 socket. |
1048 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET | 1037 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET |
1049 }; | 1038 }; |
(...skipping 19 matching lines...) Expand all Loading... |
1069 | 1058 |
1070 // Test that if TCP FastOpen is enabled, it does not do anything when there | 1059 // Test that if TCP FastOpen is enabled, it does not do anything when there |
1071 // is a IPv6 address with fallback to an IPv4 address. This test tests the case | 1060 // is a IPv6 address with fallback to an IPv4 address. This test tests the case |
1072 // when the IPv6 connect succeeds. | 1061 // when the IPv6 connect succeeds. |
1073 TEST_F(TransportClientSocketPoolTest, | 1062 TEST_F(TransportClientSocketPoolTest, |
1074 NoTCPFastOpenOnIPv6SuccessWithIPv4Fallback) { | 1063 NoTCPFastOpenOnIPv6SuccessWithIPv4Fallback) { |
1075 // Create a pool without backup jobs. | 1064 // Create a pool without backup jobs. |
1076 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 1065 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
1077 TransportClientSocketPool pool(kMaxSockets, | 1066 TransportClientSocketPool pool(kMaxSockets, |
1078 kMaxSocketsPerGroup, | 1067 kMaxSocketsPerGroup, |
1079 histograms_.get(), | |
1080 host_resolver_.get(), | 1068 host_resolver_.get(), |
1081 &client_socket_factory_, | 1069 &client_socket_factory_, |
1082 NULL); | 1070 NULL); |
1083 | 1071 |
1084 MockTransportClientSocketFactory::ClientSocketType case_types[] = { | 1072 MockTransportClientSocketFactory::ClientSocketType case_types[] = { |
1085 // This is the IPv6 socket. | 1073 // This is the IPv6 socket. |
1086 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET, | 1074 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET, |
1087 // This is the IPv4 socket. | 1075 // This is the IPv4 socket. |
1088 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET | 1076 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET |
1089 }; | 1077 }; |
(...skipping 13 matching lines...) Expand all Loading... |
1103 handle.socket()->GetLocalAddress(&endpoint); | 1091 handle.socket()->GetLocalAddress(&endpoint); |
1104 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); | 1092 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); |
1105 EXPECT_EQ(1, client_socket_factory_.allocation_count()); | 1093 EXPECT_EQ(1, client_socket_factory_.allocation_count()); |
1106 // Verify that TCP FastOpen was not turned on for the socket. | 1094 // Verify that TCP FastOpen was not turned on for the socket. |
1107 EXPECT_FALSE(handle.socket()->UsingTCPFastOpen()); | 1095 EXPECT_FALSE(handle.socket()->UsingTCPFastOpen()); |
1108 } | 1096 } |
1109 | 1097 |
1110 } // namespace | 1098 } // namespace |
1111 | 1099 |
1112 } // namespace net | 1100 } // namespace net |
OLD | NEW |