X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fgpu%2Fcommand_buffer%2Fservice%2Fshader_translator_unittest.cc;h=16c80a20daba94d33996e5193f58acd04c67dad1;hb=1afa4dd80ef85af7c90efaea6959db1d92330844;hp=f489626b59988c351f8fefe1f5f92f212c7e996c;hpb=90762837333c13ccf56f2ad88e4481fc71e8d281;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/gpu/command_buffer/service/shader_translator_unittest.cc b/src/gpu/command_buffer/service/shader_translator_unittest.cc index f489626..16c80a2 100644 --- a/src/gpu/command_buffer/service/shader_translator_unittest.cc +++ b/src/gpu/command_buffer/service/shader_translator_unittest.cc @@ -15,11 +15,10 @@ class ShaderTranslatorTest : public testing::Test { ShaderTranslatorTest() { } - virtual ~ShaderTranslatorTest() { - } + ~ShaderTranslatorTest() override {} protected: - virtual void SetUp() { + void SetUp() override { ShBuiltInResources resources; ShInitBuiltInResources(&resources); resources.MaxExpressionComplexity = 32; @@ -37,7 +36,7 @@ class ShaderTranslatorTest : public testing::Test { ShaderTranslatorInterface::kGlsl, static_cast(0))); } - virtual void TearDown() { + void TearDown() override { vertex_translator_ = NULL; fragment_translator_ = NULL; } @@ -54,8 +53,10 @@ TEST_F(ShaderTranslatorTest, ValidVertexShader) { // A valid shader should be successfully translated. std::string info_log, translated_source; - ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map; - ShaderTranslatorInterface::NameMap name_map; + AttributeMap attrib_map; + UniformMap uniform_map; + VaryingMap varying_map; + NameMap name_map; EXPECT_TRUE(vertex_translator_->Translate(shader, &info_log, &translated_source, @@ -67,10 +68,11 @@ TEST_F(ShaderTranslatorTest, ValidVertexShader) { EXPECT_TRUE(info_log.empty()); // Translated shader must be valid and non-empty. ASSERT_FALSE(translated_source.empty()); - // There should be no attributes, uniforms, varyings. + // There should be no attributes, uniforms, and only one built-in + // varying: gl_Position. EXPECT_TRUE(attrib_map.empty()); EXPECT_TRUE(uniform_map.empty()); - EXPECT_TRUE(varying_map.empty()); + EXPECT_EQ(1u, varying_map.size()); // There should be no name mapping. EXPECT_TRUE(name_map.empty()); } @@ -84,8 +86,10 @@ TEST_F(ShaderTranslatorTest, InvalidVertexShader) { // An invalid shader should fail. std::string info_log, translated_source; - ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map; - ShaderTranslatorInterface::NameMap name_map; + AttributeMap attrib_map; + UniformMap uniform_map; + VaryingMap varying_map; + NameMap name_map; EXPECT_FALSE(vertex_translator_->Translate(bad_shader, &info_log, &translated_source, @@ -124,8 +128,10 @@ TEST_F(ShaderTranslatorTest, ValidFragmentShader) { // A valid shader should be successfully translated. std::string info_log, translated_source; - ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map; - ShaderTranslatorInterface::NameMap name_map; + AttributeMap attrib_map; + UniformMap uniform_map; + VaryingMap varying_map; + NameMap name_map; EXPECT_TRUE(fragment_translator_->Translate(shader, &info_log, &translated_source, @@ -148,8 +154,10 @@ TEST_F(ShaderTranslatorTest, InvalidFragmentShader) { const char* shader = "foo-bar"; std::string info_log, translated_source; - ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map; - ShaderTranslatorInterface::NameMap name_map; + AttributeMap attrib_map; + UniformMap uniform_map; + VaryingMap varying_map; + NameMap name_map; // An invalid shader should fail. EXPECT_FALSE(fragment_translator_->Translate(shader, &info_log, @@ -177,8 +185,10 @@ TEST_F(ShaderTranslatorTest, GetAttributes) { "}"; std::string info_log, translated_source; - ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map; - ShaderTranslatorInterface::NameMap name_map; + AttributeMap attrib_map; + UniformMap uniform_map; + VaryingMap varying_map; + NameMap name_map; EXPECT_TRUE(vertex_translator_->Translate(shader, &info_log, &translated_source, @@ -193,13 +203,12 @@ TEST_F(ShaderTranslatorTest, GetAttributes) { // There should be no uniforms. EXPECT_TRUE(uniform_map.empty()); // There should be one attribute with following characteristics: - // name:vPosition type:GL_FLOAT_VEC4 size:1. + // name:vPosition type:GL_FLOAT_VEC4 size:0. EXPECT_EQ(1u, attrib_map.size()); - ShaderTranslator::VariableMap::const_iterator iter = - attrib_map.find("vPosition"); + AttributeMap::const_iterator iter = attrib_map.find("vPosition"); EXPECT_TRUE(iter != attrib_map.end()); - EXPECT_EQ(GL_FLOAT_VEC4, iter->second.type); - EXPECT_EQ(1, iter->second.size); + EXPECT_EQ(static_cast(GL_FLOAT_VEC4), iter->second.type); + EXPECT_EQ(0u, iter->second.arraySize); EXPECT_EQ("vPosition", iter->second.name); } @@ -218,8 +227,10 @@ TEST_F(ShaderTranslatorTest, GetUniforms) { "}"; std::string info_log, translated_source; - ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map; - ShaderTranslatorInterface::NameMap name_map; + AttributeMap attrib_map; + UniformMap uniform_map; + VaryingMap varying_map; + NameMap name_map; EXPECT_TRUE(fragment_translator_->Translate(shader, &info_log, &translated_source, @@ -236,20 +247,26 @@ TEST_F(ShaderTranslatorTest, GetUniforms) { // There should be two uniforms with following characteristics: // 1. name:bar[0].foo.color[0] type:GL_FLOAT_VEC4 size:1 // 2. name:bar[1].foo.color[0] type:GL_FLOAT_VEC4 size:1 - EXPECT_EQ(2u, uniform_map.size()); - // First uniform. - ShaderTranslator::VariableMap::const_iterator iter = - uniform_map.find("bar[0].foo.color[0]"); + // However, there will be only one entry "bar" in the map. + EXPECT_EQ(1u, uniform_map.size()); + UniformMap::const_iterator iter = uniform_map.find("bar"); EXPECT_TRUE(iter != uniform_map.end()); - EXPECT_EQ(GL_FLOAT_VEC4, iter->second.type); - EXPECT_EQ(1, iter->second.size); - EXPECT_EQ("bar[0].foo.color[0]", iter->second.name); + // First uniform. + const sh::ShaderVariable* info; + std::string original_name; + EXPECT_TRUE(iter->second.findInfoByMappedName( + "bar[0].foo.color[0]", &info, &original_name)); + EXPECT_EQ(static_cast(GL_FLOAT_VEC4), info->type); + EXPECT_EQ(1u, info->arraySize); + EXPECT_STREQ("color", info->name.c_str()); + EXPECT_STREQ("bar[0].foo.color[0]", original_name.c_str()); // Second uniform. - iter = uniform_map.find("bar[1].foo.color[0]"); - EXPECT_TRUE(iter != uniform_map.end()); - EXPECT_EQ(GL_FLOAT_VEC4, iter->second.type); - EXPECT_EQ(1, iter->second.size); - EXPECT_EQ("bar[1].foo.color[0]", iter->second.name); + EXPECT_TRUE(iter->second.findInfoByMappedName( + "bar[1].foo.color[0]", &info, &original_name)); + EXPECT_EQ(static_cast(GL_FLOAT_VEC4), info->type); + EXPECT_EQ(1u, info->arraySize); + EXPECT_STREQ("color", info->name.c_str()); + EXPECT_STREQ("bar[1].foo.color[0]", original_name.c_str()); } #if defined(OS_MACOSX) @@ -263,8 +280,10 @@ TEST_F(ShaderTranslatorTest, BuiltInFunctionEmulation) { "}"; std::string info_log, translated_source; - ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map; - ShaderTranslatorInterface::NameMap name_map; + AttributeMap attrib_map; + UniformMap uniform_map; + VaryingMap varying_map; + NameMap name_map; EXPECT_TRUE(vertex_translator_->Translate(shader, &info_log, &translated_source,