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
Drive network_system line coverage from 65.1% to 80% and branch coverage from 31.1% to 70% (measured on develop, 2026-04-20, coverage run 24659295053). The remaining gap is concentrated in protocol implementation files whose existing tests cover happy paths but not error/boundary branches.
History note (2026-04-16): This epic originally targeted ~40% coverage with 60+ untested modules. That premise was stale — sub-issues #982, #983, #984, #985 were closed after auditing the existing tests/unit/ tree (~112 test files, ~44,200 LOC, ~2,989 GTEST cases). The real gap is that many existing tests do not exercise error paths, branch combinations, and edge cases in the protocol code.
Progress note (2026-04-22): Step 1 (coverage measurement fix) is complete via #986, #987, #989. Step 2 (narrow test expansion) is in progress with #991, #992, #993, #990, #994 closed.
These file-level numbers were collected from the 2026-04-13 run before the BUILD_WITH_* flags were enabled. Re-measurement with the current workflow is pending. Already-addressed files are marked.
protocols/quic/frame.cpp — 15.0% of 600 lines (file is now 1203 lines; existing tests cover build/parse happy paths only)
The pre-Step-1 file list above (e.g. protocols/quic/frame.cpp 15.0%, protocols/http2/hpack.cpp 13.5%) has been fully addressed. New worst-coverage files identified from the 2026-04-26 measurement:
Open narrow test-expansion sub-issues for the six files above (Part of #953).
Re-measure after each merge; expect ~80% line coverage to require ~3,000 additional hit lines.
Branch coverage target (70%) is the larger gap and may require explicit error-path tests beyond what unit tests typically cover — consider integration-level fuzzing if line target is reached but branch is not.
What
Drive network_system line coverage from 65.1% to 80% and branch coverage from 31.1% to 70% (measured on
develop, 2026-04-20, coverage run 24659295053). The remaining gap is concentrated in protocol implementation files whose existing tests cover happy paths but not error/boundary branches.Why
Where
Current baseline (post Step 1)
Coverage workflow configuration (verified current)
.github/workflows/coverage.ymlnow builds with:Branch coverage is captured via
lcov --rc lcov_branch_coverage=1and rendered withgenhtml --branch-coverage.Worst-coverage implementation files (pre-Step-1 snapshot, needs re-measurement)
These file-level numbers were collected from the 2026-04-13 run before the BUILD_WITH_* flags were enabled. Re-measurement with the current workflow is pending. Already-addressed files are marked.
protocols/quic/frame.cpp— 15.0% of 600 lines (file is now 1203 lines; existing tests cover build/parse happy paths only)internal/http_parser.cpp— 6.0% of 348 linestracing/exporters.cpp— 7.4% of 340 lines(addressed by test: expand coverage for src/protocols/quic/crypto.cpp #993 / PR test(quic): add extended coverage tests for crypto module #1002)protocols/quic/crypto.cpp— 12.1% of 313 linesprotocols/http2/frame.cpp— 12.9% of 310 linesprotocols/quic/transport_params.cpp— 4.2% of 289 linesprotocols/http2/hpack.cpp— 13.5% of 244 linescore/unified_session_manager.cpp— 26.1% of 222 linesprotocols/quic/packet.cpp— 11.0% of 210 linesprotocols/quic/loss_detector.cpp— 7.6% of 210 linestcp_socket.cpp— 14.8% of 209 linesinternal/utils/compression_pipeline.cpp— 12.5% of 200 linesinternal/http_error.cpp— 3.2% of 190 linesHow
Step 1 — Fix the measurement (DONE)
.github/workflows/coverage.ymlto enable allBUILD_WITH_*flags — ci(coverage): enable full-ecosystem coverage build #987, ci(coverage): enable messaging_bridge in coverage build #989lcov --rc lcov_branch_coverage=1) — ci(coverage): enable branch coverage and manual run #986Step 2 — Narrowly-scoped test issues (IN PROGRESS)
For each remaining file still under 70% with >100 lines, open a single-file test expansion issue (size/S or size/M). Do not open XL epics.
Closed sub-issues (folded test expansion):
Open / upcoming sub-issues: see issues labeled
Part of #953.Step 3 — Close this epic when the acceptance criteria below are met
Acceptance Criteria
BUILD_WITH_*options enabledDependencies
Update (2026-04-26)
Re-measurement on develop @ 05c1b7b
Coverage workflow run 24947193873:
The denominator is unchanged — sub-issues #1020-#1034 added tests but did not modify the source LOC pool. Net delta: line +337 hit / branch +669 hit.
Step 2 sub-issues closed in this batch (2026-04-24 to 2026-04-26)
#1020, #1021, #1022 (closed as not-planned), #1023, #1024, #1025, #1026, #1027, #1028, #1029, #1030, #1031, #1032, #1033, #1034 — all merged via PRs #1023-style follow-up to #1047.
Wheresection is now obsoleteThe pre-Step-1 file list above (e.g.
protocols/quic/frame.cpp15.0%,protocols/http2/hpack.cpp13.5%) has been fully addressed. New worst-coverage files identified from the 2026-04-26 measurement:protocols/http2/http2_client.cppprotocols/grpc/client.cppprotocols/http2/http2_server.cppinternal/quic_socket.cppexperimental/quic_server.cpphttp/websocket_server.cppNext steps (Step 2 continues)
Part of #953).