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

Unified Diff: net/socket/client_socket_pool_base_unittest.cc

Issue 2678353003: Close idle H2 sockets when SpdySession is initialized. (Closed)
Patch Set: Address comments to hook directly to ClientSocketHandle 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
« no previous file with comments | « net/socket/client_socket_pool_base.cc ('k') | net/socket/socks_client_socket_pool.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « net/socket/client_socket_pool_base.cc ('k') | net/socket/socks_client_socket_pool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698