You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test: the dispatch generators skip FRAD's NLPID map and ICMP's type registries #2560
From the 2026-11-01 conventions audit, re-verified on 73add05a3. test-coverage.rst, "Adding a Protocol, Option or Dumper": a __proto__ registration needs its PINNED_TARGETS entry in examples/generators/dispatch.py, and a new registry adds a Family to FAMILIES; coverage is enumerated from the registries (see "Round-Trip Invariants").
FRAD.__proto__ (in pcapkit/protocols/link/frad.py: NLPID 0xCC -> IPv4, 0x8E -> IPv6) has no Family in dispatch.py, so test_every_case_has_a_pinned_target never sees it; grep -in frad examples/generators/dispatch.py prints nothing. IPX.__proto__ and Netlink.__proto__ are empty, so nothing is lost there.
ICMPv4.__type__ (pcapkit/protocols/internet/icmpv4.py) and ICMPv6.__type__ (pcapkit/protocols/internet/icmpv6.py) are type-code -> method maps with register_type, the shape of the mh-message and httpv2-frame families, but examples/generators/options.pyFAMILIES has no ICMP entry (grep -in icmp prints nothing). Their round trips use a hand-picked table (__tier__ = 'ALL'), so a type code registered later gets no case.
Fix: FRAD: add a Family and PINNED_TARGETS entries to dispatch.py, and update the totals asserted in test_cases_cover_every_table_named_in_the_issue. ICMP: add ICMPv4 and ICMPv6 type families to options.py. Blocked:#2542 and #2544 edit dispatch.py (#2544 also options.py), and #2527 reworks FRAD's registration; unblocks when all three merge.
Activity
JarryShaw commentedon Nov 1, 2026
#2527, #2542 and #2544 have all merged, so this is unblocked. A worker is adding the FRAD and ICMP families.