Azure / Azure/azure-sdk-for-rust
[Event Hubs] Add live tests for the blob checkpoint store
- Dominant language
- Rust
- Stars
- 884
- Forks
- 365
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 109
Description
## Summary
`azure_messaging_eventhubs_checkpointstore_blob` has 14 recorded tests across `checkpoint_unit_tests.rs` and `ownership_unit_tests.rs`. They cover claims, etag versions, and a stale etag failure. They do not cover isolation between event hubs, consumer groups, and namespaces, and they do not cover errors against a container that does not exist. .NET has 26 tests in `BlobsCheckpointStoreInternalLiveTests.cs`.
## Motivation
The blob checkpoint store keys every record by namespace, event hub, consumer group, and partition. If that key is wrong, two unrelated processors overwrite each other's checkpoints, and events are lost or reprocessed. The isolation tests are the ones that prove the key is correct. Part of #4886.
## Proposal
- [ ] Checkpoints and ownership records for one event hub, consumer group, or namespace do not interfere with another one (.NET `CheckpointUpdateDoesNotInterfereWithOtherConsumerGroups` and its siblings).
- [ ] Store operations against a container that does not exist return a clear error (.NET `GetCheckpointDetectsWhenTheContainerDoesNotExist`, `ListOwnershipFailsWhenContainerDoesNotExist`).
## Validation
Deploy the test resources with `eng/common/TestResources/New-TestResources.ps1 -ServiceDirectory eventhubs`. Set the storage variables. Then run `AZURE_TEST_MODE=live cargo test --package azure_messaging_eventhubs_checkpointstore_blob`. Each new test passes in live mode.
Contributor guide
Assessment
This issue has not been assessed yet.