Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
=================================================================== |
--- gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc (revision 187725) |
+++ gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc (working copy) |
@@ -8403,6 +8403,61 @@ |
EXPECT_EQ(128u, memory_tracker->GetPoolSize(MemoryTracker::kManaged)); |
} |
+TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateSuccceeds) { |
+ const GLsizei count = 1; |
+ const GLenum bufs[] = { GL_COLOR_ATTACHMENT0 }; |
+ DrawBuffersEXTImmediate& cmd = |
+ *GetImmediateAs<DrawBuffersEXTImmediate>(); |
+ cmd.Init(count, bufs); |
+ |
+ DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
+ kServiceFramebufferId); |
+ EXPECT_CALL(*gl_, DrawBuffersARB(count, _)) |
+ .Times(1) |
+ .RetiresOnSaturation(); |
+ EXPECT_EQ(error::kNoError, |
+ ExecuteImmediateCmd(cmd, sizeof(bufs))); |
+ EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
+} |
+ |
+TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateFails) { |
+ const GLsizei count = 1; |
+ const GLenum bufs[] = { GL_COLOR_ATTACHMENT1_EXT }; |
+ DrawBuffersEXTImmediate& cmd = |
+ *GetImmediateAs<DrawBuffersEXTImmediate>(); |
+ cmd.Init(count, bufs); |
+ |
+ DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
+ kServiceFramebufferId); |
+ EXPECT_EQ(error::kNoError, |
+ ExecuteImmediateCmd(cmd, sizeof(bufs))); |
+ EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); |
+} |
+ |
+TEST_F(GLES2DecoderTest, DrawBuffersEXTImmediateBackbuffer) { |
+ const GLsizei count = 1; |
+ const GLenum bufs[] = { GL_BACK }; |
+ DrawBuffersEXTImmediate& cmd = |
+ *GetImmediateAs<DrawBuffersEXTImmediate>(); |
+ cmd.Init(count, bufs); |
+ |
+ DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
+ kServiceFramebufferId); |
+ EXPECT_EQ(error::kNoError, |
+ ExecuteImmediateCmd(cmd, sizeof(bufs))); |
+ EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); |
+ |
+ DoBindFramebuffer(GL_FRAMEBUFFER, 0, 0); // unbind |
+ |
+ EXPECT_CALL(*gl_, DrawBuffersARB(count, _)) |
+ .Times(1) |
+ .RetiresOnSaturation(); |
+ |
+ EXPECT_EQ(error::kNoError, |
+ ExecuteImmediateCmd(cmd, sizeof(bufs))); |
+ EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
+} |
+ |
// TODO(gman): Complete this test. |
// TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) { |
// } |