// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/test/sequenced_task_runner_test_template.h" #include "base/test/task_runner_test_template.h" #include "base/threading/simple_thread.h" #include "content/renderer/raster_worker_pool.h" namespace base { namespace { // Number of threads spawned in tests. const int kNumThreads = 4; class RasterWorkerPoolTestDelegate { public: RasterWorkerPoolTestDelegate() : raster_worker_pool_(new content::RasterWorkerPool()) {} void StartTaskRunner() { raster_worker_pool_->Start(kNumThreads, SimpleThread::Options()); } scoped_refptr GetTaskRunner() { return raster_worker_pool_; } void StopTaskRunner() { raster_worker_pool_->GetTaskGraphRunner()->FlushForTesting(); } ~RasterWorkerPoolTestDelegate() { raster_worker_pool_->Shutdown(); } private: scoped_refptr raster_worker_pool_; }; INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool, TaskRunnerTest, RasterWorkerPoolTestDelegate); class RasterWorkerPoolSequencedTestDelegate { public: RasterWorkerPoolSequencedTestDelegate() : raster_worker_pool_(new content::RasterWorkerPool()) {} void StartTaskRunner() { raster_worker_pool_->Start(kNumThreads, SimpleThread::Options()); } scoped_refptr GetTaskRunner() { return raster_worker_pool_->CreateSequencedTaskRunner(); } void StopTaskRunner() { raster_worker_pool_->GetTaskGraphRunner()->FlushForTesting(); } ~RasterWorkerPoolSequencedTestDelegate() { raster_worker_pool_->Shutdown(); } private: scoped_refptr raster_worker_pool_; }; INSTANTIATE_TYPED_TEST_CASE_P(RasterWorkerPool, SequencedTaskRunnerTest, RasterWorkerPoolSequencedTestDelegate); } // namespace } // namespace base