diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-25 19:18:03 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-25 19:18:03 +0000 |
commit | 137ad0c8acd634e11925bce6a605e51a989ac0ff (patch) | |
tree | 608d5c5c7a409e77416a5d2a0f14ee83aca194d9 /net/base/client_socket_pool_unittest.cc | |
parent | b0ba335675ec7a44de94f182720f16c7ee0c2a7f (diff) | |
download | chromium_src-137ad0c8acd634e11925bce6a605e51a989ac0ff.zip chromium_src-137ad0c8acd634e11925bce6a605e51a989ac0ff.tar.gz chromium_src-137ad0c8acd634e11925bce6a605e51a989ac0ff.tar.bz2 |
Reverting 12470.
caused purify errors
Review URL: http://codereview.chromium.org/45055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12479 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/client_socket_pool_unittest.cc')
-rw-r--r-- | net/base/client_socket_pool_unittest.cc | 169 |
1 files changed, 62 insertions, 107 deletions
diff --git a/net/base/client_socket_pool_unittest.cc b/net/base/client_socket_pool_unittest.cc index 8849781..3fb5fd4 100644 --- a/net/base/client_socket_pool_unittest.cc +++ b/net/base/client_socket_pool_unittest.cc @@ -11,15 +11,9 @@ namespace { -const int kMaxSocketsPerGroup = 6; - -// Note that the first and the last are the same, the first should be handled -// before the last, since it was inserted first. -const int kPriorities[10] = { 1, 7, 9, 5, 6, 2, 8, 3, 4, 1 }; +typedef testing::Test ClientSocketPoolTest; -// This is the number of extra requests beyond the first few that use up all -// available sockets in the socket group. -const int kNumPendingRequests = arraysize(kPriorities); +const int kMaxSocketsPerGroup = 6; class MockClientSocket : public net::ClientSocket { public: @@ -65,16 +59,12 @@ int MockClientSocket::allocation_count = 0; class TestSocketRequest : public CallbackRunner< Tuple1<int> > { public: - TestSocketRequest( - net::ClientSocketPool* pool, - std::vector<TestSocketRequest*>* request_order) - : handle(pool), request_order_(request_order) {} + explicit TestSocketRequest(net::ClientSocketPool* pool) : handle(pool) {} net::ClientSocketHandle handle; void EnsureSocket() { DCHECK(handle.is_initialized()); - request_order_->push_back(this); if (!handle.socket()) { handle.set_socket(new MockClientSocket()); handle.socket()->Connect(NULL); @@ -88,32 +78,20 @@ class TestSocketRequest : public CallbackRunner< Tuple1<int> > { } static int completion_count; - - private: - std::vector<TestSocketRequest*>* request_order_; }; int TestSocketRequest::completion_count = 0; -class ClientSocketPoolTest : public testing::Test { - protected: - ClientSocketPoolTest() - : pool_(new net::ClientSocketPool(kMaxSocketsPerGroup)) {} - - virtual void SetUp() { - MockClientSocket::allocation_count = 0; - TestSocketRequest::completion_count = 0; - } +} // namespace - scoped_refptr<net::ClientSocketPool> pool_; - std::vector<TestSocketRequest*> request_order_; -}; +TEST(ClientSocketPoolTest, Basic) { + scoped_refptr<net::ClientSocketPool> pool = + new net::ClientSocketPool(kMaxSocketsPerGroup); -TEST_F(ClientSocketPoolTest, Basic) { - TestSocketRequest r(pool_.get(), &request_order_); + TestSocketRequest r(pool); int rv; - rv = r.handle.Init("a", 0, &r); + rv = r.handle.Init("a", &r); EXPECT_EQ(net::OK, rv); EXPECT_TRUE(r.handle.is_initialized()); @@ -123,11 +101,14 @@ TEST_F(ClientSocketPoolTest, Basic) { MessageLoop::current()->RunAllPending(); } -TEST_F(ClientSocketPoolTest, WithIdleConnection) { - TestSocketRequest r(pool_.get(), &request_order_); +TEST(ClientSocketPoolTest, WithIdleConnection) { + scoped_refptr<net::ClientSocketPool> pool = + new net::ClientSocketPool(kMaxSocketsPerGroup); + + TestSocketRequest r(pool); int rv; - rv = r.handle.Init("a", 0, &r); + rv = r.handle.Init("a", &r); EXPECT_EQ(net::OK, rv); EXPECT_TRUE(r.handle.is_initialized()); @@ -142,24 +123,27 @@ TEST_F(ClientSocketPoolTest, WithIdleConnection) { MessageLoop::current()->RunAllPending(); } -TEST_F(ClientSocketPoolTest, PendingRequests) { - int rv; +TEST(ClientSocketPoolTest, PendingRequests) { + scoped_refptr<net::ClientSocketPool> pool = + new net::ClientSocketPool(kMaxSocketsPerGroup); - scoped_ptr<TestSocketRequest> reqs[kMaxSocketsPerGroup + kNumPendingRequests]; + int rv; + scoped_ptr<TestSocketRequest> reqs[kMaxSocketsPerGroup + 10]; for (size_t i = 0; i < arraysize(reqs); ++i) - reqs[i].reset(new TestSocketRequest(pool_.get(), &request_order_)); + reqs[i].reset(new TestSocketRequest(pool)); + + // Reset + MockClientSocket::allocation_count = 0; + TestSocketRequest::completion_count = 0; // Create connections or queue up requests. - for (int i = 0; i < kMaxSocketsPerGroup; ++i) { - rv = reqs[i]->handle.Init("a", 5, reqs[i].get()); - EXPECT_EQ(net::OK, rv); - reqs[i]->EnsureSocket(); - } - for (int i = 0; i < kNumPendingRequests; ++i) { - rv = reqs[kMaxSocketsPerGroup + i]->handle.Init( - "a", kPriorities[i], reqs[kMaxSocketsPerGroup + i].get()); - EXPECT_EQ(net::ERR_IO_PENDING, rv); + for (size_t i = 0; i < arraysize(reqs); ++i) { + rv = reqs[i]->handle.Init("a", reqs[i].get()); + if (rv != net::ERR_IO_PENDING) { + EXPECT_EQ(net::OK, rv); + reqs[i]->EnsureSocket(); + } } // Release any connections until we have no connections. @@ -176,36 +160,26 @@ TEST_F(ClientSocketPoolTest, PendingRequests) { } while (released_one); EXPECT_EQ(kMaxSocketsPerGroup, MockClientSocket::allocation_count); - EXPECT_EQ(kNumPendingRequests, TestSocketRequest::completion_count); - - for (int i = 0; i < kMaxSocketsPerGroup; ++i) { - EXPECT_EQ(request_order_[i], reqs[i].get()) << - "Request " << i << " was not in order."; - } - - for (int i = 0; i < kNumPendingRequests - 1; ++i) { - int index_in_queue = (kNumPendingRequests - 1) - kPriorities[i]; - EXPECT_EQ(request_order_[kMaxSocketsPerGroup + index_in_queue], - reqs[kMaxSocketsPerGroup + i].get()) << - "Request " << kMaxSocketsPerGroup + i << " was not in order."; - } - - EXPECT_EQ(request_order_[arraysize(reqs) - 1], - reqs[arraysize(reqs) - 1].get()) << - "The last request with priority 1 should not have been inserted " - "earlier into the queue."; + EXPECT_EQ(10, TestSocketRequest::completion_count); } -TEST_F(ClientSocketPoolTest, PendingRequests_NoKeepAlive) { +TEST(ClientSocketPoolTest, PendingRequests_NoKeepAlive) { + scoped_refptr<net::ClientSocketPool> pool = + new net::ClientSocketPool(kMaxSocketsPerGroup); + int rv; - scoped_ptr<TestSocketRequest> reqs[kMaxSocketsPerGroup + kNumPendingRequests]; + scoped_ptr<TestSocketRequest> reqs[kMaxSocketsPerGroup + 10]; for (size_t i = 0; i < arraysize(reqs); ++i) - reqs[i].reset(new TestSocketRequest(pool_.get(), &request_order_)); + reqs[i].reset(new TestSocketRequest(pool)); + + // Reset + MockClientSocket::allocation_count = 0; + TestSocketRequest::completion_count = 0; // Create connections or queue up requests. for (size_t i = 0; i < arraysize(reqs); ++i) { - rv = reqs[i]->handle.Init("a", 0, reqs[i].get()); + rv = reqs[i]->handle.Init("a", reqs[i].get()); if (rv != net::ERR_IO_PENDING) { EXPECT_EQ(net::OK, rv); reqs[i]->EnsureSocket(); @@ -226,29 +200,31 @@ TEST_F(ClientSocketPoolTest, PendingRequests_NoKeepAlive) { } } while (released_one); - EXPECT_EQ(kMaxSocketsPerGroup + kNumPendingRequests, - MockClientSocket::allocation_count); - EXPECT_EQ(kNumPendingRequests, TestSocketRequest::completion_count); + EXPECT_EQ(kMaxSocketsPerGroup + 10, MockClientSocket::allocation_count); + EXPECT_EQ(10, TestSocketRequest::completion_count); } -TEST_F(ClientSocketPoolTest, CancelRequest) { - int rv; +TEST(ClientSocketPoolTest, CancelRequest) { + scoped_refptr<net::ClientSocketPool> pool = + new net::ClientSocketPool(kMaxSocketsPerGroup); - scoped_ptr<TestSocketRequest> reqs[kMaxSocketsPerGroup + kNumPendingRequests]; + int rv; + scoped_ptr<TestSocketRequest> reqs[kMaxSocketsPerGroup + 10]; for (size_t i = 0; i < arraysize(reqs); ++i) - reqs[i].reset(new TestSocketRequest(pool_.get(), &request_order_)); + reqs[i].reset(new TestSocketRequest(pool)); + + // Reset + MockClientSocket::allocation_count = 0; + TestSocketRequest::completion_count = 0; // Create connections or queue up requests. - for (int i = 0; i < kMaxSocketsPerGroup; ++i) { - rv = reqs[i]->handle.Init("a", 5, reqs[i].get()); - EXPECT_EQ(net::OK, rv); - reqs[i]->EnsureSocket(); - } - for (int i = 0; i < kNumPendingRequests; ++i) { - rv = reqs[kMaxSocketsPerGroup + i]->handle.Init( - "a", kPriorities[i], reqs[kMaxSocketsPerGroup + i].get()); - EXPECT_EQ(net::ERR_IO_PENDING, rv); + for (size_t i = 0; i < arraysize(reqs); ++i) { + rv = reqs[i]->handle.Init("a", reqs[i].get()); + if (rv != net::ERR_IO_PENDING) { + EXPECT_EQ(net::OK, rv); + reqs[i]->EnsureSocket(); + } } // Cancel a request. @@ -270,26 +246,5 @@ TEST_F(ClientSocketPoolTest, CancelRequest) { } while (released_one); EXPECT_EQ(kMaxSocketsPerGroup, MockClientSocket::allocation_count); - EXPECT_EQ(kNumPendingRequests - 1, TestSocketRequest::completion_count); - for (int i = 0; i < kMaxSocketsPerGroup; ++i) { - EXPECT_EQ(request_order_[i], reqs[i].get()) << - "Request " << i << " was not in order."; - } - - for (int i = 0; i < kNumPendingRequests - 1; ++i) { - if (i == 2) continue; - int index_in_queue = (kNumPendingRequests - 1) - kPriorities[i]; - if (kPriorities[i] < kPriorities[index_to_cancel - kMaxSocketsPerGroup]) - index_in_queue--; - EXPECT_EQ(request_order_[kMaxSocketsPerGroup + index_in_queue], - reqs[kMaxSocketsPerGroup + i].get()) << - "Request " << kMaxSocketsPerGroup + i << " was not in order."; - } - - EXPECT_EQ(request_order_[arraysize(reqs) - 2], - reqs[arraysize(reqs) - 1].get()) << - "The last request with priority 1 should not have been inserted " - "earlier into the queue."; + EXPECT_EQ(9, TestSocketRequest::completion_count); } - -} // namespace |