diff options
author | Rich Trott <rtrott@gmail.com> | 2019-05-31 16:50:00 +0200 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-06-02 17:50:35 +0200 |
commit | 04053c4124b095bddd28e7b968761b51896a7d83 (patch) | |
tree | 4d414aea255002c91d556fae4a1a4158c9a28fa8 /test/parallel/test-worker-message-not-serializable.js | |
parent | df339bccf24839da473937bd523602cf68b114af (diff) | |
download | android-node-v8-04053c4124b095bddd28e7b968761b51896a7d83.tar.gz android-node-v8-04053c4124b095bddd28e7b968761b51896a7d83.tar.bz2 android-node-v8-04053c4124b095bddd28e7b968761b51896a7d83.zip |
test: add coverage for unserializable worker thread error
Check that the main thread handles unserializable errors in a worker
thread as expected.
PR-URL: https://github.com/nodejs/node/pull/27995
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Diffstat (limited to 'test/parallel/test-worker-message-not-serializable.js')
-rw-r--r-- | test/parallel/test-worker-message-not-serializable.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/parallel/test-worker-message-not-serializable.js b/test/parallel/test-worker-message-not-serializable.js new file mode 100644 index 0000000000..875cc1d58a --- /dev/null +++ b/test/parallel/test-worker-message-not-serializable.js @@ -0,0 +1,25 @@ +'use strict'; + +// Flags: --expose-internals + +// Check that main thread handles unserializable errors in a worker thread as +// expected. + +const common = require('../common'); +common.skipIfWorker(); + +const assert = require('assert'); + +const { Worker, isMainThread } = require('worker_threads'); +if (isMainThread) { + const worker = new Worker(__filename); + worker.on('error', common.mustCall((e) => { + assert.strictEqual(e.code, 'ERR_WORKER_UNSERIALIZABLE_ERROR'); + })); +} else { + const { internalBinding } = require('internal/test/binding'); + const { getEnvMessagePort } = internalBinding('worker'); + const { messageTypes } = require('internal/worker/io'); + const messagePort = getEnvMessagePort(); + messagePort.postMessage({ type: messageTypes.COULD_NOT_SERIALIZE_ERROR }); +} |