Index: cc/ipc/struct_traits_unittest.cc |
diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc |
index 85071de38e6324d6fc79afc7956a9068db3a5627..e59aeed74f1ee74cea3a51356320d45ac8ad30f5 100644 |
--- a/cc/ipc/struct_traits_unittest.cc |
+++ b/cc/ipc/struct_traits_unittest.cc |
@@ -29,6 +29,12 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService { |
callback.Run(r); |
} |
+ void EchoReturnedResource( |
+ const ReturnedResource& r, |
+ const EchoReturnedResourceCallback& callback) override { |
+ callback.Run(r); |
+ } |
+ |
void EchoSurfaceId(const SurfaceId& s, |
const EchoSurfaceIdCallback& callback) override { |
callback.Run(s); |
@@ -54,6 +60,36 @@ TEST_F(StructTraitsTest, RenderPassId) { |
loop.Run(); |
} |
+TEST_F(StructTraitsTest, ReturnedResource) { |
+ const uint32_t id = 1337; |
+ 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 = 0xdeadbeefdead; |
+ const gpu::SyncToken sync_token(command_buffer_namespace, extra_data_field, |
+ command_buffer_id, release_count); |
+ const int count = 1234; |
+ const bool lost = true; |
+ |
+ ReturnedResource input; |
+ input.id = id; |
+ input.sync_token = sync_token; |
+ input.count = count; |
+ input.lost = lost; |
+ base::RunLoop loop; |
+ mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
+ proxy->EchoReturnedResource(input, [id, sync_token, count, lost, |
+ &loop](const ReturnedResource& pass) { |
+ EXPECT_EQ(id, pass.id); |
+ EXPECT_EQ(sync_token, pass.sync_token); |
+ EXPECT_EQ(count, pass.count); |
+ EXPECT_EQ(lost, pass.lost); |
+ loop.Quit(); |
+ }); |
+ loop.Run(); |
+} |
+ |
TEST_F(StructTraitsTest, SurfaceId) { |
const uint32_t id_namespace = 1337; |
const uint32_t local_id = 0xfbadbeef; |