mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
104 lines
2.9 KiB
HTML
104 lines
2.9 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>texImage2D and texSubImage2D tests with invalid data</title>
|
|
<link rel="stylesheet" href="../resources/js-test-style.css"/>
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
<script src="resources/webgl-test.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="description"></div>
|
|
<div id="console"></div>
|
|
<canvas id="canvas" width="2" height="2"> </canvas>
|
|
<script type="text/javascript">
|
|
description("texImage2D and texSubImage2D tests with invalid data");
|
|
|
|
var canvas = document.getElementById("canvas");
|
|
var gl = create3DContext(canvas);
|
|
if (!gl)
|
|
testFailed("Context created.");
|
|
else
|
|
testPassed("Context created.");
|
|
|
|
var tex;
|
|
|
|
function setup() {
|
|
tex = gl.createTexture();
|
|
gl.bindTexture(gl.TEXTURE_2D, bug32619_tests.tex);
|
|
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 64, 64, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
|
|
}
|
|
|
|
function teardown() {
|
|
gl.deleteTexture(tex);
|
|
}
|
|
|
|
function test(desc, func, expected) {
|
|
debug(desc);
|
|
|
|
var exc = null;
|
|
try {
|
|
func();
|
|
} catch (x) {
|
|
exc = x;
|
|
}
|
|
|
|
if (expected == gl.INVALID_OPERATION) {
|
|
glErrorShouldBe(gl, expected);
|
|
} else if (expected == "exception") {
|
|
if (exc) {
|
|
testPassed("threw exception");
|
|
} else {
|
|
testFailed("did not throw exception");
|
|
}
|
|
}
|
|
}
|
|
|
|
test("Passing a buffer not large enough to texImage2D should generate an INVALID_OPERATION",
|
|
function () {
|
|
var tooSmall = new Uint8Array(64);
|
|
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 64, 64, 0, gl.RGBA, gl.UNSIGNED_BYTE, tooSmall);
|
|
},
|
|
gl.INVALID_OPERATION);
|
|
|
|
test("Passing texImage2D parameter data of Number type should throw an exception",
|
|
function () {
|
|
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 64, 64, 0, gl.RGBA, gl.UNSIGNED_BYTE, 42);
|
|
},
|
|
"exception");
|
|
|
|
test("Passing texImage2D parameter data of String type should throw a TypeError",
|
|
function () {
|
|
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 64, 64, 0, gl.RGBA, gl.UNSIGNED_BYTE, "not a buffer");
|
|
},
|
|
"exception");
|
|
test("Passing a buffer not large enough to texSubImage2D should generate an INVALID_OPERATION",
|
|
function () {
|
|
var tooSmall = new Uint8Array(64);
|
|
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 64, 64, gl.RGBA, gl.UNSIGNED_BYTE, tooSmall);
|
|
},
|
|
gl.INVALID_OPERATION);
|
|
|
|
test("Passing texSubImage2D parameter data of Number type should throw a TypeError",
|
|
function () {
|
|
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 64, 64, gl.RGBA, gl.UNSIGNED_BYTE, 42);
|
|
},
|
|
"exception");
|
|
|
|
test("Passing texSubImage2D parameter data of String type should throw a TypeError",
|
|
function () {
|
|
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 64, 64, gl.RGBA, gl.UNSIGNED_BYTE, "not a buffer");
|
|
},
|
|
"exception");
|
|
|
|
debug("");
|
|
successfullyParsed = true;
|
|
</script>
|
|
<script src="../resources/js-test-post.js"></script>
|
|
<script>
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|
|
|