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

Unified Diff: trunk/src/net/socket/client_socket_pool_base_unittest.cc

Issue 47563006: Revert 232802 "[Net] Assert that URLRequests with LOAD_IGNORE_LI..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 1 month 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 | « trunk/src/net/socket/client_socket_pool_base.cc ('k') | trunk/src/net/url_request/url_fetcher_core.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/src/net/socket/client_socket_pool_base_unittest.cc
===================================================================
--- trunk/src/net/socket/client_socket_pool_base_unittest.cc (revision 232831)
+++ trunk/src/net/socket/client_socket_pool_base_unittest.cc (working copy)
@@ -45,6 +45,7 @@
const int kDefaultMaxSockets = 4;
const int kDefaultMaxSocketsPerGroup = 2;
+const net::RequestPriority kDefaultPriority = MEDIUM;
// Make sure |handle| sets load times correctly when it has been assigned a
// reused socket.
@@ -99,16 +100,18 @@
class TestSocketParams : public base::RefCounted<TestSocketParams> {
public:
- explicit TestSocketParams(bool ignore_limits)
- : ignore_limits_(ignore_limits) {}
+ TestSocketParams() : ignore_limits_(false) {}
+ void set_ignore_limits(bool ignore_limits) {
+ ignore_limits_ = ignore_limits;
+ }
bool ignore_limits() { return ignore_limits_; }
private:
friend class base::RefCounted<TestSocketParams>;
~TestSocketParams() {}
- const bool ignore_limits_;
+ bool ignore_limits_;
};
typedef ClientSocketPoolBase<TestSocketParams> TestClientSocketPoolBase;
@@ -660,7 +663,7 @@
class ClientSocketPoolBaseTest : public testing::Test {
protected:
ClientSocketPoolBaseTest()
- : params_(new TestSocketParams(false /* ignore_limits */)),
+ : params_(new TestSocketParams()),
histograms_("ClientSocketPoolTest") {
connect_backup_jobs_enabled_ =
internal::ClientSocketPoolBaseHelper::connect_backup_jobs_enabled();
@@ -745,7 +748,7 @@
TestConnectJobDelegate delegate;
ClientSocketHandle ignored;
TestClientSocketPoolBase::Request request(
- &ignored, CompletionCallback(), DEFAULT_PRIORITY,
+ &ignored, CompletionCallback(), kDefaultPriority,
internal::ClientSocketPoolBaseHelper::NORMAL,
false, params_, BoundNetLog());
scoped_ptr<TestConnectJob> job(
@@ -765,7 +768,7 @@
CapturingNetLog log;
TestClientSocketPoolBase::Request request(
- &ignored, CompletionCallback(), DEFAULT_PRIORITY,
+ &ignored, CompletionCallback(), kDefaultPriority,
internal::ClientSocketPoolBaseHelper::NORMAL,
false, params_, BoundNetLog());
// Deleted by TestConnectJobDelegate.
@@ -812,7 +815,7 @@
EXPECT_EQ(OK,
handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
log.bound()));
@@ -855,7 +858,7 @@
EXPECT_EQ(ERR_CONNECTION_FAILED,
handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
log.bound()));
@@ -882,18 +885,18 @@
// TODO(eroman): Check that the NetLog contains this event.
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("b", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("c", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("d", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("b", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("c", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("d", kDefaultPriority));
EXPECT_EQ(static_cast<int>(requests_size()),
client_socket_factory_.allocation_count());
EXPECT_EQ(requests_size() - kDefaultMaxSockets, completion_count());
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("e", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("f", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("g", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("e", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("f", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("g", kDefaultPriority));
ReleaseAllConnections(ClientSocketPoolTest::NO_KEEP_ALIVE);
@@ -919,17 +922,17 @@
// TODO(eroman): Check that the NetLog contains this event.
// Reach all limits: max total sockets, and max sockets per group.
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("b", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("b", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("b", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("b", kDefaultPriority));
EXPECT_EQ(static_cast<int>(requests_size()),
client_socket_factory_.allocation_count());
EXPECT_EQ(requests_size() - kDefaultMaxSockets, completion_count());
// Now create a new group and verify that we don't starve it.
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("c", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("c", kDefaultPriority));
ReleaseAllConnections(ClientSocketPoolTest::NO_KEEP_ALIVE);
@@ -1025,13 +1028,13 @@
TEST_F(ClientSocketPoolBaseTest, TotalLimitCountsConnectingSockets) {
CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup);
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("b", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("c", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("b", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("c", kDefaultPriority));
// Create one asynchronous request.
connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("d", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("d", kDefaultPriority));
// We post all of our delayed tasks with a 2ms delay. I.e. they don't
// actually become pending until 2ms after they have been created. In order
@@ -1042,7 +1045,7 @@
// The next synchronous request should wait for its turn.
connect_job_factory_->set_job_type(TestConnectJob::kMockJob);
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("e", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("e", kDefaultPriority));
ReleaseAllConnections(ClientSocketPoolTest::NO_KEEP_ALIVE);
@@ -1063,17 +1066,17 @@
CreatePool(kDefaultMaxSockets, kDefaultMaxSockets);
connect_job_factory_->set_job_type(TestConnectJob::kMockJob);
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
connect_job_factory_->set_job_type(TestConnectJob::kMockWaitingJob);
EXPECT_EQ(kDefaultMaxSockets, client_socket_factory_.allocation_count());
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("b", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("c", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("b", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("c", kDefaultPriority));
EXPECT_EQ(kDefaultMaxSockets, client_socket_factory_.allocation_count());
@@ -1095,7 +1098,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1106,7 +1109,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handles[i].Init("b",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1129,7 +1132,7 @@
for (int i = 0; i < kDefaultMaxSockets; ++i) {
EXPECT_EQ(OK, handles[i].Init(base::IntToString(i),
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callbacks[i].callback(),
pool_.get(),
BoundNetLog()));
@@ -1140,7 +1143,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, stalled_handle.Init("foo",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1168,7 +1171,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handles[i].Init(base::IntToString(i),
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1180,7 +1183,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, stalled_handle.Init("foo",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1225,7 +1228,7 @@
EXPECT_EQ(OK, handles[i].Init(base::StringPrintf(
"Take 2: %d", i),
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1238,7 +1241,7 @@
// Now we will hit the socket limit.
EXPECT_EQ(ERR_IO_PENDING, stalled_handle.Init("foo",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1266,7 +1269,7 @@
TestCompletionCallback callback;
EXPECT_EQ(OK, handle.Init(base::IntToString(i),
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1286,7 +1289,7 @@
// close an idle socket though, since we should reuse the idle socket.
EXPECT_EQ(OK, handle.Init("0",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1298,8 +1301,8 @@
TEST_F(ClientSocketPoolBaseTest, PendingRequests) {
CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup);
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", IDLE));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", LOWEST));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", MEDIUM));
@@ -1330,8 +1333,8 @@
TEST_F(ClientSocketPoolBaseTest, PendingRequests_NoKeepAlive) {
CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup);
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", LOWEST));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", MEDIUM));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", HIGHEST));
@@ -1360,7 +1363,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1376,7 +1379,7 @@
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1387,7 +1390,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -1401,8 +1404,8 @@
TEST_F(ClientSocketPoolBaseTest, CancelRequest) {
CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup);
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", LOWEST));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", MEDIUM));
EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", HIGHEST));
@@ -1475,11 +1478,10 @@
}
within_callback_ = true;
TestCompletionCallback next_job_callback;
- scoped_refptr<TestSocketParams> params(
- new TestSocketParams(false /* ignore_limits */));
+ scoped_refptr<TestSocketParams> params(new TestSocketParams());
int rv = handle_->Init("a",
params,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
next_job_callback.callback(),
pool_,
BoundNetLog());
@@ -1528,7 +1530,7 @@
TestConnectJob::kMockPendingJob);
int rv = handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog());
@@ -1546,7 +1548,7 @@
&handle, pool_.get(), connect_job_factory_, TestConnectJob::kMockJob);
int rv = handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog());
@@ -1562,13 +1564,13 @@
connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
// Now, kDefaultMaxSocketsPerGroup requests should be active.
// Let's cancel them.
@@ -1599,7 +1601,7 @@
// Queue up all the requests
for (size_t i = 0; i < kNumberOfRequests; ++i)
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
for (size_t i = 0; i < kNumberOfRequests; ++i)
EXPECT_EQ(ERR_CONNECTION_FAILED, request(i)->WaitForResult());
@@ -1614,7 +1616,7 @@
TestCompletionCallback callback;
int rv = handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog());
@@ -1625,7 +1627,7 @@
rv = handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog());
@@ -1645,14 +1647,14 @@
const RequestPriority kHighPriority = HIGHEST;
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
// This is going to be a pending request in an otherwise empty group.
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
// Reach the maximum socket limit.
- EXPECT_EQ(OK, StartRequest("b", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("b", kDefaultPriority));
// Create a stalled group with high priorities.
EXPECT_EQ(ERR_IO_PENDING, StartRequest("c", kHighPriority));
@@ -1730,7 +1732,7 @@
handle.set_ssl_error_response_info(info);
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
log.bound()));
@@ -1766,7 +1768,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -1774,7 +1776,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -1826,7 +1828,7 @@
TestSocketRequest req1(&request_order, &completion_count);
int rv = req1.handle()->Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
req1.callback(), pool_.get(),
BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
@@ -1839,7 +1841,7 @@
TestSocketRequest req2(&request_order, &completion_count);
rv = req2.handle()->Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
req2.callback(),
pool_.get(),
BoundNetLog());
@@ -1847,7 +1849,7 @@
TestSocketRequest req3(&request_order, &completion_count);
rv = req3.handle()->Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
req3.callback(),
pool_.get(),
BoundNetLog());
@@ -1886,7 +1888,7 @@
TestSocketRequest req1(&request_order, &completion_count);
int rv = req1.handle()->Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
req1.callback(),
pool_.get(),
BoundNetLog());
@@ -1895,7 +1897,7 @@
TestSocketRequest req2(&request_order, &completion_count);
rv = req2.handle()->Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
req2.callback(),
pool_.get(),
BoundNetLog());
@@ -1907,7 +1909,7 @@
TestSocketRequest req3(&request_order, &completion_count);
rv = req3.handle()->Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
req3.callback(),
pool_.get(),
BoundNetLog());
@@ -1932,7 +1934,7 @@
TestCompletionCallback callback;
int rv = handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog());
@@ -1955,7 +1957,7 @@
TestCompletionCallback callback;
int rv = handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog());
@@ -1965,7 +1967,7 @@
TestCompletionCallback callback2;
rv = handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog());
@@ -2048,7 +2050,7 @@
TestCompletionCallback callback;
int rv = handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog());
@@ -2059,7 +2061,7 @@
TestCompletionCallback callback2;
rv = handle2.Init("b",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog());
@@ -2071,7 +2073,7 @@
TestCompletionCallback callback3;
rv = handle3.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog());
@@ -2105,7 +2107,7 @@
ClientSocketHandle handle;
TestCompletionCallback callback;
EXPECT_EQ(ERR_PROXY_AUTH_REQUESTED,
- handle.Init("a", params_, DEFAULT_PRIORITY, callback.callback(),
+ handle.Init("a", params_, kDefaultPriority, callback.callback(),
pool_.get(), BoundNetLog()));
EXPECT_TRUE(handle.is_initialized());
EXPECT_TRUE(handle.socket());
@@ -2121,7 +2123,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2141,7 +2143,7 @@
EXPECT_EQ(ERR_CONNECTION_FAILED,
handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2161,7 +2163,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2529,10 +2531,10 @@
connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", DEFAULT_PRIORITY));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequest("a", kDefaultPriority));
EXPECT_EQ(OK, (*requests())[0]->WaitForResult());
EXPECT_EQ(OK, (*requests())[1]->WaitForResult());
@@ -2579,10 +2581,9 @@
if (reset_releasing_handle_)
handle_.Reset();
- scoped_refptr<TestSocketParams> con_params(
- new TestSocketParams(false /* ignore_limits */));
+ scoped_refptr<TestSocketParams> con_params(new TestSocketParams());
EXPECT_EQ(expected_result_,
- handle2_.Init("a", con_params, DEFAULT_PRIORITY,
+ handle2_.Init("a", con_params, kDefaultPriority,
callback2_.callback(), pool_, BoundNetLog()));
}
@@ -2599,9 +2600,9 @@
TEST_F(ClientSocketPoolBaseTest, AdditionalErrorSocketsDontUseSlot) {
CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup);
- EXPECT_EQ(OK, StartRequest("b", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("a", DEFAULT_PRIORITY));
- EXPECT_EQ(OK, StartRequest("b", DEFAULT_PRIORITY));
+ EXPECT_EQ(OK, StartRequest("b", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("a", kDefaultPriority));
+ EXPECT_EQ(OK, StartRequest("b", kDefaultPriority));
EXPECT_EQ(static_cast<int>(requests_size()),
client_socket_factory_.allocation_count());
@@ -2610,7 +2611,7 @@
TestConnectJob::kMockPendingAdditionalErrorStateJob);
TestReleasingSocketRequest req(pool_.get(), OK, false);
EXPECT_EQ(ERR_IO_PENDING,
- req.handle()->Init("a", params_, DEFAULT_PRIORITY, req.callback(),
+ req.handle()->Init("a", params_, kDefaultPriority, req.callback(),
pool_.get(), BoundNetLog()));
// The next job should complete synchronously
connect_job_factory_->set_job_type(TestConnectJob::kMockJob);
@@ -2638,7 +2639,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2657,7 +2658,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2671,7 +2672,7 @@
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2706,7 +2707,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle_.Init(group_name_,
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
nested_callback_.callback(),
pool_,
BoundNetLog()));
@@ -2732,7 +2733,7 @@
ConnectWithinCallback callback("a", params_, pool_.get());
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2759,7 +2760,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("bar",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2771,7 +2772,7 @@
TestCompletionCallback callback;
EXPECT_EQ(OK, handles[i].Init("bar",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2801,7 +2802,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("bar",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2831,7 +2832,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("bar",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2840,7 +2841,7 @@
TestCompletionCallback callback2;
EXPECT_EQ(ERR_IO_PENDING, handle2.Init("bar",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -2870,7 +2871,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2886,7 +2887,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2928,7 +2929,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2944,7 +2945,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -2988,7 +2989,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -3004,7 +3005,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -3051,7 +3052,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3067,7 +3068,7 @@
EXPECT_EQ(ERR_IO_PENDING,
handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -3088,7 +3089,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3097,7 +3098,7 @@
TestCompletionCallback callback2;
EXPECT_EQ(ERR_IO_PENDING, handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -3105,7 +3106,7 @@
TestCompletionCallback callback3;
EXPECT_EQ(ERR_IO_PENDING, handle3.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback3.callback(),
pool_.get(),
BoundNetLog()));
@@ -3124,19 +3125,19 @@
EXPECT_EQ(OK, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
EXPECT_EQ(OK, handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
EXPECT_EQ(OK, handle3.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback3.callback(),
pool_.get(),
BoundNetLog()));
@@ -3161,7 +3162,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3170,7 +3171,7 @@
TestCompletionCallback callback2;
EXPECT_EQ(ERR_IO_PENDING, handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -3197,7 +3198,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3217,7 +3218,7 @@
TestCompletionCallback callback2;
EXPECT_EQ(ERR_IO_PENDING, handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -3245,7 +3246,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3254,7 +3255,7 @@
TestCompletionCallback callback2;
EXPECT_EQ(ERR_IO_PENDING, handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -3263,7 +3264,7 @@
TestCompletionCallback callback3;
EXPECT_EQ(ERR_IO_PENDING, handle3.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback3.callback(),
pool_.get(),
BoundNetLog()));
@@ -3345,7 +3346,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3372,7 +3373,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3449,7 +3450,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3459,7 +3460,7 @@
TestCompletionCallback callback2;
int rv = handle2.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog());
@@ -3528,7 +3529,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3563,7 +3564,7 @@
TestCompletionCallback callback;
EXPECT_EQ(OK, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -3591,7 +3592,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3605,13 +3606,13 @@
TestCompletionCallback callback2;
EXPECT_EQ(ERR_IO_PENDING, handle1.Init("b",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
EXPECT_EQ(ERR_IO_PENDING, handle2.Init("b",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -3699,7 +3700,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -3723,6 +3724,7 @@
MockLayeredPool(TestClientSocketPool* pool,
const std::string& group_name)
: pool_(pool),
+ params_(new TestSocketParams),
group_name_(group_name),
can_release_connection_(true) {
pool_->AddHigherLayeredPool(this);
@@ -3733,16 +3735,13 @@
}
int RequestSocket(TestClientSocketPool* pool) {
- scoped_refptr<TestSocketParams> params(
- new TestSocketParams(false /* ignore_limits */));
- return handle_.Init(group_name_, params, DEFAULT_PRIORITY,
+ return handle_.Init(group_name_, params_, kDefaultPriority,
callback_.callback(), pool, BoundNetLog());
}
int RequestSocketWithoutLimits(TestClientSocketPool* pool) {
- scoped_refptr<TestSocketParams> params(
- new TestSocketParams(true /* ignore_limits */));
- return handle_.Init(group_name_, params, MAXIMUM_PRIORITY,
+ params_->set_ignore_limits(true);
+ return handle_.Init(group_name_, params_, kDefaultPriority,
callback_.callback(), pool, BoundNetLog());
}
@@ -3763,6 +3762,7 @@
private:
TestClientSocketPool* const pool_;
+ scoped_refptr<TestSocketParams> params_;
ClientSocketHandle handle_;
TestCompletionCallback callback_;
const std::string group_name_;
@@ -3807,7 +3807,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -3830,7 +3830,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(OK, handle1.Init("group1",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3844,7 +3844,7 @@
TestCompletionCallback callback2;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("group2",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback2.callback(),
pool_.get(),
BoundNetLog()));
@@ -3867,7 +3867,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(OK, handle1.Init("group1",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3884,7 +3884,7 @@
TestCompletionCallback callback3;
EXPECT_EQ(ERR_IO_PENDING, handle3.Init("group3",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback3.callback(),
pool_.get(),
BoundNetLog()));
@@ -3900,7 +3900,7 @@
TestCompletionCallback callback4;
EXPECT_EQ(ERR_IO_PENDING, handle4.Init("group3",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback4.callback(),
pool_.get(),
BoundNetLog()));
@@ -3932,7 +3932,7 @@
TestCompletionCallback callback1;
EXPECT_EQ(OK, handle1.Init("group1",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback1.callback(),
pool_.get(),
BoundNetLog()));
@@ -3995,7 +3995,7 @@
TestCompletionCallback callback;
EXPECT_EQ(ERR_IO_PENDING, handle.Init("a",
params_,
- DEFAULT_PRIORITY,
+ kDefaultPriority,
callback.callback(),
pool_.get(),
BoundNetLog()));
@@ -4007,21 +4007,21 @@
// instead of a request with the same priority that was issued earlier, but
// that does not have |ignore_limits| set.
TEST_F(ClientSocketPoolBaseTest, IgnoreLimits) {
- scoped_refptr<TestSocketParams> params_ignore_limits(
- new TestSocketParams(true /* ignore_limits */));
+ scoped_refptr<TestSocketParams> params_ignore_limits(new TestSocketParams());
+ params_ignore_limits->set_ignore_limits(true);
CreatePool(1, 1);
// Issue a request to reach the socket pool limit.
- EXPECT_EQ(OK, StartRequestWithParams("a", MAXIMUM_PRIORITY, params_));
+ EXPECT_EQ(OK, StartRequestWithParams("a", kDefaultPriority, params_));
EXPECT_EQ(0, pool_->NumConnectJobsInGroup("a"));
connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
- EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", MAXIMUM_PRIORITY,
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", kDefaultPriority,
params_));
EXPECT_EQ(0, pool_->NumConnectJobsInGroup("a"));
- EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", MAXIMUM_PRIORITY,
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", kDefaultPriority,
params_ignore_limits));
ASSERT_EQ(1, pool_->NumConnectJobsInGroup("a"));
@@ -4029,25 +4029,76 @@
EXPECT_FALSE(request(1)->have_result());
}
+// Test that when a socket pool and group are at their limits, a request with
+// |ignore_limits| set triggers creation of a new socket, and gets the socket
+// instead of a request with a higher priority that was issued earlier, but
+// that does not have |ignore_limits| set.
+TEST_F(ClientSocketPoolBaseTest, IgnoreLimitsLowPriority) {
+ scoped_refptr<TestSocketParams> params_ignore_limits(new TestSocketParams());
+ params_ignore_limits->set_ignore_limits(true);
+ CreatePool(1, 1);
+
+ // Issue a request to reach the socket pool limit.
+ EXPECT_EQ(OK, StartRequestWithParams("a", HIGHEST, params_));
+ EXPECT_EQ(0, pool_->NumConnectJobsInGroup("a"));
+
+ connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
+
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", HIGHEST, params_));
+ EXPECT_EQ(0, pool_->NumConnectJobsInGroup("a"));
+
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", LOW,
+ params_ignore_limits));
+ ASSERT_EQ(1, pool_->NumConnectJobsInGroup("a"));
+
+ EXPECT_EQ(OK, request(2)->WaitForResult());
+ EXPECT_FALSE(request(1)->have_result());
+}
+
+// Test that when a socket pool and group are at their limits, a request with
+// |ignore_limits| set triggers creation of a new socket, and gets the socket
+// instead of a request with a higher priority that was issued later and
+// does not have |ignore_limits| set.
+TEST_F(ClientSocketPoolBaseTest, IgnoreLimitsLowPriority2) {
+ scoped_refptr<TestSocketParams> params_ignore_limits(new TestSocketParams());
+ params_ignore_limits->set_ignore_limits(true);
+ CreatePool(1, 1);
+
+ // Issue a request to reach the socket pool limit.
+ EXPECT_EQ(OK, StartRequestWithParams("a", HIGHEST, params_));
+ EXPECT_EQ(0, pool_->NumConnectJobsInGroup("a"));
+
+ connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
+
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", LOW,
+ params_ignore_limits));
+ ASSERT_EQ(1, pool_->NumConnectJobsInGroup("a"));
+
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", HIGHEST, params_));
+ EXPECT_EQ(1, pool_->NumConnectJobsInGroup("a"));
+
+ EXPECT_EQ(OK, request(1)->WaitForResult());
+ EXPECT_FALSE(request(2)->have_result());
+}
+
// Test that when a socket pool and group are at their limits, a ConnectJob
// issued for a request with |ignore_limits| set is not cancelled when a request
// without |ignore_limits| issued to the same group is cancelled.
TEST_F(ClientSocketPoolBaseTest, IgnoreLimitsCancelOtherJob) {
- scoped_refptr<TestSocketParams> params_ignore_limits(
- new TestSocketParams(true /* ignore_limits */));
+ scoped_refptr<TestSocketParams> params_ignore_limits(new TestSocketParams());
+ params_ignore_limits->set_ignore_limits(true);
CreatePool(1, 1);
// Issue a request to reach the socket pool limit.
- EXPECT_EQ(OK, StartRequestWithParams("a", MAXIMUM_PRIORITY, params_));
+ EXPECT_EQ(OK, StartRequestWithParams("a", HIGHEST, params_));
EXPECT_EQ(0, pool_->NumConnectJobsInGroup("a"));
connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
- EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", MAXIMUM_PRIORITY,
- params_));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", HIGHEST, params_));
EXPECT_EQ(0, pool_->NumConnectJobsInGroup("a"));
- EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", MAXIMUM_PRIORITY,
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", HIGHEST,
params_ignore_limits));
ASSERT_EQ(1, pool_->NumConnectJobsInGroup("a"));
@@ -4060,6 +4111,58 @@
EXPECT_FALSE(request(1)->have_result());
}
+// More involved test of ignore limits. Issues a bunch of requests and later
+// checks the order in which they receive sockets.
+TEST_F(ClientSocketPoolBaseTest, IgnoreLimitsOrder) {
+ scoped_refptr<TestSocketParams> params_ignore_limits(new TestSocketParams());
+ params_ignore_limits->set_ignore_limits(true);
+ CreatePool(1, 1);
+
+ connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob);
+
+ // Requests 0 and 1 do not have ignore_limits set, so they finish last. Since
+ // the maximum number of sockets per pool is 1, the second requests does not
+ // trigger a ConnectJob.
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", HIGHEST, params_));
+ EXPECT_EQ(ERR_IO_PENDING, StartRequestWithParams("a", HIGHEST, params_));
+
+ // Requests 2 and 3 have ignore_limits set, but have a low priority, so they
+ // finish just before the first two.
+ EXPECT_EQ(ERR_IO_PENDING,
+ StartRequestWithParams("a", LOW, params_ignore_limits));
+ EXPECT_EQ(ERR_IO_PENDING,
+ StartRequestWithParams("a", LOW, params_ignore_limits));
+
+ // Request 4 finishes first, since it is high priority and ignores limits.
+ EXPECT_EQ(ERR_IO_PENDING,
+ StartRequestWithParams("a", HIGHEST, params_ignore_limits));
+
+ // Request 5 and 6 are cancelled right after starting. This should result in
+ // creating two ConnectJobs. Since only one request (Request 1) did not
+ // result in creating a ConnectJob, only one of the ConnectJobs should be
+ // cancelled when the requests are.
+ EXPECT_EQ(ERR_IO_PENDING,
+ StartRequestWithParams("a", HIGHEST, params_ignore_limits));
+ EXPECT_EQ(ERR_IO_PENDING,
+ StartRequestWithParams("a", HIGHEST, params_ignore_limits));
+ EXPECT_EQ(6, pool_->NumConnectJobsInGroup("a"));
+ request(5)->handle()->Reset();
+ EXPECT_EQ(6, pool_->NumConnectJobsInGroup("a"));
+ request(6)->handle()->Reset();
+ ASSERT_EQ(5, pool_->NumConnectJobsInGroup("a"));
+
+ // Wait for the last request to get a socket.
+ EXPECT_EQ(OK, request(1)->WaitForResult());
+
+ // Check order in which requests received sockets.
+ // These are 1-based indices, while request(x) uses 0-based indices.
+ EXPECT_EQ(1, GetOrderOfRequest(5));
+ EXPECT_EQ(2, GetOrderOfRequest(3));
+ EXPECT_EQ(3, GetOrderOfRequest(4));
+ EXPECT_EQ(4, GetOrderOfRequest(1));
+ EXPECT_EQ(5, GetOrderOfRequest(2));
+}
+
} // namespace
} // namespace net
« no previous file with comments | « trunk/src/net/socket/client_socket_pool_base.cc ('k') | trunk/src/net/url_request/url_fetcher_core.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698