| Index: gpu/command_buffer/client/program_info_manager_unittest.cc
|
| diff --git a/gpu/command_buffer/client/program_info_manager_unittest.cc b/gpu/command_buffer/client/program_info_manager_unittest.cc
|
| index 6b0576cf82c11ca727ad2d85f40a8c414aaae509..316faa203b7777d457a4caf570d023d831e1841b 100644
|
| --- a/gpu/command_buffer/client/program_info_manager_unittest.cc
|
| +++ b/gpu/command_buffer/client/program_info_manager_unittest.cc
|
| @@ -179,6 +179,55 @@ TEST_F(ProgramInfoManagerTest, GetActiveUniformBlockNameCached) {
|
| EXPECT_STREQ(std::string(data.name0).substr(0, length).c_str(), &buffer[0]);
|
| }
|
|
|
| +TEST_F(ProgramInfoManagerTest, GetActiveUniformBlockivCached) {
|
| + UniformBlocksData data;
|
| + SetupUniformBlocksData(&data);
|
| + std::vector<int8> result(sizeof(data));
|
| + memcpy(&result[0], &data, sizeof(data));
|
| + program_->UpdateES3UniformBlocks(result);
|
| + const char* kName[] = { data.name0, data.name1 };
|
| + const uint32_t* kIndices[] = { data.indices0, data.indices1 };
|
| +
|
| + for (uint32_t ii = 0; ii < data.header.num_uniform_blocks; ++ii) {
|
| + ASSERT_GE(2u, data.entry[ii].active_uniforms);
|
| + GLint params[2];
|
| + EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockiv(
|
| + NULL, kClientProgramId, ii, GL_UNIFORM_BLOCK_BINDING, params));
|
| + EXPECT_EQ(data.entry[ii].binding, static_cast<uint32_t>(params[0]));
|
| +
|
| + EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockiv(
|
| + NULL, kClientProgramId, ii, GL_UNIFORM_BLOCK_DATA_SIZE, params));
|
| + EXPECT_EQ(data.entry[ii].data_size, static_cast<uint32_t>(params[0]));
|
| +
|
| + EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockiv(
|
| + NULL, kClientProgramId, ii, GL_UNIFORM_BLOCK_NAME_LENGTH, params));
|
| + EXPECT_EQ(strlen(kName[ii]) + 1, static_cast<uint32_t>(params[0]));
|
| +
|
| + EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockiv(
|
| + NULL, kClientProgramId, ii, GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS, params));
|
| + EXPECT_EQ(data.entry[ii].active_uniforms, static_cast<uint32_t>(params[0]));
|
| +
|
| + EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockiv(
|
| + NULL, kClientProgramId, ii,
|
| + GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES, params));
|
| + for (uint32_t uu = 0; uu < data.entry[ii].active_uniforms; ++uu) {
|
| + EXPECT_EQ(kIndices[ii][uu], static_cast<uint32_t>(params[uu]));
|
| + }
|
| +
|
| + EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockiv(
|
| + NULL, kClientProgramId, ii,
|
| + GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER, params));
|
| + EXPECT_EQ(data.entry[ii].referenced_by_vertex_shader,
|
| + static_cast<uint32_t>(params[0]));
|
| +
|
| + EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockiv(
|
| + NULL, kClientProgramId, ii,
|
| + GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER, params));
|
| + EXPECT_EQ(data.entry[ii].referenced_by_fragment_shader,
|
| + static_cast<uint32_t>(params[0]));
|
| + }
|
| +}
|
| +
|
| } // namespace gles2
|
| } // namespace gpu
|
|
|
|
|