tizen beta release
[framework/web/webkit-efl.git] / LayoutTests / fast / canvas / webgl / index-validation-verifies-too-many-indices.html
1 <html>
2 <head>
3 <script src="../../js/resources/js-test-pre.js"></script>
4 <script src="resources/webgl-test.js"></script>
5 </head>
6 <body>
7 <div id="description"></div>
8 <div id="console"></div>
9
10 <script>
11 description('Tests that index validation for drawElements does not examine too many indices');
12
13 var context = create3DContext();
14 var program = loadStandardProgram(context);
15
16 context.useProgram(program);
17 var vertexObject = context.createBuffer();
18 context.enableVertexAttribArray(0);
19 context.bindBuffer(context.ARRAY_BUFFER, vertexObject);
20 // 4 vertices -> 2 triangles
21 context.bufferData(context.ARRAY_BUFFER, new Float32Array([ 0,0,0, 0,1,0, 1,0,0, 1,1,0 ]), context.STATIC_DRAW);
22 context.vertexAttribPointer(0, 3, context.FLOAT, false, 0, 0);
23
24 var indexObject = context.createBuffer();
25
26 debug("Test out of range indices")
27 context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, indexObject);
28 context.bufferData(context.ELEMENT_ARRAY_BUFFER, new Uint16Array([ 10000, 0, 1, 2, 3, 10000 ]), context.STATIC_DRAW);
29 shouldGenerateGLError(context, context.NO_ERROR, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 2)");
30 shouldGenerateGLError(context, context.INVALID_OPERATION, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 0)");
31 shouldGenerateGLError(context, context.INVALID_OPERATION, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 4)");
32
33 debug("")
34 </script>
35
36 <script src="../../js/resources/js-test-post.js"></script>
37 </body>
38 </html>