58 lines
1.6 KiB
HTML
58 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script src="../../../resources/js-test.js"></script>
|
|
<script src="resources/webgl-test.js"> </script>
|
|
<script src="resources/webgl-test-utils.js"> </script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
var wtu = WebGLTestUtils;
|
|
// Ideally we would make this test run far longer, but we need to keep
|
|
// it within a reasonable per-test timeout.
|
|
var target = 8;
|
|
var count = 0;
|
|
|
|
if (window.initNonKhronosFramework) {
|
|
window.initNonKhronosFramework(true);
|
|
}
|
|
|
|
description('Test that contexts are freed and garbage collected reasonably');
|
|
doNextTest();
|
|
|
|
// Creates a canvas and some textures then exits. There are
|
|
// no references to either so all should be garbage collected.
|
|
function test() {
|
|
var canvas = document.createElement("canvas");
|
|
// This is safe for any device. See drawingBufferWidth in spec.
|
|
canvas.width = 2048;
|
|
canvas.height = 2048;
|
|
var gl = wtu.create3DContext(canvas);
|
|
var maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);
|
|
var size = Math.min(1024, maxTextureSize);
|
|
for (var jj = 0; jj < 5; ++jj) {
|
|
var tex = gl.createTexture();
|
|
gl.bindTexture(gl.TEXTURE_2D, tex);
|
|
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, size, size, 0, gl.RGBA, gl.UNSIGNED_BYTE,
|
|
new Uint8Array(size * size * 4));
|
|
}
|
|
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors");
|
|
}
|
|
|
|
function doNextTest() {
|
|
++count;
|
|
debug("test " + count + " of " + target);
|
|
test();
|
|
if (count < target) {
|
|
setTimeout(doNextTest, 100);
|
|
} else {
|
|
finishTest();
|
|
}
|
|
}
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|