fix(test): poll error counter to 0 before asserting in RecordsMetricsOnSuccess #195

Closed
core-fe wants to merge 1 commits from fix/sweeper-race-error-counter into main
@@ -280,9 +280,13 @@ func TestStartSweeper_RecordsMetricsOnSuccess(t *testing.T) {
// vs-metric-record race (see waitForMetricDelta comment).
waitForMetricDelta(t, deltaAcked, 3, 2*time.Second)
waitForMetricDelta(t, deltaExpired, 5, 2*time.Second)
// Error counter MUST stay at zero on the success path. Read after
// the success counters have settled — once those are correct,
// StartSweeper has fully processed this cycle's result.
// Error counter MUST stay at zero on the success path. Poll for it to
// settle first — a goroutine from a prior test (e.g.
// TestStartSweeper_TransientErrorDoesNotCrashLoop) may still be running
// and incrementing errorCount after its metricDelta() baseline was
// captured. This race manifests as deltaError=1 on success-path
// assertions in slow -race CI runs (#22 fix).
waitForMetricDelta(t, deltaError, 0, 2*time.Second)
if got := deltaError(); got != 0 {
t.Errorf("error counter delta = %d, want 0", got)
}