Tests the WebGLUniformLocation API

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

PASS contextA.useProgram(programA2) generated expected GL error: NO_ERROR.
PASS contextA.uniformMatrix4fv(locationA, false, mat) generated expected GL error: INVALID_OPERATION.
PASS contextA.useProgram(programA1) generated expected GL error: NO_ERROR.
PASS contextA.uniformMatrix4fv(locationA, false, mat) generated expected GL error: NO_ERROR.
PASS contextA.uniformMatrix4fv(null, false, mat) generated expected GL error: NO_ERROR.
PASS contextA.useProgram(programS) generated expected GL error: NO_ERROR.
PASS contextA.uniform1i(locationSx, 3) generated expected GL error: NO_ERROR.
PASS contextA.uniform1f(locationArray0, 4.0) generated expected GL error: NO_ERROR.
PASS contextA.uniform1f(locationArray1, 5.0) generated expected GL error: NO_ERROR.
PASS contextA.getUniform(programS, locationSx) is 3
PASS contextA.getUniform(programS, locationArray0) is 4.0
PASS contextA.getUniform(programS, locationArray1) is 5.0
PASS contextA.useProgram(programV) generated expected GL error: NO_ERROR.
PASS contextA.uniform4fv(locationVec4, vec) generated expected GL error: NO_ERROR.
PASS contextA.getUniform(programV, locationVec4) is vec
PASS contextA.getUniformLocation(programV, "IDontExist") is null
PASS contextA.linkProgram(programA1) generated expected GL error: NO_ERROR.
PASS contextA.uniformMatrix4fv(locationA, false, mat) generated expected GL error: INVALID_OPERATION.
PASS contextA.useProgram(programS) generated expected GL error: NO_ERROR.
PASS contextA.linkProgram(programS) generated expected GL error: NO_ERROR.
PASS contextA.uniform1i(locationSx, 3) generated expected GL error: INVALID_OPERATION.
PASS contextA.getUniform(programS, locationSx) generated expected GL error: INVALID_OPERATION.
PASS contextA.uniform1i(locationSx, 3) generated expected GL error: NO_ERROR.
PASS contextA.getUniform(programS, locationSx) is 3
PASS successfullyParsed is true

TEST COMPLETE

