Tests deletion behavior for texture, renderbuffer, shader, and program On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". shader and program deletion PASS vertex shader loaded PASS fragment shader loaded PASS program is non-null. PASS gl.attachShader(program, vertexShader) was expected value: NO_ERROR. PASS gl.attachShader(program, fragmentShader) was expected value: NO_ERROR. PASS gl.linkProgram(program) was expected value: NO_ERROR. PASS gl.getProgramParameter(program, gl.LINK_STATUS) is true PASS gl.useProgram(program) was expected value: NO_ERROR. PASS gl.deleteShader(vertexShader) was expected value: NO_ERROR. PASS gl.isShader(vertexShader) is true PASS gl.getShaderParameter(vertexShader, gl.DELETE_STATUS) is true PASS gl.detachShader(program, vertexShader) was expected value: NO_ERROR. PASS gl.isShader(vertexShader) is false PASS gl.deleteShader(fragmentShader) was expected value: NO_ERROR. PASS gl.isShader(fragmentShader) is true PASS gl.getShaderParameter(fragmentShader, gl.DELETE_STATUS) is true PASS gl.deleteProgram(program) was expected value: NO_ERROR. PASS gl.isProgram(program) is true PASS gl.getProgramParameter(program, gl.DELETE_STATUS) is true PASS gl.useProgram(null) was expected value: NO_ERROR. PASS gl.isProgram(program) is false PASS gl.isShader(fragmentShader) is false texture deletion PASS fbo is non-null. PASS fbo2 is non-null. PASS fbo3 is non-null. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS tex is non-null. PASS gl.bindTexture(gl.TEXTURE_2D, tex) was expected value: NO_ERROR. PASS gl.getParameter(gl.TEXTURE_BINDING_2D) is tex PASS gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0) was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is tex PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.TEXTURE PASS gl.deleteTexture(tex) was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) was expected value: INVALID_ENUM. PASS gl.isTexture(tex) is false PASS gl.getParameter(gl.TEXTURE_BINDING_2D) is null PASS gl.bindTexture(gl.TEXTURE_2D, tex) was expected value: NO_ERROR. PASS gl.getParameter(gl.TEXTURE_BINDING_2D) is null PASS texCubeMap is non-null. PASS gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap) was expected value: NO_ERROR. PASS gl.getParameter(gl.TEXTURE_BINDING_CUBE_MAP) is texCubeMap PASS gl.deleteTexture(texCubeMap) was expected value: NO_ERROR. PASS gl.isTexture(texCubeMap) is false PASS gl.getParameter(gl.TEXTURE_BINDING_CUBE_MAP) is null PASS gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap) was expected value: NO_ERROR. PASS gl.getParameter(gl.TEXTURE_BINDING_CUBE_MAP) is null PASS t is non-null. PASS gl.bindTexture(gl.TEXTURE_2D, t) was expected value: NO_ERROR. PASS gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE) was expected value: NO_ERROR. PASS gl.deleteTexture(t) was expected value: NO_ERROR. PASS gl.bindTexture(gl.TEXTURE_2D, t) was expected value: NO_ERROR. PASS gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE) was expected value: INVALID_OPERATION. PASS t2 is non-null. PASS gl.activeTexture(gl.TEXTURE0) was expected value: NO_ERROR. PASS gl.bindTexture(gl.TEXTURE_2D, t2) was expected value: NO_ERROR. PASS gl.getParameter(gl.TEXTURE_BINDING_2D) is t2 PASS gl.activeTexture(gl.TEXTURE1) was expected value: NO_ERROR. PASS gl.bindTexture(gl.TEXTURE_2D, t2) was expected value: NO_ERROR. PASS gl.getParameter(gl.TEXTURE_BINDING_2D) is t2 PASS gl.deleteTexture(t2) was expected value: NO_ERROR. PASS gl.getParameter(gl.TEXTURE_BINDING_2D) is null PASS gl.activeTexture(gl.TEXTURE0) was expected value: NO_ERROR. PASS gl.getParameter(gl.TEXTURE_BINDING_2D) is null renderbuffer deletion PASS rbo is non-null. PASS rbo2 is non-null. PASS rbo3 is non-null. PASS gl.bindRenderbuffer(gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.getParameter(gl.RENDERBUFFER_BINDING) is rbo PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is rbo PASS gl.deleteRenderbuffer(rbo) was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) was expected value: INVALID_ENUM. PASS gl.isRenderbuffer(rbo) is false PASS gl.getParameter(gl.RENDERBUFFER_BINDING) is null PASS gl.bindRenderbuffer(gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.getParameter(gl.RENDERBUFFER_BINDING) is null PASS gl.bindRenderbuffer(gl.RENDERBUFFER, rbo2) was expected value: NO_ERROR. PASS gl.getParameter(gl.RENDERBUFFER_BINDING) is rbo2 PASS gl.deleteRenderbuffer(rbo3) was expected value: NO_ERROR. PASS gl.getParameter(gl.RENDERBUFFER_BINDING) is rbo2 using deleted renderbuffer PASS gl.bindRenderbuffer(gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS gl.clearColor(1,0,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.clearColor(0,1,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS gl.deleteRenderbuffer(rbo) was expected value: NO_ERROR. PASS backbuffer should be red PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red") was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS fbo should be green PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,255,0,255], "fbo should be green") was expected value: NO_ERROR. PASS gl.clearColor(0,0,1,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS fbo should be blue PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,0,255,255], "fbo should be blue") was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS backbuffer should be red PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red") was expected value: NO_ERROR. renderbuffer attached twice to same framebuffer PASS gl.bindRenderbuffer(gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.bindRenderbuffer(gl.RENDERBUFFER, rbo2) was expected value: NO_ERROR. PASS gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16) was expected value: NO_ERROR. PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, rbo2) was expected value: NO_ERROR. PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, rbo2) was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is rbo2 PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is rbo2 PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is not gl.FRAMEBUFFER_COMPLETE PASS gl.deleteRenderbuffer(rbo2) was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is rbo PASS gl.deleteRenderbuffer(rbo) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. using deleted texture PASS gl.bindTexture(gl.TEXTURE_2D, tex) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0) was expected value: NO_ERROR. PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.clearColor(0,1,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS gl.deleteTexture(tex) was expected value: NO_ERROR. PASS backbuffer should be red PASS wtu.checkCanvasRect(gl, 0, 0, 1, 1, [255,0,0,255], "backbuffer should be red") was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS fbo should be green PASS wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0,255,0,255], "fbo should be green") was expected value: NO_ERROR. PASS gl.clearColor(0,0,1,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS fbo should be blue PASS wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0,0,255,255], "fbo should be blue") was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS backbuffer should be red PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red") was expected value: NO_ERROR. using deleted renderbuffer PASS rbo is non-null. PASS gl.bindRenderbuffer(gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2) was expected value: NO_ERROR. PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS gl.clearColor(1,0,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.clearColor(0,1,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS gl.deleteRenderbuffer(rbo) was expected value: NO_ERROR. PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is not gl.FRAMEBUFFER_COMPLETE PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2) was expected value: NO_ERROR. PASS fbo should be green PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,255,0,255], "fbo should be green") was expected value: NO_ERROR. PASS gl.clearColor(0,0,1,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS fbo should be blue PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,0,255,255], "fbo should be blue") was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is rbo PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) was expected value: INVALID_ENUM. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) was expected value: NO_ERROR. PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is not gl.FRAMEBUFFER_COMPLETE PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS backbuffer should be red PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red") was expected value: NO_ERROR. using deleted texture PASS tex is non-null. PASS gl.bindTexture(gl.TEXTURE_2D, tex) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0) was expected value: NO_ERROR. PASS gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2) was expected value: NO_ERROR. PASS gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.clearColor(0,1,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS gl.deleteTexture(tex) was expected value: NO_ERROR. PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is not gl.FRAMEBUFFER_COMPLETE PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2) was expected value: NO_ERROR. PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE PASS fbo should be green PASS wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0,255,0,255], "fbo should be green") was expected value: NO_ERROR. PASS gl.clearColor(0,0,1,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS fbo should be blue PASS wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0,0,255,255], "fbo should be blue") was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is tex PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) was expected value: INVALID_ENUM. PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is not gl.FRAMEBUFFER_COMPLETE PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS backbuffer should be red PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red") was expected value: NO_ERROR. buffer deletion PASS buffer is non-null. PASS gl.bindBuffer(gl.ARRAY_BUFFER, buffer) was expected value: NO_ERROR. PASS gl.getParameter(gl.ARRAY_BUFFER_BINDING) is buffer PASS gl.deleteBuffer(buffer) was expected value: NO_ERROR. PASS gl.isBuffer(buffer) is false PASS gl.getParameter(gl.ARRAY_BUFFER_BINDING) is null PASS gl.bindBuffer(gl.ARRAY_BUFFER, buffer) was expected value: NO_ERROR. PASS gl.getParameter(gl.ARRAY_BUFFER_BINDING) is null PASS buffer2 is non-null. PASS gl.bindBuffer(gl.ARRAY_BUFFER, buffer2) was expected value: NO_ERROR. PASS gl.getParameter(gl.ARRAY_BUFFER_BINDING) is buffer2 PASS gl.bindBuffer(gl.ARRAY_BUFFER, null) was expected value: NO_ERROR. PASS gl.getParameter(gl.ARRAY_BUFFER_BINDING) is null PASS gl.deleteBuffer(buffer2) was expected value: NO_ERROR. PASS gl.isBuffer(buffer2) is false PASS gl.bindBuffer(gl.ARRAY_BUFFER, buffer2) was expected value: NO_ERROR. PASS gl.getParameter(gl.ARRAY_BUFFER_BINDING) is null PASS bufferElement is non-null. PASS gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferElement) was expected value: NO_ERROR. PASS gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING) is bufferElement PASS gl.deleteBuffer(bufferElement) was expected value: NO_ERROR. PASS gl.isBuffer(bufferElement) is false PASS gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING) is null PASS gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferElement) was expected value: NO_ERROR. PASS gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING) is null PASS b is non-null. PASS gl.bindBuffer(gl.ARRAY_BUFFER, b) was expected value: NO_ERROR. PASS gl.bufferData(gl.ARRAY_BUFFER, 1, gl.STATIC_DRAW) was expected value: NO_ERROR. PASS gl.deleteBuffer(b) was expected value: NO_ERROR. PASS gl.bindBuffer(gl.ARRAY_BUFFER, b) was expected value: NO_ERROR. PASS gl.bufferData(gl.ARRAY_BUFFER, 1, gl.STATIC_DRAW) was expected value: INVALID_OPERATION. PASS b1 is non-null. PASS gl.bindBuffer(gl.ARRAY_BUFFER, b1); was expected value: NO_ERROR. PASS gl.enableVertexAttribArray(1); was expected value: NO_ERROR. PASS gl.vertexAttribPointer(1, 4, gl.FLOAT, false, 0, 0); was expected value: NO_ERROR. PASS b2 is non-null. PASS gl.bindBuffer(gl.ARRAY_BUFFER, b2); was expected value: NO_ERROR. PASS gl.enableVertexAttribArray(2); was expected value: NO_ERROR. PASS gl.vertexAttribPointer(2, 4, gl.FLOAT, false, 0, 0); was expected value: NO_ERROR. PASS gl.enableVertexAttribArray(3); was expected value: NO_ERROR. PASS gl.vertexAttribPointer(3, 4, gl.FLOAT, false, 0, 0); was expected value: NO_ERROR. PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is b1 PASS gl.getVertexAttrib(2, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is b2 PASS gl.getVertexAttrib(3, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is b2 PASS gl.deleteBuffer(b2); was expected value: NO_ERROR. PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is b1 PASS gl.getVertexAttrib(2, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is null PASS gl.getVertexAttrib(3, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is null PASS gl.deleteBuffer(b1); was expected value: NO_ERROR. PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is null framebuffer deletion PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.getParameter(gl.FRAMEBUFFER_BINDING) is fbo PASS gl.deleteFramebuffer(fbo) was expected value: NO_ERROR. PASS gl.isFramebuffer(fbo) is false PASS gl.getParameter(gl.FRAMEBUFFER_BINDING) is null PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.getParameter(gl.FRAMEBUFFER_BINDING) is null PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2) was expected value: NO_ERROR. PASS gl.getParameter(gl.FRAMEBUFFER_BINDING) is fbo2 PASS gl.deleteFramebuffer(fbo3) was expected value: NO_ERROR. PASS gl.getParameter(gl.FRAMEBUFFER_BINDING) is fbo2 PASS fbo is non-null. PASS rbo is non-null. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.bindRenderbuffer(gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16) was expected value: NO_ERROR. PASS gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS gl.clearColor(1,0,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, fbo) was expected value: NO_ERROR. PASS gl.clearColor(0,1,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS fbo should be green PASS wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,255,0,255], "fbo should be green") was expected value: NO_ERROR. PASS outside fbo should be black PASS wtu.checkCanvasRect(gl, 16, 16, 1, 1, [0,0,0,0], "outside fbo should be black") was expected value: NO_ERROR. PASS gl.deleteFramebuffer(fbo) was expected value: NO_ERROR. PASS backbuffer should be red PASS wtu.checkCanvasRect(gl, 0, 0, 300, 150, [255,0,0,255], "backbuffer should be red") was expected value: NO_ERROR. PASS outside backbuffer should be black PASS wtu.checkCanvasRect(gl, 300, 0, 300, 300, [0,0,0,0], "outside backbuffer should be black") was expected value: NO_ERROR. PASS outside backbuffer should be black PASS wtu.checkCanvasRect(gl, 0, 150, 300, 300, [0,0,0,0], "outside backbuffer should be black") was expected value: NO_ERROR. PASS gl.clearColor(0,1,0,1) was expected value: NO_ERROR. PASS gl.clear(gl.COLOR_BUFFER_BIT) was expected value: NO_ERROR. PASS fbo should be green PASS wtu.checkCanvasRect(gl, 0, 0, 300, 150, [0,255,0,255], "fbo should be green") was expected value: NO_ERROR. PASS gl.bindFramebuffer(gl.FRAMEBUFFER, null) was expected value: NO_ERROR. PASS fbo should be green PASS wtu.checkCanvasRect(gl, 0, 0, 300, 150, [0,255,0,255], "fbo should be green") was expected value: NO_ERROR. PASS successfullyParsed is true TEST COMPLETE