fix(pendinguploads): use 100ms ticker in TickerFiresAdditionalCycles test
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 12s
Harness Replays / detect-changes (pull_request) Successful in 19s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 18s
security-review / approved (pull_request) Failing after 13s
gate-check-v3 / gate-check (pull_request) Successful in 22s
sop-tier-check / tier-check (pull_request) Successful in 14s
CI / Detect changes (pull_request) Successful in 38s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 39s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 39s
E2E API Smoke Test / detect-changes (pull_request) Successful in 45s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 44s
Harness Replays / Harness Replays (pull_request) Successful in 12s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 9s
CI / Canvas (Next.js) (pull_request) Successful in 11s
CI / Python Lint & Test (pull_request) Successful in 10s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 17s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 13s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 4m58s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5m38s
CI / Platform (Go) (pull_request) Failing after 14m19s
CI / all-required (pull_request) Failing after 11s
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 12s
Harness Replays / detect-changes (pull_request) Successful in 19s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 18s
security-review / approved (pull_request) Failing after 13s
gate-check-v3 / gate-check (pull_request) Successful in 22s
sop-tier-check / tier-check (pull_request) Successful in 14s
CI / Detect changes (pull_request) Successful in 38s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 39s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 39s
E2E API Smoke Test / detect-changes (pull_request) Successful in 45s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 44s
Harness Replays / Harness Replays (pull_request) Successful in 12s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 9s
CI / Canvas (Next.js) (pull_request) Successful in 11s
CI / Python Lint & Test (pull_request) Successful in 10s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 17s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 13s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 4m58s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5m38s
CI / Platform (Go) (pull_request) Failing after 14m19s
CI / all-required (pull_request) Failing after 11s
TestStartSweeperWithInterval_TickerFiresAdditionalCycles was flaky on loaded CI runners because it called StartSweeperForTest, which passes SweepInterval (5 minutes) as the ticker interval. The test expects ≥2 cycles in a 2-second window, but a 5-minute ticker fires 0-1 times under CPU contention, causing "waited 2s for 2 sweep cycles, got 1". Fix: call StartSweeperWithIntervalForTest directly with a 100ms ticker interval, which is the intended test-harness pattern (per the export_test comment). The done-channel teardown (cancel + <-done) is preserved. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
a40417fe5f
commit
06b1d57195
@ -190,7 +190,14 @@ func TestStartSweeperWithInterval_TickerFiresAdditionalCycles(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
done := pendinguploads.StartSweeperForTest(ctx, store, time.Hour)
|
||||
// Use a short ticker interval (100ms) so the test runs fast without
|
||||
// burning real wall-clock time. StartSweeperWithIntervalForTest is the
|
||||
// test-friendly variant that accepts a caller-specified interval; the
|
||||
// production SweepInterval of 5m is too coarse for a 2s deadline on
|
||||
// a loaded CI runner (the ticker may not fire at all under CPU
|
||||
// contention — the root cause of the pre-existing CI flake).
|
||||
done := make(chan struct{})
|
||||
go pendinguploads.StartSweeperWithIntervalForTest(ctx, store, time.Hour, 100*time.Millisecond, done)
|
||||
// Immediate cycle + at least one tick-driven cycle.
|
||||
store.waitForCycle(t, 2, 2*time.Second)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user