Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Unified Diff: gpu/command_buffer/service/shader_translator_unittest.cc

Issue 566023002: Clean up interfaces between Shader / ShaderTranslator / ANGLE side. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/shader_translator.cc ('k') | gpu/command_buffer/service/test_helper.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/shader_translator_unittest.cc
diff --git a/gpu/command_buffer/service/shader_translator_unittest.cc b/gpu/command_buffer/service/shader_translator_unittest.cc
index 6b3c6828c99f8d9400f82fbb2c9f66462fb35c1a..f489626b59988c351f8fefe1f5f92f212c7e996c 100644
--- a/gpu/command_buffer/service/shader_translator_unittest.cc
+++ b/gpu/command_buffer/service/shader_translator_unittest.cc
@@ -36,17 +36,6 @@ class ShaderTranslatorTest : public testing::Test {
GL_FRAGMENT_SHADER, SH_GLES2_SPEC, &resources,
ShaderTranslatorInterface::kGlsl,
static_cast<ShCompileOptions>(0)));
- // Post-init the results must be empty.
- // Vertex translator results.
- EXPECT_TRUE(vertex_translator_->translated_shader() == NULL);
- EXPECT_TRUE(vertex_translator_->info_log() == NULL);
- EXPECT_TRUE(vertex_translator_->attrib_map().empty());
- EXPECT_TRUE(vertex_translator_->uniform_map().empty());
- // Fragment translator results.
- EXPECT_TRUE(fragment_translator_->translated_shader() == NULL);
- EXPECT_TRUE(fragment_translator_->info_log() == NULL);
- EXPECT_TRUE(fragment_translator_->attrib_map().empty());
- EXPECT_TRUE(fragment_translator_->uniform_map().empty());
}
virtual void TearDown() {
vertex_translator_ = NULL;
@@ -64,15 +53,26 @@ TEST_F(ShaderTranslatorTest, ValidVertexShader) {
"}";
// A valid shader should be successfully translated.
- EXPECT_TRUE(vertex_translator_->Translate(shader));
+ std::string info_log, translated_source;
+ ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
+ ShaderTranslatorInterface::NameMap name_map;
+ EXPECT_TRUE(vertex_translator_->Translate(shader,
+ &info_log,
+ &translated_source,
+ &attrib_map,
+ &uniform_map,
+ &varying_map,
+ &name_map));
// Info log must be NULL.
- EXPECT_TRUE(vertex_translator_->info_log() == NULL);
+ EXPECT_TRUE(info_log.empty());
// Translated shader must be valid and non-empty.
- ASSERT_TRUE(vertex_translator_->translated_shader() != NULL);
- EXPECT_GT(strlen(vertex_translator_->translated_shader()), 0u);
- // There should be no attributes or uniforms.
- EXPECT_TRUE(vertex_translator_->attrib_map().empty());
- EXPECT_TRUE(vertex_translator_->uniform_map().empty());
+ ASSERT_FALSE(translated_source.empty());
+ // There should be no attributes, uniforms, varyings.
+ EXPECT_TRUE(attrib_map.empty());
+ EXPECT_TRUE(uniform_map.empty());
+ EXPECT_TRUE(varying_map.empty());
+ // There should be no name mapping.
+ EXPECT_TRUE(name_map.empty());
}
TEST_F(ShaderTranslatorTest, InvalidVertexShader) {
@@ -83,21 +83,37 @@ TEST_F(ShaderTranslatorTest, InvalidVertexShader) {
"}";
// An invalid shader should fail.
- EXPECT_FALSE(vertex_translator_->Translate(bad_shader));
+ std::string info_log, translated_source;
+ ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
+ ShaderTranslatorInterface::NameMap name_map;
+ EXPECT_FALSE(vertex_translator_->Translate(bad_shader,
+ &info_log,
+ &translated_source,
+ &attrib_map,
+ &uniform_map,
+ &varying_map,
+ &name_map));
// Info log must be valid and non-empty.
- ASSERT_TRUE(vertex_translator_->info_log() != NULL);
- EXPECT_GT(strlen(vertex_translator_->info_log()), 0u);
+ ASSERT_FALSE(info_log.empty());
// Translated shader must be NULL.
- EXPECT_TRUE(vertex_translator_->translated_shader() == NULL);
- // There should be no attributes or uniforms.
- EXPECT_TRUE(vertex_translator_->attrib_map().empty());
- EXPECT_TRUE(vertex_translator_->uniform_map().empty());
+ EXPECT_TRUE(translated_source.empty());
+ // There should be no attributes, uniforms, varyings, or name mapping.
+ EXPECT_TRUE(attrib_map.empty());
+ EXPECT_TRUE(uniform_map.empty());
+ EXPECT_TRUE(varying_map.empty());
+ EXPECT_TRUE(name_map.empty());
// Try a good shader after bad.
- EXPECT_TRUE(vertex_translator_->Translate(good_shader));
- EXPECT_TRUE(vertex_translator_->info_log() == NULL);
- ASSERT_TRUE(vertex_translator_->translated_shader() != NULL);
- EXPECT_GT(strlen(vertex_translator_->translated_shader()), 0u);
+ info_log.clear();
+ EXPECT_TRUE(vertex_translator_->Translate(good_shader,
+ &info_log,
+ &translated_source,
+ &attrib_map,
+ &uniform_map,
+ &varying_map,
+ &name_map));
+ EXPECT_TRUE(info_log.empty());
+ EXPECT_FALSE(translated_source.empty());
}
TEST_F(ShaderTranslatorTest, ValidFragmentShader) {
@@ -107,30 +123,50 @@ TEST_F(ShaderTranslatorTest, ValidFragmentShader) {
"}";
// A valid shader should be successfully translated.
- EXPECT_TRUE(fragment_translator_->Translate(shader));
+ std::string info_log, translated_source;
+ ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
+ ShaderTranslatorInterface::NameMap name_map;
+ EXPECT_TRUE(fragment_translator_->Translate(shader,
+ &info_log,
+ &translated_source,
+ &attrib_map,
+ &uniform_map,
+ &varying_map,
+ &name_map));
// Info log must be NULL.
- EXPECT_TRUE(fragment_translator_->info_log() == NULL);
+ EXPECT_TRUE(info_log.empty());
// Translated shader must be valid and non-empty.
- ASSERT_TRUE(fragment_translator_->translated_shader() != NULL);
- EXPECT_GT(strlen(fragment_translator_->translated_shader()), 0u);
- // There should be no attributes or uniforms.
- EXPECT_TRUE(fragment_translator_->attrib_map().empty());
- EXPECT_TRUE(fragment_translator_->uniform_map().empty());
+ ASSERT_FALSE(translated_source.empty());
+ // There should be no attributes, uniforms, varyings, or name mapping.
+ EXPECT_TRUE(attrib_map.empty());
+ EXPECT_TRUE(uniform_map.empty());
+ EXPECT_TRUE(varying_map.empty());
+ EXPECT_TRUE(name_map.empty());
}
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;
// An invalid shader should fail.
- EXPECT_FALSE(fragment_translator_->Translate(shader));
+ EXPECT_FALSE(fragment_translator_->Translate(shader,
+ &info_log,
+ &translated_source,
+ &attrib_map,
+ &uniform_map,
+ &varying_map,
+ &name_map));
// Info log must be valid and non-empty.
- ASSERT_TRUE(fragment_translator_->info_log() != NULL);
- EXPECT_GT(strlen(fragment_translator_->info_log()), 0u);
+ EXPECT_FALSE(info_log.empty());
// Translated shader must be NULL.
- EXPECT_TRUE(fragment_translator_->translated_shader() == NULL);
+ EXPECT_TRUE(translated_source.empty());
// There should be no attributes or uniforms.
- EXPECT_TRUE(fragment_translator_->attrib_map().empty());
- EXPECT_TRUE(fragment_translator_->uniform_map().empty());
+ EXPECT_TRUE(attrib_map.empty());
+ EXPECT_TRUE(uniform_map.empty());
+ EXPECT_TRUE(varying_map.empty());
+ EXPECT_TRUE(name_map.empty());
}
TEST_F(ShaderTranslatorTest, GetAttributes) {
@@ -140,18 +176,24 @@ TEST_F(ShaderTranslatorTest, GetAttributes) {
" gl_Position = vPosition;\n"
"}";
- EXPECT_TRUE(vertex_translator_->Translate(shader));
+ std::string info_log, translated_source;
+ ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
+ ShaderTranslatorInterface::NameMap name_map;
+ EXPECT_TRUE(vertex_translator_->Translate(shader,
+ &info_log,
+ &translated_source,
+ &attrib_map,
+ &uniform_map,
+ &varying_map,
+ &name_map));
// Info log must be NULL.
- EXPECT_TRUE(vertex_translator_->info_log() == NULL);
+ EXPECT_TRUE(info_log.empty());
// Translated shader must be valid and non-empty.
- ASSERT_TRUE(vertex_translator_->translated_shader() != NULL);
- EXPECT_GT(strlen(vertex_translator_->translated_shader()), 0u);
+ EXPECT_FALSE(translated_source.empty());
// There should be no uniforms.
- EXPECT_TRUE(vertex_translator_->uniform_map().empty());
+ EXPECT_TRUE(uniform_map.empty());
// There should be one attribute with following characteristics:
// name:vPosition type:GL_FLOAT_VEC4 size:1.
- const ShaderTranslator::VariableMap& attrib_map =
- vertex_translator_->attrib_map();
EXPECT_EQ(1u, attrib_map.size());
ShaderTranslator::VariableMap::const_iterator iter =
attrib_map.find("vPosition");
@@ -175,19 +217,25 @@ TEST_F(ShaderTranslatorTest, GetUniforms) {
" gl_FragColor = bar[0].foo.color[0] + bar[1].foo.color[0];\n"
"}";
- EXPECT_TRUE(fragment_translator_->Translate(shader));
+ std::string info_log, translated_source;
+ ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
+ ShaderTranslatorInterface::NameMap name_map;
+ EXPECT_TRUE(fragment_translator_->Translate(shader,
+ &info_log,
+ &translated_source,
+ &attrib_map,
+ &uniform_map,
+ &varying_map,
+ &name_map));
// Info log must be NULL.
- EXPECT_TRUE(fragment_translator_->info_log() == NULL);
+ EXPECT_TRUE(info_log.empty());
// Translated shader must be valid and non-empty.
- ASSERT_TRUE(fragment_translator_->translated_shader() != NULL);
- EXPECT_GT(strlen(fragment_translator_->translated_shader()), 0u);
+ EXPECT_FALSE(translated_source.empty());
// There should be no attributes.
- EXPECT_TRUE(fragment_translator_->attrib_map().empty());
+ EXPECT_TRUE(attrib_map.empty());
// 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
- const ShaderTranslator::VariableMap& uniform_map =
- fragment_translator_->uniform_map();
EXPECT_EQ(2u, uniform_map.size());
// First uniform.
ShaderTranslator::VariableMap::const_iterator iter =
@@ -214,12 +262,21 @@ TEST_F(ShaderTranslatorTest, BuiltInFunctionEmulation) {
" gl_Position = vec4(dot(1.0, 1.0), 1.0, 1.0, 1.0);\n"
"}";
- EXPECT_TRUE(vertex_translator_->Translate(shader));
+ std::string info_log, translated_source;
+ ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
+ ShaderTranslatorInterface::NameMap name_map;
+ EXPECT_TRUE(vertex_translator_->Translate(shader,
+ &info_log,
+ &translated_source,
+ &attrib_map,
+ &uniform_map,
+ &varying_map,
+ &name_map));
// Info log must be NULL.
- EXPECT_TRUE(vertex_translator_->info_log() == NULL);
+ EXPECT_TRUE(info_log.empty());
// Translated shader must be valid and non-empty.
- ASSERT_TRUE(vertex_translator_->translated_shader() != NULL);
- EXPECT_TRUE(strstr(vertex_translator_->translated_shader(),
+ ASSERT_FALSE(translated_source.empty());
+ EXPECT_TRUE(strstr(translated_source.c_str(),
"webgl_dot_emu") != NULL);
}
#endif
« no previous file with comments | « gpu/command_buffer/service/shader_translator.cc ('k') | gpu/command_buffer/service/test_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698