| Index: ui/gl/gl_image_shared_memory_unittest.cc
|
| diff --git a/ui/gl/gl_image_shared_memory_unittest.cc b/ui/gl/gl_image_shared_memory_unittest.cc
|
| index 98eb20edd5ddf4fc220d8b0e0cfe106ddaf73e27..48dfce6a519bac4ff416364be41d48ff2a35c0bb 100644
|
| --- a/ui/gl/gl_image_shared_memory_unittest.cc
|
| +++ b/ui/gl/gl_image_shared_memory_unittest.cc
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/memory/shared_memory.h"
|
| +#include "base/sys_info.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "ui/gl/gl_image_shared_memory.h"
|
| #include "ui/gl/test/gl_image_test_template.h"
|
| @@ -28,7 +29,7 @@ class GLImageSharedMemoryTestDelegate {
|
| size, GLImageMemory::GetInternalFormatForTesting(format)));
|
| rv = image->Initialize(
|
| base::SharedMemory::DuplicateHandle(shared_memory.handle()),
|
| - GenericSharedMemoryId(0), format);
|
| + GenericSharedMemoryId(0), format, 0);
|
| EXPECT_TRUE(rv);
|
| return image;
|
| }
|
| @@ -48,5 +49,40 @@ INSTANTIATE_TYPED_TEST_CASE_P(GLImageSharedMemory,
|
| GLImageCopyTest,
|
| GLImageTestTypes);
|
|
|
| +class GLImageSharedMemoryPoolTestDelegate {
|
| + public:
|
| + scoped_refptr<GLImage> CreateSolidColorImage(const Size& size,
|
| + const uint8_t color[4]) const {
|
| + // Create a shared memory segment that is 2 pages larger than image.
|
| + size_t pool_size =
|
| + BufferSizeForBufferFormat(size, BufferFormat::RGBA_8888) +
|
| + base::SysInfo::VMAllocationGranularity() * 3;
|
| + base::SharedMemory shared_memory;
|
| + bool rv = shared_memory.CreateAndMapAnonymous(pool_size);
|
| + DCHECK(rv);
|
| + // Initialize memory to a value that is easy to recognize if test fails.
|
| + memset(shared_memory.memory(), 0x55, pool_size);
|
| + // Place buffer at a non-zero non-page-aligned offset in shared memory.
|
| + size_t buffer_offset = 3 * base::SysInfo::VMAllocationGranularity() / 2;
|
| + GLImageTestSupport::SetBufferDataToColor(
|
| + size.width(), size.height(),
|
| + static_cast<int>(
|
| + RowSizeForBufferFormat(size.width(), BufferFormat::RGBA_8888, 0)),
|
| + BufferFormat::RGBA_8888, color,
|
| + reinterpret_cast<uint8_t*>(shared_memory.memory()) + buffer_offset);
|
| + scoped_refptr<GLImageSharedMemory> image(
|
| + new GLImageSharedMemory(size, GL_RGBA));
|
| + rv = image->Initialize(
|
| + base::SharedMemory::DuplicateHandle(shared_memory.handle()),
|
| + GenericSharedMemoryId(0), BufferFormat::RGBA_8888, buffer_offset);
|
| + EXPECT_TRUE(rv);
|
| + return image;
|
| + }
|
| +};
|
| +
|
| +INSTANTIATE_TYPED_TEST_CASE_P(GLImageSharedMemoryPool,
|
| + GLImageCopyTest,
|
| + GLImageSharedMemoryPoolTestDelegate);
|
| +
|
| } // namespace
|
| } // namespace gfx
|
|
|