Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
1 <!--
2 Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file.
5 -->
6 <!DOCTYPE html>
7 <html>
8 <head>
9 <meta charset="utf-8">
10 <link rel="stylesheet" href="../../resources/js-test-style.css"/>
11 <script src="../../resources/js-test-pre.js"></script>
12 <script src="../resources/webgl-test.js"></script>
13 </head>
14 <body>
15 <div id="description"></div>
16 <div id="console"></div>
18 <script>
19 description("Test bufferData/bufferSubData with ArrayBuffer input");
21 debug('Regression test for <a href="https://bugs.webkit.org/show_bug.cgi?id=41884">https://bugs.webkit.org/show_bug.cgi?id=41884</a> : <code>Implement bufferData and bufferSubData with ArrayBuffer as input</code>');
23 var gl = create3DContext();
24 shouldBeNonNull("gl");
26 var array = new ArrayBuffer(128);
27 shouldBeNonNull("array");
29 var buf = gl.createBuffer();
30 shouldBeNonNull("buf");
32 gl.bufferData(gl.ARRAY_BUFFER, array, gl.STATIC_DRAW);
33 glErrorShouldBe(gl, gl.INVALID_OPERATION);
35 gl.bindBuffer(gl.ARRAY_BUFFER, buf);
36 glErrorShouldBe(gl, gl.NO_ERROR);
38 gl.bufferData(gl.ARRAY_BUFFER, -10, gl.STATIC_DRAW);
39 glErrorShouldBe(gl, gl.INVALID_VALUE);
41 // This should not crash, but the selection of the overload is ambiguous per Web IDL.
42 gl.bufferData(gl.ARRAY_BUFFER, null, gl.STATIC_DRAW);
43 gl.getError();
45 gl.bufferData(gl.ARRAY_BUFFER, array, gl.STATIC_DRAW);
46 glErrorShouldBe(gl, gl.NO_ERROR);
48 array = new ArrayBuffer(64);
50 gl.bufferSubData(gl.ARRAY_BUFFER, -10, array);
51 glErrorShouldBe(gl, gl.INVALID_VALUE);
53 gl.bufferSubData(gl.ARRAY_BUFFER, -10, new Float32Array(8));
54 glErrorShouldBe(gl, gl.INVALID_VALUE);
56 gl.bufferSubData(gl.ARRAY_BUFFER, 10, array);
57 glErrorShouldBe(gl, gl.NO_ERROR);
59 gl.bufferSubData(gl.ARRAY_BUFFER, 10, null);
60 glErrorShouldBe(gl, gl.NO_ERROR);
62 successfullyParsed = true;
63 </script>
65 <script>finishTest();</script>
66 </body>
67 </html>