diff options
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 }); +} |