-
Notifications
You must be signed in to change notification settings - Fork 751
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
h3i: implement expected frames #1890
Open
evanrittenhouse
wants to merge
3
commits into
master
Choose a base branch
from
evanrittenhouse/target-frame
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
6 times, most recently
from
December 20, 2024 00:00
54874db
to
e0ff2ba
Compare
LPardue
reviewed
Dec 20, 2024
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
from
December 20, 2024 19:08
e0ff2ba
to
8ac9f2c
Compare
LPardue
reviewed
Dec 20, 2024
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
3 times, most recently
from
December 20, 2024 20:16
e4dbd46
to
f6f9be3
Compare
evanrittenhouse
changed the title
h3i: implement expected frames
[DO NOT MEGE] h3i: implement expected frames
Dec 20, 2024
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
3 times, most recently
from
December 21, 2024 07:28
545f564
to
4f0ea98
Compare
evanrittenhouse
changed the title
[DO NOT MEGE] h3i: implement expected frames
h3i: implement expected frames
Jan 3, 2025
evanrittenhouse
changed the title
h3i: implement expected frames
[DRAFT] h3i: implement expected frames
Jan 5, 2025
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
from
January 6, 2025 01:05
897d31e
to
09db922
Compare
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
3 times, most recently
from
January 6, 2025 01:31
5dbf361
to
09db922
Compare
LPardue
reviewed
Jan 6, 2025
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
3 times, most recently
from
January 6, 2025 21:37
6d879e0
to
ae37f11
Compare
evanrittenhouse
changed the title
[DRAFT] h3i: implement expected frames
h3i: implement expected frames
Jan 7, 2025
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
2 times, most recently
from
January 8, 2025 16:48
9cfce61
to
524c45c
Compare
LPardue
reviewed
Jan 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly just nits
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
from
January 8, 2025 18:23
524c45c
to
6d2ab6b
Compare
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
2 times, most recently
from
January 9, 2025 22:52
2b1fa86
to
da3a38b
Compare
evanrittenhouse
force-pushed
the
evanrittenhouse/readme
branch
from
January 9, 2025 22:55
e81f552
to
a7a1b62
Compare
evanrittenhouse
force-pushed
the
evanrittenhouse/readme
branch
from
January 9, 2025 23:21
a7a1b62
to
271babb
Compare
Expected frames allow the user to specify a list of frames that the h3i client expects to receive over a given connection. If h3i sees all of the exected frames over the course of the connection, it will pre-emptively close the connection with a CONNECTION_CLOSE frame. If h3i does _not_ see all of the expected frames, the resulting ConnectionSummary will contain a list of the missing target frames for future inspection. This gives users a way to close tests out without waiting for the idle timeout, or adding Wait/ConnectionClose actions to the end of each test. This should vastly speed up test suites that have a large number of h3i tests.
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
from
January 9, 2025 23:21
da3a38b
to
5a9da5d
Compare
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.
Expected frames allow the user to specify a list of frames that the h3i client expects to receive over a given connection.
If h3i sees all of the exected frames over the course of the connection, it will pre-emptively close the connection with a CONNECTION_CLOSE frame. If h3i does not see all of the expected frames, the resulting ConnectionSummary will contain a list of the missing target frames for future inspection.
This gives users a way to close tests out without waiting for the idle timeout, or adding Wait/ConnectionClose actions to the end of each test. This should vastly speed up test suites that have a large number of h3i tests.
In the absence of full-fledged integration tests, I modified the
content_length_mismatch
example to expect a400
, and remove the existingWait/CC
actions:Taking a PCAP:
You can see that the client instantly sends the CC frame upon receiving the headers frame, without us needing to specify the action.