65 lines
2.4 KiB
HTML
65 lines
2.4 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test.js"></script>
|
|
<script src="resources/webgl-test.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="description"></div>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
description("Tests generation of synthetic and real GL errors");
|
|
|
|
if (window.internals)
|
|
window.internals.settings.setWebGLErrorsToConsoleEnabled(false);
|
|
|
|
var context = create3DContext();
|
|
var program = loadStandardProgram(context);
|
|
|
|
// Other tests in this directory like getActiveTest and
|
|
// incorrect-context-object-behaviour already test the raising of many
|
|
// synthetic GL errors. This test verifies the raising of certain
|
|
// known real GL errors, and contains a few regression tests for bugs
|
|
// discovered in the synthetic error generation and in the WebGL
|
|
// implementation itself.
|
|
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
|
|
debug("Testing getActiveAttrib");
|
|
shouldThrow("context.getActiveAttrib(null, 2)");
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
// Error state should be clear by this point
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
// Real OpenGL error
|
|
shouldBeNull("context.getActiveAttrib(program, 2)");
|
|
glErrorShouldBe(context, context.INVALID_VALUE);
|
|
// Error state should be clear by this point
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
|
|
debug("Testing getActiveUniform");
|
|
shouldThrow("context.getActiveUniform(null, 0)");
|
|
// Error state should be clear by this point
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
// Real OpenGL error
|
|
shouldBeNull("context.getActiveUniform(program, 50)");
|
|
glErrorShouldBe(context, context.INVALID_VALUE);
|
|
// Error state should be clear by this point
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
|
|
debug("Testing attempts to manipulate the default framebuffer");
|
|
shouldBeUndefined("context.bindFramebuffer(context.FRAMEBUFFER, null)");
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
shouldBeUndefined("context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null)");
|
|
// Synthetic OpenGL error
|
|
glErrorShouldBe(context, context.INVALID_OPERATION);
|
|
// Error state should be clear by this point
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
shouldBeUndefined("context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0)");
|
|
// Synthetic OpenGL error
|
|
glErrorShouldBe(context, context.INVALID_OPERATION);
|
|
// Error state should be clear by this point
|
|
glErrorShouldBe(context, context.NO_ERROR);
|
|
</script>
|
|
</body>
|
|
</html>
|