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..71a2c95f85d2f78ab2fd5b9f5a114335223bfea7 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,56 @@ TEST_P(GpuMemoryBufferImplTest, CreateFromHandle) { |
TEST_P(GpuMemoryBufferImplTest, Map) { |
const int kBufferId = 1; |
- gfx::Size buffer_size(1, 1); |
+ gfx::Size buffer_size(8, 8); |
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); |
+ size_t num_planes = |
+ GpuMemoryBufferImpl::NumberOfPlanesForGpuMemoryBufferFormat( |
+ configuration.format); |
+ |
+ // Alocate buffers for each plane. |
+ std::vector<scoped_ptr<char[]>> data; |
+ std::vector<size_t> width_in_bytes; |
+ for (size_t i = 0; i < num_planes; ++i) { |
+ size_t width = 0u; |
+ EXPECT_TRUE(GpuMemoryBufferImpl::StrideInBytes( |
+ buffer_size.width(), configuration.format, i, &width)); |
+ EXPECT_GT(width, 0u); |
+ data.push_back(scoped_ptr<char[]>(new char[width])); |
+ memset(data[i].get(), i, width); |
+ width_in_bytes.push_back(width); |
+ } |
reveman
2015/04/07 19:03:25
line 88-103: this doesn't need to be done here. I
emircan
2015/04/07 20:08:12
Done.
|
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); |
+ // Map buffer into user space. |
+ void* mapped_buffers[num_planes]; |
+ bool rv = buffer->Map(mapped_buffers); |
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. |
+ uint32 strides[num_planes]; |
+ buffer->GetStride(strides); |
+ |
+ // Copy and compare mapped buffers. |
+ for (size_t i = 0; i < num_planes; ++i) { |
+ EXPECT_GE(strides[i], width_in_bytes[i]); |
+ memcpy(mapped_buffers[i], data[i].get(), width_in_bytes[i]); |
+ EXPECT_EQ(memcmp(mapped_buffers[i], data[i].get(), width_in_bytes[i]), 0); |
+ } |
+ |
buffer->Unmap(); |
EXPECT_FALSE(buffer->IsMapped()); |
} |