diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/webgl | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/webgl')
-rw-r--r-- | testing/web-platform/tests/webgl/META.yml | 2 | ||||
-rw-r--r-- | testing/web-platform/tests/webgl/bufferSubData.html | 26 | ||||
-rw-r--r-- | testing/web-platform/tests/webgl/common.js | 13 | ||||
-rw-r--r-- | testing/web-platform/tests/webgl/compressedTexImage2D.html | 30 | ||||
-rw-r--r-- | testing/web-platform/tests/webgl/compressedTexSubImage2D.html | 30 | ||||
-rw-r--r-- | testing/web-platform/tests/webgl/idlharness.any.js | 15 | ||||
-rw-r--r-- | testing/web-platform/tests/webgl/texImage2D.html | 20 | ||||
-rw-r--r-- | testing/web-platform/tests/webgl/texSubImage2D.html | 20 | ||||
-rw-r--r-- | testing/web-platform/tests/webgl/uniformMatrixNfv.html | 33 |
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> |