| Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc
|
| index fefaacf312123e4121b5b4ef44e4a009e1bd55be..bcfeb1bff2ebf872c3c244f59babb0dde5ba9c20 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc
|
| @@ -711,28 +711,19 @@ TEST_P(GLES2DecoderTest, ShaderSourceBucketAndGetShaderSourceValidArgs) {
|
| kSource0, bucket->size()));
|
| }
|
|
|
| -TEST_P(GLES2DecoderTest, ShaderSourceBucketInvalidArgs) {
|
| +#if GLES2_TEST_SHADER_VS_PROGRAM_IDS
|
| +TEST_P(GLES2DecoderTest, ShaderSourceBucketWithProgramId) {
|
| const uint32 kBucketId = 123;
|
| const char kSource0[] = "hello";
|
| const char* kSource[] = { kSource0 };
|
| const char kValidStrEnd = 0;
|
| - 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());
|
| -#if GLES2_TEST_SHADER_VS_PROGRAM_IDS
|
| - SetBucketAsCStrings(kBucketId, 1, kSource);
|
| - cmd.Init(
|
| - client_program_id_, kBucketId);
|
| + ShaderSourceBucket cmd;
|
| + cmd.Init(client_program_id_, kBucketId);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
|
| -#endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS
|
| }
|
| +#endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS
|
|
|
| TEST_P(GLES2DecoderTest, ShaderSourceStripComments) {
|
| const uint32 kInBucketId = 123;
|
| @@ -746,45 +737,6 @@ TEST_P(GLES2DecoderTest, ShaderSourceStripComments) {
|
| EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| }
|
|
|
| -TEST_P(GLES2DecoderTest, ShaderSourceInvalidHeader) {
|
| - const uint32 kInBucketId = 123;
|
| - const char kSource0[] = "hello";
|
| - const char* kSource[] = { kSource0 };
|
| - const char kValidStrEnd = 0;
|
| - const GLsizei kCount = 1;
|
| - const GLsizei kTests[] = {
|
| - kCount + 1,
|
| - 0,
|
| - std::numeric_limits<GLsizei>::max(),
|
| - -1,
|
| - kCount
|
| - };
|
| - size_t kTestCount = 5;
|
| - for (size_t ii = 0; ii < kTestCount; ++ii) {
|
| - SetBucketAsCStrings(kInBucketId, 1, kSource, kTests[ii], kValidStrEnd);
|
| - ShaderSourceBucket cmd;
|
| - cmd.Init(client_shader_id_, kInBucketId);
|
| - 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(GLES2DecoderTest, ShaderSourceInvalidStringEnding) {
|
| - const uint32 kInBucketId = 123;
|
| - const char kSource0[] = "hello";
|
| - const char* kSource[] = { kSource0 };
|
| - const char kInvalidStrEnd = '*';
|
| - SetBucketAsCStrings(kInBucketId, 1, kSource, 1, kInvalidStrEnd);
|
| - ShaderSourceBucket cmd;
|
| - cmd.Init(client_shader_id_, kInBucketId);
|
| - EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
|
| - EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| -}
|
| -
|
| TEST_P(GLES2DecoderWithShaderTest, Uniform1iValidArgs) {
|
| EXPECT_CALL(*gl_, Uniform1i(kUniform1RealLocation, 2));
|
| Uniform1i cmd;
|
| @@ -923,6 +875,58 @@ TEST_P(GLES2DecoderWithShaderTest, GetAttribLocationInvalidArgs) {
|
| EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
|
| }
|
|
|
| +TEST_P(GLES2DecoderWithShaderTest, GetFragDataLocation) {
|
| + const uint32 kBucketId = 123;
|
| + const GLint kLocation = 10;
|
| + const char* kName = "color";
|
| + typedef GetFragDataLocation::Result Result;
|
| + Result* result = GetSharedMemoryAs<Result*>();
|
| + SetBucketAsCString(kBucketId, kName);
|
| + *result = -1;
|
| + GetFragDataLocation cmd;
|
| + cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
|
| + EXPECT_CALL(*gl_, GetFragDataLocation(kServiceProgramId, StrEq(kName)))
|
| + .WillOnce(Return(kLocation))
|
| + .RetiresOnSaturation();
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(kLocation, *result);
|
| + decoder_->set_unsafe_es3_apis_enabled(false);
|
| + EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
|
| +}
|
| +
|
| +TEST_P(GLES2DecoderWithShaderTest, GetFragDataLocationInvalidArgs) {
|
| + const uint32 kBucketId = 123;
|
| + typedef GetFragDataLocation::Result Result;
|
| + Result* result = GetSharedMemoryAs<Result*>();
|
| + *result = -1;
|
| + GetFragDataLocation cmd;
|
| + decoder_->set_unsafe_es3_apis_enabled(true);
|
| + // Check no bucket
|
| + cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
|
| + EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(-1, *result);
|
| + // Check bad program id.
|
| + const char* kName = "color";
|
| + SetBucketAsCString(kBucketId, kName);
|
| + cmd.Init(kInvalidClientId, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
|
| + *result = -1;
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(-1, *result);
|
| + EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| + // Check bad memory
|
| + cmd.Init(client_program_id_,
|
| + kBucketId,
|
| + kInvalidSharedMemoryId,
|
| + kSharedMemoryOffset);
|
| + EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
|
| + cmd.Init(client_program_id_,
|
| + kBucketId,
|
| + kSharedMemoryId,
|
| + kInvalidSharedMemoryOffset);
|
| + EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
|
| +}
|
| +
|
| TEST_P(GLES2DecoderWithShaderTest, GetUniformLocation) {
|
| const uint32 kBucketId = 123;
|
| const char* kNonExistentName = "foobar";
|
|
|