Tests that index validation for drawElements does not examine too many indices On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PASS WebGL context exists PASS Successfully enabled OES_element_index_uint extension PASS OES_element_index_uint listed as supported and getExtension succeeded Test that draws with unsigned integer indices produce the expected results PASS Draw 0 passed pixel test Testing with valid indices PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE PASS getError was expected value: NO_ERROR : PASS gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0) is undefined. PASS getError was expected value: NO_ERROR : Testing with out-of-range indices Enable vertices, valid PASS getError was expected value: NO_ERROR : PASS gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0) is undefined. PASS getError was expected value: NO_ERROR : Enable normals, out-of-range PASS getError was expected value: NO_ERROR : PASS gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0) is undefined. PASS getError was expected value: INVALID_OPERATION : Test with enabled attribute that does not belong to current program Enable an extra attribute with null PASS getError was expected value: NO_ERROR : PASS gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0) is undefined. PASS getError was expected value: INVALID_OPERATION : Enable an extra attribute with insufficient data buffer PASS getError was expected value: NO_ERROR : PASS gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0) is undefined. Pass large negative index to vertexAttribPointer PASS getError was expected value: INVALID_VALUE : PASS gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0) is undefined. Test that client data is always copied during bufferData and bufferSubData calls PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 4) generated expected GL error: NO_ERROR. PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 0) generated expected GL error: INVALID_OPERATION. PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 8) generated expected GL error: INVALID_OPERATION. PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 4) generated expected GL error: NO_ERROR. PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 0) generated expected GL error: INVALID_OPERATION. PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 8) generated expected GL error: INVALID_OPERATION. Test that updating the size of a vertex buffer is properly noticed by the WebGL implementation. PASS getError was expected value: NO_ERROR : after initialization PASS getError was expected value: NO_ERROR : after vertex setup PASS getError was expected value: NO_ERROR : after texture coord setup PASS getError was expected value: NO_ERROR : after vertex redefinition PASS getError was expected value: NO_ERROR : after texture coordinate / color redefinition PASS getError was expected value: NO_ERROR : after setting up indices PASS getError was expected value: NO_ERROR : after drawing Test out of range indices PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 4) generated expected GL error: NO_ERROR. PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 0) generated expected GL error: INVALID_OPERATION. PASS gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 8) generated expected GL error: INVALID_OPERATION. Verifies that the index validation code which is within bufferSubData does not crash. PASS getError was expected value: INVALID_VALUE : after attempting to update a buffer outside of the allocated bounds PASS bufferSubData, when buffer object was initialized with null, did not crash PASS getError was expected value: NO_ERROR : there should be no errors PASS successfullyParsed is true TEST COMPLETE PASS successfullyParsed is true TEST COMPLETE