Tolerate stalled event synthesis in fixture gate and tab presses (#82) #26
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/absplus!26
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/82-synthesis-stall"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #23 for ticket #82 (flaky iOS loading group).
Main's push CI on
535cd45failed iOS (loading) inLoadingLifecycle.testEmptyOnlyAfterSuccessatFixtureGates.swift:35. On a Release press, XCTest spent 21s in "Check for interrupting elements" and then 30s in "Synthesize event", which failed with "Failed to synthesize event: Timed out while synthesizing event." BecausecontinueAfterFailureis off, that harness error ended the test before the gate's re-press loop could check whether the touch landed.Change (
ios/UITests/FixtureGates.swiftonly)press(_:) -> Boolhelper makes one deliberate 0.1s press. It tolerates only the "Failed to synthesize event" issue: the press runs inside a non-strictXCTExpectFailurewith that issue matcher, andcontinueAfterFailureis temporarily true (restored bydefer). It returns false when the press was not synthesized.gate()uses the helper. It still presses up to 3 times and still requires the value to bereleased/held.tab()presses again (at most 3 times) only when the touch was never synthesized and the tab isn't already selected. It still requiresisSelectedwithingateTimeout.No assertion is loosened, and every other failure during a press still fails the test.
Why
continueAfterFailureis toggled: a probe on Xcode 27 showed that, with it false, even an expected (matched) failure stops the test. With it temporarily true, execution continues after a matched failure, and an unmatched failure is still recorded as a test failure.