Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h |
index 8670cbc31a6523eed8b1fb968f9148a2faa311bc..a5831d6c8df847ed317f8d919908d90ef4353000 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h |
@@ -12,6 +12,8 @@ |
#ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ |
#define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ |
+// TODO(gman): GetUniformLocation |
+ |
TEST_P(GLES2DecoderTest2, GetVertexAttribfvValidArgs) { |
SpecializedSetup<cmds::GetVertexAttribfv, 0>(true); |
typedef cmds::GetVertexAttribfv::Result Result; |
@@ -540,7 +542,70 @@ TEST_P(GLES2DecoderTest2, ScissorInvalidArgs3_0) { |
} |
// TODO(gman): ShaderBinary |
-// TODO(gman): ShaderSourceBucket |
+TEST_P(GLES2DecoderTest2, ShaderSourceBucketValidArgs) { |
+ const uint32 kBucketId = 123; |
+ const char kSource0[] = "hello"; |
+ const char* kSource[] = {kSource0}; |
+ const char kValidStrEnd = 0; |
+ SetBucketAsCStrings(kBucketId, 1, kSource, 1, kValidStrEnd); |
+ cmds::ShaderSourceBucket cmd; |
+ cmd.Init(client_shader_id_, kBucketId); |
+ decoder_->set_unsafe_es3_apis_enabled(true); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
+} |
+ |
+TEST_P(GLES2DecoderTest2, ShaderSourceBucketInvalidArgs) { |
+ const uint32 kBucketId = 123; |
+ const char kSource0[] = "hello"; |
+ const char* kSource[] = {kSource0}; |
+ const char kValidStrEnd = 0; |
+ decoder_->set_unsafe_es3_apis_enabled(true); |
+ cmds::ShaderSourceBucket cmd; |
+ // Test no bucket. |
+ cmd.Init(client_shader_id_, kBucketId); |
+ EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
+ // Test invalid client. |
+ SetBucketAsCStrings(kBucketId, 1, kSource, 1, kValidStrEnd); |
+ cmd.Init(kInvalidClientId, kBucketId); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
+} |
+ |
+TEST_P(GLES2DecoderTest2, ShaderSourceBucketInvalidHeader) { |
+ const uint32 kBucketId = 123; |
+ const char kSource0[] = "hello"; |
+ const char* kSource[] = {kSource0}; |
+ const char kValidStrEnd = 0; |
+ const GLsizei kCount = static_cast<GLsizei>(arraysize(kSource)); |
+ const GLsizei kTests[] = { |
+ kCount, 0, std::numeric_limits<GLsizei>::max(), -1, kCount, |
+ }; |
+ decoder_->set_unsafe_es3_apis_enabled(true); |
+ for (size_t ii = 0; ii < arraysize(kTests); ++ii) { |
+ SetBucketAsCStrings(kBucketId, 1, kSource, kTests[ii], kValidStrEnd); |
+ cmds::ShaderSourceBucket cmd; |
+ cmd.Init(client_shader_id_, kBucketId); |
+ if (kTests[ii] == kCount) { |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
+ } else { |
+ EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); |
+ } |
+ } |
+ EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
+} |
+ |
+TEST_P(GLES2DecoderTest2, ShaderSourceBucketInvalidStringEnding) { |
+ const uint32 kBucketId = 123; |
+ const char kSource0[] = "hello"; |
+ const char* kSource[] = {kSource0}; |
+ const char kInvalidStrEnd = '*'; |
+ SetBucketAsCStrings(kBucketId, 1, kSource, 1, kInvalidStrEnd); |
+ cmds::ShaderSourceBucket cmd; |
+ cmd.Init(client_shader_id_, kBucketId); |
+ decoder_->set_unsafe_es3_apis_enabled(true); |
+ EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); |
+ EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
+} |
TEST_P(GLES2DecoderTest2, StencilFuncValidArgs) { |
EXPECT_CALL(*gl_, StencilFunc(GL_NEVER, 2, 3)); |
@@ -1421,6 +1486,4 @@ TEST_P(GLES2DecoderTest2, VertexAttribI4uivImmediateValidArgs) { |
} |
// TODO(gman): VertexAttribIPointer |
-// TODO(gman): VertexAttribPointer |
- |
#endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ |