You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2016/02/15 11:16:40 UTC

lucene-solr git commit: fix this test to avoid MockRandomMergePolicy which leads to false failures

Repository: lucene-solr
Updated Branches:
  refs/heads/master ef965661a -> a9dc40294


fix this test to avoid MockRandomMergePolicy which leads to false failures


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/a9dc4029
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/a9dc4029
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/a9dc4029

Branch: refs/heads/master
Commit: a9dc40294e9d2d9d40a8a018d738f434c61fc415
Parents: ef96566
Author: Mike McCandless <mi...@apache.org>
Authored: Mon Feb 15 05:17:40 2016 -0500
Committer: Mike McCandless <mi...@apache.org>
Committed: Mon Feb 15 05:17:40 2016 -0500

----------------------------------------------------------------------
 .../apache/lucene/index/SortingMergePolicy.java |  4 ++++
 .../lucene/index/TestSortingMergePolicy.java    |  3 +++
 .../lucene/index/BaseMergePolicyTestCase.java   | 24 ++++++++++++++++----
 3 files changed, 27 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a9dc4029/lucene/misc/src/java/org/apache/lucene/index/SortingMergePolicy.java
----------------------------------------------------------------------
diff --git a/lucene/misc/src/java/org/apache/lucene/index/SortingMergePolicy.java b/lucene/misc/src/java/org/apache/lucene/index/SortingMergePolicy.java
index 94dd15d..cd8f84e 100644
--- a/lucene/misc/src/java/org/apache/lucene/index/SortingMergePolicy.java
+++ b/lucene/misc/src/java/org/apache/lucene/index/SortingMergePolicy.java
@@ -163,6 +163,10 @@ public final class SortingMergePolicy extends MergePolicyWrapper {
       };
     }
 
+    @Override
+    public String toString() {
+      return "SortingMergePolicy.SortingOneMerge(segments=" + segString() + " sort=" + sort + ")";
+    }
   }
 
   class SortingMergeSpecification extends MergeSpecification {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a9dc4029/lucene/misc/src/test/org/apache/lucene/index/TestSortingMergePolicy.java
----------------------------------------------------------------------
diff --git a/lucene/misc/src/test/org/apache/lucene/index/TestSortingMergePolicy.java b/lucene/misc/src/test/org/apache/lucene/index/TestSortingMergePolicy.java
index c763c69..a0c3fb1 100644
--- a/lucene/misc/src/test/org/apache/lucene/index/TestSortingMergePolicy.java
+++ b/lucene/misc/src/test/org/apache/lucene/index/TestSortingMergePolicy.java
@@ -100,6 +100,9 @@ public class TestSortingMergePolicy extends BaseMergePolicyTestCase {
       mp = newMergePolicy();
     }
     // wrap it with a sorting mp
+    if (VERBOSE) {
+      System.out.println("TEST: return SortingMergePolicy(mp=" + mp + " sort=" + sort + ")");
+    }
     return new SortingMergePolicy(mp, sort);
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a9dc4029/lucene/test-framework/src/java/org/apache/lucene/index/BaseMergePolicyTestCase.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/BaseMergePolicyTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/index/BaseMergePolicyTestCase.java
index 81cf98a..d02ea0b1 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/index/BaseMergePolicyTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/index/BaseMergePolicyTestCase.java
@@ -39,14 +39,27 @@ public abstract class BaseMergePolicyTestCase extends LuceneTestCase {
     final MergeScheduler mergeScheduler = new SerialMergeScheduler() {
       @Override
       synchronized public void merge(IndexWriter writer, MergeTrigger trigger, boolean newMergesFound) throws IOException {
-        if (!mayMerge.get() && writer.getNextMerge() != null) {
-          throw new AssertionError();
+        if (mayMerge.get() == false) {
+          MergePolicy.OneMerge merge = writer.getNextMerge();
+          if (merge != null) {
+            System.out.println("TEST: we should not need any merging, yet merge policy returned merge " + merge);
+            throw new AssertionError();
+          }
         }
+
         super.merge(writer, trigger, newMergesFound);
       }
     };
-    IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(new MockAnalyzer(random())).setMergeScheduler(mergeScheduler).setMergePolicy(mergePolicy()));
-    writer.getConfig().getMergePolicy().setNoCFSRatio(random().nextBoolean() ? 0 : 1);
+
+    MergePolicy mp = mergePolicy();
+    assumeFalse("this test cannot tolerate random forceMerges", mp.toString().contains("MockRandomMergePolicy"));
+    mp.setNoCFSRatio(random().nextBoolean() ? 0 : 1);
+
+    IndexWriterConfig iwc = newIndexWriterConfig(new MockAnalyzer(random()));
+    iwc.setMergeScheduler(mergeScheduler);
+    iwc.setMergePolicy(mp);
+
+    IndexWriter writer = new IndexWriter(dir, iwc);
     final int numSegments = TestUtil.nextInt(random(), 2, 20);
     for (int i = 0; i < numSegments; ++i) {
       final int numDocs = TestUtil.nextInt(random(), 1, 5);
@@ -59,6 +72,9 @@ public abstract class BaseMergePolicyTestCase extends LuceneTestCase {
       final int segmentCount = writer.getSegmentCount();
       final int maxNumSegments = i == 0 ? 1 : TestUtil.nextInt(random(), 1, 10);
       mayMerge.set(segmentCount > maxNumSegments);
+      if (VERBOSE) {
+        System.out.println("TEST: now forceMerge(maxNumSegments=" + maxNumSegments + ") vs segmentCount=" + segmentCount);
+      }
       writer.forceMerge(maxNumSegments);
     }
     writer.close();