Verify limits on the lengths of attrib locations.
Test attrib location underneath the length limit
PASS gl.getProgramParameter(program, gl.LINK_STATUS) is true
PASS attrib location should not be -1
PASS getError was expected value: NO_ERROR :
Test attrib location exactly at the length limit
PASS gl.getProgramParameter(program, gl.LINK_STATUS) is true
PASS attrib location should not be -1
PASS getError was expected value: NO_ERROR :
Test attrib location over the length limit
Shader compilation should fail
PASS wtu.loadShaderFromScript(gl, "badVertexShader", gl.VERTEX_SHADER, function (err) {}) is null
PASS getError was expected value: NO_ERROR :
Attempt to bind too-long attrib location should produce error
PASS getError was expected value: INVALID_VALUE :
Attempt to fetch too-long attrib location should produce error
PASS gl.getAttribLocation(program, "vPosition01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567") is -1
PASS getError was expected value: INVALID_VALUE :
PASS successfullyParsed is true

TEST COMPLETE

