diff --git a/examples/base_http.go b/examples/base_http.go index cf35901..8aa7f37 100644 --- a/examples/base_http.go +++ b/examples/base_http.go @@ -112,7 +112,7 @@ func error2Resp(err error) (interface{}, error) { return gin.H{"dtm_result": s}, nil } } - return nil, nil + return nil, err } // BaseAddRoute add base route handler diff --git a/test/xa_cover_test.go b/test/xa_cover_test.go index 65ad5c9..a2c515e 100644 --- a/test/xa_cover_test.go +++ b/test/xa_cover_test.go @@ -20,9 +20,12 @@ func TestXaCoverDBError(t *testing.T) { getXc().Conf["driver"] = "no-driver" _, err = xa.CallBranch(req, examples.Busi+"/TransInXa") assert.Error(t, err) + getXc().Conf["driver"] = oldDriver // make abort succeed return nil, err }) assert.Error(t, err) + getXc().Conf["driver"] = "no-driver" // make xa rollback failed + waitTransProcessed(gid) getXc().Conf["driver"] = oldDriver cronTransOnceForwardNow(500) // rollback succeeded here assert.Equal(t, StatusFailed, getTransStatus(gid)) @@ -38,3 +41,14 @@ func TestXaCoverDTMError(t *testing.T) { assert.Error(t, err) getXc().Server = oldServer } + +func TestXaCoverGidError(t *testing.T) { + gid := "errgid-' '" + err := getXc().XaGlobalTransaction(gid, func(xa *dtmcli.Xa) (*resty.Response, error) { + req := examples.GenTransReq(30, false, false) + _, err := xa.CallBranch(req, examples.Busi+"/TransOutXa") + assert.Error(t, err) + return nil, err + }) + assert.Error(t, err) +}