diff options
author | James M Snell <jasnell@gmail.com> | 2016-08-24 13:55:12 -0700 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2016-09-01 07:13:47 -0700 |
commit | baa0ffdab37a490e8ca69c82772425f8bdec0ec2 (patch) | |
tree | 778fb8017556b49c5b17fa89e72da4d5de19ced2 /test/parallel/test-cluster-worker-exit.js | |
parent | 2168432c3616a841699814786a9bc52e7f819e6b (diff) | |
download | android-node-v8-baa0ffdab37a490e8ca69c82772425f8bdec0ec2.tar.gz android-node-v8-baa0ffdab37a490e8ca69c82772425f8bdec0ec2.tar.bz2 android-node-v8-baa0ffdab37a490e8ca69c82772425f8bdec0ec2.zip |
test: refactor/cleanup a number of cluster tests
* Move shared code into common
* Favor use of strictEqual
* Add some missing common.mustCalls
* Other general cleanup
PR-URL: https://github.com/nodejs/node/pull/8261
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Diffstat (limited to 'test/parallel/test-cluster-worker-exit.js')
-rw-r--r-- | test/parallel/test-cluster-worker-exit.js | 77 |
1 files changed, 29 insertions, 48 deletions
diff --git a/test/parallel/test-cluster-worker-exit.js b/test/parallel/test-cluster-worker-exit.js index ad1e30ddb0..1c0ec509c4 100644 --- a/test/parallel/test-cluster-worker-exit.js +++ b/test/parallel/test-cluster-worker-exit.js @@ -6,24 +6,24 @@ // - the worker.exitedAfterDisconnect flag, and worker.state are correct // - the worker process actually goes away -var common = require('../common'); -var assert = require('assert'); -var cluster = require('cluster'); +const common = require('../common'); +const assert = require('assert'); +const cluster = require('cluster'); -var EXIT_CODE = 42; +const EXIT_CODE = 42; if (cluster.isWorker) { - var http = require('http'); - var server = http.Server(function() { }); + const http = require('http'); + const server = http.Server(() => { }); - server.once('listening', function() { + server.once('listening', common.mustCall(() => { process.exit(EXIT_CODE); - }); + })); server.listen(common.PORT, '127.0.0.1'); } else if (cluster.isMaster) { - var expected_results = { + const expected_results = { cluster_emitDisconnect: [1, "the cluster did not emit 'disconnect'"], cluster_emitExit: [1, "the cluster did not emit 'exit'"], cluster_exitCode: [EXIT_CODE, 'the cluster exited w/ incorrect exitCode'], @@ -38,7 +38,7 @@ if (cluster.isWorker) { worker_exitCode: [EXIT_CODE, 'the worker exited w/ incorrect exitCode'], worker_signalCode: [null, 'the worker exited w/ incorrect signalCode'] }; - var results = { + const results = { cluster_emitDisconnect: 0, cluster_emitExit: 0, worker_emitDisconnect: 0, @@ -47,51 +47,45 @@ if (cluster.isWorker) { // start worker - var worker = cluster.fork(); - - worker.once('listening', function() { - // the worker is up and running... - }); - + const worker = cluster.fork(); // Check cluster events - cluster.on('disconnect', function() { + cluster.on('disconnect', common.mustCall(() => { results.cluster_emitDisconnect += 1; - }); - cluster.on('exit', function(worker) { + })); + cluster.on('exit', common.mustCall((worker) => { results.cluster_exitCode = worker.process.exitCode; results.cluster_signalCode = worker.process.signalCode; results.cluster_emitExit += 1; - }); + })); // Check worker events and properties - worker.on('disconnect', function() { + worker.on('disconnect', common.mustCall(() => { results.worker_emitDisconnect += 1; results.worker_suicideMode = worker.suicide; results.worker_exitedAfterDisconnect = worker.exitedAfterDisconnect; results.worker_state = worker.state; if (results.worker_emitExit > 0) { - process.nextTick(function() { finish_test(); }); + process.nextTick(() => finish_test()); } - }); + })); // Check that the worker died - worker.once('exit', function(exitCode, signalCode) { + worker.once('exit', common.mustCall((exitCode, signalCode) => { results.worker_exitCode = exitCode; results.worker_signalCode = signalCode; results.worker_emitExit += 1; - results.worker_died = !alive(worker.process.pid); + results.worker_died = !common.isAlive(worker.process.pid); if (results.worker_emitDisconnect > 0) { - process.nextTick(function() { finish_test(); }); + process.nextTick(() => finish_test()); } - }); + })); - var finish_test = function() { + const finish_test = function() { try { checkResults(expected_results, results); } catch (exc) { - console.error('FAIL: ' + exc.message); - if (exc.name != 'AssertionError') { + if (exc.name !== 'AssertionError') { console.trace(exc); } @@ -105,26 +99,13 @@ if (cluster.isWorker) { // some helper functions ... function checkResults(expected_results, results) { - for (var k in expected_results) { + for (const k in expected_results) { const actual = results[k]; const expected = expected_results[k]; - var msg = (expected[1] || '') + - (' [expected: ' + expected[0] + ' / actual: ' + actual + ']'); - - if (expected && expected.length) { - assert.equal(actual, expected[0], msg); - } else { - assert.equal(actual, expected, msg); - } - } -} - -function alive(pid) { - try { - process.kill(pid, 'SIGCONT'); - return true; - } catch (e) { - return false; + assert.strictEqual(actual, + expected && expected.length ? expected[0] : expected, + (expected[1] || '') + + ` [expected: ${expected[0]} / actual: ${actual}]`); } } |