Files
rustfs/crates/e2e_test
houseme 9ae233d552 test(e2e): add SHA256 write and HEAD checksum regressions (#4354)
test(e2e): add SHA256 verify-on-write & HEAD-checksum regression for #4341

Issue #4341 reported (on beta.8) that RustFS accepted mismatched S3
SHA256 checksums on PutObject (HTTP 200 instead of 400 BadDigest) and
did not return ChecksumSHA256 on HeadObject with ChecksumMode=ENABLED.

Both behaviors are already correct on current main, but the existing
e2e coverage only asserted the happy path (upload succeeds + GetObject
content matches). It did not encode the issue's two acceptance criteria,
so a future regression would go undetected.

Add two focused e2e tests that assert exactly the issue's contract:
- test_put_object_rejects_mismatched_sha256: a body that does not match
  the declared x-amz-checksum-sha256 must be rejected with BadDigest and
  must not be stored.
- test_head_object_returns_stored_sha256: after a correct upload,
  HeadObject with ChecksumMode=ENABLED must return the stored base64
  SHA256 digest.

Both tests pass against a real rustfs server (mismatch -> HTTP 400
BadDigest verified).

Co-authored-by: heihutu <heihutu@gmail.com>
2026-07-07 14:01:32 +08:00
..