Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / gpu / command_buffer / service / shader_translator_unittest.cc
index f489626..16c80a2 100644 (file)
@@ -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<ShCompileOptions>(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<GLenum>(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<GLenum>(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<GLenum>(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,