| Test |
Duration |
Result |
| additional group create under managed prefix does not reject existing coordinator shard keys() |
0.001s |
passed |
| admin mutations are blocked while metadata sync is in progress() |
0.003s |
passed |
| assignment first member gets readable shards() |
0.001s |
passed |
| assignment waits for previous owner revoke() |
0.002s |
passed |
| coordination version is accepted only inside module support range() |
0.001s |
passed |
| coordinator tick expires silent members without waiting for another heartbeat() |
0.001s |
passed |
| create stream validates invalid stream prefix before storing metadata() |
0s |
passed |
| delete group rejects live members unless forced() |
0.002s |
passed |
| delete group removes inactive metadata() |
0s |
passed |
| duplicate terminal revoke report after release does not fence member() |
0.001s |
passed |
| expired member leave heartbeat stays fenced() |
0.001s |
passed |
| failover resumes pending revoke() |
0.002s |
passed |
| first group create rejects pre-existing Redis stream prefix keys() |
0.001s |
passed |
| grafana group rows aggregate produced and consumed rates() |
0.004s |
passed |
| grafana message search finds a record id across every shard() |
0.003s |
passed |
| grafana messages can jump to the last page across all shards() |
0.001s |
passed |
| grafana messages can jump to the last page for a single shard() |
0.008s |
passed |
| grafana messages can page backward through a single shard more than once() |
0.002s |
passed |
| grafana offset cache is not invalidated by heartbeat metadata changes() |
0.001s |
passed |
| grafana offset cache reuses shard reads across overview panels() |
0.001s |
passed |
| grafana option APIs expose current sharded stream selections from metadata() |
0.002s |
passed |
| grafana overview scans multiple groups in parallel() |
0.029s |
passed |
| grafana shard offset reads can run in parallel() |
0.056s |
passed |
| grafana shard rows can scan all groups for overview dashboards() |
0.001s |
passed |
| grafana shard rows expose produced and consumed rates after repeated observations() |
0.015s |
passed |
| grafana shard rows expose target owners separately from acknowledged current owners() |
0.001s |
passed |
| group creation provisions initial shard plan() |
0.001s |
passed |
| group rejects duplicate create() |
0s |
passed |
| health degrades when redis is required and unavailable() |
0.015s |
passed |
| health does not wait for a slow redis ping beyond configured timeout() |
0.022s |
passed |
| health refreshes redis status asynchronously and reuses cache within configured ttl() |
0.013s |
passed |
| health skips redis ping when redis features are disabled() |
0.004s |
passed |
| heartbeat accepts previously granted ownership after target changes before ack() |
0.001s |
passed |
| heartbeat fences member that reports pending shard ownership before revoke completes() |
0.001s |
passed |
| heartbeat fences member that reports shard owned by another active member() |
0.003s |
passed |
| heartbeat fences stale member epoch() |
0.001s |
passed |
| heartbeat rejects active member epoch reset() |
0.001s |
passed |
| heartbeat rejects client advanced member epoch() |
0.002s |
passed |
| heartbeat rejects epoch reset after ownership was acknowledged even when report is empty() |
0.001s |
passed |
| heartbeat rejects member id mismatch() |
0s |
passed |
| heartbeat rejects unknown member leave() |
0.001s |
passed |
| heartbeat rejects unsupported negative member epoch() |
0.001s |
passed |
| heartbeat returns unknown member for missing group() |
0s |
passed |
| heartbeat with higher metadata version requests sync to current redis metadata() |
0.001s |
passed |
| higher metadata version does not bypass fenced member state() |
0s |
passed |
| initial join heartbeat replay returns current assignment without changing epochs() |
0s |
passed |
| logical members receive even shard assignments() |
0.001s |
passed |
| member split join advances assignment epochs() |
0.002s |
passed |
| membership expires owner and reassigns shards() |
0s |
passed |
| membership fences expired owner stale epoch() |
0.001s |
passed |
| membership ignores stale ownership on rejoin() |
0s |
passed |
| membership rejoin restores expired member() |
0s |
passed |
| membership rejoin restores gracefully left member() |
0.001s |
passed |
| metadata sync does not expose new target shards as immediately assigned() |
0.001s |
passed |
| metadata sync does not wait for empty leaving members() |
0.002s |
passed |
| metadata sync ignores stale revoke reports from discarded higher version() |
0.001s |
passed |
| metadata sync serializes concurrent stale revoke reports from multiple members() |
0.001s |
passed |
| metadata sync waits in revoke pending until draining member releases and peers acknowledge() |
0.001s |
passed |
| migration rollback rejects unknown id() |
0.001s |
passed |
| migration rollback restores previous version() |
0s |
passed |
| migration scale lets live consumers revoke old assignments without fencing() |
0.003s |
passed |
| migration scale updates shard count() |
0.001s |
passed |
| monitoring current assignments ignore expired members() |
0.002s |
passed |
| monitoring live owner rows exclude expired members with stale current assignments() |
0.002s |
passed |
| monitoring read does not acquire critical section or write refreshed state() |
0.001s |
passed |
| new logical members rebalance shards by member count() |
0.001s |
passed |
| producer routing returns shard routing metadata() |
0s |
passed |
| rebalance timeout fences stuck owner() |
0.003s |
passed |
| rebalance timeout keeps timely owner active() |
0.001s |
passed |
| scale in completes through Redis drain checks after all live members expire() |
0.001s |
passed |
| scale in migration completes after removed shards are drained() |
0.001s |
passed |
| scale in waits for every Redis consumer group on removed shards to drain() |
0.001s |
passed |
| scale in with no live members waits when Redis cannot prove removed shard lag() |
0.001s |
passed |
| scale provisions target shard plan after preparing migration state is committed() |
0s |
passed |
| scale rejects negative target shard count() |
0.001s |
passed |
| scale to zero drains and removes every shard() |
0.001s |
passed |
| scale to zero waits when Redis cannot compute removed shard lag() |
0.001s |
passed |
| steady heartbeat replay does not bump metadata or assignment epochs() |
0.001s |
passed |
| stream scale to zero updates every consumer group routing metadata() |
0.001s |
passed |
| stream scale updates every consumer group and assignments arrive on heartbeat() |
0.001s |
passed |
| terminal members are pruned after stale member retention() |
0.001s |
passed |
| unknown member can rejoin with zero epoch and receive assignment() |
0.001s |
passed |