Repository navigation
test: capture-driven parse→rebuild and dumper round trips (#1202) - #1445
Merged
Merged
Conversation
This was referenced Oct 9, 2026
Closed
- tests/protocols/test_capture_roundtrip_runtime.py: every layer of every frame in examples/captures/ (payload chain plus IPv6 extension headers) rebuilds from its info, from info.to_dict(), and Info survives to_dict/from_dict; every capture rebuilds whole, byte for byte. - tests/dumpkit/test_capture_dump_runtime.py: format='pcap' is byte-identical to its input; json/plist/tree are deterministic and hold one section per record or block; json frames carry every Info key and the protocol chain; plistlib reads the plist dump. - Known failures sit in LAYER_GAPS (#1446), DICT_GAPS (#1447) and KNOWN_FAILURES (#1448), asserted in both directions; the existing plistlib skip in tests/integration/test_output_formats.py cites #1448. Both modules are fixture tier (integration job): 4 + 6 tests, 24 s and 33 s, peak RSS 223 and 279 MiB.
JarryShaw
force-pushed
the
test/1202-roundtrip-coverage
branch
from
October 9, 2026 01:07
485b151 to
0bc5b37
Compare
Contributor
|
Coverage: 89.51% (unit tier, Python 3.14,
Per-file detail: the |
Owner
Author
|
Verdict: GOOD TO GO at
Nit: the HTTP entry in Merge order: the stale-entry check means that once #1446, #1447 or #1448 is fixed, its entry here must be removed in the same change. Merging this PR first lets each fix PR delete its own entries. |
This was referenced Oct 9, 2026
3 of 5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Searched for similar pull requests
Followed the coding style — not run as
make; pylint with the Makefile flags is clean except duplicate-code between the two modulesmake testpasses, and a test case covers the change — only the two new modules (pytest and plain unittest),tests/project,test_tier_guard,test_docstring_contractChangelog entry — N/A — centralised in docs(changelog): shared 1.5.0 changelog — long-lived, merges last (#610, #616, #617, #618, #620) #657
test— tests onlyRefs #1202 (partly; see below). Both modules are fixture tier, so the
integrationjob picks them up throughfixture_tier_paths(); no workflow change.Covered
tests/protocols/test_capture_roundtrip_runtime.py: every layer of every capture (6,6xx layers: the payload chain plus IPv6 extension headers) rebuilds frominfoand frominfo.to_dict(),Infosurvivesto_dict/from_dict, and every capture rebuilds whole. 24 s, 223 MiB.tests/dumpkit/test_capture_dump_runtime.py:format='pcap'is byte-identical for all 17 PCAP inputs; json/plist/tree are deterministic, with one section per record/block counted from the file; json frames carry everyInfokey and the chain. 33 s, 279 MiB.Known failures: #1446 IPv6 extension-header
.datakeeps the rest of the datagram that.infolacks; #1447from_data(info.to_dict())drops the payload and IPv6 extension headers (HTTP raisesProtocolError); #1448plistlibcannot read any plist dump (fractional<date>), now also cited by the existing skip intest_output_formats.py.Not covered yet: protocol edge cases, reassembly/traceflow/engine parity/registry, corekit Field/Schema symmetry, const/vendor regeneration.