Skip to content

[tests] Fix flaky RecordTest.DeskCase_83099_InmutableDictionary on macOS CI#24908

Merged
rolfbjarne merged 1 commit intomainfrom
dev/rolf/issue-24860
Mar 17, 2026
Merged

[tests] Fix flaky RecordTest.DeskCase_83099_InmutableDictionary on macOS CI#24908
rolfbjarne merged 1 commit intomainfrom
dev/rolf/issue-24860

Conversation

@rolfbjarne
Copy link
Copy Markdown
Member

The test fails intermittently when the keychain has stale entries from
previous runs, causing Query to return ItemNotFound while Add returns
DuplicateItem.

Fix the flakiness with three changes:

  • Clean up any stale keychain entry before the test starts
  • In SaveUserPassword, handle the DuplicateItem race by removing the
    stale entry and retrying the add
  • Wrap the test body in try/finally to ensure cleanup on failure
  • Fix the missing $ in TEST 3's interpolated string assertion

Fixes #24860

…cOS CI

The test fails intermittently when the keychain has stale entries from
previous runs, causing Query to return ItemNotFound while Add returns
DuplicateItem.

Fix the flakiness with three changes:
- Clean up any stale keychain entry before the test starts
- In SaveUserPassword, handle the DuplicateItem race by removing the
  stale entry and retrying the add
- Wrap the test body in try/finally to ensure cleanup on failure
- Fix the missing $ in TEST 3's interpolated string assertion

Fixes #24860

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Stabilizes a flaky keychain-related test in the monotouch macOS CI suite by ensuring stale keychain entries don’t interfere with add/query/update flows.

Changes:

  • Pre-cleans and always post-cleans the keychain entry used by DeskCase_83099_InmutableDictionary (try/finally).
  • Makes SaveUserPassword resilient to the “query ItemNotFound + add DuplicateItem” inconsistent keychain state by removing and retrying the add.
  • Fixes an assertion message to correctly use string interpolation.

You can also share your feedback on Copilot code review. Take the survey.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [CI Build #20fdf28] Build passed (Build packages) ✅

Pipeline on Agent
Hash: 20fdf280284efc6003c463378aa2c48e69eed856 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [PR Build #20fdf28] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: 20fdf280284efc6003c463378aa2c48e69eed856 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 20fdf280284efc6003c463378aa2c48e69eed856 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [CI Build #20fdf28] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: 20fdf280284efc6003c463378aa2c48e69eed856 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

🚀 [CI Build #20fdf28] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 156 tests passed 🎉

Tests counts

✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker: All 44 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 11 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 12 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 11 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Monterey (12): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Ventura (13): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download

Pipeline on Agent
Hash: 20fdf280284efc6003c463378aa2c48e69eed856 [PR build]

@rolfbjarne rolfbjarne merged commit 095d77f into main Mar 17, 2026
52 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[tests] RecordTest.DeskCase_83099_InmutableDictionary is flaky on macOS CI

4 participants