Repository navigation
test(ios): stabilize text clearing and snapshot budget regressions - #3802
Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
At head The iOS job's sole failure (124 tests, one failure) is The same assertion appears on main at Coverage, Integration Tests, Repo Guards, Android/Linux/macOS smoke, and all other executable checks passed at this head. The cache matrix is skipped and the review bot is neutral. CI remains blocked by #3800; this PR is not merge-ready. No CI rerun was made because this is an assertion failure, not an established infrastructure fault. The PR remains ready for review as requested. |
|
This PR is ready at 9beae21. The new test seeds trace correctly through the production clear loop: three passes clear the field, and four passes leave it not cleared. Not blocking: the 'old' and 'stale' seeds hard-code lengths 3 and 5, and only a comment ties them to the 4-pass budget, so you could derive the refusal seed from the pass-count constant (for example The red check is the iOS Smoke job. It fails on I did not run a revert mutation myself. The local Xcode 26.2 and 27.1 5/5 runs and the old-two-pass mutation result are as you reported them, and I could not confirm that Smoke will go green. Before merge, #3800 needs a fix or a maintainer rerun or waiver. Nothing in this diff holds it back. There are no conflicts. |
9beae21 to
090e274
Compare
|
Updated this PR at Addressed the seed-length comment: the refusal seed is now For the snapshot regression, fixed XCTest facts now supply a window, 13 visible buttons, and a childless tab bar. Only the root read delays; viewport, orientation, keyboard, and fallback query facts do not use live AX/XPC reads. The real capture plan still runs off the main thread. All method swaps restore in reverse order, including partial setup failure. The test retains proof the root operation entered, the exact
Native commands used
Frozen install, build, full-repository format, and XCTest-selection checks passed. The selector still reaches all declared tests: 125 methods in the iOS PR lane, zero unreachable methods. Independent review found no high/medium issues. Both disposable simulators and the dedicated experiment checkout were removed; unrelated devices/worktrees were preserved. The PR is ready for review. Fresh iOS Smoke, Coverage, Integration Tests, and all other required checks must pass at this new head before it is merge-ready; previous-head CI results do not establish that. |
|
CI is green at
The PR is ready to merge. No merge was performed. #3805 is closed as requested, so the serial lane remains in place. |
|
Summary
Make two iOS regressions independent of incidental XCTest recovery and host timing. Drop every select-all while retaining real synthesized deletes and field reads. Derive the refusal seed from the clear-pass budget.
Fix #3800 by supplying fixed snapshot, viewport, orientation, and keyboard facts around the intentionally delayed root read. Run the real capture plan off main. Retain delayed-entry, exact
budget, and non-healthy assertions. Three test files; scope expands to the snapshot fixture that blocked CI. No production, timeout, retry, or selection changes.Validation
Tested head:
090e27420ad5521a14f657c80cd09e33ad089145; rebased onto3d9190107ewith unchanged original patch verified by range-diff.capture-failedversusbudgetassertion. Negative controls fail both revised tests: dropping the deadline outcome yieldshealthy/no reason; restoring two clear passes retainsorather thanfresh. Production mutations were confined to a disposable checkout.pnpm check:affected --run --head 090e27420ad5521a14f657c80cd09e33ad089145passed: 2 checks passed, 5 skipped; receiptrun-ZKN3It,exactCommit=true,checkoutChanged=false.CLEAN/MERGEABLE; no unresolved review threads. Ready to merge; no merge performed.