| Index: cc/ipc/struct_traits_unittest.cc
|
| diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc
|
| index e59aeed74f1ee74cea3a51356320d45ac8ad30f5..ce773652f72969369b41493090004a1e36d24406 100644
|
| --- a/cc/ipc/struct_traits_unittest.cc
|
| +++ b/cc/ipc/struct_traits_unittest.cc
|
| @@ -40,6 +40,12 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService {
|
| callback.Run(s);
|
| }
|
|
|
| + void EchoTransferableResource(
|
| + const TransferableResource& t,
|
| + const EchoTransferableResourceCallback& callback) override {
|
| + callback.Run(t);
|
| + }
|
| +
|
| mojo::BindingSet<TraitsTestService> traits_test_bindings_;
|
| };
|
|
|
| @@ -107,4 +113,63 @@ TEST_F(StructTraitsTest, SurfaceId) {
|
| loop.Run();
|
| }
|
|
|
| +TEST_F(StructTraitsTest, TransferableResource) {
|
| + const uint32_t id = 1337;
|
| + const ResourceFormat format = ALPHA_8;
|
| + const uint32_t filter = 1234;
|
| + const gfx::Size size(1234, 5678);
|
| + const int8_t mailbox_name[GL_MAILBOX_SIZE_CHROMIUM] = {
|
| + 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 7, 5, 3, 1, 2, 4, 6, 8, 0, 0, 9,
|
| + 8, 7, 6, 5, 4, 3, 2, 1, 9, 7, 5, 3, 1, 2, 4, 6, 8, 0, 0, 9, 8, 7,
|
| + 6, 5, 4, 3, 2, 1, 9, 7, 5, 3, 1, 2, 4, 6, 8, 0, 0, 9, 8, 7};
|
| + const gpu::CommandBufferNamespace command_buffer_namespace = gpu::IN_PROCESS;
|
| + const int32_t extra_data_field = 0xbeefbeef;
|
| + const gpu::CommandBufferId command_buffer_id(
|
| + gpu::CommandBufferId::FromUnsafeValue(0xdeadbeef));
|
| + const uint64_t release_count = 0xdeadbeefdeadL;
|
| + const uint32_t texture_target = 1337;
|
| + const bool read_lock_fences_enabled = true;
|
| + const bool is_software = false;
|
| + const int gpu_memory_buffer_id = 0xdeadbeef;
|
| + const bool is_overlay_candidate = true;
|
| +
|
| + gpu::MailboxHolder mailbox_holder;
|
| + mailbox_holder.mailbox.SetName(mailbox_name);
|
| + mailbox_holder.sync_token =
|
| + gpu::SyncToken(command_buffer_namespace, extra_data_field,
|
| + command_buffer_id, release_count);
|
| + mailbox_holder.texture_target = texture_target;
|
| + TransferableResource input;
|
| + input.id = id;
|
| + input.format = format;
|
| + input.filter = filter;
|
| + input.size = size;
|
| + input.mailbox_holder = mailbox_holder;
|
| + input.read_lock_fences_enabled = read_lock_fences_enabled;
|
| + input.is_software = is_software;
|
| + input.gpu_memory_buffer_id.id = gpu_memory_buffer_id;
|
| + input.is_overlay_candidate = is_overlay_candidate;
|
| + base::RunLoop loop;
|
| + mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
|
| + proxy->EchoTransferableResource(
|
| + input, [id, format, filter, size, mailbox_holder,
|
| + read_lock_fences_enabled, is_software, gpu_memory_buffer_id,
|
| + is_overlay_candidate, &loop](const TransferableResource& pass) {
|
| + EXPECT_EQ(id, pass.id);
|
| + EXPECT_EQ(format, pass.format);
|
| + EXPECT_EQ(filter, pass.filter);
|
| + EXPECT_EQ(size, pass.size);
|
| + EXPECT_EQ(mailbox_holder.mailbox, pass.mailbox_holder.mailbox);
|
| + EXPECT_EQ(mailbox_holder.sync_token, pass.mailbox_holder.sync_token);
|
| + EXPECT_EQ(mailbox_holder.texture_target,
|
| + pass.mailbox_holder.texture_target);
|
| + EXPECT_EQ(read_lock_fences_enabled, pass.read_lock_fences_enabled);
|
| + EXPECT_EQ(is_software, pass.is_software);
|
| + EXPECT_EQ(gpu_memory_buffer_id, pass.gpu_memory_buffer_id.id);
|
| + EXPECT_EQ(is_overlay_candidate, pass.is_overlay_candidate);
|
| + loop.Quit();
|
| + });
|
| + loop.Run();
|
| +}
|
| +
|
| } // namespace cc
|
|
|