|
1 | 1 | 'use strict';
|
2 |
| -// Flags: --expose-internals |
| 2 | + |
| 3 | +// Test fails in Node v5.4.0 and passes in v5.4.1 and newer. |
3 | 4 |
|
4 | 5 | const common = require('../common');
|
5 |
| -const assert = require('assert'); |
6 | 6 | const net = require('net');
|
7 | 7 | const cluster = require('cluster');
|
8 |
| -const handles = require('internal/cluster').handles; |
9 |
| -const os = require('os'); |
10 | 8 |
|
11 |
| -if (common.isWindows) { |
12 |
| - console.log('1..0 # Skipped: This test does not apply to Windows.'); |
13 |
| - return; |
14 |
| -} |
| 9 | +const noop = () => {}; |
15 | 10 |
|
16 | 11 | cluster.schedulingPolicy = cluster.SCHED_NONE;
|
17 | 12 |
|
18 | 13 | if (cluster.isMaster) {
|
19 |
| - const cpus = os.cpus().length; |
20 |
| - const tries = cpus > 8 ? 128 : cpus * 16; |
21 |
| - |
22 |
| - const worker1 = cluster.fork(); |
23 |
| - worker1.on('message', common.mustCall(() => { |
24 |
| - worker1.disconnect(); |
25 |
| - for (let i = 0; i < tries; ++ i) { |
26 |
| - const w = cluster.fork(); |
27 |
| - w.on('online', common.mustCall(w.disconnect)); |
28 |
| - } |
29 |
| - })); |
30 |
| - |
31 |
| - cluster.on('exit', common.mustCall((worker, code) => { |
32 |
| - assert.strictEqual(code, 0, 'worker exited with error'); |
33 |
| - }, tries + 1)); |
34 |
| - |
35 |
| - process.on('exit', () => { |
36 |
| - assert.deepEqual(Object.keys(cluster.workers), []); |
37 |
| - assert.strictEqual(Object.keys(handles).length, 0); |
38 |
| - }); |
| 14 | + const worker = cluster.fork(); |
| 15 | + |
| 16 | + // This is the important part of the test: Confirm that `disconnect` fires. |
| 17 | + worker.on('disconnect', common.mustCall(noop)); |
| 18 | + |
| 19 | + // These are just some extra stuff we're checking for good measure... |
| 20 | + worker.on('exit', common.mustCall(noop)); |
| 21 | + cluster.on('exit', common.mustCall(noop)); |
39 | 22 |
|
| 23 | + cluster.disconnect(); |
40 | 24 | return;
|
41 | 25 | }
|
42 | 26 |
|
43 |
| -var server = net.createServer(); |
| 27 | +const server = net.createServer(); |
44 | 28 |
|
45 |
| -server.listen(common.PORT, function() { |
46 |
| - process.send('listening'); |
47 |
| -}); |
| 29 | +server.listen(common.PORT); |
0 commit comments