This test ensures WebGL implementations vertexAttrib can be set and read.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Canvas.getContext
PASS context exists

Checking gl.vertexAttrib.
PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[0] is 1
PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[1] is 2
PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[2] is 3
PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[3] is 4
PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[0] is 5
PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[1] is 0
PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[2] is 0
PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[3] is 1

PASS successfullyParsed is true

TEST COMPLETE

