Skip to content

Replace Thread.sleep() with proper synchronization in tests#1773

Open
fbricon wants to merge 1 commit intoeclipse-lemminx:mainfrom
fbricon:speedup-tests
Open

Replace Thread.sleep() with proper synchronization in tests#1773
fbricon wants to merge 1 commit intoeclipse-lemminx:mainfrom
fbricon:speedup-tests

Conversation

@fbricon
Copy link
Copy Markdown
Contributor

@fbricon fbricon commented Mar 11, 2026

Tests were using Thread.sleep() (up to 5 seconds each) to wait for
async operations like resource downloads and validation triggers,
making the test suite unnecessarily slow (~71s test time).

Key changes:

  • BaseFileTempTest: replace sleep(1050) with Files.setLastModifiedTime()
    to ensure filesystem change detection without waiting
  • XMLLanguageService: return download futures from publishDiagnostics()
    so tests can await them directly
  • XMLAssert: add awaitDownloads() helper, remove retrigger callback
  • MockXMLLanguageClient: add waitForDiagnosticCount() polling helper
  • Replace all 5-second HACK sleeps with awaitDownloads()
  • Replace async validation sleeps with waitForDiagnosticCount()
  • DocumentLifecycleParticipantTest: poll for lifecycle callback completion
  • CacheResourcesManagerTest: reduce cache TTL from 1s to 100ms

Build time reduced from ~1m17s to ~15s (5x faster).

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Tests were using Thread.sleep() (up to 5 seconds each) to wait for
async operations like resource downloads and validation triggers,
making the test suite unnecessarily slow (~71s test time).

Key changes:
- BaseFileTempTest: replace sleep(1050) with Files.setLastModifiedTime()
  to ensure filesystem change detection without waiting
- XMLLanguageService: return download futures from publishDiagnostics()
  so tests can await them directly
- XMLAssert: add awaitDownloads() helper, remove retrigger callback
- MockXMLLanguageClient: add waitForDiagnosticCount() polling helper
- Replace all 5-second HACK sleeps with awaitDownloads()
- Replace async validation sleeps with waitForDiagnosticCount()
- DocumentLifecycleParticipantTest: poll for lifecycle callback completion
- CacheResourcesManagerTest: reduce cache TTL from 1s to 100ms

Build time reduced from ~1m17s to ~15s (5x faster).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@fbricon fbricon requested a review from angelozerr March 11, 2026 11:18
@angelozerr
Copy link
Copy Markdown
Contributor

@fbricon this PR looks very good!

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.

2 participants