Index: src/test/org/apache/lucene/index/TestLogByteMergePolicy.java =================================================================== --- src/test/org/apache/lucene/index/TestLogByteMergePolicy.java (revision 0) +++ src/test/org/apache/lucene/index/TestLogByteMergePolicy.java (revision 0) @@ -0,0 +1,42 @@ +package org.apache.lucene.index; + +import java.io.File; + +import org.apache.lucene.analysis.WhitespaceAnalyzer; +import org.apache.lucene.document.Document; +import org.apache.lucene.store.Directory; +import org.apache.lucene.store.FSDirectory; +import org.apache.lucene.util.LuceneTestCase; + +public class TestLogByteMergePolicy extends LuceneTestCase { + public void test() throws Exception { + String tmpDir = System.getProperty("java.io.tmpdir"); + File indexDir = new File(tmpDir, "logbyteindex"); + indexDir.mkdirs(); + Directory dir = FSDirectory.open(indexDir); + IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED); + LogByteSizeMergePolicy mergePolicy = new LogByteSizeMergePolicy(); + mergePolicy.setMaxMergeMB(2.0); + mergePolicy.setMinMergeMB(1.0); + writer.setMergePolicy(mergePolicy); + writer.setRAMBufferSizeMB(1.0); + int id = 0; + for (int y = 0; y < 50; y++) { + for (int x = 0; x < 1000; x++) { + Document document = TestIndexWriterReader.createDocument(id++, "index1", 20); + writer.addDocument(document); + } + } + writer.close(); + long max = (long)(mergePolicy.getMaxMergeMB()*1024.*1024.); + SegmentInfos infos = new SegmentInfos(); + infos.read(dir); + for (int x=0; x < infos.size(); x++) { + SegmentInfo info = infos.info(x); + long size = info.sizeInBytes(); + System.out.println(info.name+" "+size); + assertTrue(size < max); + } + dir.close(); + } +}