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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc

Issue 2258133002: [scheduler] Implement time-based cpu throttling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "platform/scheduler/base/time_domain.h" 5 #include "platform/scheduler/base/time_domain.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/test/simple_test_tick_clock.h" 9 #include "base/test/simple_test_tick_clock.h"
10 #include "cc/test/ordered_simple_task_runner.h" 10 #include "cc/test/ordered_simple_task_runner.h"
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 lazy_now = time_domain_->CreateLazyNow(); 206 lazy_now = time_domain_->CreateLazyNow();
207 time_domain_->UpdateWorkQueues(lazy_now); 207 time_domain_->UpdateWorkQueues(lazy_now);
208 ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time)); 208 ASSERT_FALSE(time_domain_->NextScheduledRunTime(&next_run_time));
209 } 209 }
210 210
211 namespace { 211 namespace {
212 class MockObserver : public TimeDomain::Observer { 212 class MockObserver : public TimeDomain::Observer {
213 public: 213 public:
214 ~MockObserver() override {} 214 ~MockObserver() override {}
215 215
216 MOCK_METHOD0(OnTimeDomainHasImmediateWork, void()); 216 MOCK_METHOD1(OnTimeDomainHasImmediateWork, void(TaskQueue*));
217 MOCK_METHOD0(OnTimeDomainHasDelayedWork, void()); 217 MOCK_METHOD1(OnTimeDomainHasDelayedWork, void(TaskQueue*));
218 }; 218 };
219 } // namespace 219 } // namespace
220 220
221 class TimeDomainWithObserverTest : public TimeDomainTest { 221 class TimeDomainWithObserverTest : public TimeDomainTest {
222 public: 222 public:
223 MockTimeDomain* CreateMockTimeDomain() override { 223 MockTimeDomain* CreateMockTimeDomain() override {
224 observer_.reset(new MockObserver()); 224 observer_.reset(new MockObserver());
225 return new MockTimeDomain(observer_.get()); 225 return new MockTimeDomain(observer_.get());
226 } 226 }
227 227
228 std::unique_ptr<MockObserver> observer_; 228 std::unique_ptr<MockObserver> observer_;
229 }; 229 };
230 230
231 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasImmediateWork) { 231 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasImmediateWork) {
232 EXPECT_CALL(*observer_, OnTimeDomainHasImmediateWork()); 232 EXPECT_CALL(*observer_, OnTimeDomainHasImmediateWork(task_queue_.get()));
233 time_domain_->RegisterAsUpdatableTaskQueue(task_queue_.get()); 233 time_domain_->RegisterAsUpdatableTaskQueue(task_queue_.get());
234 } 234 }
235 235
236 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) { 236 TEST_F(TimeDomainWithObserverTest, OnTimeDomainHasDelayedWork) {
237 EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork()); 237 EXPECT_CALL(*observer_, OnTimeDomainHasDelayedWork(task_queue_.get()));
238 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _)); 238 EXPECT_CALL(*time_domain_.get(), RequestWakeup(_, _));
239 base::TimeTicks now = time_domain_->Now(); 239 base::TimeTicks now = time_domain_->Now();
240 time_domain_->ScheduleDelayedWork( 240 time_domain_->ScheduleDelayedWork(
241 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now); 241 task_queue_.get(), now + base::TimeDelta::FromMilliseconds(10), now);
242 } 242 }
243 243
244 } // namespace scheduler 244 } // namespace scheduler
245 } // namespace blink 245 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698