summaryrefslogtreecommitdiff
path: root/test/parallel/test-worker-workerdata-sharedarraybuffer.js
diff options
context:
space:
mode:
authorJeremiah Senkpiel <fishrock123@rocketmail.com>2018-06-06 17:41:32 -0400
committerJeremiah Senkpiel <fishrock123@rocketmail.com>2018-06-11 20:01:25 -0400
commitb766af9ab97141bd2aa16a8b74e36c9526494a3d (patch)
tree95b8a4ef56ee01304a858336cadb45a45d682441 /test/parallel/test-worker-workerdata-sharedarraybuffer.js
parent921909961b06835d78c151efbccbc8f0a5784c61 (diff)
downloadandroid-node-v8-b766af9ab97141bd2aa16a8b74e36c9526494a3d.tar.gz
android-node-v8-b766af9ab97141bd2aa16a8b74e36c9526494a3d.tar.bz2
android-node-v8-b766af9ab97141bd2aa16a8b74e36c9526494a3d.zip
test: add workerdata-sharedarraybuffer test
This functionality works but was previously untested. PR-URL: https://github.com/nodejs/node/pull/21180 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Minwoo Jung <minwoo@nodesource.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-worker-workerdata-sharedarraybuffer.js')
-rw-r--r--test/parallel/test-worker-workerdata-sharedarraybuffer.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/parallel/test-worker-workerdata-sharedarraybuffer.js b/test/parallel/test-worker-workerdata-sharedarraybuffer.js
new file mode 100644
index 0000000000..09de361236
--- /dev/null
+++ b/test/parallel/test-worker-workerdata-sharedarraybuffer.js
@@ -0,0 +1,32 @@
+// Flags: --expose-gc --experimental-worker
+'use strict';
+
+const common = require('../common');
+const assert = require('assert');
+const { Worker } = require('worker_threads');
+
+{
+ const sharedArrayBuffer = new SharedArrayBuffer(12);
+ const local = Buffer.from(sharedArrayBuffer);
+
+ const w = new Worker(`
+ const { parentPort, workerData } = require('worker_threads');
+ const local = Buffer.from(workerData.sharedArrayBuffer);
+
+ parentPort.on('message', () => {
+ local.write('world!', 6);
+ parentPort.postMessage('written!');
+ });
+ `, {
+ eval: true,
+ workerData: { sharedArrayBuffer }
+ });
+ w.on('message', common.mustCall(() => {
+ assert.strictEqual(local.toString(), 'Hello world!');
+ global.gc();
+ w.terminate();
+ }));
+ w.postMessage({});
+ // This would be a race condition if the memory regions were overlapping
+ local.write('Hello ');
+}