From 6ac76e184ea78a371bc46a3c80221daffa64bad0 Mon Sep 17 00:00:00 2001 From: Justin SB Date: Mon, 15 Feb 2021 15:23:21 -0500 Subject: [PATCH] proxy/config tests: avoid multiple calls to done If the callback is called multiple times the wait group will be over-decremented. --- pkg/proxy/config/api_test.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/proxy/config/api_test.go b/pkg/proxy/config/api_test.go index 340a651fc3f..64689c498aa 100644 --- a/pkg/proxy/config/api_test.go +++ b/pkg/proxy/config/api_test.go @@ -152,8 +152,9 @@ func newSvcHandler(t *testing.T, svcs []*v1.Service, done func()) ServiceHandler shm := &ServiceHandlerMock{ state: make(map[types.NamespacedName]*v1.Service), } + var callDoneOnce sync.Once shm.process = func(services []*v1.Service) { - defer done() + defer callDoneOnce.Do(done) if !reflect.DeepEqual(services, svcs) { t.Errorf("Unexpected services: %#v, expected: %#v", services, svcs) } @@ -165,8 +166,9 @@ func newEpsHandler(t *testing.T, eps []*v1.Endpoints, done func()) EndpointsHand ehm := &EndpointsHandlerMock{ state: make(map[types.NamespacedName]*v1.Endpoints), } + var callDoneOnce sync.Once ehm.process = func(endpoints []*v1.Endpoints) { - defer done() + defer callDoneOnce.Do(done) if !reflect.DeepEqual(eps, endpoints) { t.Errorf("Unexpected endpoints: %#v, expected: %#v", endpoints, eps) }