(self, numfds, result, maxcmsgs=1, ignoreflags=0)
| 3981 | len(MSG)) |
| 3982 | |
| 3983 | def checkRecvmsgFDs(self, numfds, result, maxcmsgs=1, ignoreflags=0): |
| 3984 | # Check that constant MSG was received with numfds file |
| 3985 | # descriptors in a maximum of maxcmsgs control messages (which |
| 3986 | # must contain only complete integers). By default, check |
| 3987 | # that MSG_CTRUNC is unset, but ignore any flags in |
| 3988 | # ignoreflags. |
| 3989 | msg, ancdata, flags, addr = result |
| 3990 | self.assertEqual(msg, MSG) |
| 3991 | self.checkRecvmsgAddress(addr, self.cli_addr) |
| 3992 | self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC, |
| 3993 | ignore=ignoreflags) |
| 3994 | |
| 3995 | self.assertIsInstance(ancdata, list) |
| 3996 | self.assertLessEqual(len(ancdata), maxcmsgs) |
| 3997 | fds = array.array("i") |
| 3998 | for item in ancdata: |
| 3999 | self.assertIsInstance(item, tuple) |
| 4000 | cmsg_level, cmsg_type, cmsg_data = item |
| 4001 | self.assertEqual(cmsg_level, socket.SOL_SOCKET) |
| 4002 | self.assertEqual(cmsg_type, socket.SCM_RIGHTS) |
| 4003 | self.assertIsInstance(cmsg_data, bytes) |
| 4004 | self.assertEqual(len(cmsg_data) % SIZEOF_INT, 0) |
| 4005 | fds.frombytes(cmsg_data) |
| 4006 | |
| 4007 | self.assertEqual(len(fds), numfds) |
| 4008 | self.checkFDs(fds) |
| 4009 | |
| 4010 | def testFDPassSimple(self): |
| 4011 | # Pass a single FD (array read from bytes object). |
no test coverage detected