Skip to content

test: the dispatch generators skip FRAD's NLPID map and ICMP's type registries #2560

Open

Description

@JarryShaw

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.py FAMILIES 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

  1. added
    testPull requests that add or correct tests (test: subject prefix)
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Nov 1, 2026
  2. moved this to Blocked in PyPCAPKiton Nov 1, 2026
  3. JarryShaw commented on Nov 1, 2026

    @JarryShaw
    OwnerAuthor

    #2527, #2542 and #2544 have all merged, so this is unblocked. A worker is adding the FRAD and ICMP families.

  4. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Nov 1, 2026
  5. moved this from Blocked to WIP in PyPCAPKiton Nov 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    testPull requests that add or correct tests (test: subject prefix)wipWork in flight - a covering PR is open or an agent is actively on it

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions