MCPcopy
hub / github.com/grafana/dskit / TestRing_ShuffleShard

Function TestRing_ShuffleShard

ring/ring_test.go:1691–1995  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1689}
1690
1691func TestRing_ShuffleShard(t *testing.T) {
1692 gen := initTokenGenerator(t)
1693
1694 tests := map[string]struct {
1695 ringInstances map[string]InstanceDesc
1696 shardSize int
1697 zoneAwarenessEnabled bool
1698 expectedSize int
1699 expectedDistribution []int
1700 expectedZoneCount int
1701 expectedInstancesInZoneCount map[string]int
1702 }{
1703 "empty ring": {
1704 ringInstances: nil,
1705 shardSize: 2,
1706 zoneAwarenessEnabled: true,
1707 expectedSize: 0,
1708 expectedDistribution: []int{},
1709 },
1710 "empty ring, shardSize=0": {
1711 ringInstances: nil,
1712 shardSize: 0,
1713 zoneAwarenessEnabled: true,
1714 expectedSize: 0,
1715 expectedDistribution: []int{},
1716 },
1717 "single zone, shard size > num instances": {
1718 ringInstances: map[string]InstanceDesc{
1719 "instance-1": {Addr: "127.0.0.1", Zone: "zone-a", Tokens: gen.GenerateTokens(128, nil)},
1720 "instance-2": {Addr: "127.0.0.2", Zone: "zone-a", Tokens: gen.GenerateTokens(128, nil)},
1721 },
1722 shardSize: 3,
1723 zoneAwarenessEnabled: true,
1724 expectedSize: 2,
1725 expectedDistribution: []int{2},
1726 expectedZoneCount: 1,
1727 expectedInstancesInZoneCount: map[string]int{"zone-a": 2},
1728 },
1729 "single zone, shard size == 0": {
1730 ringInstances: map[string]InstanceDesc{
1731 "instance-1": {Addr: "127.0.0.1", Zone: "zone-a", Tokens: gen.GenerateTokens(128, nil)},
1732 "instance-2": {Addr: "127.0.0.2", Zone: "zone-a", Tokens: gen.GenerateTokens(128, nil)},
1733 },
1734 shardSize: 3,
1735 zoneAwarenessEnabled: true,
1736 expectedSize: 2,
1737 expectedDistribution: []int{2},
1738 expectedZoneCount: 1,
1739 expectedInstancesInZoneCount: map[string]int{"zone-a": 2},
1740 },
1741 "single zone, shard size < num instances": {
1742 ringInstances: map[string]InstanceDesc{
1743 "instance-1": {Addr: "127.0.0.1", Zone: "zone-a", Tokens: gen.GenerateTokens(128, nil)},
1744 "instance-2": {Addr: "127.0.0.2", Zone: "zone-a", Tokens: gen.GenerateTokens(128, nil)},
1745 "instance-3": {Addr: "127.0.0.3", Zone: "zone-a", Tokens: gen.GenerateTokens(128, nil)},
1746 },
1747 shardSize: 2,
1748 zoneAwarenessEnabled: true,

Callers

nothing calls this directly

Calls 11

initTokenGeneratorFunction · 0.85
newRingForTestingFunction · 0.85
RunMethod · 0.80
setRingStateFromDescMethod · 0.80
GenerateTokensMethod · 0.65
ShuffleShardMethod · 0.65
InstancesCountMethod · 0.65
ZonesCountMethod · 0.65
InstancesInZoneCountMethod · 0.65
GetAllHealthyMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected