Xcode 16 in CI#1306
Merged
justinseanmartin merged 5 commits intoSep 26, 2024
Merged
Conversation
120eb0e to
b51ab0e
Compare
added 5 commits
September 26, 2024 02:39
… applied The UITextEffectsWindow directly uses a private initializer, bypassing the public initializer. The `[UIWindow init]` implementation will call through to this private designated initializer, so overriding both is unnecessary. I've added an assertion to the swizzle helpers to prevent this from silently failing in the future if the private APIs change.
There were cases where we were not identifying animations that were still in progress. For example, if I turn on the simulator slow animations setting, we don't wait a sufficient amount of time for animations to complete. This was consistently showing up when running -[TypingTests testEnteringTextIntoFirstResponder]`. As this test was failing on Xcode 16 in CI, it seems like this change is needed to get KIF working reliably.
…er speed When animations are set to 100x speed, the text field popover control is presented without animations. This causes issues in the call to waitForAnimations, because the presentation still happens after some delay. This is a crude hack to prevent significantly sped up animations from failing to tap on popovers.
5163bf0 to
25645e8
Compare
| } | ||
| } else if (currentTime > completionTime) { | ||
| // Otherwise, use the completion time to determine if the animation has been completed. | ||
| // This doesn't seem to always be exactly right however. |
Contributor
There was a problem hiding this comment.
Curious about the cases where it's not quite right, can you elaborate?
Contributor
Author
There was a problem hiding this comment.
What I was seeing was when running TypingTests.testEnteringTextIntoFirstResponder, it would try to tap on "Select All" before it was finished being presented on Xcode 16. For some reason, startTime + duration was before the animation completed if I was watching it run in the simulator.
RoyalPineapple
approved these changes
Sep 26, 2024
RoyalPineapple
left a comment
Contributor
There was a problem hiding this comment.
Great work, thanks for taking this on.
congt
approved these changes
Sep 26, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Configure KIF CI to run on Xcode 16.0 & iOS 18.0, bringing us to a total of 6 CI configurations. I've moved the one that does the extra validation to the Xcode 16 build part. If I could test iOS 16 w/ Xcode 15, I'd drop support for Xcode 14.3.1, but that isn't set up on GH hosted runners and I think it is worth still testing on iOS 16.
Aside from needing to land the fix for UICollectionView asserts in #1307,
TypingTests testEnteringTextIntoFirstResponderwas also failing on CI and required some behavior changes to get them working reliably. The behavior was that we were attempting to tap "Select All" after a long press, but we weren't waiting long enough for the popover control to appear. Tapping too early was then dismissing the popover rather than actually performing a "Select All" operation.The KIF framework functional changes are:
I also took this opportunity to speed up the test execution time by a couple seconds by dropping 2 second
longPressactions to be 1s instead. This wasn't necessary, but I was running some tests that used long presses a lot and it seemed like a nice small improvement.You can review each of these changes in the individual commits, which I do not plan to squash on merging this PR.