Browse Source

test lint fixed

pull/195/head
yedf2 5 years ago
parent
commit
e81b800207
  1. 2
      .golangci.yml
  2. 5
      test/busi/barrier.go
  3. 6
      test/busi/base_grpc.go
  4. 16
      test/busi/base_http.go
  5. 8
      test/busi/base_types.go
  6. 4
      test/busi/busi.go
  7. 6
      test/busi/quick_start.go
  8. 6
      test/busi/utils.go
  9. 8
      test/dtmsvr_test.go
  10. 3
      test/main_test.go
  11. 1
      test/saga_grpc_test.go
  12. 12
      test/types.go
  13. 2
      test/xa_test.go

2
.golangci.yml

@ -1,7 +1,7 @@
run: run:
deadline: 5m deadline: 5m
skip-dirs: skip-dirs:
- test # - test
# - bench # - bench
linter-settings: linter-settings:

5
test/busi/barrier.go

@ -11,6 +11,7 @@ import (
"database/sql" "database/sql"
"github.com/dtm-labs/dtm/dtmcli" "github.com/dtm-labs/dtm/dtmcli"
"github.com/dtm-labs/dtm/dtmsvr/config"
"github.com/dtm-labs/dtm/dtmutil" "github.com/dtm-labs/dtm/dtmutil"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
emptypb "google.golang.org/protobuf/types/known/emptypb" emptypb "google.golang.org/protobuf/types/known/emptypb"
@ -87,7 +88,7 @@ func init() {
if req.TransOutResult != "" { if req.TransOutResult != "" {
return dtmcli.String2DtmError(req.TransOutResult) return dtmcli.String2DtmError(req.TransOutResult)
} }
if req.Store == "redis" { if req.Store == config.Redis {
return MustBarrierFromGin(c).RedisCheckAdjustAmount(RedisGet(), getRedisAccountKey(TransOutUID), req.Amount, 7*86400) return MustBarrierFromGin(c).RedisCheckAdjustAmount(RedisGet(), getRedisAccountKey(TransOutUID), req.Amount, 7*86400)
} }
@ -96,7 +97,7 @@ func init() {
}) })
})) }))
app.POST(BusiAPI+"/TccBTransOutConfirm", dtmutil.WrapHandler2(func(c *gin.Context) interface{} { app.POST(BusiAPI+"/TccBTransOutConfirm", dtmutil.WrapHandler2(func(c *gin.Context) interface{} {
if reqFrom(c).Store == "redis" { if reqFrom(c).Store == config.Redis {
return nil return nil
} }
return MustBarrierFromGin(c).Call(txGet(), func(tx *sql.Tx) error { return MustBarrierFromGin(c).Call(txGet(), func(tx *sql.Tx) error {

6
test/busi/base_grpc.go

@ -27,13 +27,13 @@ import (
) )
// BusiGrpc busi service grpc address // BusiGrpc busi service grpc address
var BusiGrpc string = fmt.Sprintf("localhost:%d", BusiGrpcPort) var BusiGrpc = fmt.Sprintf("localhost:%d", BusiGrpcPort)
// DtmClient grpc client for dtm // DtmClient grpc client for dtm
var DtmClient dtmgpb.DtmClient = nil var DtmClient dtmgpb.DtmClient
// XaGrpcClient XA client connection // XaGrpcClient XA client connection
var XaGrpcClient *dtmgrpc.XaGrpcClient = nil var XaGrpcClient *dtmgrpc.XaGrpcClient
func init() { func init() {
setupFuncs["XaGrpcSetup"] = func(app *gin.Engine) { setupFuncs["XaGrpcSetup"] = func(app *gin.Engine) {

16
test/busi/base_http.go

@ -35,14 +35,17 @@ type setupFunc func(*gin.Engine)
var setupFuncs = map[string]setupFunc{} var setupFuncs = map[string]setupFunc{}
// Busi busi service url prefix // Busi busi service url prefix
var Busi string = fmt.Sprintf("http://localhost:%d%s", BusiPort, BusiAPI) var Busi = fmt.Sprintf("http://localhost:%d%s", BusiPort, BusiAPI)
var XaClient *dtmcli.XaClient = nil // XaClient 1
var XaClient *dtmcli.XaClient
// SleepCancelHandler 1
type SleepCancelHandler func(c *gin.Context) interface{} type SleepCancelHandler func(c *gin.Context) interface{}
var sleepCancelHandler SleepCancelHandler = nil var sleepCancelHandler SleepCancelHandler
// SetSleepCancelHandler 1
func SetSleepCancelHandler(handler SleepCancelHandler) { func SetSleepCancelHandler(handler SleepCancelHandler) {
sleepCancelHandler = handler sleepCancelHandler = handler
} }
@ -74,8 +77,9 @@ func BaseAppStartup() *gin.Engine {
v(app) v(app)
} }
logger.Debugf("Starting busi at: %d", BusiPort) logger.Debugf("Starting busi at: %d", BusiPort)
go app.Run(fmt.Sprintf(":%d", BusiPort)) go func() {
_ = app.Run(fmt.Sprintf(":%d", BusiPort))
}()
return app return app
} }
@ -154,7 +158,7 @@ func BaseAddRoute(app *gin.Engine) {
if reqFrom(c).TransOutResult == dtmcli.ResultFailure { if reqFrom(c).TransOutResult == dtmcli.ResultFailure {
return dtmcli.ErrFailure return dtmcli.ErrFailure
} }
var dia gorm.Dialector = nil var dia gorm.Dialector
if dtmcli.GetCurrentDBType() == dtmcli.DBTypeMysql { if dtmcli.GetCurrentDBType() == dtmcli.DBTypeMysql {
dia = mysql.New(mysql.Config{Conn: db}) dia = mysql.New(mysql.Config{Conn: db})
} else if dtmcli.GetCurrentDBType() == dtmcli.DBTypePostgres { } else if dtmcli.GetCurrentDBType() == dtmcli.DBTypePostgres {

8
test/busi/base_types.go

@ -15,6 +15,7 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
// BusiConf 1
var BusiConf = dtmcli.DBConf{ var BusiConf = dtmcli.DBConf{
Driver: "mysql", Driver: "mysql",
Host: "localhost", Host: "localhost",
@ -22,17 +23,20 @@ var BusiConf = dtmcli.DBConf{
User: "root", User: "root",
} }
// UserAccount 1
type UserAccount struct { type UserAccount struct {
UserId int UserID int
Balance string Balance string
TradingBalance string TradingBalance string
} }
// TableName 1
func (*UserAccount) TableName() string { func (*UserAccount) TableName() string {
return "dtm_busi.user_account" return "dtm_busi.user_account"
} }
func GetBalanceByUid(uid int, store string) int { // GetBalanceByUID 1
func GetBalanceByUID(uid int, store string) int {
if store == "redis" { if store == "redis" {
rd := RedisGet() rd := RedisGet()
accA, err := rd.Get(rd.Context(), getRedisAccountKey(uid)).Result() accA, err := rd.Get(rd.Context(), getRedisAccountKey(uid)).Result()

4
test/busi/busi.go

@ -13,7 +13,10 @@ import (
status "google.golang.org/grpc/status" status "google.golang.org/grpc/status"
) )
// TransOutUID 1
const TransOutUID = 1 const TransOutUID = 1
// TransInUID 2
const TransInUID = 2 const TransInUID = 2
func handleGrpcBusiness(in *BusiReq, result1 string, result2 string, busi string) error { func handleGrpcBusiness(in *BusiReq, result1 string, result2 string, busi string) error {
@ -58,6 +61,7 @@ func sagaGrpcAdjustBalance(db dtmcli.DB, uid int, amount int64, result string) e
return err return err
} }
// SagaAdjustBalance 1
func SagaAdjustBalance(db dtmcli.DB, uid int, amount int, result string) error { func SagaAdjustBalance(db dtmcli.DB, uid int, amount int, result string) error {
if strings.Contains(result, dtmcli.ResultFailure) { if strings.Contains(result, dtmcli.ResultFailure) {
return dtmcli.ErrFailure return dtmcli.ErrFailure

6
test/busi/quick_start.go

@ -24,14 +24,18 @@ const qsBusiPort = 8082
var qsBusi = fmt.Sprintf("http://localhost:%d%s", qsBusiPort, qsBusiAPI) var qsBusi = fmt.Sprintf("http://localhost:%d%s", qsBusiPort, qsBusiAPI)
// QsStartSvr quick start: start server
func QsStartSvr() { func QsStartSvr() {
app := dtmutil.GetGinApp() app := dtmutil.GetGinApp()
qsAddRoute(app) qsAddRoute(app)
logger.Infof("quick start examples listening at %d", qsBusiPort) logger.Infof("quick start examples listening at %d", qsBusiPort)
go app.Run(fmt.Sprintf(":%d", qsBusiPort)) go func() {
_ = app.Run(fmt.Sprintf(":%d", qsBusiPort))
}()
time.Sleep(100 * time.Millisecond) time.Sleep(100 * time.Millisecond)
} }
// QsFireRequest quick start: fire request
func QsFireRequest() string { func QsFireRequest() string {
req := &gin.H{"amount": 30} // 微服务的载荷 req := &gin.H{"amount": 30} // 微服务的载荷
// DtmServer为DTM服务的地址 // DtmServer为DTM服务的地址

6
test/busi/utils.go

@ -79,8 +79,8 @@ func SetGrpcHeaderForHeadersYes(ctx context.Context, method string, req, reply i
return invoker(ctx, method, req, reply, cc, opts...) return invoker(ctx, method, req, reply, cc, opts...)
} }
// SetHttpHeaderForHeadersYes interceptor to set head for HeadersYes // SetHTTPHeaderForHeadersYes interceptor to set head for HeadersYes
func SetHttpHeaderForHeadersYes(c *resty.Client, r *resty.Request) error { func SetHTTPHeaderForHeadersYes(c *resty.Client, r *resty.Request) error {
if b, ok := r.Body.(*dtmcli.Saga); ok && strings.HasSuffix(b.Gid, "HeadersYes") { if b, ok := r.Body.(*dtmcli.Saga); ok && strings.HasSuffix(b.Gid, "HeadersYes") {
logger.Debugf("set test_header for url: %s", r.URL) logger.Debugf("set test_header for url: %s", r.URL)
r.SetHeader("test_header", "yes") r.SetHeader("test_header", "yes")
@ -121,6 +121,7 @@ var (
once sync.Once once sync.Once
) )
// RedisGet 1
func RedisGet() *redis.Client { func RedisGet() *redis.Client {
once.Do(func() { once.Do(func() {
logger.Debugf("connecting to client redis") logger.Debugf("connecting to client redis")
@ -133,6 +134,7 @@ func RedisGet() *redis.Client {
return rdb return rdb
} }
// SetRedisBothAccount 1
func SetRedisBothAccount(accountA int, accountB int) { func SetRedisBothAccount(accountA int, accountB int) {
rd := RedisGet() rd := RedisGet()
_, err := rd.Set(rd.Context(), getRedisAccountKey(TransOutUID), accountA, 0).Result() _, err := rd.Set(rd.Context(), getRedisAccountKey(TransOutUID), accountA, 0).Result()

8
test/dtmsvr_test.go

@ -12,6 +12,7 @@ import (
"github.com/dtm-labs/dtm/dtmcli/dtmimp" "github.com/dtm-labs/dtm/dtmcli/dtmimp"
"github.com/dtm-labs/dtm/dtmsvr" "github.com/dtm-labs/dtm/dtmsvr"
"github.com/dtm-labs/dtm/dtmsvr/config"
"github.com/dtm-labs/dtm/dtmutil" "github.com/dtm-labs/dtm/dtmutil"
"github.com/dtm-labs/dtm/test/busi" "github.com/dtm-labs/dtm/test/busi"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -34,13 +35,8 @@ func getBranchesStatus(gid string) []string {
return status return status
} }
func assertSucceed(t *testing.T, gid string) {
waitTransProcessed(gid)
assert.Equal(t, StatusSucceed, getTransStatus(gid))
}
func TestUpdateBranchAsync(t *testing.T) { func TestUpdateBranchAsync(t *testing.T) {
if conf.Store.Driver != "mysql" { if conf.Store.Driver != config.Mysql {
return return
} }
conf.UpdateBranchSync = 0 conf.UpdateBranchSync = 0

3
test/main_test.go

@ -37,7 +37,7 @@ func TestMain(m *testing.M) {
conf.UpdateBranchSync = 1 conf.UpdateBranchSync = 1
dtmgrpc.AddUnaryInterceptor(busi.SetGrpcHeaderForHeadersYes) dtmgrpc.AddUnaryInterceptor(busi.SetGrpcHeaderForHeadersYes)
dtmcli.GetRestyClient().OnBeforeRequest(busi.SetHttpHeaderForHeadersYes) dtmcli.GetRestyClient().OnBeforeRequest(busi.SetHTTPHeaderForHeadersYes)
dtmcli.GetRestyClient().OnAfterResponse(func(c *resty.Client, resp *resty.Response) error { return nil }) dtmcli.GetRestyClient().OnAfterResponse(func(c *resty.Client, resp *resty.Response) error { return nil })
tenv := os.Getenv("TEST_STORE") tenv := os.Getenv("TEST_STORE")
@ -68,4 +68,5 @@ func TestMain(m *testing.M) {
close(dtmsvr.TransProcessedTestChan) close(dtmsvr.TransProcessedTestChan)
gid, more := <-dtmsvr.TransProcessedTestChan gid, more := <-dtmsvr.TransProcessedTestChan
logger.FatalfIf(more, "extra gid: %s in test chan", gid) logger.FatalfIf(more, "extra gid: %s in test chan", gid)
os.Exit(0)
} }

1
test/saga_grpc_test.go

@ -89,6 +89,7 @@ func TestSagaGrpcEmptyUrl(t *testing.T) {
assert.Equal(t, StatusSucceed, getTransStatus(saga.Gid)) assert.Equal(t, StatusSucceed, getTransStatus(saga.Gid))
} }
//nolint: unparam
func genSagaGrpc(gid string, outFailed bool, inFailed bool) *dtmgrpc.SagaGrpc { func genSagaGrpc(gid string, outFailed bool, inFailed bool) *dtmgrpc.SagaGrpc {
saga := dtmgrpc.NewSagaGrpc(dtmutil.DefaultGrpcServer, gid) saga := dtmgrpc.NewSagaGrpc(dtmutil.DefaultGrpcServer, gid)
req := busi.GenBusiReq(30, outFailed, inFailed) req := busi.GenBusiReq(30, outFailed, inFailed)

12
test/types.go

@ -84,21 +84,21 @@ const (
) )
func getBeforeBalances(store string) []int { func getBeforeBalances(store string) []int {
b1 := busi.GetBalanceByUid(busi.TransOutUID, store) b1 := busi.GetBalanceByUID(busi.TransOutUID, store)
b2 := busi.GetBalanceByUid(busi.TransInUID, store) b2 := busi.GetBalanceByUID(busi.TransInUID, store)
return []int{b1, b2} return []int{b1, b2}
} }
func assertSameBalance(t *testing.T, before []int, store string) { func assertSameBalance(t *testing.T, before []int, store string) {
b1 := busi.GetBalanceByUid(busi.TransOutUID, store) b1 := busi.GetBalanceByUID(busi.TransOutUID, store)
b2 := busi.GetBalanceByUid(busi.TransInUID, store) b2 := busi.GetBalanceByUID(busi.TransInUID, store)
assert.Equal(t, before[0], b1) assert.Equal(t, before[0], b1)
assert.Equal(t, before[1], b2) assert.Equal(t, before[1], b2)
} }
func assertNotSameBalance(t *testing.T, before []int, store string) { func assertNotSameBalance(t *testing.T, before []int, store string) {
b1 := busi.GetBalanceByUid(busi.TransOutUID, store) b1 := busi.GetBalanceByUID(busi.TransOutUID, store)
b2 := busi.GetBalanceByUid(busi.TransInUID, store) b2 := busi.GetBalanceByUID(busi.TransInUID, store)
assert.NotEqual(t, before[0], b1) assert.NotEqual(t, before[0], b1)
assert.Equal(t, before[0]+before[1], b1+b2) assert.Equal(t, before[0]+before[1], b1+b2)
} }

2
test/xa_test.go

@ -108,7 +108,7 @@ func TestXaNotTimeout(t *testing.T) {
cronTransOnceForwardNow(0) // not timeout, cronTransOnceForwardNow(0) // not timeout,
timeoutChan <- 0 timeoutChan <- 0
}() }()
_ = <-timeoutChan <-timeoutChan
req := busi.GenTransReq(30, false, false) req := busi.GenTransReq(30, false, false)
_, err := xa.CallBranch(req, busi.Busi+"/TransOutXa") _, err := xa.CallBranch(req, busi.Busi+"/TransOutXa")
assert.Nil(t, err) assert.Nil(t, err)

Loading…
Cancel
Save