aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/net/lib/py/utils.py
diff options
context:
space:
mode:
authorGal Pressman <[email protected]>2025-02-24 17:44:15 +0000
committerJakub Kicinski <[email protected]>2025-02-26 02:31:05 +0000
commit0163250039c3a861f922a293f6108880b2d4516f (patch)
tree98b2994b4e5bce6ef14ebe541174a1ad6ee3d73c /tools/testing/selftests/net/lib/py/utils.py
parentnet/mlx5e: Symmetric OR-XOR RSS hash control (diff)
downloadkernel-0163250039c3a861f922a293f6108880b2d4516f.tar.gz
kernel-0163250039c3a861f922a293f6108880b2d4516f.zip
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 <[email protected]> Signed-off-by: Gal Pressman <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'tools/testing/selftests/net/lib/py/utils.py')
-rw-r--r--tools/testing/selftests/net/lib/py/utils.py15
1 files changed, 4 insertions, 11 deletions
diff --git a/tools/testing/selftests/net/lib/py/utils.py b/tools/testing/selftests/net/lib/py/utils.py
index d879700ef2b9..a6af97c7e283 100644
--- a/tools/testing/selftests/net/lib/py/utils.py
+++ b/tools/testing/selftests/net/lib/py/utils.py
@@ -187,18 +187,11 @@ def ethtool(args, json=None, ns=None, host=None):
def rand_port():
"""
- Get a random unprivileged port, try to make sure it's not already used.
+ Get a random unprivileged port.
"""
- for _ in range(1000):
- port = random.randint(10000, 65535)
- try:
- with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s:
- s.bind(("", port))
- return port
- except OSError as e:
- if e.errno != errno.EADDRINUSE:
- raise
- raise Exception("Can't find any free unprivileged port")
+ with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s:
+ s.bind(("", 0))
+ return s.getsockname()[1]
def wait_port_listen(port, proto="tcp", ns=None, host=None, sleep=0.005, deadline=5):