Skip to content

Commit

Permalink
test: fix child-process-fork-regr-gh-2847
Browse files Browse the repository at this point in the history
The test would sometimes time out on some platforms. Take the initial
version of the test and instead of sending 100 handles, just send 2.
It still fails when run with the code before the change was introduced
and passes afterwards.
Remove test from parallel.status.
  • Loading branch information
santigimeno committed Feb 6, 2016
1 parent 6e3bccb commit 65de3e4
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 33 deletions.
1 change: 0 additions & 1 deletion test/parallel/parallel.status
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ test-tick-processor : PASS,FLAKY

[$system==linux]
test-tick-processor : PASS,FLAKY
test-child-process-fork-regr-gh-2847 : PASS,FLAKY

[$system==macos]

Expand Down
35 changes: 3 additions & 32 deletions test/parallel/test-child-process-fork-regr-gh-2847.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ const assert = require('assert');
const cluster = require('cluster');
const net = require('net');

var connectcount = 0;
var sendcount = 0;

if (!cluster.isMaster) {
// Exit on first received handle to leave the queue non-empty in master
process.on('message', function() {
Expand All @@ -18,13 +15,6 @@ if (!cluster.isMaster) {
}

var server = net.createServer(function(s) {
if (common.isWindows) {
s.on('error', function(err) {
// Prevent possible ECONNRESET errors from popping up
if (err.code !== 'ECONNRESET' || sendcount === 0)
throw err;
});
}
setTimeout(function() {
s.destroy();
}, 100);
Expand All @@ -34,21 +24,6 @@ var server = net.createServer(function(s) {
function send(callback) {
var s = net.connect(common.PORT, function() {
worker.send({}, s, callback);
connectcount++;
});

// Errors can happen if the connections
// are still happening while the server has been closed.
// This can happen depending on how the messages are
// bundled into packets. If they all make it into the first
// one then no errors will occur, otherwise the server
// may have been closed by the time the later ones make
// it to the server side.
// We ignore any errors that occur after some connections
// get through
s.on('error', function(err) {
if (connectcount < 3)
console.log(err);
});
}

Expand All @@ -58,11 +33,7 @@ var server = net.createServer(function(s) {
server.close();
}));

// Queue up several handles, to make `process.disconnect()` wait
for (var i = 0; i < 100; i++)
send(function(err) {
if (err && sendcount < 3)
console.log(err);
sendcount++;
});
// Send 2 handles to make `process.disconnect()` wait
send();
send();
});

0 comments on commit 65de3e4

Please sign in to comment.