MCPcopy Index your code
hub / github.com/python/cpython / checkTrafficClassAndHopLimit

Method checkTrafficClassAndHopLimit

Lib/test/test_socket.py:4518–4552  ·  view source on GitHub ↗
(self, ancbufsize, maxhop=255,
                                     ignoreflags=0)

Source from the content-addressed store, hash-verified

4516 len(MSG))
4517
4518 def checkTrafficClassAndHopLimit(self, ancbufsize, maxhop=255,
4519 ignoreflags=0):
4520 # Receive traffic class and hop limit into ancbufsize bytes of
4521 # ancillary data space. Check that data is MSG, ancillary
4522 # data is not truncated (but ignore any flags in ignoreflags),
4523 # and traffic class and hop limit are in range (hop limit no
4524 # more than maxhop).
4525 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4526 socket.IPV6_RECVHOPLIMIT, 1)
4527 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4528 socket.IPV6_RECVTCLASS, 1)
4529 self.misc_event.set()
4530 msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock,
4531 len(MSG), ancbufsize)
4532
4533 self.assertEqual(msg, MSG)
4534 self.checkRecvmsgAddress(addr, self.cli_addr)
4535 self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC,
4536 ignore=ignoreflags)
4537 self.assertEqual(len(ancdata), 2)
4538 ancmap = self.ancillaryMapping(ancdata)
4539
4540 tcdata = ancmap[(socket.IPPROTO_IPV6, socket.IPV6_TCLASS)]
4541 self.assertEqual(len(tcdata), SIZEOF_INT)
4542 a = array.array("i")
4543 a.frombytes(tcdata)
4544 self.assertGreaterEqual(a[0], 0)
4545 self.assertLessEqual(a[0], 255)
4546
4547 hldata = ancmap[(socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT)]
4548 self.assertEqual(len(hldata), SIZEOF_INT)
4549 a = array.array("i")
4550 a.frombytes(hldata)
4551 self.assertGreaterEqual(a[0], 0)
4552 self.assertLessEqual(a[0], maxhop)
4553
4554 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4555 "IPV6_RECVTCLASS", "IPV6_TCLASS")

Calls 9

ancillaryMappingMethod · 0.95
checkFlagsMethod · 0.80
assertGreaterEqualMethod · 0.80
assertLessEqualMethod · 0.80
setsockoptMethod · 0.45
setMethod · 0.45
doRecvmsgMethod · 0.45
assertEqualMethod · 0.45
checkRecvmsgAddressMethod · 0.45

Tested by

no test coverage detected