diff --git a/client/v3/txn_test.go b/client/v3/txn_test.go index 0ee6e71d6..de7aec3b8 100644 --- a/client/v3/txn_test.go +++ b/client/v3/txn_test.go @@ -27,8 +27,7 @@ func TestTxnPanics(t *testing.T) { kv := &kv{} - errc := make(chan string, 6) - df := func() { + df := func(errc chan string) { if s := recover(); s != nil { errc <- s.(string) } @@ -38,53 +37,53 @@ func TestTxnPanics(t *testing.T) { op := OpPut("foo", "bar") tests := []struct { - f func() + f func(chan string) err string }{ { - f: func() { - defer df() + f: func(errc chan string) { + defer df(errc) kv.Txn(context.TODO()).If(cmp).If(cmp) }, err: "cannot call If twice!", }, { - f: func() { - defer df() + f: func(errc chan string) { + defer df(errc) kv.Txn(context.TODO()).Then(op).If(cmp) }, err: "cannot call If after Then!", }, { - f: func() { - defer df() + f: func(errc chan string) { + defer df(errc) kv.Txn(context.TODO()).Else(op).If(cmp) }, err: "cannot call If after Else!", }, { - f: func() { - defer df() + f: func(errc chan string) { + defer df(errc) kv.Txn(context.TODO()).Then(op).Then(op) }, err: "cannot call Then twice!", }, { - f: func() { - defer df() + f: func(errc chan string) { + defer df(errc) kv.Txn(context.TODO()).Else(op).Then(op) }, err: "cannot call Then after Else!", }, { - f: func() { - defer df() + f: func(errc chan string) { + defer df(errc) kv.Txn(context.TODO()).Else(op).Else(op) }, @@ -93,7 +92,8 @@ func TestTxnPanics(t *testing.T) { } for i, tt := range tests { - go tt.f() + errc := make(chan string, 1) + go tt.f(errc) select { case err := <-errc: if err != tt.err {