test: stabilize gb32960 durable ack boundary

This commit is contained in:
lingniu
2026-07-01 04:18:33 +08:00
parent d5ef061cca
commit 2e54607bd6

View File

@@ -61,10 +61,9 @@ class Gb32960ChannelHandlerAckBoundaryTest {
dispatch.awaitPublishCount(1);
dispatch.failDurability();
channel.runPendingTasks();
assertThat((Object) channel.readOutbound()).isNull();
assertThat(channel.isActive()).isFalse();
assertThat(awaitInactive(channel)).isTrue();
channel.finishAndReleaseAll();
}
}
@@ -151,6 +150,18 @@ class Gb32960ChannelHandlerAckBoundaryTest {
return null;
}
private static boolean awaitInactive(EmbeddedChannel channel) {
long deadline = System.currentTimeMillis() + 3000;
while (System.currentTimeMillis() < deadline) {
channel.runPendingTasks();
if (!channel.isActive()) {
return true;
}
Thread.onSpinWait();
}
return false;
}
private static final class DispatchHarness implements AutoCloseable {
private final ControlledSink sink = new ControlledSink();
private final DisruptorEventBus eventBus = new DisruptorEventBus(1024, "blocking", List.of(sink));