| 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 863a7f954bfe0e1e7d652777b7b392ff48bc9371..0376efc4d41f7b3c720512447154e0007b288352 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
|
| @@ -1109,7 +1109,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformivSucceeds) {
|
| result->size = 0;
|
| GetUniformiv cmd;
|
| cmd.Init(client_program_id_,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_CALL(*gl_, GetUniformiv(kServiceProgramId, kUniform2RealLocation, _))
|
| .Times(1);
|
| @@ -1124,7 +1124,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformivArrayElementSucceeds) {
|
| result->size = 0;
|
| GetUniformiv cmd;
|
| cmd.Init(client_program_id_,
|
| - GLES2Util::SwizzleLocation(kUniform2ElementFakeLocation),
|
| + kUniform2ElementFakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_CALL(*gl_,
|
| GetUniformiv(kServiceProgramId, kUniform2ElementRealLocation, _))
|
| @@ -1141,7 +1141,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) {
|
| GetUniformiv cmd;
|
| // non-existant program
|
| cmd.Init(kInvalidClientId,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_CALL(*gl_, GetUniformiv(_, _, _))
|
| .Times(0);
|
| @@ -1153,7 +1153,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) {
|
| #if GLES2_TEST_SHADER_VS_PROGRAM_IDS
|
| result->size = kInitialResult;
|
| cmd.Init(client_shader_id_,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(0U, result->size);
|
| @@ -1169,7 +1169,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) {
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
|
| result->size = kInitialResult;
|
| cmd.Init(kNewClientId,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(0U, result->size);
|
| @@ -1194,7 +1194,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadLocationFails) {
|
| TEST_F(GLES2DecoderWithShaderTest, GetUniformivBadSharedMemoryFails) {
|
| GetUniformiv cmd;
|
| cmd.Init(client_program_id_,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kInvalidSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_CALL(*gl_, GetUniformiv(_, _, _))
|
| .Times(0);
|
| @@ -1210,7 +1210,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformfvSucceeds) {
|
| result->size = 0;
|
| GetUniformfv cmd;
|
| cmd.Init(client_program_id_,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_CALL(*gl_, GetUniformfv(kServiceProgramId, kUniform2RealLocation, _))
|
| .Times(1);
|
| @@ -1225,7 +1225,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformfvArrayElementSucceeds) {
|
| result->size = 0;
|
| GetUniformfv cmd;
|
| cmd.Init(client_program_id_,
|
| - GLES2Util::SwizzleLocation(kUniform2ElementFakeLocation),
|
| + kUniform2ElementFakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_CALL(*gl_,
|
| GetUniformfv(kServiceProgramId, kUniform2ElementRealLocation, _))
|
| @@ -1242,7 +1242,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) {
|
| GetUniformfv cmd;
|
| // non-existant program
|
| cmd.Init(kInvalidClientId,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_CALL(*gl_, GetUniformfv(_, _, _))
|
| .Times(0);
|
| @@ -1254,7 +1254,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) {
|
| #if GLES2_TEST_SHADER_VS_PROGRAM_IDS
|
| result->size = kInitialResult;
|
| cmd.Init(client_shader_id_,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(0U, result->size);
|
| @@ -1270,7 +1270,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) {
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
|
| result->size = kInitialResult;
|
| cmd.Init(kNewClientId,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(0U, result->size);
|
| @@ -1295,7 +1295,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadLocationFails) {
|
| TEST_F(GLES2DecoderWithShaderTest, GetUniformfvBadSharedMemoryFails) {
|
| GetUniformfv cmd;
|
| cmd.Init(client_program_id_,
|
| - GLES2Util::SwizzleLocation(kUniform2FakeLocation),
|
| + kUniform2FakeLocation,
|
| kInvalidSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_CALL(*gl_, GetUniformfv(_, _, _))
|
| .Times(0);
|
| @@ -1872,7 +1872,7 @@ TEST_F(GLES2DecoderTest, GenerateMipmapClearsUnclearedTexture) {
|
| TEST_F(GLES2DecoderWithShaderTest, Uniform1iValidArgs) {
|
| EXPECT_CALL(*gl_, Uniform1i(kUniform1RealLocation, 2));
|
| Uniform1i cmd;
|
| - cmd.Init(GLES2Util::SwizzleLocation(kUniform1FakeLocation), 2);
|
| + cmd.Init(kUniform1FakeLocation, 2);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| }
|
|
|
| @@ -1881,7 +1881,7 @@ TEST_F(GLES2DecoderWithShaderTest, Uniform1ivValidArgs) {
|
| *gl_, Uniform1iv(kUniform1RealLocation, 1,
|
| reinterpret_cast<const GLint*>(shared_memory_address_)));
|
| Uniform1iv cmd;
|
| - cmd.Init(GLES2Util::SwizzleLocation(kUniform1FakeLocation),
|
| + cmd.Init(kUniform1FakeLocation,
|
| 1, shared_memory_id_, shared_memory_offset_);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| }
|
| @@ -1889,7 +1889,7 @@ TEST_F(GLES2DecoderWithShaderTest, Uniform1ivValidArgs) {
|
| TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_0) {
|
| EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
|
| Uniform1iv cmd;
|
| - cmd.Init(GLES2Util::SwizzleLocation(kUniform1FakeLocation),
|
| + cmd.Init(kUniform1FakeLocation,
|
| 1, kInvalidSharedMemoryId, 0);
|
| EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
|
| }
|
| @@ -1897,7 +1897,7 @@ TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_0) {
|
| TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidArgs2_1) {
|
| EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
|
| Uniform1iv cmd;
|
| - cmd.Init(GLES2Util::SwizzleLocation(kUniform1FakeLocation),
|
| + cmd.Init(kUniform1FakeLocation,
|
| 1, shared_memory_id_, kInvalidSharedMemoryOffset);
|
| EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
|
| }
|
| @@ -1909,7 +1909,7 @@ TEST_F(GLES2DecoderWithShaderTest, Uniform1ivImmediateValidArgs) {
|
| Uniform1iv(kUniform1RealLocation, 1,
|
| reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
|
| GLint temp[1 * 2] = { 0, };
|
| - cmd.Init(GLES2Util::SwizzleLocation(kUniform1FakeLocation), 1,
|
| + cmd.Init(kUniform1FakeLocation, 1,
|
| &temp[0]);
|
| EXPECT_EQ(error::kNoError,
|
| ExecuteImmediateCmd(cmd, sizeof(temp)));
|
| @@ -1918,7 +1918,7 @@ TEST_F(GLES2DecoderWithShaderTest, Uniform1ivImmediateValidArgs) {
|
| TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidValidArgs) {
|
| EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
|
| Uniform1iv cmd;
|
| - cmd.Init(GLES2Util::SwizzleLocation(kUniform1FakeLocation),
|
| + cmd.Init(kUniform1FakeLocation,
|
| 2, shared_memory_id_, shared_memory_offset_);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
|
| @@ -1927,7 +1927,7 @@ TEST_F(GLES2DecoderWithShaderTest, Uniform1ivInvalidValidArgs) {
|
| TEST_F(GLES2DecoderWithShaderTest, Uniform1ivZeroCount) {
|
| EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
|
| Uniform1iv cmd;
|
| - cmd.Init(GLES2Util::SwizzleLocation(kUniform1FakeLocation),
|
| + cmd.Init(kUniform1FakeLocation,
|
| 0, shared_memory_id_, shared_memory_offset_);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| @@ -1937,7 +1937,7 @@ TEST_F(GLES2DecoderWithShaderTest, Uniform1iSamplerIsLmited) {
|
| EXPECT_CALL(*gl_, Uniform1i(_, _)).Times(0);
|
| Uniform1i cmd;
|
| cmd.Init(
|
| - GLES2Util::SwizzleLocation(kUniform1FakeLocation),
|
| + kUniform1FakeLocation,
|
| kNumTextureUnits);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| @@ -1947,7 +1947,7 @@ TEST_F(GLES2DecoderWithShaderTest, Uniform1ivSamplerIsLimited) {
|
| EXPECT_CALL(*gl_, Uniform1iv(_, _, _)).Times(0);
|
| Uniform1ivImmediate& cmd = *GetImmediateAs<Uniform1ivImmediate>();
|
| GLint temp[] = { kNumTextureUnits };
|
| - cmd.Init(GLES2Util::SwizzleLocation(kUniform1FakeLocation), 1,
|
| + cmd.Init(kUniform1FakeLocation, 1,
|
| &temp[0]);
|
| EXPECT_EQ(error::kNoError,
|
| ExecuteImmediateCmd(cmd, sizeof(temp)));
|
| @@ -2812,7 +2812,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformLocation) {
|
| kSharedMemoryId, kSharedMemoryOffset,
|
| kNameSize);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| - EXPECT_EQ(GLES2Util::SwizzleLocation(kUniform2FakeLocation), *result);
|
| + EXPECT_EQ(kUniform2FakeLocation, *result);
|
| memcpy(name, kNonExistentName, kNonExistentNameSize);
|
| *result = -1;
|
| cmd.Init(client_program_id_,
|
| @@ -2893,7 +2893,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformLocationImmediate) {
|
| cmd.Init(client_program_id_, kUniform2Name,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, kNameSize));
|
| - EXPECT_EQ(GLES2Util::SwizzleLocation(kUniform2FakeLocation), *result);
|
| + EXPECT_EQ(kUniform2FakeLocation, *result);
|
| *result = -1;
|
| cmd.Init(client_program_id_, kNonExistentName,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| @@ -2935,7 +2935,7 @@ TEST_F(GLES2DecoderWithShaderTest, GetUniformLocationBucket) {
|
| cmd.Init(client_program_id_, kBucketId,
|
| kSharedMemoryId, kSharedMemoryOffset);
|
| EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| - EXPECT_EQ(GLES2Util::SwizzleLocation(kUniform2FakeLocation), *result);
|
| + EXPECT_EQ(kUniform2FakeLocation, *result);
|
| SetBucketAsCString(kBucketId, kNonExistentName);
|
| *result = -1;
|
| cmd.Init(client_program_id_, kBucketId,
|
| @@ -7377,6 +7377,55 @@ TEST_F(GLES2DecoderANGLEManualInitTest, DrawClearsDepthTexture) {
|
| EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| }
|
|
|
| +TEST_F(GLES2DecoderWithShaderTest, BindUniformLocationCHROMIUM) {
|
| + const GLint kLocation = 2;
|
| + const char* kName = "testing";
|
| + const uint32 kNameSize = strlen(kName);
|
| + const char* kBadName1 = "gl_testing";
|
| + const uint32 kBadName1Size = strlen(kBadName1);
|
| + const char* kBadName2 = "testing[1]";
|
| + const uint32 kBadName2Size = strlen(kBadName2);
|
| + memcpy(shared_memory_address_, kName, kNameSize);
|
| + BindUniformLocationCHROMIUM cmd;
|
| + cmd.Init(client_program_id_, kLocation, kSharedMemoryId, kSharedMemoryOffset,
|
| + kNameSize);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| + // check negative location
|
| + memcpy(shared_memory_address_, kName, kNameSize);
|
| + cmd.Init(client_program_id_, -1, kSharedMemoryId, kSharedMemoryOffset,
|
| + kNameSize);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| + // check highest location
|
| + memcpy(shared_memory_address_, kName, kNameSize);
|
| + GLint kMaxLocation =
|
| + (kMaxFragmentUniformVectors + kMaxVertexUniformVectors) * 4 - 1;
|
| + cmd.Init(client_program_id_, kMaxLocation, kSharedMemoryId,
|
| + kSharedMemoryOffset, kNameSize);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
| + // check too high location
|
| + memcpy(shared_memory_address_, kName, kNameSize);
|
| + cmd.Init(client_program_id_, kMaxLocation + 1, kSharedMemoryId,
|
| + kSharedMemoryOffset, kNameSize);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| + // check bad name "gl_..."
|
| + memcpy(shared_memory_address_, kBadName1, kBadName1Size);
|
| + cmd.Init(client_program_id_, kLocation, kSharedMemoryId, kSharedMemoryOffset,
|
| + kBadName1Size);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
|
| + // check bad name "name[1]" non zero
|
| + memcpy(shared_memory_address_, kBadName2, kBadName2Size);
|
| + cmd.Init(client_program_id_, kLocation, kSharedMemoryId, kSharedMemoryOffset,
|
| + kBadName2Size);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
|
| +}
|
| +
|
| +
|
| // TODO(gman): Complete this test.
|
| // TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) {
|
| // }
|
|
|