mirror of
https://github.com/asticode/go-astiav.git
synced 2024-05-28 13:53:18 +08:00
74 lines
1.3 KiB
Go
74 lines
1.3 KiB
Go
package astiav
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type logItem struct {
|
|
c Classer
|
|
fmt string
|
|
l LogLevel
|
|
msg string
|
|
}
|
|
|
|
func TestLog(t *testing.T) {
|
|
var lis []logItem
|
|
|
|
SetLogLevel(LogLevelWarning)
|
|
require.Equal(t, LogLevelWarning, GetLogLevel())
|
|
|
|
SetLogCallback(func(c Classer, l LogLevel, fmt, msg string) {
|
|
lis = append(lis, logItem{
|
|
c: c,
|
|
fmt: fmt,
|
|
l: l,
|
|
msg: msg,
|
|
})
|
|
})
|
|
f := AllocFilterGraph()
|
|
defer f.Free()
|
|
Log(f, LogLevelInfo, "info")
|
|
Log(f, LogLevelWarning, "warning %s", "arg")
|
|
Log(f, LogLevelError, "error")
|
|
Log(f, LogLevelFatal, "fatal")
|
|
require.Equal(t, []logItem{
|
|
{
|
|
c: f,
|
|
fmt: "warning %s",
|
|
l: LogLevelWarning,
|
|
msg: "warning arg",
|
|
},
|
|
{
|
|
c: f,
|
|
fmt: "error",
|
|
l: LogLevelError,
|
|
msg: "error",
|
|
},
|
|
{
|
|
c: f,
|
|
fmt: "fatal",
|
|
l: LogLevelFatal,
|
|
msg: "fatal",
|
|
},
|
|
}, lis)
|
|
|
|
ResetLogCallback()
|
|
lis = []logItem{}
|
|
Log(nil, LogLevelError, "test error log\n")
|
|
require.Equal(t, []logItem{}, lis)
|
|
|
|
lcs := []Classer{}
|
|
SetLogCallback(func(c Classer, l LogLevel, fmt, msg string) {
|
|
if c != nil {
|
|
lcs = append(lcs, c)
|
|
}
|
|
})
|
|
classers.del(f)
|
|
lcs = []Classer{}
|
|
Log(f, LogLevelWarning, "")
|
|
require.Len(t, lcs, 1)
|
|
require.IsType(t, &UnknownClasser{}, lcs[0])
|
|
}
|