src: disable fast math on arm
[platform/upstream/nodejs.git] / test / parallel / test-cluster-setup-master.js
1 var common = require('../common');
2 var assert = require('assert');
3 var cluster = require('cluster');
4
5 if (cluster.isWorker) {
6
7   // Just keep the worker alive
8   process.send(process.argv[2]);
9
10 } else if (cluster.isMaster) {
11
12   var checks = {
13     args: false,
14     setupEvent: false,
15     settingsObject: false
16   };
17
18   var totalWorkers = 2;
19
20   // Setup master
21   cluster.setupMaster({
22     args: ['custom argument'],
23     silent: true
24   });
25
26   cluster.once('setup', function() {
27     checks.setupEvent = true;
28
29     var settings = cluster.settings;
30     if (settings &&
31         settings.args && settings.args[0] === 'custom argument' &&
32         settings.silent === true &&
33         settings.exec === process.argv[1]) {
34       checks.settingsObject = true;
35     }
36   });
37
38   var correctIn = 0;
39
40   cluster.on('online', function lisenter(worker) {
41
42     worker.once('message', function(data) {
43       correctIn += (data === 'custom argument' ? 1 : 0);
44       if (correctIn === totalWorkers) {
45         checks.args = true;
46       }
47       worker.kill();
48     });
49
50     // All workers are online
51     if (cluster.onlineWorkers === totalWorkers) {
52       checks.workers = true;
53     }
54   });
55
56   // Start all workers
57   cluster.fork();
58   cluster.fork();
59
60   // Check all values
61   process.once('exit', function() {
62     assert.ok(checks.args, 'The arguments was noy send to the worker');
63     assert.ok(checks.setupEvent, 'The setup event was never emitted');
64     var m = 'The settingsObject do not have correct properties';
65     assert.ok(checks.settingsObject, m);
66   });
67
68 }