| Index: cc/raster/tile_task_worker_pool_unittest.cc
|
| diff --git a/cc/raster/tile_task_worker_pool_unittest.cc b/cc/raster/tile_task_worker_pool_unittest.cc
|
| index aff1423616d7509cb3c013e77de4d519a9cc03bf..62239c16ac59749db9565954e7d13e7341f70a54 100644
|
| --- a/cc/raster/tile_task_worker_pool_unittest.cc
|
| +++ b/cc/raster/tile_task_worker_pool_unittest.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "cc/raster/tile_task_worker_pool.h"
|
|
|
| +#include <algorithm>
|
| #include <limits>
|
| #include <vector>
|
|
|
| @@ -17,6 +18,7 @@
|
| #include "cc/raster/gpu_tile_task_worker_pool.h"
|
| #include "cc/raster/one_copy_tile_task_worker_pool.h"
|
| #include "cc/raster/raster_buffer.h"
|
| +#include "cc/raster/synchronous_task_graph_runner.h"
|
| #include "cc/raster/tile_task_runner.h"
|
| #include "cc/raster/zero_copy_tile_task_worker_pool.h"
|
| #include "cc/resources/resource_pool.h"
|
| @@ -28,7 +30,6 @@
|
| #include "cc/test/fake_resource_provider.h"
|
| #include "cc/test/test_gpu_memory_buffer_manager.h"
|
| #include "cc/test/test_shared_bitmap_manager.h"
|
| -#include "cc/test/test_task_graph_runner.h"
|
| #include "cc/test/test_web_graphics_context_3d.h"
|
| #include "gpu/GLES2/gl2extchromium.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -116,8 +117,7 @@ class BlockingTestRasterTaskImpl : public TestRasterTaskImpl {
|
| };
|
|
|
| class TileTaskWorkerPoolTest
|
| - : public testing::TestWithParam<TileTaskWorkerPoolType>,
|
| - public TileTaskRunnerClient {
|
| + : public testing::TestWithParam<TileTaskWorkerPoolType> {
|
| public:
|
| struct RasterTaskResult {
|
| unsigned id;
|
| @@ -170,7 +170,6 @@ class TileTaskWorkerPoolTest
|
| }
|
|
|
| DCHECK(tile_task_worker_pool_);
|
| - tile_task_worker_pool_->AsTileTaskRunner()->SetClient(this);
|
| }
|
|
|
| void TearDown() override {
|
| @@ -183,46 +182,22 @@ class TileTaskWorkerPoolTest
|
| base::MessageLoop::current()->QuitWhenIdle();
|
| }
|
|
|
| - // Overriden from TileTaskWorkerPoolClient:
|
| - void DidFinishRunningTileTasks(TaskSet task_set) override {
|
| - EXPECT_FALSE(completed_task_sets_[task_set]);
|
| - completed_task_sets_[task_set] = true;
|
| - if (task_set == ALL) {
|
| - EXPECT_TRUE((~completed_task_sets_).none());
|
| - all_tile_tasks_finished_.Schedule();
|
| - }
|
| - }
|
| -
|
| void RunMessageLoopUntilAllTasksHaveCompleted() {
|
| - if (timeout_seconds_) {
|
| - timeout_.Reset(base::Bind(&TileTaskWorkerPoolTest::OnTimeout,
|
| - base::Unretained(this)));
|
| - base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
|
| - FROM_HERE, timeout_.callback(),
|
| - base::TimeDelta::FromSeconds(timeout_seconds_));
|
| - }
|
| -
|
| - base::MessageLoop::current()->Run();
|
| -
|
| - timeout_.Cancel();
|
| -
|
| - ASSERT_FALSE(timed_out_) << "Test timed out";
|
| + task_graph_runner_.RunUntilIdle();
|
| + tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks();
|
| }
|
|
|
| void ScheduleTasks() {
|
| - TileTaskQueue queue;
|
| + graph_.Reset();
|
| +
|
| + size_t priority = 0;
|
|
|
| for (RasterTaskVector::const_iterator it = tasks_.begin();
|
| it != tasks_.end(); ++it) {
|
| - TaskSetCollection task_sets;
|
| - task_sets[REQUIRED_FOR_ACTIVATION] = true;
|
| - task_sets[REQUIRED_FOR_DRAW] = true;
|
| - task_sets[ALL] = true;
|
| - queue.items.push_back(TileTaskQueue::Item(it->get(), task_sets));
|
| + graph_.nodes.emplace_back(it->get(), priority++, 0 /* dependencies */);
|
| }
|
|
|
| - completed_task_sets_.reset();
|
| - tile_task_worker_pool_->AsTileTaskRunner()->ScheduleTasks(&queue);
|
| + tile_task_worker_pool_->AsTileTaskRunner()->ScheduleTasks(&graph_);
|
| }
|
|
|
| void AppendTask(unsigned id, const gfx::Size& size) {
|
| @@ -315,14 +290,14 @@ class TileTaskWorkerPoolTest
|
| scoped_ptr<TileTaskWorkerPool> tile_task_worker_pool_;
|
| TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
|
| TestSharedBitmapManager shared_bitmap_manager_;
|
| - TestTaskGraphRunner task_graph_runner_;
|
| + SynchronousTaskGraphRunner task_graph_runner_;
|
| base::CancelableClosure timeout_;
|
| UniqueNotifier all_tile_tasks_finished_;
|
| int timeout_seconds_;
|
| bool timed_out_;
|
| RasterTaskVector tasks_;
|
| std::vector<RasterTaskResult> completed_tasks_;
|
| - TaskSetCollection completed_task_sets_;
|
| + TaskGraph graph_;
|
| };
|
|
|
| TEST_P(TileTaskWorkerPoolTest, Basic) {
|
| @@ -391,21 +366,6 @@ TEST_P(TileTaskWorkerPoolTest, LostContext) {
|
| EXPECT_FALSE(completed_tasks()[1].canceled);
|
| }
|
|
|
| -TEST_P(TileTaskWorkerPoolTest, ScheduleEmptyStillTriggersCallback) {
|
| - // Don't append any tasks, just call ScheduleTasks.
|
| - ScheduleTasks();
|
| -
|
| - EXPECT_FALSE(completed_task_sets_[REQUIRED_FOR_ACTIVATION]);
|
| - EXPECT_FALSE(completed_task_sets_[REQUIRED_FOR_DRAW]);
|
| - EXPECT_FALSE(completed_task_sets_[ALL]);
|
| -
|
| - RunMessageLoopUntilAllTasksHaveCompleted();
|
| -
|
| - EXPECT_TRUE(completed_task_sets_[REQUIRED_FOR_ACTIVATION]);
|
| - EXPECT_TRUE(completed_task_sets_[REQUIRED_FOR_DRAW]);
|
| - EXPECT_TRUE(completed_task_sets_[ALL]);
|
| -}
|
| -
|
| INSTANTIATE_TEST_CASE_P(TileTaskWorkerPoolTests,
|
| TileTaskWorkerPoolTest,
|
| ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY,
|
|
|