PageRenderTime 139ms CodeModel.GetById 123ms app.highlight 11ms RepoModel.GetById 1ms app.codeStats 1ms

/sdk/tests/conformance/misc/error-reporting.html

https://github.com/JunJiang/WebGL
HTML | 97 lines | 64 code | 9 blank | 24 comment | 0 complexity | 5c384949ad358b534c66480759f2c091 MD5 | raw file
 1<!--
 2/*
 3** Copyright (c) 2012 The Khronos Group Inc.
 4**
 5** Permission is hereby granted, free of charge, to any person obtaining a
 6** copy of this software and/or associated documentation files (the
 7** "Materials"), to deal in the Materials without restriction, including
 8** without limitation the rights to use, copy, modify, merge, publish,
 9** distribute, sublicense, and/or sell copies of the Materials, and to
10** permit persons to whom the Materials are furnished to do so, subject to
11** the following conditions:
12**
13** The above copyright notice and this permission notice shall be included
14** in all copies or substantial portions of the Materials.
15**
16** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
23*/
24-->
25<!DOCTYPE html>
26<html>
27<head>
28<meta charset="utf-8">
29<link rel="stylesheet" href="../../resources/js-test-style.css"/>
30<script src="../../resources/js-test-pre.js"></script>
31<script src="../resources/webgl-test-utils.js"></script>
32</head>
33<body>
34<div id="description"></div>
35<div id="console"></div>
36
37<script>
38"use strict";
39description("Tests generation of synthetic and real GL errors");
40
41var wtu = WebGLTestUtils;
42var context = wtu.create3DContext();
43var program = wtu.loadStandardProgram(context);
44
45// Other tests in this directory like getActiveTest and
46// incorrect-context-object-behaviour already test the raising of many
47// synthetic GL errors. This test verifies the raising of certain
48// known real GL errors, and contains a few regression tests for bugs
49// discovered in the synthetic error generation and in the WebGL
50// implementation itself.
51
52wtu.glErrorShouldBe(context, context.NO_ERROR);
53
54debug("Testing getActiveAttrib");
55// Synthetic OpenGL error
56shouldBeNull("context.getActiveAttrib(null, 2)");
57wtu.glErrorShouldBe(context, context.INVALID_VALUE);
58// Error state should be clear by this point
59wtu.glErrorShouldBe(context, context.NO_ERROR);
60// Real OpenGL error
61shouldBeNull("context.getActiveAttrib(program, 2)");
62wtu.glErrorShouldBe(context, context.INVALID_VALUE);
63// Error state should be clear by this point
64wtu.glErrorShouldBe(context, context.NO_ERROR);
65
66debug("Testing getActiveUniform");
67// Synthetic OpenGL error
68shouldBeNull("context.getActiveUniform(null, 0)");
69wtu.glErrorShouldBe(context, context.INVALID_VALUE);
70// Error state should be clear by this point
71wtu.glErrorShouldBe(context, context.NO_ERROR);
72// Real OpenGL error
73shouldBeNull("context.getActiveUniform(program, 50)");
74wtu.glErrorShouldBe(context, context.INVALID_VALUE);
75// Error state should be clear by this point
76wtu.glErrorShouldBe(context, context.NO_ERROR);
77
78debug("Testing attempts to manipulate the default framebuffer");
79shouldBeUndefined("context.bindFramebuffer(context.FRAMEBUFFER, null)");
80wtu.glErrorShouldBe(context, context.NO_ERROR);
81shouldBeUndefined("context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null)");
82// Synthetic OpenGL error
83wtu.glErrorShouldBe(context, context.INVALID_OPERATION);
84// Error state should be clear by this point
85wtu.glErrorShouldBe(context, context.NO_ERROR);
86shouldBeUndefined("context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0)");
87// Synthetic OpenGL error
88wtu.glErrorShouldBe(context, context.INVALID_OPERATION);
89// Error state should be clear by this point
90wtu.glErrorShouldBe(context, context.NO_ERROR);
91
92var successfullyParsed = true;
93</script>
94
95<script src="../../resources/js-test-post.js"></script>
96</body>
97</html>