Skip to content

test(ios): load-tolerant budgets for two timing tests - #14470

Merged
teamleaderleo merged 2 commits into
mainfrom
fix/ios-irx-lifecycle-test-budget
Sep 25, 2026
Merged

teamleaderleo merged 2 commits into
mainfrom
fix/ios-irx-lifecycle-test-budget

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Two tests race a short timer against work that the parallel full suite delays:

  • nextScopeDoesNotWaitForOldSocketClose uses 1 s waits. Both cases failed after 6.8 s in the full suite on both runners, but the suite passes in 26 ms alone (run 36117744354). The waits now share a 15 s budget. A regression still fails, because the blocked close is released only after the waits return.
  • pathTimeoutPreservesCompletedProbeProofs uses a 20 ms gate deadline, which must outlast readiness and the probe. It failed on the owned mini (run 36114119494) with no proofs recorded. It now uses 3 s; the sibling path tests use 1 s.

Part of getting the full iOS simulator suite (test-ios.yml, ios-simulator (iphone)) green on main. It failed the same way on Blacksmith (run 36114121829) and the owned mini cmux10s (run 36114119494). These tests were hidden while the iOS test target did not compile (fixed in #14421), and PR CI runs only selected tests.

Verified in the combined full-suite run 36119701161 (all fix branches stacked): every test this PR touches passes.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Makes two iOS simulator tests tolerant of the parallel full suite by giving their timeouts more headroom.

  • nextScopeDoesNotWaitForOldSocketClose waits now share a 15 s budget (was 1 s); a regression still fails because the blocked close is released only after the waits return.
  • pathTimeoutPreservesCompletedProbeProofs uses a 3 s gate deadline (was 20 ms) so the deadline no longer fires before readiness and the probe finish.

Written for commit 76b90bb. Summary will update on new commits.

Review in cubic

teamleaderleo and others added 2 commits September 25, 2026 05:30
`nextScopeDoesNotWaitForOldSocketClose` failed both cases in the full
iOS simulator suite on main (runs 36114121829 and 36114119494). Each
failure happened after 6.8 s, even though its waits have a 1 s budget.
Run alone on the same runner class (run 36117744354), the suite passes
in 26 ms. Under the parallel full suite the cooperative pool stalls
long enough that the 1 s timer loses the race against an event that
does arrive.

Both waits in the suite now share a 15 s budget. That does not weaken
the check: in a regression the blocked socket close is released only
after the waits return, so they still time out and fail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`pathTimeoutPreservesCompletedProbeProofs` expects the gate deadline to
fire after readiness and a successful probe, while it waits for a path
that never arrives. Its deadline was 20 ms. On the owned mini
(run 36114119494) the full suite delayed the probe past that deadline,
so the report carried no proofs at all and nine assertions failed. The
same commit passed on Blacksmith.

Three seconds keeps the test bounded (it always waits out the deadline)
and leaves room for the parallel suite. The sibling path tests already
use one second.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 35 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: b37bcf5a-7de2-466e-b2db-7704a69cc76e

📥 Commits

Reviewing files that changed from the base of the PR and between 446c2c4 and 76b90bb.

📒 Files selected for processing (2)
  • ios/cmuxPackage/Tests/cmuxFeatureTests/MobileIrohReleaseGateRunnerTests.swift
  • ios/cmuxPackage/Tests/cmuxFeatureTests/MobileIrxRuntimeLifecycleTests.swift

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for 76b90bb014: every check was green at merge (7 verified; 12 skipped by policy). Full suite runs on main after merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant