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.

Fixes: #13597
  • Loading branch information
Trott committed Jul 19, 2017
1 parent aa496f4 commit 64794dd
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 64794dd

Please sign in to comment.