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

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: fix missing comment 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
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/task_queue_selector.h" 10 #include "content/renderer/scheduler/task_queue_selector.h"
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 runner->PostTask(FROM_HERE, 819 runner->PostTask(FROM_HERE,
820 base::Bind(&RemoveObserverTask, manager_.get(), &observer)); 820 base::Bind(&RemoveObserverTask, manager_.get(), &observer));
821 821
822 selector_->AppendQueueToService(0); 822 selector_->AppendQueueToService(0);
823 823
824 EXPECT_CALL(observer, WillProcessTask(_)).Times(1); 824 EXPECT_CALL(observer, WillProcessTask(_)).Times(1);
825 EXPECT_CALL(observer, DidProcessTask(_)).Times(0); 825 EXPECT_CALL(observer, DidProcessTask(_)).Times(0);
826 message_loop_->RunUntilIdle(); 826 message_loop_->RunUntilIdle();
827 } 827 }
828 828
829 TEST_F(TaskQueueManagerTest, NextPendingDelayedTaskRunTime) {
830 scoped_refptr<cc::TestNowSource> clock(cc::TestNowSource::Create());
831 Initialize(2u);
832 manager_->SetTimeSourceForTesting(clock);
833
834 scoped_refptr<base::SingleThreadTaskRunner> runners[2] = {
835 manager_->TaskRunnerForQueue(0), manager_->TaskRunnerForQueue(1)};
836
837 // With no delayed tasks.
838 EXPECT_TRUE(manager_->NextPendingDelayedTaskRunTime().is_null());
839
840 // With a non-delayed task.
841 runners[0]->PostTask(FROM_HERE, base::Bind(&NullTestTask));
842 EXPECT_TRUE(manager_->NextPendingDelayedTaskRunTime().is_null());
843
844 // With a delayed task.
845 base::TimeDelta expected_delay = base::TimeDelta::FromMilliseconds(50);
846 runners[0]->PostDelayedTask(
847 FROM_HERE, base::Bind(&NullTestTask), expected_delay);
848 EXPECT_EQ(clock->Now() + expected_delay,
849 manager_->NextPendingDelayedTaskRunTime());
850
851 // With another delayed task in the same queue with a longer delay.
852 runners[0]->PostDelayedTask(
853 FROM_HERE, base::Bind(&NullTestTask),
854 base::TimeDelta::FromMilliseconds(100));
855 EXPECT_EQ(clock->Now() + expected_delay,
856 manager_->NextPendingDelayedTaskRunTime());
857
858 // With another delayed task in the same queue with a shorter delay.
859 expected_delay = base::TimeDelta::FromMilliseconds(20);
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 a different queue with a shorter delay.
866 expected_delay = base::TimeDelta::FromMilliseconds(10);
867 runners[1]->PostDelayedTask(
868 FROM_HERE, base::Bind(&NullTestTask), expected_delay);
869 EXPECT_EQ(clock->Now() + expected_delay,
870 manager_->NextPendingDelayedTaskRunTime());
871
872 // Test it updates as time progresses
873 clock->AdvanceNow(expected_delay);
874 EXPECT_EQ(clock->Now(), manager_->NextPendingDelayedTaskRunTime());
875 }
876
829 } // namespace 877 } // namespace
830 } // namespace content 878 } // namespace content
831 879
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698