| Index: gpu/command_buffer/service/shader_manager_unittest.cc
|
| diff --git a/gpu/command_buffer/service/shader_manager_unittest.cc b/gpu/command_buffer/service/shader_manager_unittest.cc
|
| index 87729b1babc49c48846f29bbd8179f2487ff9a76..68ad33c894ac544d623576d145a1374f6b4eabdf 100644
|
| --- a/gpu/command_buffer/service/shader_manager_unittest.cc
|
| +++ b/gpu/command_buffer/service/shader_manager_unittest.cc
|
| @@ -126,6 +126,11 @@ TEST_F(ShaderManagerTest, DoCompile) {
|
| const GLenum kVarying1Precision = GL_HIGH_FLOAT;
|
| const bool kVarying1StaticUse = false;
|
| const char* kVarying1Name = "varying1";
|
| + const GLenum kOutputVariable1Type = GL_FLOAT_VEC4;
|
| + const GLint kOutputVariable1Size = 4;
|
| + const GLenum kOutputVariable1Precision = GL_MEDIUM_FLOAT;
|
| + const char* kOutputVariable1Name = "gl_FragColor";
|
| + const bool kOutputVariable1StaticUse = true;
|
|
|
| // Check we can create shader.
|
| Shader* shader1 = manager_.CreateShader(
|
| @@ -187,10 +192,13 @@ TEST_F(ShaderManagerTest, DoCompile) {
|
| varying_map[kVarying1Name] = TestHelper::ConstructVarying(
|
| kVarying1Type, kVarying1Size, kVarying1Precision,
|
| kVarying1StaticUse, kVarying1Name);
|
| -
|
| + AttributeList output_variable_list;
|
| + output_variable_list.push_back(TestHelper::ConstructAttribute(
|
| + kOutputVariable1Type, kOutputVariable1Size, kOutputVariable1Precision,
|
| + kOutputVariable1StaticUse, kOutputVariable1Name));
|
| TestHelper::SetShaderStates(
|
| - gl_.get(), shader1, true, &kLog, &kTranslatedSource, NULL,
|
| - &attrib_map, &uniform_map, &varying_map, NULL);
|
| + gl_.get(), shader1, true, &kLog, &kTranslatedSource, NULL, &attrib_map,
|
| + &uniform_map, &varying_map, &output_variable_list, NULL);
|
| EXPECT_TRUE(shader1->valid());
|
| // When compilation succeeds, no log is recorded.
|
| EXPECT_STREQ("", shader1->log_info().c_str());
|
| @@ -233,17 +241,32 @@ TEST_F(ShaderManagerTest, DoCompile) {
|
| EXPECT_EQ(it->second.staticUse, variable_info->staticUse);
|
| EXPECT_STREQ(it->second.name.c_str(), variable_info->name.c_str());
|
| }
|
| + // Check output variable infos got copied.
|
| + EXPECT_EQ(output_variable_list.size(),
|
| + shader1->output_variable_list().size());
|
| + for (auto it = output_variable_list.begin(); it != output_variable_list.end();
|
| + ++it) {
|
| + const sh::Attribute* variable_info =
|
| + shader1->GetOutputVariableInfo(it->mappedName);
|
| + ASSERT_TRUE(variable_info != nullptr);
|
| + EXPECT_EQ(it->type, variable_info->type);
|
| + EXPECT_EQ(it->arraySize, variable_info->arraySize);
|
| + EXPECT_EQ(it->precision, variable_info->precision);
|
| + EXPECT_EQ(it->staticUse, variable_info->staticUse);
|
| + EXPECT_STREQ(it->name.c_str(), variable_info->name.c_str());
|
| + }
|
|
|
| // Compile failure case.
|
| TestHelper::SetShaderStates(
|
| - gl_.get(), shader1, false, &kLog, &kTranslatedSource, NULL,
|
| - &attrib_map, &uniform_map, &varying_map, NULL);
|
| + gl_.get(), shader1, false, &kLog, &kTranslatedSource, NULL, &attrib_map,
|
| + &uniform_map, &varying_map, &output_variable_list, NULL);
|
| EXPECT_FALSE(shader1->valid());
|
| EXPECT_STREQ(kLog.c_str(), shader1->log_info().c_str());
|
| EXPECT_STREQ("", shader1->translated_source().c_str());
|
| EXPECT_TRUE(shader1->attrib_map().empty());
|
| EXPECT_TRUE(shader1->uniform_map().empty());
|
| EXPECT_TRUE(shader1->varying_map().empty());
|
| + EXPECT_TRUE(shader1->output_variable_list().empty());
|
| }
|
|
|
| TEST_F(ShaderManagerTest, ShaderInfoUseCount) {
|
|
|