@@ -33,13 +33,18 @@ import (
3333
3434var errExpected = errors .New ("expected error" )
3535
36+ func isErrorExpected (err error ) bool {
37+ return clientv3test .IsClientTimeout (err ) || clientv3test .IsServerCtxTimeout (err ) ||
38+ err == rpctypes .ErrTimeout || err == rpctypes .ErrTimeoutDueToLeaderFail
39+ }
40+
3641// TestBalancerUnderNetworkPartitionPut tests when one member becomes isolated,
3742// first Put request fails, and following retry succeeds with client balancer
3843// switching to others.
3944func TestBalancerUnderNetworkPartitionPut (t * testing.T ) {
4045 testBalancerUnderNetworkPartition (t , func (cli * clientv3.Client , ctx context.Context ) error {
4146 _ , err := cli .Put (ctx , "a" , "b" )
42- if clientv3test . IsClientTimeout (err ) || clientv3test . IsServerCtxTimeout ( err ) || err == rpctypes . ErrTimeout {
47+ if isErrorExpected (err ) {
4348 return errExpected
4449 }
4550 return err
@@ -49,7 +54,7 @@ func TestBalancerUnderNetworkPartitionPut(t *testing.T) {
4954func TestBalancerUnderNetworkPartitionDelete (t * testing.T ) {
5055 testBalancerUnderNetworkPartition (t , func (cli * clientv3.Client , ctx context.Context ) error {
5156 _ , err := cli .Delete (ctx , "a" )
52- if clientv3test . IsClientTimeout (err ) || clientv3test . IsServerCtxTimeout ( err ) || err == rpctypes . ErrTimeout {
57+ if isErrorExpected (err ) {
5358 return errExpected
5459 }
5560 return err
@@ -62,7 +67,7 @@ func TestBalancerUnderNetworkPartitionTxn(t *testing.T) {
6267 If (clientv3 .Compare (clientv3 .Version ("foo" ), "=" , 0 )).
6368 Then (clientv3 .OpPut ("foo" , "bar" )).
6469 Else (clientv3 .OpPut ("foo" , "baz" )).Commit ()
65- if clientv3test . IsClientTimeout (err ) || clientv3test . IsServerCtxTimeout ( err ) || err == rpctypes . ErrTimeout {
70+ if isErrorExpected (err ) {
6671 return errExpected
6772 }
6873 return err
@@ -75,7 +80,7 @@ func TestBalancerUnderNetworkPartitionTxn(t *testing.T) {
7580func TestBalancerUnderNetworkPartitionLinearizableGetWithLongTimeout (t * testing.T ) {
7681 testBalancerUnderNetworkPartition (t , func (cli * clientv3.Client , ctx context.Context ) error {
7782 _ , err := cli .Get (ctx , "a" )
78- if clientv3test . IsClientTimeout (err ) || clientv3test . IsServerCtxTimeout ( err ) || err == rpctypes . ErrTimeout {
83+ if isErrorExpected (err ) {
7984 return errExpected
8085 }
8186 return err
0 commit comments