Skip to content

Commit 0d28ddd

Browse files
committed
gh-110012: Fix RuntimeWarning in test_socket
1 parent 98c0c1d commit 0d28ddd

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

Lib/test/test_socket.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from test.support import os_helper
44
from test.support import socket_helper
55
from test.support import threading_helper
6+
from test.support import warnings_helper
67

78
import _thread as thread
89
import array
@@ -165,6 +166,15 @@ def socket_setdefaulttimeout(timeout):
165166
socket.setdefaulttimeout(old_timeout)
166167

167168

169+
@contextlib.contextmanager
170+
def catch_mailformed_data_warning(quite=False):
171+
with warnings_helper.check_warnings(
172+
("received malformed or improperly-truncated ancillary data", RuntimeWarning),
173+
quite=quite,
174+
):
175+
yield
176+
177+
168178
HAVE_SOCKET_CAN = _have_socket_can()
169179

170180
HAVE_SOCKET_CAN_ISOTP = _have_socket_can_isotp()
@@ -3874,8 +3884,9 @@ def checkTruncatedArray(self, ancbuf, maxdata, mindata=0):
38743884
# mindata and maxdata bytes when received with buffer size
38753885
# ancbuf, and that any complete file descriptor numbers are
38763886
# valid.
3877-
msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
3878-
len(MSG), ancbuf)
3887+
with catch_mailformed_data_warning():
3888+
msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
3889+
len(MSG), ancbuf)
38793890
self.assertEqual(msg, MSG)
38803891
self.checkRecvmsgAddress(addr, self.cli_addr)
38813892
self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC)
@@ -4217,8 +4228,9 @@ def testSingleCmsgTruncInData(self):
42174228
self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
42184229
socket.IPV6_RECVHOPLIMIT, 1)
42194230
self.misc_event.set()
4220-
msg, ancdata, flags, addr = self.doRecvmsg(
4221-
self.serv_sock, len(MSG), socket.CMSG_LEN(SIZEOF_INT) - 1)
4231+
with catch_mailformed_data_warning():
4232+
msg, ancdata, flags, addr = self.doRecvmsg(
4233+
self.serv_sock, len(MSG), socket.CMSG_LEN(SIZEOF_INT) - 1)
42224234

42234235
self.assertEqual(msg, MSG)
42244236
self.checkRecvmsgAddress(addr, self.cli_addr)
@@ -4321,9 +4333,10 @@ def testSecondCmsgTruncInData(self):
43214333
self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
43224334
socket.IPV6_RECVTCLASS, 1)
43234335
self.misc_event.set()
4324-
msg, ancdata, flags, addr = self.doRecvmsg(
4325-
self.serv_sock, len(MSG),
4326-
socket.CMSG_SPACE(SIZEOF_INT) + socket.CMSG_LEN(SIZEOF_INT) - 1)
4336+
with catch_mailformed_data_warning():
4337+
msg, ancdata, flags, addr = self.doRecvmsg(
4338+
self.serv_sock, len(MSG),
4339+
socket.CMSG_SPACE(SIZEOF_INT) + socket.CMSG_LEN(SIZEOF_INT) - 1)
43274340

43284341
self.assertEqual(msg, MSG)
43294342
self.checkRecvmsgAddress(addr, self.cli_addr)

0 commit comments

Comments
 (0)