[iOS/macCatalyst] Fix Entry cursor reset when typing with TextTransform - #36079
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 36079Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 36079" |
|
Hey there @@SyedAbdulAzeemSF4852! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
|
/azp run maui-pr-uitests , maui-pr-devicetests |
|
Azure Pipelines successfully started running 2 pipeline(s). |
This comment has been minimized.
This comment has been minimized.
MauiBot
left a comment
There was a problem hiding this comment.
Expert Review — 1 findings
See inline comments for details.
| [Fact] | ||
| public async Task CursorPositionPreservedDuringInsertTextWithTextTransformUppercase() | ||
| { | ||
| var entry = new EntryStub(); |
There was a problem hiding this comment.
[moderate] Regression Prevention — The test name CursorPositionPreservedDuringInsertTextWithTextTransformUppercase implies a TextTransform=Uppercase scenario, but EntryStub has no TextTransform property and does not implement ITextElement; there is no way to set it. The test exercises the UpdateMaxLength double-access fix via Core EntryHandler + direct InsertText, which is a valid reproduction of the underlying mechanism, but it does not cover the Controls.Entry.MapText path that applies TextTransform and then calls UpdateMaxLength — the exact flow described in issue #36018. Consider using Controls.Entry with TextTransform = TextTransform.Uppercase (via a Controls-layer handler) to match the reported scenario, or rename the test to CursorPositionPreservedDuringInsertText to accurately describe what is actually being tested.
MauiBot
left a comment
There was a problem hiding this comment.
AI Review Summary
@SyedAbdulAzeemSF4852 — new AI review results are available based on this last commit:
21e3585. To request a fresh review after new comments or commits, comment/review rerun.
🗂️ Review Sessions — click to expand
🚦 Gate — Test Before & After Fix
Gate Result: ✅ PASSED
Platform: IOS · Base: main · Merge base: be0b7019
| Test | Without Fix (expect FAIL) | With Fix (expect PASS) |
|---|---|---|
📱 EntryHandlerTests (CursorPositionPreservedDuringInsertTextWithTextTransformUppercase) Category=Entry |
✅ FAIL — 457s | ✅ PASS — 259s |
🔴 Without fix — 📱 EntryHandlerTests (CursorPositionPreservedDuringInsertTextWithTextTransformUppercase): FAIL ✅ · 457s
(truncated to last 15,000 chars)
5230] 2026-06-25 07:41:08.546282-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Family and Weight Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5512660] 2026-06-25 07:41:08.550950-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Family and Weight Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5552160] 2026-06-25 07:41:08.554865-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Family and Weight Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5583540] 2026-06-25 07:41:08.558104-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Family and Weight Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5607240] 2026-06-25 07:41:08.560507-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Family and Weight Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5655490] 2026-06-25 07:41:08.565298-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Attributes Initialize Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5693730] 2026-06-25 07:41:08.568919-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Attributes Initialize Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5745340] 2026-06-25 07:41:08.574217-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Attributes Initialize Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5773560] 2026-06-25 07:41:08.577169-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Attributes Initialize Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5844350] 2026-06-25 07:41:08.584220-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Family Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5876210] 2026-06-25 07:41:08.587267-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Family Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5913060] 2026-06-25 07:41:08.591041-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Family Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5957910] 2026-06-25 07:41:08.595552-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Size Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.5993880] 2026-06-25 07:41:08.599185-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Size Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.6017380] 2026-06-25 07:41:08.601512-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Size Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.6048110] 2026-06-25 07:41:08.604442-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Font Size Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.6085840] 2026-06-25 07:41:08.608319-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Auto Scaling Enabled Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.6112170] 2026-06-25 07:41:08.611008-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] Auto Scaling Enabled Initializes Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.6114560] 2026-06-25 07:41:08.611267-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] Microsoft.Maui.DeviceTests.EntryHandlerTests+EntryTextStyleTests 0.0728954 ms
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.6116800] 2026-06-25 07:41:08.611480-0700 Microsoft.Maui.Core.DeviceTests[6697:45033]
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.6116900] Test collection for Microsoft.Maui.DeviceTests.EntryHandlerTests+EntryFocusTests
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.7263150] 2026-06-25 07:41:08.726077-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [RTILog] -[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = <null selector>, customInfoType = UIEmojiSearchOperations
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:08.9021900] 2026-06-25 07:41:08.901793-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] UnfocusAndIsFocusedIsWorking
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.0294900] 2026-06-25 07:41:09.029196-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [RTILog] -[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = <null selector>, customInfoType = UIEmojiSearchOperations
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2434640] 2026-06-25 07:41:09.243132-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] FocusAndIsFocusedIsWorking
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2436550] 2026-06-25 07:41:09.243485-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] Microsoft.Maui.DeviceTests.EntryHandlerTests+EntryFocusTests 0.6306354 ms
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2439060] 2026-06-25 07:41:09.243686-0700 Microsoft.Maui.Core.DeviceTests[6697:45033]
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2439230] Test collection for Microsoft.Maui.DeviceTests.EntryHandlerTests+EntryTextInputTests
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2493920] 2026-06-25 07:41:09.249190-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2523910] 2026-06-25 07:41:09.252058-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2564450] 2026-06-25 07:41:09.256146-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2589980] 2026-06-25 07:41:09.258811-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2615290] 2026-06-25 07:41:09.261300-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2636140] 2026-06-25 07:41:09.263435-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2670980] 2026-06-25 07:41:09.266869-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2707070] 2026-06-25 07:41:09.270331-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2750570] 2026-06-25 07:41:09.274740-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2796120] 2026-06-25 07:41:09.279362-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2824270] 2026-06-25 07:41:09.282202-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2851550] 2026-06-25 07:41:09.284903-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2876790] 2026-06-25 07:41:09.287385-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2899640] 2026-06-25 07:41:09.289722-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2927740] 2026-06-25 07:41:09.292549-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.2949500] 2026-06-25 07:41:09.294754-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] TextChanged Events Fire Correctly
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5103970] 2026-06-25 07:41:09.509975-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] [PASS] CursorPositionDoesntResetWhenNativeTextValueChanges
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5113120] 2026-06-25 07:41:09.511048-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] Microsoft.Maui.DeviceTests.EntryHandlerTests+EntryTextInputTests 0.2592837 ms
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5132840] 2026-06-25 07:41:09.513032-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] Failed tests:
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5134110] 2026-06-25 07:41:09.513224-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] 1) [FAIL] CursorPositionPreservedDuringInsertTextWithTextTransformUppercase Test name: CursorPositionPreservedDuringInsertTextWithTextTransformUppercase
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5135370] 2026-06-25 07:41:09.513339-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] Assembly: [Microsoft.Maui.Core.DeviceTests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5135510] Exception messages: Assert.Equal() Failure: Values differ
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5135550] Expected: 3
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5135870] 2026-06-25 07:41:09.513440-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] Actual: 6 Exception stack traces: at Microsoft.Maui.DeviceTests.EntryHandlerTests.<>c.<CursorPositionPreservedDuringInsertTextWithTextTransformUppercase>b__61_0(EntryHandler handler)
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5137250] 2026-06-25 07:41:09.513568-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] at Microsoft.Maui.DeviceTests.HandlerTestBasement`2.<>c__DisplayClass1_0[[Microsoft.Maui.Handlers.EntryHandler, Microsoft.Maui, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Microsoft.Maui.DeviceTests.Stubs.EntryStub, Microsoft.Maui.Core.DeviceTests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]].<AttachAndRun>b__0(EntryHandler handler)
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5138140] 2026-06-25 07:41:09.513692-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] at Microsoft.Maui.DeviceTests.HandlerTestBasement`2.<>c__DisplayClass4_0`1[[Microsoft.Maui.Handlers.EntryHandler, Microsoft.Maui, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[Microsoft.Maui.DeviceTests.Stubs.EntryStub, Microsoft.Maui.Core.DeviceTests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<AttachAndRun>b__0(IPlatformViewHandler handler)
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5139480] 2026-06-25 07:41:09.513780-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] at Microsoft.Maui.DeviceTests.AssertionExtensions.<>c__DisplayClass12_1`2[[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.Maui.IPlatformViewHandler, Microsoft.Maui, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]].<AttachAndRun>b__1()
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5141250] 2026-06-25 07:41:09.513878-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] at Microsoft.Maui.DeviceTests.AssertionExtensions.<AttachAndRun>d__51`1[[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5141340] 2026-06-25 07:41:09.513947-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] at Microsoft.Maui.DeviceTests.AssertionExtensions.<AttachAndRun>d__51`1[[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5142810] 2026-06-25 07:41:09.514045-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] at Microsoft.Maui.DeviceTests.AssertionExtensions.<>c__DisplayClass12_0`2.<<AttachAndRun>g__Run|0>d[[System.Boolean, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.Maui.IPlatformViewHandler, Microsoft.Maui, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null]].MoveNext()
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5143000] --- End of stack trace from previous location ---
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5143130] 2026-06-25 07:41:09.514168-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] at Microsoft.Maui.DeviceTests.EntryHandlerTests.CursorPositionPreservedDuringInsertTextWithTextTransformUppercase()
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5143180] --- End of stack trace from previous location ---
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5143210] Execution time: 0.4355974
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5143240] Test trait name: Category
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5143270] value: Entry
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5152160] 2026-06-25 07:41:09.515008-0700 Microsoft.Maui.Core.DeviceTests[6697:45583] Tests run: 233 Passed: 231 Inconclusive: 0 Failed: 1 Ignored: 1
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5187750] 2026-06-25 07:41:09.518455-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] Xml file was written to the provided writer.
�[40m�[37mdbug�[39m�[22m�[49m: [07:41:09.5188670] 2026-06-25 07:41:09.518656-0700 Microsoft.Maui.Core.DeviceTests[6697:45033] Tests run: 1258 Passed: 231 Inconclusive: 0 Failed: 1 Ignored: 1026
�[40m�[37mdbug�[39m�[22m�[49m: ==================== End of ApplicationLog ====================
�[40m�[37mdbug�[39m�[22m�[49m:
�[40m�[32minfo�[39m�[22m�[49m: Uninstalling the application 'com.microsoft.maui.core.devicetests' from 'iPhone 11 Pro'
�[40m�[37mdbug�[39m�[22m�[49m:
�[40m�[37mdbug�[39m�[22m�[49m: Running /Applications/Xcode_26.0.1.app/Contents/Developer/usr/bin/simctl
�[40m�[37mdbug�[39m�[22m�[49m: Process simctl exited with 0
�[40m�[32minfo�[39m�[22m�[49m: Application 'com.microsoft.maui.core.devicetests' was uninstalled successfully
�[40m�[32minfo�[39m�[22m�[49m: <<XHARNESS_RESULT_START>>
{
"version": 1,
"machineName": "G90PQM77TC-1",
"exitCode": 1,
"exitCodeName": "TESTS_FAILED",
"platform": "apple",
"device": "iPhone 11 Pro",
"deviceOsVersion": "26.0",
"files": [
{
"name": "test-ios-simulator-64_26.0-A5A2B879-2972-4469-92C6-B6A7C7B57123.log",
"type": "executionlog"
},
{
"name": "list-ios-simulator-64_26.0-20260625_074012.log",
"type": "devicelist"
},
{
"name": "test-ios-simulator-64_26.0-20260625_074021.log",
"type": "testlog"
},
{
"name": "iPhone 11 Pro.log",
"type": "systemlog"
},
{
"name": "Microsoft.Maui.Core.DeviceTests.log",
"type": "systemlog"
},
{
"name": "com.microsoft.maui.core.devicetests.log",
"type": "applicationlog"
},
{
"name": "xunit-test-ios-simulator-64_26.0-20260625_074021.xml",
"type": "xmllog"
}
]
}
<<XHARNESS_RESULT_END>>
XHarness exit code: 1 (TESTS_FAILED)
Passed: 0
Failed: 0
Tests completed with exit code: 1
🟢 With fix — 📱 EntryHandlerTests (CursorPositionPreservedDuringInsertTextWithTextTransformUppercase): PASS ✅ · 259s
(truncated to last 15,000 chars)
pplication/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : monoeg_g_log
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7097070] 0x10a1b2848 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_aot_module
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7097190] 0x10a28c618 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_load_from
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7097230] 0x10a28c134 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_open
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7097280] 0x10a28d454 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_open
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7106250] 0x109df9ddc - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7106470] 0x10a28e470 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : invoke_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7106560] 0x10a28b3f8 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_byname
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7106800] 0x10a1bc0b0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_image
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7106910] 0x10a1b27e0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_aot_module
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7106960] 0x10a28c618 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_load_from
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107020] 0x10a28c134 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_open
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107270] 0x10a28d454 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_open
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107360] 0x109df9ddc - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107400] 0x10a28e470 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : invoke_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107440] 0x10a28b3f8 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_byname
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107570] 0x10a1bc0b0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_image
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107620] 0x10a1b27e0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_aot_module
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107740] 0x10a28c618 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_load_from
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7107950] 0x10a28c134 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_open
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7108010] 0x10a28d454 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_open
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7108050] 0x109df9ddc - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7108160] 0x10a28e470 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : invoke_assembly_preload_hook
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7108270] 0x10a28b3f8 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_assembly_request_byname
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7108320] 0x10a1bc0b0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_image
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7108820] 0x10a1b27e0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : load_aot_module
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7108970] 0x10a1b6fac - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_aot_get_method
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7109030] 0x10a13bf3c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_jit_compile_method_with_opt
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7109120] 0x10a139cac - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_jit_runtime_invoke
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7111480] 0x10a2fa910 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_runtime_invoke_checked
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7111670] 0x10a2ad818 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : create_exception_two_strings
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7111730] 0x10a2ad59c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_exception_from_name_two_strings_checked
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7111820] 0x10a28796c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_runtime_init_checked
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7111880] 0x10a13963c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mini_init
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7112040] 0x10a190d1c - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libmonosgen-2.0.dylib : mono_jit_init
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7112100] 0x109df9014 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_bridge_initialize
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7112180] 0x109dfa1e8 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/libxamarin-dotnet.dylib : xamarin_main
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7841870] 0x104cfc2c0 - /Users/cloudtest/Library/Developer/CoreSimulator/Devices/A5A2B879-2972-4469-92C6-B6A7C7B57123/data/Containers/Bundle/Application/69147919-D0BA-4EC9-B4DB-D103837A4BBC/Microsoft.Maui.Core.DeviceTests.app/Microsoft.Maui.Core.DeviceTests : main
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7842720] 0x1099a93d0 - Unknown
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7842800] 0x109afbda4 - Unknown
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7842860]
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7842920] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7842970] Basic Fault Address Reporting
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843010] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843060] Memory around native instruction pointer (0x109cfc88c):0x109cfc87c c0 03 5f d6 c0 03 5f d6 10 29 80 d2 01 10 00 d4 .._..._..)......
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843100] 0x109cfc88c e3 00 00 54 fd 7b bf a9 fd 03 00 91 16 e3 ff 97 ...T.{..........
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843130] 0x109cfc89c bf 03 00 91 fd 7b c1 a8 c0 03 5f d6 c0 03 5f d6 .....{...._..._.
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843160] 0x109cfc8ac 70 0a 80 d2 01 10 00 d4 e3 00 00 54 fd 7b bf a9 p..........T.{..
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843200]
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843360] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843410] Managed Stacktrace:
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843450] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843490] at <unknown> <0xffffffff>
�[40m�[37mdbug�[39m�[22m�[49m: [07:44:57.7843600] =================================================================
�[40m�[37mdbug�[39m�[22m�[49m: ==================== End of ApplicationLog ====================
�[40m�[37mdbug�[39m�[22m�[49m:
�[40m�[32minfo�[39m�[22m�[49m: Uninstalling the application 'com.microsoft.maui.core.devicetests' from 'iPhone 11 Pro'
�[40m�[37mdbug�[39m�[22m�[49m:
�[40m�[37mdbug�[39m�[22m�[49m: Running /Applications/Xcode_26.0.1.app/Contents/Developer/usr/bin/simctl
�[40m�[37mdbug�[39m�[22m�[49m: Process simctl exited with 0
�[40m�[32minfo�[39m�[22m�[49m: Application 'com.microsoft.maui.core.devicetests' was uninstalled successfully
�[40m�[32minfo�[39m�[22m�[49m: <<XHARNESS_RESULT_START>>
{
"version": 1,
"machineName": "G90PQM77TC-1",
"exitCode": 0,
"exitCodeName": "SUCCESS",
"platform": "apple",
"device": "iPhone 11 Pro",
"deviceOsVersion": "26.0",
"files": [
{
"name": "test-ios-simulator-64_26.0-A5A2B879-2972-4469-92C6-B6A7C7B57123.log",
"type": "executionlog"
},
{
"name": "list-ios-simulator-64_26.0-20260625_074448.log",
"type": "devicelist"
},
{
"name": "iPhone 11 Pro.log",
"type": "systemlog"
},
{
"name": "Microsoft.Maui.Core.DeviceTests.log",
"type": "systemlog"
},
{
"name": "com.microsoft.maui.core.devicetests.log",
"type": "applicationlog"
}
]
}
<<XHARNESS_RESULT_END>>
XHarness exit code: 0
Passed: 0
Failed: 0
Tests completed successfully
📁 Fix files reverted (1 files)
src/Core/src/Platform/iOS/TextFieldExtensions.cs
📱 UI Tests — ViewBaseTests
Detected UI test categories: ViewBaseTests
❌ Deep UI tests — 13 passed, 99 failed across 1 category on platform-pool agent (replaces in-process counts above).
🧪 UI Test Execution Results (deep, platform pool)
| Category | Tests | Snapshot diffs |
|---|---|---|
ViewBaseTests |
13/112 (99 ❌) | 198 diff PNGs |
❌ ViewBaseTests — 99 failed tests
ContentView_ClipWithShadow
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.ContentView_ClipWithShadow() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 586
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.Runt
...
FirstCustomPageWithIconImageChanged
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentViewFeatureTests.FirstCustomPageWithIconImageChanged() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 274
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at
...
DefaultContentWithBackgroundColor
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentViewFeatureTests.DefaultContentWithBackgroundColor() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 106
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at S
...
ImageButton_ClipWithScale
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.ImageButton_ClipWithScale() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 948
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.Runti
...
Image_ClipWithEllipseGeometry
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithEllipseGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 303
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.R
...
Image_ClipWithRoundRectangleGeometry
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithRoundRectangleGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 319
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Refle
...
DarkTheme_SearchBar_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.DarkTheme_SearchBar_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 266
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
VerifyBackgroundColorCleared
System.InvalidOperationException :
Snapshot different than baseline: VerifyBackgroundColorCleared.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VerifyBackgroundColorCleared.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachmen
...
Border_ClipWithStrokeColorGreen
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Border_ClipWithStrokeColorGreen() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 90
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.
...
VisualTransform_ScaleYWithAnchorXAndRotationY
System.InvalidOperationException :
Snapshot different than baseline: VisualTransform_ScaleYWithAnchorXAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VisualTransform_ScaleYWithAnchorXAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the
...
ContentView_ClipNull_NoCrash
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.ContentView_ClipNull_NoCrash() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 785
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.Ru
...
VisualTransform_ScaleWithAnchorXAndRotationY
System.InvalidOperationException :
Snapshot different than baseline: VisualTransform_ScaleWithAnchorXAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VisualTransform_ScaleWithAnchorXAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the ba
...
VisualTransform_AnchorY_ScaleXWithRotationX
System.InvalidOperationException :
Snapshot different than baseline: VisualTransform_AnchorY_ScaleXWithRotationX.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VisualTransform_AnchorY_ScaleXWithRotationX.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the base
...
ContentView_ClipWithRectangleGeometry
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.ContentView_ClipWithRectangleGeometry() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 533
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Refl
...
Image_ClipWithPolyBezierSegmentPath
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithPolyBezierSegmentPath() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 415
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflec
...
DarkTheme_RadioButton_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.DarkTheme_RadioButton_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 125
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
VisualTransform_ScaleXWithAnchorYAndRotationY
System.InvalidOperationException :
Snapshot different than baseline: VisualTransform_ScaleXWithAnchorYAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VisualTransform_ScaleXWithAnchorYAndRotationY.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the
...
VisualTransform_RotationWithRotationX
System.InvalidOperationException :
Snapshot different than baseline: VisualTransform_RotationWithRotationX.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VisualTransform_RotationWithRotationX.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
...
LightTheme_SearchBar_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.LightTheme_SearchBar_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 256
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
LightTheme_Editor_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.LightTheme_Editor_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 276
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at Syste
...
Image_ClipWithPolyQuadraticBezierSegmentPath
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipWithPolyQuadraticBezierSegmentPath() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 447
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at Syst
...
FirstCustomPageWithBackgroundColor
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentViewFeatureTests.FirstCustomPageWithBackgroundColor() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentViewFeatureTests.cs:line 216
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at
...
BoxView_ClipWithShadow
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.BoxView_ClipWithShadow() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 197
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeM
...
DarkTheme_EditorAndPlaceholderColor_VerifyVisualState
System.InvalidOperationException :
Snapshot different than baseline: DarkTheme_EditorAndPlaceholderColor_VerifyVisualState.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: DarkTheme_EditorAndPlaceholderColor_VerifyVisualState.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug),
...
DarkTheme_Editor_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.DarkTheme_Editor_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 286
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System
...
Image_ClipNull_NoCrash
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Image_ClipNull_NoCrash() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 725
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeM
...
Button_ClipWithShadow
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.Button_ClipWithShadow() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 264
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeMe
...
BoxView_ClipWithCornerRadius
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ClipFeatureTests.BoxView_ClipWithCornerRadius() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ClipFeatureTests.cs:line 176
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.Ru
...
DarkTheme_DatePicker_VerifyVisualState
System.InvalidOperationException : Unable to extract difference percentage from exception message.
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.AppThemeFeatureTests.DarkTheme_DatePicker_VerifyVisualState() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/AppThemeFeatureTests.cs:line 105
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
VisualTransform_Rotation
System.InvalidOperationException :
Snapshot different than baseline: VisualTransform_Rotation.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VisualTransform_Rotation.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or dow
...
(+69 more — see TRX in artifact)
📎 Download drop-deep-uitests artifact (TRX + snapshot diffs)
🔗 Regression Cross-Reference
🔍 Regression Cross-Reference
🟡 Overlaps with prior bug-fix PRs — same files modified, but no exact line revert detected.
| File | Fix PR | Fixed issue(s) |
|---|---|---|
src/Core/src/Platform/iOS/TextFieldExtensions.cs |
#32889 | #32886 |
🧪 Regression Tests to Verify
These tests were added by the overlapping fix PRs. Running them to verify no side-effect regressions:
| Fix PR | Type | Test | Filter |
|---|---|---|---|
| #32889 | UITest | Issue32886 | Issue32886 |
🧪 Regression Test Results
❌ FAILED — 0 passed, 1 failed, 0 skipped
| Fix PR | Test | Type | Result |
|---|---|---|---|
| #32889 | Issue32886 | UITest | ❌ FAILED |
📋 Pre-Flight — Context & Validation
Issue: #36018 - [MAUI iOS] Cursor jumps to the end of text in an Entry
PR: #36079 - [iOS/macCatalyst] Fix Entry cursor reset when typing with TextTransform
Platforms Affected: iOS, MacCatalyst
Files Changed: 1 implementation, 1 test
Key Findings
- The PR fixes
UITextField/Entry max-length formatting by cachingAttributedTextbefore trimming and only assigning whenTrimToMaxLengthreturns a different reference. - The linked issue reports iOS Entry cursor jumps with
TextTransform=UpperCase; issue comments also validate Android/iOS reproduction, though this PR is scoped to iOS/MacCatalyst Entry platform code. - The PR adds an iOS Core device test:
EntryHandlerTests.CursorPositionPreservedDuringInsertTextWithTextTransformUppercase. - Prior PR/issue comments contain automation and trigger comments only; no prior inline review findings were present in the public review-comment surface.
- Code review identified an adjacent identical pattern in
TextViewExtensions.UpdateMaxLengthfor Editor; that is a discussion point for whether scope should expand beyond Entry. - Impacted UI category: Entry. Mandatory regression cross-reference test:
BuildAndRunHostApp.ps1 -Platform ios -TestFilter "Issue32886".
Code Review Summary
Verdict: NEEDS_DISCUSSION
Confidence: low
Errors: 0 | Warnings: 2 | Suggestions: 0
Key code review findings:
⚠️ src/Core/src/Platform/iOS/TextViewExtensions.cs:43-45has the same double-accessAttributedText/!=pattern forUITextView/Editor and may preserve the same cursor-reset behavior outside Entry.⚠️ src/Core/tests/DeviceTests/Handlers/Entry/EntryHandlerTests.iOS.cs:676names the test as TextTransform-specific, but the test body does not configure TextTransform; the test still validates the general cursor-preservation behavior.- Failure probe:
nullAttributedTextremains safe becauseTrimToMaxLengthreturnsnulland no assignment occurs. - Failure probe: default
MaxLengthreturns the same attributed-string reference, so the PR skips redundant assignment on normal typing. - Failure probe: actual trimming still returns a new attributed string and assigns it, preserving max-length behavior.
- Blast radius: runs for all iOS/MacCatalyst Entry instances during formatting/typing, but reduces redundant platform assignments and adds no static/shared state.
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| PR | PR #36079 | Cache UITextField.AttributedText, call TrimToMaxLength, and assign only when the returned reference differs. |
✅ PASSED (Gate) | src/Core/src/Platform/iOS/TextFieldExtensions.cs, src/Core/tests/DeviceTests/Handlers/Entry/EntryHandlerTests.iOS.cs |
Original PR. Gate was pre-run and passed; not re-run in this phase. |
🔬 Code Review — Deep Analysis
Code Review — PR #36079
Independent Assessment
What this changes: UpdateMaxLength in TextFieldExtensions.cs now caches textField.AttributedText into a local variable before calling TrimToMaxLength, and replaces the != guard with ReferenceEquals. A new device test verifies that cursor position is preserved after mid-text insertion.
Inferred motivation: Each call to textField.AttributedText through the ObjC bridge returns a new managed wrapper around the same native object. The original != guard was therefore always true, causing textField.AttributedText = newText to be executed on every call even when no trimming was needed. UIKit uses an AttributedText assignment as a signal to reset the cursor to end-of-text. By caching the first read and using ReferenceEquals, the assignment is skipped when TrimToMaxLength returns the same instance.
Is the approach sound? Yes. TrimToMaxLength returns the same reference when no trimming occurs and returns a substring when trimming is needed:
public static NSAttributedString? TrimToMaxLength(this NSAttributedString? attributedString, int maxLength) =>
maxLength >= 0 && attributedString?.Length > maxLength
? attributedString.Substring(0, maxLength)
: attributedString;ReferenceEquals distinguishes these two paths without content comparison.
Reconciliation with PR Narrative
Author claims: The bug is caused by UITextField.AttributedText returning a new C# wrapper for the same native ObjC instance on each access, making != always true, causing unconditional AttributedText assignment on every keystroke and resetting cursor position. The fix caches the attributed text and uses ReferenceEquals. The linked issue is #36018.
Agreement/disagreement: The root-cause analysis matches the code and the fix is minimal for Entry. The notable gap is that TextViewExtensions.UpdateMaxLength for Editor has the same double-access pattern and is not changed by this PR.
Prior Review Reconciliation
No prior ❌ Error findings found. The public PR issue comments contain automation/trigger comments only, and the public inline review-comments endpoint returned no comments.
Blast Radius Assessment
- Runs for all instances: Yes.
UpdateMaxLengthruns for iOS/MacCatalyst Entry formatting updates, but the change only reduces redundantAttributedTextassignment. - Startup impact: No. This executes when text/formatting updates occur, not during app startup.
- Static/shared state: No.
CI Status
- Required-check result: Undetermined in this environment.
gh pr checks --requiredcould not run because GitHub CLI is unauthenticated. - Classification: Undetermined.
- Action taken: Confidence capped to low.
Findings
⚠️ Warning — Parallel bug in TextViewExtensions.UpdateMaxLength not fixed
src/Core/src/Platform/iOS/TextViewExtensions.cs:43-45 has the same double-access pattern:
var newText = textView.AttributedText.TrimToMaxLength(editor.MaxLength);
if (newText != null && textView.AttributedText != newText)
textView.AttributedText = newText;If UITextView.AttributedText has the same wrapper behavior, Editor can still reset cursor position for the same max-length formatting path. This is not necessarily required for an Entry-only PR, but it is adjacent and should be considered.
⚠️ Warning — Test name does not match the test scenario
src/Core/tests/DeviceTests/Handlers/Entry/EntryHandlerTests.iOS.cs:676 names the test CursorPositionPreservedDuringInsertTextWithTextTransformUppercase, but the test body creates a plain EntryStub and does not configure TextTransform. The test still validates cursor preservation for the relevant UpdateMaxLength path, but the name implies a TextTransform setup that is not present.
Failure-Mode Probing
AttributedTextisnull:TrimToMaxLengthreturnsnull; the guard prevents assignment.- Default
MaxLength:TrimToMaxLengthreturns the same attributed string reference;ReferenceEqualsprevents redundant assignment. - Actual over-max-length text:
TrimToMaxLengthreturns a new substring; assignment still occurs, preserving max-length behavior. - Handler reconnect/disconnect: no new subscriptions or static state are introduced.
- Character spacing: non-zero character spacing can still assign
AttributedText; this PR is scoped toUpdateMaxLength.
Verdict: NEEDS_DISCUSSION
Confidence: low (platform-specific handler code and CI status undetermined in this environment)
Summary: The Entry fix is technically sound and narrowly targets the redundant iOS attributed-text assignment. The main discussion point is whether the same TextViewExtensions.UpdateMaxLength issue should be fixed for Editor at the same time; the test name should also be aligned with the actual scenario.
🛠️ Fix — Analysis & Comparison
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| 1 | try-fix | Precondition length guard: return before trimming/assignment when AttributedText is null, MaxLength < 0, or current length is within max; also apply to TextViewExtensions. |
✅ PASS | 2 files | Initially failed compile with nuint/nint comparison; corrected to (nint). Broader than PR because it fixes Editor too. |
| 2 | try-fix | Semantic post-trim guard: assign only when newText.Length < attributedText.Length. |
✅ PASS | 1 file | Narrowest passing alternative; avoids PR's object identity dependency. |
| PR | PR #36079 | Cache UITextField.AttributedText and use ReferenceEquals(attributedText, newText) after TrimToMaxLength. |
✅ PASSED (Gate) | 2 files | Original PR; gate was completed before this run. |
Cross-Pollination
| Model | Round | New Ideas? | Details |
|---|---|---|---|
| maui-expert-reviewer | 1 | Yes | Suggested try-fix-1: precondition length guard, including the adjacent TextViewExtensions path. |
| maui-expert-reviewer | 2 | Yes | Suggested try-fix-2: semantic post-trim length comparison, narrower than try-fix-1 and distinct from the PR's ReferenceEquals. |
| maui-expert-reviewer | Exhaustion | No | NO NEW IDEAS; remaining vectors were helper contract changes or invasive platform-view setter interception, neither better than try-fix-2. |
Test Commands
| Candidate | Primary Test | Mandatory Regression |
|---|---|---|
| try-fix-1 | pwsh .github/skills/run-device-tests/scripts/Run-DeviceTests.ps1 -Project Core -Platform ios -TestFilter "Category=Entry" — ✅ PASS |
pwsh .github/scripts/BuildAndRunHostApp.ps1 -Platform ios -TestFilter "Issue32886" — ✅ PASS |
| try-fix-2 | pwsh .github/skills/run-device-tests/scripts/Run-DeviceTests.ps1 -Project Core -Platform ios -TestFilter "Category=Entry" — ✅ PASS |
pwsh .github/scripts/BuildAndRunHostApp.ps1 -Platform ios -TestFilter "Issue32886" — ✅ PASS |
Exhausted: Yes
Selected Fix: Candidate #2 — It is a same-scope, one-file alternative that uses the semantic result of trimming rather than managed wrapper/reference identity. Candidate #1 also passed and covers the adjacent Editor path, but that broader scope is less clearly appropriate for an Entry-only PR.
🏁 Report — Final Recommendation
Comparative Report — PR #36079
Candidates
| Candidate | Approach | Regression result | Review status | Rank |
|---|---|---|---|---|
pr-plus-reviewer |
Keep the PR's one-read AttributedText + ReferenceEquals guard, and apply expert feedback by making test coverage accurately reflect both the Core mechanism and the Controls TextTransform=Uppercase issue path. |
PR gate passed; reviewer-applied test change was sandbox-only and not rerun. | Best combination of sound production fix and corrected regression coverage. | 1 |
pr |
Cache UITextField.AttributedText, call TrimToMaxLength, and assign only when the returned instance is not the same managed object. |
✅ Gate passed — tests fail without fix and pass with fix. | Production fix is sound, but the added test is named as a TextTransform regression without setting TextTransform. | 2 |
try-fix-2 |
Same PR scope, but assign only when TrimToMaxLength returns a shorter attributed string (newText.Length < attributedText.Length). |
✅ PASS — Entry device tests and mandatory Issue32886 regression passed. |
Strong same-scope alternative that avoids object identity, but it inherits the PR's test coverage gap and is not materially safer than the PR helper-contract identity guard. | 3 |
try-fix-1 |
Precondition guard: return when AttributedText is null, max length is disabled, or current length is already within max; also applies the same guard to TextViewExtensions/Editor. |
✅ PASS — Entry device tests and mandatory Issue32886 regression passed. |
Technically valid and broader, but it expands scope to Editor without this Entry-focused PR requiring it. | 4 |
No candidate failed regression tests. If any candidate had failed, it would be ranked below the passing candidates regardless of design preference.
Analysis
The raw PR production fix is correct for the root cause described in pre-flight: TrimToMaxLength returns the same NSAttributedString argument when no trimming is needed, so caching textField.AttributedText once and comparing the returned value with ReferenceEquals avoids the false inequality caused by multiple managed wrappers over the same native Objective-C instance. Real trimming still produces a substring and assigns it, so max-length behavior is preserved.
try-fix-2 is a good independent alternative because it uses the semantic fact that trimming shortens the text. However, that does not make it clearly superior: the current helper's no-op contract already returns the same argument, and the PR's identity guard is precise about whether the helper returned a replacement object. try-fix-1 also works, but its Editor/TextView change increases blast radius beyond the Entry/iOS issue being fixed.
The expert reviewer found no production-code defect. The only actionable issue is that the added Core handler test does not actually exercise TextTransform=Uppercase; it validates the underlying cursor-preservation mechanism. pr-plus-reviewer is therefore the strongest candidate because it keeps the minimal production fix and corrects the test story rather than changing working production code.
Winner
Winner: pr-plus-reviewer
Rationale: It preserves the PR's localized, passing production fix and incorporates the expert reviewer's only actionable feedback by making regression coverage match the reported TextTransform scenario. The try-fix candidates passed their regression runs, but neither provides a decisive production-code advantage over the PR fix, and both leave the reviewer-identified test coverage issue unaddressed.
🧭 Next Steps — review latest findings
No alternative fix was selected for this run. Review the session findings and CI results before merging.
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!
Issue Details
Root Cause
Description of Change
Issues Fixed
Fixes #36018
Validated the behaviour in the following platforms
Output
Without_Fix.mov
With_Fix.mov