Index: src/test/org/apache/lucene/index/TestStressIndexing2.java =================================================================== --- src/test/org/apache/lucene/index/TestStressIndexing2.java (revision 621703) +++ src/test/org/apache/lucene/index/TestStressIndexing2.java (working copy) @@ -21,6 +21,8 @@ import org.apache.lucene.util.LuceneTestCase; import java.util.*; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; import java.io.IOException; import junit.framework.TestCase; @@ -38,9 +40,9 @@ public void testRandom() throws Exception { - Directory dir1 = new RAMDirectory(); + Directory dir1 = new MockRAMDirectory(); // dir1 = FSDirectory.getDirectory("foofoofoo"); - Directory dir2 = new RAMDirectory(); + Directory dir2 = new MockRAMDirectory(); // mergeFactor=2; maxBufferedDocs=2; Map docs = indexRandom(1, 3, 2, dir1); Map docs = indexRandom(10, 100, 100, dir1); indexSerial(docs, dir2); @@ -52,6 +54,16 @@ verifyEquals(dir1, dir2, "id"); } + private void checkIndex(Directory dir) throws IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(1024); + CheckIndex.out = new PrintStream(bos); + if (!CheckIndex.check(dir, false, null)) { + System.out.println("CheckIndex failed"); + System.out.println(bos.toString()); + fail("CheckIndex failed"); + } + } + public void testMultiConfig() throws Exception { // test lots of smaller different params together for (int i=0; i<100; i++) { // increase iterations for better testing @@ -65,8 +77,8 @@ int iter=r.nextInt(10)+1; int range=r.nextInt(20)+1; - Directory dir1 = new RAMDirectory(); - Directory dir2 = new RAMDirectory(); + Directory dir1 = new MockRAMDirectory(); + Directory dir2 = new MockRAMDirectory(); Map docs = indexRandom(nThreads, iter, range, dir1); indexSerial(docs, dir2); verifyEquals(dir1, dir2, "id"); @@ -87,7 +99,7 @@ // everything. public Map indexRandom(int nThreads, int iterations, int range, Directory dir) throws IOException, InterruptedException { - IndexWriter w = new IndexWriter(dir, autoCommit, new WhitespaceAnalyzer(), true); + IndexWriter w = new IndexWriter(dir, autoCommit, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED); w.setUseCompoundFile(false); /*** w.setMaxMergeDocs(Integer.MAX_VALUE); @@ -129,6 +141,8 @@ } } + checkIndex(dir); + return docs; } @@ -195,8 +209,28 @@ r2r1[id2] = id1; // verify stored fields are equivalent - verifyEquals(r1.document(id1), r2.document(id2)); + verifyEquals(r1.document(id1), r2.document(id2)); + try { + // verify term vectors are equivalent + verifyEquals(r1.getTermFreqVectors(id1), r2.getTermFreqVectors(id2)); + } catch (java.lang.Error e) { + System.out.println("FAILED id=" + term + " id1=" + id1 + " id2=" + id2); + TermFreqVector[] tv1 = r1.getTermFreqVectors(id1); + System.out.println(" d1=" + tv1); + if (tv1 != null) + for(int i=0;i= size + docStoreOffset; + assert numTotalDocs >= size + docStoreOffset: "numTotalDocs=" + numTotalDocs + " size=" + size + " docStoreOffset=" + docStoreOffset; } } else format = 0;