You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by fr...@apache.org on 2017/08/07 14:32:52 UTC

svn commit: r1804341 - /jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/ReclaimersTest.java

Author: frm
Date: Mon Aug  7 14:32:52 2017
New Revision: 1804341

URL: http://svn.apache.org/viewvc?rev=1804341&view=rev
Log:
OAK-6507 - Additional tests for the old reclaimer predicate

Modified:
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/ReclaimersTest.java

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/ReclaimersTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/ReclaimersTest.java?rev=1804341&r1=1804340&r2=1804341&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/ReclaimersTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/ReclaimersTest.java Mon Aug  7 14:32:52 2017
@@ -29,10 +29,8 @@ import org.junit.Test;
 
 public class ReclaimersTest {
 
-    @Test
-    public void testOldReclaimerCompactedHead() {
-        Predicate<GCGeneration> reclaimer = newOldReclaimer(
-                newGCGeneration(3, 3, true), 2);
+    private static void testOldReclaimer(boolean isCompacted) {
+        Predicate<GCGeneration> reclaimer = newOldReclaimer(newGCGeneration(3, 3, isCompacted), 2);
 
         // Don't reclaim young segments
         assertFalse(reclaimer.apply(newGCGeneration(3, 3, false)));
@@ -46,62 +44,69 @@ public class ReclaimersTest {
 
         // Reclaim old and uncompacted segments
         assertTrue(reclaimer.apply(newGCGeneration(1, 3, false)));
-        assertTrue(reclaimer.apply(newGCGeneration(1, 3, false)));
-        assertTrue(reclaimer.apply(newGCGeneration(0, 3, false)));
         assertTrue(reclaimer.apply(newGCGeneration(0, 3, false)));
 
         // Don't reclaim old compacted segments from the same full generation
         assertFalse(reclaimer.apply(newGCGeneration(1, 3, true)));
-        assertFalse(reclaimer.apply(newGCGeneration(1, 3, true)));
-        assertFalse(reclaimer.apply(newGCGeneration(0, 3, true)));
         assertFalse(reclaimer.apply(newGCGeneration(0, 3, true)));
 
         // Reclaim old compacted segments from prior full generations
         assertTrue(reclaimer.apply(newGCGeneration(1, 2, true)));
-        assertTrue(reclaimer.apply(newGCGeneration(1, 2, true)));
-        assertTrue(reclaimer.apply(newGCGeneration(0, 2, true)));
+        assertTrue(reclaimer.apply(newGCGeneration(1, 2, false)));
         assertTrue(reclaimer.apply(newGCGeneration(0, 2, true)));
+        assertTrue(reclaimer.apply(newGCGeneration(0, 2, false)));
     }
 
-    @Test
-    public void testOldReclaimerUncompactedHead() {
-        Predicate<GCGeneration> reclaimer = newOldReclaimer(
-                newGCGeneration(3, 3, true), 2);
+    private static void testOldReclaimerSequence(boolean isCompacted) {
+        Predicate<GCGeneration> reclaimer = newOldReclaimer(newGCGeneration(9, 2, isCompacted), 2);
 
-        // Don't reclaim young segments
-        assertFalse(reclaimer.apply(newGCGeneration(3, 3, false)));
-        assertFalse(reclaimer.apply(newGCGeneration(3, 3, true)));
-        assertFalse(reclaimer.apply(newGCGeneration(3, 3, false)));
-        assertFalse(reclaimer.apply(newGCGeneration(3, 3, true)));
-        assertFalse(reclaimer.apply(newGCGeneration(2, 3, false)));
-        assertFalse(reclaimer.apply(newGCGeneration(2, 3, true)));
-        assertFalse(reclaimer.apply(newGCGeneration(2, 3, false)));
-        assertFalse(reclaimer.apply(newGCGeneration(2, 3, true)));
+        assertFalse(reclaimer.apply(newGCGeneration(9, 2, false)));
+        assertFalse(reclaimer.apply(newGCGeneration(9, 2, true)));
+        assertFalse(reclaimer.apply(newGCGeneration(8, 2, false)));
+        assertFalse(reclaimer.apply(newGCGeneration(8, 2, true)));
+        assertTrue(reclaimer.apply(newGCGeneration(7, 2, false)));
+        assertFalse(reclaimer.apply(newGCGeneration(7, 2, true)));
+        assertTrue(reclaimer.apply(newGCGeneration(6, 2, false)));
+        assertFalse(reclaimer.apply(newGCGeneration(6, 2, true)));
+
+        assertTrue(reclaimer.apply(newGCGeneration(5, 1, false)));
+        assertTrue(reclaimer.apply(newGCGeneration(5, 1, true)));
+        assertTrue(reclaimer.apply(newGCGeneration(4, 1, false)));
+        assertTrue(reclaimer.apply(newGCGeneration(4, 1, true)));
+        assertTrue(reclaimer.apply(newGCGeneration(3, 1, false)));
+        assertTrue(reclaimer.apply(newGCGeneration(3, 1, true)));
+
+        assertTrue(reclaimer.apply(newGCGeneration(2, 0, false)));
+        assertTrue(reclaimer.apply(newGCGeneration(2, 0, true)));
+        assertTrue(reclaimer.apply(newGCGeneration(1, 0, false)));
+        assertTrue(reclaimer.apply(newGCGeneration(1, 0, true)));
+        assertTrue(reclaimer.apply(newGCGeneration(0, 0, false)));
 
-        // Reclaim old and uncompacted segments
-        assertTrue(reclaimer.apply(newGCGeneration(1, 3, false)));
-        assertTrue(reclaimer.apply(newGCGeneration(1, 3, false)));
-        assertTrue(reclaimer.apply(newGCGeneration(0, 3, false)));
-        assertTrue(reclaimer.apply(newGCGeneration(0, 3, false)));
+    }
 
-        // Don't reclaim old compacted segments from the same full generation
-        assertFalse(reclaimer.apply(newGCGeneration(1, 3, true)));
-        assertFalse(reclaimer.apply(newGCGeneration(1, 3, true)));
-        assertFalse(reclaimer.apply(newGCGeneration(0, 3, true)));
-        assertFalse(reclaimer.apply(newGCGeneration(0, 3, true)));
+    @Test
+    public void testOldReclaimerCompactedHead() {
+        testOldReclaimer(true);
+    }
 
-        // Reclaim old compacted segments from prior full generations
-        assertTrue(reclaimer.apply(newGCGeneration(1, 2, true)));
-        assertTrue(reclaimer.apply(newGCGeneration(1, 2, true)));
-        assertTrue(reclaimer.apply(newGCGeneration(0, 2, true)));
-        assertTrue(reclaimer.apply(newGCGeneration(0, 2, true)));
+    @Test
+    public void testOldReclaimerUncompactedHead() {
+        testOldReclaimer(false);
     }
 
     @Test
-    public void testExactReclaimer() {
-        Predicate<GCGeneration> reclaimer = newExactReclaimer(
-                newGCGeneration(3, 3, false));
+    public void testOldReclaimerSequenceCompactedHead() throws Exception {
+        testOldReclaimerSequence(true);
+    }
 
+    @Test
+    public void testOldReclaimerSequenceUncompactedHead() throws Exception {
+        testOldReclaimerSequence(false);
+    }
+
+    @Test
+    public void testExactReclaimer() {
+        Predicate<GCGeneration> reclaimer = newExactReclaimer(newGCGeneration(3, 3, false));
         assertTrue(reclaimer.apply(newGCGeneration(3, 3, false)));
         assertFalse(reclaimer.apply(newGCGeneration(3, 3, true)));
         assertFalse(reclaimer.apply(newGCGeneration(3, 2, false)));