(self, numfds, result, maxcmsgs=1, ignoreflags=0)
| 4084 | len(MSG)) |
| 4085 | |
| 4086 | def checkRecvmsgFDs(self, numfds, result, maxcmsgs=1, ignoreflags=0): |
| 4087 | # Check that constant MSG was received with numfds file |
| 4088 | # descriptors in a maximum of maxcmsgs control messages (which |
| 4089 | # must contain only complete integers). By default, check |
| 4090 | # that MSG_CTRUNC is unset, but ignore any flags in |
| 4091 | # ignoreflags. |
| 4092 | msg, ancdata, flags, addr = result |
| 4093 | self.assertEqual(msg, MSG) |
| 4094 | self.checkRecvmsgAddress(addr, self.cli_addr) |
| 4095 | self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC, |
| 4096 | ignore=ignoreflags) |
| 4097 | |
| 4098 | self.assertIsInstance(ancdata, list) |
| 4099 | self.assertLessEqual(len(ancdata), maxcmsgs) |
| 4100 | fds = array.array("i") |
| 4101 | for item in ancdata: |
| 4102 | self.assertIsInstance(item, tuple) |
| 4103 | cmsg_level, cmsg_type, cmsg_data = item |
| 4104 | self.assertEqual(cmsg_level, socket.SOL_SOCKET) |
| 4105 | self.assertEqual(cmsg_type, socket.SCM_RIGHTS) |
| 4106 | self.assertIsInstance(cmsg_data, bytes) |
| 4107 | self.assertEqual(len(cmsg_data) % SIZEOF_INT, 0) |
| 4108 | fds.frombytes(cmsg_data) |
| 4109 | |
| 4110 | self.assertEqual(len(fds), numfds) |
| 4111 | self.checkFDs(fds) |
| 4112 | |
| 4113 | def testFDPassSimple(self): |
| 4114 | # Pass a single FD (array read from bytes object). |
no test coverage detected