Adding upstream version 2.52.6.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
a960158181
commit
6d002e9543
441 changed files with 95392 additions and 0 deletions
212
log/default_test.go
Normal file
212
log/default_test.go
Normal file
|
@ -0,0 +1,212 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"log"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/gofiber/fiber/v2/utils"
|
||||
)
|
||||
|
||||
const work = "work"
|
||||
|
||||
func initDefaultLogger() {
|
||||
logger = &defaultLogger{
|
||||
stdlog: log.New(os.Stderr, "", 0),
|
||||
depth: 4,
|
||||
}
|
||||
}
|
||||
|
||||
type byteSliceWriter struct {
|
||||
b []byte
|
||||
}
|
||||
|
||||
func (w *byteSliceWriter) Write(p []byte) (int, error) {
|
||||
w.b = append(w.b, p...)
|
||||
return len(p), nil
|
||||
}
|
||||
|
||||
func Test_DefaultLogger(t *testing.T) {
|
||||
initDefaultLogger()
|
||||
|
||||
var w byteSliceWriter
|
||||
SetOutput(&w)
|
||||
|
||||
Trace("trace work")
|
||||
Debug("received work order")
|
||||
Info("starting work")
|
||||
Warn("work may fail")
|
||||
Error("work failed")
|
||||
Panic("work panic")
|
||||
utils.AssertEqual(t, "[Trace] trace work\n"+
|
||||
"[Debug] received work order\n"+
|
||||
"[Info] starting work\n"+
|
||||
"[Warn] work may fail\n"+
|
||||
"[Error] work failed\n"+
|
||||
"[Panic] work panic\n", string(w.b))
|
||||
}
|
||||
|
||||
func Test_DefaultFormatLogger(t *testing.T) {
|
||||
initDefaultLogger()
|
||||
|
||||
var w byteSliceWriter
|
||||
SetOutput(&w)
|
||||
|
||||
Tracef("trace %s", work)
|
||||
Debugf("received %s order", work)
|
||||
Infof("starting %s", work)
|
||||
Warnf("%s may fail", work)
|
||||
Errorf("%s failed", work)
|
||||
Panicf("%s panic", work)
|
||||
|
||||
utils.AssertEqual(t, "[Trace] trace work\n"+
|
||||
"[Debug] received work order\n"+
|
||||
"[Info] starting work\n"+
|
||||
"[Warn] work may fail\n"+
|
||||
"[Error] work failed\n"+
|
||||
"[Panic] work panic\n", string(w.b))
|
||||
}
|
||||
|
||||
func Test_CtxLogger(t *testing.T) {
|
||||
initDefaultLogger()
|
||||
|
||||
var w byteSliceWriter
|
||||
SetOutput(&w)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
WithContext(ctx).Tracef("trace %s", work)
|
||||
WithContext(ctx).Debugf("received %s order", work)
|
||||
WithContext(ctx).Infof("starting %s", work)
|
||||
WithContext(ctx).Warnf("%s may fail", work)
|
||||
WithContext(ctx).Errorf("%s failed", work)
|
||||
WithContext(ctx).Panicf("%s panic", work)
|
||||
|
||||
utils.AssertEqual(t, "[Trace] trace work\n"+
|
||||
"[Debug] received work order\n"+
|
||||
"[Info] starting work\n"+
|
||||
"[Warn] work may fail\n"+
|
||||
"[Error] work failed\n"+
|
||||
"[Panic] work panic\n", string(w.b))
|
||||
}
|
||||
|
||||
func Test_LogfKeyAndValues(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
level Level
|
||||
format string
|
||||
fmtArgs []interface{}
|
||||
keysAndValues []interface{}
|
||||
wantOutput string
|
||||
}{
|
||||
{
|
||||
name: "test logf with debug level and key-values",
|
||||
level: LevelDebug,
|
||||
format: "",
|
||||
fmtArgs: nil,
|
||||
keysAndValues: []interface{}{"name", "Bob", "age", 30},
|
||||
wantOutput: "[Debug] name=Bob age=30\n",
|
||||
},
|
||||
{
|
||||
name: "test logf with info level and key-values",
|
||||
level: LevelInfo,
|
||||
format: "",
|
||||
fmtArgs: nil,
|
||||
keysAndValues: []interface{}{"status", "ok", "code", 200},
|
||||
wantOutput: "[Info] status=ok code=200\n",
|
||||
},
|
||||
{
|
||||
name: "test logf with warn level and key-values",
|
||||
level: LevelWarn,
|
||||
format: "",
|
||||
fmtArgs: nil,
|
||||
keysAndValues: []interface{}{"error", "not found", "id", 123},
|
||||
wantOutput: "[Warn] error=not found id=123\n",
|
||||
},
|
||||
{
|
||||
name: "test logf with format and key-values",
|
||||
level: LevelWarn,
|
||||
format: "test",
|
||||
fmtArgs: nil,
|
||||
keysAndValues: []interface{}{"error", "not found", "id", 123},
|
||||
wantOutput: "[Warn] test error=not found id=123\n",
|
||||
},
|
||||
{
|
||||
name: "test logf with one key",
|
||||
level: LevelWarn,
|
||||
format: "",
|
||||
fmtArgs: nil,
|
||||
keysAndValues: []interface{}{"error"},
|
||||
wantOutput: "[Warn] error=KEYVALS UNPAIRED\n",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
var buf bytes.Buffer
|
||||
l := &defaultLogger{
|
||||
stdlog: log.New(&buf, "", 0),
|
||||
level: tt.level,
|
||||
depth: 4,
|
||||
}
|
||||
l.privateLogw(tt.level, tt.format, tt.keysAndValues)
|
||||
utils.AssertEqual(t, tt.wantOutput, buf.String())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_WithContextCaller(t *testing.T) {
|
||||
logger = &defaultLogger{
|
||||
stdlog: log.New(os.Stderr, "", log.Lshortfile),
|
||||
depth: 4,
|
||||
}
|
||||
|
||||
var w byteSliceWriter
|
||||
SetOutput(&w)
|
||||
ctx := context.TODO()
|
||||
|
||||
WithContext(ctx).Info("")
|
||||
Info("")
|
||||
|
||||
utils.AssertEqual(t, "default_test.go:169: [Info] \ndefault_test.go:170: [Info] \n", string(w.b))
|
||||
}
|
||||
|
||||
func Test_SetLevel(t *testing.T) {
|
||||
setLogger := &defaultLogger{
|
||||
stdlog: log.New(os.Stderr, "", log.LstdFlags|log.Lshortfile|log.Lmicroseconds),
|
||||
depth: 4,
|
||||
}
|
||||
|
||||
setLogger.SetLevel(LevelTrace)
|
||||
utils.AssertEqual(t, LevelTrace, setLogger.level)
|
||||
utils.AssertEqual(t, LevelTrace.toString(), setLogger.level.toString())
|
||||
|
||||
setLogger.SetLevel(LevelDebug)
|
||||
utils.AssertEqual(t, LevelDebug, setLogger.level)
|
||||
utils.AssertEqual(t, LevelDebug.toString(), setLogger.level.toString())
|
||||
|
||||
setLogger.SetLevel(LevelInfo)
|
||||
utils.AssertEqual(t, LevelInfo, setLogger.level)
|
||||
utils.AssertEqual(t, LevelInfo.toString(), setLogger.level.toString())
|
||||
|
||||
setLogger.SetLevel(LevelWarn)
|
||||
utils.AssertEqual(t, LevelWarn, setLogger.level)
|
||||
utils.AssertEqual(t, LevelWarn.toString(), setLogger.level.toString())
|
||||
|
||||
setLogger.SetLevel(LevelError)
|
||||
utils.AssertEqual(t, LevelError, setLogger.level)
|
||||
utils.AssertEqual(t, LevelError.toString(), setLogger.level.toString())
|
||||
|
||||
setLogger.SetLevel(LevelFatal)
|
||||
utils.AssertEqual(t, LevelFatal, setLogger.level)
|
||||
utils.AssertEqual(t, LevelFatal.toString(), setLogger.level.toString())
|
||||
|
||||
setLogger.SetLevel(LevelPanic)
|
||||
utils.AssertEqual(t, LevelPanic, setLogger.level)
|
||||
utils.AssertEqual(t, LevelPanic.toString(), setLogger.level.toString())
|
||||
|
||||
setLogger.SetLevel(8)
|
||||
utils.AssertEqual(t, 8, int(setLogger.level))
|
||||
utils.AssertEqual(t, "[?8] ", setLogger.level.toString())
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue