(self, ancbuf, maxdata, mindata=0)
| 4253 | # middle of the FD array. |
| 4254 | |
| 4255 | def checkTruncatedArray(self, ancbuf, maxdata, mindata=0): |
| 4256 | # Check that file descriptor data is truncated to between |
| 4257 | # mindata and maxdata bytes when received with buffer size |
| 4258 | # ancbuf, and that any complete file descriptor numbers are |
| 4259 | # valid. |
| 4260 | with downgrade_malformed_data_warning(): # TODO: gh-110012 |
| 4261 | msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock, |
| 4262 | len(MSG), ancbuf) |
| 4263 | self.assertEqual(msg, MSG) |
| 4264 | self.checkRecvmsgAddress(addr, self.cli_addr) |
| 4265 | self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC) |
| 4266 | |
| 4267 | if mindata == 0 and ancdata == []: |
| 4268 | return |
| 4269 | self.assertEqual(len(ancdata), 1) |
| 4270 | cmsg_level, cmsg_type, cmsg_data = ancdata[0] |
| 4271 | self.assertEqual(cmsg_level, socket.SOL_SOCKET) |
| 4272 | self.assertEqual(cmsg_type, socket.SCM_RIGHTS) |
| 4273 | self.assertGreaterEqual(len(cmsg_data), mindata) |
| 4274 | self.assertLessEqual(len(cmsg_data), maxdata) |
| 4275 | fds = array.array("i") |
| 4276 | fds.frombytes(cmsg_data[: |
| 4277 | len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) |
| 4278 | self.checkFDs(fds) |
| 4279 | |
| 4280 | @skipForRefleakHuntinIf(sys.platform == "darwin", "#80931") |
| 4281 | def testCmsgTruncLen0(self): |
no test coverage detected