Skip to content

Commit 6a5ce36

Browse files
Trotttargos
authored andcommitted
test: handle unknown message type in worker threads
Check that main thread handles an unknown message type from a worker thread as expected. PR-URL: #27995 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent 1827256 commit 6a5ce36

2 files changed

Lines changed: 33 additions & 9 deletions

File tree

‎test/parallel/test-worker-message-not-serializable.js‎

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,19 @@
66
// expected.
77

88
constcommon=require('../common');
9-
common.skipIfWorker();
109

1110
constassert=require('assert');
1211

13-
const{ Worker, isMainThread }=require('worker_threads');
14-
if(isMainThread){
15-
constworker=newWorker(__filename);
16-
worker.on('error',common.mustCall((e)=>{
17-
assert.strictEqual(e.code,'ERR_WORKER_UNSERIALIZABLE_ERROR');
18-
}));
19-
}else{
12+
const{ Worker }=require('worker_threads');
13+
14+
constworker=newWorker(`
2015
const { internalBinding } = require('internal/test/binding');
2116
const { getEnvMessagePort } = internalBinding('worker');
2217
const { messageTypes } = require('internal/worker/io');
2318
const messagePort = getEnvMessagePort();
2419
messagePort.postMessage({ type: messageTypes.COULD_NOT_SERIALIZE_ERROR });
25-
}
20+
`,{eval: true});
21+
22+
worker.on('error',common.mustCall((e)=>{
23+
assert.strictEqual(e.code,'ERR_WORKER_UNSERIALIZABLE_ERROR');
24+
}));
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'use strict';
2+
3+
// Check that main thread handles an unknown message type from a worker thread
4+
// as expected.
5+
6+
require('../common');
7+
8+
constassert=require('assert');
9+
const{ spawnSync }=require('child_process');
10+
11+
const{ Worker }=require('worker_threads');
12+
if(process.argv[2]!=='spawned'){
13+
constresult=spawnSync(process.execPath,
14+
['--expose-internals',__filename,'spawned'],
15+
{encoding: 'utf8'});
16+
assert.ok(result.stderr.includes('Unknown worker message type FHQWHGADS'),
17+
`Expected error not found in: ${result.stderr}`);
18+
}else{
19+
newWorker(`
20+
const { internalBinding } = require('internal/test/binding');
21+
const { getEnvMessagePort } = internalBinding('worker');
22+
const messagePort = getEnvMessagePort();
23+
messagePort.postMessage({ type: 'FHQWHGADS' });
24+
`,{eval: true});
25+
}

0 commit comments

Comments
 (0)