mirror of
https://github.com/tendermint/tendermint.git
synced 2026-04-28 03:16:58 +00:00
95 lines
2.7 KiB
Go
95 lines
2.7 KiB
Go
package cli_test
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
"testing"
|
|
|
|
tmflags "github.com/tendermint/tendermint/libs/cli"
|
|
"github.com/tendermint/tendermint/libs/log"
|
|
)
|
|
|
|
const (
|
|
defaultLogLevelValue = "info"
|
|
)
|
|
|
|
func TestParseLogLevel(t *testing.T) {
|
|
var buf bytes.Buffer
|
|
jsonLogger := log.NewWriterLogger(&buf)
|
|
|
|
correctLogLevels := []struct {
|
|
lvl string
|
|
expectedLogLines []string
|
|
}{
|
|
{"mempool:error", []string{
|
|
``, // if no default is given, assume info
|
|
``,
|
|
`{"level":"error","module":"mempool","message":"Mesmero"}`,
|
|
`{"level":"info","module":"state","message":"Mind"}`, // if no default is given, assume info
|
|
``}},
|
|
|
|
{"mempool:error,*:debug", []string{
|
|
`{"level":"debug","module":"mempool","module":"wire","message":"Kingpin"}`,
|
|
``,
|
|
`{"level":"error","module":"mempool","message":"Mesmero"}`,
|
|
`{"level":"info","module":"state","message":"Mind"}`,
|
|
`{"level":"debug","message":"Gideon"}`}},
|
|
|
|
{"*:debug,wire:none", []string{
|
|
``,
|
|
`{"level":"info","module":"mempool","message":"Kitty Pryde"}`,
|
|
`{"level":"error","module":"mempool","message":"Mesmero"}`,
|
|
`{"level":"info","module":"state","message":"Mind"}`,
|
|
`{"level":"debug","message":"Gideon"}`}},
|
|
}
|
|
|
|
for _, c := range correctLogLevels {
|
|
logger, err := tmflags.ParseLogLevel(c.lvl, jsonLogger, defaultLogLevelValue)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
buf.Reset()
|
|
|
|
logger.With("module", "mempool").With("module", "wire").Debug("Kingpin")
|
|
if have := strings.TrimSpace(buf.String()); c.expectedLogLines[0] != have {
|
|
t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[0], have, c.lvl)
|
|
}
|
|
|
|
buf.Reset()
|
|
|
|
logger.With("module", "mempool").Info("Kitty Pryde")
|
|
if have := strings.TrimSpace(buf.String()); c.expectedLogLines[1] != have {
|
|
t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[1], have, c.lvl)
|
|
}
|
|
|
|
buf.Reset()
|
|
|
|
logger.With("module", "mempool").Error("Mesmero")
|
|
if have := strings.TrimSpace(buf.String()); c.expectedLogLines[2] != have {
|
|
t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[2], have, c.lvl)
|
|
}
|
|
|
|
buf.Reset()
|
|
|
|
logger.With("module", "state").Info("Mind")
|
|
if have := strings.TrimSpace(buf.String()); c.expectedLogLines[3] != have {
|
|
t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[3], have, c.lvl)
|
|
}
|
|
|
|
buf.Reset()
|
|
|
|
logger.Debug("Gideon")
|
|
if have := strings.TrimSpace(buf.String()); c.expectedLogLines[4] != have {
|
|
t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[4], have, c.lvl)
|
|
}
|
|
}
|
|
|
|
incorrectLogLevel := []string{"some", "mempool:some", "*:some,mempool:error"}
|
|
for _, lvl := range incorrectLogLevel {
|
|
if _, err := tmflags.ParseLogLevel(lvl, jsonLogger, defaultLogLevelValue); err == nil {
|
|
t.Fatalf("Expected %s to produce error", lvl)
|
|
}
|
|
}
|
|
}
|