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

Side by Side Diff: third_party/WebKit/Source/platform/TimerTest.cpp

Issue 2388303002: reflow comments in platform/ (Closed)
Patch Set: 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 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/Timer.h" 5 #include "platform/Timer.h"
6 6
7 #include "platform/scheduler/base/task_queue_impl.h" 7 #include "platform/scheduler/base/task_queue_impl.h"
8 #include "platform/scheduler/child/web_task_runner_impl.h" 8 #include "platform/scheduler/child/web_task_runner_impl.h"
9 #include "platform/scheduler/renderer/renderer_scheduler_impl.h" 9 #include "platform/scheduler/renderer/renderer_scheduler_impl.h"
10 #include "platform/testing/TestingPlatformSupport.h" 10 #include "platform/testing/TestingPlatformSupport.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 void runUntilDeadline(double deadline) { 45 void runUntilDeadline(double deadline) {
46 double period = deadline - monotonicallyIncreasingTime(); 46 double period = deadline - monotonicallyIncreasingTime();
47 EXPECT_GE(period, 0.0); 47 EXPECT_GE(period, 0.0);
48 m_platform.runForPeriodSeconds(period); 48 m_platform.runForPeriodSeconds(period);
49 49
50 // We may have stopped before the clock advanced to |deadline|. 50 // We may have stopped before the clock advanced to |deadline|.
51 double timeToAdvance = deadline - monotonicallyIncreasingTime(); 51 double timeToAdvance = deadline - monotonicallyIncreasingTime();
52 m_platform.advanceClockSeconds(timeToAdvance); 52 m_platform.advanceClockSeconds(timeToAdvance);
53 } 53 }
54 54
55 // Returns false if there are no pending delayed tasks, otherwise sets |time| to 55 // Returns false if there are no pending delayed tasks, otherwise sets |time|
56 // the delay in seconds till the next pending delayed task is scheduled to fir e. 56 // to the delay in seconds till the next pending delayed task is scheduled to
57 // fire.
57 bool timeTillNextDelayedTask(double* time) const { 58 bool timeTillNextDelayedTask(double* time) const {
58 base::TimeTicks nextRunTime; 59 base::TimeTicks nextRunTime;
59 if (!m_platform.rendererScheduler() 60 if (!m_platform.rendererScheduler()
60 ->TimerTaskRunner() 61 ->TimerTaskRunner()
61 ->GetTimeDomain() 62 ->GetTimeDomain()
62 ->NextScheduledRunTime(&nextRunTime)) 63 ->NextScheduledRunTime(&nextRunTime))
63 return false; 64 return false;
64 *time = (nextRunTime - 65 *time = (nextRunTime -
65 m_platform.rendererScheduler() 66 m_platform.rendererScheduler()
66 ->TimerTaskRunner() 67 ->TimerTaskRunner()
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 timer.startRepeating(10, BLINK_FROM_HERE); 405 timer.startRepeating(10, BLINK_FROM_HERE);
405 EXPECT_FLOAT_EQ(10.0, timer.repeatInterval()); 406 EXPECT_FLOAT_EQ(10.0, timer.repeatInterval());
406 EXPECT_FLOAT_EQ(10.0, timer.nextFireInterval()); 407 EXPECT_FLOAT_EQ(10.0, timer.nextFireInterval());
407 408
408 m_platform.advanceClockSeconds(2.0); 409 m_platform.advanceClockSeconds(2.0);
409 timer.augmentRepeatInterval(10); 410 timer.augmentRepeatInterval(10);
410 411
411 EXPECT_FLOAT_EQ(20.0, timer.repeatInterval()); 412 EXPECT_FLOAT_EQ(20.0, timer.repeatInterval());
412 EXPECT_FLOAT_EQ(18.0, timer.nextFireInterval()); 413 EXPECT_FLOAT_EQ(18.0, timer.nextFireInterval());
413 414
414 // NOTE setAutoAdvanceNowToPendingTasks(true) (which uses cc::OrderedSimpleTas kRunner) 415 // NOTE setAutoAdvanceNowToPendingTasks(true) (which uses
415 // results in somewhat strange behavior of the test clock which breaks this te st. 416 // cc::OrderedSimpleTaskRunner) results in somewhat strange behavior of the
416 // Specifically the test clock advancing logic ignores newly posted delayed ta sks and 417 // test clock which breaks this test. Specifically the test clock advancing
417 // advances too far. 418 // logic ignores newly posted delayed tasks and advances too far.
418 runUntilDeadline(m_startTime + 50.0); 419 runUntilDeadline(m_startTime + 50.0);
419 EXPECT_THAT(m_runTimes, ElementsAre(m_startTime + 20.0, m_startTime + 40.0)); 420 EXPECT_THAT(m_runTimes, ElementsAre(m_startTime + 20.0, m_startTime + 40.0));
420 } 421 }
421 422
422 TEST_F(TimerTest, AugmentRepeatInterval_TimerFireDelayed) { 423 TEST_F(TimerTest, AugmentRepeatInterval_TimerFireDelayed) {
423 m_platform.setAutoAdvanceNowToPendingTasks(false); 424 m_platform.setAutoAdvanceNowToPendingTasks(false);
424 425
425 Timer<TimerTest> timer(this, &TimerTest::countingTask); 426 Timer<TimerTest> timer(this, &TimerTest::countingTask);
426 timer.startRepeating(10, BLINK_FROM_HERE); 427 timer.startRepeating(10, BLINK_FROM_HERE);
427 EXPECT_FLOAT_EQ(10.0, timer.repeatInterval()); 428 EXPECT_FLOAT_EQ(10.0, timer.repeatInterval());
428 EXPECT_FLOAT_EQ(10.0, timer.nextFireInterval()); 429 EXPECT_FLOAT_EQ(10.0, timer.nextFireInterval());
429 430
430 m_platform.advanceClockSeconds(123.0); // Make the timer long overdue. 431 m_platform.advanceClockSeconds(123.0); // Make the timer long overdue.
431 timer.augmentRepeatInterval(10); 432 timer.augmentRepeatInterval(10);
432 433
433 EXPECT_FLOAT_EQ(20.0, timer.repeatInterval()); 434 EXPECT_FLOAT_EQ(20.0, timer.repeatInterval());
434 // The timer is overdue so it should be scheduled to fire immediatly. 435 // The timer is overdue so it should be scheduled to fire immediatly.
435 EXPECT_FLOAT_EQ(0.0, timer.nextFireInterval()); 436 EXPECT_FLOAT_EQ(0.0, timer.nextFireInterval());
436 } 437 }
437 438
438 TEST_F(TimerTest, RepeatingTimerDoesNotDrift) { 439 TEST_F(TimerTest, RepeatingTimerDoesNotDrift) {
439 m_platform.setAutoAdvanceNowToPendingTasks(false); 440 m_platform.setAutoAdvanceNowToPendingTasks(false);
440 441
441 Timer<TimerTest> timer(this, &TimerTest::recordNextFireTimeTask); 442 Timer<TimerTest> timer(this, &TimerTest::recordNextFireTimeTask);
442 timer.startRepeating(2.0, BLINK_FROM_HERE); 443 timer.startRepeating(2.0, BLINK_FROM_HERE);
443 444
444 recordNextFireTimeTask( 445 recordNextFireTimeTask(
445 &timer); // Next scheduled task to run at m_startTime + 2.0 446 &timer); // Next scheduled task to run at m_startTime + 2.0
446 447
447 // Simulate timer firing early. Next scheduled task to run at m_startTime + 4. 0 448 // Simulate timer firing early. Next scheduled task to run at
449 // m_startTime + 4.0
448 m_platform.advanceClockSeconds(1.9); 450 m_platform.advanceClockSeconds(1.9);
449 runUntilDeadline(monotonicallyIncreasingTime() + 0.2); 451 runUntilDeadline(monotonicallyIncreasingTime() + 0.2);
450 452
451 m_platform.runForPeriodSeconds( 453 // Next scheduled task to run at m_startTime + 6.0
452 2.0); // Next scheduled task to run at m_startTime + 6.0 454 m_platform.runForPeriodSeconds(2.0);
453 m_platform.runForPeriodSeconds( 455 // Next scheduled task to run at m_startTime + 8.0
454 2.1); // Next scheduled task to run at m_startTime + 8.0 456 m_platform.runForPeriodSeconds(2.1);
455 m_platform.runForPeriodSeconds( 457 // Next scheduled task to run at m_startTime + 10.0
456 2.9); // Next scheduled task to run at m_startTime + 10.0 458 m_platform.runForPeriodSeconds(2.9);
457 m_platform.runForPeriodSeconds( 459 // Next scheduled task to run at m_startTime + 14.0 (skips a beat)
458 3.1); // Next scheduled task to run at m_startTime + 14.0 (skips a beat) 460 m_platform.runForPeriodSeconds(3.1);
459 m_platform.runForPeriodSeconds( 461 // Next scheduled task to run at m_startTime + 18.0 (skips a beat)
460 4.0); // Next scheduled task to run at m_startTime + 18.0 (skips a beat) 462 m_platform.runForPeriodSeconds(4.0);
461 m_platform.runForPeriodSeconds( 463 // Next scheduled task to run at m_startTime + 28.0 (skips 5 beats)
462 10.0); // Next scheduled task to run at m_startTime + 28.0 (skips 5 beats ) 464 m_platform.runForPeriodSeconds(10.0);
463 465
464 EXPECT_THAT( 466 EXPECT_THAT(
465 m_nextFireTimes, 467 m_nextFireTimes,
466 ElementsAre(m_startTime + 2.0, m_startTime + 4.0, m_startTime + 6.0, 468 ElementsAre(m_startTime + 2.0, m_startTime + 4.0, m_startTime + 6.0,
467 m_startTime + 8.0, m_startTime + 10.0, m_startTime + 14.0, 469 m_startTime + 8.0, m_startTime + 10.0, m_startTime + 14.0,
468 m_startTime + 18.0, m_startTime + 28.0)); 470 m_startTime + 18.0, m_startTime + 28.0));
469 } 471 }
470 472
471 template <typename TimerFiredClass> 473 template <typename TimerFiredClass>
472 class TimerForTest : public TaskRunnerTimer<TimerFiredClass> { 474 class TimerForTest : public TaskRunnerTimer<TimerFiredClass> {
(...skipping 17 matching lines...) Expand all
490 scheduler::WebTaskRunnerImpl webTaskRunner(taskRunner); 492 scheduler::WebTaskRunnerImpl webTaskRunner(taskRunner);
491 TimerForTest<TimerTest> timer(&webTaskRunner, this, &TimerTest::countingTask); 493 TimerForTest<TimerTest> timer(&webTaskRunner, this, &TimerTest::countingTask);
492 timer.startOneShot(0, BLINK_FROM_HERE); 494 timer.startOneShot(0, BLINK_FROM_HERE);
493 495
494 // Make sure the task was posted on taskRunner. 496 // Make sure the task was posted on taskRunner.
495 EXPECT_FALSE(taskRunner->IsEmpty()); 497 EXPECT_FALSE(taskRunner->IsEmpty());
496 } 498 }
497 499
498 } // namespace 500 } // namespace
499 } // namespace blink 501 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/Timer.cpp ('k') | third_party/WebKit/Source/platform/TracedValue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698