Skip to content

Tests: cover HTTP/3 unknown frames across request-body buffers. - #120

Open
zerox80 wants to merge 1 commit into
nginx:masterfrom
zerox80:codex/http3-body-unknown-frame-tests
Open

zerox80 wants to merge 1 commit into
nginx:masterfrom
zerox80:codex/http3-body-unknown-frame-tests

Conversation

@zerox80

@zerox80 zerox80 commented Sep 12, 2026

Copy link
Copy Markdown

Extend h3_request_body_extra.t with 14 assertions for unknown HTTP/3 frames spanning request-body read buffers. A 256-byte reserved-frame payload exceeds the configured 64-byte body buffer and 10-byte body limit. Requests verify exact DATA bytes before, between and after unknown frames, plus aggregate DATA-limit enforcement, in buffered and unbuffered proxy modes.

The test uses the existing HTTP3 client and waits for the request headers to be acknowledged before sending the body, avoiding the header preread buffer. No library or CI changes are needed.

Companion fix: nginx/nginx#1766.

Related to #96, which tests complete reserved frames. These additional cases exercise payload continuation across body buffers. With nginx/nginx#1624 alone, the new regression checks still fail.

Validation on Linux with CryptX and a live QUIC connection:

The tests intentionally fail until the companion production fix is applied. No full nginx-tests-suite pass is claimed for the PR commit.

AI assistance: OpenAI Codex assisted with test implementation, validation and this description.

Send reserved frames before, between, and after DATA frames with a
payload larger than the configured request-body buffer.  Verify exact
body bytes and aggregate body limits in buffered and unbuffered modes.

Wait for the request headers to be acknowledged before sending the body
to avoid consuming the entire frame in the header preread buffer.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

1 participant