Skip to content

Commit 03d9ca0

Browse files
committed
test: add test case for pending limit
Change-Id: I4ea503fba6ed3a30b2b2a2113f294c575c01ef2d
1 parent 38fd156 commit 03d9ca0

File tree

2 files changed

+100
-0
lines changed

2 files changed

+100
-0
lines changed

dledger/src/test/java/io/openmessaging/storage/dledger/AppendAndPushTest.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,54 @@ public void testPushNetworkOffline() throws Exception {
114114
Assertions.assertTrue(hasWait);
115115
}
116116

117+
@Test
118+
public void testPushNetworkOfflineWithSmallFallConfig() throws Exception {
119+
String group = UUID.randomUUID().toString();
120+
String peers = String.format("n0-localhost:%d;n1-localhost:%d", nextPort(), nextPort());
121+
122+
DLedgerServer dLedgerServer0 = launchServer(group, peers, "n0", "n0", DLedgerConfig.FILE);
123+
dLedgerServer0.getDLedgerConfig().setMaxPendingCommitBytes(100);
124+
boolean hasWait = false;
125+
for (int i = 0; i < 3; i++) {
126+
AppendEntryRequest appendEntryRequest = new AppendEntryRequest();
127+
appendEntryRequest.setGroup(group);
128+
appendEntryRequest.setRemoteId(dLedgerServer0.getMemberState().getSelfId());
129+
appendEntryRequest.setBody(new byte[128]);
130+
CompletableFuture<AppendEntryResponse> future = dLedgerServer0.handleAppend(appendEntryRequest);
131+
Assertions.assertTrue(future instanceof AppendFuture);
132+
if (future.isDone()) {
133+
Assertions.assertEquals(DLedgerResponseCode.LEADER_PENDING_FULL.getCode(), future.get().getCode());
134+
hasWait = true;
135+
break;
136+
}
137+
}
138+
Assertions.assertTrue(hasWait);
139+
}
140+
141+
@Test
142+
public void testPushNetworkOfflineWithSmallPendingCommitIndex() throws Exception {
143+
String group = UUID.randomUUID().toString();
144+
String peers = String.format("n0-localhost:%d;n1-localhost:%d", nextPort(), nextPort());
145+
146+
DLedgerServer dLedgerServer0 = launchServer(group, peers, "n0", "n0", DLedgerConfig.FILE);
147+
dLedgerServer0.getDLedgerConfig().setMaxPendingCommitIndexNum(10);
148+
boolean hasWait = false;
149+
for (int i = 0; i < 12; i++) {
150+
AppendEntryRequest appendEntryRequest = new AppendEntryRequest();
151+
appendEntryRequest.setGroup(group);
152+
appendEntryRequest.setRemoteId(dLedgerServer0.getMemberState().getSelfId());
153+
appendEntryRequest.setBody(new byte[128]);
154+
CompletableFuture<AppendEntryResponse> future = dLedgerServer0.handleAppend(appendEntryRequest);
155+
Assertions.assertTrue(future instanceof AppendFuture);
156+
if (future.isDone()) {
157+
Assertions.assertEquals(DLedgerResponseCode.LEADER_PENDING_FULL.getCode(), future.get().getCode());
158+
hasWait = true;
159+
break;
160+
}
161+
}
162+
Assertions.assertTrue(hasWait);
163+
}
164+
117165
@Test
118166
public void testPushNetworkNotStable() throws Exception {
119167
String group = UUID.randomUUID().toString();

dledger/src/test/java/io/openmessaging/storage/dledger/BatchPushTest.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,58 @@ public void testBatchPushNetworkOffline() throws Exception {
150150
Assertions.assertTrue(hasWait);
151151
}
152152

153+
@Test
154+
public void testBatchPushNetworkOfflineWithSmallFall() throws Exception {
155+
String group = UUID.randomUUID().toString();
156+
String peers = String.format("n0-localhost:%d;n1-localhost:%d", nextPort(), nextPort());
157+
158+
DLedgerServer dLedgerServer0 = launchServerEnableBatchPush(group, peers, "n0", "n0", DLedgerConfig.FILE);
159+
dLedgerServer0.getDLedgerConfig().setMaxPendingCommitBytes(100);
160+
161+
boolean hasWait = false;
162+
for (int i = 0; i < 3; i++) {
163+
AppendEntryRequest appendEntryRequest = new AppendEntryRequest();
164+
appendEntryRequest.setGroup(group);
165+
appendEntryRequest.setRemoteId(dLedgerServer0.getMemberState().getSelfId());
166+
appendEntryRequest.setBody(new byte[128]);
167+
CompletableFuture<AppendEntryResponse> future = dLedgerServer0.handleAppend(appendEntryRequest);
168+
Assertions.assertTrue(future instanceof AppendFuture);
169+
if (future.isDone()) {
170+
Assertions.assertEquals(DLedgerResponseCode.LEADER_PENDING_FULL.getCode(), future.get().getCode());
171+
hasWait = true;
172+
break;
173+
}
174+
}
175+
dLedgerServer0.shutdown();
176+
Assertions.assertTrue(hasWait);
177+
}
178+
179+
@Test
180+
public void testBatchPushNetworkOfflineWithSmallPendingCommitIndex() throws Exception {
181+
String group = UUID.randomUUID().toString();
182+
String peers = String.format("n0-localhost:%d;n1-localhost:%d", nextPort(), nextPort());
183+
184+
DLedgerServer dLedgerServer0 = launchServerEnableBatchPush(group, peers, "n0", "n0", DLedgerConfig.FILE);
185+
dLedgerServer0.getDLedgerConfig().setMaxPendingCommitIndexNum(10);
186+
187+
boolean hasWait = false;
188+
for (int i = 0; i < 12; i++) {
189+
AppendEntryRequest appendEntryRequest = new AppendEntryRequest();
190+
appendEntryRequest.setGroup(group);
191+
appendEntryRequest.setRemoteId(dLedgerServer0.getMemberState().getSelfId());
192+
appendEntryRequest.setBody(new byte[128]);
193+
CompletableFuture<AppendEntryResponse> future = dLedgerServer0.handleAppend(appendEntryRequest);
194+
Assertions.assertTrue(future instanceof AppendFuture);
195+
if (future.isDone()) {
196+
Assertions.assertEquals(DLedgerResponseCode.LEADER_PENDING_FULL.getCode(), future.get().getCode());
197+
hasWait = true;
198+
break;
199+
}
200+
}
201+
dLedgerServer0.shutdown();
202+
Assertions.assertTrue(hasWait);
203+
}
204+
153205
@Test
154206
public void testBatchPushNetworkNotStable() throws Exception {
155207
String group = UUID.randomUUID().toString();

0 commit comments

Comments
 (0)