Repository navigation
[Inflight/Candidate] Stabilize Looped CarouselView Collection Override Device Test - #39217
Conversation
|
Hey there @@HarishwaranVijayakumar! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
|
Azure Pipelines: Successfully started running 1 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
This comment has been minimized.
This comment has been minimized.
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
|
Note 🔍
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Note 🔍
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Note 🔍
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Tests Failure Analysis
🧪 CI Analysis — click to expand📊 maui-prNo failures found. 🧪 maui-pr-devicetests
🧪 maui-pr-uitests
🧭 Follow-up — actions and refreshNext action: Restore complete results/crash diagnostics and historical runtime/handler provenance; compare equivalent fixtures before attributing unresolved failures.
|
This comment has been minimized.
This comment has been minimized.
|
Note 🔍
|
AI Review Summary
Review status: Evidence-first output is incomplete. Missing or skipped required artifacts cannot support approval; existing Gate and blocking findings remain authoritative. 🗂️ Review Sessions — click to expand🚦 Gate — Test Before & After FixGate Result: ❌ FAILEDThe trusted test-verification gate reported a failure. Its detailed display artifact was Inspect the trusted Gate task logs for the failing build or test evidence. This run is not 📋 Pre-Flight — Context & ValidationThe Copilot expert-review task ended before this phase was persisted, usually because the review-stage time budget expired or the CI agent encountered a transient authentication/runtime problem. Earlier completed sections remain valid, but this review is incomplete without this phase. Next step: re-comment 🔬 Code Review — Deep AnalysisThe Copilot expert-review task ended before this phase was persisted, usually because the review-stage time budget expired or the CI agent encountered a transient authentication/runtime problem. Earlier completed sections remain valid, but this review is incomplete without this phase. Next step: re-comment 🛠️ Try-Fix — Analysis & ComparisonThe Copilot expert-review task ended before this phase was persisted, usually because the review-stage time budget expired or the CI agent encountered a transient authentication/runtime problem. Earlier completed sections remain valid, but this review is incomplete without this phase. Next step: re-comment 🏁 Report — Final RecommendationThe Copilot expert-review task ended before this phase was persisted, usually because the review-stage time budget expired or the CI agent encountered a transient authentication/runtime problem. Earlier completed sections remain valid, but this review is incomplete without this phase. Next step: re-comment 📱 UI Tests — Button,Label,LayoutDetected UI test categories: ❌ Deep UI tests — 398 passed, 5 failed, 8 skipped across 3 categories on platform-pool agent (replaces in-process counts above). 🧪 UI Test Execution Results (deep, platform pool)
❌
|
…e Device Test (#39217) ### Issue Details - The Windows device test `LoopedVisibleCollectionOverrideDoesNotEnterRealizationRetry` failed intermittently in #38782. - Failures occurred during high-physical-range setup or when validating that the pending override completed without entering the realization-retry path. ### Root Cause - The test assumed logical item `2` must be the **first visible physical item** after `ScrollIntoView()`. - The implementation under test, `IsCollectionCurrentItemOverrideVisible`, only requires the item to appear **anywhere within the visible range** (`FirstVisibleIndex` to `LastVisibleIndex`). - The test could continue while native scrolling, layout, and snap-point processing were still in progress. - The deferred override callback could therefore encounter an unready native state and schedule a realization retry. Diagnostics confirmed a failing run with `RetryCount = 1`. - Repeated successful runs after adding scroll-settling synchronization support a test setup/timing issue. ### Description of Change - Wrapped the initial native `ScrollIntoView()` operation in the existing `WaitForSettleAsync` helper to wait for terminal scroll events and a short quiet period. - Replaced the first-visible-item assumption with a predicate that scans the entire visible range for logical item `2` at a high physical index (`> 1000`). - Reused the predicate for both setup and final post-override validation. - Preserved the original assertions verifying: - Override completion. - Zero realization retries. - A single final centered `ScrollTo` request. - `CenterMode` is not exposed to the `ScrollToRequested` observer. - No product code changes were made; this is a test-only stabilization fix. | Before | After | |----------|----------| | <img src="https://github.com/user-attachments/assets/7efcc482-86ea-4d96-bc6a-f00bd03000fa"> | <img src="https://github.com/user-attachments/assets/da5ded81-340e-4564-b585-168edc9af045"> |
…e Device Test (#39217) ### Issue Details - The Windows device test `LoopedVisibleCollectionOverrideDoesNotEnterRealizationRetry` failed intermittently in #38782. - Failures occurred during high-physical-range setup or when validating that the pending override completed without entering the realization-retry path. ### Root Cause - The test assumed logical item `2` must be the **first visible physical item** after `ScrollIntoView()`. - The implementation under test, `IsCollectionCurrentItemOverrideVisible`, only requires the item to appear **anywhere within the visible range** (`FirstVisibleIndex` to `LastVisibleIndex`). - The test could continue while native scrolling, layout, and snap-point processing were still in progress. - The deferred override callback could therefore encounter an unready native state and schedule a realization retry. Diagnostics confirmed a failing run with `RetryCount = 1`. - Repeated successful runs after adding scroll-settling synchronization support a test setup/timing issue. ### Description of Change - Wrapped the initial native `ScrollIntoView()` operation in the existing `WaitForSettleAsync` helper to wait for terminal scroll events and a short quiet period. - Replaced the first-visible-item assumption with a predicate that scans the entire visible range for logical item `2` at a high physical index (`> 1000`). - Reused the predicate for both setup and final post-override validation. - Preserved the original assertions verifying: - Override completion. - Zero realization retries. - A single final centered `ScrollTo` request. - `CenterMode` is not exposed to the `ScrollToRequested` observer. - No product code changes were made; this is a test-only stabilization fix. | Before | After | |----------|----------| | <img src="https://github.com/user-attachments/assets/7efcc482-86ea-4d96-bc6a-f00bd03000fa"> | <img src="https://github.com/user-attachments/assets/da5ded81-340e-4564-b585-168edc9af045"> |
…e Device Test (#39217) ### Issue Details - The Windows device test `LoopedVisibleCollectionOverrideDoesNotEnterRealizationRetry` failed intermittently in #38782. - Failures occurred during high-physical-range setup or when validating that the pending override completed without entering the realization-retry path. ### Root Cause - The test assumed logical item `2` must be the **first visible physical item** after `ScrollIntoView()`. - The implementation under test, `IsCollectionCurrentItemOverrideVisible`, only requires the item to appear **anywhere within the visible range** (`FirstVisibleIndex` to `LastVisibleIndex`). - The test could continue while native scrolling, layout, and snap-point processing were still in progress. - The deferred override callback could therefore encounter an unready native state and schedule a realization retry. Diagnostics confirmed a failing run with `RetryCount = 1`. - Repeated successful runs after adding scroll-settling synchronization support a test setup/timing issue. ### Description of Change - Wrapped the initial native `ScrollIntoView()` operation in the existing `WaitForSettleAsync` helper to wait for terminal scroll events and a short quiet period. - Replaced the first-visible-item assumption with a predicate that scans the entire visible range for logical item `2` at a high physical index (`> 1000`). - Reused the predicate for both setup and final post-override validation. - Preserved the original assertions verifying: - Override completion. - Zero realization retries. - A single final centered `ScrollTo` request. - `CenterMode` is not exposed to the `ScrollToRequested` observer. - No product code changes were made; this is a test-only stabilization fix. | Before | After | |----------|----------| | <img src="https://github.com/user-attachments/assets/7efcc482-86ea-4d96-bc6a-f00bd03000fa"> | <img src="https://github.com/user-attachments/assets/da5ded81-340e-4564-b585-168edc9af045"> |
Issue Details
LoopedVisibleCollectionOverrideDoesNotEnterRealizationRetryfailed intermittently in September 22nd, Candidate — .NET 10 SR12 (10.0.120) #38782.Root Cause
2must be the first visible physical item afterScrollIntoView().IsCollectionCurrentItemOverrideVisible, only requires the item to appear anywhere within the visible range (FirstVisibleIndextoLastVisibleIndex).RetryCount = 1.Description of Change
ScrollIntoView()operation in the existingWaitForSettleAsynchelper to wait for terminal scroll events and a short quiet period.2at a high physical index (> 1000).ScrollTorequest.CenterModeis not exposed to theScrollToRequestedobserver.