コード例 #1
0
        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());
        }
コード例 #2
0
 public virtual void  SetUp()
 {
     ConcurrentMergeScheduler.SetTestMode();
 }