Skip to content

Commit 9352248

Browse files
committed
update buildResolverForTarget
1 parent 9ac0ec8 commit 9352248

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

xds/internal/resolver/helpers_test.go

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828

2929
"github.com/google/go-cmp/cmp"
3030
"github.com/google/go-cmp/cmp/cmpopts"
31+
3132
"google.golang.org/grpc/codes"
3233
"google.golang.org/grpc/internal"
3334
"google.golang.org/grpc/internal/grpctest"
@@ -109,16 +110,29 @@ func buildResolverForTarget(t *testing.T, target resolver.Target, bootstrapConte
109110
}
110111
}
111112

112-
stateCh := make(chan resolver.State, 1)
113+
stateCh := make(chan resolver.State, 10)
113114
updateStateF := func(s resolver.State) error {
114-
stateCh <- s
115+
select {
116+
case stateCh <- s:
117+
default:
118+
select {
119+
case <-stateCh:
120+
stateCh <- s
121+
default:
122+
}
123+
}
115124
return nil
116125
}
117-
errCh := make(chan error, 1)
126+
errCh := make(chan error, 10)
118127
reportErrorF := func(err error) {
119128
select {
120129
case errCh <- err:
121130
default:
131+
select {
132+
case <-errCh:
133+
errCh <- err
134+
default:
135+
}
122136
}
123137
}
124138
tcc := &testutils.ResolverClientConn{Logger: t, UpdateStateF: updateStateF, ReportErrorF: reportErrorF}
@@ -128,7 +142,19 @@ func buildResolverForTarget(t *testing.T, target resolver.Target, bootstrapConte
128142
if err != nil {
129143
t.Fatalf("Failed to build xDS resolver for target %q: %v", target, err)
130144
}
131-
t.Cleanup(r.Close)
145+
t.Cleanup(func() {
146+
go func() {
147+
for range stateCh {
148+
}
149+
}()
150+
go func() {
151+
for range errCh {
152+
}
153+
}()
154+
r.Close()
155+
close(stateCh)
156+
close(errCh)
157+
})
132158
return stateCh, errCh, r
133159
}
134160

0 commit comments

Comments
 (0)