| Index: ui/gfx/mojo/struct_traits_unittest.cc
|
| diff --git a/ui/gfx/mojo/struct_traits_unittest.cc b/ui/gfx/mojo/struct_traits_unittest.cc
|
| index 1ecbf86db73cdbc698b7de651124069cbe2032ed..556954b0f546648346f3b4d9ad312af65ac4155f 100644
|
| --- a/ui/gfx/mojo/struct_traits_unittest.cc
|
| +++ b/ui/gfx/mojo/struct_traits_unittest.cc
|
| @@ -49,6 +49,12 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService {
|
| callback.Run(t);
|
| }
|
|
|
| + void EchoGpuMemoryBufferHandle(
|
| + const GpuMemoryBufferHandle& handle,
|
| + const EchoGpuMemoryBufferHandleCallback& callback) override {
|
| + callback.Run(handle);
|
| + }
|
| +
|
| base::MessageLoop loop_;
|
| mojo::BindingSet<TraitsTestService> traits_test_bindings_;
|
|
|
| @@ -134,4 +140,33 @@ TEST_F(StructTraitsTest, MAYBE_AcceleratedWidget) {
|
| EXPECT_EQ(input, output);
|
| }
|
|
|
| +TEST_F(StructTraitsTest, GpuMemoryBufferHandle) {
|
| + const gfx::GpuMemoryBufferId kId(99);
|
| + const uint32_t kOffset = 126;
|
| + const int32_t kStride = 256;
|
| + base::SharedMemory shared_memory;
|
| + ASSERT_TRUE(shared_memory.CreateAnonymous(1024));
|
| + ASSERT_TRUE(shared_memory.Map(1024));
|
| +
|
| + gfx::GpuMemoryBufferHandle handle;
|
| + handle.type = gfx::SHARED_MEMORY_BUFFER;
|
| + handle.id = kId;
|
| + handle.handle = base::SharedMemory::DuplicateHandle(shared_memory.handle());
|
| + handle.offset = kOffset;
|
| + handle.stride = kStride;
|
| +
|
| + mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
|
| + gfx::GpuMemoryBufferHandle output;
|
| + proxy->EchoGpuMemoryBufferHandle(handle, &output);
|
| + EXPECT_EQ(gfx::SHARED_MEMORY_BUFFER, output.type);
|
| + EXPECT_EQ(kId, output.id);
|
| + EXPECT_EQ(kOffset, output.offset);
|
| + EXPECT_EQ(kStride, output.stride);
|
| +#if !defined(OS_MACOSX) && !defined(OS_IOS)
|
| + // TODO: Add support for mach_port on mac.
|
| + base::SharedMemory output_memory(output.handle, true);
|
| + EXPECT_TRUE(output_memory.Map(1024));
|
| +#endif
|
| +}
|
| +
|
| } // namespace gfx
|
|
|