]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix tests in test_socket to use correctly CMSG_LEN (GH-9594)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 27 Sep 2018 13:30:55 +0000 (06:30 -0700)
committerGitHub <noreply@github.com>
Thu, 27 Sep 2018 13:30:55 +0000 (06:30 -0700)
After some failures in AMD64 FreeBSD CURRENT Debug 3.x buildbots
regarding tests in test_socket that are using
testFDPassSeparateMinSpace(), FreeBDS revision 337423 was pointed
out to be the reason the test started to fail.

A close examination of the manpage for cmsg_space(3) reveals that
the number of file descriptors needs to be taken into account when
using CMSG_LEN().

This commit fixes tests in test_socket to use correctly CMSG_LEN, taking
into account the number of FDs.
(cherry picked from commit 7291108d88ea31d205da4db19d202d6cbffc6d93)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Lib/test/test_socket.py

index f8559ac4eab90fdb065f6c4e383742a190a78a54..fbbc9f9abfb034b469a76fc7461e4b0f8c1907cd 100644 (file)
@@ -2858,10 +2858,11 @@ class SCMRightsTest(SendrecvmsgServerTimeoutBase):
     def testFDPassSeparateMinSpace(self):
         # Pass two FDs in two separate arrays, receiving them into the
         # minimum space for two arrays.
-        self.checkRecvmsgFDs(2,
+        num_fds = 2
+        self.checkRecvmsgFDs(num_fds,
                              self.doRecvmsg(self.serv_sock, len(MSG),
                                             socket.CMSG_SPACE(SIZEOF_INT) +
-                                            socket.CMSG_LEN(SIZEOF_INT)),
+                                            socket.CMSG_LEN(SIZEOF_INT * num_fds)),
                              maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC)
 
     @testFDPassSeparateMinSpace.client_skip