Merge pull request #1142 from log4js-node/update-test

test: added assertion for increase of SIGHUP listeners on log4js.configure()
This commit is contained in:
Lam Wei Li 2022-01-18 02:36:59 +08:00 committed by GitHub
commit 05935cc9c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -56,77 +56,74 @@ test("file appender single SIGHUP handler", t => {
}, 0);
});
// no SIGHUP signals on Windows, so don't run the tests
if (process.platform !== "win32") {
test("file appender SIGHUP", t => {
let closeCalled = 0;
let openCalled = 0;
test("file appender SIGHUP", t => {
let closeCalled = 0;
let openCalled = 0;
const appender = sandbox
.require("../../lib/appenders/file", {
requires: {
streamroller: {
RollingFileStream: class RollingFileStream {
constructor() {
openCalled++;
this.ended = false;
}
const appender = sandbox
.require("../../lib/appenders/file", {
requires: {
streamroller: {
RollingFileStream: class RollingFileStream {
constructor() {
openCalled++;
this.ended = false;
}
on() {
this.dummy = "easier than turning off lint rule";
}
end(cb) {
this.ended = true;
closeCalled++;
cb();
}
write() {
if (this.ended) {
throw new Error("write after end");
}
return true;
on() {
this.dummy = "easier than turning off lint rule";
}
end(cb) {
this.ended = true;
closeCalled++;
cb();
}
write() {
if (this.ended) {
throw new Error("write after end");
}
return true;
}
}
}
})
.configure(
{ type: "file", filename: "sighup-test-file" },
{
basicLayout() {
return "whatever";
}
}
})
.configure(
{ type: "file", filename: "sighup-test-file" },
{
basicLayout() {
return "whatever";
}
);
}
);
appender("something to log");
process.kill(process.pid, "SIGHUP");
appender("something to log");
process.emit("SIGHUP", "SIGHUP", 1);
t.plan(2);
setTimeout(() => {
appender("something to log after sighup");
t.equal(openCalled, 2, "open should be called twice");
t.equal(closeCalled, 1, "close should be called once");
t.end();
}, 100);
t.plan(2);
setTimeout(() => {
appender("something to log after sighup");
t.equal(openCalled, 2, "open should be called twice");
t.equal(closeCalled, 1, "close should be called once");
t.end();
}, 100);
});
test("file appender SIGHUP handler leak", t => {
const log4js = require("../../lib/log4js");
const initialListeners = process.listenerCount("SIGHUP");
log4js.configure({
appenders: {
file: { type: "file", filename: "test.log" }
},
categories: { default: { appenders: ["file"], level: "info" } }
});
test("file appender SIGHUP handler leak", t => {
const log4js = require("../../lib/log4js");
const initialListeners = process.listenerCount("SIGHUP");
log4js.configure({
appenders: {
file: { type: "file", filename: "test.log" }
},
categories: { default: { appenders: ["file"], level: "info" } }
});
log4js.shutdown(() => {
t.equal(process.listenerCount("SIGHUP"), initialListeners);
t.end();
});
t.plan(2);
t.equal(process.listenerCount("SIGHUP"), initialListeners + 1);
log4js.shutdown(() => {
t.equal(process.listenerCount("SIGHUP"), initialListeners);
t.end();
});
}
});