-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[Testing] Re-saved ShouldFlyoutBeVisibleAfterMaximizingWindow test case images in PR 33185 - [12/22/2025] Candidate #33271
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: inflight/candidate
Are you sure you want to change the base?
Conversation
|
Hey there @@TamilarasanSF4853! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
Summary of unit test failure root cause Test: Maui18123.MultiBindingShouldNotThrow ------------------------------------------------------------------------------- Root Cause AnalysisWhat PR #32961 Changed The PR introduced a dependency mechanism to fix issue #31939 (CommandParameter - Added DependsOn() method to BindableProperty - allows declaring that Command depends on CommandParameter Why Maui18123 Test HangsThe test has a specific combination that creates an infinite recursion loop: Test Scenario: - 2 Buttons (deleteBtn, editBtn) The Infinite Loop: - Button.SendClicked() → executes Command → changes Mode property The critical issue: Step 8's ForceBindingApply() is being called on a ------------------------------------------------------------------------------- Fix AttemptsAttempt 1: Add _applying guard in ForceBindingApply ✗ if (_applying) return; Why it failed: _applying is only set during SetValueActual(), not during the Attempt 2: Track force-applying properties per instance ✗ HashSet _forceApplyingProperties; Why it failed: The recursion happens across different code paths (DataTrigger → Attempt 3: ThreadStatic guard in GetCanExecute ✗ [ThreadStatic] static bool _isEvaluatingCanExecute; Why it failed: Doesn't prevent the issue when multiple button instances share Attempt 4: Instance-level HashSet in GetCanExecute ✓ (Partially) [ThreadStatic] static HashSet? _evaluatingInstances; Current status: This SHOULD work theoretically, but tests still hang. The issue ------------------------------------------------------------------------------- The fundamental design issue is: ForceBindingApply() doesn't distinguish between: - ❌ Pending bindings that haven't resolved yet (what it was designed to fix) When a DataTrigger sets a new MultiBinding as CommandParameter, that binding IS ------------------------------------------------------------------------------- Summary PR #32961's ForceBindingApply() mechanism creates an infinite loop with the The test needs to either be: - Skipped with documentation of the known issue |
This reverts commit 33ecfef.
This PR addresses the UI test image failures that occurred in the inflight/candidate branch #33185 and includes updates to improve rendering and test stability across platforms.
Test cases: