Bug 223352 - webgl/2.0.1/conformance2/state/gl-object-get-calls.html fails or is flaky
Summary: webgl/2.0.1/conformance2/state/gl-object-get-calls.html fails or is flaky
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebGL (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks: webgl2conformance 244252
  Show dependency treegraph
 
Reported: 2021-03-17 00:39 PDT by Kimmo Kinnunen
Modified: 2022-08-23 07:26 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kimmo Kinnunen 2021-03-17 00:39:58 PDT
webgl/2.0.1/conformance2/state/gl-object-get-calls.html fails or is flaky

Constant failure in normal operation 
Flakiness enters when we have the gpup patch which cleans up the ANGLE after last context.
Maybe OpenGL driver bug wrt using the context? (E.g. a context that has done a lot of stuff / some important buggy thing gets broken.)
Comment 1 Kimmo Kinnunen 2021-03-17 00:59:01 PDT
https://www.khronos.org/registry/webgl/sdk/tests/conformance2/state/gl-object-get-calls.html?webglVersion=2&quiet=0&quick=1

Test of get calls against GL objects like getBufferParameter, etc.

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


test getBufferParameter
PASS gl.getBufferParameter(34962, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(34962, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
PASS getBufferParameter correctly handled invalid parameter enums
PASS gl.getBufferParameter(34963, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(34963, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
PASS getBufferParameter correctly handled invalid parameter enums
PASS gl.getBufferParameter(36662, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(36662, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
PASS getBufferParameter correctly handled invalid parameter enums
PASS gl.getBufferParameter(36663, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(36663, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
PASS getBufferParameter correctly handled invalid parameter enums
PASS gl.getBufferParameter(35051, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(35051, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
PASS getBufferParameter correctly handled invalid parameter enums
PASS gl.getBufferParameter(35052, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(35052, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
PASS getBufferParameter correctly handled invalid parameter enums
PASS gl.getBufferParameter(35982, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(35982, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
PASS getBufferParameter correctly handled invalid parameter enums
PASS gl.getBufferParameter(35345, gl.BUFFER_SIZE) is 16
PASS gl.getBufferParameter(35345, gl.BUFFER_USAGE) is gl.DYNAMIC_DRAW
PASS getBufferParameter correctly handled invalid parameter enums
PASS getBufferParameter correctly handled invalid target enums
PASS getError was expected value: NO_ERROR : 

Test getFramebufferAttachmentParameter with stencil true
PASS getError was expected value: NO_ERROR : 
PASS getError was expected value: NO_ERROR : 
PASS getError was expected value: NO_ERROR : 
PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.TEXTURE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is texture
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_RED_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.TEXTURE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is anotherTexture
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_RED_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.RENDERBUFFER
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is renderbuffer
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.RENDERBUFFER
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is renderbuffer
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.RENDERBUFFER
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is renderbuffer
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE)
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS getFramebufferAttachmentParameter correctly handled invalid parameter enums
PASS getFramebufferAttachmentParameter correctly handled invalid target enums
PASS getFramebufferAttachmentParameter correctly handled invalid attachment enums
PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.FRAMEBUFFER_DEFAULT
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.FRAMEBUFFER_DEFAULT
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.FRAMEBUFFER_DEFAULT
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_RED_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE) is non-zero.
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH, gl.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE) should be non-zero. Was 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) should be non-zero. Was 0
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) should be non-zero. Was 0
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL, gl.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE) should be non-zero. Was 0
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) should be non-zero. Was 0
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) should be non-zero. Was 0
FAIL getError expected: NO_ERROR. Was INVALID_OPERATION : 
FAIL getFramebufferAttachmentParameter returned 0 instead of null for invalid parameter enum: POINTS/ZERO/NO_ERROR/NONE
PASS getFramebufferAttachmentParameter correctly handled invalid target enums
PASS getFramebufferAttachmentParameter correctly handled invalid attachment enums

Test getFramebufferAttachmentParameter with stencil false
PASS getError was expected value: NO_ERROR : 
PASS getError was expected value: NO_ERROR : 
PASS getError was expected value: NO_ERROR : 
PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.TEXTURE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is texture
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_RED_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.TEXTURE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is anotherTexture
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_RED_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 7, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER) is 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.RENDERBUFFER
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is renderbuffer
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.RENDERBUFFER
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is renderbuffer
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.RENDERBUFFER
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is renderbuffer
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE)
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
PASS getFramebufferAttachmentParameter correctly handled invalid parameter enums
PASS getFramebufferAttachmentParameter correctly handled invalid target enums
PASS getFramebufferAttachmentParameter correctly handled invalid attachment enums
PASS gl.checkFramebufferStatus(gl.FRAMEBUFFER) is gl.FRAMEBUFFER_COMPLETE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.FRAMEBUFFER_DEFAULT
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.FRAMEBUFFER_DEFAULT
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_RED_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE) is non-zero.
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH, gl.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE) should be non-zero. Was 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) is non-zero.
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) is non-zero.
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE) should be non-zero. Was 0
FAIL gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING) should be non-zero. Was 0
PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL, gl.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE)
PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL, gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE)
PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL, gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING)
FAIL getFramebufferAttachmentParameter returned 0 instead of null for invalid parameter enum: POINTS/ZERO/NO_ERROR/NONE
PASS getFramebufferAttachmentParameter correctly handled invalid target enums
PASS getFramebufferAttachmentParameter correctly handled invalid attachment enums
PASS getError was expected value: NO_ERROR : 

test getAttachedShaders
PASS shaders.length is 2
PASS shaders[0] == standardVert && shaders[1] == standardFrag || shaders[1] == standardVert && shaders[0] == standardFrag is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getAttachedShaders(null) threw exception TypeError: Argument 1 ('program') to WebGL2RenderingContext.getAttachedShaders must be an instance of WebGLProgram.
PASS getError was expected value: NO_ERROR : 
PASS gl.getAttachedShaders(standardVert) threw exception TypeError: Argument 1 ('program') to WebGL2RenderingContext.getAttachedShaders must be an instance of WebGLProgram.
PASS getError was expected value: NO_ERROR : 

Test getProgramParameter
PASS gl.getProgramParameter(standardProgram, gl.DELETE_STATUS) is false
PASS gl.getProgramParameter(standardProgram, gl.LINK_STATUS) is true
PASS typeof gl.getProgramParameter(standardProgram, gl.VALIDATE_STATUS) is "boolean"
PASS gl.getProgramParameter(standardProgram, gl.ATTACHED_SHADERS) is 2
PASS gl.getProgramParameter(standardProgram, gl.ACTIVE_ATTRIBUTES) is 2
PASS gl.getProgramParameter(standardProgram, gl.ACTIVE_UNIFORMS) is 1
PASS gl.getProgramParameter(uniformBlockProgram, gl.LINK_STATUS) is true
PASS gl.getError() is gl.NO_ERROR
PASS gl.getProgramParameter(uniformBlockProgram, gl.ACTIVE_UNIFORM_BLOCKS) is 1
PASS gl.getProgramParameter(uniformBlockProgram, gl.TRANSFORM_FEEDBACK_VARYINGS) is 2
PASS gl.getProgramParameter(uniformBlockProgram, gl.TRANSFORM_FEEDBACK_BUFFER_MODE) is gl.INTERLEAVED_ATTRIBS
PASS getProgramParameter correctly handled invalid parameter enums
PASS getError was expected value: NO_ERROR : 

Test getRenderbufferParameter
PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH) is 2
PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT) is 2
PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_INTERNAL_FORMAT) is non-zero.
PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_DEPTH_SIZE) is non-zero.
PASS getError was expected value: NO_ERROR : 
PASS getError was expected value: NO_ERROR : 
PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_RED_SIZE) is non-zero.
PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_GREEN_SIZE) is non-zero.
PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_BLUE_SIZE) is non-zero.
PASS gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_ALPHA_SIZE) is non-zero.
FAIL gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_SAMPLES) should be 4. Was 0.
PASS getRenderbufferParameter correctly handled invalid parameter enums
PASS getRenderbufferParameter correctly handled invalid target enums
PASS getError was expected value: NO_ERROR : 

Test getShaderParameter
PASS gl.getShaderParameter(standardVert, gl.SHADER_TYPE) is gl.VERTEX_SHADER
PASS gl.getShaderParameter(standardVert, gl.DELETE_STATUS) is false
PASS gl.getShaderParameter(standardVert, gl.COMPILE_STATUS) is true
PASS getShaderParameter correctly handled invalid parameter enums
PASS getError was expected value: NO_ERROR : 

Test getTexParameter
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER) is gl.NEAREST
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER) is gl.NEAREST
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S) is gl.CLAMP_TO_EDGE
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T) is gl.CLAMP_TO_EDGE
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_BASE_LEVEL) is 0
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC) is gl.LEQUAL
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE) is gl.COMPARE_REF_TO_TEXTURE
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_MAX_LEVEL) is 10
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_MAX_LOD) is 10
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_MIN_LOD) is 0
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_R) is gl.CLAMP_TO_EDGE
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_IMMUTABLE_FORMAT) is false
PASS gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_IMMUTABLE_LEVELS) is 0
PASS getTexParameter correctly handled invalid parameter enums
PASS getTexParameter correctly handled invalid target enums
PASS getError was expected value: NO_ERROR : 

Test getUniform with all variants of data types
Boolean uniform variables
PASS gl.getProgramParameter(boolProgram, gl.LINK_STATUS) is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getUniform(boolProgram, bvalLoc) is true
PASS gl.getUniform(boolProgram, bval2Loc) is [true, false]
PASS gl.getUniform(boolProgram, bval3Loc) is [true, false, true]
PASS gl.getUniform(boolProgram, bval4Loc) is [true, false, true, false]
PASS getError was expected value: NO_ERROR : 
Integer uniform variables
PASS gl.getProgramParameter(intProgram, gl.LINK_STATUS) is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getUniform(intProgram, ivalLoc) is 1
PASS gl.getUniform(intProgram, ival2Loc) is [2, 3]
PASS gl.getUniform(intProgram, ival3Loc) is [4, 5, 6]
PASS gl.getUniform(intProgram, ival4Loc) is [7, 8, 9, 10]
PASS getError was expected value: NO_ERROR : 
Float uniform variables
PASS gl.getProgramParameter(floatProgram, gl.LINK_STATUS) is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getUniform(floatProgram, fvalLoc) is 11
PASS gl.getUniform(floatProgram, fval2Loc) is [12, 13]
PASS gl.getUniform(floatProgram, fval3Loc) is [14, 15, 16]
PASS gl.getUniform(floatProgram, fval4Loc) is [17, 18, 19, 20]
PASS getError was expected value: NO_ERROR : 
Sampler uniform variables
PASS gl.getProgramParameter(samplerProgram, gl.LINK_STATUS) is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getUniform(samplerProgram, s2DValLoc) is 0
PASS gl.getUniform(samplerProgram, sCubeValLoc) is 1
PASS getError was expected value: NO_ERROR : 
Matrix uniform variables
PASS gl.getProgramParameter(matProgram, gl.LINK_STATUS) is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getUniform(matProgram, mval2Loc) is [1, 2, 3, 4]
PASS gl.getUniform(matProgram, mval3Loc) is [5, 6, 7, 8, 9, 10, 11, 12, 13]
PASS gl.getUniform(matProgram, mval4Loc) is [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
PASS getError was expected value: NO_ERROR : 
Unsigned Integer uniform variables
PASS gl.getProgramParameter(uintProgram, gl.LINK_STATUS) is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getUniform(uintProgram, uvalLoc) is 1
PASS gl.getUniform(uintProgram, uval2Loc) is [2, 3]
PASS gl.getUniform(uintProgram, uval3Loc) is [4, 5, 6]
PASS gl.getUniform(uintProgram, uval4Loc) is [7, 8, 9, 10]
PASS getError was expected value: NO_ERROR : 
Matrix uniform variables for WebGL 2
PASS getError was expected value: NO_ERROR : 
PASS gl.getProgramParameter(matForWebGL2Program, gl.LINK_STATUS) is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getUniform(matForWebGL2Program, mval2x3Loc) is [1, 2, 3, 4, 5, 6]
PASS gl.getUniform(matForWebGL2Program, mval2x4Loc) is [7, 8, 9, 10, 11, 12, 13, 14]
PASS gl.getUniform(matForWebGL2Program, mval3x2Loc) is [15, 16, 17, 18, 19, 20]
PASS gl.getUniform(matForWebGL2Program, mval3x4Loc) is [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]
PASS gl.getUniform(matForWebGL2Program, mval4x2Loc) is [33, 34, 35, 36, 37, 38, 39, 40]
PASS gl.getUniform(matForWebGL2Program, mval4x3Loc) is [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52]
PASS getError was expected value: NO_ERROR : 
Sampler uniform variables for WebGL2
PASS gl.getProgramParameter(samplerForWebGL2Program, gl.LINK_STATUS) is true
PASS getError was expected value: NO_ERROR : 
PASS gl.getUniform(samplerForWebGL2Program, s3DValLoc) is 0
PASS gl.getUniform(samplerForWebGL2Program, s2DArrayValLoc) is 1
PASS getError was expected value: NO_ERROR : 

test getVertexAttrib
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is buffer
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_ENABLED) is true
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_SIZE) is 4
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_STRIDE) is 0
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_TYPE) is gl.FLOAT
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_NORMALIZED) is false
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_DIVISOR) is 0
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_INTEGER) is false
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_DIVISOR) is 2
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_STRIDE) is 36
PASS gl.getVertexAttribOffset(1, gl.VERTEX_ATTRIB_ARRAY_POINTER) is 12
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_ENABLED) is false
PASS gl.getVertexAttrib(1, gl.CURRENT_VERTEX_ATTRIB) is [5, 6, 7, 8]
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_TYPE) is gl.INT
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_INTEGER) is true
PASS getError was expected value: NO_ERROR : 
PASS getVertexAttrib correctly handled invalid parameter enums
PASS getError was expected value: INVALID_VALUE : after evaluating: gl.getVertexAttrib(16, gl.CURRENT_VERTEX_ATTRIB)

Test cases where name == 0
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE
PASS getError was expected value: INVALID_OPERATION : 
PASS gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is gl.NONE
PASS gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) is null
PASS getError was expected value: NO_ERROR : 

Test getInternalformatParameter
PASS gl.getInternalformatParameter(gl.RENDERBUFFER, gl.R32I, gl.SAMPLES) is non-null.
PASS getError was expected value: NO_ERROR : 
PASS getInternalformatParameter correctly handled invalid target enums
PASS getInternalformatParameter correctly handled invalid pname enums
FAIL getInternalformatParameter returned 4,2 instead of null for invalid internalformat enum: 0x81a7

Test getIndexedParameter
PASS gl.getIndexedParameter(gl.TRANSFORM_FEEDBACK_BUFFER_BINDING, 0) is buffer
PASS gl.getIndexedParameter(gl.TRANSFORM_FEEDBACK_BUFFER_SIZE, 0) is 8
PASS gl.getIndexedParameter(gl.TRANSFORM_FEEDBACK_BUFFER_START, 0) is 4
PASS gl.getIndexedParameter(gl.UNIFORM_BUFFER_BINDING, 1) is buffer1
PASS gl.getIndexedParameter(gl.UNIFORM_BUFFER_SIZE, 1) is 8
PASS gl.getIndexedParameter(gl.UNIFORM_BUFFER_START, 1) is offsetUniform
PASS gl.getIndexedParameter(gl.UNIFORM_BUFFER_BINDING, 1) is null
PASS getIndexedParameter correctly handled invalid target enums

Test getSamplerParameter
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_COMPARE_FUNC) is gl.LEQUAL
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_COMPARE_MODE) is gl.COMPARE_REF_TO_TEXTURE
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_MAG_FILTER) is gl.NEAREST
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_MAX_LOD) is 10
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_MIN_FILTER) is gl.NEAREST
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_MIN_LOD) is 0
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_WRAP_R) is gl.CLAMP_TO_EDGE
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_WRAP_S) is gl.CLAMP_TO_EDGE
PASS gl.getSamplerParameter(sampler, gl.TEXTURE_WRAP_T) is gl.CLAMP_TO_EDGE
PASS getSamplerParameter correctly handled invalid pname enums

Test getSyncParameter
PASS gl.getSyncParameter(sync, gl.OBJECT_TYPE) is gl.SYNC_FENCE
PASS gl.getSyncParameter(sync, gl.SYNC_CONDITION) is gl.UNSIGNALED
PASS gl.getSyncParameter(sync, gl.SYNC_CONDITION) is gl.SYNC_GPU_COMMANDS_COMPLETE
PASS gl.getSyncParameter(sync, gl.SYNC_FLAGS) is 0
PASS getSyncParameter correctly handled invalid pname enums

Test getQueryParameter
PASS gl.getQueryParameter(query, gl.QUERY_RESULT_AVAILABLE) is false
PASS getQueryParameter correctly handled invalid pname enums

Test getFragDataLocation
PASS gl.getShaderParameter(vertShader, gl.COMPILE_STATUS) is true
PASS gl.getShaderParameter(fragShader, gl.COMPILE_STATUS) is true
PASS gl.getProgramParameter(program, gl.LINK_STATUS) is true
PASS gl.getFragDataLocation(program, "vertexColor") is -1
PASS gl.getFragDataLocation(program, "modelViewMatrix") is -1
PASS gl.getFragDataLocation(program, "projectionMatrix") is -1
PASS gl.getFragDataLocation(program, "position") is -1
PASS gl.getFragDataLocation(program, "fragColor") is 0

Test getActiveUniforms
PASS gl.getProgramParameter(program, gl.LINK_STATUS) is true
PASS gl.getError() is gl.NO_ERROR
PASS typeof rowMajors[i] is "boolean"
PASS typeof rowMajors[i] is "boolean"
PASS typeof rowMajors[i] is "boolean"
PASS getActiveUniforms correctly handled invalid pname enums

Test getUniformBlockIndex
PASS gl.getProgramParameter(program, gl.LINK_STATUS) is true
PASS gl.getUniformBlockIndex(program, "Transform") is 0
PASS gl.getUniformBlockIndex(program, "u_modelViewMatrix") is gl.INVALID_INDEX
PASS gl.getUniformBlockIndex(program, "normal") is gl.INVALID_INDEX
PASS gl.getUniformBlockIndex(program, "u_normal") is gl.INVALID_INDEX
PASS gl.getProgramParameter(noUniformProgram, gl.LINK_STATUS) is true
PASS gl.getUniformBlockIndex(noUniformProgram, "u_modelViewProjMatrix") is gl.INVALID_INDEX
PASS gl.getUniformBlockIndex(noUniformProgram, "u_normal") is gl.INVALID_INDEX

Test getActiveUniformBlockName
PASS gl.getProgramParameter(program, gl.LINK_STATUS) is true
PASS gl.getActiveUniformBlockName(program, 0) is "Transform"
PASS gl.getActiveUniformBlockName(program, -1) is null
PASS getError was expected value: INVALID_VALUE : 
PASS gl.getActiveUniformBlockName(program, 1) is null
PASS getError was expected value: INVALID_VALUE : 
PASS gl.getActiveUniformBlockName(program, gl.INVALID_INDEX) is null
PASS getError was expected value: INVALID_VALUE : 
PASS gl.getProgramParameter(noLinkProgram, gl.LINK_STATUS) is false
PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.getActiveUniformBlockName(noLinkProgram, 0)
PASS gl.getProgramParameter(noUniformProgram, gl.LINK_STATUS) is true
PASS gl.getActiveUniformBlockName(noUniformProgram, -1) is null
PASS getError was expected value: INVALID_VALUE : 
PASS gl.getActiveUniformBlockName(noUniformProgram, 0) is null
PASS getError was expected value: INVALID_VALUE : 
PASS gl.getActiveUniformBlockName(noUniformProgram, gl.INVALID_INDEX) is null
PASS getError was expected value: INVALID_VALUE : 

Test getActiveUniformBlockParameter
PASS gl.getProgramParameter(program, gl.LINK_STATUS) is true
PASS gl.getActiveUniformBlockParameter(program, 0, gl.UNIFORM_BLOCK_BINDING) is 0
PASS gl.getActiveUniformBlockParameter(program, 0, gl.UNIFORM_BLOCK_BINDING) is 1
PASS gl.getActiveUniformBlockParameter(program, 0, gl.UNIFORM_BLOCK_DATA_SIZE) >= 164 is true
PASS gl.getActiveUniformBlockParameter(program, 0, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS) is 3
PASS gl.getActiveUniformBlockParameter(program, 0, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER) is true
PASS gl.getActiveUniformBlockParameter(program, 0, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER) is false
PASS getActiveUniformBlockParameter correctly handled invalid pname enums
PASS getError was expected value: NO_ERROR : 
PASS successfullyParsed is true

TEST COMPLETE
Comment 2 Kimmo Kinnunen 2021-03-17 01:45:53 PDT
At least macOS 11.3, iMacPro1,1, Radeon Pro Vega 56
Comment 3 Radar WebKit Bug Importer 2021-03-24 00:40:14 PDT
<rdar://problem/75774327>
Comment 4 EWS 2022-08-10 02:13:24 PDT
Committed 253286@main (3728a98461ce): <https://commits.webkit.org/253286@main>

Reviewed commits have been landed. Closing PR #3141 and removing active labels.