summaryrefslogtreecommitdiffstats
path: root/content/renderer/raster_worker_pool_unittest.cc
diff options
context:
space:
mode:
authorericrk <ericrk@chromium.org>2015-11-30 19:53:56 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-01 03:54:54 +0000
commit4e3aa5a539e3774b51b998dc60eac42a97c2cfb8 (patch)
tree7bc005c8076da651e5e01fb3e76481b864d8db44 /content/renderer/raster_worker_pool_unittest.cc
parentf8b52ac117606fedce013e4e2a61cf6c39ce2a1b (diff)
downloadchromium_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.cc61
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