Tests behavior under a lost context On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Test valid context PASS gl.isContextLost() is false PASS gl.getError() is gl.NO_ERROR PASS gl.enable(gl.BLEND) was expected value: NO_ERROR. PASS gl.isBuffer(buffer) is true PASS gl.isEnabled(gl.BLEND) is true PASS gl.isFramebuffer(framebuffer) is true PASS gl.isProgram(program) is true PASS gl.isRenderbuffer(renderbuffer) is true PASS gl.isShader(shader) is true PASS gl.isTexture(texture) is true Lose context Test lost context PASS gl.isContextLost() is true PASS gl.getError() is gl.CONTEXT_LOST_WEBGL PASS gl.getError() is gl.NO_ERROR PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_UNSUPPORTED PASS gl.getAttribLocation(program, 'u_modelViewProjMatrix') is -1 PASS gl.getVertexAttribOffset(0, gl.VERTEX_ATTRIB_ARRAY_POINTER) is 0 PASS extension.loseContext() was expected value: INVALID_OPERATION. PASS gl.activeTexture(gl.TEXTURE0) was expected value: NO_ERROR. PASS gl.attachShader(program, shader) was expected value: NO_ERROR. PASS gl.bindBuffer(gl.ARRAY_BUFFER, buffer) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer) was expected value: NO_ERROR. PASS gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer) was expected value: NO_ERROR. PASS gl.bindTexture(gl.TEXTURE_2D, texture) was expected value: NO_ERROR. PASS gl.blendColor(1.0, 1.0, 1.0, 1.0) was expected value: NO_ERROR. PASS gl.blendEquation(gl.FUNC_ADD) was expected value: NO_ERROR. PASS gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD) was expected value: NO_ERROR. PASS gl.blendFunc(gl.ONE, gl.ONE) was expected value: NO_ERROR. PASS gl.blendFuncSeparate(gl.ONE, gl.ONE, gl.ONE, gl.ONE) was expected value: NO_ERROR. PASS gl.bufferData(gl.ARRAY_BUFFER, 0, gl.STATIC_DRAW) was expected value: NO_ERROR. PASS gl.bufferData(gl.ARRAY_BUFFER, arrayBufferView, gl.STATIC_DRAW) was expected value: NO_ERROR. PASS gl.bufferData(gl.ARRAY_BUFFER, arrayBuffer, gl.STATIC_DRAW) was expected value: NO_ERROR. PASS gl.bufferSubData(gl.ARRAY_BUFFRE, 0, arrayBufferView) was expected value: NO_ERROR. PASS gl.bufferSubData(gl.ARRAY_BUFFRE, 0, arrayBuffer) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS gl.clearColor(1, 1, 1, 1) was expected value: NO_ERROR. PASS gl.clearDepth(1) was expected value: NO_ERROR. PASS gl.clearStencil(0) was expected value: NO_ERROR. PASS gl.colorMask(1, 1, 1, 1) was expected value: NO_ERROR. PASS gl.compileShader(shader) was expected value: NO_ERROR. PASS gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 0, 0, 0) was expected value: NO_ERROR. PASS gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, 0, 0) was expected value: NO_ERROR. PASS gl.cullFace(gl.FRONT) was expected value: NO_ERROR. PASS gl.deleteBuffer(buffer) was expected value: NO_ERROR. PASS gl.deleteFramebuffer(framebuffer) was expected value: NO_ERROR. PASS gl.deleteProgram(program) was expected value: NO_ERROR. PASS gl.deleteRenderbuffer(renderbuffer) was expected value: NO_ERROR. PASS gl.deleteShader(shader) was expected value: NO_ERROR. PASS gl.deleteTexture(texture) was expected value: NO_ERROR. PASS gl.depthFunc(gl.NEVER) was expected value: NO_ERROR. PASS gl.depthMask(0) was expected value: NO_ERROR. PASS gl.depthRange(0, 1) was expected value: NO_ERROR. PASS gl.detachShader(program, shader) was expected value: NO_ERROR. PASS gl.disable(gl.BLEND) was expected value: NO_ERROR. PASS gl.disableVertexAttribArray(0) was expected value: NO_ERROR. PASS gl.drawArrays(gl.POINTS, 0, 0) was expected value: NO_ERROR. PASS gl.drawElements(gl.POINTS, 0, gl.UNSIGNED_SHORT, 0) was expected value: NO_ERROR. PASS gl.enable(gl.BLEND) was expected value: NO_ERROR. PASS gl.enableVertexAttribArray(0) was expected value: NO_ERROR. PASS gl.finish() was expected value: NO_ERROR. PASS gl.flush() was expected value: NO_ERROR. PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer) was expected value: NO_ERROR. PASS gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0) was expected value: NO_ERROR. PASS gl.frontFace(gl.CW) was expected value: NO_ERROR. PASS gl.generateMipmap(gl.TEXTURE_2D) was expected value: NO_ERROR. PASS gl.hint(gl.GENERATE_MIPMAP_HINT, gl.FASTEST) was expected value: NO_ERROR. PASS gl.lineWidth(0) was expected value: NO_ERROR. PASS gl.linkProgram(program) was expected value: NO_ERROR. PASS gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 0) was expected value: NO_ERROR. PASS gl.polygonOffset(0, 0) was expected value: NO_ERROR. PASS gl.readPixels(0, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView) was expected value: NO_ERROR. PASS gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 0, 0) was expected value: NO_ERROR. PASS gl.sampleCoverage(0, 0) was expected value: NO_ERROR. PASS gl.scissor(0, 0, 0, 0) was expected value: NO_ERROR. PASS gl.shaderSource(shader, '') was expected value: NO_ERROR. PASS gl.stencilFunc(gl.NEVER, 0, 0) was expected value: NO_ERROR. PASS gl.stencilFuncSeparate(gl.FRONT, gl.NEVER, 0, 0) was expected value: NO_ERROR. PASS gl.stencilMask(0) was expected value: NO_ERROR. PASS gl.stencilMaskSeparate(gl.FRONT, 0) was expected value: NO_ERROR. PASS gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP) was expected value: NO_ERROR. PASS gl.stencilOpSeparate(gl.FRONT, gl.KEEP, gl.KEEP, gl.KEEP) was expected value: NO_ERROR. PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView) was expected value: NO_ERROR. PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, imageData) was expected value: NO_ERROR. PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image) was expected value: NO_ERROR. PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas) was expected value: NO_ERROR. PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video) was expected value: NO_ERROR. PASS gl.texParameterf(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST) was expected value: NO_ERROR. PASS gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST) was expected value: NO_ERROR. PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView) was expected value: NO_ERROR. PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, imageData) was expected value: NO_ERROR. PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image) was expected value: NO_ERROR. PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, canvas) was expected value: NO_ERROR. PASS gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, video) was expected value: NO_ERROR. PASS gl.uniform1f(uniformLocation, 0) was expected value: NO_ERROR. PASS gl.uniform1fv(uniformLocation, float32array) was expected value: NO_ERROR. PASS gl.uniform1fv(uniformLocation, [0]) was expected value: NO_ERROR. PASS gl.uniform1i(uniformLocation, 0) was expected value: NO_ERROR. PASS gl.uniform1iv(uniformLocation, int32array) was expected value: NO_ERROR. PASS gl.uniform1iv(uniformLocation, [0]) was expected value: NO_ERROR. PASS gl.uniform2f(uniformLocation, 0, 0) was expected value: NO_ERROR. PASS gl.uniform2fv(uniformLocation, float32array) was expected value: NO_ERROR. PASS gl.uniform2fv(uniformLocation, [0, 0]) was expected value: NO_ERROR. PASS gl.uniform2i(uniformLocation, 0, 0) was expected value: NO_ERROR. PASS gl.uniform2iv(uniformLocation, int32array) was expected value: NO_ERROR. PASS gl.uniform2iv(uniformLocation, [0, 0]) was expected value: NO_ERROR. PASS gl.uniform3f(uniformLocation, 0, 0, 0) was expected value: NO_ERROR. PASS gl.uniform3fv(uniformLocation, float32array) was expected value: NO_ERROR. PASS gl.uniform3fv(uniformLocation, [0, 0, 0]) was expected value: NO_ERROR. PASS gl.uniform3i(uniformLocation, 0, 0, 0) was expected value: NO_ERROR. PASS gl.uniform3iv(uniformLocation, int32array) was expected value: NO_ERROR. PASS gl.uniform3iv(uniformLocation, [0, 0, 0]) was expected value: NO_ERROR. PASS gl.uniform4f(uniformLocation, 0, 0, 0, 0) was expected value: NO_ERROR. PASS gl.uniform4fv(uniformLocation, float32array) was expected value: NO_ERROR. PASS gl.uniform4fv(uniformLocation, [0, 0, 0, 0]) was expected value: NO_ERROR. PASS gl.uniform4i(uniformLocation, 0, 0, 0, 0) was expected value: NO_ERROR. PASS gl.uniform4iv(uniformLocation, int32array) was expected value: NO_ERROR. PASS gl.uniform4iv(uniformLocation, [0, 0, 0, 0]) was expected value: NO_ERROR. PASS gl.uniformMatrix2fv(uniformLocation, false, float32array) was expected value: NO_ERROR. PASS gl.uniformMatrix2fv(uniformLocation, false, [0, 0, 0, 0]) was expected value: NO_ERROR. PASS gl.uniformMatrix3fv(uniformLocation, false, float32array) was expected value: NO_ERROR. PASS gl.uniformMatrix3fv(uniformLocation, false, [0, 0, 0, 0, 0, 0, 0, 0, 0]) was expected value: NO_ERROR. PASS gl.uniformMatrix4fv(uniformLocation, false, float32array) was expected value: NO_ERROR. PASS gl.uniformMatrix4fv(uniformLocation, false, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) was expected value: NO_ERROR. PASS gl.useProgram(program) was expected value: NO_ERROR. PASS gl.validateProgram(program) was expected value: NO_ERROR. PASS gl.vertexAttrib1f(0, 0) was expected value: NO_ERROR. PASS gl.vertexAttrib1fv(0, float32array) was expected value: NO_ERROR. PASS gl.vertexAttrib1fv(0, [0]) was expected value: NO_ERROR. PASS gl.vertexAttrib2f(0, 0, 0) was expected value: NO_ERROR. PASS gl.vertexAttrib2fv(0, float32array) was expected value: NO_ERROR. PASS gl.vertexAttrib2fv(0, [0, 0]) was expected value: NO_ERROR. PASS gl.vertexAttrib3f(0, 0, 0, 0) was expected value: NO_ERROR. PASS gl.vertexAttrib3fv(0, float32array) was expected value: NO_ERROR. PASS gl.vertexAttrib3fv(0, [0, 0, 0]) was expected value: NO_ERROR. PASS gl.vertexAttrib4f(0, 0, 0, 0, 0) was expected value: NO_ERROR. PASS gl.vertexAttrib4fv(0, float32array) was expected value: NO_ERROR. PASS gl.vertexAttrib4fv(0, [0, 0, 0, 0]) was expected value: NO_ERROR. PASS gl.vertexAttribPointer(0, 0, gl.FLOAT, false, 0, 0) was expected value: NO_ERROR. PASS gl.viewport(0, 0, 0, 0) was expected value: NO_ERROR. PASS gl.createBuffer() is null PASS gl.createFramebuffer() is null PASS gl.createProgram() is null PASS gl.createRenderbuffer() is null PASS gl.createShader(gl.GL_VERTEX_SHADER) is null PASS gl.createTexture() is null PASS gl.getActiveAttrib(program, 0) is null PASS gl.getActiveUniform(program, 0) is null PASS gl.getAttachedShaders(program) is null PASS gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE) is null PASS gl.getContextAttributes() is null PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is null PASS gl.getParameter(gl.CURRENT_PROGRAM) is null PASS gl.getProgramInfoLog(program) is null PASS gl.getProgramParameter(program, gl.LINK_STATUS) is null PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH) is null PASS gl.getShaderInfoLog(shader) is null PASS gl.getShaderParameter(shader, gl.SHADER_TYPE) is null PASS gl.getShaderSource(shader) is null PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S) is null PASS gl.getUniform(program, uniformLocation) is null PASS gl.getUniformLocation(program, 'vPosition') is null PASS gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is null PASS gl.getSupportedExtensions() is null PASS gl.getExtension('WEBGL_lose_context') is null PASS gl.isBuffer(buffer) is false PASS gl.isEnabled(gl.BLEND) is false PASS gl.isFramebuffer(framebuffer) is false PASS gl.isProgram(program) is false PASS gl.isRenderbuffer(renderbuffer) is false PASS gl.isShader(shader) is false PASS gl.isTexture(texture) is false PASS gl.getError() is gl.NO_ERROR PASS successfullyParsed is true TEST COMPLETE