-
Notifications
You must be signed in to change notification settings - Fork 5.2k
test: add integration tests for on_demand VHDS with request bodies #42248
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
base: main
Are you sure you want to change the base?
Conversation
e4672b7 to
ed732e5
Compare
0e738ed to
9ac4ca9
Compare
botengyao
left a comment
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.
thanks for adding the integration test!
/wait
| TEST_P(OnDemandVhdsWithBodyIntegrationTest, VhdsOnDemandUpdateWithBody) { | ||
| // Skip Unified mux - it doesn't properly handle on-demand VHDS updates. | ||
| const bool is_unified_mux = | ||
| std::get<2>(std::get<1>(GetParam())) == Grpc::LegacyOrUnified::Unified; |
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.
What is the reason that unified client doesn't handle it properly?
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.
it is a bad wording I used. I was unable to make it work so far, I am getting a timeout all the time (a race in the setup?). so I thought I would first propose an initial step.
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.
nit: mind adding TODO(wdauchy)? just to keep it be consistent with other places, and it is okay that others pick up as well
Add integration tests verifying VHDS on-demand updates work correctly with request bodies for both HTTP/1.1 and HTTP/2. The tests use HttpProtocolIntegrationTest parameterization to automatically run for both downstream protocols (HTTP/1.1 and HTTP/2), ensuring the fix for envoyproxy#17891 works correctly across different HTTP protocol versions. Tests verify that: - Request bodies are preserved when triggering on-demand VHDS updates - Stream recreation works correctly after VHDS updates complete - Both HTTP/1.1 and HTTP/2 protocols handle bodies correctly The test instantiation uses getProtocolTestParamsWithoutHTTP3() which returns parameter combinations for both HTTP/1.1 and HTTP/2 downstream protocols, so each test runs multiple times (once per protocol combination). Complements the unit tests in d39afea and provides end-to-end verification for envoyproxy#17891. Risk Level: Low Testing: New integration tests parameterized for HTTP/1.1 and HTTP/2 Signed-off-by: William Dauchy <[email protected]>
Commit Message:
Add integration tests verifying VHDS on-demand updates work correctly with request bodies for both HTTP/1.1 and HTTP/2. The tests use HttpProtocolIntegrationTest parameterization to automatically run for both downstream protocols (HTTP/1.1 and HTTP/2), ensuring the fix for #17891 works correctly across different HTTP protocol versions.
Additional Description:
Tests verify that:
The test instantiation uses getProtocolTestParamsWithoutHTTP3() which returns parameter combinations for both HTTP/1.1 and HTTP/2 downstream protocols, so each test runs multiple times (once per protocol combination).
Complements the unit tests in d39afea and provides end-to-end verification for #17891.
followup of #42158
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]