mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-22 03:10:42 +08:00
64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
package common
|
|
|
|
import "testing"
|
|
|
|
func preserveLoggerForTest(t *testing.T) {
|
|
t.Helper()
|
|
|
|
loggerMu.Lock()
|
|
oldSilentRefs := silentLoggerRefs
|
|
silentLoggerRefs = 0
|
|
resetLoggerLocked()
|
|
loggerMu.Unlock()
|
|
|
|
t.Cleanup(func() {
|
|
loggerMu.Lock()
|
|
closeLoggerLocked()
|
|
silentLoggerRefs = oldSilentRefs
|
|
resetLoggerLocked()
|
|
loggerMu.Unlock()
|
|
})
|
|
}
|
|
|
|
func TestLoggerFacadeSilentLifecycle(t *testing.T) {
|
|
preserveLoggerForTest(t)
|
|
|
|
previousFlags := GetFlagVars()
|
|
previousState := GetGlobalState()
|
|
t.Cleanup(func() {
|
|
flagVars = previousFlags
|
|
SetGlobalState(previousState)
|
|
})
|
|
flagVars = &FlagVars{Silent: true, LogLevel: "debug"}
|
|
SetGlobalState(NewState())
|
|
|
|
InitLogger()
|
|
LogDebug("debug")
|
|
LogInfo("info")
|
|
LogSuccess("success")
|
|
LogVuln("vuln")
|
|
LogError("error")
|
|
CloseLogger()
|
|
}
|
|
|
|
func TestPushSilentLoggerReferenceCount(t *testing.T) {
|
|
preserveLoggerForTest(t)
|
|
|
|
restoreOne := PushSilentLogger()
|
|
restoreTwo := PushSilentLogger()
|
|
if silentLoggerRefs != 2 {
|
|
t.Fatalf("silent refs = %d, want 2", silentLoggerRefs)
|
|
}
|
|
|
|
restoreOne()
|
|
restoreOne()
|
|
if silentLoggerRefs != 1 {
|
|
t.Fatalf("silent refs after first restore = %d, want 1", silentLoggerRefs)
|
|
}
|
|
|
|
restoreTwo()
|
|
if silentLoggerRefs != 0 {
|
|
t.Fatalf("silent refs after second restore = %d, want 0", silentLoggerRefs)
|
|
}
|
|
}
|