Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: cc/ipc/struct_traits_unittest.cc

Issue 2020993004: Implement TransferableResource StructTraits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/ipc/BUILD.gn ('k') | cc/ipc/traits_test_service.mojom » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « cc/ipc/BUILD.gn ('k') | cc/ipc/traits_test_service.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698