Skip to content

Mirror cases onto HNS and S3 Express, and merge s3-express.json into operations - #7

Merged
tiptenbrink merged 1 commit into
masterfrom
profile-mirrors
Sep 29, 2026
Merged

tiptenbrink merged 1 commit into
masterfrom
profile-mirrors

Conversation

@tiptenbrink

Copy link
Copy Markdown
Collaborator

Summary

  • HNS mirrors. The HNS account gains the 17 cases that only the flat Azure account had: the key encodings on GET, list over all pages, the XML-escaped listing, noise tolerance, server errors and a body cut short.
  • Express mirrors. S3 Express gains 20 cases that only general-purpose S3 had: the checksum cases, key encodings on GET, Content-MD5, the listing walks including 1,001 keys, the constructed listings and the 200-with-error completion.
  • list-other-delimiter for Azure. A flat account groups at - as S3 does. An HNS account answers 400 DelimiterIsInvalidForHNS. A client told the account kind may refuse locally, if it names that status and code.
  • Measured live and recorded in the cases:
    • A directory bucket answers Content-MD5 with 501 NotImplemented, whether it matches or not. The status is not a 4xx, so a client must send the request and report the error.
    • A directory bucket returns a long metadata value as the one encoded word it stored.
    • HNS stores no blob whose name ends in /.
  • s3-express.json merged into operations.json under the s3-express profile. Case ids are unchanged. Both S3 profiles have provider s3, so grade gains --profile PROFILE to grade one of them.

Every new case was verified live, except the two constructed listings, which no service is known to send.

For clients

  • Grade Express with grade cases/operations.json --profile s3-express, and general-purpose S3 with --profile s3. --provider s3 now selects both.
  • An expected-unsupported list keyed by the suite name s3-express needs its entries under operations.

Test plan

  • cargo test --locked, cargo clippy --locked --all-targets -- -D warnings and cargo fmt --check pass.
  • object-tests validate cases/operations.json passes (916 cases).
  • The pinned borink adapter grades operations and vectors with --record-unsupported and exits 0, as the CI step does.

The HNS account and S3 Express gain the cases that only flat Azure or general-purpose S3 had, and both Azure account kinds a listing at the delimiter -. HNS refuses any delimiter but /, and Express answers Content-MD5 with 501 NotImplemented; the cases record both.
s3-express.json merges into operations.json under the s3-express profile, and grade takes --profile to grade one profile of a provider.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@tiptenbrink
tiptenbrink merged commit 675a037 into master Sep 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant