Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: cc/resources/raster_worker_pool_unittest.cc

Issue 523243002: cc: Generalize raster task notifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/resources/raster_worker_pool.h" 5 #include "cc/resources/raster_worker_pool.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/cancelable_callback.h" 10 #include "base/cancelable_callback.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 : public testing::TestWithParam<RasterWorkerPoolType>, 102 : public testing::TestWithParam<RasterWorkerPoolType>,
103 public RasterizerClient { 103 public RasterizerClient {
104 public: 104 public:
105 struct RasterTaskResult { 105 struct RasterTaskResult {
106 unsigned id; 106 unsigned id;
107 bool canceled; 107 bool canceled;
108 }; 108 };
109 109
110 typedef std::vector<scoped_refptr<RasterTask> > RasterTaskVector; 110 typedef std::vector<scoped_refptr<RasterTask> > RasterTaskVector;
111 111
112 enum NamedTaskSet { REQUIRED_FOR_ACTIVATION = 0, ALL = 1 };
113
112 RasterWorkerPoolTest() 114 RasterWorkerPoolTest()
113 : context_provider_(TestContextProvider::Create()), 115 : context_provider_(TestContextProvider::Create()),
114 timeout_seconds_(5), 116 timeout_seconds_(5),
115 timed_out_(false) { 117 timed_out_(false) {
116 output_surface_ = FakeOutputSurface::Create3d(context_provider_).Pass(); 118 output_surface_ = FakeOutputSurface::Create3d(context_provider_).Pass();
117 CHECK(output_surface_->BindToClient(&output_surface_client_)); 119 CHECK(output_surface_->BindToClient(&output_surface_client_));
118 120
119 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 121 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
120 resource_provider_ = ResourceProvider::Create(output_surface_.get(), 122 resource_provider_ = ResourceProvider::Create(output_surface_.get(),
121 shared_bitmap_manager_.get(), 123 shared_bitmap_manager_.get(),
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 resource_provider_.reset(); 168 resource_provider_.reset();
167 } 169 }
168 170
169 // Overridden from testing::Test: 171 // Overridden from testing::Test:
170 virtual void TearDown() OVERRIDE { 172 virtual void TearDown() OVERRIDE {
171 raster_worker_pool_->AsRasterizer()->Shutdown(); 173 raster_worker_pool_->AsRasterizer()->Shutdown();
172 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks(); 174 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks();
173 } 175 }
174 176
175 // Overriden from RasterWorkerPoolClient: 177 // Overriden from RasterWorkerPoolClient:
176 virtual bool ShouldForceTasksRequiredForActivationToComplete() const 178 virtual void DidFinishRunningTasks(TaskSet task_set) OVERRIDE {
177 OVERRIDE { 179 if (task_set == ALL) {
178 return false; 180 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks();
181 base::MessageLoop::current()->Quit();
182 }
179 } 183 }
180 virtual void DidFinishRunningTasks() OVERRIDE { 184 virtual TaskSetCollection TasksThatShouldBeForcedToComplete() const OVERRIDE {
181 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks(); 185 return TaskSetCollection();
182 base::MessageLoop::current()->Quit();
183 } 186 }
184 virtual void DidFinishRunningTasksRequiredForActivation() OVERRIDE {}
185 187
186 void RunMessageLoopUntilAllTasksHaveCompleted() { 188 void RunMessageLoopUntilAllTasksHaveCompleted() {
187 if (timeout_seconds_) { 189 if (timeout_seconds_) {
188 timeout_.Reset( 190 timeout_.Reset(
189 base::Bind(&RasterWorkerPoolTest::OnTimeout, base::Unretained(this))); 191 base::Bind(&RasterWorkerPoolTest::OnTimeout, base::Unretained(this)));
190 base::MessageLoopProxy::current()->PostDelayedTask( 192 base::MessageLoopProxy::current()->PostDelayedTask(
191 FROM_HERE, 193 FROM_HERE,
192 timeout_.callback(), 194 timeout_.callback(),
193 base::TimeDelta::FromSeconds(timeout_seconds_)); 195 base::TimeDelta::FromSeconds(timeout_seconds_));
194 } 196 }
195 197
196 base::MessageLoop::current()->Run(); 198 base::MessageLoop::current()->Run();
197 199
198 timeout_.Cancel(); 200 timeout_.Cancel();
199 201
200 ASSERT_FALSE(timed_out_) << "Test timed out"; 202 ASSERT_FALSE(timed_out_) << "Test timed out";
201 } 203 }
202 204
203 void ScheduleTasks() { 205 void ScheduleTasks() {
204 RasterTaskQueue queue; 206 RasterTaskQueue queue;
205 207
206 for (RasterTaskVector::const_iterator it = tasks_.begin(); 208 for (RasterTaskVector::const_iterator it = tasks_.begin();
207 it != tasks_.end(); 209 it != tasks_.end();
208 ++it) 210 ++it) {
209 queue.items.push_back(RasterTaskQueue::Item(it->get(), false)); 211 TaskSetCollection task_sets;
212 task_sets[ALL] = true;
213 queue.items.push_back(RasterTaskQueue::Item(it->get(), task_sets));
214 }
210 215
211 raster_worker_pool_->AsRasterizer()->ScheduleTasks(&queue); 216 raster_worker_pool_->AsRasterizer()->ScheduleTasks(&queue);
212 } 217 }
213 218
214 void AppendTask(unsigned id, const gfx::Size& size) { 219 void AppendTask(unsigned id, const gfx::Size& size) {
215 scoped_ptr<ScopedResource> resource( 220 scoped_ptr<ScopedResource> resource(
216 ScopedResource::Create(resource_provider_.get())); 221 ScopedResource::Create(resource_provider_.get()));
217 resource->Allocate(size, ResourceProvider::TextureHintImmutable, RGBA_8888); 222 resource->Allocate(size, ResourceProvider::TextureHintImmutable, RGBA_8888);
218 const Resource* const_resource = resource.get(); 223 const Resource* const_resource = resource.get();
219 224
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 360
356 INSTANTIATE_TEST_CASE_P(RasterWorkerPoolTests, 361 INSTANTIATE_TEST_CASE_P(RasterWorkerPoolTests,
357 RasterWorkerPoolTest, 362 RasterWorkerPoolTest,
358 ::testing::Values(RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER, 363 ::testing::Values(RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER,
359 RASTER_WORKER_POOL_TYPE_IMAGE, 364 RASTER_WORKER_POOL_TYPE_IMAGE,
360 RASTER_WORKER_POOL_TYPE_IMAGE_COPY, 365 RASTER_WORKER_POOL_TYPE_IMAGE_COPY,
361 RASTER_WORKER_POOL_TYPE_GPU)); 366 RASTER_WORKER_POOL_TYPE_GPU));
362 367
363 } // namespace 368 } // namespace
364 } // namespace cc 369 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698