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

Side by Side Diff: components/scheduler/child/task_queue_manager_unittest.cc

Issue 1303353003: scheduler: Disable expensive timers during main thread user input (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments. Created 5 years, 4 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 | « components/scheduler/child/task_queue_manager.cc ('k') | components/scheduler/renderer/DEPS » ('j') | 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 "components/scheduler/child/task_queue_manager.h" 5 #include "components/scheduler/child/task_queue_manager.h"
6 6
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/test/simple_test_tick_clock.h" 10 #include "base/test/simple_test_tick_clock.h"
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 manager_->AddTaskObserver(&observer); 805 manager_->AddTaskObserver(&observer);
806 806
807 runners_[0]->PostTask( 807 runners_[0]->PostTask(
808 FROM_HERE, base::Bind(&RemoveObserverTask, manager_.get(), &observer)); 808 FROM_HERE, base::Bind(&RemoveObserverTask, manager_.get(), &observer));
809 809
810 EXPECT_CALL(observer, WillProcessTask(_)).Times(1); 810 EXPECT_CALL(observer, WillProcessTask(_)).Times(1);
811 EXPECT_CALL(observer, DidProcessTask(_)).Times(0); 811 EXPECT_CALL(observer, DidProcessTask(_)).Times(0);
812 message_loop_->RunUntilIdle(); 812 message_loop_->RunUntilIdle();
813 } 813 }
814 814
815 TEST_F(TaskQueueManagerTest, QueueTaskObserverAdding) {
816 InitializeWithRealMessageLoop(2u);
817 MockTaskObserver observer;
818
819 manager_->SetWorkBatchSize(2);
820 runners_[0]->AddTaskObserver(&observer);
821
822 std::vector<int> run_order;
823 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
824 runners_[1]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order));
825
826 EXPECT_CALL(observer, WillProcessTask(_)).Times(1);
827 EXPECT_CALL(observer, DidProcessTask(_)).Times(1);
828 message_loop_->RunUntilIdle();
829 }
830
831 TEST_F(TaskQueueManagerTest, QueueTaskObserverRemoving) {
832 InitializeWithRealMessageLoop(1u);
833 MockTaskObserver observer;
834 manager_->SetWorkBatchSize(2);
835 runners_[0]->AddTaskObserver(&observer);
836 runners_[0]->RemoveTaskObserver(&observer);
837
838 std::vector<int> run_order;
839 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
840
841 EXPECT_CALL(observer, WillProcessTask(_)).Times(0);
842 EXPECT_CALL(observer, DidProcessTask(_)).Times(0);
843
844 message_loop_->RunUntilIdle();
845 }
846
847 void RemoveQueueObserverTask(scoped_refptr<TaskQueue> queue,
848 base::MessageLoop::TaskObserver* observer) {
849 queue->RemoveTaskObserver(observer);
850 }
851
852 TEST_F(TaskQueueManagerTest, QueueTaskObserverRemovingInsideTask) {
853 InitializeWithRealMessageLoop(1u);
854 MockTaskObserver observer;
855 runners_[0]->AddTaskObserver(&observer);
856
857 runners_[0]->PostTask(
858 FROM_HERE, base::Bind(&RemoveQueueObserverTask, runners_[0], &observer));
859
860 EXPECT_CALL(observer, WillProcessTask(_)).Times(1);
861 EXPECT_CALL(observer, DidProcessTask(_)).Times(0);
862 message_loop_->RunUntilIdle();
863 }
864
815 TEST_F(TaskQueueManagerTest, ThreadCheckAfterTermination) { 865 TEST_F(TaskQueueManagerTest, ThreadCheckAfterTermination) {
816 Initialize(1u); 866 Initialize(1u);
817 EXPECT_TRUE(runners_[0]->RunsTasksOnCurrentThread()); 867 EXPECT_TRUE(runners_[0]->RunsTasksOnCurrentThread());
818 manager_.reset(); 868 manager_.reset();
819 EXPECT_TRUE(runners_[0]->RunsTasksOnCurrentThread()); 869 EXPECT_TRUE(runners_[0]->RunsTasksOnCurrentThread());
820 } 870 }
821 871
822 TEST_F(TaskQueueManagerTest, NextPendingDelayedTaskRunTime) { 872 TEST_F(TaskQueueManagerTest, NextPendingDelayedTaskRunTime) {
823 scoped_ptr<base::SimpleTestTickClock> clock(new base::SimpleTestTickClock()); 873 scoped_ptr<base::SimpleTestTickClock> clock(new base::SimpleTestTickClock());
824 clock->Advance(base::TimeDelta::FromMicroseconds(10000)); 874 clock->Advance(base::TimeDelta::FromMicroseconds(10000));
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
1181 base::TimeDelta::FromMilliseconds(30)); 1231 base::TimeDelta::FromMilliseconds(30));
1182 1232
1183 runners_[1]->UnregisterTaskQueue(); 1233 runners_[1]->UnregisterTaskQueue();
1184 test_task_runner_->RunUntilIdle(); 1234 test_task_runner_->RunUntilIdle();
1185 1235
1186 test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(40)); 1236 test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(40));
1187 ASSERT_THAT(run_order, ElementsAre(1, 3)); 1237 ASSERT_THAT(run_order, ElementsAre(1, 3));
1188 } 1238 }
1189 1239
1190 } // namespace scheduler 1240 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/child/task_queue_manager.cc ('k') | components/scheduler/renderer/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698