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

Unified Diff: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc

Issue 2412323003: [scheduler] Support setting maximal throttling duration (Closed)
Patch Set: Addressed nits from alexclarke@ Created 4 years, 2 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 | « third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
index caf64ea7770d0299eda230d60491031616ffc245..855164732791913d100ab805c88073304d2ec0c5 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
@@ -502,7 +502,8 @@ TEST_F(TaskQueueThrottlerTest, TimeBudgetPool) {
EXPECT_EQ(time_zero, pool->GetNextAllowedRunTime());
// Run an expensive task and make sure that we're throttled.
- pool->RecordTaskRunTime(base::TimeDelta::FromMilliseconds(100));
+ pool->RecordTaskRunTime(time_zero,
+ time_zero + base::TimeDelta::FromMilliseconds(100));
EXPECT_FALSE(pool->HasEnoughBudgetToRun(
time_zero + base::TimeDelta::FromMilliseconds(500)));
@@ -514,10 +515,11 @@ TEST_F(TaskQueueThrottlerTest, TimeBudgetPool) {
// Run a cheap task and make sure that it doesn't affect anything.
EXPECT_TRUE(pool->HasEnoughBudgetToRun(
time_zero + base::TimeDelta::FromMilliseconds(2000)));
- pool->RecordTaskRunTime(base::TimeDelta::FromMilliseconds(20));
+ pool->RecordTaskRunTime(time_zero + base::TimeDelta::FromMilliseconds(2000),
+ time_zero + base::TimeDelta::FromMilliseconds(2020));
EXPECT_TRUE(pool->HasEnoughBudgetToRun(
- time_zero + base::TimeDelta::FromMilliseconds(2000)));
- EXPECT_EQ(time_zero + base::TimeDelta::FromMilliseconds(2000),
+ time_zero + base::TimeDelta::FromMilliseconds(2020)));
+ EXPECT_EQ(time_zero + base::TimeDelta::FromMilliseconds(2020),
pool->GetNextAllowedRunTime());
pool->Close();
@@ -803,5 +805,33 @@ TEST_F(TaskQueueThrottlerTest,
base::TimeDelta::FromMilliseconds(105)));
}
+TEST_F(TaskQueueThrottlerTest, MaxThrottlingDuration) {
+ std::vector<base::TimeTicks> run_times;
+
+ TaskQueueThrottler::TimeBudgetPool* pool =
+ task_queue_throttler_->CreateTimeBudgetPool("test");
+
+ pool->SetTimeBudget(base::TimeTicks(), 0.001);
+ pool->AddQueue(base::TimeTicks(), timer_queue_.get());
+
+ task_queue_throttler_->IncreaseThrottleRefCount(timer_queue_.get());
+
+ for (int i = 0; i < 5; ++i) {
+ timer_queue_->PostDelayedTask(
+ FROM_HERE, base::Bind(&ExpensiveTestTask, &run_times, clock_.get()),
+ base::TimeDelta::FromMilliseconds(200));
+ }
+
+ mock_task_runner_->RunUntilIdle();
+
+ EXPECT_THAT(
+ run_times,
+ ElementsAre(base::TimeTicks() + base::TimeDelta::FromSeconds(1),
+ base::TimeTicks() + base::TimeDelta::FromSeconds(62),
+ base::TimeTicks() + base::TimeDelta::FromSeconds(123),
+ base::TimeTicks() + base::TimeDelta::FromSeconds(184),
+ base::TimeTicks() + base::TimeDelta::FromSeconds(245)));
+}
+
} // namespace scheduler
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698