FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

test: Disable three Skia-WASM flakes behind tracked issues by MartinZikmund · Pull Request #24158 · unoplatform/uno · GitHub

test: Disable three Skia-WASM flakes behind tracked issues - #24158

Merged
MartinZikmund merged 2 commits into
masterfrom
dev/mazi/wasm-flake-disables
Aug 24, 2026
Merged

test: Disable three Skia-WASM flakes behind tracked issues#24158
MartinZikmund merged 2 commits into
masterfrom
dev/mazi/wasm-flake-disables

Conversation

MartinZikmund commented Aug 21, 2026
edited
Loading

Copy link
Copy Markdown
Member

GitHub Issue: #24156, #24157, #24147

PR Type:

🏗️ Build or CI related changes

What changed? 🚀

Three runtime tests are excluded on Skia-WASM only, each citing the issue that must re-enable it.

Two of them were caught failing WebAssembly Skia Runtime Tests 0 and 2 (one failure per job) in CI build 229119. In that same build both ran green on every other runtime-test target — Desktop Skia Windows/Linux/macOS, Skia-Android (5 shards) and Skia-iOS (4 shards) — so this is a slow-runtime settle race on the WASM runtime, not a product regression. The third is a long-tracked flake that happened to pass in that build.

Given_ListViewBase.When_Incremental_Load_Default (#24156)

Assert.IsLessThan failed. Actual value <27> is not less than expected value <11>.
No extra item materialized after second scroll: index1=27, index2=11

The last materialized index moved backwards between two identical scroll-to-bottom operations, so the second sample lands mid-recycle. The test samples after a fixed Task.Delay(500) rather than polling for a settled state.

Given_TextBox.When_OuterScrollViewer_BringIntoView_Scrolls_To_Caret (#24157)

Timed out waiting for condition to be met.
TextBox grew but the outer ScrollViewer did not scroll further:
offset 267 (was 466), extent 814, scrollable 514

The waits here were split by failure mode in b085d50c87b precisely because this test was measured failing 6 times in 10 master builds, always as a timeout. That instrumentation now pays off: the extent wait passes, so the TextBox does grow and it is the scroll that never settles.

Given_ListViewBase.When_Incremental_Load_ShouldStop (#24147)

Measured failing 5 times in 10 master builds in the same commit that instrumented it, and tracked as #24147 since, but never actually excluded — only the Native exclusion from #23269 was in place. It passed in build 229119 by luck while its weaker sibling When_Incremental_Load_Default failed, leaving it one unlucky rerun from reddening CI. Polling is not the fix: the test already waits for the condition, then waits for composition animations, then samples with nothing awaited in between, and the index regresses during that settle. Its exclusion joins the existing Native one rather than replacing it.

Same changes are going into feature/breakingchanges via the master-sync PR #24155, where the first two failures were surfaced.

PR Checklist ✅

Copilot AI lite review requested due to automatic review settings August 21, 2026 12:37
github-actions Bot added the area/skia ✏️ Categorizes an issue or PR as relevant to Skia label Aug 21, 2026

github-actions Bot commented Aug 21, 2026
edited
Loading

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 1m 11s —— View job


Review: test: Disable two Skia-WASM flakes behind tracked issues

Verdict: ✅ ship (1 nit, no blockers)

The mechanism is correct: [PlatformCondition(ConditionMode.Exclude, RuntimeTestPlatforms.SkiaWasm)] is the right attribute to skip on Skia-WASM only without touching other targets, per .claude/rules/runtime-tests.md. Both tests remain enabled on all Desktop Skia, Skia-Android, and Skia-iOS targets. The .skia.cs file suffix for the TextBox change is appropriate — it already narrows scope to Skia, and the attribute then excludes just the WASM variant.

Issues by severity:

  • Nit (×2): Code comments are used to cite the tracking issue URLs instead of the [GitHubWorkItem("url")] attribute. The attribute is the repo convention (per runtime-tests.md) and is machine-readable/surfaced in test reports. Inline suggestions posted on both files. Non-blocking.

Cross-cutting: PR title follows Conventional Commits (test:), both issues are tracked (#24156, #24157), and the PR description includes solid reproduction evidence (assertion text, scroll offsets, CI build reference). Nothing else to flag.


Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Pull request overview

This PR reduces CI noise by excluding two known-flaky runtime tests on Skia WASM only, while leaving them enabled on all other runtime-test targets. Each exclusion is annotated with a link to the tracking issue intended to re-enable the test once the underlying settle race is fixed.

Changes:

  • Exclude Given_ListViewBase.When_Incremental_Load_Default on RuntimeTestPlatforms.SkiaWasm (tracked by #24156).
  • Exclude Given_TextBox.When_OuterScrollViewer_BringIntoView_Scrolls_To_Caret on RuntimeTestPlatforms.SkiaWasm (tracked by #24157).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs Excludes a flaky BringIntoView/scroll-settle runtime test on Skia WASM with an issue link.
src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.cs Excludes a flaky incremental-load/materialization runtime test on Skia WASM with an issue link.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Copilot AI review requested due to automatic review settings August 21, 2026 12:45
MartinZikmund changed the title test: Disable two Skia-WASM flakes behind tracked issues test: Disable three Skia-WASM flakes behind tracked issues Aug 21, 2026

github-actions Bot commented Aug 21, 2026
edited
Loading

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 2m 36s —— View job


Review: test: Disable two Skia-WASM flakes behind tracked issues

Verdict: ✅ ship (1 nit on the new commit, consistent with prior review)

The new commit (010c8cf1) extends the existing pattern to disable When_Incremental_Load_ShouldStop on Skia-WASM as well, by OR-ing RuntimeTestPlatforms.SkiaWasm into the existing Native exclusion. The mechanism is correct — ConditionMode.Exclude with a flags OR is the right way to accumulate excluded platforms on a single [PlatformCondition].

Issues by severity:

  • Nit (×1 on new commit): Code comment used to cite the tracking issue instead of [GitHubWorkItem("url")], which is the repo convention per runtime-tests.md and is machine-readable/surfaced in test reports. Inline suggestion posted on Given_ListViewBase.cs:3875. Same as the two nits flagged on the prior commit — all three follow the same pattern.

Cross-cutting: All three disabled tests follow the same shape: [PlatformCondition(ConditionMode.Exclude, RuntimeTestPlatforms.SkiaWasm)] with an inline comment explaining the failure mode and linking the tracking issue. No other concerns.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (1)

src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.cs:3876

  • The trailing inline comment on the combined Native|SkiaWasm exclusion still says it was destabilized by PR #23269, but this PR is adding SkiaWasm exclusion for a different tracked flake (#24147). As written, it implies SkiaWasm is excluded due to #23269, which is misleading for future re-enablement work.
		[PlatformCondition(ConditionMode.Exclude, RuntimeTestPlatforms.Native | RuntimeTestPlatforms.SkiaWasm)] // Destabilized by changes in https://github.com/unoplatform/uno/pull/23269

Copy link
Copy Markdown
Contributor

The build 229158 found UI Test snapshots differences: skia-linux-screenshots: 57, skia-windows-screenshots: 2348, wasm: 11

Details
  • skia-linux-screenshots: 57 changed over 2348

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Buttons.png-dark
    • Buttons.png
    • DisplayInformation.png-dark
    • Examples.png-dark
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • ExpanderColorValidationPage.png
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • DropDownButtonPage.png-dark
    • DropDownButtonPage.png
    • ContextRequested.png-dark
    • ContextRequested.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • ElementLevelTheme.png-dark
    • ElementLevelTheme.png
    • Focus_FocusVisual_Properties.png-dark
  • skia-windows-screenshots: 2348 changed over 2396

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • AppBar_KeyBoard.png
    • AppWindowFeatures.png-dark
    • Attributed_text_Simple.png
    • AutoSuggestBox_BitmapIcon.png-dark
    • BasicAutoSuggestBox.png-dark
    • Battery.png-dark
    • BezierSegment.png-dark
    • BitmapImage_vs_SvgImageSource.png-dark
    • BorderRightwithmargins.png
    • BorderTopwithmargins.png-dark
    • Border_AntiAlias.png
    • Border_BorderThickness.png-dark
    • Border_CornerRadius_Gradient.png-dark
    • Border_CornerRadius_Gradient.png
    • Border_With_Off_Centre_RotateTransform.png-dark
    • Border_With_Off_Centre_RotateTransform.png
    • Button_Enabled_Control_Disabled.png-dark
    • Button_Enabled_Control_Disabled.png
    • CheckBox_Button_UWA_Style.png-dark
    • CheckBox_Button_UWA_Style.png
  • wasm: 11 changed over 1076

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ExpanderTests.WinUIExpanderPage
    • UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Ogg_Extension
    • UITests.Windows_UI_Xaml_Controls.CalendarView.CalendarView_Theming
    • UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Minimal
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewSelectedItems
    • SamplesApp.Microsoft_UI_Xaml_Controls.WebView2Tests.WebView2_EnableDevTools
    • UITests.Uno_Web.Http.CookieManagerTests
    • UITests.Microsoft_UI_Xaml_Controls.WebView2Tests.WebView2_NavigationProperties
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • Uno.UI.Samples.Content.UITests.WebView.WebView_AnchorNavigation
    • UITests.Windows_UI_Xaml_Media_Animation.ColorAnimation_Background

MartinZikmund and others added 2 commits August 22, 2026 11:22
Build 229119 failed WebAssembly Skia Runtime Tests 0 and 2 with exactly one
failure each; every other runtime-test target (Desktop Skia Windows/Linux/
macOS, Skia-Android, Skia-iOS) ran both tests green in that same build, which
is the signature of a slow-runtime settle race rather than a regression.

- Given_ListViewBase.When_Incremental_Load_Default samples materialization
  after a fixed Task.Delay(500), and the last materialized index moved
  backwards between two identical scroll-to-bottom operations (27 then 11),
  so the second sample lands mid-recycle (#24156). This is the weaker sibling
  of When_Incremental_Load_ShouldStop (#24147), which polls and still flakes.
- Given_TextBox.When_OuterScrollViewer_BringIntoView_Scrolls_To_Caret times
  out waiting for the outer ScrollViewer to scroll further; the split waits
  added in b085d50 show the TextBox does grow, so it is the scroll that
  never settles (#24157). It was measured failing 6 times in 10 master builds.

Both excluded on Skia-WASM only, each citing the issue that must re-enable it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CtggTSug9EusdhVcNXXjnH
Measured failing 5 times in 10 master builds in the commit that instrumented
it (b085d50) and tracked since as #24147, but never actually excluded --
only the Native exclusion from #23269 was in place. It passed in build 229119
by luck while its weaker sibling When_Incremental_Load_Default failed, so it
was left one unlucky rerun away from reddening CI again.

Polling is not the fix here: the test already waits for the condition, then
waits for composition animations, then samples with nothing awaited in
between, and the materialized index regresses during that settle.

Joins the Native exclusion rather than replacing it, citing #24147 as the
issue that must re-enable it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CtggTSug9EusdhVcNXXjnH
Copilot AI review requested due to automatic review settings August 22, 2026 09:46
MartinZikmund force-pushed the dev/mazi/wasm-flake-disables branch from 010c8cf to 854581f Compare August 22, 2026 09:46

github-actions Bot commented Aug 22, 2026
edited
Loading

Copy link
Copy Markdown
Contributor

Claude finished @MartinZikmund's task in 3m 28s —— View job


Review: test: Disable three Skia-WASM flakes behind tracked issues

Verdict: ✅ ship (3 nits, no blockers)

The mechanism is correct throughout: [PlatformCondition(ConditionMode.Exclude, RuntimeTestPlatforms.SkiaWasm)] is the right attribute to skip on Skia-WASM only, all three remaining targets (Desktop Skia, Skia-Android, Skia-iOS) are unaffected, and the flags-OR pattern for accumulating excluded platforms on When_Incremental_Load_ShouldStop is correct.

Issues by severity:

  • Nit (×3): All three exclusions use free-form code comments to cite tracking issue URLs rather than the [GitHubWorkItem("url")] attribute. The attribute is the repo convention (per .claude/rules/runtime-tests.md), is machine-readable, and is surfaced in test reports. [GitHubWorkItem] is already in active use in Given_ListViewBase.cs (e.g. lines 4666, 5521). Inline suggestions posted on all three locations. These nits were flagged on the prior two review rounds and remain unaddressed — non-blocking but worth resolving before the next test-maintenance pass.

  • Nit (×1, new): On When_Incremental_Load_ShouldStop the trailing comment // Destabilized by changes in https://github.com/unoplatform/uno/pull/23269 now sits on an attribute that covers both Native and SkiaWasm, but PR Items repeater item variance fixes #23269 only explains the Native half. A maintainer re-enabling the WASM exclusion would incorrectly credit that PR. The suggestion on that line scopes the trailing comment to Native exclusion: to preserve the attribution without misleading future readers.

Cross-cutting: PR title follows Conventional Commits (test:), all three tracking issues (#24156, #24157, #24147) are cited, and the PR description includes solid reproduction evidence. No product code changed.


  • Read changed files
  • Check attribute conventions and comment correctness
  • Post inline findings
  • Post summary

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Copy link
Copy Markdown
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-24158/wasm-skia-net9/index.html

Copy link
Copy Markdown
Contributor

The build 229387 found UI Test snapshots differences: skia-linux-screenshots: 57, skia-windows-screenshots: 2348, wasm: 11

Details
  • skia-linux-screenshots: 57 changed over 2348

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ImageIconPage.png-dark
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • ContextRequested.png-dark
    • ContextRequested.png
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • Buttons.png-dark
    • Buttons.png
    • DisplayInformation.png-dark
    • Examples.png-dark
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • ExpanderColorValidationPage.png
    • DropDownButtonPage.png-dark
    • DropDownButtonPage.png
    • ClipboardTests.png-dark
    • ElementLevelTheme.png-dark
  • skia-windows-screenshots: 2348 changed over 2396

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • AnimatedIconPage.png
    • ApplicationViewSizing.png-dark
    • Attributed_text_FontSize_Changing.png
    • AutoSuggestBox_BitmapIcon.png
    • Basics_Automated.png-dark
    • BindableDrawerLayout_ChangePane.png
    • BorderCenteredwithmargins.png-dark
    • BorderRightwithmargins.png
    • Border_AntiAlias.png
    • Border_BorderThickness.png-dark
    • Border_CornerRadius_Alignments.png
    • Border_CornerRadius_Binding.png-dark
    • Border_Corner_Overlap.png
    • Border_LinearGradientBrush.png-dark
    • Border_With_ScaleTransform.png
    • Border_With_TranslateTransform.png-dark
    • Button_Opacity_Automated.png-dark
    • Button_Opacity_Automated.png
    • CenteredGridinGridwithtwofixedsizechildren.png-dark
    • CenteredGridinGridwithtwofixedsizechildren.png
  • wasm: 11 changed over 1076

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • UITests.Uno_Web.Http.CookieManagerTests
    • UITests.Windows_UI_Xaml_Media_Animation.ColorAnimation_Background
    • SamplesApp.Microsoft_UI_Xaml_Controls.WebView2Tests.WebView2_EnableDevTools
    • UITests.Windows_UI_Xaml_Controls.CalendarView.CalendarView_Theming
    • UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Minimal
    • UITests.Microsoft_UI_Xaml_Controls.WebView2Tests.WebView2_NavigationProperties
    • Uno.UI.Samples.Content.UITests.WebView.WebView_AnchorNavigation
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewSelectedItems
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ExpanderTests.WinUIExpanderPage
    • UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Ogg_Extension

MartinZikmund merged commit 3543cc8 into master Aug 24, 2026
53 checks passed
MartinZikmund deleted the dev/mazi/wasm-flake-disables branch August 24, 2026 05:56
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

Labels

area/skia ✏️ Categorizes an issue or PR as relevant to Skia

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants


Back | FazBrowse Home | New Git URL