| Index: third_party/WebKit/LayoutTests/fast/canvas/webgl/typed-arrays-in-workers.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/typed-arrays-in-workers.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/typed-arrays-in-workers.html
|
| deleted file mode 100644
|
| index f2b9ffbdba6cf1adbaf7b898d3a75ba0c9c3aed8..0000000000000000000000000000000000000000
|
| --- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/typed-arrays-in-workers.html
|
| +++ /dev/null
|
| @@ -1,280 +0,0 @@
|
| -<!--
|
| -
|
| -/*
|
| -** Copyright (c) 2013 The Khronos Group Inc.
|
| -**
|
| -** Permission is hereby granted, free of charge, to any person obtaining a
|
| -** copy of this software and/or associated documentation files (the
|
| -** "Materials"), to deal in the Materials without restriction, including
|
| -** without limitation the rights to use, copy, modify, merge, publish,
|
| -** distribute, sublicense, and/or sell copies of the Materials, and to
|
| -** permit persons to whom the Materials are furnished to do so, subject to
|
| -** the following conditions:
|
| -**
|
| -** The above copyright notice and this permission notice shall be included
|
| -** in all copies or substantial portions of the Materials.
|
| -**
|
| -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
| -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
| -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
| -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
| -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
| -*/
|
| -
|
| --->
|
| -
|
| -<!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/typed-array-test-cases.js"></script>
|
| -</head>
|
| -<body>
|
| -<div id="description"></div>
|
| -<div id="console"></div>
|
| -
|
| -<script>
|
| -"use strict";
|
| -
|
| -var testQueue = [];
|
| -var transferSupported = true;
|
| -
|
| -function nextTest() {
|
| - if (testQueue[0].subTests.length > 0) {
|
| - testQueue[0].subTests.shift();
|
| - }
|
| -
|
| - while (testQueue.length > 0 && testQueue[0].subTests.length == 0) {
|
| - testQueue.shift();
|
| - }
|
| -
|
| - if (testQueue.length == 0) {
|
| - finishTest();
|
| - return;
|
| - }
|
| -
|
| - testQueue[0].subTests[0].runner();
|
| -}
|
| -
|
| -function handleMessage(event) {
|
| - if (testQueue.length == 0)
|
| - return;
|
| -
|
| - if (testQueue[0].subTests.length == 0)
|
| - return;
|
| -
|
| - testQueue[0].subTests[0].checker(event);
|
| - nextTest();
|
| -}
|
| -
|
| -function setupTest(testCase, runner, checker) {
|
| - testCase.subTests.push({ runner: runner.bind(null, testCase), checker: checker.bind(null, testCase) });
|
| -}
|
| -
|
| -function arrayToString(arr) {
|
| - var result = "[ ";
|
| - for (var ii = 0; ii < arr.length; ++ii) {
|
| - if (ii > 0)
|
| - result += ", ";
|
| - result += arr[ii];
|
| - }
|
| - return result + " ]";
|
| -}
|
| -
|
| -function constructTypedArray(type, data) {
|
| - if (type == 'Int8Array') {
|
| - return new Int8Array(data);
|
| - } else if (type == 'Uint8Array') {
|
| - return new Uint8Array(data);
|
| - } else if (type == 'Uint8ClampedArray') {
|
| - return new Uint8ClampedArray(data);
|
| - } else if (type == 'Int16Array') {
|
| - return new Int16Array(data);
|
| - } else if (type == 'Uint16Array') {
|
| - return new Uint16Array(data);
|
| - } else if (type == 'Int32Array') {
|
| - return new Int32Array(data);
|
| - } else if (type == 'Uint32Array') {
|
| - return new Uint32Array(data);
|
| - } else if (type == 'Float32Array') {
|
| - return new Float32Array(data);
|
| - } else if (type == 'Float64Array') {
|
| - return new Float64Array(data);
|
| - }
|
| -}
|
| -
|
| -// Test runner / checker pairs
|
| -function runTestWithData(command, testCase) {
|
| - worker.postMessage({command: command, type: testCase.name, subType: testCase.subType, elementSizeInBytes: testCase.elementSizeInBytes, data: testCase.testValues});
|
| -}
|
| -
|
| -function checkArraysEqual(testKind, testCase, event) {
|
| - var array = event.data;
|
| - var testName = testKind + " " + testCase.name + " from worker to main thread";
|
| - if (areArraysEqual(array, testCase.expectedValues)) {
|
| - testPassed(testName);
|
| - } else {
|
| - testFailed(testName + ": expected " + arrayToString(testCase.expectedValues) + ", received " + arrayToString(array));
|
| - }
|
| -}
|
| -
|
| -function checkBufferContentsEqual(testKind, testCase, event) {
|
| - var array = constructTypedArray(testCase.name, event.data);
|
| - var testName = testKind + " containing " + testCase.name + " values from worker to main thread";
|
| - if (areArraysEqual(array, testCase.expectedValues)) {
|
| - testPassed(testName);
|
| - } else {
|
| - testFailed(testName + ": expected " + arrayToString(testCase.expectedValues) + ", received " + arrayToString(array));
|
| - }
|
| -}
|
| -
|
| -function checkDataViewContents(testKind, testCase, event) {
|
| - var dataView = event.data;
|
| - var testName = testKind + " " + testCase.name + " containing " + testCase.subType + " from worker to main thread";
|
| - var byteOffset = 0;
|
| - var allPassed = true;
|
| - for (var ii = 0; ii < testCase.expectedValues.length; ++ii) {
|
| - var expected = testCase.expectedValues[ii];
|
| - var received = dataView['get' + testCase.subType](byteOffset);
|
| - if (received != expected) {
|
| - allPassed = false;
|
| - testFailed(testName + ": at byte offset " + byteOffset + ": expected " + expected + ", received " + received);
|
| - }
|
| - byteOffset += testCase.elementSizeInBytes;
|
| - }
|
| - if (allPassed) {
|
| - testPassed(testName);
|
| - }
|
| -}
|
| -
|
| -// Missing test: copy or transfer ArrayBuffer, wrap in DataView on this end, verify contents.
|
| -
|
| -function noop() {
|
| -}
|
| -
|
| -function checkArraysEqualAndPingPong(testKind, transfer, testCase, event) {
|
| - checkArraysEqual(testKind, testCase, event);
|
| - var transferables = [];
|
| - if (transfer) {
|
| - transferables.push(event.data.buffer);
|
| - }
|
| - try {
|
| - worker.postMessage({ command: 'pong', data: event.data, transferables: transferables }, transferables);
|
| - } catch (e) {
|
| - testFailed("unexpected exception: " + e);
|
| - }
|
| -}
|
| -
|
| -function checkBufferContentsEqualAndPingPong(testKind, transfer, testCase, event) {
|
| - checkBufferContentsEqual(testKind, testCase, event);
|
| - var transferables = [];
|
| - if (transfer) {
|
| - transferables.push(event.data);
|
| - }
|
| - try {
|
| - worker.postMessage({ command: 'pong', data: event.data, transferables: transferables }, transferables);
|
| - } catch (e) {
|
| - testFailed("unexpected exception: " + e);
|
| - }
|
| -}
|
| -
|
| -function checkDataViewContentsAndPingPong(testKind, transfer, testCase, event) {
|
| - checkDataViewContents(testKind, testCase, event);
|
| - var transferables = [];
|
| - if (transfer) {
|
| - transferables.push(event.data.buffer);
|
| - }
|
| - try {
|
| - worker.postMessage({ command: 'pong', data: event.data, transferables: transferables }, transferables);
|
| - } catch (e) {
|
| - testFailed("unexpected exception: " + e);
|
| - }
|
| -}
|
| -
|
| -description("Tests copying and transferring typed arrays and ArrayBuffers to and from workers");
|
| -
|
| -// See whether workers are supported at all
|
| -if (window.Worker) {
|
| - if (window.initNonKhronosFramework)
|
| - window.initNonKhronosFramework(true);
|
| -
|
| - // Start up the worker
|
| - var worker = new Worker('resources/typed-array-worker.js');
|
| - worker.onmessage = handleMessage;
|
| -
|
| - // See whether transferables are supported
|
| - var buffer = new ArrayBuffer(16);
|
| - try {
|
| - worker.postMessage({ command: 'ignore', data: buffer }, [buffer]);
|
| - if (buffer.byteLength > 0)
|
| - transferSupported = false;
|
| - } catch (e) {
|
| - transferSupported = false;
|
| - }
|
| -
|
| - // Iterate down the tests, queueing them up
|
| - for (var ii = 0; ii < testCases.length; ++ii) {
|
| - var testCase = testCases[ii];
|
| - testCase.subTests = [];
|
| - setupTest(testCase, runTestWithData.bind(null, 'copy'), checkArraysEqual.bind(null, 'copy'));
|
| - setupTest(testCase, runTestWithData.bind(null, 'copyBuffer'), checkBufferContentsEqual.bind(null, 'copy ArrayBuffer'));
|
| - setupTest(testCase, runTestWithData.bind(null, 'transfer'), checkArraysEqual.bind(null, 'transfer'));
|
| - setupTest(testCase, runTestWithData.bind(null, 'transferBuffer'), checkBufferContentsEqual.bind(null, 'transfer ArrayBuffer'));
|
| -
|
| - // These two must run back-to-back
|
| - setupTest(testCase, runTestWithData.bind(null, 'copy'), checkArraysEqualAndPingPong.bind(null, 'copy', false));
|
| - setupTest(testCase, noop, checkArraysEqual.bind(null, 'ping-pong with copy'));
|
| -
|
| - // These two must run back-to-back
|
| - setupTest(testCase, runTestWithData.bind(null, 'copyBuffer'), checkBufferContentsEqualAndPingPong.bind(null, 'copy ArrayBuffer', false));
|
| - setupTest(testCase, noop, checkBufferContentsEqual.bind(null, 'ping-pong with copy'));
|
| -
|
| - // These two must run back-to-back
|
| - setupTest(testCase, runTestWithData.bind(null, 'transfer'), checkArraysEqualAndPingPong.bind(null, 'transfer', true));
|
| - setupTest(testCase, noop, checkArraysEqual.bind(null, 'ping-pong with transfer'));
|
| -
|
| - // These two must run back-to-back
|
| - setupTest(testCase, runTestWithData.bind(null, 'transferBuffer'), checkBufferContentsEqualAndPingPong.bind(null, 'transfer ArrayBuffer', false));
|
| - setupTest(testCase, noop, checkBufferContentsEqual.bind(null, 'ping-pong with transfer'));
|
| -
|
| - testQueue.push(testCase);
|
| -
|
| - // Add just a couple of DataView tests; the behavior of that view type is thoroughly tested elsewhere
|
| - if (testCase.name == "Float32Array" || testCase.name == "Int32Array") {
|
| - var subTypeName = (testCase.name == "Float32Array" ? "Float32" : "Int32");
|
| - var dataViewTestCase = { name: "DataView",
|
| - subType: subTypeName,
|
| - elementSizeInBytes: testCase.elementSizeInBytes,
|
| - testValues: testCase.testValues,
|
| - expectedValues: testCase.expectedValues,
|
| - subTests: [] };
|
| - setupTest(dataViewTestCase, runTestWithData.bind(null, 'copy'), checkDataViewContents.bind(null, 'copy'));
|
| - setupTest(dataViewTestCase, runTestWithData.bind(null, 'transfer'), checkDataViewContents.bind(null, 'transfer'));
|
| -
|
| - // These two must run back-to-back
|
| - setupTest(dataViewTestCase, runTestWithData.bind(null, 'copy'), checkDataViewContentsAndPingPong.bind(null, 'copy', false));
|
| - setupTest(dataViewTestCase, noop, checkDataViewContents.bind(null, 'ping-pong with copy'));
|
| -
|
| - // These two must run back-to-back
|
| - setupTest(dataViewTestCase, runTestWithData.bind(null, 'transfer'), checkDataViewContentsAndPingPong.bind(null, 'transfer', false));
|
| - setupTest(dataViewTestCase, noop, checkDataViewContents.bind(null, 'ping-pong with transfer'));
|
| -
|
| - testQueue.push(dataViewTestCase);
|
| - }
|
| - }
|
| -
|
| - // Kick things off
|
| - testQueue[0].subTests[0].runner();
|
| -} else {
|
| - debug("Workers not supported -- skipping test");
|
| - finishTest();
|
| -}
|
| -
|
| -var successfullyParsed = true;
|
| -</script>
|
| -</body>
|
| -</html>
|
|
|