(self, ancbuf, maxdata, mindata=0)
| 4356 | # middle of the FD array. |
| 4357 | |
| 4358 | def checkTruncatedArray(self, ancbuf, maxdata, mindata=0): |
| 4359 | # Check that file descriptor data is truncated to between |
| 4360 | # mindata and maxdata bytes when received with buffer size |
| 4361 | # ancbuf, and that any complete file descriptor numbers are |
| 4362 | # valid. |
| 4363 | with downgrade_malformed_data_warning(): # TODO: gh-110012 |
| 4364 | msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock, |
| 4365 | len(MSG), ancbuf) |
| 4366 | self.assertEqual(msg, MSG) |
| 4367 | self.checkRecvmsgAddress(addr, self.cli_addr) |
| 4368 | self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC) |
| 4369 | |
| 4370 | if mindata == 0 and ancdata == []: |
| 4371 | return |
| 4372 | self.assertEqual(len(ancdata), 1) |
| 4373 | cmsg_level, cmsg_type, cmsg_data = ancdata[0] |
| 4374 | self.assertEqual(cmsg_level, socket.SOL_SOCKET) |
| 4375 | self.assertEqual(cmsg_type, socket.SCM_RIGHTS) |
| 4376 | self.assertGreaterEqual(len(cmsg_data), mindata) |
| 4377 | self.assertLessEqual(len(cmsg_data), maxdata) |
| 4378 | fds = array.array("i") |
| 4379 | fds.frombytes(cmsg_data[: |
| 4380 | len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) |
| 4381 | self.checkFDs(fds) |
| 4382 | |
| 4383 | @skipForRefleakHuntinIf(sys.platform == "darwin", "#80931") |
| 4384 | def testCmsgTruncLen0(self): |
no test coverage detected