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

Side by Side Diff: content/renderer/scheduler/task_queue_manager_unittest.cc

Issue 968073003: [content]: Add support for long idle times in the Blink Scheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@long_idle_4
Patch Set: Enable for testing Created 5 years, 9 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
« no previous file with comments | « content/renderer/scheduler/task_queue_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/renderer/scheduler/task_queue_manager.h" 5 #include "content/renderer/scheduler/task_queue_manager.h"
6 6
7 #include "base/test/test_simple_task_runner.h" 7 #include "base/test/test_simple_task_runner.h"
8 #include "base/threading/thread.h" 8 #include "base/threading/thread.h"
9 #include "cc/test/test_now_source.h" 9 #include "cc/test/test_now_source.h"
10 #include "content/renderer/scheduler/nestable_task_runner_for_test.h" 10 #include "content/renderer/scheduler/nestable_task_runner_for_test.h"
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 833
834 TEST_F(TaskQueueManagerTest, ThreadCheckAfterTermination) { 834 TEST_F(TaskQueueManagerTest, ThreadCheckAfterTermination) {
835 Initialize(1); 835 Initialize(1);
836 scoped_refptr<base::SingleThreadTaskRunner> runner = 836 scoped_refptr<base::SingleThreadTaskRunner> runner =
837 manager_->TaskRunnerForQueue(0); 837 manager_->TaskRunnerForQueue(0);
838 EXPECT_TRUE(runner->RunsTasksOnCurrentThread()); 838 EXPECT_TRUE(runner->RunsTasksOnCurrentThread());
839 manager_.reset(); 839 manager_.reset();
840 EXPECT_TRUE(runner->RunsTasksOnCurrentThread()); 840 EXPECT_TRUE(runner->RunsTasksOnCurrentThread());
841 } 841 }
842 842
843 TEST_F(TaskQueueManagerTest, NextPendingDelayedTaskRunTime) {
844 scoped_refptr<cc::TestNowSource> clock(cc::TestNowSource::Create());
845 Initialize(2u);
846 manager_->SetTimeSourceForTesting(clock);
847
848 scoped_refptr<base::SingleThreadTaskRunner> runners[2] = {
849 manager_->TaskRunnerForQueue(0), manager_->TaskRunnerForQueue(1)};
850
851 // With no delayed tasks.
852 EXPECT_TRUE(manager_->NextPendingDelayedTaskRunTime().is_null());
853
854 // With a non-delayed task.
855 runners[0]->PostTask(FROM_HERE, base::Bind(&NullTestTask));
856 EXPECT_TRUE(manager_->NextPendingDelayedTaskRunTime().is_null());
857
858 // With a delayed task.
859 base::TimeDelta expected_delay = base::TimeDelta::FromMilliseconds(50);
860 runners[0]->PostDelayedTask(
861 FROM_HERE, base::Bind(&NullTestTask), expected_delay);
862 EXPECT_EQ(clock->Now() + expected_delay,
863 manager_->NextPendingDelayedTaskRunTime());
864
865 // With another delayed task in the same queue with a longer delay.
866 runners[0]->PostDelayedTask(
867 FROM_HERE, base::Bind(&NullTestTask),
868 base::TimeDelta::FromMilliseconds(100));
869 EXPECT_EQ(clock->Now() + expected_delay,
870 manager_->NextPendingDelayedTaskRunTime());
871
872 // With another delayed task in the same queue with a shorter delay.
873 expected_delay = base::TimeDelta::FromMilliseconds(20);
874 runners[0]->PostDelayedTask(
875 FROM_HERE, base::Bind(&NullTestTask), expected_delay);
876 EXPECT_EQ(clock->Now() + expected_delay,
877 manager_->NextPendingDelayedTaskRunTime());
878
879 // With another delayed task in a different queue with a shorter delay.
880 expected_delay = base::TimeDelta::FromMilliseconds(10);
881 runners[1]->PostDelayedTask(
882 FROM_HERE, base::Bind(&NullTestTask), expected_delay);
883 EXPECT_EQ(clock->Now() + expected_delay,
884 manager_->NextPendingDelayedTaskRunTime());
885
886 // Test it updates as time progresses
887 clock->AdvanceNow(expected_delay);
888 EXPECT_EQ(clock->Now(), manager_->NextPendingDelayedTaskRunTime());
889 }
890
843 } // namespace 891 } // namespace
844 } // namespace content 892 } // namespace content
845 893
OLDNEW
« no previous file with comments | « content/renderer/scheduler/task_queue_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698