SERVER-107924 Make RateLimitIsValidAfterQueueing test resilient to slow machines (#41656)
GitOrigin-RevId: 1ac25655a8d9a1a5e3a219955b8e23e513b6a0bb
This commit is contained in:
parent
a082c84cc9
commit
2e536df639
@ -59,6 +59,11 @@ auto constexpr convertBurstSizeToBurstCapacitySecs(double refreshRate, double bu
|
||||
return burstSize / refreshRate;
|
||||
}
|
||||
|
||||
auto assertApproxEqualUnevenBounds(double value, double lowerBound, double upperBound) {
|
||||
ASSERT_GTE(value, lowerBound);
|
||||
ASSERT_LT(value, upperBound);
|
||||
}
|
||||
|
||||
class RateLimiterTest : public ServiceContextTest {
|
||||
private:
|
||||
unittest::MinimumLoggedSeverityGuard logSeverityGuard{logv2::LogComponent::kDefault,
|
||||
@ -135,7 +140,11 @@ TEST_F(RateLimiterTest, RateLimitIsValidAfterQueueing) {
|
||||
"Elapsed vs. expected elapsed millis",
|
||||
"elapsed"_attr = elapsed,
|
||||
"expected"_attr = expectedElapsedMillis);
|
||||
ASSERT_APPROX_EQUAL(durationCount<Milliseconds>(elapsed), expectedElapsedMillis, 100);
|
||||
// The folly token bucket may dispense tokens at a slightly lower rate than specified,
|
||||
// but it must not dispense tokens at a higher rate.
|
||||
assertApproxEqualUnevenBounds(durationCount<Milliseconds>(elapsed),
|
||||
expectedElapsedMillis - 100,
|
||||
expectedElapsedMillis + 1000);
|
||||
|
||||
// Once all the threads have joined, we expect that 3 threads were admitted and 2 were
|
||||
// rejected.
|
||||
@ -156,7 +165,7 @@ TEST_F(RateLimiterTest, RateLimitIsValidAfterQueueing) {
|
||||
"Elapsed vs. expected elapsed millis",
|
||||
"elapsed"_attr = finalElapsed,
|
||||
"expected"_attr = expectedFinalMillis);
|
||||
ASSERT_APPROX_EQUAL(durationCount<Milliseconds>(finalElapsed), expectedFinalMillis, 100);
|
||||
ASSERT_APPROX_EQUAL(durationCount<Milliseconds>(finalElapsed), expectedFinalMillis, 500);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user