Index: cc/resources/raster_worker_pool_unittest.cc |
diff --git a/cc/resources/raster_worker_pool_unittest.cc b/cc/resources/raster_worker_pool_unittest.cc |
index dcfde74373c1b083cf0b3d295442263b2128b8db..823e59d02b4ef76ceaecf0b1a14322efe1375b4f 100644 |
--- a/cc/resources/raster_worker_pool_unittest.cc |
+++ b/cc/resources/raster_worker_pool_unittest.cc |
@@ -8,6 +8,7 @@ |
#include <vector> |
#include "base/cancelable_callback.h" |
+#include "cc/resources/bitmap_raster_worker_pool.h" |
#include "cc/resources/gpu_raster_worker_pool.h" |
#include "cc/resources/one_copy_raster_worker_pool.h" |
#include "cc/resources/picture_pile.h" |
@@ -37,7 +38,8 @@ enum RasterWorkerPoolType { |
RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER, |
RASTER_WORKER_POOL_TYPE_ZERO_COPY, |
RASTER_WORKER_POOL_TYPE_ONE_COPY, |
- RASTER_WORKER_POOL_TYPE_GPU |
+ RASTER_WORKER_POOL_TYPE_GPU, |
+ RASTER_WORKER_POOL_TYPE_BITMAP |
}; |
class TestRasterTaskImpl : public RasterTask { |
@@ -121,26 +123,13 @@ class RasterWorkerPoolTest |
RasterWorkerPoolTest() |
: context_provider_(TestContextProvider::Create()), |
timeout_seconds_(5), |
- timed_out_(false) { |
- output_surface_ = FakeOutputSurface::Create3d(context_provider_).Pass(); |
- CHECK(output_surface_->BindToClient(&output_surface_client_)); |
- |
- TestWebGraphicsContext3D* context3d = context_provider_->TestContext3d(); |
- context3d->set_support_sync_query(true); |
- |
- shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
- resource_provider_ = ResourceProvider::Create(output_surface_.get(), |
- shared_bitmap_manager_.get(), |
- NULL, |
- 0, |
- false, |
- 1, |
- false).Pass(); |
- staging_resource_pool_ = ResourcePool::Create( |
- resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888); |
+ timed_out_(false) {} |
+ // Overridden from testing::Test: |
+ virtual void SetUp() OVERRIDE { |
switch (GetParam()) { |
case RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER: |
+ Create3dOutputSurfaceAndResourceProvider(); |
raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( |
base::MessageLoopProxy::current().get(), |
RasterWorkerPool::GetTaskGraphRunner(), |
@@ -149,12 +138,16 @@ class RasterWorkerPoolTest |
kMaxTransferBufferUsageBytes); |
break; |
case RASTER_WORKER_POOL_TYPE_ZERO_COPY: |
+ Create3dOutputSurfaceAndResourceProvider(); |
raster_worker_pool_ = ZeroCopyRasterWorkerPool::Create( |
base::MessageLoopProxy::current().get(), |
RasterWorkerPool::GetTaskGraphRunner(), |
resource_provider_.get()); |
break; |
case RASTER_WORKER_POOL_TYPE_ONE_COPY: |
+ Create3dOutputSurfaceAndResourceProvider(); |
+ staging_resource_pool_ = ResourcePool::Create( |
+ resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888); |
raster_worker_pool_ = OneCopyRasterWorkerPool::Create( |
base::MessageLoopProxy::current().get(), |
RasterWorkerPool::GetTaskGraphRunner(), |
@@ -163,22 +156,24 @@ class RasterWorkerPoolTest |
staging_resource_pool_.get()); |
break; |
case RASTER_WORKER_POOL_TYPE_GPU: |
+ Create3dOutputSurfaceAndResourceProvider(); |
raster_worker_pool_ = |
GpuRasterWorkerPool::Create(base::MessageLoopProxy::current().get(), |
context_provider_.get(), |
resource_provider_.get()); |
break; |
+ case RASTER_WORKER_POOL_TYPE_BITMAP: |
+ CreateSoftwareOutputSurfaceAndResourceProvider(); |
+ raster_worker_pool_ = BitmapRasterWorkerPool::Create( |
+ base::MessageLoopProxy::current().get(), |
+ RasterWorkerPool::GetTaskGraphRunner(), |
+ resource_provider_.get()); |
+ break; |
} |
DCHECK(raster_worker_pool_); |
raster_worker_pool_->AsRasterizer()->SetClient(this); |
} |
- virtual ~RasterWorkerPoolTest() { |
- staging_resource_pool_.reset(); |
- resource_provider_.reset(); |
- } |
- |
- // Overridden from testing::Test: |
virtual void TearDown() OVERRIDE { |
raster_worker_pool_->AsRasterizer()->Shutdown(); |
raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks(); |
@@ -268,6 +263,29 @@ class RasterWorkerPoolTest |
} |
private: |
+ void Create3dOutputSurfaceAndResourceProvider() { |
+ output_surface_ = FakeOutputSurface::Create3d(context_provider_).Pass(); |
+ CHECK(output_surface_->BindToClient(&output_surface_client_)); |
+ TestWebGraphicsContext3D* context3d = context_provider_->TestContext3d(); |
+ context3d->set_support_sync_query(true); |
+ resource_provider_ = |
+ ResourceProvider::Create( |
+ output_surface_.get(), NULL, NULL, 0, false, 1, false).Pass(); |
+ } |
+ |
+ void CreateSoftwareOutputSurfaceAndResourceProvider() { |
+ output_surface_ = FakeOutputSurface::CreateSoftware( |
+ make_scoped_ptr(new SoftwareOutputDevice)); |
+ CHECK(output_surface_->BindToClient(&output_surface_client_)); |
+ resource_provider_ = ResourceProvider::Create(output_surface_.get(), |
+ &shared_bitmap_manager_, |
+ NULL, |
+ 0, |
+ false, |
+ 1, |
+ false).Pass(); |
+ } |
+ |
void OnTaskCompleted(scoped_ptr<ScopedResource> resource, |
unsigned id, |
const PicturePileImpl::Analysis& analysis, |
@@ -287,10 +305,10 @@ class RasterWorkerPoolTest |
scoped_refptr<TestContextProvider> context_provider_; |
FakeOutputSurfaceClient output_surface_client_; |
scoped_ptr<FakeOutputSurface> output_surface_; |
- scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; |
scoped_ptr<ResourceProvider> resource_provider_; |
scoped_ptr<ResourcePool> staging_resource_pool_; |
scoped_ptr<RasterWorkerPool> raster_worker_pool_; |
+ TestSharedBitmapManager shared_bitmap_manager_; |
base::CancelableClosure timeout_; |
int timeout_seconds_; |
bool timed_out_; |
@@ -311,6 +329,9 @@ TEST_P(RasterWorkerPoolTest, Basic) { |
} |
TEST_P(RasterWorkerPoolTest, FailedMapResource) { |
+ if (GetParam() == RASTER_WORKER_POOL_TYPE_BITMAP) |
+ return; |
+ |
TestWebGraphicsContext3D* context3d = context_provider_->TestContext3d(); |
context3d->set_times_map_image_chromium_succeeds(0); |
context3d->set_times_map_buffer_chromium_succeeds(0); |
@@ -373,7 +394,8 @@ INSTANTIATE_TEST_CASE_P(RasterWorkerPoolTests, |
::testing::Values(RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER, |
RASTER_WORKER_POOL_TYPE_ZERO_COPY, |
RASTER_WORKER_POOL_TYPE_ONE_COPY, |
- RASTER_WORKER_POOL_TYPE_GPU)); |
+ RASTER_WORKER_POOL_TYPE_GPU, |
+ RASTER_WORKER_POOL_TYPE_BITMAP)); |
} // namespace |
} // namespace cc |