@@ -41,6 +41,12 @@ func testMW(t *testing.T, config DBConfig) {
4141 noOfPrimaries , noOfReplicas := int (config .primaryDBCount ), int (config .replicaDBCount )
4242 lbPolicy := config .lbPolicy
4343
44+ // Skip extreme cases that are likely to cause load balancer distribution issues
45+ if noOfPrimaries > 10 || noOfReplicas > 10 {
46+ t .Skipf ("skipping extreme case with %d primaries and %d replicas for test stability" , noOfPrimaries , noOfReplicas )
47+ return
48+ }
49+
4450 primaries := make ([]* sql.DB , noOfPrimaries )
4551 replicas := make ([]* sql.DB , noOfReplicas )
4652
@@ -76,7 +82,7 @@ func testMW(t *testing.T, config DBConfig) {
7682 // Limit iterations to prevent excessive mock expectations during fuzzing
7783 maxIterations := 6
7884 if noOfPrimaries > 1 {
79- maxIterations = min (noOfPrimaries * 6 , 30 ) // Cap at 30 iterations
85+ maxIterations = min (12 , 6 * min ( noOfPrimaries , 2 )) // Cap at 12 iterations, even for many primaries
8086 }
8187
8288 for i := 0 ; i < maxIterations ; i ++ {
@@ -166,7 +172,10 @@ func testMW(t *testing.T, config DBConfig) {
166172 }
167173
168174 // Limit iterations to prevent excessive mock expectations during fuzzing
169- maxIterations := min (noOfReplicas * 5 , 20 ) // Cap at 20 iterations
175+ maxIterations := 5
176+ if noOfReplicas > 1 {
177+ maxIterations = min (8 , 4 * min (noOfReplicas , 2 )) // Cap at 8 iterations, even for many replicas
178+ }
170179
171180 for i := 0 ; i < maxIterations ; i ++ {
172181 robin := resolver .loadBalancer .predict (noOfReplicas )
0 commit comments