Chromium Code Reviews| Index: content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc |
| diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc b/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc |
| index ba55d78349e7b44111439920cad1f98c682d4797..61e3775ff0906c73f2d9cd38b80511b5ebc1c967 100644 |
| --- a/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc |
| +++ b/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc |
| @@ -52,7 +52,7 @@ class GpuMemoryBufferImplTest |
| TEST_P(GpuMemoryBufferImplTest, CreateFromHandle) { |
| const int kBufferId = 1; |
| - gfx::Size buffer_size(1, 1); |
| + gfx::Size buffer_size(8, 8); |
| for (auto configuration : supported_configurations_) { |
| scoped_ptr<GpuMemoryBufferImpl> buffer( |
| @@ -79,42 +79,50 @@ TEST_P(GpuMemoryBufferImplTest, CreateFromHandle) { |
| TEST_P(GpuMemoryBufferImplTest, Map) { |
| const int kBufferId = 1; |
| - gfx::Size buffer_size(1, 1); |
| + gfx::Size buffer_size(2, 2); |
| for (auto configuration : supported_configurations_) { |
| if (configuration.usage != gfx::GpuMemoryBuffer::MAP) |
| continue; |
| - size_t width_in_bytes = 0; |
| - EXPECT_TRUE(GpuMemoryBufferImpl::StrideInBytes( |
| - buffer_size.width(), configuration.format, &width_in_bytes)); |
| - EXPECT_GT(width_in_bytes, 0u); |
| - scoped_ptr<char[]> data(new char[width_in_bytes]); |
| - memset(data.get(), 0x2a, width_in_bytes); |
| - |
| scoped_ptr<GpuMemoryBufferImpl> buffer( |
| GpuMemoryBufferImpl::CreateFromHandle( |
| - CreateGpuMemoryBuffer(kBufferId, |
| - buffer_size, |
| - configuration.format, |
| + CreateGpuMemoryBuffer(kBufferId, buffer_size, configuration.format, |
| configuration.usage), |
| - buffer_size, |
| - configuration.format, |
| + buffer_size, configuration.format, |
| base::Bind(&GpuMemoryBufferImplTest::DestroyGpuMemoryBuffer, |
| - base::Unretained(this), |
| - kBufferId))); |
| + base::Unretained(this), kBufferId))); |
| ASSERT_TRUE(buffer); |
| EXPECT_FALSE(buffer->IsMapped()); |
| - void* memory; |
| - bool rv = buffer->Map(&memory); |
| + size_t num_planes = |
| + GpuMemoryBufferImpl::NumberOfPlanesForGpuMemoryBufferFormat( |
| + configuration.format); |
| + |
| + // Map buffer into user space. |
| + scoped_ptr<void*[]> mapped_buffers(new void*[num_planes]); |
| + bool rv = buffer->Map(mapped_buffers.get()); |
| ASSERT_TRUE(rv); |
| EXPECT_TRUE(buffer->IsMapped()); |
| - uint32 stride; |
| - buffer->GetStride(&stride); |
| - EXPECT_GE(stride, width_in_bytes); |
| - memcpy(memory, data.get(), width_in_bytes); |
| - EXPECT_EQ(memcmp(memory, data.get(), width_in_bytes), 0); |
| + |
| + // Get strides. |
| + scoped_ptr<uint32[]> strides(new uint32[num_planes]); |
| + buffer->GetStride(strides.get()); |
| + |
| + // Copy and compare mapped buffers. |
| + for (size_t i = 0; i < num_planes; ++i) { |
| + size_t width_in_bytes = 0u; |
| + EXPECT_TRUE(GpuMemoryBufferImpl::StrideInBytes( |
| + buffer_size.width(), configuration.format, i, &width_in_bytes)); |
| + EXPECT_GT(width_in_bytes, 0u); |
| + EXPECT_GE(strides[i], width_in_bytes); |
| + |
| + scoped_ptr<char[]> data(new char[width_in_bytes]); |
| + memset(data.get(), i, width_in_bytes); |
|
reveman
2015/04/07 20:33:45
nit: s/i/0x2a + i/ to avoid i=0 which is not very
emircan
2015/04/07 21:28:45
Done.
|
| + memcpy(mapped_buffers[i], data.get(), width_in_bytes); |
| + EXPECT_EQ(memcmp(mapped_buffers[i], data.get(), width_in_bytes), 0); |
| + } |
| + |
| buffer->Unmap(); |
| EXPECT_FALSE(buffer->IsMapped()); |
| } |