Implement basic functionality of ProgramGL.
BUG=angle:882
Change-Id: I1d859197011081729c4c5733b78ac10491fe926c
Reviewed-on: https://chromium-review.googlesource.com/251542
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/tests/angle_tests/SimpleOperationTest.cpp b/tests/angle_tests/SimpleOperationTest.cpp
index 1d78eb5..7eb97cf 100644
--- a/tests/angle_tests/SimpleOperationTest.cpp
+++ b/tests/angle_tests/SimpleOperationTest.cpp
@@ -56,3 +56,89 @@
EXPECT_GL_NO_ERROR();
}
+
+TYPED_TEST(SimpleOperationTest, LinkProgram)
+{
+ const std::string vsSource = SHADER_SOURCE
+ (
+ void main()
+ {
+ gl_Position = vec4(1.0, 1.0, 1.0, 1.0);
+ }
+ );
+
+ const std::string fsSource = SHADER_SOURCE
+ (
+ void main()
+ {
+ gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
+ }
+ );
+
+ GLuint program = CompileProgram(vsSource, fsSource);
+ EXPECT_NE(program, 0u);
+ glDeleteProgram(program);
+
+ EXPECT_GL_NO_ERROR();
+}
+
+TYPED_TEST(SimpleOperationTest, LinkProgramWithUniforms)
+{
+ const std::string vsSource = SHADER_SOURCE
+ (
+ void main()
+ {
+ gl_Position = vec4(1.0, 1.0, 1.0, 1.0);
+ }
+ );
+
+ const std::string fsSource = SHADER_SOURCE
+ (
+ precision mediump float;
+ uniform vec4 u_input;
+ void main()
+ {
+ gl_FragColor = u_input;
+ }
+ );
+
+ GLuint program = CompileProgram(vsSource, fsSource);
+ EXPECT_NE(program, 0u);
+
+ GLint uniformLoc = glGetUniformLocation(program, "u_input");
+ EXPECT_NE(-1, uniformLoc);
+
+ glDeleteProgram(program);
+
+ EXPECT_GL_NO_ERROR();
+}
+
+TYPED_TEST(SimpleOperationTest, LinkProgramWithAttributes)
+{
+ const std::string vsSource = SHADER_SOURCE
+ (
+ attribute vec4 a_input;
+ void main()
+ {
+ gl_Position = a_input;
+ }
+ );
+
+ const std::string fsSource = SHADER_SOURCE
+ (
+ void main()
+ {
+ gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
+ }
+ );
+
+ GLuint program = CompileProgram(vsSource, fsSource);
+ EXPECT_NE(program, 0u);
+
+ GLint attribLoc = glGetAttribLocation(program, "a_input");
+ EXPECT_NE(-1, attribLoc);
+
+ glDeleteProgram(program);
+
+ EXPECT_GL_NO_ERROR();
+}