mirror of
https://github.com/zeromicro/go-zero.git
synced 2026-05-14 02:10:00 +08:00
chore: add more tests for logx/logc (#4603)
This commit is contained in:
@@ -248,6 +248,32 @@ func TestStructedLogDebugf(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestStructedLogDebugfn(t *testing.T) {
|
||||
t.Run("debugfn with output", func(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLog(t, levelDebug, w, func(v ...any) {
|
||||
Debugfn(func() any {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("debugfn without output", func(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLogEmpty(t, w, InfoLevel, func(v ...any) {
|
||||
Debugfn(func() any {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestStructedLogDebugv(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
@@ -257,26 +283,7 @@ func TestStructedLogDebugv(t *testing.T) {
|
||||
Debugv(fmt.Sprint(v...))
|
||||
})
|
||||
}
|
||||
func TestStructedLogDebugfn(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
doTestStructedLog(t, levelDebug, w, func(v ...any) {
|
||||
Debugfn(func() string {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
}
|
||||
func TestDebugfnWithInfoLevel(t *testing.T) {
|
||||
called := false
|
||||
SetLevel(InfoLevel)
|
||||
defer SetLevel(DebugLevel)
|
||||
Debugfn(func() string {
|
||||
called = true
|
||||
return "long time log"
|
||||
})
|
||||
assert.False(t, called)
|
||||
}
|
||||
|
||||
func TestStructedLogDebugw(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
@@ -307,6 +314,32 @@ func TestStructedLogErrorf(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestStructedLogErrorfn(t *testing.T) {
|
||||
t.Run("errorfn with output", func(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLog(t, levelError, w, func(v ...any) {
|
||||
Errorfn(func() any {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("errorfn without output", func(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLogEmpty(t, w, SevereLevel, func(v ...any) {
|
||||
Errorfn(func() any {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestStructedLogErrorv(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
@@ -347,6 +380,32 @@ func TestStructedLogInfof(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestStructedInfofn(t *testing.T) {
|
||||
t.Run("infofn with output", func(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLog(t, levelInfo, w, func(v ...any) {
|
||||
Infofn(func() any {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("infofn without output", func(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLogEmpty(t, w, ErrorLevel, func(v ...any) {
|
||||
Infofn(func() any {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestStructedLogInfov(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
@@ -469,22 +528,12 @@ func TestStructedLogInfoConsoleText(t *testing.T) {
|
||||
Info(fmt.Sprint(v...))
|
||||
})
|
||||
}
|
||||
func TestStructedInfofn(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLog(t, levelInfo, w, func(v ...any) {
|
||||
Infofn(func() string {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
}
|
||||
func TestInfofnWithErrorLevel(t *testing.T) {
|
||||
called := false
|
||||
SetLevel(ErrorLevel)
|
||||
defer SetLevel(DebugLevel)
|
||||
Infofn(func() string {
|
||||
Infofn(func() any {
|
||||
called = true
|
||||
return "info log"
|
||||
})
|
||||
@@ -511,6 +560,32 @@ func TestStructedLogSlowf(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestStructedLogSlowfn(t *testing.T) {
|
||||
t.Run("slowfn with output", func(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLog(t, levelSlow, w, func(v ...any) {
|
||||
Slowfn(func() any {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("slowfn without output", func(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
defer writer.Store(old)
|
||||
|
||||
doTestStructedLogEmpty(t, w, SevereLevel, func(v ...any) {
|
||||
Slowfn(func() any {
|
||||
return fmt.Sprint(v...)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestStructedLogSlowv(t *testing.T) {
|
||||
w := new(mockWriter)
|
||||
old := writer.Swap(w)
|
||||
@@ -887,6 +962,16 @@ func doTestStructedLogConsole(t *testing.T, w *mockWriter, write func(...any)) {
|
||||
assert.True(t, strings.Contains(w.String(), message))
|
||||
}
|
||||
|
||||
func doTestStructedLogEmpty(t *testing.T, w *mockWriter, level uint32, write func(...any)) {
|
||||
olevel := atomic.LoadUint32(&logLevel)
|
||||
SetLevel(level)
|
||||
defer SetLevel(olevel)
|
||||
|
||||
const message = "hello there"
|
||||
write(message)
|
||||
assert.Empty(t, w.String())
|
||||
}
|
||||
|
||||
func testSetLevelTwiceWithMode(t *testing.T, mode string, w *mockWriter) {
|
||||
writer.Store(nil)
|
||||
SetUp(LogConf{
|
||||
|
||||
Reference in New Issue
Block a user