Merge core.json into operations, and add case origins and S3 checksums - #6
Merged
Merged
Conversation
A case may declare its origin: observed, transient or constructed. The new constructed case list-encoding-ignored answers encoding-type=url with raw keys and no EncodingType. core.json is gone. The 25 cases that operations did not cover moved into operations.json, and three stay as the grader's own fixture in tests/cases.json. New S3 cases put-with-crc32, put-two-checksums and list-checksum-algorithm show that S3 keeps one checksum per object, and list entries report checksum_algorithm. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This file contains hidden or 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
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.
Summary
origin:observed(the default, left out),transient(the service sends the response, but not on demand, such as a 503 under load) orconstructed(no service is known to send it). The grader grades every origin alike. 37 cases carry a non-default origin.operations/s3/list-encoding-ignored, a constructed case: a service that ignoresencoding-type=urlsends raw keys and noEncodingType. The keys hold a%that begins no escape, which reads as text.core.jsonis merged intooperations.json.kindbeside the status and code, and four binary-body cases that the gzip cases already round-trip.operations/s3/get-xml-looking,operations/s3/get-versionandoperations/azure/list-pagination.tests/cases.json, so the grader's tests no longer depend on the corpus.put-with-crc32sends one additional checksum.put-two-checksumsexpects S3's 400InvalidRequestfor twox-amz-checksum-headers, and permits a local refusal overchecksums.list-checksum-algorithmhas list entries reportchecksum_algorithmas one name. S3's API model makesChecksumAlgorithma list, but S3 keeps one checksum per object.Every moved and new case was verified live against S3 and Azure, except
list-encoding-ignored, which S3 cannot be made to send.For clients
core.jsonstops working. Its cases now live inoperations.jsonunder new ids, so an expected-unsupported list that names core ids needs updating.checksum_algorithmon list entries getslist-checksum-algorithmwrong, unless it declares the field inunsupported_fields.Test plan
cargo test --locked,cargo clippy --locked --all-targets -- -D warningsandcargo fmt --checkpass.object-tests validatepasses forcases/operations.json(713 cases) andcases/s3-express.json(164 cases).