Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
index e76cc96522eb45c859354f783e22678a8693eeef..535762a0141159cda7af7b6cd0682a8c59b067c0 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
@@ -7050,6 +7050,48 @@ TEST_F(GLES2DecoderTest, IsEnabledReturnsCachedValue) { |
} |
} |
+TEST_F(GLES2DecoderTest, PixelTransferBufferObjectCHROMIUM) { |
+ GLenum target = GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM; |
+ const uint8 data[] = {4, 3, 2, 1}; |
+ BindBuffer bind_cmd; |
+ bind_cmd.Init(target, client_buffer_id_); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(bind_cmd)); |
+ BufferManager* manager = group().buffer_manager(); |
+ BufferManager::BufferInfo* info = |
+ manager->GetBufferInfo(client_buffer_id_); |
+ ASSERT_TRUE(info != NULL); |
+ EXPECT_EQ(0, info->size()); |
+ |
+ int8* shm_buf = static_cast<int8*>(shared_memory_address_); |
+ memcpy(shm_buf, data, sizeof(data)); |
+ BufferData data_cmd; |
+ data_cmd.Init(target, sizeof(data), shared_memory_id_, shared_memory_offset_, |
+ GL_STREAM_DRAW); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(data_cmd)); |
+ |
+ // Check if buffer data is set correctly. |
+ const uint8* buf = static_cast<const uint8*>( |
+ info->GetRange(0, sizeof(data))); |
+ ASSERT_TRUE(buf != NULL); |
+ ASSERT_EQ(data[0], buf[0]); |
+ ASSERT_EQ(data[sizeof(data) - 1], buf[sizeof(data) - 1]); |
+ |
+ // Check if shared memory buffer is used for texture upload. |
+ DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); |
+ EXPECT_CALL(*gl_, GetError()) |
+ .WillRepeatedly(Return(GL_NO_ERROR)); |
+ TexImage2D cmd1; |
+ EXPECT_CALL(*gl_, TexImage2D( |
+ GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, |
+ GL_UNSIGNED_BYTE, shm_buf)) |
+ .Times(1) |
+ .RetiresOnSaturation(); |
+ cmd1.Init( |
+ GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, |
+ GL_UNSIGNED_BYTE, 0, 0); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); |
+} |
+ |
// TODO(gman): Complete this test. |
// TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) { |
// } |