mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-21 19:38:02 +01:00
Support sub-millisecond permit regeneration durations in rate limiters
This commit is contained in:
committed by
Jon Chambers
parent
82ed783a2d
commit
e38a713ccc
@@ -302,7 +302,7 @@ class DynamicConfigurationTest {
|
||||
limits:
|
||||
rateLimitReset:
|
||||
bucketSize: 17
|
||||
permitRegenerationDuration: PT4S
|
||||
permitRegenerationDuration: PT0.000004S
|
||||
""");
|
||||
|
||||
final RateLimiterConfig resetRateLimiterConfig =
|
||||
@@ -310,7 +310,7 @@ class DynamicConfigurationTest {
|
||||
.getLimits().get(RateLimiters.For.RATE_LIMIT_RESET.id());
|
||||
|
||||
assertThat(resetRateLimiterConfig.bucketSize()).isEqualTo(17);
|
||||
assertThat(resetRateLimiterConfig.permitRegenerationDuration()).isEqualTo(Duration.ofSeconds(4));
|
||||
assertThat(resetRateLimiterConfig.permitRegenerationDuration()).isEqualTo(Duration.ofNanos(4_000));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -17,11 +17,13 @@ class RateLimiterConfigTest {
|
||||
@Test
|
||||
void leakRatePerMillis() {
|
||||
assertEquals(0.001, new RateLimiterConfig(1, Duration.ofSeconds(1)).leakRatePerMillis());
|
||||
assertEquals(1e6, new RateLimiterConfig(1, Duration.ofNanos(1)).leakRatePerMillis());
|
||||
}
|
||||
|
||||
@Test
|
||||
void isRegenerationRatePositive() {
|
||||
assertTrue(new RateLimiterConfig(1, Duration.ofSeconds(1)).hasPositiveRegenerationRate());
|
||||
assertTrue(new RateLimiterConfig(1, Duration.ofNanos(1)).hasPositiveRegenerationRate());
|
||||
assertFalse(new RateLimiterConfig(1, Duration.ZERO).hasPositiveRegenerationRate());
|
||||
assertFalse(new RateLimiterConfig(1, Duration.ofSeconds(-1)).hasPositiveRegenerationRate());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user