Skip to content

Commit 3220ad1

Browse files
committed
selftests: drv-net: Make rand_port() get a port more reliably
JIRA: https://issues.redhat.com/browse/RHEL-75603 commit 0163250 Author: Gal Pressman <gal@nvidia.com> Date: Mon Feb 24 19:44:15 2025 +0200 selftests: drv-net: Make rand_port() get a port more reliably Instead of guessing a port and checking whether it's available, get an available port from the OS. Reviewed-by: Nimrod Oren <noren@nvidia.com> Signed-off-by: Gal Pressman <gal@nvidia.com> Link: https://patch.msgid.link/20250224174416.499070-4-gal@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Mohammad Heib <mheib@redhat.com>
1 parent cf49fc8 commit 3220ad1

File tree

1 file changed

+4
-11
lines changed
  • tools/testing/selftests/net/lib/py

1 file changed

+4
-11
lines changed

tools/testing/selftests/net/lib/py/utils.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,11 @@ def ethtool(args, json=None, ns=None, host=None):
125125

126126
def rand_port():
127127
"""
128-
Get a random unprivileged port, try to make sure it's not already used.
128+
Get a random unprivileged port.
129129
"""
130-
for _ in range(1000):
131-
port = random.randint(10000, 65535)
132-
try:
133-
with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s:
134-
s.bind(("", port))
135-
return port
136-
except OSError as e:
137-
if e.errno != errno.EADDRINUSE:
138-
raise
139-
raise Exception("Can't find any free unprivileged port")
130+
with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s:
131+
s.bind(("", 0))
132+
return s.getsockname()[1]
140133

141134

142135
def wait_port_listen(port, proto="tcp", ns=None, host=None, sleep=0.005, deadline=5):

0 commit comments

Comments
 (0)