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, |