<html>
<head>
<script src="../LayoutTests/fast/js/resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("Test to verify that serial allocation and dereferencing of large canvases will succeed");
// This is a manual test because it runs too slow as a LayoutTest, especially for GPU tests with mesa.
// 32 canvases of 8k x 8k will consume 8GB of RAM.
// Garbage collection should kick-in to prevent OOM failures.
for (var i = 0; i < 32; i++) {
var canvas = document.createElement('canvas');
canvas.width = 8192;
canvas.height = 8192;
// Draw to trigger lazy backing store allocation
var ctx = canvas.getContext('2d');
ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, 1, 1);
// Verify that allocation succeeded by verifying that draw succeeded
var imageData = ctx.getImageData(0, 0, 1, 1);
var imgdata = imageData.data;
shouldBe("imgdata[0]", "0");
shouldBe("imgdata[1]", "255");
shouldBe("imgdata[2]", "0");
}
</script>
<script src="../LayoutTests/fast/js/resources/js-test-post.js"></script>
</body>
</html>