Chromium Code Reviews| 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 b367e5c1b5e0feb180669c8d7198b65d9a47cfaa..c1f6595dc6013fd3e76fe3d5fb51d9c0d116b369 100644 |
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
| @@ -5043,7 +5043,7 @@ static bool ValueInArray(GLint value, GLint* array, GLint count) { |
| return false; |
| } |
| -TEST_F(GLES2DecoderManualInitTest, GetCompressedTextureFormats) { |
| +TEST_F(GLES2DecoderManualInitTest, GetCompressedTextureFormatsS3TC) { |
| InitState init; |
| init.extensions = "GL_EXT_texture_compression_s3tc"; |
| init.gl_version = "3.0"; |
| @@ -5096,6 +5096,109 @@ TEST_F(GLES2DecoderManualInitTest, GetCompressedTextureFormats) { |
| EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| } |
| +TEST_F(GLES2DecoderManualInitTest, GetCompressedTextureFormatsATC) { |
|
Zhenyao Mo
2014/04/21 21:38:30
You should add a helper test function and combine
|
| + InitState init; |
| + init.extensions = "GL_AMD_compressed_ATC_texture"; |
| + init.gl_version = "3.0"; |
| + init.bind_generates_resource = true; |
| + InitDecoder(init); |
| + |
| + EXPECT_CALL(*gl_, GetError()) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .RetiresOnSaturation(); |
| + |
| + typedef GetIntegerv::Result Result; |
| + Result* result = static_cast<Result*>(shared_memory_address_); |
| + GetIntegerv cmd; |
| + result->size = 0; |
| + EXPECT_CALL(*gl_, GetIntegerv(_, _)) |
| + .Times(0) |
| + .RetiresOnSaturation(); |
| + cmd.Init( |
| + GL_NUM_COMPRESSED_TEXTURE_FORMATS, |
| + shared_memory_id_, shared_memory_offset_); |
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| + EXPECT_EQ(1, result->GetNumResults()); |
| + GLint num_formats = result->GetData()[0]; |
| + EXPECT_EQ(3, num_formats); |
| + EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| + |
| + result->size = 0; |
| + cmd.Init( |
| + GL_COMPRESSED_TEXTURE_FORMATS, |
| + shared_memory_id_, shared_memory_offset_); |
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| + EXPECT_EQ(num_formats, result->GetNumResults()); |
| + |
| + EXPECT_TRUE(ValueInArray( |
| + GL_ATC_RGB_AMD, |
| + result->GetData(), result->GetNumResults())); |
| + EXPECT_TRUE(ValueInArray( |
| + GL_ATC_RGBA_EXPLICIT_ALPHA_AMD, |
| + result->GetData(), result->GetNumResults())); |
| + EXPECT_TRUE(ValueInArray( |
| + GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD, |
| + result->GetData(), result->GetNumResults())); |
| + |
| + EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| +} |
| + |
| +TEST_F(GLES2DecoderManualInitTest, GetCompressedTextureFormatsPVRTC) { |
| + InitState init; |
| + init.extensions = "GL_IMG_texture_compression_pvrtc"; |
| + init.gl_version = "3.0"; |
| + init.bind_generates_resource = true; |
| + InitDecoder(init); |
| + |
| + EXPECT_CALL(*gl_, GetError()) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .RetiresOnSaturation(); |
| + |
| + typedef GetIntegerv::Result Result; |
| + Result* result = static_cast<Result*>(shared_memory_address_); |
| + GetIntegerv cmd; |
| + result->size = 0; |
| + EXPECT_CALL(*gl_, GetIntegerv(_, _)) |
| + .Times(0) |
| + .RetiresOnSaturation(); |
| + cmd.Init( |
| + GL_NUM_COMPRESSED_TEXTURE_FORMATS, |
| + shared_memory_id_, shared_memory_offset_); |
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| + EXPECT_EQ(1, result->GetNumResults()); |
| + GLint num_formats = result->GetData()[0]; |
| + EXPECT_EQ(4, num_formats); |
| + EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| + |
| + result->size = 0; |
| + cmd.Init( |
| + GL_COMPRESSED_TEXTURE_FORMATS, |
| + shared_memory_id_, shared_memory_offset_); |
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| + EXPECT_EQ(num_formats, result->GetNumResults()); |
| + |
| + EXPECT_TRUE(ValueInArray( |
| + GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG, |
| + result->GetData(), result->GetNumResults())); |
| + EXPECT_TRUE(ValueInArray( |
| + GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG, |
| + result->GetData(), result->GetNumResults())); |
| + EXPECT_TRUE(ValueInArray( |
| + GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, |
| + result->GetData(), result->GetNumResults())); |
| + EXPECT_TRUE(ValueInArray( |
| + GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG, |
| + result->GetData(), result->GetNumResults())); |
| + |
| + EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| +} |
| + |
| TEST_F(GLES2DecoderManualInitTest, GetNoCompressedTextureFormats) { |
| InitState init; |
| init.gl_version = "3.0"; |