diff --git a/test/parallel/test-net-socket-constructor.js b/test/parallel/test-net-socket-constructor.js index ec2e99deb84880..90b0907f488a9a 100644 --- a/test/parallel/test-net-socket-constructor.js +++ b/test/parallel/test-net-socket-constructor.js @@ -2,6 +2,7 @@ const common = require('../common'); const assert = require('assert'); +const cluster = require('cluster'); const net = require('net'); common.expectsError(() => { @@ -25,27 +26,40 @@ function test(sock, readable, writable) { assert.strictEqual(socket.writable, writable); } -test(undefined, false, false); +if (cluster.isMaster) { + test(undefined, false, false); -const server = net.createServer(common.mustCall((socket) => { - test(socket, true, true); - test({ handle: socket._handle }, false, false); - test({ handle: socket._handle, readable: true, writable: true }, true, true); - if (socket._handle.fd >= 0) { - test(socket._handle.fd, false, false); - test({ fd: socket._handle.fd }, false, false); - test({ fd: socket._handle.fd, readable: true, writable: true }, true, true); - } + const server = net.createServer(common.mustCall((socket) => { + socket.unref(); + test(socket, true, true); + test({ handle: socket._handle }, false, false); + test({ handle: socket._handle, readable: true, writable: true }, + true, true); + server.close(); + })); - server.close(); -})); + server.listen(common.mustCall(() => { + const { port } = server.address(); + const socket = net.connect(port, common.mustCall(() => { + test(socket, true, true); + socket.end(); + })); -server.listen(common.mustCall(() => { - const { port } = server.address(); - const socket = net.connect(port, common.mustCall(() => { - test(socket, true, true); - socket.end(); + test(socket, false, true); })); - test(socket, false, true); -})); + cluster.setupMaster({ + stdio: ['pipe', 'pipe', 'pipe', 'ipc', 'pipe', 'pipe', 'pipe'] + }); + + const worker = cluster.fork(); + worker.on('exit', common.mustCall((code, signal) => { + assert.strictEqual(code, 0); + assert.strictEqual(signal, null); + })); +} else { + test(4, false, false); + test({ fd: 5 }, false, false); + test({ fd: 6, readable: true, writable: true }, true, true); + process.disconnect(); +}