summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webgl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--testing/web-platform/tests/webgl/META.yml2
-rw-r--r--testing/web-platform/tests/webgl/bufferSubData.html26
-rw-r--r--testing/web-platform/tests/webgl/common.js13
-rw-r--r--testing/web-platform/tests/webgl/compressedTexImage2D.html30
-rw-r--r--testing/web-platform/tests/webgl/compressedTexSubImage2D.html30
-rw-r--r--testing/web-platform/tests/webgl/idlharness.any.js15
-rw-r--r--testing/web-platform/tests/webgl/texImage2D.html20
-rw-r--r--testing/web-platform/tests/webgl/texSubImage2D.html20
-rw-r--r--testing/web-platform/tests/webgl/uniformMatrixNfv.html33
9 files changed, 189 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webgl/META.yml b/testing/web-platform/tests/webgl/META.yml
new file mode 100644
index 0000000000..8e6b680d91
--- /dev/null
+++ b/testing/web-platform/tests/webgl/META.yml
@@ -0,0 +1,2 @@
+suggested_reviewers:
+ - kenrussell
diff --git a/testing/web-platform/tests/webgl/bufferSubData.html b/testing/web-platform/tests/webgl/bufferSubData.html
new file mode 100644
index 0000000000..a97df9062d
--- /dev/null
+++ b/testing/web-platform/tests/webgl/bufferSubData.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<title>bufferSubData</title>
+<link rel=author href=mailto:Ms2ger@gmail.com title=Ms2ger>
+<link rel=help href=https://www.khronos.org/registry/webgl/specs/latest/#5.14.5>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=common.js></script>
+
+<div id=log></div>
+<script>
+test(function() {
+ var gl = getGl();
+ assert_equals(gl.getError(), WebGLRenderingContext.NO_ERROR);
+
+ var b = gl.createBuffer();
+ gl.bindBuffer(gl.ARRAY_BUFFER, b);
+
+ var a = new Float32Array(1);
+ gl.bufferData(gl.ARRAY_BUFFER, a, gl.STATIC_DRAW);
+
+ var nan = 0 / 0;
+ gl.bufferSubData(gl.ARRAY_BUFFER, nan, a);
+
+ assert_equals(gl.getError(), WebGLRenderingContext.NO_ERROR);
+});
+</script>
diff --git a/testing/web-platform/tests/webgl/common.js b/testing/web-platform/tests/webgl/common.js
new file mode 100644
index 0000000000..416c21ce93
--- /dev/null
+++ b/testing/web-platform/tests/webgl/common.js
@@ -0,0 +1,13 @@
+function getGl() {
+ var c = document.createElement("canvas");
+ var gl = c.getContext("experimental-webgl");
+ assert_true(!!gl, "Should be able to get a context.");
+ return gl;
+}
+
+function shouldGenerateGLError(cx, glError, fn) {
+ test(function() {
+ fn();
+ assert_equals(cx.getError(), glError);
+ }, "Calling " + fn + " should generate a " + glError + " error.");
+}
diff --git a/testing/web-platform/tests/webgl/compressedTexImage2D.html b/testing/web-platform/tests/webgl/compressedTexImage2D.html
new file mode 100644
index 0000000000..a974c65002
--- /dev/null
+++ b/testing/web-platform/tests/webgl/compressedTexImage2D.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<title>compressedTexImage2D</title>
+<link rel=author href=mailto:Ms2ger@gmail.com title=Ms2ger>
+<link rel=help href=https://www.khronos.org/registry/webgl/specs/latest/#5.14.8>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=common.js></script>
+
+<div id=log></div>
+<script>
+test(function() {
+ var COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
+ var gl = getGl();
+
+ var tex = gl.createTexture();
+ gl.bindTexture(gl.TEXTURE_2D, tex);
+
+ shouldGenerateGLError(gl, gl.INVALID_ENUM, function() {
+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 0, new Uint8Array(8));
+ });
+ shouldGenerateGLError(gl, gl.INVALID_ENUM, function() {
+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 0, new Uint8Array(8), null);
+ });
+ test(function() {
+ assert_throws_js(TypeError, function() {
+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 0);
+ });
+ }, "Should throw a TypeError when passing too few arguments.");
+});
+</script>
diff --git a/testing/web-platform/tests/webgl/compressedTexSubImage2D.html b/testing/web-platform/tests/webgl/compressedTexSubImage2D.html
new file mode 100644
index 0000000000..20c5ff9bd3
--- /dev/null
+++ b/testing/web-platform/tests/webgl/compressedTexSubImage2D.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<title>compressedTexSubImage2D</title>
+<link rel=author href=mailto:Ms2ger@gmail.com title=Ms2ger>
+<link rel=help href=https://www.khronos.org/registry/webgl/specs/latest/#5.14.8>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=common.js></script>
+
+<div id=log></div>
+<script>
+test(function() {
+ var COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
+ var gl = getGl();
+
+ var tex = gl.createTexture();
+ gl.bindTexture(gl.TEXTURE_2D, tex);
+
+ shouldGenerateGLError(gl, gl.INVALID_ENUM, function() {
+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 10, 10, COMPRESSED_RGB_S3TC_DXT1_EXT, new Uint8Array(8));
+ });
+ shouldGenerateGLError(gl, gl.INVALID_ENUM, function() {
+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 10, 10, COMPRESSED_RGB_S3TC_DXT1_EXT, new Uint8Array(8), null);
+ });
+ test(function() {
+ assert_throws_js(TypeError, function() {
+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 10, 10, COMPRESSED_RGB_S3TC_DXT1_EXT);
+ });
+ }, "Should throw a TypeError when passing too few arguments.");
+});
+</script>
diff --git a/testing/web-platform/tests/webgl/idlharness.any.js b/testing/web-platform/tests/webgl/idlharness.any.js
new file mode 100644
index 0000000000..d6131f4884
--- /dev/null
+++ b/testing/web-platform/tests/webgl/idlharness.any.js
@@ -0,0 +1,15 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+// META: timeout=long
+
+// https://www.khronos.org/registry/webgl/specs/latest/1.0/
+
+'use strict';
+
+idl_test(
+ ['webgl1', 'webgl2'],
+ ['dom'],
+ idl_array => {
+ // TODO: objects
+ }
+);
diff --git a/testing/web-platform/tests/webgl/texImage2D.html b/testing/web-platform/tests/webgl/texImage2D.html
new file mode 100644
index 0000000000..86b84d1a99
--- /dev/null
+++ b/testing/web-platform/tests/webgl/texImage2D.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<title>texImage2D</title>
+<link rel=author href=mailto:Ms2ger@gmail.com title=Ms2ger>
+<link rel=help href=https://www.khronos.org/registry/webgl/specs/latest/#5.14.8>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=common.js></script>
+
+<div id=log></div>
+<script>
+test(function() {
+ var gl = getGl();
+ assert_throws_js(TypeError, function() {
+ gl.texImage2D(0, 0, 0, 0, 0, window);
+ });
+ assert_throws_js(TypeError, function() {
+ gl.texImage2D(0, 0, 0, 0, 0, { get width() { throw 7 }, get height() { throw 7 }, data: new Uint8ClampedArray(10) });
+ });
+});
+</script>
diff --git a/testing/web-platform/tests/webgl/texSubImage2D.html b/testing/web-platform/tests/webgl/texSubImage2D.html
new file mode 100644
index 0000000000..7a6c209182
--- /dev/null
+++ b/testing/web-platform/tests/webgl/texSubImage2D.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<title>texSubImage2D</title>
+<link rel=author href=mailto:Ms2ger@gmail.com title=Ms2ger>
+<link rel=help href=https://www.khronos.org/registry/webgl/specs/latest/#5.14.8>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=common.js></script>
+
+<div id=log></div>
+<script>
+test(function() {
+ var gl = getGl();
+ assert_throws_js(TypeError, function() {
+ gl.texSubImage2D(0, 0, 0, 0, 0, 0, window);
+ });
+ assert_throws_js(TypeError, function() {
+ gl.texSubImage2D(0, 0, 0, 0, 0, 0, { get width() { throw 7 }, get height() { throw 7 }, data: new Uint8ClampedArray(10) });
+ });
+});
+</script>
diff --git a/testing/web-platform/tests/webgl/uniformMatrixNfv.html b/testing/web-platform/tests/webgl/uniformMatrixNfv.html
new file mode 100644
index 0000000000..f75cbcb997
--- /dev/null
+++ b/testing/web-platform/tests/webgl/uniformMatrixNfv.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<title>uniformMatrix*fv</title>
+<link rel=author href=mailto:Ms2ger@gmail.com title=Ms2ger>
+<link rel=help href=https://www.khronos.org/registry/webgl/specs/latest/#WebGLRenderingContext>
+<link rel=help href=http://dev.w3.org/2006/webapi/WebIDL/#es-boolean>
+<link rel=help href=http://es5.github.com/#x9.2>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=common.js></script>
+
+<div id=log></div>
+<script id="vshader" type="x-shader/x-vertex">
+uniform mat2 m2;
+uniform mat3 m3;
+uniform mat4 m4;
+</script>
+<script>
+var floatArray = function(n) {
+ var a = [];
+ for (var i = 0; i < n; ++i) {
+ a.push(1);
+ }
+ return a;
+};
+[2, 3, 4].forEach(function(n) {
+ test(function() {
+ var gl = getGl();
+ var f = "uniformMatrix" + n + "fv";
+ var loc = gl.getUniformLocation(gl.createProgram(), "m" + n);
+ gl[f](loc, { valueOf: function() { throw "Error"; } }, floatArray(n));
+ }, "Should not throw for " + n);
+});
+</script>