(t *testing.T)
| 1885 | } |
| 1886 | |
| 1887 | func TestSharding(t *testing.T) { |
| 1888 | const ( |
| 1889 | user1 = "user1" |
| 1890 | user2 = "user2" |
| 1891 | user3 = "user3" |
| 1892 | ) |
| 1893 | |
| 1894 | user1Group1 := &rulespb.RuleGroupDesc{User: user1, Namespace: "namespace", Name: "first"} |
| 1895 | user1Group2 := &rulespb.RuleGroupDesc{User: user1, Namespace: "namespace", Name: "second"} |
| 1896 | user2Group1 := &rulespb.RuleGroupDesc{User: user2, Namespace: "namespace", Name: "first"} |
| 1897 | user3Group1 := &rulespb.RuleGroupDesc{User: user3, Namespace: "namespace", Name: "first"} |
| 1898 | |
| 1899 | // Must be distinct for test to work. |
| 1900 | user1Group1Token := tokenForGroup(user1Group1) |
| 1901 | user1Group2Token := tokenForGroup(user1Group2) |
| 1902 | user2Group1Token := tokenForGroup(user2Group1) |
| 1903 | user3Group1Token := tokenForGroup(user3Group1) |
| 1904 | |
| 1905 | noRules := map[string]rulespb.RuleGroupList{} |
| 1906 | allRules := map[string]rulespb.RuleGroupList{ |
| 1907 | user1: {user1Group1, user1Group2}, |
| 1908 | user2: {user2Group1}, |
| 1909 | user3: {user3Group1}, |
| 1910 | } |
| 1911 | |
| 1912 | // ruler ID -> (user ID -> list of groups). |
| 1913 | type expectedRulesMap map[string]map[string]rulespb.RuleGroupList |
| 1914 | |
| 1915 | type testCase struct { |
| 1916 | sharding bool |
| 1917 | shardingStrategy string |
| 1918 | replicationFactor int |
| 1919 | shuffleShardSize float64 |
| 1920 | setupRing func(*ring.Desc) |
| 1921 | enabledUsers []string |
| 1922 | disabledUsers []string |
| 1923 | expectedRules expectedRulesMap |
| 1924 | expectedBackupRules expectedRulesMap |
| 1925 | } |
| 1926 | |
| 1927 | const ( |
| 1928 | ruler1 = "ruler-1" |
| 1929 | ruler1Host = "1.1.1.1" |
| 1930 | ruler1Port = 9999 |
| 1931 | ruler1Addr = "1.1.1.1:9999" |
| 1932 | |
| 1933 | ruler2 = "ruler-2" |
| 1934 | ruler2Host = "2.2.2.2" |
| 1935 | ruler2Port = 9999 |
| 1936 | ruler2Addr = "2.2.2.2:9999" |
| 1937 | |
| 1938 | ruler3 = "ruler-3" |
| 1939 | ruler3Host = "3.3.3.3" |
| 1940 | ruler3Port = 9999 |
| 1941 | ruler3Addr = "3.3.3.3:9999" |
| 1942 | ) |
| 1943 | |
| 1944 | testCases := map[string]testCase{ |
nothing calls this directly
no test coverage detected