diff --git a/test/parallel/test-net-write-after-close.js b/test/parallel/test-net-write-after-close.js index cc96cb3a4cda97..05669e476c7670 100644 --- a/test/parallel/test-net-write-after-close.js +++ b/test/parallel/test-net-write-after-close.js @@ -21,24 +21,31 @@ 'use strict'; const common = require('../common'); + const net = require('net'); +let serverSocket; + const server = net.createServer(common.mustCall(function(socket) { + serverSocket = socket; + socket.resume(); socket.on('error', common.mustCall(function(error) { - console.error('got error, closing server', error); + console.error('received error as expected, closing server', error); server.close(); })); - - setTimeout(common.mustCall(function() { - console.error('about to try to write'); - socket.write('test', common.mustCall()); - }), 250); })); server.listen(0, function() { const client = net.connect(this.address().port, function() { + // cliend.end() will close both the readable and writable side + // of the duplex because allowHalfOpen defaults to false. + // Then 'end' will be emitted when it receives a FIN packet from + // the other side. + client.on('end', common.mustCall(() => { + serverSocket.write('test', common.mustCall()); + })); client.end(); }); });