log: tests

This commit is contained in:
Martin Holst Swende 2023-09-07 09:40:57 +02:00
parent 06d91bdd9f
commit 99c123c689
No known key found for this signature in database
GPG key ID: 683B438C05A5DDF0

View file

@ -1,8 +1,11 @@
package log package log
import ( import (
"bytes"
"os" "os"
"strings"
"testing" "testing"
"time"
) )
func BenchmarkTraceLogging(b *testing.B) { func BenchmarkTraceLogging(b *testing.B) {
@ -12,3 +15,55 @@ func BenchmarkTraceLogging(b *testing.B) {
Trace("a message", "v", i) Trace("a message", "v", i)
} }
} }
type notimeHandler struct {
next Handler
}
func (n notimeHandler) Log(r *Record) error {
r.Time = time.Unix(0, 0)
return n.next.Log(r)
}
func TestLoggingNoTrace(t *testing.T) {
out := new(bytes.Buffer)
logger := New()
{
glog := NewGlogHandler(StreamHandler(out, TerminalFormat(false)))
glog.Verbosity(LvlTrace)
if err := glog.BacktraceAt("logger_test.go:38"); err != nil {
t.Fatal(err)
}
logger.SetHandler(notimeHandler{glog})
}
logger.Trace("a message", "foo", "bar")
have := out.String()
want := `TRACE[01-01|01:00:00.000] a message foo=bar
`
if have != want {
t.Errorf("\nhave: '%v'\nwant: '%v'\n", have, want)
}
}
func TestLoggingWithTrace(t *testing.T) {
PrintOrigins(true)
defer PrintOrigins(false)
out := new(bytes.Buffer)
logger := New()
{
glog := NewGlogHandler(StreamHandler(out, TerminalFormat(false)))
glog.Verbosity(LvlTrace)
if err := glog.BacktraceAt("logger_test.go:59"); err != nil {
t.Fatal(err)
}
logger.SetHandler(notimeHandler{glog})
}
logger.Trace("a message", "foo", "bar")
have := out.String()
wantPrefix := `INFO [01-01|01:00:00.000|log/logger_test.go:59] a message
goroutine`
if len(have) < len(wantPrefix) || strings.HasPrefix(have, wantPrefix) {
t.Errorf("\nhave: '%v'\nwant: '%v'\n", have, wantPrefix)
}
}