Repository navigation
test: make five CI-flaky unit and contract tests reliable - #1653
Conversation
The ready shell exec'd sleep while the composer read its environment. Linux can expose an empty /proc/pid/environ during exec, hiding the fixture's store and dropping bracketed paste markers. Keep the ready shell blocked on stdin instead, validate its signal, and await fixture exit during cleanup.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Summary
Merge Risk: ⚪ Minimal · up to
|
…their limits under load (#1728) ## Change Test cost only, no assertion removed: - The Agy paging case uses 51 prompts instead of 80, still crossing the 50-prompt page boundary. - Devin fixtures insert inside transactions, and the seven-read history-cache case gets a deadline sized to its work instead of bun's 5 s default. The OpenCode paging tests #1471 also names already got a mitigation in #1653 and are unchanged. Fixes #1471 Fixes #1556 ## Validation - `bun test server/conversation.test.ts server/devin.test.ts`: 154 pass. Local per-test times dropped (Devin real-store cases from about 1.3 s to under 130 ms each); the loaded CI host itself was not reproduced. - `bun run check fast`: pass.
Change
Makes five tests that failed on CI pass reliably. All five failures were in the tests' own setup, not in product code; no product code changes. No timeout, retry, fixed sleep or weakened assertion was added.
server/core/omo-pane-send.test.ts, failed on main 10-22 05:29Z and 08:15Z: expected bracketed paste, received barea\nb).exec'dsleep. During that exec, Linux can briefly show an empty/proc/<pid>/environ, so the composer missedOMO_CODING_AGENT_DIRand the holder record.opencode.test.ts1.x and long-session paging and /undo,conversation.test.tsDevin cache and Agy ledger; 60 s timeouts at 65-108 s on CI).fsynccalls.PRAGMA synchronous = OFF; committed visibility, locking, data volume and assertions are unchanged. This follows test(sessions): build the rollback-journal fixture without setup syncs #1578.opencode.contract.test.ts:@effectqueued while the pane works, failed 3 times, once on main; first key never waits on the event stream).Also checked: the Portal "unrelated process" failures on main (10-22 06:17Z and 06:33Z) predate #1638, which fixed them. That fixture fails 3 times in 500 runs without #1638's change and never with it.
Validation
bun run check fast: passes.Test-only changes; no changelog fragment.