Skip to content

Commit

Permalink
test: fix flaky test-net-write-after-close
Browse files Browse the repository at this point in the history
Replace 250ms timer with event-based logic to make test robust.

PR-URL: #14361
Fixes: #13597
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
Trott committed Jul 21, 2017
1 parent 27343cc commit 43bd47c
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions test/parallel/test-net-write-after-close.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
});
});

0 comments on commit 43bd47c

Please sign in to comment.