Index: gpu/command_buffer/tests/gl_program_unittest.cc |
diff --git a/gpu/command_buffer/tests/gl_program_unittest.cc b/gpu/command_buffer/tests/gl_program_unittest.cc |
index c0abb12aa81688a9d60fd55ebca18f6e92bc8fee..ef11ae4955fbfc814956c03ff1c8167dce24f2b5 100644 |
--- a/gpu/command_buffer/tests/gl_program_unittest.cc |
+++ b/gpu/command_buffer/tests/gl_program_unittest.cc |
@@ -25,6 +25,15 @@ class GLProgramTest : public testing::Test { |
GLManager gl_; |
}; |
+class WebGLProgramTest : public GLProgramTest { |
+ protected: |
+ void SetUp() override { |
+ GLManager::Options options; |
+ options.webgl_version = 1; |
+ gl_.Initialize(options); |
+ } |
+}; |
+ |
TEST_F(GLProgramTest, GetSetUniform) { |
static const char* v_shader_str = SHADER( |
attribute vec4 a_vertex; |
@@ -189,7 +198,7 @@ TEST_F(GLProgramTest, UniformsInCurrentProgram) { |
GLTestHelper::CheckGLError("no errors", __LINE__); |
} |
-TEST_F(GLProgramTest, DeferCompileWithExt) { |
+TEST_F(WebGLProgramTest, DeferCompileWithExt) { |
// This test must have extensions enabled. |
gles2::ContextGroup* context_group = gl_.decoder()->GetContextGroup(); |
gles2::FeatureInfo* feature_info = context_group->feature_info(); |
@@ -212,16 +221,7 @@ TEST_F(GLProgramTest, DeferCompileWithExt) { |
} |
)"; |
- // First compile and link to be shader compiles. |
- GLuint vs_good = GLTestHelper::CompileShader(GL_VERTEX_SHADER, v_shdr_str); |
- GLuint fs_good = GLTestHelper::CompileShader(GL_FRAGMENT_SHADER, f_shdr_str); |
- GLuint program_good = GLTestHelper::LinkProgram(vs_good, fs_good); |
- GLint linked_good = 0; |
- glGetProgramiv(program_good, GL_LINK_STATUS, &linked_good); |
- EXPECT_NE(0, linked_good); |
- |
- // Disable extension and be sure shader no longer compiles. |
- ASSERT_TRUE(glEnableFeatureCHROMIUM("webgl_enable_glsl_webgl_validation")); |
+ // Extension is disabled by default and be sure shader does not compile. |
GLuint vs_bad = GLTestHelper::CompileShader(GL_VERTEX_SHADER, v_shdr_str); |
GLuint fs_bad = GLTestHelper::CompileShader(GL_FRAGMENT_SHADER, f_shdr_str); |
GLuint program_bad = GLTestHelper::LinkProgram(vs_bad, fs_bad); |
@@ -229,26 +229,18 @@ TEST_F(GLProgramTest, DeferCompileWithExt) { |
glGetProgramiv(program_bad, GL_LINK_STATUS, &linked_bad); |
EXPECT_EQ(0, linked_bad); |
- // Relinking good compilations without extension disabled should still link. |
- GLuint program_defer_good = GLTestHelper::LinkProgram(vs_good, fs_good); |
- GLint linked_defer_good = 0; |
- glGetProgramiv(program_defer_good, GL_LINK_STATUS, &linked_defer_good); |
- EXPECT_NE(0, linked_defer_good); |
- |
// linking bad compilations with extension enabled should still not link. |
- GLuint vs_bad2 = GLTestHelper::CompileShader(GL_VERTEX_SHADER, v_shdr_str); |
- GLuint fs_bad2 = GLTestHelper::CompileShader(GL_FRAGMENT_SHADER, f_shdr_str); |
glRequestExtensionCHROMIUM("GL_EXT_frag_depth"); |
- GLuint program_bad2 = GLTestHelper::LinkProgram(vs_bad2, fs_bad2); |
- GLint linked_bad2 = 0; |
- glGetProgramiv(program_bad2, GL_LINK_STATUS, &linked_bad2); |
- EXPECT_EQ(0, linked_bad2); |
+ program_bad = GLTestHelper::LinkProgram(vs_bad, fs_bad); |
+ linked_bad = 0; |
+ glGetProgramiv(program_bad, GL_LINK_STATUS, &linked_bad); |
+ EXPECT_EQ(0, linked_bad); |
// Be sure extension was actually turned on by recompiling. |
- GLuint vs_good2 = GLTestHelper::LoadShader(GL_VERTEX_SHADER, v_shdr_str); |
- GLuint fs_good2 = GLTestHelper::LoadShader(GL_FRAGMENT_SHADER, f_shdr_str); |
- GLuint program_good2 = GLTestHelper::SetupProgram(vs_good2, fs_good2); |
- EXPECT_NE(0u, program_good2); |
+ GLuint vs_good = GLTestHelper::LoadShader(GL_VERTEX_SHADER, v_shdr_str); |
+ GLuint fs_good = GLTestHelper::LoadShader(GL_FRAGMENT_SHADER, f_shdr_str); |
+ GLuint program_good = GLTestHelper::SetupProgram(vs_good, fs_good); |
+ EXPECT_NE(0u, program_good); |
} |
TEST_F(GLProgramTest, DeleteAttachedShaderLinks) { |