Conversation
Extends Round 6 (#1115) direct-dispatch coverage with seven new TEST_F cases targeting the error/edge branches that the friend-inject pivot left untouched. Issue #1106 acceptance criteria are satisfied at the dispatcher level — the SETTINGS-handshake under coverage instrumentation still exceeds 15s on shared CI runners, so going around the handshake is the only path that produces a measurable coverage delta. New TEST_F cases (all bypass connect() via http2_client_test_access): - ServerSettingsAckFrameDrivesAckEarlyReturn is_ack() early-return arm of handle_settings_frame. - ServerSettingsFrameAppliesAllRemoteIdentifiersAndSendsAck Drives every setting_identifier switch arm in a single dispatch (header_table_size, enable_push, max_concurrent_streams, initial_window_size, max_frame_size, max_header_list_size). - HeadersFrameOnUnknownStreamIdReturnsNotFound not_found branch of handle_headers_frame. - DataFrameOnUnknownStreamIdReturnsNotFound not_found branch of handle_data_frame; also models the partial-response disconnect acceptance-criteria item. - ServerWindowUpdateOnConnectionLevelExpandsWindowUnderBackPressure WINDOW_UPDATE under back-pressure acceptance-criteria item with a 1 MiB increment on the connection-level window. - GoawayFrameWithLastStreamIdZeroLeavesNoStreamsToClose GOAWAY with PROTOCOL_ERROR error code (Round 6 only used NO_ERROR). - ServerRstStreamWithCancelErrorCodeOnUnknownStreamIsIgnored RST_STREAM with REFUSED_STREAM error code (Round 6 only used CANCEL). No src/ changes; test-only PR per issue scope. Closes #1106
Contributor
Coverage Report
Coverage DetailsFull HTML report is available as a build artifact. |
This was referenced May 9, 2026
Closed
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.
Closes #1106
Summary
Extends Round 6 (#1115 / PR f3c289f) direct-dispatch coverage with seven new
TEST_Fcases targeting error/edge branches inhttp2_client.cppthat the friend-inject pivot left untouched.The
SETTINGShandshake undergcovinstrumentation still exceeds the 15s wait budget on shared CI runners, so the only viable strategy for raisinghttp2_client.cppcoverage is to bypassconnect()viahttp2_client_test_access::process_frame(the friend gate proven in Round 6).Acceptance criteria mapping (#1106)
DropFirstServerSettingsLeavesClientUnconnectedMalformedServerSettingsTypeByteTriggersConnectTimeoutTruncatedServerSettingsHeaderTimesOutConnectSlowWriteServerSettingsStillCompletesHandshake(gated outside coverage build)DataFrameOnUnknownStreamIdReturnsNotFoundmodels this at dispatcher levelServerWindowUpdateOnConnectionLevelExpandsWindowUnderBackPressureNew TEST_F cases
handle_settings_frame'sis_ack()early-returnsetting_identifierswitch arms in one dispatchhandle_headers_framenot_found branchhandle_data_framenot_found branchWINDOW_UPDATEwith 1 MiB incrementGOAWAYwithPROTOCOL_ERROR(Round 6 only used NO_ERROR)RST_STREAMwithREFUSED_STREAM(Round 6 only used CANCEL)Test plan
cmake --build build --target network_http2_client_branch_test -j 4 ./build/bin/network_http2_client_branch_test # Expect: all TEST_F PASSOut of scope
src/changes; test-only PR per issue scope.Notes
Local toolchain (cmake/g++) was unavailable in the work environment, so build verification is delegated to CI.