| Index: cc/ipc/struct_traits_unittest.cc
|
| diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc
|
| index 1b90b4a5498bb3a2b6964b5716a3e2ea6d7c7231..c38d29ac67d65132d7e69715d2790b2a956727e1 100644
|
| --- a/cc/ipc/struct_traits_unittest.cc
|
| +++ b/cc/ipc/struct_traits_unittest.cc
|
| @@ -130,7 +130,12 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService {
|
| DISALLOW_COPY_AND_ASSIGN(StructTraitsTest);
|
| };
|
|
|
| -void StubCopyOutputRequestCallback(std::unique_ptr<CopyOutputResult> result) {}
|
| +void CopyOutputRequestCallback(base::Closure quit_closure,
|
| + gfx::Size expected_size,
|
| + std::unique_ptr<CopyOutputResult> result) {
|
| + EXPECT_EQ(expected_size, result->size());
|
| + quit_closure.Run();
|
| +}
|
|
|
| void CopyOutputResultCallback(base::Closure quit_closure,
|
| const gpu::SyncToken& expected_sync_token,
|
| @@ -370,19 +375,17 @@ TEST_F(StructTraitsTest, CompositorFrameMetadata) {
|
| EXPECT_EQ(referenced_surfaces[i], output.referenced_surfaces[i]);
|
| }
|
|
|
| -TEST_F(StructTraitsTest, CopyOutputRequest) {
|
| +TEST_F(StructTraitsTest, CopyOutputRequest_Bitmap) {
|
| const gfx::Rect area(5, 7, 44, 55);
|
| - const auto callback = base::Bind(StubCopyOutputRequestCallback);
|
| - const int8_t mailbox_name[GL_MAILBOX_SIZE_CHROMIUM] = {
|
| - 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 7, 5, 3, 1, 3};
|
| - const uint32_t target = 3;
|
| const auto source =
|
| base::UnguessableToken::Deserialize(0xdeadbeef, 0xdeadf00d);
|
| - gpu::Mailbox mailbox;
|
| - mailbox.SetName(mailbox_name);
|
| - TextureMailbox texture_mailbox(mailbox, gpu::SyncToken(), target);
|
| + gfx::Size size(9, 8);
|
| + auto bitmap = base::MakeUnique<SkBitmap>();
|
| + bitmap->allocN32Pixels(size.width(), size.height());
|
| + base::RunLoop run_loop;
|
| + auto callback =
|
| + base::Bind(CopyOutputRequestCallback, run_loop.QuitClosure(), size);
|
|
|
| - // Test with bitmap.
|
| std::unique_ptr<CopyOutputRequest> input;
|
| input = CopyOutputRequest::CreateBitmapRequest(callback);
|
| input->set_area(area);
|
| @@ -396,19 +399,39 @@ TEST_F(StructTraitsTest, CopyOutputRequest) {
|
| EXPECT_TRUE(output->has_area());
|
| EXPECT_EQ(area, output->area());
|
| EXPECT_EQ(source, output->source());
|
| + output->SendBitmapResult(std::move(bitmap));
|
| + // If CopyOutputRequestCallback is called, this ends. Otherwise, the test
|
| + // will time out and fail.
|
| + run_loop.Run();
|
| +}
|
|
|
| - // Test with texture mailbox.
|
| - input = CopyOutputRequest::CreateRequest(callback);
|
| +TEST_F(StructTraitsTest, CopyOutputRequest_Texture) {
|
| + const int8_t mailbox_name[GL_MAILBOX_SIZE_CHROMIUM] = {
|
| + 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 7, 5, 3, 1, 3};
|
| + const uint32_t target = 3;
|
| + gpu::Mailbox mailbox;
|
| + mailbox.SetName(mailbox_name);
|
| + TextureMailbox texture_mailbox(mailbox, gpu::SyncToken(), target);
|
| + base::RunLoop run_loop;
|
| + auto callback = base::Bind(CopyOutputRequestCallback, run_loop.QuitClosure(),
|
| + gfx::Size());
|
| +
|
| + auto input = CopyOutputRequest::CreateRequest(callback);
|
| input->SetTextureMailbox(texture_mailbox);
|
|
|
| - std::unique_ptr<CopyOutputRequest> output2;
|
| - proxy->EchoCopyOutputRequest(std::move(input), &output2);
|
| + mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
|
| + std::unique_ptr<CopyOutputRequest> output;
|
| + proxy->EchoCopyOutputRequest(std::move(input), &output);
|
|
|
| - EXPECT_TRUE(output2->has_texture_mailbox());
|
| - EXPECT_FALSE(output2->has_area());
|
| - EXPECT_EQ(mailbox, output2->texture_mailbox().mailbox());
|
| - EXPECT_EQ(target, output2->texture_mailbox().target());
|
| - EXPECT_FALSE(output2->has_source());
|
| + EXPECT_TRUE(output->has_texture_mailbox());
|
| + EXPECT_FALSE(output->has_area());
|
| + EXPECT_EQ(mailbox, output->texture_mailbox().mailbox());
|
| + EXPECT_EQ(target, output->texture_mailbox().target());
|
| + EXPECT_FALSE(output->has_source());
|
| + output->SendEmptyResult();
|
| + // If CopyOutputRequestCallback is called, this ends. Otherwise, the test
|
| + // will time out and fail.
|
| + run_loop.Run();
|
| }
|
|
|
| TEST_F(StructTraitsTest, CopyOutputResult_Bitmap) {
|
|
|