diff options
author | ericrk <ericrk@chromium.org> | 2015-11-30 19:53:56 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-01 03:54:54 +0000 |
commit | 4e3aa5a539e3774b51b998dc60eac42a97c2cfb8 (patch) | |
tree | 7bc005c8076da651e5e01fb3e76481b864d8db44 /content/renderer/raster_worker_pool_unittest.cc | |
parent | f8b52ac117606fedce013e4e2a61cf6c39ce2a1b (diff) | |
download | chromium_src-4e3aa5a539e3774b51b998dc60eac42a97c2cfb8.zip chromium_src-4e3aa5a539e3774b51b998dc60eac42a97c2cfb8.tar.gz chromium_src-4e3aa5a539e3774b51b998dc60eac42a97c2cfb8.tar.bz2 |
Interface-izes TaskGraphRunner and moves implementation helpers to TaskGraphWorkQueue.
There are two new classes:
SynchronousTaskGraphRunner - used in some tests and by LayerTreeHostImpl
SingleThreadTaskGraphRunner - used in a number of tests (wrapped by TestTaskGraphRunner) and by GpuProcessTransportFactory and CompositorImplAndroid.
Additionally RasterWorkerPool has been re-worked to use the new helper.
BUG=
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1449133002
Cr-Commit-Position: refs/heads/master@{#362338}
Diffstat (limited to 'content/renderer/raster_worker_pool_unittest.cc')
-rw-r--r-- | content/renderer/raster_worker_pool_unittest.cc | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/content/renderer/raster_worker_pool_unittest.cc b/content/renderer/raster_worker_pool_unittest.cc index 926ba2b..7a402b7 100644 --- a/content/renderer/raster_worker_pool_unittest.cc +++ b/content/renderer/raster_worker_pool_unittest.cc @@ -5,6 +5,7 @@ #include "base/test/sequenced_task_runner_test_template.h" #include "base/test/task_runner_test_template.h" #include "base/threading/simple_thread.h" +#include "cc/test/task_graph_runner_test_template.h" #include "content/renderer/raster_worker_pool.h" namespace base { @@ -26,9 +27,7 @@ class RasterWorkerPoolTestDelegate { return raster_worker_pool_; } - void StopTaskRunner() { - raster_worker_pool_->GetTaskGraphRunner()->FlushForTesting(); - } + void StopTaskRunner() { raster_worker_pool_->FlushForTesting(); } ~RasterWorkerPoolTestDelegate() { raster_worker_pool_->Shutdown(); } @@ -53,9 +52,7 @@ class RasterWorkerPoolSequencedTestDelegate { return raster_worker_pool_->CreateSequencedTaskRunner(); } - void StopTaskRunner() { - raster_worker_pool_->GetTaskGraphRunner()->FlushForTesting(); - } + void StopTaskRunner() { raster_worker_pool_->FlushForTesting(); } ~RasterWorkerPoolSequencedTestDelegate() { raster_worker_pool_->Shutdown(); } @@ -69,3 +66,55 @@ INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool, } // namespace } // namespace base + +namespace cc { +namespace { + +template <int NumThreads> +class RasterWorkerPoolTaskGraphRunnerTestDelegate { + public: + RasterWorkerPoolTaskGraphRunnerTestDelegate() + : raster_worker_pool_(new content::RasterWorkerPool()) {} + + void StartTaskGraphRunner() { + raster_worker_pool_->Start(NumThreads, base::SimpleThread::Options()); + } + + cc::TaskGraphRunner* GetTaskGraphRunner() { + return raster_worker_pool_->GetTaskGraphRunner(); + } + + void StopTaskGraphRunner() { raster_worker_pool_->FlushForTesting(); } + + ~RasterWorkerPoolTaskGraphRunnerTestDelegate() { + raster_worker_pool_->Shutdown(); + } + + private: + scoped_refptr<content::RasterWorkerPool> raster_worker_pool_; +}; + +// Multithreaded tests. +INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool_1_Threads, + TaskGraphRunnerTest, + RasterWorkerPoolTaskGraphRunnerTestDelegate<1>); +INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool_2_Threads, + TaskGraphRunnerTest, + RasterWorkerPoolTaskGraphRunnerTestDelegate<2>); +INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool_3_Threads, + TaskGraphRunnerTest, + RasterWorkerPoolTaskGraphRunnerTestDelegate<3>); +INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool_4_Threads, + TaskGraphRunnerTest, + RasterWorkerPoolTaskGraphRunnerTestDelegate<4>); +INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool_5_Threads, + TaskGraphRunnerTest, + RasterWorkerPoolTaskGraphRunnerTestDelegate<5>); + +// Single threaded tests. +INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool, + SingleThreadTaskGraphRunnerTest, + RasterWorkerPoolTaskGraphRunnerTestDelegate<1>); + +} // namespace +} // namespace cc |