176 lines
3.9 KiB
JavaScript
176 lines
3.9 KiB
JavaScript
|
// tests in which spawned child uses the default cleanup handler
|
||
|
|
||
|
var t = require('tap');
|
||
|
var lib = require('./lib/library');
|
||
|
|
||
|
t.test("nocleanup: normal child exit", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: false,
|
||
|
uninstall: false
|
||
|
}, function (childPID) {
|
||
|
// no signal
|
||
|
}, {
|
||
|
exitReason: 0,
|
||
|
stdout: "",
|
||
|
stderr: ""
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup: uncaught exception - default message", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: true,
|
||
|
uninstall: false
|
||
|
}, function (childPID) {
|
||
|
// no signal
|
||
|
}, {
|
||
|
exitReason: 1,
|
||
|
stdout: "",
|
||
|
stderr: lib.DEFAULT_EXCEPTION_OUT
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup: uncaught exception - custom message", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
messages0: {
|
||
|
uncaughtException: "Yikes!"
|
||
|
},
|
||
|
exception: true,
|
||
|
uninstall: false
|
||
|
}, function (childPID) {
|
||
|
// no signal
|
||
|
}, {
|
||
|
exitReason: 1,
|
||
|
stdout: "",
|
||
|
stderr: /^Yikes!/
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup: child SIGINT - default message", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: false,
|
||
|
uninstall: false
|
||
|
}, function (childPID) {
|
||
|
process.kill(childPID, 'SIGINT');
|
||
|
}, {
|
||
|
exitReason: 'SIGINT',
|
||
|
stdout: "",
|
||
|
stderr: lib.DEFAULT_SIGINT_OUT
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup: child SIGINT - custom message", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
messages0: {
|
||
|
ctrl_C: "{^C}"
|
||
|
},
|
||
|
exception: false,
|
||
|
uninstall: false
|
||
|
}, function (childPID) {
|
||
|
process.kill(childPID, 'SIGINT');
|
||
|
}, {
|
||
|
exitReason: 'SIGINT',
|
||
|
stdout: "",
|
||
|
stderr: "{^C}\n"
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup: child SIGQUIT", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: false,
|
||
|
uninstall: false
|
||
|
}, function (childPID) {
|
||
|
process.kill(childPID, 'SIGQUIT');
|
||
|
}, {
|
||
|
exitReason: 'SIGQUIT',
|
||
|
stdout: "",
|
||
|
stderr: ""
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup: child SIGTERM", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: false,
|
||
|
uninstall: false
|
||
|
}, function (childPID) {
|
||
|
process.kill(childPID, 'SIGTERM');
|
||
|
}, {
|
||
|
exitReason: 'SIGTERM',
|
||
|
stdout: "",
|
||
|
stderr: ""
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup: child SIGKILL", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: false,
|
||
|
uninstall: false
|
||
|
}, function (childPID) {
|
||
|
process.kill(childPID, 'SIGKILL');
|
||
|
}, {
|
||
|
exitReason: 'SIGKILL',
|
||
|
stdout: "",
|
||
|
stderr: ""
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup/uninstall: normal child exit", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: false,
|
||
|
uninstall: true
|
||
|
}, function (childPID) {
|
||
|
// no signal
|
||
|
}, {
|
||
|
exitReason: 0,
|
||
|
stdout: "",
|
||
|
stderr: ""
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup/uninstall: uncaught exception", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: true,
|
||
|
uninstall: true
|
||
|
}, function (childPID) {
|
||
|
// no signal
|
||
|
}, {
|
||
|
exitReason: 1,
|
||
|
stdout: "",
|
||
|
stderr: /tests[\/\\]bin[\/\\]stackable.js/
|
||
|
});
|
||
|
});
|
||
|
|
||
|
t.test("nocleanup/uninstall: child SIGINT", function (t) {
|
||
|
lib.test(t, {
|
||
|
child: 'stackable',
|
||
|
handlers: 0,
|
||
|
exception: false,
|
||
|
uninstall: true
|
||
|
}, function (childPID) {
|
||
|
process.kill(childPID, 'SIGINT');
|
||
|
}, {
|
||
|
exitReason: 'SIGINT',
|
||
|
stdout: "",
|
||
|
stderr: ""
|
||
|
});
|
||
|
});
|