Index: net/socket/client_socket_pool_base_unittest.cc |
diff --git a/net/socket/client_socket_pool_base_unittest.cc b/net/socket/client_socket_pool_base_unittest.cc |
index b201809d4c0946c3cdf6141e10bc6e280d2505a1..770a92267f8c122c1e1315fa7f65ac3249a04adb 100644 |
--- a/net/socket/client_socket_pool_base_unittest.cc |
+++ b/net/socket/client_socket_pool_base_unittest.cc |
@@ -555,6 +555,10 @@ class TestClientSocketPool : public ClientSocketPool { |
void CloseIdleSockets() override { base_.CloseIdleSockets(); } |
+ void CloseIdleSocketsInGroup(const std::string& group_name) override { |
+ base_.CloseIdleSocketsInGroup(group_name); |
+ } |
+ |
int IdleSocketCount() const override { return base_.idle_socket_count(); } |
int IdleSocketCountInGroup(const std::string& group_name) const override { |
@@ -1729,6 +1733,36 @@ TEST_F(ClientSocketPoolBaseTest, CloseIdleSocketsForced) { |
base::Bucket(/*IDLE_SOCKET_FATE_CLEAN_UP_FORCED=*/4, 1))); |
} |
+TEST_F(ClientSocketPoolBaseTest, CloseIdleSocketsInGroupForced) { |
+ base::HistogramTester histograms; |
+ CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
+ TestCompletionCallback callback; |
+ BoundTestNetLog log; |
+ ClientSocketHandle handle1; |
+ int rv = handle1.Init("a", params_, LOWEST, |
+ ClientSocketPool::RespectLimits::ENABLED, |
+ callback.callback(), pool_.get(), log.bound()); |
+ EXPECT_THAT(rv, IsOk()); |
+ ClientSocketHandle handle2; |
+ rv = handle2.Init("a", params_, LOWEST, |
+ ClientSocketPool::RespectLimits::ENABLED, |
+ callback.callback(), pool_.get(), log.bound()); |
+ ClientSocketHandle handle3; |
+ rv = handle3.Init("b", params_, LOWEST, |
+ ClientSocketPool::RespectLimits::ENABLED, |
+ callback.callback(), pool_.get(), log.bound()); |
+ EXPECT_THAT(rv, IsOk()); |
+ handle1.Reset(); |
+ handle2.Reset(); |
+ handle3.Reset(); |
+ EXPECT_EQ(3, pool_->IdleSocketCount()); |
+ pool_->CloseIdleSocketsInGroup("a"); |
+ EXPECT_EQ(1, pool_->IdleSocketCount()); |
+ EXPECT_THAT(histograms.GetAllSamples(kIdleSocketFateHistogram), |
+ testing::ElementsAre( |
+ base::Bucket(/*IDLE_SOCKET_FATE_CLEAN_UP_FORCED=*/4, 2))); |
+} |
+ |
TEST_F(ClientSocketPoolBaseTest, CleanUpUnusableIdleSockets) { |
base::HistogramTester histograms; |
CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |