Content-Length: 3122 | pFad | http://github.com/postgrespro/testgres/pull/268.patch
thub.com
From d68a35be252ab362684b0d9814714073181d4cf4 Mon Sep 17 00:00:00 2001
From: "d.kovalenko"
Date: Mon, 23 Jun 2025 08:07:54 +0300
Subject: [PATCH] [#256] Port number 65535 is valid for using
This patch corrects PortManager__Generic:
- Valid port range is [1024, 65535]. Old range was [1024, 65535)
- Strange (copy&paste) code for self._available_ports initialization is corrected
- Strange (copy&paste) code for self._reserved_ports initialization is corrected
- New asserts are added
---
testgres/impl/port_manager__generic.py | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/testgres/impl/port_manager__generic.py b/testgres/impl/port_manager__generic.py
index a51af2b..452b8df 100755
--- a/testgres/impl/port_manager__generic.py
+++ b/testgres/impl/port_manager__generic.py
@@ -9,6 +9,9 @@
class PortManager__Generic(PortManager):
+ _C_MIN_PORT_NUMBER = 1024
+ _C_MAX_PORT_NUMBER = 65535
+
_os_ops: OsOperations
_guard: object
# TODO: is there better to use bitmap fot _available_ports?
@@ -16,12 +19,21 @@ class PortManager__Generic(PortManager):
_reserved_ports: typing.Set[int]
def __init__(self, os_ops: OsOperations):
+ assert __class__._C_MIN_PORT_NUMBER <= __class__._C_MAX_PORT_NUMBER
+
assert os_ops is not None
assert isinstance(os_ops, OsOperations)
self._os_ops = os_ops
self._guard = threading.Lock()
- self._available_ports: typing.Set[int] = set(range(1024, 65535))
- self._reserved_ports: typing.Set[int] = set()
+
+ self._available_ports = set(
+ range(__class__._C_MIN_PORT_NUMBER, __class__._C_MAX_PORT_NUMBER + 1)
+ )
+ assert len(self._available_ports) == (
+ (__class__._C_MAX_PORT_NUMBER - __class__._C_MIN_PORT_NUMBER) + 1
+ )
+ self._reserved_ports = set()
+ return
def reserve_port(self) -> int:
assert self._guard is not None
@@ -35,9 +47,13 @@ def reserve_port(self) -> int:
t = None
for port in sampled_ports:
+ assert type(port) == int # noqa: E721
assert not (port in self._reserved_ports)
assert port in self._available_ports
+ assert port >= __class__._C_MIN_PORT_NUMBER
+ assert port <= __class__._C_MAX_PORT_NUMBER
+
if not self._os_ops.is_port_free(port):
continue
@@ -51,6 +67,8 @@ def reserve_port(self) -> int:
def release_port(self, number: int) -> None:
assert type(number) == int # noqa: E721
+ assert number >= __class__._C_MIN_PORT_NUMBER
+ assert number <= __class__._C_MAX_PORT_NUMBER
assert self._guard is not None
assert type(self._reserved_ports) == set # noqa: E721
@@ -62,3 +80,4 @@ def release_port(self, number: int) -> None:
self._reserved_ports.discard(number)
assert not (number in self._reserved_ports)
assert number in self._available_ports
+ return
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/postgrespro/testgres/pull/268.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy