blob: 018021ace4913b588e42e621f565eab9b5b8f3dd [file] [log] [blame]
'use strict';
const assert = require('assert');
module.exports = require('./common').runTest(test);
let skippedMessageShown = false;
function test ({ hasSharedArrayBuffer, sharedarraybuffer }) {
if (!hasSharedArrayBuffer) {
if (!skippedMessageShown) {
console.log(' >Skipped (no SharedArrayBuffer support)');
skippedMessageShown = true;
}
return;
}
{
const sab = new SharedArrayBuffer(16);
const ab = new ArrayBuffer(16);
const obj = {};
const arr = [];
assert.strictEqual(sharedarraybuffer.testIsSharedArrayBuffer(sab), true);
assert.strictEqual(sharedarraybuffer.testIsSharedArrayBuffer(ab), false);
assert.strictEqual(sharedarraybuffer.testIsSharedArrayBuffer(obj), false);
assert.strictEqual(sharedarraybuffer.testIsSharedArrayBuffer(arr), false);
assert.strictEqual(sharedarraybuffer.testIsSharedArrayBuffer(null), false);
assert.strictEqual(sharedarraybuffer.testIsSharedArrayBuffer(undefined), false);
}
{
const sab = sharedarraybuffer.testCreateSharedArrayBuffer(16);
assert(sab instanceof SharedArrayBuffer);
assert.strictEqual(sab.byteLength, 16);
}
{
const sab = new SharedArrayBuffer(32);
const byteLength = sharedarraybuffer.testGetSharedArrayBufferInfo(sab);
assert.strictEqual(byteLength, 32);
}
{
const sab = new SharedArrayBuffer(8);
const result = sharedarraybuffer.testSharedArrayBufferData(sab);
assert.strictEqual(result, true);
// Check if data was written correctly
const view = new Uint8Array(sab);
for (let i = 0; i < 8; i++) {
assert.strictEqual(view[i], i % 256);
}
}
}