Browse Source

fix cOrders test in shouldRollback

pull/175/head
yedf2 5 years ago
parent
commit
60698ac807
  1. 2
      dtmsvr/trans_type_saga.go
  2. 9
      test/saga_concurrent_test.go

2
dtmsvr/trans_type_saga.go

@ -118,7 +118,7 @@ func (t *transSagaProcessor) ProcessOnce(branches []TransBranch) error {
} }
// if csc.concurrent, then check the cOrders. origin one step correspond to 2 step in dtmsvr // if csc.concurrent, then check the cOrders. origin one step correspond to 2 step in dtmsvr
for _, next := range csc.cOrders[current/2] { for _, next := range csc.cOrders[current/2] {
if !rollbacked(next) { if !rollbacked(2 * next) {
return false return false
} }
} }

9
test/saga_concurrent_test.go

@ -51,6 +51,15 @@ func TestSagaConRollbackOrder(t *testing.T) {
assert.Equal(t, []string{StatusSucceed, StatusFailed, StatusPrepared, StatusPrepared}, getBranchesStatus(sagaCon.Gid)) assert.Equal(t, []string{StatusSucceed, StatusFailed, StatusPrepared, StatusPrepared}, getBranchesStatus(sagaCon.Gid))
} }
func TestSagaConRollbackOrder2(t *testing.T) {
sagaCon := genSagaCon(dtmimp.GetFuncName(), false, true)
sagaCon.AddBranchOrder(1, []int{0})
err := sagaCon.Submit()
assert.Nil(t, err)
waitTransProcessed(sagaCon.Gid)
assert.Equal(t, StatusFailed, getTransStatus(sagaCon.Gid))
assert.Equal(t, []string{StatusSucceed, StatusSucceed, StatusSucceed, StatusFailed}, getBranchesStatus(sagaCon.Gid))
}
func TestSagaConCommittedOngoing(t *testing.T) { func TestSagaConCommittedOngoing(t *testing.T) {
sagaCon := genSagaCon(dtmimp.GetFuncName(), false, false) sagaCon := genSagaCon(dtmimp.GetFuncName(), false, false)
busi.MainSwitch.TransOutResult.SetOnce(dtmcli.ResultOngoing) busi.MainSwitch.TransOutResult.SetOnce(dtmcli.ResultOngoing)

Loading…
Cancel
Save