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 d619b120ae51724f9e72fba621cf199f0c24e3c3..fa85ea5ce720ff8f8e396aede525c71ebc773bf2 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
@@ -96,7 +96,8 @@ class GLES2DecoderRGBBackbufferTest : public GLES2DecoderWithShaderTest { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
SetupDefaultProgram(); |
} |
}; |
@@ -3190,7 +3191,8 @@ TEST_F(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) { |
false, // has stencil |
true, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -3220,7 +3222,8 @@ TEST_F(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -3250,7 +3253,8 @@ TEST_F(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) { |
false, // has stencil |
false, // request alpha |
true, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -3280,7 +3284,8 @@ TEST_F(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -3310,7 +3315,8 @@ TEST_F(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) { |
true, // has stencil |
false, // request alpha |
false, // request depth |
- true); // request stencil |
+ true, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -3340,7 +3346,8 @@ TEST_F(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) { |
true, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -3370,7 +3377,8 @@ TEST_F(GLES2DecoderManualInitTest, DepthEnableWithDepth) { |
false, // has stencil |
false, // request alpha |
true, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
Enable cmd; |
cmd.Init(GL_DEPTH_TEST); |
@@ -3426,7 +3434,8 @@ TEST_F(GLES2DecoderManualInitTest, DepthEnableWithoutRequestedDepth) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
Enable cmd; |
cmd.Init(GL_DEPTH_TEST); |
@@ -3482,7 +3491,8 @@ TEST_F(GLES2DecoderManualInitTest, StencilEnableWithStencil) { |
true, // has stencil |
false, // request alpha |
false, // request depth |
- true); // request stencil |
+ true, // request stencil |
+ true); // bind generates resource |
Enable cmd; |
cmd.Init(GL_STENCIL_TEST); |
@@ -3538,7 +3548,8 @@ TEST_F(GLES2DecoderManualInitTest, StencilEnableWithoutRequestedStencil) { |
true, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
Enable cmd; |
cmd.Init(GL_STENCIL_TEST); |
@@ -3594,7 +3605,8 @@ TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilReportsCorrectValues) { |
true, // has stencil |
false, // request alpha |
true, // request depth |
- true); // request stencil |
+ true, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -3637,7 +3649,8 @@ TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilNoRequestedStencil) { |
true, // has stencil |
false, // request alpha |
true, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -3680,7 +3693,8 @@ TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferDepth) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, |
kServiceRenderbufferId); |
DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
@@ -3756,7 +3770,8 @@ TEST_F(GLES2DecoderManualInitTest, PackedDepthStencilRenderbufferStencil) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, |
kServiceRenderbufferId); |
DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
@@ -4107,7 +4122,8 @@ TEST_F(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleGLError) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, |
kServiceRenderbufferId); |
EXPECT_CALL(*gl_, GetError()) |
@@ -4169,7 +4185,8 @@ TEST_F(GLES2DecoderManualInitTest, GetCompressedTextureFormats) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -4225,7 +4242,8 @@ TEST_F(GLES2DecoderManualInitTest, GetNoCompressedTextureFormats) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, GetError()) |
.WillOnce(Return(GL_NO_ERROR)) |
@@ -4296,7 +4314,8 @@ TEST_F(GLES2DecoderManualInitTest, EGLImageExternalBindTexture) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_EXTERNAL_OES, kNewServiceId)); |
EXPECT_CALL(*gl_, GenTextures(1, _)) |
.WillOnce(SetArgumentPointee<1>(kNewServiceId)); |
@@ -4317,7 +4336,8 @@ TEST_F(GLES2DecoderManualInitTest, EGLImageExternalGetBinding) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
EXPECT_CALL(*gl_, GetError()) |
@@ -4349,7 +4369,8 @@ TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureDefaults) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
TextureManager::TextureInfo* info = GetTextureInfo(client_texture_id_); |
@@ -4368,7 +4389,8 @@ TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureParam) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
@@ -4425,7 +4447,8 @@ TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTextureParamInvalid) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); |
@@ -4464,7 +4487,8 @@ TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTexImage2DError) { |
false, // has stencil |
false, // request alpha |
false, // request depth |
- false); // request stencil |
+ false, // request stencil |
+ true); // bind generates resource |
GLenum target = GL_TEXTURE_EXTERNAL_OES; |
GLint level = 0; |
@@ -4485,6 +4509,38 @@ TEST_F(GLES2DecoderManualInitTest, EGLImageExternalTexImage2DError) { |
EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); |
} |
+TEST_F(GLES2DecoderManualInitTest, BindGeneratesResourceFalse) { |
+ InitDecoder( |
+ "", // extensions |
+ false, // has alpha |
+ false, // has depth |
+ false, // has stencil |
+ false, // request alpha |
+ false, // request depth |
+ false, // request stencil |
+ false); // bind generates resource |
+ |
+ BindTexture cmd1; |
+ cmd1.Init(GL_TEXTURE_2D, kInvalidClientId); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); |
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
+ |
+ BindBuffer cmd2; |
+ cmd2.Init(GL_ARRAY_BUFFER, kInvalidClientId); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
+ |
+ BindFramebuffer cmd3; |
+ cmd3.Init(GL_FRAMEBUFFER, kInvalidClientId); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3)); |
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
+ |
+ BindRenderbuffer cmd4; |
+ cmd4.Init(GL_RENDERBUFFER, kInvalidClientId); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd4)); |
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
+} |
+ |
// TODO(gman): Complete this test. |
// TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) { |
// } |