https://github.com/python/cpython/commit/3cfc249e11a132dc69624150843779aa96c72b2b
commit: 3cfc249e11a132dc69624150843779aa96c72b2b
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2026-05-13T16:55:45+02:00
summary:
gh-149776: Skip UDP Lite tests if it's not supported (#149777)
Fix test_socket on Linux kernel 7.1 and newer: skip UDP Lite tests if
it's not supported.
files:
A Misc/NEWS.d/next/Tests/2026-05-13-14-53-23.gh-issue-149776.orqgsn.rst
M Lib/test/test_socket.py
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 9e03069494345b..47830d0e9645ef 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -205,6 +205,25 @@ def _have_socket_hyperv():
return True
+def _have_udp_lite():
+ if not hasattr(socket, "IPPROTO_UDPLITE"):
+ return False
+ # Older Android versions block UDPLITE with SELinux.
+ if support.is_android and platform.android_ver().api_level < 29:
+ return False
+
+ try:
+ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,
socket.IPPROTO_UDPLITE)
+ except OSError as exc:
+ # Linux 7.1 removed UDP Lite support
+ if exc.errno == errno.EPROTONOSUPPORT:
+ return False
+ raise
+ sock.close()
+
+ return True
+
+
@contextlib.contextmanager
def socket_setdefaulttimeout(timeout):
old_timeout = socket.getdefaulttimeout()
@@ -247,10 +266,7 @@ def downgrade_malformed_data_warning():
HAVE_SOCKET_VSOCK = _have_socket_vsock()
-# Older Android versions block UDPLITE with SELinux.
-HAVE_SOCKET_UDPLITE = (
- hasattr(socket, "IPPROTO_UDPLITE")
- and not (support.is_android and platform.android_ver().api_level < 29))
+HAVE_SOCKET_UDPLITE = _have_udp_lite()
HAVE_SOCKET_BLUETOOTH = _have_socket_bluetooth()
diff --git
a/Misc/NEWS.d/next/Tests/2026-05-13-14-53-23.gh-issue-149776.orqgsn.rst
b/Misc/NEWS.d/next/Tests/2026-05-13-14-53-23.gh-issue-149776.orqgsn.rst
new file mode 100644
index 00000000000000..e86a9130ff9bfb
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2026-05-13-14-53-23.gh-issue-149776.orqgsn.rst
@@ -0,0 +1,2 @@
+Fix test_socket on Linux kernel 7.1 and newer: skip UDP Lite tests if it's
+not supported. Patch by Victor Stinner.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]