Fix flaky vMCP health endpoint tests #2415
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes intermittent test failures in
pkg/vmcp/server/health_test.gothat were occurring in CI due to port conflicts.Problem
The health endpoint tests were flaky because all parallel test instances tried to bind to the default port 4483, causing "address already in use" errors when running with
-parallelflag.Solution
Added Ready() channel to vMCP server (
pkg/vmcp/server/server.go):ready chan struct{}field to signal when server is ready to accept connectionsReady() <-chan struct{}methodStart()Used existing
networking.FindAvailable()utility (pkg/vmcp/server/health_test.go):Improved test synchronization:
srv.Ready()channel instead of arbitrary sleepsTest Plan
Verified with stress testing:
go test -v ./pkg/vmcp/server -run TestHealthEndpoint -count=20 -parallel=4All 60 tests (20 iterations × 3 subtests) passed reliably in ~0.26s.
🤖 Generated with Claude Code