| OLD | NEW |
| 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 "components/scheduler/renderer/webthread_impl_for_renderer_scheduler.h" | 5 #include "components/scheduler/renderer/webthread_impl_for_renderer_scheduler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/location.h" | 9 #include "base/location.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 | 76 |
| 77 { | 77 { |
| 78 testing::InSequence sequence; | 78 testing::InSequence sequence; |
| 79 EXPECT_CALL(observer, willProcessTask()); | 79 EXPECT_CALL(observer, willProcessTask()); |
| 80 EXPECT_CALL(*task, run()); | 80 EXPECT_CALL(*task, run()); |
| 81 EXPECT_CALL(observer, didProcessTask()); | 81 EXPECT_CALL(observer, didProcessTask()); |
| 82 } | 82 } |
| 83 | 83 |
| 84 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), | 84 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), |
| 85 task.release()); | 85 task.release()); |
| 86 message_loop_.RunUntilIdle(); | 86 base::RunLoop().RunUntilIdle(); |
| 87 thread_->removeTaskObserver(&observer); | 87 thread_->removeTaskObserver(&observer); |
| 88 } | 88 } |
| 89 | 89 |
| 90 TEST_F(WebThreadImplForRendererSchedulerTest, TestWorkBatchWithOneTask) { | 90 TEST_F(WebThreadImplForRendererSchedulerTest, TestWorkBatchWithOneTask) { |
| 91 MockTaskObserver observer; | 91 MockTaskObserver observer; |
| 92 thread_->addTaskObserver(&observer); | 92 thread_->addTaskObserver(&observer); |
| 93 std::unique_ptr<MockTask> task(new MockTask()); | 93 std::unique_ptr<MockTask> task(new MockTask()); |
| 94 | 94 |
| 95 SetWorkBatchSizeForTesting(kWorkBatchSize); | 95 SetWorkBatchSizeForTesting(kWorkBatchSize); |
| 96 { | 96 { |
| 97 testing::InSequence sequence; | 97 testing::InSequence sequence; |
| 98 EXPECT_CALL(observer, willProcessTask()); | 98 EXPECT_CALL(observer, willProcessTask()); |
| 99 EXPECT_CALL(*task, run()); | 99 EXPECT_CALL(*task, run()); |
| 100 EXPECT_CALL(observer, didProcessTask()); | 100 EXPECT_CALL(observer, didProcessTask()); |
| 101 } | 101 } |
| 102 | 102 |
| 103 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), | 103 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), |
| 104 task.release()); | 104 task.release()); |
| 105 message_loop_.RunUntilIdle(); | 105 base::RunLoop().RunUntilIdle(); |
| 106 thread_->removeTaskObserver(&observer); | 106 thread_->removeTaskObserver(&observer); |
| 107 } | 107 } |
| 108 | 108 |
| 109 TEST_F(WebThreadImplForRendererSchedulerTest, TestWorkBatchWithTwoTasks) { | 109 TEST_F(WebThreadImplForRendererSchedulerTest, TestWorkBatchWithTwoTasks) { |
| 110 MockTaskObserver observer; | 110 MockTaskObserver observer; |
| 111 thread_->addTaskObserver(&observer); | 111 thread_->addTaskObserver(&observer); |
| 112 std::unique_ptr<MockTask> task1(new MockTask()); | 112 std::unique_ptr<MockTask> task1(new MockTask()); |
| 113 std::unique_ptr<MockTask> task2(new MockTask()); | 113 std::unique_ptr<MockTask> task2(new MockTask()); |
| 114 | 114 |
| 115 SetWorkBatchSizeForTesting(kWorkBatchSize); | 115 SetWorkBatchSizeForTesting(kWorkBatchSize); |
| 116 { | 116 { |
| 117 testing::InSequence sequence; | 117 testing::InSequence sequence; |
| 118 EXPECT_CALL(observer, willProcessTask()); | 118 EXPECT_CALL(observer, willProcessTask()); |
| 119 EXPECT_CALL(*task1, run()); | 119 EXPECT_CALL(*task1, run()); |
| 120 EXPECT_CALL(observer, didProcessTask()); | 120 EXPECT_CALL(observer, didProcessTask()); |
| 121 | 121 |
| 122 EXPECT_CALL(observer, willProcessTask()); | 122 EXPECT_CALL(observer, willProcessTask()); |
| 123 EXPECT_CALL(*task2, run()); | 123 EXPECT_CALL(*task2, run()); |
| 124 EXPECT_CALL(observer, didProcessTask()); | 124 EXPECT_CALL(observer, didProcessTask()); |
| 125 } | 125 } |
| 126 | 126 |
| 127 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), | 127 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), |
| 128 task1.release()); | 128 task1.release()); |
| 129 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), | 129 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), |
| 130 task2.release()); | 130 task2.release()); |
| 131 message_loop_.RunUntilIdle(); | 131 base::RunLoop().RunUntilIdle(); |
| 132 thread_->removeTaskObserver(&observer); | 132 thread_->removeTaskObserver(&observer); |
| 133 } | 133 } |
| 134 | 134 |
| 135 TEST_F(WebThreadImplForRendererSchedulerTest, TestWorkBatchWithThreeTasks) { | 135 TEST_F(WebThreadImplForRendererSchedulerTest, TestWorkBatchWithThreeTasks) { |
| 136 MockTaskObserver observer; | 136 MockTaskObserver observer; |
| 137 thread_->addTaskObserver(&observer); | 137 thread_->addTaskObserver(&observer); |
| 138 std::unique_ptr<MockTask> task1(new MockTask()); | 138 std::unique_ptr<MockTask> task1(new MockTask()); |
| 139 std::unique_ptr<MockTask> task2(new MockTask()); | 139 std::unique_ptr<MockTask> task2(new MockTask()); |
| 140 std::unique_ptr<MockTask> task3(new MockTask()); | 140 std::unique_ptr<MockTask> task3(new MockTask()); |
| 141 | 141 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 154 EXPECT_CALL(*task3, run()); | 154 EXPECT_CALL(*task3, run()); |
| 155 EXPECT_CALL(observer, didProcessTask()); | 155 EXPECT_CALL(observer, didProcessTask()); |
| 156 } | 156 } |
| 157 | 157 |
| 158 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), | 158 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), |
| 159 task1.release()); | 159 task1.release()); |
| 160 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), | 160 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), |
| 161 task2.release()); | 161 task2.release()); |
| 162 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), | 162 thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(), |
| 163 task3.release()); | 163 task3.release()); |
| 164 message_loop_.RunUntilIdle(); | 164 base::RunLoop().RunUntilIdle(); |
| 165 thread_->removeTaskObserver(&observer); | 165 thread_->removeTaskObserver(&observer); |
| 166 } | 166 } |
| 167 | 167 |
| 168 class ExitRunLoopTask : public blink::WebTaskRunner::Task { | 168 class ExitRunLoopTask : public blink::WebTaskRunner::Task { |
| 169 public: | 169 public: |
| 170 ExitRunLoopTask(base::RunLoop* run_loop) : run_loop_(run_loop) {} | 170 ExitRunLoopTask(base::RunLoop* run_loop) : run_loop_(run_loop) {} |
| 171 | 171 |
| 172 void run() override { run_loop_->Quit(); } | 172 void run() override { run_loop_->Quit(); } |
| 173 | 173 |
| 174 private: | 174 private: |
| (...skipping 24 matching lines...) Expand all Loading... |
| 199 EXPECT_CALL(observer, willProcessTask()); | 199 EXPECT_CALL(observer, willProcessTask()); |
| 200 EXPECT_CALL(observer, didProcessTask()); | 200 EXPECT_CALL(observer, didProcessTask()); |
| 201 | 201 |
| 202 // A final callback for EnterRunLoop. | 202 // A final callback for EnterRunLoop. |
| 203 EXPECT_CALL(observer, didProcessTask()); | 203 EXPECT_CALL(observer, didProcessTask()); |
| 204 } | 204 } |
| 205 | 205 |
| 206 message_loop_.task_runner()->PostTask( | 206 message_loop_.task_runner()->PostTask( |
| 207 FROM_HERE, base::Bind(&EnterRunLoop, base::Unretained(&message_loop_), | 207 FROM_HERE, base::Bind(&EnterRunLoop, base::Unretained(&message_loop_), |
| 208 base::Unretained(thread_.get()))); | 208 base::Unretained(thread_.get()))); |
| 209 message_loop_.RunUntilIdle(); | 209 base::RunLoop().RunUntilIdle(); |
| 210 thread_->removeTaskObserver(&observer); | 210 thread_->removeTaskObserver(&observer); |
| 211 } | 211 } |
| 212 | 212 |
| 213 } // namespace scheduler | 213 } // namespace scheduler |
| OLD | NEW |