RateLimitTest: increase tolerance to 30%
RateLimitTest is still flaky on some (presumably, lower-end) devices.
Increase tolerance to 30% and increase test duration.
Test: TH
Bug: 255692027
Change-Id: I7368d082069d2b4b657b13d136b9f3f8880d4e70
diff --git a/tests/cts/net/src/android/net/cts/RateLimitTest.java b/tests/cts/net/src/android/net/cts/RateLimitTest.java
index 28cec1a..36b98fc 100644
--- a/tests/cts/net/src/android/net/cts/RateLimitTest.java
+++ b/tests/cts/net/src/android/net/cts/RateLimitTest.java
@@ -301,29 +301,32 @@
public void testIngressRateLimit_testLimit() throws Exception {
assumeKernelSupport();
+ // These tests are not very precise, especially on lower-end devices.
+ // Add 30% tolerance to reduce test flakiness. Burst size is constant at 128KiB.
+ final double toleranceFactor = 1.3;
+
// If this value is too low, this test might become flaky because of the burst value that
// allows to send at a higher data rate for a short period of time. The faster the data rate
// and the longer the test, the less this test will be affected.
final long dataLimitInBytesPerSecond = 2_000_000; // 2MB/s
long resultInBytesPerSecond = runIngressDataRateMeasurement(Duration.ofSeconds(1));
assertGreaterThan("Failed initial test with rate limit disabled", resultInBytesPerSecond,
- dataLimitInBytesPerSecond);
+ (long) (dataLimitInBytesPerSecond * toleranceFactor));
// enable rate limit and wait until the tc filter is installed before starting the test.
ConnectivitySettingsManager.setIngressRateLimitInBytesPerSecond(mContext,
dataLimitInBytesPerSecond);
waitForTcPoliceFilterInstalled(Duration.ofSeconds(1));
- resultInBytesPerSecond = runIngressDataRateMeasurement(Duration.ofSeconds(10));
- // Add 10% tolerance to reduce test flakiness. Burst size is constant at 128KiB.
+ resultInBytesPerSecond = runIngressDataRateMeasurement(Duration.ofSeconds(15));
assertLessThan("Failed test with rate limit enabled", resultInBytesPerSecond,
- (long) (dataLimitInBytesPerSecond * 1.1));
+ (long) (dataLimitInBytesPerSecond * toleranceFactor));
ConnectivitySettingsManager.setIngressRateLimitInBytesPerSecond(mContext, -1);
resultInBytesPerSecond = runIngressDataRateMeasurement(Duration.ofSeconds(1));
assertGreaterThan("Failed test with rate limit disabled", resultInBytesPerSecond,
- dataLimitInBytesPerSecond);
+ (long) (dataLimitInBytesPerSecond * toleranceFactor));
}
@Test