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

Unified Diff: content/browser/loader/resource_scheduler_unittest.cc

Issue 23620058: Add a cap of six in-flight requests per host to the ResourceScheduler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed duplicate iteration code 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
Index: content/browser/loader/resource_scheduler_unittest.cc
diff --git a/content/browser/loader/resource_scheduler_unittest.cc b/content/browser/loader/resource_scheduler_unittest.cc
index 9474778d9f26d75542aa7af7c7940ea1840f0174..9f8605b4497c2e792a8e31841b2e3dfb4b908142 100644
--- a/content/browser/loader/resource_scheduler_unittest.cc
+++ b/content/browser/loader/resource_scheduler_unittest.cc
@@ -318,19 +318,41 @@ TEST_F(ResourceSchedulerTest, LimitedNumberOfDelayableRequestsInFlight) {
EXPECT_TRUE(high->started());
const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
- ScopedVector<TestRequest> lows;
- for (int i = 0; i < kMaxNumDelayableRequestsPerClient; ++i) {
+ const int kMaxNumDelayableRequestsPerHost = 6;
+ ScopedVector<TestRequest> lows_singlehost;
+ // Queue up to the per-host limit (we subtract the current high-pri request).
+ for (int i = 0; i < kMaxNumDelayableRequestsPerHost - 1; ++i) {
string url = "http://host/low" + base::IntToString(i);
- lows.push_back(NewRequest(url.c_str(), net::LOWEST));
- EXPECT_TRUE(lows[i]->started());
+ lows_singlehost.push_back(NewRequest(url.c_str(), net::LOWEST));
+ EXPECT_TRUE(lows_singlehost[i]->started());
}
- scoped_ptr<TestRequest> last(NewRequest("http://host/last", net::LOWEST));
- EXPECT_FALSE(last->started());
+ scoped_ptr<TestRequest> second_last_singlehost(NewRequest("http://host/last",
+ net::LOWEST));
+ scoped_ptr<TestRequest> last_singlehost(NewRequest("http://host/s_last",
+ net::LOWEST));
+
+ EXPECT_FALSE(second_last_singlehost->started());
high.reset();
- EXPECT_FALSE(last->started());
- lows.erase(lows.begin());
- EXPECT_TRUE(last->started());
+ EXPECT_TRUE(second_last_singlehost->started());
+ EXPECT_FALSE(last_singlehost->started());
+ lows_singlehost.erase(lows_singlehost.begin());
+ EXPECT_TRUE(last_singlehost->started());
+
+ // Queue more requests from different hosts until we reach the total limit.
+ int expected_slots_left =
+ kMaxNumDelayableRequestsPerClient - kMaxNumDelayableRequestsPerHost;
+ EXPECT_GT(expected_slots_left, 0);
+ ScopedVector<TestRequest> lows_differenthosts;
+ for (int i = 0; i < expected_slots_left; ++i) {
+ string url = "http://host" + base::IntToString(i) + "/low";
+ lows_differenthosts.push_back(NewRequest(url.c_str(), net::LOWEST));
+ EXPECT_TRUE(lows_differenthosts[i]->started());
+ }
+
+ scoped_ptr<TestRequest> last_differenthost(NewRequest("http://host_new/last",
+ net::LOWEST));
+ EXPECT_FALSE(last_differenthost->started());
}
TEST_F(ResourceSchedulerTest, RaisePriorityAndStart) {
@@ -391,7 +413,7 @@ TEST_F(ResourceSchedulerTest, LowerPriority) {
const int kNumFillerRequests = kMaxNumDelayableRequestsPerClient - 2;
ScopedVector<TestRequest> lows;
for (int i = 0; i < kNumFillerRequests; ++i) {
- string url = "http://host/low" + base::IntToString(i);
+ string url = "http://host" + base::IntToString(i) + "/low";
lows.push_back(NewRequest(url.c_str(), net::LOWEST));
}

Powered by Google App Engine
This is Rietveld 408576698