Skip to content

Storage Content Validation - Fuzzy Upload Tests#49031

Open
ibrandes wants to merge 2 commits intoAzure:feature/storage/content-validationfrom
ibrandes:content-validation/encoderFuzzyTesting
Open

Storage Content Validation - Fuzzy Upload Tests#49031
ibrandes wants to merge 2 commits intoAzure:feature/storage/content-validationfrom
ibrandes:content-validation/encoderFuzzyTesting

Conversation

@ibrandes
Copy link
Copy Markdown
Member

@ibrandes ibrandes commented May 3, 2026

Summary

Adds parameterized fuzzy parallel upload coverage for blob content validation: parallel uploadWithResponse with CRC64, varied payload size, segment / block size, and max concurrency, then download and byte-compare for sync (BlobClient) and async (BlobAsyncClient) paths.

Details

  • BlobTestBase: introduces shared @MethodSource streams that encode deterministic grids (non–power-of-two sizes, 4 MiB boundary cases, small/medium/large multipart stress).
  • BlobContentValidationUploadTests / BlobContentValidationAsyncUploadTests: new parameterized tests call small helpers that build ParallelTransferOptions + BlobParallelUploadOptions with CRC64 and assert round-trip integrity per tuple.
  • Replay vs live: Put Blob–friendly tuples (payload ≤ segment, no Put Block ID churn) run under the test proxy; staging / Put Block–heavy scenarios are marked @LiveOnly where recordings are unstable (e.g. random block IDs in URLs).

@github-actions github-actions Bot added the Storage Storage Service (Queues, Blobs, Files) label May 3, 2026
@ibrandes ibrandes changed the title tests and assets Storage Content Validation - Fuzzy Upload Tests May 3, 2026
@ibrandes ibrandes requested a review from Copilot May 3, 2026 17:57
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds deterministic, parameterized “fuzzy” parallel upload test coverage for Blob content validation using CRC64, validating round-trip integrity across varied payload sizes, segment/block sizes, and concurrency for both sync and async clients.

Changes:

  • Added shared @MethodSource argument grids in BlobTestBase to drive deterministic fuzzy upload scenarios (replayable Put Blob cases + live-only staging-heavy cases).
  • Added new parameterized CRC64 parallel upload round-trip tests for BlobClient and BlobAsyncClient.
  • Updated assets.json tag for azure-storage-blob.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 10 comments.

File Description
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/BlobTestBase.java Introduces shared deterministic Stream<Arguments> grids for fuzzy parallel upload coverage.
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/BlobContentValidationUploadTests.java Adds parameterized sync fuzzy parallel upload tests + shared helper for CRC64 upload/download byte-compare.
sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/BlobContentValidationAsyncUploadTests.java Adds parameterized async fuzzy parallel upload tests + shared helper for CRC64 upload/download byte-compare.
sdk/storage/azure-storage-blob/assets.json Updates assets tag.

@ibrandes ibrandes marked this pull request as ready for review May 4, 2026 04:23
Copy link
Copy Markdown
Member

@gunjansingh-msft gunjansingh-msft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly all relevant cases are covered, and the overall test coverage looks good. Approving.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Storage Storage Service (Queues, Blobs, Files)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants