blob: d93b1880392951eda4f9822807f60f06ebaaf287 [file] [log] [blame]
This test ensures WebGL implementations allow proper GLES2 shaders compile and improper ones fail.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Canvas.getContext
PASS context exists
Checking various GLSL programs.
PASS [vshader/fshaderWithPrecision]: frament shader with precision compiled and linked
PASS [vshader/fshaderWithDefaultPrecision]: fragment shader with default precision compiled and linked
PASS [vshaderWithDefaultPrecision/fshader]: vertex shader with default precision compiled and linked
PASS [vshader/fshaderWithOutPrecision]: fragment shader without precision should fail
PASS [vshader/fshaderWithInvalidIdentifier]: fragment shader with gl_ identifier should fail
PASS [vshader/fshaderWithGL_ESeq1]: fragment shader that expects GL_ES == 1 should succeed
PASS [vshader/fshaderWithGLSLPreprocessorSymbol]: fragment shader that uses GL_ES preprocessor symbol should succeed
PASS [vshader/fshaderWithVERSION100PreprocessorSymbol]: fragment shader that uses __VERSION__==100 should succeed
PASS [vshader/fshaderWithFragDepth]: fragment shader that uses gl_FragDepth should fail
PASS [vshaderWithClipVertex/fshader]: vertex shader that uses gl_ClipVertex should fail
PASS [vshader/fshaderWithDefineLineContinuation]: fragment shader that uses has line continuation macro should fail
PASS [vshaderWithgl_Color/fshader]: vertex shader that uses gl_Color should fail
PASS [vshaderWithgl_ProjectionMatrix/fshader]: vertex shader that uses gl_ProjectionMatrix should fail
PASS [vshaderWithAttributeArray/fshader]: vertex shader that uses attribute array should fail as per GLSL page 110, appendix A, section 5
PASS [vshaderWithwebgl_/fshader]: vertex shader that uses _webgl identifier should fail
PASS [vshaderWith_webgl_/fshader]: vertex shader that uses _webgl_ identifier should fail
PASS [vshaderWithExplicitIntCast/fshader]: vertex shader that explicit int to float cast should succeed
PASS [vshaderWithImplicitVec3Cast/fshader]: vertex shader that implicit vec3 to vec4 cast should fail
PASS [vshaderWithVersion130/fshader]: vertex shader uses the #version not 100 directive should fail
PASS [vshaderWithVersion120/fshader]: vertex shader uses the #version not 100 directive should fail
PASS [vshaderWithVersion100/fshader]: vertex shader uses the #version 100 directive should succeed
Program link log:ERROR: Input of fragment shader 'v_varying' not written by vertex shader
PASS [vshaderWithVersion100/fragmentShaderUsedVarying]: vertex shader with no varying and fragment shader with used varying must fail
PASS [shaders/implicit/add_int_float.vert/fshader]: implicit cast adding integer to float should fail
PASS [shaders/implicit/add_int_mat2.vert/fshader]: implicit cast adding integer to mat2 should fail
PASS [shaders/implicit/add_int_mat3.vert/fshader]: implicit cast adding integer to mat3 should fail
PASS [shaders/implicit/add_int_mat4.vert/fshader]: implicit cast adding integer to mat4 should fail
PASS [shaders/implicit/add_int_vec2.vert/fshader]: implicit cast adding integer to vec2 should fail
PASS [shaders/implicit/add_int_vec3.vert/fshader]: implicit cast adding integer to vec3 should fail
PASS [shaders/implicit/add_int_vec4.vert/fshader]: implicit cast adding integer to vec4 should fail
PASS [shaders/implicit/add_ivec2_vec2.vert/fshader]: implicit cast adding ivec2 to vec2 should fail
PASS [shaders/implicit/add_ivec3_vec3.vert/fshader]: implicit cast adding ivec3 to vec3 should fail
PASS [shaders/implicit/add_ivec4_vec4.vert/fshader]: implicit cast adding ivec4 to vec4 should fail
PASS [shaders/implicit/assign_int_to_float.vert/fshader]: implicit cast assing int to float should fail
PASS [shaders/implicit/assign_ivec2_to_vec2.vert/fshader]: implicit cast assigning ivec2 to vec2 should fail
PASS [shaders/implicit/assign_ivec3_to_vec3.vert/fshader]: implicit cast assigning ivec3 to vec3 should fail
PASS [shaders/implicit/assign_ivec4_to_vec4.vert/fshader]: implicit cast assigning ivec4 to vec4 should fail
PASS [shaders/implicit/construct_struct.vert/fshader]: implicit cast from int to float in struct initializer should fail
PASS [shaders/implicit/divide_int_float.vert/fshader]: implicit cast of float divided by int should fail
PASS [shaders/implicit/divide_int_mat2.vert/fshader]: implicit cast of mat2 divided by int should fail
PASS [shaders/implicit/divide_int_mat3.vert/fshader]: implicit cast of mat3 divided by int should fail
PASS [shaders/implicit/divide_int_mat4.vert/fshader]: implicit cast of mat4 divided by int should fail
PASS [shaders/implicit/divide_int_vec2.vert/fshader]: implicit cast of vec2 divided by int should fail
PASS [shaders/implicit/divide_int_vec3.vert/fshader]: implicit cast of vec3 divided by int should fail
PASS [shaders/implicit/divide_int_vec4.vert/fshader]: implicit cast of vec4 divided by int should fail
PASS [shaders/implicit/divide_ivec2_vec2.vert/fshader]: implicit cast of vec2 divided by ivec2 should fail
PASS [shaders/implicit/divide_ivec3_vec3.vert/fshader]: implicit cast of vec3 divided by ivec3 should fail
PASS [shaders/implicit/divide_ivec4_vec4.vert/fshader]: implicit cast of vec4 divided by ivec4 should fail
PASS [shaders/implicit/equal_int_float.vert/fshader]: implicit cast of int to float in comparision should fail
PASS [shaders/implicit/equal_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in comparision should fail
PASS [shaders/implicit/equal_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in comparision should fail
PASS [shaders/implicit/equal_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in comparision should fail
PASS [shaders/implicit/function_int_float.vert/fshader]: implicit cast of int to float in function argument should fail
PASS [shaders/implicit/function_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in function argument should fail
PASS [shaders/implicit/function_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in function argument should fail
PASS [shaders/implicit/function_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in function argument should fail
PASS [shaders/implicit/greater_than.vert/fshader]: implicit cast of int to float with greater than should fail
PASS [shaders/implicit/greater_than_equal.vert/fshader]: implicit cast of int to float with greater than or equal to should fail
PASS [shaders/implicit/less_than.vert/fshader]: implicit cast of int to float with less than should fail
PASS [shaders/implicit/less_than_equal.vert/fshader]: implicit cast of int to float with less than or equal to should fail
PASS [shaders/implicit/multiply_int_float.vert/fshader]: implicit cast of int to float in multiply should fail
PASS [shaders/implicit/multiply_int_mat2.vert/fshader]: implicit cast of int to mat2 in multiply should fail
PASS [shaders/implicit/multiply_int_mat3.vert/fshader]: implicit cast of int to mat3 in multiply should fail
PASS [shaders/implicit/multiply_int_mat4.vert/fshader]: implicit cast of int to mat4 in multiply should fail
PASS [shaders/implicit/multiply_int_vec2.vert/fshader]: implicit cast of int to vec2 in multiply should fail
PASS [shaders/implicit/multiply_int_vec3.vert/fshader]: implicit cast of int to vec3 in multiply should fail
PASS [shaders/implicit/multiply_int_vec4.vert/fshader]: implicit cast of int to vec4 in multiply should fail
PASS [shaders/implicit/multiply_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in multiply should fail
PASS [shaders/implicit/multiply_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in multiply should fail
PASS [shaders/implicit/multiply_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in multiply should fail
PASS [shaders/implicit/not_equal_int_float.vert/fshader]: implicit cast of int to float in not equal comparison should fail
PASS [shaders/implicit/not_equal_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in not equal comparison should fail
PASS [shaders/implicit/not_equal_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in not equal comparison should fail
PASS [shaders/implicit/not_equal_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in not equal comparison should fail
PASS [shaders/implicit/subtract_int_float.vert/fshader]: implicit cast of int to float in subtraction should fail
PASS [shaders/implicit/subtract_int_mat2.vert/fshader]: implicit cast of int to mat2 in subtraction should fail
PASS [shaders/implicit/subtract_int_mat3.vert/fshader]: implicit cast of int to mat3 in subtraction should fail
PASS [shaders/implicit/subtract_int_mat4.vert/fshader]: implicit cast of int to mat4 in subtraction should fail
PASS [shaders/implicit/subtract_int_vec2.vert/fshader]: implicit cast of int to vec2 in subtraction should fail
PASS [shaders/implicit/subtract_int_vec3.vert/fshader]: implicit cast of int to vec3 in subtraction should fail
PASS [shaders/implicit/subtract_int_vec4.vert/fshader]: implicit cast of int to vec4 in subtraction should fail
PASS [shaders/implicit/subtract_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in subtraction should fail
PASS [shaders/implicit/subtract_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in subtraction should fail
PASS [shaders/implicit/subtract_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in subtraction should fail
PASS [shaders/implicit/ternary_int_float.vert/fshader]: implicit cast of int to float in ternary expression should fail
PASS [shaders/implicit/ternary_ivec2_vec2.vert/fshader]: implicit cast of ivec2 to vec2 in ternary expression should fail
PASS [shaders/implicit/ternary_ivec3_vec3.vert/fshader]: implicit cast of ivec3 to vec3 in ternary expression should fail
PASS [shaders/implicit/ternary_ivec4_vec4.vert/fshader]: implicit cast of ivec4 to vec4 in ternary expression should fail
PASS [shaders/misc/non-ascii.vert/fshader]: Non ascii data in source should fail
PASS [shaders/misc/non-ascii-comments.vert/fshader]: Non ascii comments in source should succeed
PASS [shaders/reserved/_webgl_field.vert/fshader]: use of reserved _webgl prefix as structure field should fail
PASS [shaders/reserved/_webgl_function.vert/fshader]: use of reserved _webgl prefix as function name should fail
PASS [shaders/reserved/_webgl_struct.vert/fshader]: use of reserved _webgl prefix as structure name should fail
PASS [shaders/reserved/_webgl_variable.vert/fshader]: use of reserved _webgl prefix as structure field should fail
PASS [shaders/reserved/webgl_field.vert/fshader]: use of reserved webgl_ prefix as structure field should fail
PASS [shaders/reserved/webgl_function.vert/fshader]: use of reserved webgl_ prefix as function name should fail
PASS [shaders/reserved/webgl_struct.vert/fshader]: use of reserved webgl_ prefix as structure name should fail
PASS [shaders/reserved/webgl_variable.vert/fshader]: use of reserved webgl_ prefix as variable should fail
PASS successfullyParsed is true
TEST COMPLETE