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

Unified Diff: net/socket/client_socket_pool_base_unittest.cc

Issue 2678353003: Close idle H2 sockets when SpdySession is initialized. (Closed)
Patch Set: Self Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
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 7b9bffa3a52a3fdaab3a6f1632f9f3df333e4e11..595b1380242351e1b9fad6cda151418a5301cbb6 100644
--- a/net/socket/client_socket_pool_base_unittest.cc
+++ b/net/socket/client_socket_pool_base_unittest.cc
@@ -549,6 +549,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 {
@@ -1620,6 +1624,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);

Powered by Google App Engine
This is Rietveld 408576698