summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/index/seqno/LocalCheckpointTrackerTests.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/java/org/elasticsearch/index/seqno/LocalCheckpointTrackerTests.java')
-rw-r--r--core/src/test/java/org/elasticsearch/index/seqno/LocalCheckpointTrackerTests.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/core/src/test/java/org/elasticsearch/index/seqno/LocalCheckpointTrackerTests.java b/core/src/test/java/org/elasticsearch/index/seqno/LocalCheckpointTrackerTests.java
index 3d280b4d28..e2978ffc51 100644
--- a/core/src/test/java/org/elasticsearch/index/seqno/LocalCheckpointTrackerTests.java
+++ b/core/src/test/java/org/elasticsearch/index/seqno/LocalCheckpointTrackerTests.java
@@ -38,6 +38,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.isOneOf;
@@ -236,4 +237,23 @@ public class LocalCheckpointTrackerTests extends ESTestCase {
thread.join();
}
+
+ public void testResetCheckpoint() {
+ final int operations = 1024 - scaledRandomIntBetween(0, 1024);
+ int maxSeqNo = Math.toIntExact(SequenceNumbersService.NO_OPS_PERFORMED);
+ for (int i = 0; i < operations; i++) {
+ if (!rarely()) {
+ tracker.markSeqNoAsCompleted(i);
+ maxSeqNo = i;
+ }
+ }
+
+ final int localCheckpoint =
+ randomIntBetween(Math.toIntExact(SequenceNumbersService.NO_OPS_PERFORMED), Math.toIntExact(tracker.getCheckpoint()));
+ tracker.resetCheckpoint(localCheckpoint);
+ assertThat(tracker.getCheckpoint(), equalTo((long) localCheckpoint));
+ assertThat(tracker.getMaxSeqNo(), equalTo((long) maxSeqNo));
+ assertThat(tracker.processedSeqNo, empty());
+ assertThat(tracker.generateSeqNo(), equalTo((long) (maxSeqNo + 1)));
+ }
}