diff options
author | Jeremiah Senkpiel <fishrock123@rocketmail.com> | 2018-06-06 17:41:32 -0400 |
---|---|---|
committer | Jeremiah Senkpiel <fishrock123@rocketmail.com> | 2018-06-11 20:01:25 -0400 |
commit | b766af9ab97141bd2aa16a8b74e36c9526494a3d (patch) | |
tree | 95b8a4ef56ee01304a858336cadb45a45d682441 /test/parallel/test-worker-workerdata-sharedarraybuffer.js | |
parent | 921909961b06835d78c151efbccbc8f0a5784c61 (diff) | |
download | android-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.js | 32 |
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 '); +} |