Skip to content

Stabilize QuickAccessDialogTest by warming lazy providers in setUp#4113

Open
vogella wants to merge 1 commit into
eclipse-platform:masterfrom
vogella:lv/quickaccess-test-warmup-lazy-providers
Open

Stabilize QuickAccessDialogTest by warming lazy providers in setUp#4113
vogella wants to merge 1 commit into
eclipse-platform:masterfrom
vogella:lv/quickaccess-test-warmup-lazy-providers

Conversation

@vogella

@vogella vogella commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

The UI-requiring quick access providers are constructed and queried lazily on the first non-empty filter, and that first query runs them on the UI thread. On a cold workbench it can block for many seconds (about 28s on a slow macOS runner), and because the setUp warmup only used an empty filter (which skips those providers), that one-time cost landed inside whichever test typed the first filter and exceeded its timed wait, leaving the table empty.

This warms the providers with a real filter during setUp, so the slow first query runs outside any timed assertion and every test sees the warm, fast path. Test-only change; the lazy provider construction in production is unchanged.

Addresses #4009

@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Test Results

   855 files  ±0     855 suites  ±0   41m 43s ⏱️ - 14m 13s
 8 077 tests ±0   7 834 ✅ ±0  243 💤 ±0  0 ❌ ±0 
20 128 runs   - 5  19 474 ✅  - 5  654 💤 ±0  0 ❌ ±0 

Results for commit b7f3490. ± Comparison against base commit 1d59964.

♻️ This comment has been updated with latest results.

The UI-requiring quick access providers (commands, preferences, actions,
contributed computers, ...) are constructed and queried lazily on the first
non-empty filter. That first query runs each provider on the UI thread and
can block it for many seconds on a cold workbench. The setUp warmup only
opened the dialog with an empty filter, which skips those providers, so the
one-time initialization landed inside whichever test typed the first filter
and could exceed its timed wait. On a slow macOS runner this froze the UI
thread for about 28s and timed out testPreviousChoicesAvailableForExtension
with an empty table.

Type a real filter on the warmup dialog and wait for results so the cold
initialization happens during setUp, outside any timed assertion. Every
subsequent query then hits the warm, fast path.

Addresses eclipse-platform#4009
@vogella vogella force-pushed the lv/quickaccess-test-warmup-lazy-providers branch from 20f83c3 to b7f3490 Compare June 18, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant