Skip to content

Commit ea11a2a

Browse files
committed
improve the SeqNumSet tests
1 parent 5935009 commit ea11a2a

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

core/src/test/java/org/elasticsearch/index/translog/MultiSnapshotTests.java

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,32 +30,24 @@
3030
import java.util.stream.LongStream;
3131

3232
import static org.hamcrest.CoreMatchers.equalTo;
33+
import static org.hamcrest.Matchers.lessThanOrEqualTo;
3334

3435
public class MultiSnapshotTests extends ESTestCase {
35-
public void testTrackSeqNumRandomRanges() throws Exception {
36-
final MultiSnapshot.SeqNumSet bitSet = new MultiSnapshot.SeqNumSet();
37-
final LongSet normalSet = new LongHashSet();
38-
IntStream.range(0, between(20_000, 50_000)).forEach(i -> {
39-
long seq = randomNonNegativeLong();
40-
boolean existed = normalSet.add(seq) == false;
41-
assertThat("SeqNumSet != Set", bitSet.getAndSet(seq), equalTo(existed));
42-
});
43-
}
44-
4536
public void testTrackSeqNumDenseRanges() throws Exception {
4637
final MultiSnapshot.SeqNumSet bitSet = new MultiSnapshot.SeqNumSet();
4738
final LongSet normalSet = new LongHashSet();
48-
IntStream.range(0, between(20_000, 50_000)).forEach(i -> {
39+
IntStream.range(0, scaledRandomIntBetween(5_000, 10_000)).forEach(i -> {
4940
long seq = between(0, 5000);
5041
boolean existed = normalSet.add(seq) == false;
5142
assertThat("SeqNumSet != Set" + seq, bitSet.getAndSet(seq), equalTo(existed));
43+
assertThat(bitSet.ongoingSetsSize() + bitSet.completeSetsSize(), lessThanOrEqualTo(5L));
5244
});
5345
}
5446

5547
public void testTrackSeqNumSparseRanges() throws Exception {
5648
final MultiSnapshot.SeqNumSet bitSet = new MultiSnapshot.SeqNumSet();
5749
final LongSet normalSet = new LongHashSet();
58-
IntStream.range(0, between(20_000, 50_000)).forEach(i -> {
50+
IntStream.range(0, scaledRandomIntBetween(5_000, 10_000)).forEach(i -> {
5951
long seq = between(i * 10_000, i * 30_000);
6052
boolean existed = normalSet.add(seq) == false;
6153
assertThat("SeqNumSet != Set", bitSet.getAndSet(seq), equalTo(existed));
@@ -66,17 +58,26 @@ public void testSequenceNumMimicTranslog() throws Exception {
6658
final MultiSnapshot.SeqNumSet bitSet = new MultiSnapshot.SeqNumSet();
6759
final LongSet normalSet = new LongHashSet();
6860
long currentSeq = between(10_000_000, 1_000_000_000);
69-
final int iterations = between(100, 2000);
61+
final int iterations = scaledRandomIntBetween(100, 2000);
62+
assertThat(bitSet.completeSetsSize(), equalTo(0L));
63+
assertThat(bitSet.ongoingSetsSize(), equalTo(0L));
64+
long totalDocs = 0;
7065
for (long i = 0; i < iterations; i++) {
71-
List<Long> batch = LongStream.range(currentSeq, currentSeq + between(1, 1000))
66+
int batchSize = between(1, 1500);
67+
totalDocs += batchSize;
68+
currentSeq -= batchSize;
69+
List<Long> batch = LongStream.range(currentSeq, currentSeq + batchSize)
7270
.boxed()
7371
.collect(Collectors.toList());
7472
Randomness.shuffle(batch);
7573
batch.forEach(seq -> {
7674
boolean existed = normalSet.add(seq) == false;
7775
assertThat("SeqNumSet != Set", bitSet.getAndSet(seq), equalTo(existed));
76+
assertThat(bitSet.ongoingSetsSize(), lessThanOrEqualTo(4L));
7877
});
79-
currentSeq -= batch.size();
78+
assertThat(bitSet.ongoingSetsSize(), lessThanOrEqualTo(2L));
8079
}
80+
assertThat(bitSet.completeSetsSize(), lessThanOrEqualTo(totalDocs / 1024));
81+
assertThat(bitSet.ongoingSetsSize(), lessThanOrEqualTo(2L));
8182
}
8283
}

0 commit comments

Comments
 (0)