|
|
- package log_test
-
- import (
- "bytes"
- "io/ioutil"
- "strings"
- "testing"
-
- "github.com/tendermint/tendermint/libs/log"
- )
-
- func TestLoggerLogsItsErrors(t *testing.T) {
- var buf bytes.Buffer
-
- logger := log.NewTMLogger(&buf)
- logger.Info("foo", "baz baz", "bar")
- msg := strings.TrimSpace(buf.String())
- if !strings.Contains(msg, "foo") {
- t.Errorf("expected logger msg to contain ErrInvalidKey, got %s", msg)
- }
- }
-
- func TestInfo(t *testing.T) {
- var bufInfo bytes.Buffer
-
- l := log.NewTMLogger(&bufInfo)
- l.Info("Client initialized with old header (trusted is more recent)",
- "old", 42,
- "trustedHeight", "forty two",
- "trustedHash", []byte("test me"))
-
- msg := strings.TrimSpace(bufInfo.String())
-
- // Remove the timestamp information to allow
- // us to test against the expected message.
- receivedmsg := strings.Split(msg, "] ")[1]
-
- const expectedmsg = `Client initialized with old header
- (trusted is more recent) old=42 trustedHeight="forty two"
- trustedHash=74657374206D65`
- if strings.EqualFold(receivedmsg, expectedmsg) {
- t.Fatalf("received %s, expected %s", receivedmsg, expectedmsg)
- }
- }
-
- func TestDebug(t *testing.T) {
- var bufDebug bytes.Buffer
-
- ld := log.NewTMLogger(&bufDebug)
- ld.Debug("Client initialized with old header (trusted is more recent)",
- "old", 42,
- "trustedHeight", "forty two",
- "trustedHash", []byte("test me"))
-
- msg := strings.TrimSpace(bufDebug.String())
-
- // Remove the timestamp information to allow
- // us to test against the expected message.
- receivedmsg := strings.Split(msg, "] ")[1]
-
- const expectedmsg = `Client initialized with old header
- (trusted is more recent) old=42 trustedHeight="forty two"
- trustedHash=74657374206D65`
- if strings.EqualFold(receivedmsg, expectedmsg) {
- t.Fatalf("received %s, expected %s", receivedmsg, expectedmsg)
- }
- }
-
- func TestError(t *testing.T) {
- var bufErr bytes.Buffer
-
- le := log.NewTMLogger(&bufErr)
- le.Error("Client initialized with old header (trusted is more recent)",
- "old", 42,
- "trustedHeight", "forty two",
- "trustedHash", []byte("test me"))
-
- msg := strings.TrimSpace(bufErr.String())
-
- // Remove the timestamp information to allow
- // us to test against the expected message.
- receivedmsg := strings.Split(msg, "] ")[1]
-
- const expectedmsg = `Client initialized with old header
- (trusted is more recent) old=42 trustedHeight="forty two"
- trustedHash=74657374206D65`
- if strings.EqualFold(receivedmsg, expectedmsg) {
- t.Fatalf("received %s, expected %s", receivedmsg, expectedmsg)
- }
- }
-
- func BenchmarkTMLoggerSimple(b *testing.B) {
- benchmarkRunner(b, log.NewTMLogger(ioutil.Discard), baseInfoMessage)
- }
-
- func BenchmarkTMLoggerContextual(b *testing.B) {
- benchmarkRunner(b, log.NewTMLogger(ioutil.Discard), withInfoMessage)
- }
-
- func benchmarkRunner(b *testing.B, logger log.Logger, f func(log.Logger)) {
- lc := logger.With("common_key", "common_value")
- b.ReportAllocs()
- b.ResetTimer()
- for i := 0; i < b.N; i++ {
- f(lc)
- }
- }
-
- var (
- baseInfoMessage = func(logger log.Logger) { logger.Info("foo_message", "foo_key", "foo_value") }
- withInfoMessage = func(logger log.Logger) { logger.With("a", "b").Info("c", "d", "f") }
- )
|