aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_socket.py
diff options
context:
space:
mode:
authorThomas Grainger <tagrain@gmail.com>2025-03-27 19:06:52 +0000
committerGitHub <noreply@github.com>2025-03-27 21:06:52 +0200
commit8a00c9a4d2ce9d373b13f8f0a2265a65f4523293 (patch)
tree2fba580e41a745496199d2a080ed0f33150a9bb5 /Lib/test/test_socket.py
parent972a295fe34280aa3d16c573d6200025a1ce4ff0 (diff)
downloadcpython-8a00c9a4d2ce9d373b13f8f0a2265a65f4523293.tar.gz
cpython-8a00c9a4d2ce9d373b13f8f0a2265a65f4523293.zip
gh-128770: raise warnings as errors in test suite - except for test_socket which still logs warnings, and internal test warnings that are now logged (#128973)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Diffstat (limited to 'Lib/test/test_socket.py')
-rw-r--r--Lib/test/test_socket.py36
1 files changed, 29 insertions, 7 deletions
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 6572032c1d1..cd3497f0274 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -27,6 +27,7 @@ import tempfile
import threading
import time
import traceback
+import warnings
from weakref import proxy
try:
import multiprocessing
@@ -209,6 +210,24 @@ def socket_setdefaulttimeout(timeout):
socket.setdefaulttimeout(old_timeout)
+@contextlib.contextmanager
+def downgrade_malformed_data_warning():
+ # This warning happens on macos and win, but does not always happen on linux.
+ if sys.platform not in {"win32", "darwin"}:
+ yield
+ return
+
+ with warnings.catch_warnings():
+ # TODO: gh-110012, we should investigate why this warning is happening
+ # and fix it properly.
+ warnings.filterwarnings(
+ action="always",
+ message="received malformed or improperly-truncated ancillary data",
+ category=RuntimeWarning,
+ )
+ yield
+
+
HAVE_SOCKET_CAN = _have_socket_can()
HAVE_SOCKET_CAN_ISOTP = _have_socket_can_isotp()
@@ -3991,8 +4010,9 @@ class SCMRightsTest(SendrecvmsgServerTimeoutBase):
# mindata and maxdata bytes when received with buffer size
# ancbuf, and that any complete file descriptor numbers are
# valid.
- msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
- len(MSG), ancbuf)
+ with downgrade_malformed_data_warning(): # TODO: gh-110012
+ msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
+ len(MSG), ancbuf)
self.assertEqual(msg, MSG)
self.checkRecvmsgAddress(addr, self.cli_addr)
self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC)
@@ -4343,8 +4363,9 @@ class RFC3542AncillaryTest(SendrecvmsgServerTimeoutBase):
self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
socket.IPV6_RECVHOPLIMIT, 1)
self.misc_event.set()
- msg, ancdata, flags, addr = self.doRecvmsg(
- self.serv_sock, len(MSG), socket.CMSG_LEN(SIZEOF_INT) - 1)
+ with downgrade_malformed_data_warning(): # TODO: gh-110012
+ msg, ancdata, flags, addr = self.doRecvmsg(
+ self.serv_sock, len(MSG), socket.CMSG_LEN(SIZEOF_INT) - 1)
self.assertEqual(msg, MSG)
self.checkRecvmsgAddress(addr, self.cli_addr)
@@ -4447,9 +4468,10 @@ class RFC3542AncillaryTest(SendrecvmsgServerTimeoutBase):
self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
socket.IPV6_RECVTCLASS, 1)
self.misc_event.set()
- msg, ancdata, flags, addr = self.doRecvmsg(
- self.serv_sock, len(MSG),
- socket.CMSG_SPACE(SIZEOF_INT) + socket.CMSG_LEN(SIZEOF_INT) - 1)
+ with downgrade_malformed_data_warning(): # TODO: gh-110012
+ msg, ancdata, flags, addr = self.doRecvmsg(
+ self.serv_sock, len(MSG),
+ socket.CMSG_SPACE(SIZEOF_INT) + socket.CMSG_LEN(SIZEOF_INT) - 1)
self.assertEqual(msg, MSG)
self.checkRecvmsgAddress(addr, self.cli_addr)