From 9352248dce8c6d6da07d9e6418060a54f6f60b9c Mon Sep 17 00:00:00 2001 From: hoo Date: Tue, 19 Aug 2025 01:29:00 +0900 Subject: [PATCH] update buildResolverForTarget --- xds/internal/resolver/helpers_test.go | 34 +++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/xds/internal/resolver/helpers_test.go b/xds/internal/resolver/helpers_test.go index cdb9511b04ae..fe73e6aec88e 100644 --- a/xds/internal/resolver/helpers_test.go +++ b/xds/internal/resolver/helpers_test.go @@ -28,6 +28,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" + "google.golang.org/grpc/codes" "google.golang.org/grpc/internal" "google.golang.org/grpc/internal/grpctest" @@ -109,16 +110,29 @@ func buildResolverForTarget(t *testing.T, target resolver.Target, bootstrapConte } } - stateCh := make(chan resolver.State, 1) + stateCh := make(chan resolver.State, 10) updateStateF := func(s resolver.State) error { - stateCh <- s + select { + case stateCh <- s: + default: + select { + case <-stateCh: + stateCh <- s + default: + } + } return nil } - errCh := make(chan error, 1) + errCh := make(chan error, 10) reportErrorF := func(err error) { select { case errCh <- err: default: + select { + case <-errCh: + errCh <- err + default: + } } } tcc := &testutils.ResolverClientConn{Logger: t, UpdateStateF: updateStateF, ReportErrorF: reportErrorF} @@ -128,7 +142,19 @@ func buildResolverForTarget(t *testing.T, target resolver.Target, bootstrapConte if err != nil { t.Fatalf("Failed to build xDS resolver for target %q: %v", target, err) } - t.Cleanup(r.Close) + t.Cleanup(func() { + go func() { + for range stateCh { + } + }() + go func() { + for range errCh { + } + }() + r.Close() + close(stateCh) + close(errCh) + }) return stateCh, errCh, r }