Skip to content

Commit 81896f5

Browse files
committed
use retry.UntilSucess
Signed-off-by: aicee <hhbin2000@foxmail.com>
1 parent 04935ed commit 81896f5

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

pkg/controller/security/manager_test.go

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/agiledragon/gomonkey/v2"
2525
"github.com/stretchr/testify/assert"
2626
"istio.io/istio/pkg/security"
27+
"istio.io/istio/pkg/test/util/retry"
2728

2829
camock "kmesh.net/kmesh/pkg/controller/security/mock"
2930
)
@@ -165,25 +166,27 @@ func runTestretryFetchCert(t *testing.T) {
165166
patches2.Reset()
166167

167168
secretManager.SendCertRequest(identity, RETRY)
168-
time.Sleep(2000 * time.Millisecond)
169-
for {
170-
cert := secretManager.GetCert(identity)
171-
if cert != nil {
172-
secretManager.certsCache.mu.RLock()
173-
hasCert := cert.cert != nil
174-
secretManager.certsCache.mu.RUnlock()
175-
if hasCert {
176-
break
169+
170+
err = retry.UntilSuccess(
171+
func() error {
172+
cert := secretManager.GetCert(identity)
173+
if cert != nil {
174+
secretManager.certsCache.mu.RLock()
175+
hasCert := cert.cert != nil
176+
secretManager.certsCache.mu.RUnlock()
177+
if hasCert {
178+
return nil
179+
}
177180
}
178-
}
179-
time.Sleep(100 * time.Millisecond)
181+
return fmt.Errorf("cert not found for identity %s", identity)
182+
},
183+
retry.Delay(100*time.Millisecond),
184+
retry.Timeout(6*time.Second),
185+
)
186+
187+
if err != nil {
188+
t.Errorf("Failed to fetch cert after retry: %v", err)
180189
}
181190

182-
cert := secretManager.GetCert(identity)
183-
assert.NotNil(t, cert)
184-
secretManager.certsCache.mu.RLock()
185-
assert.NotNil(t, cert.cert)
186-
secretManager.certsCache.mu.RUnlock()
187-
188191
close(stopCh)
189192
}

0 commit comments

Comments
 (0)