-
Notifications
You must be signed in to change notification settings - Fork 195
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make connection recording tests less senstive to semver hazards (#3786)
## Motivation and Context A preparatory PR that relaxes test verification of the connection recording tests. ## Description This PR is a preparatory step for upcoming changes to the `UserAgent`, which will introduce new header values in `x-amz-user-agent`, such as `ua/2.0` (user agent metadata) and `m/A` (business metrics). However, the introduction of new header values will cause the following pain points: - we have to update many connection recording tests to make them pass again (i.e. the very places updated in this PR) - check for semver hazards [fail to pass](https://github.com/smithy-lang/smithy-rs/actions/runs/10209305234/job/28247956895). This is much the same as we encountered in [content length enforcement tests](#3523). This creates a chicken-and-egg problem: tests need to be updated for the PRs to pass CI, but the "released SDKs" in the `aws-sdk-rust` repository won't implement the new `UserAgent` header values until the PRs are merged and released. To prevent recurring issues with headers affecting connection recording tests (hence semver checks), this PR preemptively updates the connection recording tests. Specifically, it adjusts them to ignore certain headers, ensuring that updates to the `x-amz-user-agent` header do not trigger semver hazards in subsequent PRs. **Questions**: - This PR modifies the connection recording tests to skip verification of the `x-amz-user-agent` and `authorization` headers. Consequently, we no longer test the SigV4 signature match in `aws/sdk/integration-tests`. Although we continue to run canary tests in CI, it would be beneficial to maintain at least one integration test for verifying the correctness of the SigV4 signature. This helps in detecting potential bugs affecting SigV4 signature correctness early on. To address this, I’ve added [an awsSdkIntegrationTest](https://github.com/smithy-lang/smithy-rs/blob/f513b924dc0e624d9810889b7177cb4eda6709d2/aws/sdk-codegen/src/test/kotlin/software/amazon/smithy/rustsdk/SigV4AuthDecoratorTest.kt#L72) that excludes the `UserAgentInterceptor` and checks the `Signature` value in the `authorization` header. The question is, do we want to keep this test? If future header updates cause semver hazards to fail, this test would also be affected. We would then need to repeat the process we are going through with this PR: update the test, release the change to aws-sdk-rust, and only then can we make subsequent changes without breaing semver hazards. - I've removed the commented-out tests and their associated connection recording files from `request_information_headers.rs` as part of cleanup, since there were no explanatory comments. Let me know if we want to restore these tests, and I will do so along with a comment explaining their purpose. ## Testing - Existing tests in CI ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
- Loading branch information
1 parent
8733038
commit 8a78e6e
Showing
18 changed files
with
129 additions
and
88 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
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
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
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
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
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
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
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
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
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
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
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
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
Oops, something went wrong.