summaryrefslogtreecommitdiff
path: root/test/parallel/test-cluster-accept-fail.js
blob: 29d57783a9d11f3c6e995b4f89d548ff7e084476 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Flags: --expose-internals
'use strict';
const common = require('../common');
const assert = require('assert');
const net = require('net');
const cluster = require('cluster');
const rr = require('internal/cluster/round_robin_handle');

if (cluster.isPrimary) {
  const distribute = rr.prototype.distribute;
  rr.prototype.distribute = function(err, handle) {
    assert.strictEqual(err, 0);
    handle.close();
    distribute.call(this, -1, undefined);
  };
  cluster.schedulingPolicy = cluster.SCHED_RR;
  cluster.fork();
} else {
  const server = net.createServer(common.mustNotCall());
  server.listen(0, common.mustCall(() => {

    const socket = net.connect(server.address().port);

    socket.on('close', common.mustCall(() => {
      server.close(common.mustCall(() => {
        process.disconnect();
      }));
    }));
  }));
}