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 2011/06/30 19:16:37 UTC

svn commit: r1141629 [1/2] - in /lucene/dev/trunk/modules/facet/src/test/org/apache/lucene: facet/ facet/enhancements/ facet/enhancements/association/ facet/index/ facet/index/categorypolicy/ facet/index/streaming/ facet/search/ facet/search/associatio...

Author: rmuir
Date: Thu Jun 30 17:16:36 2011
New Revision: 1141629

URL: http://svn.apache.org/viewvc?rev=1141629&view=rev
Log:
LUCENE-3264: crank up faceting module tests

Modified:
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/EnhancementsPayloadIteratorTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/TwoEnhancementsTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/association/CustomAssociationPropertyTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryParentsStreamTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryTokenizerTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCounts.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCountsCache.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/association/AssociationsFacetRequestTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetRequestTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetSearchParamsTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/MultiIteratorsPerCLParamsTest.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/taxonomy/lucene/TestAddTaxonomies.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/taxonomy/lucene/TestIndexClose.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/taxonomy/lucene/TestLuceneTaxonomyWriter.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java
    lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/util/SlowRAMDirectory.java

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java Thu Jun 30 17:16:36 2011
@@ -11,7 +11,8 @@ import java.util.Map;
 
 import org.apache.lucene.DocumentBuilder.DocumentBuilderException;
 import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.Field.Index;
@@ -20,21 +21,19 @@ import org.apache.lucene.document.Field.
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.store.RAMDirectory;
 
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.facet.index.CategoryDocumentBuilder;
 import org.apache.lucene.facet.index.params.CategoryListParams;
 import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
@@ -131,15 +130,15 @@ public abstract class FacetTestBase exte
     }
 
     if (onDisk) {
-      File indexFile = new File(TEMP_DIR,"index");
-      indexDir = FSDirectory.open(indexFile);
-      taxoDir = FSDirectory.open(new File(indexFile,"facets"));
+      File indexFile = _TestUtil.getTempDir("index");
+      indexDir = newFSDirectory(indexFile);
+      taxoDir = newFSDirectory(new File(indexFile,"facets"));
     } else { 
-      indexDir = new RAMDirectory();
-      taxoDir = new RAMDirectory();
+      indexDir = newDirectory();
+      taxoDir = newDirectory();
     }
     
-    IndexWriter iw = new IndexWriter(indexDir, new IndexWriterConfig(TEST_VERSION_CURRENT, getAnalyzer()));
+    RandomIndexWriter iw = new RandomIndexWriter(random, indexDir, newIndexWriterConfig(TEST_VERSION_CURRENT, getAnalyzer()));
     TaxonomyWriter taxo = new LuceneTaxonomyWriter(taxoDir, OpenMode.CREATE);
     
     populateIndex(iw, taxo, getFacetIndexingParams(partitionSize));
@@ -153,7 +152,7 @@ public abstract class FacetTestBase exte
     // prepare for searching
     taxoReader = new LuceneTaxonomyReader(taxoDir);
     indexReader = IndexReader.open(indexDir);
-    searcher = new IndexSearcher(indexReader);
+    searcher = newSearcher(indexReader);
   }
 
   /** Returns a default facet indexing params */
@@ -187,7 +186,7 @@ public abstract class FacetTestBase exte
    * Populate the test index+taxonomy for this test.
    * <p>Subclasses can override this to test different scenarios
    */
-  protected void populateIndex(IndexWriter iw, TaxonomyWriter taxo, FacetIndexingParams iParams)
+  protected void populateIndex(RandomIndexWriter iw, TaxonomyWriter taxo, FacetIndexingParams iParams)
       throws IOException, DocumentBuilderException, CorruptIndexException {
     // add test documents 
     int numDocsToIndex = numDocsToIndex();
@@ -211,7 +210,9 @@ public abstract class FacetTestBase exte
     indexReader = null;
     searcher.close();
     searcher = null;
+    indexDir.close();
     indexDir = null;
+    taxoDir.close();
     taxoDir = null;
   }
   
@@ -220,7 +221,7 @@ public abstract class FacetTestBase exte
    * Sub classes should override in order to test with different analyzer.
    */
   protected Analyzer getAnalyzer() {
-    return new WhitespaceAnalyzer(TEST_VERSION_CURRENT);
+    return new MockAnalyzer(random, MockTokenizer.WHITESPACE, false);
   }
   
   /** convenience method: convert sub results to an array */  
@@ -233,7 +234,7 @@ public abstract class FacetTestBase exte
   }
   
   /** utility Create a dummy document with specified categories and content */
-  protected final void indexDoc(FacetIndexingParams iParams, IndexWriter iw,
+  protected final void indexDoc(FacetIndexingParams iParams, RandomIndexWriter iw,
       TaxonomyWriter tw, String content, List<CategoryPath> categories) throws IOException,
       CorruptIndexException {
     Document d = new Document();

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java Thu Jun 30 17:16:36 2011
@@ -14,12 +14,12 @@ import org.apache.lucene.index.CorruptIn
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.Collector;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.MatchAllDocsQuery;
 import org.apache.lucene.search.TopScoreDocCollector;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 
 import org.apache.lucene.search.MultiCollector;
 import org.apache.lucene.util.LuceneTestCase;
@@ -55,11 +55,11 @@ import org.apache.lucene.facet.taxonomy.
 
 public class FacetTestUtils {
 
-  public static Directory[][] createIndexTaxonomyDirs(int number) {
+  public static Directory[][] createIndexTaxonomyDirs(int number) throws IOException {
     Directory[][] dirs = new Directory[number][2];
     for (int i = 0; i < number; i++) {
-      dirs[i][0] = new RAMDirectory();
-      dirs[i][1] = new RAMDirectory();
+      dirs[i][0] = LuceneTestCase.newDirectory();
+      dirs[i][1] = LuceneTestCase.newDirectory();
     }
     return dirs;
   }
@@ -122,7 +122,7 @@ public class FacetTestUtils {
     return collectors;
   }
   
-  public static void add(FacetIndexingParams iParams, IndexWriter iw,
+  public static void add(FacetIndexingParams iParams, RandomIndexWriter iw,
       TaxonomyWriter tw, String... strings) throws IOException,
       CorruptIndexException {
     ArrayList<CategoryPath> cps = new ArrayList<CategoryPath>();

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/EnhancementsPayloadIteratorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/EnhancementsPayloadIteratorTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/EnhancementsPayloadIteratorTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/EnhancementsPayloadIteratorTest.java Thu Jun 30 17:16:36 2011
@@ -5,7 +5,6 @@ import java.io.IOException;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -46,8 +45,8 @@ public class EnhancementsPayloadIterator
   @BeforeClass
   public static void buildAssociationIndex() throws Exception {
     // create Directories for the search index and for the taxonomy index
-    indexDir = new RAMDirectory();
-    taxoDir = new RAMDirectory();
+    indexDir = newDirectory();
+    taxoDir = newDirectory();
 
     // index the sample documents
     if (VERBOSE) {
@@ -73,6 +72,7 @@ public class EnhancementsPayloadIterator
     assertTrue("Missing instance of tags/lucene in doc 1", iterator.setdoc(1));
     assoc = (Integer) iterator.getCategoryData(associationEnhancement);
     assertEquals("Unexpected association value for tags/lucene in doc 1", 1, assoc, 1E-5);
+    indexReader.close();
   }
 
   @Test
@@ -84,6 +84,7 @@ public class EnhancementsPayloadIterator
     assertTrue("Unexpected failure of init()", iterator.init());
     assertFalse("Unexpected payload for root/a/f2 in doc 0", iterator.setdoc(0));
     assertFalse("Unexpected instance of root/a/f2 in doc 1", iterator.setdoc(1));
+    indexReader.close();
   }
 
   @Test
@@ -98,11 +99,14 @@ public class EnhancementsPayloadIterator
     float assoc = Float.intBitsToFloat((Integer) iterator
         .getCategoryData(associationEnhancement));
     assertEquals("Unexpected association value for genre/computing in doc 1", 0.34f, assoc, 0.001);
+    indexReader.close();
   }
 
   @AfterClass
   public static void closeDirectories() throws IOException {
     indexDir.close();
+    indexDir = null;
     taxoDir.close();
+    taxoDir = null;
   }
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/TwoEnhancementsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/TwoEnhancementsTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/TwoEnhancementsTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/TwoEnhancementsTest.java Thu Jun 30 17:16:36 2011
@@ -4,14 +4,13 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -45,8 +44,8 @@ public class TwoEnhancementsTest extends
 
   @Test
   public void testTwoEmptyAndNonEmptyByteArrays() throws Exception {
-    Directory indexDir = new RAMDirectory();
-    Directory taxoDir = new RAMDirectory();
+    Directory indexDir = newDirectory();
+    Directory taxoDir = newDirectory();
 
     EnhancementsIndexingParams indexingParams = 
       new DefaultEnhancementsIndexingParams(
@@ -57,8 +56,8 @@ public class TwoEnhancementsTest extends
     List<CategoryPath> categoryPaths = new ArrayList<CategoryPath>();
     categoryPaths.add(new CategoryPath("a", "b"));
 
-    IndexWriter indexWriter = new IndexWriter(indexDir, new IndexWriterConfig(
-        TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)));
+    RandomIndexWriter indexWriter = new RandomIndexWriter(random, indexDir, newIndexWriterConfig(
+        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false)));
     TaxonomyWriter taxo = new LuceneTaxonomyWriter(taxoDir);
 
     // a category document builder will add the categories to a document
@@ -67,9 +66,9 @@ public class TwoEnhancementsTest extends
     indexWriter.addDocument(new EnhancementsDocumentBuilder(taxo,
         indexingParams).setCategoryPaths(categoryPaths).build(doc));
 
+    IndexReader indexReader = indexWriter.getReader();
     indexWriter.close();
 
-    IndexReader indexReader = IndexReader.open(indexDir);
     Term term = DrillDown.term(indexingParams, new CategoryPath("a","b"));
     EnhancementsPayloadIterator iterator = new EnhancementsPayloadIterator(
         indexingParams.getCategoryEnhancements(), indexReader, term);
@@ -82,13 +81,17 @@ public class TwoEnhancementsTest extends
         .getCategoryData(new CategoryEnhancementDummy3());
     assertTrue("Bad array returned for CategoryEnhancementDummy3", Arrays
         .equals(dummy3, CategoryEnhancementDummy3.CATEGORY_TOKEN_BYTES));
+    indexReader.close();
+    indexDir.close();
+    taxo.close();
+    taxoDir.close();
   }
 
   @Test
   public void testTwoNonEmptyByteArrays() throws Exception {
     // add document with a category containing data for both enhancements
-    Directory indexDir = new RAMDirectory();
-    Directory taxoDir = new RAMDirectory();
+    Directory indexDir = newDirectory();
+    Directory taxoDir = newDirectory();
 
     EnhancementsIndexingParams indexingParams = 
       new DefaultEnhancementsIndexingParams(
@@ -98,8 +101,8 @@ public class TwoEnhancementsTest extends
     List<CategoryPath> categoryPaths = new ArrayList<CategoryPath>();
     categoryPaths.add(new CategoryPath("a", "b"));
 
-    IndexWriter indexWriter = new IndexWriter(indexDir, new IndexWriterConfig(
-        TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)));
+    RandomIndexWriter indexWriter = new RandomIndexWriter(random, indexDir, newIndexWriterConfig(
+        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false)));
     TaxonomyWriter taxo = new LuceneTaxonomyWriter(taxoDir);
 
     // a category document builder will add the categories to a document
@@ -108,9 +111,9 @@ public class TwoEnhancementsTest extends
     indexWriter.addDocument(new EnhancementsDocumentBuilder(taxo,
         indexingParams).setCategoryPaths(categoryPaths).build(doc));
 
+    IndexReader indexReader = indexWriter.getReader();
     indexWriter.close();
 
-    IndexReader indexReader = IndexReader.open(indexDir);
     Term term = DrillDown.term(indexingParams, new CategoryPath("a","b"));
     EnhancementsPayloadIterator iterator = new EnhancementsPayloadIterator(
         indexingParams.getCategoryEnhancements(), indexReader, term);
@@ -125,5 +128,9 @@ public class TwoEnhancementsTest extends
         .getCategoryData(new CategoryEnhancementDummy3());
     assertTrue("Bad array returned for CategoryEnhancementDummy3", Arrays
         .equals(dummy3, CategoryEnhancementDummy3.CATEGORY_TOKEN_BYTES));
+    indexReader.close();
+    taxo.close();
+    indexDir.close();
+    taxoDir.close();
   }
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/association/CustomAssociationPropertyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/association/CustomAssociationPropertyTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/association/CustomAssociationPropertyTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/enhancements/association/CustomAssociationPropertyTest.java Thu Jun 30 17:16:36 2011
@@ -1,12 +1,11 @@
 package org.apache.lucene.facet.enhancements.association;
 
-import org.apache.lucene.analysis.core.KeywordAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -55,10 +54,11 @@ public class CustomAssociationPropertyTe
     EnhancementsIndexingParams iParams = new DefaultEnhancementsIndexingParams(
         new AssociationEnhancement());
 
-    Directory iDir = new RAMDirectory();
-    Directory tDir = new RAMDirectory();
+    Directory iDir = newDirectory();
+    Directory tDir = newDirectory();
     
-    IndexWriter w = new IndexWriter(iDir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
+    RandomIndexWriter w = new RandomIndexWriter(random, iDir, 
+        newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.KEYWORD, false)));
     LuceneTaxonomyWriter taxoW = new LuceneTaxonomyWriter(tDir);
     
     CategoryContainer cc = new CategoryContainer();
@@ -72,9 +72,9 @@ public class CustomAssociationPropertyTe
     builder.setCategories(cc);
     w.addDocument(builder.build(new Document()));
     taxoW.close();
+    IndexReader reader = w.getReader();
     w.close();
     
-    IndexReader reader = IndexReader.open(iDir);
     LuceneTaxonomyReader taxo = new LuceneTaxonomyReader(tDir);
     String field = iParams.getCategoryListParams(new CategoryPath("0")).getTerm().field();
     AssociationsPayloadIterator api = new AssociationsPayloadIterator(reader, field);
@@ -93,5 +93,10 @@ public class CustomAssociationPropertyTe
     }
     
     assertTrue("No categories found for doc #0", flag);
+    
+    reader.close();
+    taxo.close();
+    iDir.close();
+    tDir.close();
   }
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java Thu Jun 30 17:16:36 2011
@@ -4,15 +4,15 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.MatchAllDocsQuery;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -49,23 +49,27 @@ public class FacetsPayloadProcessorProvi
   
   @Test
   public void testTaxonomyMergeUtils() throws Exception {
-    Directory dir = new RAMDirectory();
-    Directory taxDir = new RAMDirectory();    
+    Directory dir = newDirectory();
+    Directory taxDir = newDirectory();    
     buildIndexWithFacets(dir, taxDir, true);
     
-    Directory dir1 = new RAMDirectory();
-    Directory taxDir1 = new RAMDirectory();
+    Directory dir1 = newDirectory();
+    Directory taxDir1 = newDirectory();
     buildIndexWithFacets(dir1, taxDir1, false);
     
     TaxonomyMergeUtils.merge(dir, taxDir, dir1, taxDir1);
     
     verifyResults(dir1, taxDir1);
+    dir1.close();
+    taxDir1.close();
+    dir.close();
+    taxDir.close();
   }
 
   private void verifyResults(Directory dir, Directory taxDir) throws IOException {
     IndexReader reader1 = IndexReader.open(dir);
     LuceneTaxonomyReader taxReader = new LuceneTaxonomyReader(taxDir);
-    IndexSearcher searcher = new IndexSearcher(reader1);
+    IndexSearcher searcher = newSearcher(reader1);
     FacetSearchParams fsp = new FacetSearchParams();
     fsp.addFacetRequest(new CountFacetRequest(new CategoryPath("tag"), NUM_DOCS));
     FacetsCollector collector = new FacetsCollector(fsp, reader1, taxReader);
@@ -81,11 +85,14 @@ public class FacetsPayloadProcessorProvi
       }
       assertEquals(NUM_DOCS ,weight);
     }
+    reader1.close();
+    taxReader.close();
   }
 
   private void buildIndexWithFacets(Directory dir, Directory taxDir, boolean asc) throws IOException {
-    IndexWriterConfig config = new IndexWriterConfig(TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT));
-    IndexWriter writer = new IndexWriter(dir, config);
+    IndexWriterConfig config = newIndexWriterConfig(TEST_VERSION_CURRENT, 
+        new MockAnalyzer(random, MockTokenizer.WHITESPACE, false));
+    RandomIndexWriter writer = new RandomIndexWriter(random, dir, config);
     
     LuceneTaxonomyWriter taxonomyWriter = new LuceneTaxonomyWriter(taxDir);
     for (int i = 1; i <= NUM_DOCS; i++) {

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java Thu Jun 30 17:16:36 2011
@@ -1,6 +1,6 @@
 package org.apache.lucene.facet.index.categorypolicy;
 
-import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -46,8 +46,9 @@ public class OrdinalPolicyTest extends L
 
   @Test
   public void testNonTopLevelOrdinalPolicy() throws Exception {
+    Directory dir = newDirectory();
     TaxonomyWriter taxonomy = null;
-    taxonomy = new LuceneTaxonomyWriter(new RAMDirectory());
+    taxonomy = new LuceneTaxonomyWriter(dir);
 
     int[] topLevelOrdinals = new int[10];
     String[] topLevelStrings = new String[10];
@@ -85,6 +86,8 @@ public class OrdinalPolicyTest extends L
 
     // check illegal ordinal
     assertFalse("Should not add illegal ordinal", ordinalPolicy.shouldAdd(100000));
+    taxonomy.close();
+    dir.close();
   }
 
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java Thu Jun 30 17:16:36 2011
@@ -1,6 +1,6 @@
 package org.apache.lucene.facet.index.categorypolicy;
 
-import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -52,8 +52,9 @@ public class PathPolicyTest extends Luce
 
   @Test
   public void testNonTopLevelPathPolicy() throws Exception {
+    Directory dir = newDirectory();
     TaxonomyWriter taxonomy = null;
-    taxonomy = new LuceneTaxonomyWriter(new RAMDirectory());
+    taxonomy = new LuceneTaxonomyWriter(dir);
 
     CategoryPath[] topLevelPaths = new CategoryPath[10];
     String[] topLevelStrings = new String[10];
@@ -88,5 +89,7 @@ public class PathPolicyTest extends Luce
           + nonTopLevelPaths[i],
           pathPolicy.shouldAdd(nonTopLevelPaths[i]));
     }
+    taxonomy.close();
+    dir.close();
   }
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryParentsStreamTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryParentsStreamTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryParentsStreamTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryParentsStreamTest.java Thu Jun 30 17:16:36 2011
@@ -3,7 +3,7 @@ package org.apache.lucene.facet.index.st
 import java.io.IOException;
 
 import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.junit.Test;
 
 import org.apache.lucene.facet.FacetException;
@@ -49,8 +49,9 @@ public class CategoryParentsStreamTest e
    */
   @Test
   public void testStreamDefaultParams() throws IOException {
+    Directory directory = newDirectory();
     TaxonomyWriter taxonomyWriter = new LuceneTaxonomyWriter(
-        new RAMDirectory());
+        directory);
     CategoryParentsStream stream = new CategoryParentsStream(
         new CategoryAttributesStream(categoryContainer),
         taxonomyWriter, new DefaultFacetIndexingParams());
@@ -63,6 +64,7 @@ public class CategoryParentsStreamTest e
     assertEquals("Wrong number of tokens", 6, nTokens);
 
     taxonomyWriter.close();
+    directory.close();
   }
 
   /**
@@ -74,8 +76,9 @@ public class CategoryParentsStreamTest e
    */
   @Test
   public void testStreamNonTopLevelParams() throws IOException {
+    Directory directory = newDirectory();
     final TaxonomyWriter taxonomyWriter = new LuceneTaxonomyWriter(
-        new RAMDirectory());
+        directory);
     FacetIndexingParams indexingParams = new DefaultFacetIndexingParams() {
       @Override
       protected OrdinalPolicy fixedOrdinalPolicy() {
@@ -102,6 +105,7 @@ public class CategoryParentsStreamTest e
     assertEquals("Wrong number of tokens", 4, nTokens);
 
     taxonomyWriter.close();
+    directory.close();
   }
 
   /**
@@ -113,7 +117,8 @@ public class CategoryParentsStreamTest e
    */
   @Test
   public void testNoRetainableAttributes() throws IOException, FacetException {
-    TaxonomyWriter taxonomyWriter = new LuceneTaxonomyWriter(new RAMDirectory());
+    Directory directory = newDirectory();
+    TaxonomyWriter taxonomyWriter = new LuceneTaxonomyWriter(directory);
 
     new CategoryParentsStream(new CategoryAttributesStream(categoryContainer),
         taxonomyWriter, new DefaultFacetIndexingParams());
@@ -133,6 +138,8 @@ public class CategoryParentsStreamTest e
     }
     assertEquals("Wrong number of tokens with attributes", 1, nAttributes);
 
+    taxonomyWriter.close();
+    directory.close();
   }
 
   /**
@@ -144,8 +151,9 @@ public class CategoryParentsStreamTest e
    */
   @Test
   public void testRetainableAttributes() throws IOException, FacetException {
+    Directory directory = newDirectory();
     TaxonomyWriter taxonomyWriter = new LuceneTaxonomyWriter(
-        new RAMDirectory());
+        directory);
 
     FacetIndexingParams indexingParams = new DefaultFacetIndexingParams();
     new CategoryParentsStream(new CategoryAttributesStream(
@@ -176,6 +184,7 @@ public class CategoryParentsStreamTest e
     assertEquals("Wrong number of tokens with attributes", 3, nAttributes);
 
     taxonomyWriter.close();
+    directory.close();
   }
 
   private final class MyCategoryListTokenizer extends CategoryListTokenizer {

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryTokenizerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryTokenizerTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryTokenizerTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/index/streaming/CategoryTokenizerTest.java Thu Jun 30 17:16:36 2011
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
-import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.junit.Test;
 
 import org.apache.lucene.facet.index.CategoryContainerTestBase;
@@ -46,8 +46,9 @@ public class CategoryTokenizerTest exten
    */
   @Test
   public void testTokensDefaultParams() throws IOException {
+    Directory directory = newDirectory();
     TaxonomyWriter taxonomyWriter = new LuceneTaxonomyWriter(
-        new RAMDirectory());
+        directory);
     DefaultFacetIndexingParams indexingParams = new DefaultFacetIndexingParams();
     CategoryTokenizer tokenizer = new CategoryTokenizer(
         new CategoryAttributesStream(categoryContainer),
@@ -73,6 +74,7 @@ public class CategoryTokenizerTest exten
     assertEquals("Wrong number of tokens", 3, nTokens);
 
     taxonomyWriter.close();
+    directory.close();
   }
 
   /**
@@ -83,8 +85,9 @@ public class CategoryTokenizerTest exten
    */
   @Test
   public void testLongCategoryPath() throws IOException {
+    Directory directory = newDirectory();
     TaxonomyWriter taxonomyWriter = new LuceneTaxonomyWriter(
-        new RAMDirectory());
+        directory);
 
     List<CategoryPath> longCategory = new ArrayList<CategoryPath>();
     longCategory.add(new CategoryPath("one", "two", "three", "four",
@@ -107,5 +110,6 @@ public class CategoryTokenizerTest exten
     assertFalse("Unexpected token", tokenizer.incrementToken());
 
     taxonomyWriter.close();
+    directory.close();
   }
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java Thu Jun 30 17:16:36 2011
@@ -6,7 +6,7 @@ import java.util.List;
 
 import org.apache.lucene.DocumentBuilder.DocumentBuilderException;
 import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.RandomIndexWriter;
 
 import org.apache.lucene.facet.FacetTestBase;
 import org.apache.lucene.facet.index.params.FacetIndexingParams;
@@ -48,7 +48,7 @@ public abstract class BaseTestTopK exten
   private int nextInt;
 
   @Override
-  protected void populateIndex(IndexWriter iw, TaxonomyWriter taxo,
+  protected void populateIndex(RandomIndexWriter iw, TaxonomyWriter taxo,
       FacetIndexingParams iParams) throws IOException,
       DocumentBuilderException, CorruptIndexException {
     currDoc = -1;

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java Thu Jun 30 17:16:36 2011
@@ -1,22 +1,23 @@
 package org.apache.lucene.facet.search;
 
 import java.io.IOException;
+import java.io.Reader;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.lucene.analysis.core.KeywordAnalyzer;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.Payload;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -95,20 +96,20 @@ public class CategoryListIteratorTest ex
 
   @Test
   public void testPayloadIntDecodingIterator() throws Exception {
-    Directory dir = new RAMDirectory();
+    Directory dir = newDirectory();
     DataTokenStream dts = new DataTokenStream("1",new SortingIntEncoder(
         new UniqueValuesIntEncoder(new DGapIntEncoder(new VInt8IntEncoder()))));
-    IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
+    RandomIndexWriter writer = new RandomIndexWriter(random, dir, newIndexWriterConfig(TEST_VERSION_CURRENT, 
+        new MockAnalyzer(random, MockTokenizer.KEYWORD, false)));
     for (int i = 0; i < data.length; i++) {
       dts.setIdx(i);
       Document doc = new Document();
       doc.add(new Field("f", dts));
       writer.addDocument(doc);
     }
-    writer.commit();
+    IndexReader reader = writer.getReader();
     writer.close();
 
-    IndexReader reader = IndexReader.open(dir, true);
     CategoryListIterator cli = new PayloadIntDecodingIterator(reader, new Term(
         "f","1"), dts.encoder.createMatchingDecoder());
     cli.init();
@@ -127,6 +128,7 @@ public class CategoryListIteratorTest ex
     }
     assertEquals("Missing categories!",10,totalCategories);
     reader.close();
+    dir.close();
   }
 
   /**
@@ -139,12 +141,21 @@ public class CategoryListIteratorTest ex
    */
   @Test
   public void testPayloadIteratorWithInvalidDoc() throws Exception {
-    Directory dir = new RAMDirectory();
+    Directory dir = newDirectory();
     DataTokenStream dts = new DataTokenStream("1",new SortingIntEncoder(
         new UniqueValuesIntEncoder(new DGapIntEncoder(new VInt8IntEncoder()))));
     DataTokenStream dts2 = new DataTokenStream("2",new SortingIntEncoder(
         new UniqueValuesIntEncoder(new DGapIntEncoder(new VInt8IntEncoder()))));
-    IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
+    // this test requires that no payloads ever be randomly present!
+    final Analyzer noPayloadsAnalyzer = new Analyzer() {
+      @Override
+      public TokenStream tokenStream(String fieldName, Reader reader) {
+        return new MockTokenizer(reader, MockTokenizer.KEYWORD, false);
+      }
+    };
+    // NOTE: test is wired to LogMP... because test relies on certain docids having payloads
+    RandomIndexWriter writer = new RandomIndexWriter(random, dir, 
+        newIndexWriterConfig(TEST_VERSION_CURRENT, noPayloadsAnalyzer).setMergePolicy(newLogMergePolicy()));
     for (int i = 0; i < data.length; i++) {
       dts.setIdx(i);
       Document doc = new Document();
@@ -170,10 +181,9 @@ public class CategoryListIteratorTest ex
       
     }
 
-    writer.commit();
+    IndexReader reader = writer.getReader();
     writer.close();
 
-    IndexReader reader = IndexReader.open(dir, true);
     CategoryListIterator cli = new PayloadIntDecodingIterator(reader, new Term(
         "f","1"), dts.encoder.createMatchingDecoder());
     cli.init();
@@ -202,6 +212,7 @@ public class CategoryListIteratorTest ex
     // Ok.. went through the first 4 docs, now lets try the 6th doc (docid 5)
     assertFalse("Doc #6 (docid=5) should not have a payload!",cli.skipTo(5));
     reader.close();
+    dir.close();
   }
 
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java Thu Jun 30 17:16:36 2011
@@ -3,15 +3,16 @@ package org.apache.lucene.facet.search;
 import java.io.IOException;
 import java.util.ArrayList;
 
-import org.apache.lucene.analysis.core.KeywordAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.Field.Index;
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
@@ -19,7 +20,6 @@ import org.apache.lucene.search.TermQuer
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.LockObtainFailedException;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -58,6 +58,8 @@ public class DrillDownTest extends Lucen
   private FacetSearchParams nonDefaultParams;
   private static IndexReader reader;
   private static LuceneTaxonomyReader taxo;
+  private static Directory dir;
+  private static Directory taxoDir;
   
   public DrillDownTest() throws IOException {
     PerDimensionIndexingParams iParams = new PerDimensionIndexingParams();
@@ -71,10 +73,11 @@ public class DrillDownTest extends Lucen
   }
   @BeforeClass
   public static void createIndexes() throws CorruptIndexException, LockObtainFailedException, IOException {
-    Directory dir = new RAMDirectory();
-    IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
+    dir = newDirectory();
+    RandomIndexWriter writer = new RandomIndexWriter(random, dir, 
+        newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.KEYWORD, false)));
     
-    Directory taxoDir = new RAMDirectory();
+    taxoDir = newDirectory();
     TaxonomyWriter taxoWriter = new LuceneTaxonomyWriter(taxoDir);
     
     for (int i = 0; i < 100; i++) {
@@ -98,10 +101,9 @@ public class DrillDownTest extends Lucen
     }
     
     taxoWriter.close();
-    writer.commit();
+    reader = writer.getReader();
     writer.close();
     
-    reader = IndexReader.open(dir, true);
     taxo = new LuceneTaxonomyReader(taxoDir);
   }
   
@@ -127,7 +129,7 @@ public class DrillDownTest extends Lucen
   
   @Test
   public void testQuery() throws IOException {
-    IndexSearcher searcher = new IndexSearcher(reader);
+    IndexSearcher searcher = newSearcher(reader);
 
     // Making sure the query yields 25 documents with the facet "a"
     Query q = DrillDown.query(defaultParams, new CategoryPath("a"));
@@ -155,7 +157,7 @@ public class DrillDownTest extends Lucen
   
   @Test
   public void testQueryImplicitDefaultParams() throws IOException {
-    IndexSearcher searcher = new IndexSearcher(reader);
+    IndexSearcher searcher = newSearcher(reader);
 
     // Create the base query to start with
     Query q = DrillDown.query(defaultParams, new CategoryPath("a"));
@@ -178,11 +180,16 @@ public class DrillDownTest extends Lucen
   public static void closeIndexes() throws IOException {
     if (reader != null) {
       reader.close();
+      reader = null;
     }
     
     if (taxo != null) {
       taxo.close();
+      taxo = null;
     }
+    
+    dir.close();
+    taxoDir.close();
   }
     
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java Thu Jun 30 17:16:36 2011
@@ -100,8 +100,6 @@ public class TestFacetsAccumulatorWithCo
   }
   
   private void doTestComplements() throws Exception {
-    assertTrue("Would like to test this with deletions!",indexReader.hasDeletions());
-    assertTrue("Would like to test this with deletions!",indexReader.numDeletedDocs()>0);
     Query q = new MatchAllDocsQuery(); //new TermQuery(new Term(TEXT,"white"));
     if (VERBOSE) {
       System.out.println("Query: "+q);

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java Thu Jun 30 17:16:36 2011
@@ -4,14 +4,15 @@ import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.MultiFields;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.IndexSearcher;
@@ -22,6 +23,7 @@ import org.apache.lucene.store.Directory
 import org.junit.Test;
 
 import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.search.MultiCollector;
 import org.apache.lucene.facet.FacetTestUtils;
@@ -62,8 +64,8 @@ public class TestMultipleCategoryLists e
   public void testDefault() throws Exception {
     Directory[][] dirs = getDirs();
     // create and open an index writer
-    IndexWriter iw = new IndexWriter(dirs[0][0], new IndexWriterConfig(
-        TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)));
+    RandomIndexWriter iw = new RandomIndexWriter(random, dirs[0][0], newIndexWriterConfig(
+        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false)));
     // create and open a taxonomy writer
     TaxonomyWriter tw = new LuceneTaxonomyWriter(dirs[0][1], OpenMode.CREATE);
 
@@ -74,15 +76,14 @@ public class TestMultipleCategoryLists e
 
     seedIndex(iw, tw, iParams);
 
-    iw.commit();
+    IndexReader ir = iw.getReader();
     tw.commit();
 
     // prepare index reader and taxonomy.
     TaxonomyReader tr = new LuceneTaxonomyReader(dirs[0][1]);
-    IndexReader ir = IndexReader.open(dirs[0][0]);
 
     // prepare searcher to search against
-    IndexSearcher searcher = new IndexSearcher(ir);
+    IndexSearcher searcher = newSearcher(ir);
 
     FacetsCollector facetsCollector = performSearch(iParams, tr, ir,
         searcher);
@@ -98,14 +99,15 @@ public class TestMultipleCategoryLists e
     searcher.close();
     iw.close();
     tw.close();
+    IOUtils.closeSafely(false, dirs[0]);
   }
 
   @Test
   public void testCustom() throws Exception {
     Directory[][] dirs = getDirs();
     // create and open an index writer
-    IndexWriter iw = new IndexWriter(dirs[0][0], new IndexWriterConfig(
-        TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)));
+    RandomIndexWriter iw = new RandomIndexWriter(random, dirs[0][0], newIndexWriterConfig(
+        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false)));
     // create and open a taxonomy writer
     TaxonomyWriter tw = new LuceneTaxonomyWriter(dirs[0][1],
         OpenMode.CREATE);
@@ -115,15 +117,14 @@ public class TestMultipleCategoryLists e
         new CategoryListParams(new Term("$author", "Authors")));
     seedIndex(iw, tw, iParams);
 
-    iw.commit();
+    IndexReader ir = iw.getReader();
     tw.commit();
 
     // prepare index reader and taxonomy.
     TaxonomyReader tr = new LuceneTaxonomyReader(dirs[0][1]);
-    IndexReader ir = IndexReader.open(dirs[0][0]);
 
     // prepare searcher to search against
-    IndexSearcher searcher = new IndexSearcher(ir);
+    IndexSearcher searcher = newSearcher(ir);
 
     FacetsCollector facetsCollector = performSearch(iParams, tr, ir,
         searcher);
@@ -139,14 +140,15 @@ public class TestMultipleCategoryLists e
     searcher.close();
     iw.close();
     tw.close();
+    IOUtils.closeSafely(false, dirs[0]);
   }
 
   @Test
   public void testTwoCustomsSameField() throws Exception {
     Directory[][] dirs = getDirs();
     // create and open an index writer
-    IndexWriter iw = new IndexWriter(dirs[0][0], new IndexWriterConfig(
-        TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)));
+    RandomIndexWriter iw = new RandomIndexWriter(random, dirs[0][0], newIndexWriterConfig(
+        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false)));
     // create and open a taxonomy writer
     TaxonomyWriter tw = new LuceneTaxonomyWriter(dirs[0][1],
         OpenMode.CREATE);
@@ -158,15 +160,14 @@ public class TestMultipleCategoryLists e
         new CategoryListParams(new Term("$music", "Composers")));
     seedIndex(iw, tw, iParams);
 
-    iw.commit();
+    IndexReader ir = iw.getReader();
     tw.commit();
 
     // prepare index reader and taxonomy.
     TaxonomyReader tr = new LuceneTaxonomyReader(dirs[0][1]);
-    IndexReader ir = IndexReader.open(dirs[0][0]);
 
     // prepare searcher to search against
-    IndexSearcher searcher = new IndexSearcher(ir);
+    IndexSearcher searcher = newSearcher(ir);
 
     FacetsCollector facetsCollector = performSearch(iParams, tr, ir,
         searcher);
@@ -183,6 +184,7 @@ public class TestMultipleCategoryLists e
     searcher.close();
     iw.close();
     tw.close();
+    IOUtils.closeSafely(false, dirs[0]);
   }
 
   private void assertPostingListExists(String field, String text, IndexReader ir) throws IOException {
@@ -194,8 +196,8 @@ public class TestMultipleCategoryLists e
   public void testDifferentFieldsAndText() throws Exception {
     Directory[][] dirs = getDirs();
     // create and open an index writer
-    IndexWriter iw = new IndexWriter(dirs[0][0], new IndexWriterConfig(
-        TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)));
+    RandomIndexWriter iw = new RandomIndexWriter(random, dirs[0][0], newIndexWriterConfig(
+        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false)));
     // create and open a taxonomy writer
     TaxonomyWriter tw = new LuceneTaxonomyWriter(dirs[0][1], OpenMode.CREATE);
 
@@ -206,15 +208,14 @@ public class TestMultipleCategoryLists e
         new CategoryListParams(new Term("$composers", "Composers")));
     seedIndex(iw, tw, iParams);
 
-    iw.commit();
+    IndexReader ir = iw.getReader();
     tw.commit();
 
     // prepare index reader and taxonomy.
     TaxonomyReader tr = new LuceneTaxonomyReader(dirs[0][1]);
-    IndexReader ir = IndexReader.open(dirs[0][0]);
 
     // prepare searcher to search against
-    IndexSearcher searcher = new IndexSearcher(ir);
+    IndexSearcher searcher = newSearcher(ir);
 
     FacetsCollector facetsCollector = performSearch(iParams, tr, ir,
         searcher);
@@ -229,14 +230,15 @@ public class TestMultipleCategoryLists e
     searcher.close();
     iw.close();
     tw.close();
+    IOUtils.closeSafely(false, dirs[0]);
   }
 
   @Test
   public void testSomeSameSomeDifferent() throws Exception {
     Directory[][] dirs = getDirs();
     // create and open an index writer
-    IndexWriter iw = new IndexWriter(dirs[0][0], new IndexWriterConfig(
-        TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)));
+    RandomIndexWriter iw = new RandomIndexWriter(random, dirs[0][0], newIndexWriterConfig(
+        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false)));
     // create and open a taxonomy writer
     TaxonomyWriter tw = new LuceneTaxonomyWriter(dirs[0][1],
         OpenMode.CREATE);
@@ -251,15 +253,14 @@ public class TestMultipleCategoryLists e
 
     seedIndex(iw, tw, iParams);
 
-    iw.commit();
+    IndexReader ir = iw.getReader();
     tw.commit();
 
     // prepare index reader and taxonomy.
     TaxonomyReader tr = new LuceneTaxonomyReader(dirs[0][1]);
-    IndexReader ir = IndexReader.open(dirs[0][0]);
 
     // prepare searcher to search against
-    IndexSearcher searcher = new IndexSearcher(ir);
+    IndexSearcher searcher = newSearcher(ir);
 
     FacetsCollector facetsCollector = performSearch(iParams, tr, ir,
         searcher);
@@ -274,6 +275,7 @@ public class TestMultipleCategoryLists e
     searcher.close();
     iw.close();
     tw.close();
+    IOUtils.closeSafely(false, dirs[0]);
   }
 
   private Directory[][] getDirs() throws IOException {
@@ -358,7 +360,7 @@ public class TestMultipleCategoryLists e
     return facetsCollector;
   }
 
-  private void seedIndex(IndexWriter iw, TaxonomyWriter tw,
+  private void seedIndex(RandomIndexWriter iw, TaxonomyWriter tw,
                           FacetIndexingParams iParams) throws IOException, CorruptIndexException {
     FacetTestUtils.add(iParams, iw, tw, "Author", "Mark Twain");
     FacetTestUtils.add(iParams, iw, tw, "Author", "Stephen King");

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java Thu Jun 30 17:16:36 2011
@@ -59,8 +59,6 @@ public class TestScoredDocIdCollector ex
   @Test
   public void testConstantScore() throws Exception {
     // test that constant score works well
-    assertTrue("Would like to test this with deletions!",indexReader.hasDeletions());
-    assertTrue("Would like to test this with deletions!",indexReader.numDeletedDocs()>0);
 
     Query q = new TermQuery(new Term(CONTENT_FIELD, "white"));
     if (VERBOSE) {

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java Thu Jun 30 17:16:36 2011
@@ -4,22 +4,21 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.Field.Index;
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.document.Field.TermVector;
 import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -70,8 +69,8 @@ public class TestTopKInEachNodeResultHan
         Integer.MAX_VALUE };
 
     for (int partitionSize : partitionSizes) {
-      Directory iDir = new RAMDirectory();
-      Directory tDir = new RAMDirectory();
+      Directory iDir = newDirectory();
+      Directory tDir = newDirectory();
 
       if (VERBOSE) {
         System.out.println("Partition Size: " + partitionSize);
@@ -85,9 +84,9 @@ public class TestTopKInEachNodeResultHan
         }
       };
 
-      IndexWriter iw = new IndexWriter(iDir,
-          new IndexWriterConfig(TEST_VERSION_CURRENT,
-              new StandardAnalyzer(TEST_VERSION_CURRENT)).setOpenMode(OpenMode.CREATE));
+      RandomIndexWriter iw = new RandomIndexWriter(random, iDir,
+          newIndexWriterConfig(TEST_VERSION_CURRENT,
+              new MockAnalyzer(random)).setOpenMode(OpenMode.CREATE));
       TaxonomyWriter tw = new LuceneTaxonomyWriter(tDir);
       prvt_add(iParams, iw, tw, "a", "b");
       prvt_add(iParams, iw, tw, "a", "b", "1");
@@ -106,12 +105,12 @@ public class TestTopKInEachNodeResultHan
       prvt_add(iParams, iw, tw, "a", "d");
       prvt_add(iParams, iw, tw, "a", "e");
 
-      iw.commit();
+      IndexReader ir = iw.getReader();
       iw.close();
       tw.commit();
       tw.close();
 
-      IndexSearcher is = new IndexSearcher(iDir);
+      IndexSearcher is = newSearcher(ir);
       LuceneTaxonomyReader tr = new LuceneTaxonomyReader(tDir);
 
       // Get all of the documents and run the query, then do different
@@ -320,11 +319,15 @@ public class TestTopKInEachNodeResultHan
       assertFalse("Shouldn't have found anything for a FacetRequest " +
           "of a facet that doesn't exist in the index.", hasDoctor);
       assertEquals("Shouldn't have found more than seven request.", 7, facetResults.size());
+      ir.close();
+      tr.close();
+      iDir.close();
+      tDir.close();
     }
 
   }
 
-  private void prvt_add(DefaultFacetIndexingParams iParams, IndexWriter iw,
+  private void prvt_add(DefaultFacetIndexingParams iParams, RandomIndexWriter iw,
                     TaxonomyWriter tw, String... strings) throws IOException,
       CorruptIndexException {
     ArrayList<CategoryPath> cps = new ArrayList<CategoryPath>();

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java Thu Jun 30 17:16:36 2011
@@ -140,6 +140,7 @@ public class TestTopKResultsHandler exte
       assertEquals(6.0, parentRes.getValue(), Double.MIN_VALUE);
       frn = resultNodesAsArray(parentRes);
       assertEquals(1.0, frn[0].getValue(), Double.MIN_VALUE);
+      closeAll();
     }
   }
   
@@ -234,6 +235,7 @@ public class TestTopKResultsHandler exte
       assertEquals("Shouldn't have found anything for a FacetRequest "
           + "of a facet that doesn't exist in the index.", 0, facetResults.size());
 
+      closeAll();
     }
   }
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCounts.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCounts.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCounts.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCounts.java Thu Jun 30 17:16:36 2011
@@ -5,6 +5,7 @@ import java.io.IOException;
 import java.util.Arrays;
 
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util._TestUtil;
 import org.junit.Test;
 
@@ -108,6 +109,7 @@ public class TestTotalFacetCounts extend
       ++partition;
     }
     readers[0].close();
+    IOUtils.closeSafely(false, dirs[0]);
     tmpFile.delete();
   }
 

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCountsCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCountsCache.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCountsCache.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCountsCache.java Thu Jun 30 17:16:36 2011
@@ -5,13 +5,15 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.MockDirectoryWrapper;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -34,6 +36,7 @@ import org.apache.lucene.facet.taxonomy.
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
 import org.apache.lucene.facet.taxonomy.lucene.LuceneTaxonomyReader;
 import org.apache.lucene.facet.taxonomy.lucene.LuceneTaxonomyWriter;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.SlowRAMDirectory;
 import org.apache.lucene.util._TestUtil;
 
@@ -106,13 +109,23 @@ public class TestTotalFacetCountsCache e
     initCache();
   }
 
+  /** runs a few instances of {@link MultiCLSearcher} in parallel */
+  public void testGeneralSynchronization() throws Exception {
+    int numIters = atLeast(2);
+    for (int i = 0; i < numIters; i++) {
+      doTestGeneralSynchronization(_TestUtil.nextInt(random, 2, 4),
+                                  random.nextBoolean() ? -1 : _TestUtil.nextInt(random, 1, 10),
+                                  _TestUtil.nextInt(random, 0, 3));
+    }
+  }
+
   /**
    * Run many instances of {@link MultiCLSearcher} in parallel, results should
    * be sane. Each instance has a random delay for reading bytes, to ensure
    * that threads finish in different order than started.
    */
-  @Test
-  public void testGeneralSynchronization() throws Exception {
+  @Test @Nightly
+  public void testGeneralSynchronizationBig() throws Exception {
     int[] numThreads = new int[] { 2, 3, 5, 8 };
     int[] sleepMillis = new int[] { -1, 1, 20, 33 };
     int[] cacheSize = new int[] { 0,1,2,3,5 };
@@ -130,17 +143,20 @@ public class TestTotalFacetCountsCache e
       InterruptedException {
     TFC.setCacheSize(cacheSize);
     SlowRAMDirectory slowIndexDir = new SlowRAMDirectory(-1, random);
+    MockDirectoryWrapper indexDir = new MockDirectoryWrapper(random, slowIndexDir);
     SlowRAMDirectory slowTaxoDir = new SlowRAMDirectory(-1, random);
+    MockDirectoryWrapper taxoDir = new MockDirectoryWrapper(random, slowTaxoDir);
+    
 
     // Index documents without the "slowness"
-    MultiCLIndexer.index(slowIndexDir, slowTaxoDir);
+    MultiCLIndexer.index(indexDir, taxoDir);
 
     slowIndexDir.setSleepMillis(sleepMillis);
     slowTaxoDir.setSleepMillis(sleepMillis);
     
     // Open the slow readers
-    IndexReader slowIndexReader = IndexReader.open(slowIndexDir);
-    TaxonomyReader slowTaxoReader = new LuceneTaxonomyReader(slowTaxoDir);
+    IndexReader slowIndexReader = IndexReader.open(indexDir);
+    TaxonomyReader slowTaxoReader = new LuceneTaxonomyReader(taxoDir);
 
     // Class to perform search and return results as threads
     class Multi extends Thread {
@@ -221,6 +237,8 @@ public class TestTotalFacetCountsCache e
     // we're done, close the index reader and the taxonomy.
     slowIndexReader.close();
     slowTaxoReader.close();
+    indexDir.close();
+    taxoDir.close();
   }
 
   /**
@@ -321,6 +339,7 @@ public class TestTotalFacetCountsCache e
     readers[0].close();
     r2.close();
     outputFile.delete();
+    IOUtils.closeSafely(false, dirs[0]);
   }
 
   private int assertReadFromDisc(TotalFacetCounts totalCounts, int prevGen, String errMsg) {
@@ -384,6 +403,9 @@ public class TestTotalFacetCountsCache e
         readers[0].indexReader, readers[0].taxReader, iParams, null);
     assertReadFromDisc(totalCounts, 0, "after reading from disk.");
     outputFile.delete();
+    writers[0].close();
+    readers[0].close();
+    IOUtils.closeSafely(false, dirs[0]);
   }
 
   /**
@@ -397,7 +419,7 @@ public class TestTotalFacetCountsCache e
 
     // Write index using 'normal' directories
     IndexWriter w = new IndexWriter(indexDir, new IndexWriterConfig(
-        TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)));
+        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false)));
     LuceneTaxonomyWriter tw = new LuceneTaxonomyWriter(taxoDir);
     DefaultFacetIndexingParams iParams = new DefaultFacetIndexingParams();
     // Add documents and facets
@@ -508,8 +530,13 @@ public class TestTotalFacetCountsCache e
     assertTrue("with cache of size 2 res no. 1 should come from cache",
         totalCounts1 == TFC.getTotalCounts(readers[1].indexReader, readers[1].taxReader, iParams, null));
     
+    writers[0].close();
+    writers[1].close();
     readers[0].close();
     readers[1].close();
+    for (Directory[] dirset : dirs) {
+      IOUtils.closeSafely(false, dirset);
+    }
   }
 
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/association/AssociationsFacetRequestTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/association/AssociationsFacetRequestTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/association/AssociationsFacetRequestTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/association/AssociationsFacetRequestTest.java Thu Jun 30 17:16:36 2011
@@ -3,19 +3,18 @@ package org.apache.lucene.facet.search.a
 import java.util.List;
 
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.MatchAllDocsQuery;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.analysis.core.KeywordAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.facet.enhancements.EnhancementsDocumentBuilder;
 import org.apache.lucene.facet.enhancements.association.AssociationEnhancement;
@@ -53,8 +52,9 @@ import org.apache.lucene.facet.taxonomy.
 /** Test for associations */
 public class AssociationsFacetRequestTest extends LuceneTestCase {
 
-  private static Directory dir = new RAMDirectory();
-  private static Directory taxoDir = new RAMDirectory();
+  private static Directory dir;
+  private static IndexReader reader;
+  private static Directory taxoDir;
   
   private static final CategoryPath aint = new CategoryPath("int", "a");
   private static final CategoryPath bint = new CategoryPath("int", "b");
@@ -63,8 +63,11 @@ public class AssociationsFacetRequestTes
   
   @BeforeClass
   public static void beforeClassAssociationsFacetRequestTest() throws Exception {
+    dir = newDirectory();
+    taxoDir = newDirectory();
     // preparations - index, taxonomy, content
-    IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
+    RandomIndexWriter writer = new RandomIndexWriter(random, dir, newIndexWriterConfig(TEST_VERSION_CURRENT, 
+        new MockAnalyzer(random, MockTokenizer.KEYWORD, false)));
     
     TaxonomyWriter taxoWriter = new LuceneTaxonomyWriter(taxoDir);
     
@@ -87,18 +90,22 @@ public class AssociationsFacetRequestTes
     }
     
     taxoWriter.close();
+    reader = writer.getReader();
     writer.close();
   }
   
   @AfterClass
   public static void afterClassAssociationsFacetRequestTest() throws Exception {
+    reader.close();
+    reader = null;
     dir.close();
+    dir = null;
     taxoDir.close();
+    taxoDir = null;
   }
   
   @Test
   public void testIntSumAssociation() throws Exception {
-    IndexReader reader = IndexReader.open(dir, true);
     LuceneTaxonomyReader taxo = new LuceneTaxonomyReader(taxoDir);
 
     // facet requests for two facets
@@ -110,7 +117,8 @@ public class AssociationsFacetRequestTes
 
     FacetsCollector fc = new FacetsCollector(fsp, reader, taxo);
     
-    new IndexSearcher(reader).search(q, fc);
+    IndexSearcher searcher = newSearcher(reader);
+    searcher.search(q, fc);
     List<FacetResult> res = fc.getFacetResults();
     
     assertNotNull("No results!",res);
@@ -118,14 +126,12 @@ public class AssociationsFacetRequestTes
     assertEquals("Wrong count for category 'a'!",200, (int) res.get(0).getFacetResultNode().getValue());
     assertEquals("Wrong count for category 'b'!",150, (int) res.get(1).getFacetResultNode().getValue());
     
+    searcher.close();
     taxo.close();
-    reader.close();
   }
   
   @Test
   public void testFloatSumAssociation() throws Exception {
-    
-    IndexReader reader = IndexReader.open(dir, true);
     LuceneTaxonomyReader taxo = new LuceneTaxonomyReader(taxoDir);
 
     // facet requests for two facets
@@ -137,7 +143,8 @@ public class AssociationsFacetRequestTes
 
     FacetsCollector fc = new FacetsCollector(fsp, reader, taxo);
     
-    new IndexSearcher(reader).search(q, fc);
+    IndexSearcher searcher = newSearcher(reader);
+    searcher.search(q, fc);
     List<FacetResult> res = fc.getFacetResults();
     
     assertNotNull("No results!",res);
@@ -145,8 +152,8 @@ public class AssociationsFacetRequestTes
     assertEquals("Wrong count for category 'a'!",50f, (float) res.get(0).getFacetResultNode().getValue(), 0.00001);
     assertEquals("Wrong count for category 'b'!",10f, (float) res.get(1).getFacetResultNode().getValue(), 0.00001);
     
+    searcher.close();
     taxo.close();
-    reader.close();
   }  
     
   @Test
@@ -154,7 +161,6 @@ public class AssociationsFacetRequestTes
     // Same category list cannot be aggregated by two different aggregators. If
     // you want to do that, you need to separate the categories into two
     // category list (you'll still have one association list).
-    IndexReader reader = IndexReader.open(dir, true);
     LuceneTaxonomyReader taxo = new LuceneTaxonomyReader(taxoDir);
 
     // facet requests for two facets
@@ -168,13 +174,16 @@ public class AssociationsFacetRequestTes
 
     FacetsCollector fc = new FacetsCollector(fsp, reader, taxo);
     
-    new IndexSearcher(reader).search(q, fc);
+    IndexSearcher searcher = newSearcher(reader);
+    searcher.search(q, fc);
     try {
       fc.getFacetResults();
       fail("different aggregators for same category list should not be supported");
     } catch (RuntimeException e) {
       // ok - expected
     }
+    searcher.close();
+    taxo.close();
   }  
 
 }

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetRequestTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetRequestTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetRequestTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetRequestTest.java Thu Jun 30 17:16:36 2011
@@ -2,7 +2,7 @@ package org.apache.lucene.facet.search.p
 
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -53,8 +53,8 @@ public class FacetRequestTest extends Lu
   @Test
   public void testGetFacetResultHandlerDifferentTaxonomy() throws Exception {
     FacetRequest fr = new CountFacetRequest(new CategoryPath("a"), 10);
-    RAMDirectory dir1 = new RAMDirectory();
-    RAMDirectory dir2 = new RAMDirectory();
+    Directory dir1 = newDirectory();
+    Directory dir2 = newDirectory();
     // create empty indexes, so that LTR ctor won't complain about a missing index.
     new IndexWriter(dir1, new IndexWriterConfig(TEST_VERSION_CURRENT, null)).close();
     new IndexWriter(dir2, new IndexWriterConfig(TEST_VERSION_CURRENT, null)).close();
@@ -63,6 +63,10 @@ public class FacetRequestTest extends Lu
     FacetResultsHandler frh1 = fr.createFacetResultsHandler(tr1);
     FacetResultsHandler frh2 = fr.createFacetResultsHandler(tr2);
     assertTrue("should not return the same FacetResultHandler instance for different TaxonomyReader instances", frh1 != frh2);
+    tr1.close();
+    tr2.close();
+    dir1.close();
+    dir2.close();
   }
   
   @Test
@@ -70,13 +74,15 @@ public class FacetRequestTest extends Lu
     // Tests that after a FRH is created by FR, changes to FR are not reflected
     // in the FRH.
     FacetRequest fr = new CountFacetRequest(new CategoryPath("a"), 10);
-    RAMDirectory dir = new RAMDirectory();
+    Directory dir = newDirectory();
     // create empty indexes, so that LTR ctor won't complain about a missing index.
     new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, null)).close();
     TaxonomyReader tr = new LuceneTaxonomyReader(dir);
     FacetResultsHandler frh = fr.createFacetResultsHandler(tr);
     fr.setDepth(10);
     assertEquals(FacetRequest.DEFAULT_DEPTH, frh.getFacetRequest().getDepth());
+    tr.close();
+    dir.close();
   }
   
   @Test

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetSearchParamsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetSearchParamsTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetSearchParamsTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/FacetSearchParamsTest.java Thu Jun 30 17:16:36 2011
@@ -1,6 +1,6 @@
 package org.apache.lucene.facet.search.params;
 
-import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -36,11 +36,13 @@ public class FacetSearchParamsTest exten
     FacetSearchParams fsp = new FacetSearchParams();
     assertEquals("unexpected default facet indexing params class", DefaultFacetIndexingParams.class.getName(), fsp.getFacetIndexingParams().getClass().getName());
     assertEquals("no facet requests should be added by default", 0, fsp.getFacetRequests().size());
-    RAMDirectory dir = new RAMDirectory();
+    Directory dir = newDirectory();
     new LuceneTaxonomyWriter(dir).close();
     TaxonomyReader tr = new LuceneTaxonomyReader(dir);
     assertEquals("unexpected partition offset for 0 categories", 1, PartitionsUtils.partitionOffset(fsp, 1, tr));
     assertEquals("unexpected partition size for 0 categories", 1, PartitionsUtils.partitionSize(fsp,tr));
+    tr.close();
+    dir.close();
   }
   
   @Test
@@ -53,7 +55,7 @@ public class FacetSearchParamsTest exten
   @Test
   public void testPartitionSizeWithCategories() throws Exception {
     FacetSearchParams fsp = new FacetSearchParams();
-    RAMDirectory dir = new RAMDirectory();
+    Directory dir = newDirectory();
     TaxonomyWriter tw = new LuceneTaxonomyWriter(dir);
     tw.addCategory(new CategoryPath("a"));
     tw.commit();
@@ -61,6 +63,8 @@ public class FacetSearchParamsTest exten
     TaxonomyReader tr = new LuceneTaxonomyReader(dir);
     assertEquals("unexpected partition offset for 1 categories", 2, PartitionsUtils.partitionOffset(fsp, 1, tr));
     assertEquals("unexpected partition size for 1 categories", 2, PartitionsUtils.partitionSize(fsp,tr));
+    tr.close();
+    dir.close();
   }
   
   @Test

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/MultiIteratorsPerCLParamsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/MultiIteratorsPerCLParamsTest.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/MultiIteratorsPerCLParamsTest.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/params/MultiIteratorsPerCLParamsTest.java Thu Jun 30 17:16:36 2011
@@ -4,14 +4,13 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.lucene.analysis.core.KeywordAnalyzer;
+import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.junit.Test;
 
 import org.apache.lucene.util.LuceneTestCase;
@@ -90,8 +89,8 @@ public class MultiIteratorsPerCLParamsTe
     // FacetRequest's dimension
     CategoryListParams clp = new CategoryListParams();
     FacetIndexingParams iParams = new DefaultFacetIndexingParams(clp);
-    Directory indexDir = new RAMDirectory();
-    Directory taxoDir = new RAMDirectory();
+    Directory indexDir = newDirectory();
+    Directory taxoDir = newDirectory();
     populateIndex(iParams, indexDir, taxoDir);
 
     TaxonomyReader taxo = new LuceneTaxonomyReader(taxoDir);
@@ -122,6 +121,10 @@ public class MultiIteratorsPerCLParamsTe
     countForbiddenDimension = null;
     validateFacetedSearch(iParams, taxo, reader, clCache, allDocs, new String[] {
             "author", "date" }, new int[] { 5, 5 }, new int[] { 5, 2 });
+    taxo.close();
+    reader.close();
+    indexDir.close();
+    taxoDir.close();
   }
 
   private void validateFacetedSearch(FacetIndexingParams iParams,
@@ -163,7 +166,8 @@ public class MultiIteratorsPerCLParamsTe
 
   private void populateIndex(FacetIndexingParams iParams, Directory indexDir,
       Directory taxoDir) throws Exception {
-    IndexWriter writer = new IndexWriter(indexDir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
+    RandomIndexWriter writer = new RandomIndexWriter(random, indexDir, 
+        newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.KEYWORD, false)));
     TaxonomyWriter taxoWriter = new LuceneTaxonomyWriter(taxoDir);
 
     for (CategoryPath[] categories : perDocCategories) {

Modified: lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java?rev=1141629&r1=1141628&r2=1141629&view=diff
==============================================================================
--- lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java (original)
+++ lucene/dev/trunk/modules/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java Thu Jun 30 17:16:36 2011
@@ -101,6 +101,7 @@ public abstract class BaseSampleTestTopK
           }
         }
       }
+      closeAll();
     }
   }