Skip to content

Tests: QUIC STREAM_DATA_BLOCKED and DATA_BLOCKED frames - #76

Draft
VadimZhestikov wants to merge 1 commit into
nginx:masterfrom
VadimZhestikov:quic-send-blocked-frames
Draft

Tests: QUIC STREAM_DATA_BLOCKED and DATA_BLOCKED frames#76
VadimZhestikov wants to merge 1 commit into
nginx:masterfrom
VadimZhestikov:quic-send-blocked-frames

Conversation

@VadimZhestikov

Copy link
Copy Markdown
Contributor

Functional tests for nginx/nginx#1558 (QUIC: send DATA_BLOCKED and STREAM_DATA_BLOCKED frames; a rework of nginx/nginx#1492).

h3_stream_data_blocked.t drives the server into the stream-level and connection-level blocked states using small advertised flow-control windows (transport parameters initial_max_stream_data_bidi_local / initial_max_data), then checks that:

  • STREAM_DATA_BLOCKED is sent with the expected stream id and limit;
  • a new frame is sent after the limit is raised halfway and exhausted again (per-limit deduplication re-arms);
  • the transfer completes once enough credit is granted;
  • the same holds for connection-level DATA_BLOCKED.

Test::Nginx::HTTP3::parse_frames() is extended to parse both frame types (0x14, 0x15), which previously fell through unparsed.

The tests fail against current nginx master (no frames are ever sent) and pass against the nginx/nginx#1558 branch; the full test suite passes with the modified library.

The tests drive the server into the stream-level and connection-level
blocked states using small advertised flow-control windows, check that
the corresponding frames are sent with the expected limits, that a new
frame is sent after the limit is raised and exhausted again, and that
the transfer completes once enough credit is granted.

Test::Nginx::HTTP3 parse_frames() is extended to parse both frames.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants