123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- package logx
- import (
- "context"
- "strings"
- "sync/atomic"
- "testing"
- "time"
- "github.com/stretchr/testify/assert"
- "go.opentelemetry.io/otel"
- sdktrace "go.opentelemetry.io/otel/sdk/trace"
- )
- func TestWithDurationError(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Error("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationErrorf(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Errorf("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationErrorv(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Errorv("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationErrorw(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Errorw("foo", Field("foo", "bar"))
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- assert.True(t, strings.Contains(w.String(), "foo"), w.String())
- assert.True(t, strings.Contains(w.String(), "bar"), w.String())
- }
- func TestWithDurationInfo(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Info("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationInfoConsole(t *testing.T) {
- old := atomic.LoadUint32(&encoding)
- atomic.StoreUint32(&encoding, plainEncodingType)
- defer func() {
- atomic.StoreUint32(&encoding, old)
- }()
- w := new(mockWriter)
- o := writer.Swap(w)
- defer writer.Store(o)
- WithDuration(time.Second).Info("foo")
- assert.True(t, strings.Contains(w.String(), "ms"), w.String())
- }
- func TestWithDurationInfof(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Infof("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationInfov(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Infov("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationInfow(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Infow("foo", Field("foo", "bar"))
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- assert.True(t, strings.Contains(w.String(), "foo"), w.String())
- assert.True(t, strings.Contains(w.String(), "bar"), w.String())
- }
- func TestWithDurationWithContextInfow(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- otp := otel.GetTracerProvider()
- tp := sdktrace.NewTracerProvider(sdktrace.WithSampler(sdktrace.AlwaysSample()))
- otel.SetTracerProvider(tp)
- defer otel.SetTracerProvider(otp)
- ctx, _ := tp.Tracer("foo").Start(context.Background(), "bar")
- WithDuration(time.Second).WithContext(ctx).Infow("foo", Field("foo", "bar"))
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- assert.True(t, strings.Contains(w.String(), "foo"), w.String())
- assert.True(t, strings.Contains(w.String(), "bar"), w.String())
- assert.True(t, strings.Contains(w.String(), "trace"), w.String())
- assert.True(t, strings.Contains(w.String(), "span"), w.String())
- }
- func TestWithDurationSlow(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).Slow("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationSlowf(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).WithDuration(time.Hour).Slowf("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationSlowv(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).WithDuration(time.Hour).Slowv("foo")
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- }
- func TestWithDurationSloww(t *testing.T) {
- w := new(mockWriter)
- old := writer.Swap(w)
- defer writer.Store(old)
- WithDuration(time.Second).WithDuration(time.Hour).Sloww("foo", Field("foo", "bar"))
- assert.True(t, strings.Contains(w.String(), "duration"), w.String())
- assert.True(t, strings.Contains(w.String(), "foo"), w.String())
- assert.True(t, strings.Contains(w.String(), "bar"), w.String())
- }
|