Description
Currently, the integration tests in dubbo-go are tightly coupled with the samples. Most of these tests share a hardcoded port (e.g., 20000). This configuration leads to several bottlenecks:
- Sequential Execution: Tests cannot run in parallel due to port conflicts.
- Time Waste: After a test completes, the OS takes time (roughly 15s for
TIME_WAIT) to fully release the port. Subsequent tests must wait for this period, or they will fail to bind the port.
- CI Inefficiency: As the number of integration tests grows, the cumulative wait time becomes a significant overhead in our CI pipeline.
Motivation
By separating integration tests from samples and implementing a dynamic port allocation mechanism, we can:
- Eliminate the 15-second wait between test cases.
- Enable parallel execution of integration tests.
- Improve the stability of the CI environment by avoiding "address already in use" errors.
Expected Outcome
- Integration tests can be executed concurrently.
- Total CI execution time is significantly reduced.
- Developers can run the full test suite locally without manual port cleanup.