Skip to content

Commit 0ac0c65

Browse files
authored
fix(s3stream): Fix the flaky test AsyncNetworkBandwidthLimiterTest(#2416) (#2448)
1 parent ecbe521 commit 0ac0c65

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

s3stream/src/test/java/com/automq/stream/s3/AsyncNetworkBandwidthLimiterTest.java

+12-7
Original file line numberDiff line numberDiff line change
@@ -93,16 +93,21 @@ public void testThrottleConsume3() {
9393

9494
@Test
9595
public void testThrottleConsume4() {
96-
AsyncNetworkBandwidthLimiter bucket = new AsyncNetworkBandwidthLimiter(AsyncNetworkBandwidthLimiter.Type.INBOUND, 100, 1000);
96+
AsyncNetworkBandwidthLimiter bucket = new AsyncNetworkBandwidthLimiter(
97+
AsyncNetworkBandwidthLimiter.Type.INBOUND, 100, 1000);
9798
bucket.consume(ThrottleStrategy.BYPASS, 1000);
9899
Assertions.assertEquals(-100, bucket.getAvailableTokens());
99-
CompletableFuture<Void> cf = bucket.consume(ThrottleStrategy.CATCH_UP, 5);
100-
bucket.consume(ThrottleStrategy.CATCH_UP, 10);
101-
CompletableFuture<Void> result = cf.whenComplete((v, e) -> {
102-
Assertions.assertNull(e);
103-
Assertions.assertEquals(95, bucket.getAvailableTokens());
100+
CompletableFuture<Boolean> firstCompleted = new CompletableFuture<>();
101+
CompletableFuture<Void> cf1 = bucket.consume(ThrottleStrategy.CATCH_UP, 5);
102+
cf1 = cf1.thenApply(v -> {
103+
firstCompleted.complete(true);
104+
return null;
105+
});
106+
CompletableFuture<Void> cf2 = bucket.consume(ThrottleStrategy.CATCH_UP, 10);
107+
CompletableFuture<Void> result = cf2.thenAccept(v -> {
108+
Assertions.assertTrue(firstCompleted.isDone(),
109+
"First request should complete before second request");
104110
});
105-
cf.join();
106111
result.join();
107112
}
108113

0 commit comments

Comments
 (0)