Skip to content

Commit 114b678

Browse files
authored
test: Add retry to the correct part that has sync enabled (#5688)
1 parent 5f6ab8c commit 114b678

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

pkg/nettest/nettest.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ func Retryable(err error) bool {
6262
}
6363
// Using the exact same error check used in:
6464
// https://github.com/golang/go/blob/a5d61be040ed20b5774bff1b6b578c6d393ab332/src/net/http/serve_test.go#L1417
65-
if errStr := err.Error(); strings.Contains(errStr, "timeout") && strings.Contains(errStr, "TLS handshake") {
65+
if errStr := err.Error(); (strings.Contains(errStr, "timeout") && strings.Contains(errStr, "TLS handshake")) ||
66+
strings.Contains(errStr, "unexpected EOF") {
6667
return true
6768
}
6869
return false

server/vulnerabilities/cve_test.go

+17-9
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ func (d *threadSafeDSMock) InsertCVEForCPE(ctx context.Context, cve string, cpes
6161
return d.Store.InsertCVEForCPE(ctx, cve, cpes)
6262
}
6363

64+
func withNetRetry(t *testing.T, fn func() error) error {
65+
for {
66+
err := fn()
67+
if err != nil && nettest.Retryable(err) {
68+
time.Sleep(5 * time.Second)
69+
t.Logf("%s: retrying error: %s", t.Name(), err)
70+
continue
71+
}
72+
return err
73+
}
74+
}
75+
6476
func TestTranslateCPEToCVE(t *testing.T) {
6577
nettest.Run(t)
6678

@@ -71,7 +83,9 @@ func TestTranslateCPEToCVE(t *testing.T) {
7183

7284
// download the CVEs once for all sub-tests, and then disable syncing
7385
cfg := config.FleetConfig{}
74-
err := SyncCVEData(tempDir, cfg)
86+
err := withNetRetry(t, func() error {
87+
return SyncCVEData(tempDir, cfg)
88+
})
7589
require.NoError(t, err)
7690
cfg.Vulnerabilities.DisableDataSync = true
7791
cfg.Vulnerabilities.RecentVulnerabilityMaxAge = 365 * 24 * time.Hour
@@ -93,14 +107,8 @@ func TestTranslateCPEToCVE(t *testing.T) {
93107
return 0, nil
94108
}
95109

96-
for {
97-
_, err := TranslateCPEToCVE(ctx, ds, tempDir, kitlog.NewLogfmtLogger(os.Stdout), cfg, false)
98-
if err != nil && nettest.Retryable(err) {
99-
continue
100-
}
101-
require.NoError(t, err)
102-
break
103-
}
110+
_, err := TranslateCPEToCVE(ctx, ds, tempDir, kitlog.NewLogfmtLogger(os.Stdout), cfg, false)
111+
require.NoError(t, err)
104112

105113
printMemUsage()
106114

0 commit comments

Comments
 (0)