[release/11.0.1xx-preview7] Limit Android modal leak test to Android - #37091
Closed
kubaflo wants to merge 1 commit into
Closed
[release/11.0.1xx-preview7] Limit Android modal leak test to Android#37091kubaflo wants to merge 1 commit into
kubaflo wants to merge 1 commit into
Conversation
The test was introduced to cover Android ModalNavigationManager animation cleanup and is not applicable to Apple transition lifecycles. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9be49656-7117-4235-9d96-404779ab6b16
kubaflo
temporarily deployed
to
copilot-pat-pool
August 4, 2026 17:01 — with
GitHub Actions
Inactive
Contributor
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 37091Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 37091" |
Contributor
Author
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
kubaflo
temporarily deployed
to
copilot-pat-pool
August 4, 2026 17:01 — with
GitHub Actions
Inactive
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
kubaflo
temporarily deployed
to
copilot-pat-pool
August 4, 2026 17:02 — with
GitHub Actions
Inactive
kubaflo
temporarily deployed
to
copilot-pat-pool
August 4, 2026 17:04 — with
GitHub Actions
Inactive
kubaflo
temporarily deployed
to
copilot-pat-pool
August 4, 2026 17:05 — with
GitHub Actions
Inactive
kubaflo
temporarily deployed
to
copilot-pat-pool
August 4, 2026 17:05 — with
GitHub Actions
Inactive
Contributor
There was a problem hiding this comment.
Pull request overview
This PR scopes the ModalPageDontLeakWithAnimation device test to Android only, aligning the test’s compilation target with the Android-specific modal navigation leak scenario it was originally intended to validate.
Changes:
- Wrap
ModalPageDontLeakWithAnimationin#if ANDROID/#endifso it only compiles and runs on Android.
Contributor
Author
|
Consolidated into #37081, which is now the single rebased test-only stabilization PR for Preview 7. |
PureWeen
pushed a commit
that referenced
this pull request
Aug 4, 2026
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ### Description of Change Bundles independently valid Preview 7 test and test-infrastructure stabilizations into one merge path. Changes are cherry-picked or extracted from their source PRs without modifying MAUI runtime or product behavior. The aggregate currently covers: - exact DragEvents label polling and shared Appium text-wait behavior; - waiting for the iOS Entry keyboard before its snapshot; - adaptive ListView and CollectionView screenshot stabilization; - RefreshView gesture retry and SwipeView callback-result waiting; - stable initial SafeArea layout measurement; - deterministic iOS Picker-to-Entry keyboard transition handling; - a bounded Android screenshot tolerance for stable post-rotation antialiasing variance; - independent iOS and MacCatalyst Graphics image-scaling device coverage; - a bounded UIKit cleanup wait for the CarouselView leak assertion; - Android-only scoping for the Android modal-animation leak regression test; - an exact detached-page transition with a synchronous alert-request return signal; and - resilient Windows test-machine resolution setup, with focused Pester coverage for each fallback and failure path. Eligible UI tests, device tests, unit tests, test infrastructure, and screenshot baselines can all be included here when they are independently valid without a corresponding product-code change. ### Source PRs The standalone source PRs below are closed in favor of this aggregate. For #37057, only the independently valid test subset is included; its product-code rewrite remains excluded. | PR | Included test-side fix | |---|---| | #37044 | Windows screen-resolution test infrastructure and Pester coverage | | #37045 | DragEvents exact-text waits and Appium helper | | #37053 | iOS Entry keyboard readiness | | #37055 | ListView screenshot retry window | | #37057 | Graphics image-scaling device tests that pass without the runtime rewrite | | #37058 | RefreshView pull-to-refresh retry | | #37059 | SwipeView result-label wait | | #37066 | SafeArea initial-layout retry | | #37069 | Picker keyboard transition stabilization | | #37074 | Empty CollectionView footer screenshot retry/tolerance | | #37086 | iOS/MacCatalyst CarouselView leak-test cleanup wait | | #37088 | Detached-page alert request synchronization | | #37091 | Android modal-animation leak-test platform scope | | #37092 | Android Issue22306 post-rotation screenshot tolerance | ### Scope exclusions Mixed runtime/test fixes are included only when their test-side changes pass independently against the unmodified product code. The current device tests in #37052, the four nonpositive-size cases in #37057, and the device test plus screenshots in #37062 remain excluded because they expose or describe behavior that requires those PRs' functional fixes. #37070 has no test-side changes. Closed ineffective or unsafe fixes are also excluded. ### Validation - All 25 directly reusable source commits were cherry-picked in their original order. - The #37057 device-test subset was extracted into one additional test-only commit after proving it against the unmodified product implementation. - Every directly cherry-picked aggregate file matches the corresponding included source PR head. - The aggregate diff contains no MAUI runtime or product files. - Targeted Release builds pass for `UITest.Appium`, `Controls.TestCases.iOS.Tests`, `Controls.TestCases.Mac.Tests`, and `Controls.TestCases.Android.Tests`. - The focused screen-resolution Pester suite passes 14/14. - Exact local xUnit XML reports 46/46 Graphics device tests passing on both iOS 26 and MacCatalyst, including all 13 extracted cases. - The Graphics deadlock regression now asserts the bounded five-second completion result before awaiting the scaling task. - The CarouselView category passes 6 consecutive MacCatalyst runs at 4/4 each and passes 4/4 on iOS 26 with the final 100 ms cleanup wait. - The Android modal-animation leak test passes in both discovered Android variants, while the iOS device-test assembly excludes that Android-specific regression test. - The Issue22306 Android failure's three retries were byte-for-byte identical at a 1.85% visual difference, below the new Android-only 2% tolerance. - The unloaded-page alert probe now signals immediately after `DisplayAlertAsync` returns, avoiding a teardown-order dependency on the detached page task. - Rebased the aggregate onto release head `dee83edd121`; the resulting diff remains limited to tests and test infrastructure. - The Pester workflow now triggers when `eng/scripts/Set-ScreenResolution.ps1` changes. - A standalone `/azp run` was posted for aggregate head `83da465424b`; exact merge `bad9e4e9a57` builds `1539860`, `1539861`, and `1539862` are required before merge. ### Issues Fixed Contributes to stabilizing the .NET 11 Preview 7 test branch. --------- Co-authored-by: Vally Fixture <vally-fixture@example.invalid> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: kubaflo <34349119+kubaflo@users.noreply.github.com> Copilot-Session: 9be49656-7117-4235-9d96-404779ab6b16 Copilot-Session: d00747b7-96f3-4e7a-8dfb-e3a48db04b2d
This was referenced Aug 4, 2026
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.
Note
Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!
Description
Restrict
ModalPageDontLeakWithAnimationto Android.The test was added by #29702 to validate cleanup in
ModalNavigationManager.Android.cs, but it currently runs on every platform. On the Preview 7 branch, the unrelated iOS Mono device shard intermittently retained the modalContentPageand nativeContentViewduring Apple transition cleanup.This keeps the original Android regression coverage while removing the test from platforms whose modal animation lifecycle it was not written to validate. No product code changes.
Validation
Category=Modal: the target leak test passed in both discovered variants.ModalPageDontLeakWithAnimationon Android and exclude it on iOS.The full local Android Modal category had one unrelated existing timeout in
PushModalModalWithoutAwaiting(useShell: True).