X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FAbstractReplicatedLogImplTest.java;h=c99f253657734cee8112f42e85b93e7feeebf215;hp=8fdb7ea226e835186df84d7b71cb4125f2b3a759;hb=8360177d8f021df9078ac54919a816a73fbee0a0;hpb=7df9909614131c0870267732277d7aa78501afdc diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/AbstractReplicatedLogImplTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/AbstractReplicatedLogImplTest.java index 8fdb7ea226..c99f253657 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/AbstractReplicatedLogImplTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/AbstractReplicatedLogImplTest.java @@ -15,7 +15,6 @@ import akka.japi.Procedure; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -40,14 +39,6 @@ public class AbstractReplicatedLogImplTest { } - @After - public void tearDown() { - replicatedLogImpl.journal.clear(); - replicatedLogImpl.setSnapshotIndex(-1); - replicatedLogImpl.setSnapshotTerm(-1); - replicatedLogImpl = null; - } - @Test public void testIndexOperations() { @@ -65,7 +56,7 @@ public class AbstractReplicatedLogImplTest { // now create a snapshot of 3 entries, with 1 unapplied entry left in the log // It removes the entries which have made it to snapshot // and updates the snapshot index and term - Map state = takeSnapshot(3); + takeSnapshot(3); // check the values after the snapshot. // each index value passed in the test is the logical index (log entry index) @@ -101,7 +92,7 @@ public class AbstractReplicatedLogImplTest { assertEquals(2, replicatedLogImpl.getFrom(6).size()); // take a second snapshot with 5 entries with 0 unapplied entries left in the log - state = takeSnapshot(5); + takeSnapshot(5); assertEquals(0, replicatedLogImpl.size()); assertNull(replicatedLogImpl.last()); @@ -187,19 +178,45 @@ public class AbstractReplicatedLogImplTest { assertTrue(replicatedLogImpl.isPresent(5)); } + @Test + public void testRemoveFrom() { + + replicatedLogImpl.append(new MockReplicatedLogEntry(2, 4, new MockPayload("E", 2))); + replicatedLogImpl.append(new MockReplicatedLogEntry(2, 5, new MockPayload("F", 3))); + + assertEquals("dataSize", 9, replicatedLogImpl.dataSize()); + + long adjusted = replicatedLogImpl.removeFrom(4); + assertEquals("removeFrom - adjusted", 4, adjusted); + assertEquals("size", 4, replicatedLogImpl.size()); + assertEquals("dataSize", 4, replicatedLogImpl.dataSize()); + + takeSnapshot(1); + + adjusted = replicatedLogImpl.removeFrom(2); + assertEquals("removeFrom - adjusted", 1, adjusted); + assertEquals("size", 1, replicatedLogImpl.size()); + assertEquals("dataSize", 1, replicatedLogImpl.dataSize()); + + assertEquals("removeFrom - adjusted", -1, replicatedLogImpl.removeFrom(0)); + assertEquals("removeFrom - adjusted", -1, replicatedLogImpl.removeFrom(100)); + } + // create a snapshot for test public Map takeSnapshot(final int numEntries) { Map map = new HashMap<>(numEntries); - List entries = replicatedLogImpl.getEntriesTill(numEntries); - for (ReplicatedLogEntry entry : entries) { + + long lastIndex = 0; + long lastTerm = 0; + for(int i = 0; i < numEntries; i++) { + ReplicatedLogEntry entry = replicatedLogImpl.getAtPhysicalIndex(i); map.put(entry.getIndex(), entry.getData().toString()); + lastIndex = entry.getIndex(); + lastTerm = entry.getTerm(); } - int term = (int) replicatedLogImpl.lastTerm(); - int lastIndex = (int) entries.get(entries.size() - 1).getIndex(); - entries.clear(); - replicatedLogImpl.setSnapshotTerm(term); - replicatedLogImpl.setSnapshotIndex(lastIndex); + replicatedLogImpl.snapshotPreCommit(lastIndex, lastTerm); + replicatedLogImpl.snapshotCommit(); return map; @@ -213,15 +230,6 @@ public class AbstractReplicatedLogImplTest { public void removeFromAndPersist(final long index) { } - @Override - public int dataSize() { - return -1; - } - - public List getEntriesTill(final int index) { - return journal.subList(0, index); - } - @Override public void appendAndPersist(ReplicatedLogEntry replicatedLogEntry, Procedure callback) { }