@@ -889,7 +889,7 @@ func (mb1 *mockBalancer) ResolverError(err error) {
889889}
890890
891891func (mb1 * mockBalancer ) UpdateSubConnState (sc balancer.SubConn , state balancer.SubConnState ) {
892- mb1 . scStateCh . Send ( subConnWithState { sc : sc , state : state } )
892+ panic ( fmt . Sprintf ( "UpdateSubConnState(%v, %+v) called unexpectedly" , sc , state ) )
893893}
894894
895895func (mb1 * mockBalancer ) Close () {
@@ -951,7 +951,9 @@ func (mb1 *mockBalancer) updateState(state balancer.State) {
951951
952952func (mb1 * mockBalancer ) newSubConn (addrs []resolver.Address , opts balancer.NewSubConnOptions ) (sc balancer.SubConn , err error ) {
953953 if opts .StateListener == nil {
954- opts .StateListener = func (state balancer.SubConnState ) { mb1 .UpdateSubConnState (sc , state ) }
954+ opts .StateListener = func (state balancer.SubConnState ) {
955+ mb1 .scStateCh .Send (subConnWithState {sc : sc , state : state })
956+ }
955957 }
956958 defer func () {
957959 if sc != nil {
@@ -994,13 +996,13 @@ func (verifyBalancerBuilder) Name() string {
994996 return verifyBalName
995997}
996998
997- // verifyBalancer is a balancer that verifies that after a Close() call, an
998- // updateSubConnState () call never happens.
999+ // verifyBalancer is a balancer that verifies that after a Close() call, a
1000+ // StateListener () call never happens.
9991001type verifyBalancer struct {
10001002 closed * grpcsync.Event
10011003 // Hold onto the ClientConn wrapper to communicate with it.
10021004 cc balancer.ClientConn
1003- // To fail the test if UpdateSubConnState gets called after Close().
1005+ // To fail the test if StateListener gets called after Close().
10041006 t * testing.T
10051007}
10061008
@@ -1011,9 +1013,7 @@ func (vb *verifyBalancer) UpdateClientConnState(ccs balancer.ClientConnState) er
10111013func (vb * verifyBalancer ) ResolverError (err error ) {}
10121014
10131015func (vb * verifyBalancer ) UpdateSubConnState (sc balancer.SubConn , state balancer.SubConnState ) {
1014- if vb .closed .HasFired () {
1015- vb .t .Fatal ("UpdateSubConnState was called after Close(), which breaks the balancer API" )
1016- }
1016+ panic (fmt .Sprintf ("UpdateSubConnState(%v, %+v) called unexpectedly" , sc , state ))
10171017}
10181018
10191019func (vb * verifyBalancer ) Close () {
@@ -1022,7 +1022,11 @@ func (vb *verifyBalancer) Close() {
10221022
10231023func (vb * verifyBalancer ) newSubConn (addrs []resolver.Address , opts balancer.NewSubConnOptions ) (sc balancer.SubConn , err error ) {
10241024 if opts .StateListener == nil {
1025- opts .StateListener = func (state balancer.SubConnState ) { vb .UpdateSubConnState (sc , state ) }
1025+ opts .StateListener = func (state balancer.SubConnState ) {
1026+ if vb .closed .HasFired () {
1027+ vb .t .Fatalf ("StateListener(%+v) was called after Close(), which breaks the balancer API" , state )
1028+ }
1029+ }
10261030 }
10271031 defer func () { sc .Connect () }()
10281032 return vb .cc .NewSubConn (addrs , opts )
@@ -1064,7 +1068,9 @@ func (bcb *buildCallbackBal) UpdateClientConnState(ccs balancer.ClientConnState)
10641068
10651069func (bcb * buildCallbackBal ) ResolverError (err error ) {}
10661070
1067- func (bcb * buildCallbackBal ) UpdateSubConnState (sc balancer.SubConn , state balancer.SubConnState ) {}
1071+ func (bcb * buildCallbackBal ) UpdateSubConnState (sc balancer.SubConn , state balancer.SubConnState ) {
1072+ panic (fmt .Sprintf ("UpdateSubConnState(%v, %+v) called unexpectedly" , sc , state ))
1073+ }
10681074
10691075func (bcb * buildCallbackBal ) Close () {
10701076 bcb .closeCh .Send (struct {}{})
@@ -1075,9 +1081,6 @@ func (bcb *buildCallbackBal) updateState(state balancer.State) {
10751081}
10761082
10771083func (bcb * buildCallbackBal ) newSubConn (addrs []resolver.Address , opts balancer.NewSubConnOptions ) (sc balancer.SubConn , err error ) {
1078- if opts .StateListener == nil {
1079- opts .StateListener = func (state balancer.SubConnState ) { bcb .UpdateSubConnState (sc , state ) }
1080- }
10811084 defer func () {
10821085 if sc != nil {
10831086 sc .Connect ()
0 commit comments