public virtual void TestSubclassConcurrentMergeScheduler() { MockRAMDirectory dir = new MockRAMDirectory(); dir.FailOn(new FailOnlyOnMerge()); Document doc = new Document(); Field idField = new Field("id", "", Field.Store.YES, Field.Index.NOT_ANALYZED); doc.Add(idField); IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED, null); MyMergeScheduler ms = new MyMergeScheduler(this); writer.SetMergeScheduler(ms, null); writer.SetMaxBufferedDocs(2); writer.SetRAMBufferSizeMB(Lucene.Net.Index.IndexWriter.DISABLE_AUTO_FLUSH); for (int i = 0; i < 20; i++) { writer.AddDocument(doc, null); } ms.Sync(); writer.Close(); Console.WriteLine("merge thread"); Assert.IsTrue(mergeThreadCreated); Console.WriteLine("merge called"); Assert.IsTrue(mergeCalled); Console.WriteLine("exec called"); Assert.IsTrue(excCalled); Console.WriteLine("exec true"); dir.Close(); Console.WriteLine("Last"); Assert.IsTrue(ConcurrentMergeScheduler.AnyUnhandledExceptions()); }
public virtual void SetUp() { ConcurrentMergeScheduler.SetTestMode(); }