Chromium Code Reviews| Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc |
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc |
| index 67e71bd4ce143b09407ba5419e5e2fe924d53c05..22e906b2691b9d235fde5ed6dbf51bc3f97ecdc2 100644 |
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc |
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc |
| @@ -4720,6 +4720,60 @@ TEST_P(GLES2DecoderTest, BindTextureInvalidArgs) { |
| EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); |
| } |
| +TEST_P(GLES3DecoderTest, TexSwizzleValid) { |
|
Ken Russell (switch to Gerrit)
2016/12/01 22:46:27
A test is needed of passing an invalid swizzle val
|
| + const GLenum kTarget = GL_TEXTURE_2D; |
| + const GLenum kSwizzleParam = GL_TEXTURE_SWIZZLE_R; |
| + const GLenum kSwizzleValue = GL_BLUE; |
| + |
| + { |
| + EXPECT_CALL(*gl_, TexParameteri(kTarget, kSwizzleParam, kSwizzleValue)); |
| + TexParameteri cmd; |
| + cmd.Init(kTarget, kSwizzleParam, kSwizzleValue); |
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| + EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| + } |
| + |
| + { |
| + EXPECT_CALL(*gl_, GetError()) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .RetiresOnSaturation(); |
| + typedef GetTexParameteriv::Result Result; |
| + Result* result = static_cast<Result*>(shared_memory_address_); |
| + result->size = 0; |
| + GetTexParameteriv cmd; |
| + cmd.Init(kTarget, kSwizzleParam, shared_memory_id_, shared_memory_offset_); |
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| + EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(kSwizzleParam), |
| + result->GetNumResults()); |
| + EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| + EXPECT_EQ(kSwizzleValue, static_cast<GLenum>(result->GetData()[0])); |
| + } |
| +} |
| + |
| +TEST_P(WebGL2DecoderTest, TexSwizzleDisabled) { |
| + const GLenum kTarget = GL_TEXTURE_2D; |
| + const GLenum kSwizzleParam = GL_TEXTURE_SWIZZLE_R; |
| + const GLenum kSwizzleValue = GL_BLUE; |
| + |
| + { |
| + TexParameteri cmd; |
| + cmd.Init(kTarget, kSwizzleParam, kSwizzleValue); |
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| + EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); |
| + } |
| + |
| + { |
| + typedef GetTexParameteriv::Result Result; |
| + Result* result = static_cast<Result*>(shared_memory_address_); |
| + result->size = 0; |
| + GetTexParameteriv cmd; |
| + cmd.Init(kTarget, kSwizzleParam, shared_memory_id_, shared_memory_offset_); |
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| + EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); |
| + } |
| +} |
| + |
| // TODO(gman): Complete this test. |
| // TEST_P(GLES2DecoderTest, CompressedTexImage2DGLError) { |
| // } |