Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 909b516

Browse filesBrowse files
TrottMyles Borins
authored andcommitted
test: remove 1 second delay from test
In test-cluster-worker-wait-server-close, remove unneeded 1-second delay and refactor to eliminate flakiness on FreeBSD. PR-URL: #4616 Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 8ea7660 commit 909b516
Copy full SHA for 909b516

File tree

Expand file treeCollapse file tree

1 file changed

+21
-21
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+21
-21
lines changed
Open diff view settings
Collapse file

‎test/parallel/test-cluster-worker-wait-server-close.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-cluster-worker-wait-server-close.js
+21-21Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,44 @@ var assert = require('assert');
55
var cluster = require('cluster');
66
var net = require('net');
77

8+
var serverClosed = false;
9+
810
if (cluster.isWorker) {
9-
net.createServer(function(socket) {
11+
var server = net.createServer(function(socket) {
1012
// Wait for any data, then close connection
1113
socket.write('.');
12-
socket.on('data', function discard() {
13-
});
14+
socket.on('data', function discard() {});
1415
}).listen(common.PORT, common.localhostIPv4);
15-
} else if (cluster.isMaster) {
1616

17-
var connectionDone;
18-
var ok;
17+
server.once('close', function() {
18+
serverClosed = true;
19+
});
1920

21+
// Although not typical, the worker process can exit before the disconnect
22+
// event fires. Use this to keep the process open until the event has fired.
23+
var keepOpen = setInterval(function() {}, 9999);
24+
25+
// Check worker events and properties
26+
process.once('disconnect', function() {
27+
// disconnect should occur after socket close
28+
assert(serverClosed);
29+
clearInterval(keepOpen);
30+
});
31+
} else if (cluster.isMaster) {
2032
// start worker
2133
var worker = cluster.fork();
2234

35+
var socket;
2336
// Disconnect worker when it is ready
2437
worker.once('listening', function() {
2538
net.createConnection(common.PORT, common.localhostIPv4, function() {
26-
var socket = this;
39+
socket = this;
2740
this.on('data', function() {
2841
console.log('got data from client');
2942
// socket definitely connected to worker if we got data
3043
worker.disconnect();
31-
setTimeout(function() {
32-
socket.end();
33-
connectionDone = true;
34-
}, 1000);
44+
socket.end();
3545
});
3646
});
3747
});
38-
39-
// Check worker events and properties
40-
worker.once('disconnect', function() {
41-
assert.ok(connectionDone, 'disconnect should occur after socket close');
42-
ok = true;
43-
});
44-
45-
process.once('exit', function() {
46-
assert.ok(ok);
47-
});
4848
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.