You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2014/05/08 22:00:31 UTC

svn commit: r1593398 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/test-framework/ lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java

Author: rmuir
Date: Thu May  8 20:00:31 2014
New Revision: 1593398

URL: http://svn.apache.org/r1593398
Log:
randomize mergepolicy settings on the fly

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/test-framework/   (props changed)
    lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java?rev=1593398&r1=1593397&r2=1593398&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java Thu May  8 20:00:31 2014
@@ -1103,14 +1103,48 @@ public abstract class LuceneTestCase ext
       // change CMS merge parameters
       MergeScheduler ms = c.getMergeScheduler();
       if (ms instanceof ConcurrentMergeScheduler) {
-        int maxThreadCount = TestUtil.nextInt(random(), 1, 4);
-        int maxMergeCount = TestUtil.nextInt(random(), maxThreadCount, maxThreadCount + 4);
+        int maxThreadCount = TestUtil.nextInt(r, 1, 4);
+        int maxMergeCount = TestUtil.nextInt(r, maxThreadCount, maxThreadCount + 4);
         ((ConcurrentMergeScheduler)ms).setMaxMergesAndThreads(maxMergeCount, maxThreadCount);
       }
     }
     
-    // TODO: mergepolicy, etc have mutable state on indexwriter
-    // every setter must be tested
+    if (rarely(r)) {
+      MergePolicy mp = c.getMergePolicy();
+      configureRandom(r, mp);
+      if (mp instanceof LogMergePolicy) {
+        LogMergePolicy logmp = (LogMergePolicy) mp;
+        logmp.setCalibrateSizeByDeletes(r.nextBoolean());
+        if (rarely(r)) {
+          logmp.setMergeFactor(TestUtil.nextInt(r, 2, 9));
+        } else {
+          logmp.setMergeFactor(TestUtil.nextInt(r, 10, 50));
+        }
+      } else if (mp instanceof TieredMergePolicy) {
+        TieredMergePolicy tmp = (TieredMergePolicy) mp;
+        if (rarely(r)) {
+          tmp.setMaxMergeAtOnce(TestUtil.nextInt(r, 2, 9));
+          tmp.setMaxMergeAtOnceExplicit(TestUtil.nextInt(r, 2, 9));
+        } else {
+          tmp.setMaxMergeAtOnce(TestUtil.nextInt(r, 10, 50));
+          tmp.setMaxMergeAtOnceExplicit(TestUtil.nextInt(r, 10, 50));
+        }
+        if (rarely(r)) {
+          tmp.setMaxMergedSegmentMB(0.2 + r.nextDouble() * 2.0);
+        } else {
+          tmp.setMaxMergedSegmentMB(r.nextDouble() * 100);
+        }
+        tmp.setFloorSegmentMB(0.2 + r.nextDouble() * 2.0);
+        tmp.setForceMergeDeletesPctAllowed(0.0 + r.nextDouble() * 30.0);
+        if (rarely(r)) {
+          tmp.setSegmentsPerTier(TestUtil.nextInt(r, 2, 20));
+        } else {
+          tmp.setSegmentsPerTier(TestUtil.nextInt(r, 10, 50));
+        }
+        configureRandom(r, tmp);
+        tmp.setReclaimDeletesWeight(r.nextDouble()*4);
+      }
+    }
   }
 
   /**