91 lines
2.1 KiB
HTML
91 lines
2.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
function getOrCreate(id, tagName)
|
|
{
|
|
var element = document.getElementById(id);
|
|
if (element)
|
|
return element;
|
|
|
|
element = document.createElement(tagName);
|
|
element.id = id;
|
|
var parent = document.body || document.documentElement;
|
|
var refNode = parent.firstChild;
|
|
|
|
parent.insertBefore(element, refNode);
|
|
return element;
|
|
}
|
|
|
|
function debug(msg)
|
|
{
|
|
var span = document.createElement("span");
|
|
getOrCreate("console", "div").appendChild(span); // insert it first so XHTML knows the namespace
|
|
span.innerHTML = msg + '<br />';
|
|
}
|
|
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
var verbose = false;
|
|
|
|
var sab = new SharedArrayBuffer(100 * 4);
|
|
|
|
var memory = new Int32Array(sab);
|
|
|
|
var numWorkers = 0;
|
|
function startWorker(file)
|
|
{
|
|
if (verbose)
|
|
debug("Starting worker: " + file);
|
|
numWorkers++;
|
|
var worker = new Worker(file);
|
|
worker.onmessage = function(event) {
|
|
if (event.data == "done") {
|
|
if (verbose)
|
|
debug("Finished worker: " + file);
|
|
if (--numWorkers)
|
|
return;
|
|
debug("All workers done!");
|
|
done();
|
|
return;
|
|
}
|
|
if (event.data.indexOf("Error") == 0) {
|
|
debug("Test failed: "+ event.data);
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
}
|
|
|
|
if (verbose)
|
|
debug("Event from " + file + ": " + event.data);
|
|
};
|
|
worker.postMessage(memory);
|
|
}
|
|
|
|
function done()
|
|
{
|
|
for (var i = 0; i < 3; ++i) {
|
|
if (memory[i] != 1)
|
|
throw "Error: Bad value at memory[" + i + "]: " + memory[i];
|
|
}
|
|
for (var i = 3; i < memory.length; ++i) {
|
|
if (memory[i] != 0)
|
|
throw "Error: Bad value at memory[" + i + "]: " + memory[i];
|
|
}
|
|
debug("Test passed!");
|
|
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
}
|
|
|
|
startWorker("simple-worker-1.js");
|
|
startWorker("simple-worker-2.js");
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|