summaryrefslogtreecommitdiff
path: root/test/parallel/test-process-exit-code.js
diff options
context:
space:
mode:
authorDenys Otrishko <shishugi@gmail.com>2018-07-11 00:58:01 +0300
committerAnna Henningsen <anna@addaleax.net>2018-07-14 12:04:53 +0200
commit19e10ec2e2cb3bf5dbe3110ee49e32dcb3d0fdea (patch)
tree09e1e05340109d79346ae6235b560fdc5bf17439 /test/parallel/test-process-exit-code.js
parent35326f27fd9693fcf02a2eab5e22c78b0b702508 (diff)
downloadandroid-node-v8-19e10ec2e2cb3bf5dbe3110ee49e32dcb3d0fdea.tar.gz
android-node-v8-19e10ec2e2cb3bf5dbe3110ee49e32dcb3d0fdea.tar.bz2
android-node-v8-19e10ec2e2cb3bf5dbe3110ee49e32dcb3d0fdea.zip
test: refactor process/worker exitCode tests
PR-URL: https://github.com/nodejs/node/pull/21739 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'test/parallel/test-process-exit-code.js')
-rw-r--r--test/parallel/test-process-exit-code.js131
1 files changed, 14 insertions, 117 deletions
diff --git a/test/parallel/test-process-exit-code.js b/test/parallel/test-process-exit-code.js
index 20004a9d7d..9059b0b5c2 100644
--- a/test/parallel/test-process-exit-code.js
+++ b/test/parallel/test-process-exit-code.js
@@ -23,113 +23,18 @@
require('../common');
const assert = require('assert');
-switch (process.argv[2]) {
- case 'child1':
- return child1();
- case 'child2':
- return child2();
- case 'child3':
- return child3();
- case 'child4':
- return child4();
- case 'child5':
- return child5();
- case 'child6':
- return child6();
- case 'child7':
- return child7();
- case 'child8':
- return child8();
- case 'child9':
- return child9();
- case undefined:
- return parent();
- default:
- throw new Error('invalid');
-}
-
-function child1() {
- process.exitCode = 42;
- process.on('exit', function(code) {
- assert.strictEqual(process.exitCode, 42);
- assert.strictEqual(code, 42);
- });
-}
-
-function child2() {
- process.exitCode = 99;
- process.on('exit', function(code) {
- assert.strictEqual(process.exitCode, 42);
- assert.strictEqual(code, 42);
- });
- process.exit(42);
-}
-
-function child3() {
- process.exitCode = 99;
- process.on('exit', function(code) {
- assert.strictEqual(process.exitCode, 0);
- assert.strictEqual(code, 0);
- });
- process.exit(0);
-}
-
-function child4() {
- process.exitCode = 99;
- process.on('exit', function(code) {
- if (code !== 1 || process.exitCode !== 1) {
- console.log('wrong code! expected 1 for uncaughtException');
- process.exit(99);
- }
- });
- throw new Error('ok');
-}
-
-function child5() {
- process.exitCode = 95;
- process.on('exit', function(code) {
- assert.strictEqual(process.exitCode, 95);
- assert.strictEqual(code, 95);
- process.exitCode = 99;
- });
-}
-
-function child6() {
- process.on('exit', function(code) {
- assert.strictEqual(process.exitCode, 0);
- assert.strictEqual(code, 0);
- });
- process.on('uncaughtException', () => {});
- throw new Error('ok');
-}
-
-function child7() {
- process.on('exit', function(code) {
- assert.strictEqual(process.exitCode, 97);
- assert.strictEqual(code, 97);
- });
- process.on('uncaughtException', () => {
- process.exitCode = 97;
- });
- throw new Error('ok');
-}
-
-function child8() {
- process.on('exit', function(code) {
- assert.strictEqual(process.exitCode, 1);
- assert.strictEqual(code, 1);
- process.exitCode = 98;
- });
- throw new Error('ok');
-}
+const testCases = require('../fixtures/process-exit-code-cases');
-function child9() {
- process.on('exit', function(code) {
- assert.strictEqual(process.exitCode, 1);
- assert.strictEqual(code, 1);
- process.exitCode = 0;
- });
- throw new Error('ok');
+if (!process.argv[2]) {
+ parent();
+} else {
+ const i = parseInt(process.argv[2]);
+ if (Number.isNaN(i)) {
+ console.log('Invalid test case index');
+ process.exit(100);
+ return;
+ }
+ testCases[i].func();
}
function parent() {
@@ -138,22 +43,14 @@ function parent() {
const f = __filename;
const option = { stdio: [ 0, 1, 'ignore' ] };
- const test = (arg, exit) => {
+ const test = (arg, name = 'child', exit) => {
spawn(node, [f, arg], option).on('exit', (code) => {
assert.strictEqual(
code, exit,
- `wrong exit for ${arg}\nexpected:${exit} but got:${code}`);
+ `wrong exit for ${arg}-${name}\nexpected:${exit} but got:${code}`);
console.log(`ok - ${arg} exited with ${exit}`);
});
};
- test('child1', 42);
- test('child2', 42);
- test('child3', 0);
- test('child4', 1);
- test('child5', 99);
- test('child6', 0);
- test('child7', 97);
- test('child8', 98);
- test('child9', 0);
+ testCases.forEach((tc, i) => test(i, tc.func.name, tc.result));
}