PageRenderTime 17ms CodeModel.GetById 1ms app.highlight 11ms RepoModel.GetById 1ms app.codeStats 0ms

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

https://github.com/gabadie/WebGL
HTML | 98 lines | 65 code | 9 blank | 24 comment | 0 complexity | 74512f68c7f22eb6113fa0b1adca7b70 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.js"></script>
32<script src="../resources/webgl-test-utils.js"></script>
33</head>
34<body>
35<div id="description"></div>
36<div id="console"></div>
37
38<script>
39"use strict";
40description("Tests generation of synthetic and real GL errors");
41
42var wtu = WebGLTestUtils;
43var context = wtu.create3DContext();
44var program = wtu.loadStandardProgram(context);
45
46// Other tests in this directory like getActiveTest and
47// incorrect-context-object-behaviour already test the raising of many
48// synthetic GL errors. This test verifies the raising of certain
49// known real GL errors, and contains a few regression tests for bugs
50// discovered in the synthetic error generation and in the WebGL
51// implementation itself.
52
53glErrorShouldBe(context, context.NO_ERROR);
54
55debug("Testing getActiveAttrib");
56// Synthetic OpenGL error
57shouldBeNull("context.getActiveAttrib(null, 2)");
58glErrorShouldBe(context, context.INVALID_VALUE);
59// Error state should be clear by this point
60glErrorShouldBe(context, context.NO_ERROR);
61// Real OpenGL error
62shouldBeNull("context.getActiveAttrib(program, 2)");
63glErrorShouldBe(context, context.INVALID_VALUE);
64// Error state should be clear by this point
65glErrorShouldBe(context, context.NO_ERROR);
66
67debug("Testing getActiveUniform");
68// Synthetic OpenGL error
69shouldBeNull("context.getActiveUniform(null, 0)");
70glErrorShouldBe(context, context.INVALID_VALUE);
71// Error state should be clear by this point
72glErrorShouldBe(context, context.NO_ERROR);
73// Real OpenGL error
74shouldBeNull("context.getActiveUniform(program, 50)");
75glErrorShouldBe(context, context.INVALID_VALUE);
76// Error state should be clear by this point
77glErrorShouldBe(context, context.NO_ERROR);
78
79debug("Testing attempts to manipulate the default framebuffer");
80shouldBeUndefined("context.bindFramebuffer(context.FRAMEBUFFER, null)");
81glErrorShouldBe(context, context.NO_ERROR);
82shouldBeUndefined("context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null)");
83// Synthetic OpenGL error
84glErrorShouldBe(context, context.INVALID_OPERATION);
85// Error state should be clear by this point
86glErrorShouldBe(context, context.NO_ERROR);
87shouldBeUndefined("context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0)");
88// Synthetic OpenGL error
89glErrorShouldBe(context, context.INVALID_OPERATION);
90// Error state should be clear by this point
91glErrorShouldBe(context, context.NO_ERROR);
92
93var successfullyParsed = true;
94</script>
95
96<script src="../../resources/js-test-post.js"></script>
97</body>
98</html>