@@ -959,10 +959,12 @@ func TestBuildRateLimit(t *testing.T) {
959
959
loc .RateLimit .RPS .Name = "rps"
960
960
loc .RateLimit .RPS .Limit = 1
961
961
loc .RateLimit .RPS .Burst = 1
962
+ loc .RateLimit .RPS .Delay = - 1
962
963
963
964
loc .RateLimit .RPM .Name = "rpm"
964
965
loc .RateLimit .RPM .Limit = 2
965
966
loc .RateLimit .RPM .Burst = 2
967
+ loc .RateLimit .RPM .Delay = - 1
966
968
967
969
loc .RateLimit .LimitRateAfter = 1
968
970
loc .RateLimit .LimitRate = 1
@@ -983,6 +985,56 @@ func TestBuildRateLimit(t *testing.T) {
983
985
}
984
986
}
985
987
988
+ loc = & ingress.Location {}
989
+
990
+ loc .RateLimit .RPS .Name = "rps"
991
+ loc .RateLimit .RPS .Limit = 1
992
+ loc .RateLimit .RPS .Burst = 5
993
+ loc .RateLimit .RPS .Delay = 2
994
+
995
+ loc .RateLimit .RPM .Name = "rpm"
996
+ loc .RateLimit .RPM .Limit = 2
997
+ loc .RateLimit .RPM .Burst = 5
998
+ loc .RateLimit .RPM .Delay = 3
999
+
1000
+ validLimits = []string {
1001
+ "limit_req zone=rps burst=5 delay=2;" ,
1002
+ "limit_req zone=rpm burst=5 delay=3;" ,
1003
+ }
1004
+
1005
+ limits = buildRateLimit (loc )
1006
+
1007
+ for i , limit := range limits {
1008
+ if limit != validLimits [i ] {
1009
+ t .Errorf ("Expected '%v' but returned '%v'" , validLimits , limits )
1010
+ }
1011
+ }
1012
+
1013
+ loc = & ingress.Location {}
1014
+
1015
+ loc .RateLimit .RPS .Name = "rps"
1016
+ loc .RateLimit .RPS .Limit = 1
1017
+ loc .RateLimit .RPS .Burst = 0
1018
+ loc .RateLimit .RPS .Delay = - 1
1019
+
1020
+ loc .RateLimit .RPM .Name = "rpm"
1021
+ loc .RateLimit .RPM .Limit = 2
1022
+ loc .RateLimit .RPM .Burst = 0
1023
+ loc .RateLimit .RPM .Delay = - 1
1024
+
1025
+ validLimits = []string {
1026
+ "limit_req zone=rps nodelay;" ,
1027
+ "limit_req zone=rpm nodelay;" ,
1028
+ }
1029
+
1030
+ limits = buildRateLimit (loc )
1031
+
1032
+ for i , limit := range limits {
1033
+ if limit != validLimits [i ] {
1034
+ t .Errorf ("Expected '%v' but returned '%v'" , validLimits , limits )
1035
+ }
1036
+ }
1037
+
986
1038
// Invalid limit
987
1039
limits = buildRateLimit (& ingress.Ingress {})
988
1040
if ! reflect .DeepEqual (expected , limits ) {
0 commit comments