From eb3143d134bbd106c560623e089193dcf249ce95 Mon Sep 17 00:00:00 2001 From: peteriman Date: Mon, 17 Jan 2022 09:24:53 +0800 Subject: [PATCH 1/2] Added 1 more assertion for increase of SIGHUP listeners on log4js.configure() --- test/tap/file-sighup-test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/tap/file-sighup-test.js b/test/tap/file-sighup-test.js index 0627532c..b50ddc7d 100644 --- a/test/tap/file-sighup-test.js +++ b/test/tap/file-sighup-test.js @@ -127,6 +127,8 @@ if (process.platform !== "win32") { }, categories: { default: { appenders: ["file"], level: "info" } } }); + t.plan(2); + t.equal(process.listenerCount("SIGHUP"), initialListeners + 1); log4js.shutdown(() => { t.equal(process.listenerCount("SIGHUP"), initialListeners); t.end(); From 65e3eb8b524dbd4f79384e18fff51f6eb9caa777 Mon Sep 17 00:00:00 2001 From: peteriman Date: Tue, 18 Jan 2022 02:14:19 +0800 Subject: [PATCH 2/2] chore: changes to get tests running on windows --- test/tap/file-sighup-test.js | 127 +++++++++++++++++------------------ 1 file changed, 61 insertions(+), 66 deletions(-) diff --git a/test/tap/file-sighup-test.js b/test/tap/file-sighup-test.js index b50ddc7d..7d70d4e4 100644 --- a/test/tap/file-sighup-test.js +++ b/test/tap/file-sighup-test.js @@ -60,79 +60,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; - - const appender = sandbox - .require("../../lib/appenders/file", { - requires: { - streamroller: { - RollingFileStream: class RollingFileStream { - constructor() { - openCalled++; - this.ended = false; - } +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; + } - on() { - this.dummy = "easier than turning off lint rule"; - } + on() { + this.dummy = "easier than turning off lint rule"; + } - end(cb) { - this.ended = true; - closeCalled++; - cb(); - } + end(cb) { + this.ended = true; + closeCalled++; + cb(); + } - write() { - if (this.ended) { - throw new Error("write after end"); - } - return true; + 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"); - - 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" } } - }); - t.plan(2); - t.equal(process.listenerCount("SIGHUP"), initialListeners + 1); - log4js.shutdown(() => { - t.equal(process.listenerCount("SIGHUP"), initialListeners); - t.end(); - }); - }); + appender("something to log"); + process.emit("SIGHUP", "SIGHUP", 1); -} \ No newline at end of file + 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" } } + }); + t.plan(2); + t.equal(process.listenerCount("SIGHUP"), initialListeners + 1); + log4js.shutdown(() => { + t.equal(process.listenerCount("SIGHUP"), initialListeners); + t.end(); + }); +}); \ No newline at end of file