-
Notifications
You must be signed in to change notification settings - Fork 755
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 close trigger frames #1890
Merged
Merged
+500
−23
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
3 times, most recently
from
January 9, 2025 22:52
2b1fa86
to
da3a38b
Compare
evanrittenhouse
force-pushed
the
evanrittenhouse/readme
branch
2 times, most recently
from
January 9, 2025 23:21
a7a1b62
to
271babb
Compare
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
from
January 9, 2025 23:21
da3a38b
to
5a9da5d
Compare
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
from
January 10, 2025 13:21
5a9da5d
to
907adfe
Compare
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
2 times, most recently
from
January 10, 2025 14:50
ded0f03
to
059ea03
Compare
evanrittenhouse
changed the title
h3i: implement expected frames
h3i: implement close trigger frames
Jan 10, 2025
evanrittenhouse
force-pushed
the
evanrittenhouse/target-frame
branch
from
January 10, 2025 21:00
059ea03
to
42bc3c6
Compare
Close trigger 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 close triggers 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 triggers, the resulting ConnectionSummary will contain a list of the missing triggers 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 13, 2025 13:50
42bc3c6
to
623f8db
Compare
LPardue
approved these changes
Jan 13, 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.
LGTM
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.
Close trigger 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 close trigger 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 trigger 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.