Prechádzať zdrojové kódy

test: add codecov (#1861)

* test: add codecov

* test: add codecov
Kevin Wan 3 rokov pred
rodič
commit
ec1de4f48d

+ 40 - 0
core/stores/mon/collection_test.go

@@ -3,7 +3,9 @@ package mon
 import (
 import (
 	"context"
 	"context"
 	"errors"
 	"errors"
+	"strings"
 	"testing"
 	"testing"
+	"time"
 
 
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/assert"
 	"github.com/zeromicro/go-zero/core/breaker"
 	"github.com/zeromicro/go-zero/core/breaker"
@@ -567,6 +569,44 @@ func TestCollection_UpdateMany(t *testing.T) {
 	})
 	})
 }
 }
 
 
+func Test_DecoratedCollectionLogDuration(t *testing.T) {
+	mt := mtest.New(t, mtest.NewOptions().ClientType(mtest.Mock))
+	defer mt.Close()
+	c := decoratedCollection{
+		Collection: mt.Coll,
+		brk:        breaker.NewBreaker(),
+	}
+
+	var buf strings.Builder
+	w := logx.NewWriter(&buf)
+	o := logx.Reset()
+	logx.SetWriter(w)
+
+	defer func() {
+		logx.Reset()
+		logx.SetWriter(o)
+	}()
+
+	buf.Reset()
+	c.logDuration("foo", time.Millisecond, nil, "bar")
+	assert.Contains(t, buf.String(), "foo")
+	assert.Contains(t, buf.String(), "bar")
+
+	buf.Reset()
+	c.logDuration("foo", time.Millisecond, errors.New("bar"), make(chan int))
+	assert.Contains(t, buf.String(), "bar")
+
+	buf.Reset()
+	c.logDuration("foo", slowThreshold.Load()+time.Millisecond, errors.New("bar"))
+	assert.Contains(t, buf.String(), "foo")
+	assert.Contains(t, buf.String(), "slowcall")
+
+	buf.Reset()
+	c.logDuration("foo", slowThreshold.Load()+time.Millisecond, nil)
+	assert.Contains(t, buf.String(), "foo")
+	assert.Contains(t, buf.String(), "slowcall")
+}
+
 type mockPromise struct {
 type mockPromise struct {
 	accepted bool
 	accepted bool
 	reason   string
 	reason   string

+ 27 - 0
core/stores/mon/util_test.go

@@ -1,9 +1,13 @@
 package mon
 package mon
 
 
 import (
 import (
+	"errors"
+	"strings"
 	"testing"
 	"testing"
+	"time"
 
 
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/assert"
+	"github.com/zeromicro/go-zero/core/logx"
 )
 )
 
 
 func TestFormatAddrs(t *testing.T) {
 func TestFormatAddrs(t *testing.T) {
@@ -33,3 +37,26 @@ func TestFormatAddrs(t *testing.T) {
 		assert.Equal(t, test.expect, FormatAddr(test.addrs))
 		assert.Equal(t, test.expect, FormatAddr(test.addrs))
 	}
 	}
 }
 }
+
+func Test_logDuration(t *testing.T) {
+	var buf strings.Builder
+	w := logx.NewWriter(&buf)
+	o := logx.Reset()
+	logx.SetWriter(w)
+
+	defer func() {
+		logx.Reset()
+		logx.SetWriter(o)
+	}()
+
+	buf.Reset()
+	logDuration("foo", "bar", time.Millisecond, nil)
+	assert.Contains(t, buf.String(), "foo")
+	assert.Contains(t, buf.String(), "bar")
+
+	buf.Reset()
+	logDuration("foo", "bar", time.Millisecond, errors.New("bar"))
+	assert.Contains(t, buf.String(), "foo")
+	assert.Contains(t, buf.String(), "bar")
+	assert.Contains(t, buf.String(), "fail")
+}

+ 42 - 0
core/stores/mongo/collection_test.go

@@ -2,7 +2,9 @@ package mongo
 
 
 import (
 import (
 	"errors"
 	"errors"
+	"strings"
 	"testing"
 	"testing"
+	"time"
 
 
 	"github.com/globalsign/mgo"
 	"github.com/globalsign/mgo"
 	"github.com/golang/mock/gomock"
 	"github.com/golang/mock/gomock"
@@ -266,6 +268,46 @@ func TestCollectionUpsert(t *testing.T) {
 	assert.Equal(t, errDummy, err)
 	assert.Equal(t, errDummy, err)
 }
 }
 
 
+func Test_logDuration(t *testing.T) {
+	ctrl := gomock.NewController(t)
+	defer ctrl.Finish()
+
+	col := internal.NewMockMgoCollection(ctrl)
+	c := decoratedCollection{
+		collection: col,
+		brk:        breaker.NewBreaker(),
+	}
+
+	var buf strings.Builder
+	w := logx.NewWriter(&buf)
+	o := logx.Reset()
+	logx.SetWriter(w)
+
+	defer func() {
+		logx.Reset()
+		logx.SetWriter(o)
+	}()
+
+	buf.Reset()
+	c.logDuration("foo", time.Millisecond, nil, "bar")
+	assert.Contains(t, buf.String(), "foo")
+	assert.Contains(t, buf.String(), "bar")
+
+	buf.Reset()
+	c.logDuration("foo", time.Millisecond, errors.New("bar"), make(chan int))
+	assert.Contains(t, buf.String(), "bar")
+
+	buf.Reset()
+	c.logDuration("foo", slowThreshold.Load()+time.Millisecond, errors.New("bar"))
+	assert.Contains(t, buf.String(), "bar")
+	assert.Contains(t, buf.String(), "slowcall")
+
+	buf.Reset()
+	c.logDuration("foo", slowThreshold.Load()+time.Millisecond, nil)
+	assert.Contains(t, buf.String(), "foo")
+	assert.Contains(t, buf.String(), "slowcall")
+}
+
 type mockPromise struct {
 type mockPromise struct {
 	accepted bool
 	accepted bool
 	reason   string
 	reason   string

+ 6 - 0
zrpc/internal/serverinterceptors/statinterceptor_test.go

@@ -75,6 +75,12 @@ func TestLogDuration(t *testing.T) {
 			}),
 			}),
 			req: "foo",
 			req: "foo",
 		},
 		},
+		{
+			name:     "timeout",
+			ctx:      context.Background(),
+			req:      "foo",
+			duration: slowThreshold.Load() + time.Second,
+		},
 	}
 	}
 
 
 	for _, test := range tests {
 	for _, test := range tests {