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/09/12 15:08:42 UTC

lucene-solr:branch_6x: make test less evil: use FSDirectory for dir copy; use non-random codec

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x 6fb22fcf5 -> 9d08913dd


make test less evil: use FSDirectory for dir copy; use non-random codec


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

Branch: refs/heads/branch_6x
Commit: 9d08913ddc81fb3f6fe3d4bf6689f0779038eb18
Parents: 6fb22fc
Author: Mike McCandless <mi...@apache.org>
Authored: Mon Sep 12 11:08:27 2016 -0400
Committer: Mike McCandless <mi...@apache.org>
Committed: Mon Sep 12 11:08:27 2016 -0400

----------------------------------------------------------------------
 .../org/apache/lucene/search/TestBoolean2.java  | 41 ++++++++++++++++----
 1 file changed, 34 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9d08913d/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java b/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
index d2925bd..8d171b8 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
@@ -18,11 +18,13 @@ package org.apache.lucene.search;
 
 
 
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Random;
 
 import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
@@ -37,7 +39,6 @@ import org.apache.lucene.search.similarities.ClassicSimilarity;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IOContext;
-import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
 import org.junit.AfterClass;
@@ -67,19 +68,38 @@ public class TestBoolean2 extends LuceneTestCase {
   private static Directory dir2;
   private static int mulFactor;
 
+  private static Directory copyOf(Directory dir) throws IOException {
+    Directory copy = newFSDirectory(createTempDir());
+    for(String name : dir.listAll()) {
+      if (name.startsWith("extra")) {
+        continue;
+      }
+      copy.copyFrom(dir, name, name, IOContext.DEFAULT);
+      copy.sync(Collections.singleton(name));
+    }
+    return copy;
+  }
+
   @BeforeClass
   public static void beforeClass() throws Exception {
     // in some runs, test immediate adjacency of matches - in others, force a full bucket gap between docs
     NUM_FILLER_DOCS = random().nextBoolean() ? 0 : BooleanScorer.SIZE;
     PRE_FILLER_DOCS = TestUtil.nextInt(random(), 0, (NUM_FILLER_DOCS / 2));
+    if (VERBOSE) {
+      System.out.println("TEST: NUM_FILLER_DOCS=" + NUM_FILLER_DOCS + " PRE_FILLER_DOCS=" + PRE_FILLER_DOCS);
+    }
 
     if (NUM_FILLER_DOCS * PRE_FILLER_DOCS > 100000) {
       directory = newFSDirectory(createTempDir());
     } else {
       directory = newDirectory();
     }
-    
-    RandomIndexWriter writer= new RandomIndexWriter(random(), directory, newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+
+    IndexWriterConfig iwc = newIndexWriterConfig(new MockAnalyzer(random()));
+    // randomized codecs are sometimes too costly for this test:
+    iwc.setCodec(Codec.forName("Lucene62"));
+    iwc.setMergePolicy(newLogMergePolicy());
+    RandomIndexWriter writer= new RandomIndexWriter(random(), directory, iwc);
     // we'll make a ton of docs, disable store/norms/vectors
     FieldType ft = new FieldType(TextField.TYPE_NOT_STORED);
     ft.setOmitNorms(true);
@@ -119,8 +139,10 @@ public class TestBoolean2 extends LuceneTestCase {
       singleSegmentDirectory.sync(Collections.singleton(fileName));
     }
     
-    IndexWriterConfig iwc = newIndexWriterConfig(new MockAnalyzer(random()));
+    iwc = newIndexWriterConfig(new MockAnalyzer(random()));
     // we need docID order to be preserved:
+    // randomized codecs are sometimes too costly for this test:
+    iwc.setCodec(Codec.forName("Lucene62"));
     iwc.setMergePolicy(newLogMergePolicy());
     try (IndexWriter w = new IndexWriter(singleSegmentDirectory, iwc)) {
       w.forceMerge(1, true);
@@ -130,7 +152,7 @@ public class TestBoolean2 extends LuceneTestCase {
     singleSegmentSearcher.setSimilarity(searcher.getSimilarity(true));
     
     // Make big index
-    dir2 = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(directory));
+    dir2 = copyOf(directory);
 
     // First multiply small test index:
     mulFactor = 1;
@@ -142,9 +164,14 @@ public class TestBoolean2 extends LuceneTestCase {
       if (VERBOSE) {
         System.out.println("\nTEST: cycle...");
       }
-      final Directory copy = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(dir2));
-      RandomIndexWriter w = new RandomIndexWriter(random(), dir2);
+      final Directory copy = copyOf(dir2);
+
+      iwc = newIndexWriterConfig(new MockAnalyzer(random()));
+      // randomized codecs are sometimes too costly for this test:
+      iwc.setCodec(Codec.forName("Lucene62"));
+      RandomIndexWriter w = new RandomIndexWriter(random(), dir2, iwc);
       w.addIndexes(copy);
+      copy.close();
       docCount = w.maxDoc();
       w.close();
       mulFactor *= 2;