2017-08-10 13:35:58 +00:00
|
|
|
package log
|
|
|
|
|
|
|
|
import (
|
2017-08-24 08:50:16 +00:00
|
|
|
"bytes"
|
2017-08-10 13:35:58 +00:00
|
|
|
"testing"
|
2017-08-24 08:50:16 +00:00
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/log"
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
trace = "trace log message\n"
|
|
|
|
debug = "debug log message\n"
|
|
|
|
info = "info log message\n"
|
|
|
|
warn = "warning log message\n"
|
|
|
|
err = "error log message\n"
|
2017-08-10 13:35:58 +00:00
|
|
|
)
|
|
|
|
|
2017-08-24 08:50:16 +00:00
|
|
|
func TestLogLevels(t *testing.T) {
|
|
|
|
var tests = []struct {
|
|
|
|
lvl log.Lvl
|
|
|
|
out string
|
|
|
|
}{
|
|
|
|
{log.LvlTrace, trace + debug + info + warn + err},
|
|
|
|
{log.LvlDebug, debug + info + warn + err},
|
|
|
|
{log.LvlInfo, info + warn + err},
|
|
|
|
{log.LvlWarn, warn + err},
|
|
|
|
{log.LvlError, err},
|
|
|
|
}
|
|
|
|
|
|
|
|
var buf bytes.Buffer
|
|
|
|
// log-comaptible handler that writes log in the buffer
|
|
|
|
handler := log.FuncHandler(func(r *log.Record) error {
|
|
|
|
_, err := buf.Write([]byte(r.Msg))
|
|
|
|
return err
|
|
|
|
})
|
|
|
|
for _, test := range tests {
|
|
|
|
buf.Reset()
|
|
|
|
|
|
|
|
setHandler(test.lvl, handler)
|
2017-08-10 13:35:58 +00:00
|
|
|
|
2017-08-24 08:50:16 +00:00
|
|
|
Trace(trace)
|
|
|
|
Debug(debug)
|
|
|
|
Info(info)
|
|
|
|
Warn(warn)
|
|
|
|
Error(err)
|
2017-08-10 13:35:58 +00:00
|
|
|
|
2017-08-24 08:50:16 +00:00
|
|
|
if buf.String() != test.out {
|
|
|
|
t.Errorf("Expecting log output to be '%s', got '%s'", test.out, buf.String())
|
|
|
|
}
|
|
|
|
}
|
2017-08-10 13:35:58 +00:00
|
|
|
}
|