From 8752aef75ef56fa9ef95fe925807729a3551b2e4 Mon Sep 17 00:00:00 2001
From: Yaroslav Dynnikov <yaroslav.dynnikov@gmail.com>
Date: Mon, 23 May 2022 17:25:20 +0300
Subject: [PATCH] address review comments 2

---
 test/int/conftest.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/test/int/conftest.py b/test/int/conftest.py
index 06c6a5b03e..0075bdf67a 100644
--- a/test/int/conftest.py
+++ b/test/int/conftest.py
@@ -306,6 +306,7 @@ class Cluster:
     data_dir: str
     base_host: str
     base_port: int
+    max_port: int
     instances: list[Instance] = field(default_factory=list)
 
     def __repr__(self):
@@ -341,6 +342,7 @@ class Cluster:
             peers=peers or [f"{self.base_host}:{self.base_port + 1}"],
         )
 
+        assert self.base_port <= instance.port <= self.max_port
         self.instances.append(instance)
 
         if wait_ready:
@@ -379,15 +381,21 @@ def binary_path(compile) -> str:
 
 @pytest.fixture
 def cluster(binary_path, tmpdir, worker_id) -> Generator[Cluster, None, None]:
-    base_port = 3300 + 100 * xdist_worker_number(worker_id)
-    assert isinstance(base_port, int)
-    assert 3300 <= base_port <= 65535
+    n = xdist_worker_number(worker_id)
+    assert isinstance(n, int)
+    assert n >= 0
+
+    # Provide each worker a dedicated pool of 100 listening ports
+    base_port = 3300 + n * 100
+    max_port = base_port + 99
+    assert max_port <= 65535
 
     cluster = Cluster(
         binary_path=binary_path,
         data_dir=tmpdir,
         base_host="127.0.0.1",
         base_port=base_port,
+        max_port=max_port,
     )
     yield cluster
     cluster.terminate()
-- 
GitLab