You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2021/02/17 19:13:41 UTC

[lucenenet] 03/04: Lucene.Net.Tests: Deleted TestTaskMergeScheduler class (see #354)

This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 67a8ba67c69fc59e36534bd52966c15fdaf70182
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Wed Feb 17 21:47:52 2021 +0700

    Lucene.Net.Tests: Deleted TestTaskMergeScheduler class (see #354)
---
 .../Support/Index/TestTaskMergeScheduler.cs        | 179 ---------------------
 1 file changed, 179 deletions(-)

diff --git a/src/Lucene.Net.Tests/Support/Index/TestTaskMergeScheduler.cs b/src/Lucene.Net.Tests/Support/Index/TestTaskMergeScheduler.cs
deleted file mode 100644
index 27d58d2..0000000
--- a/src/Lucene.Net.Tests/Support/Index/TestTaskMergeScheduler.cs
+++ /dev/null
@@ -1,179 +0,0 @@
-using Lucene.Net.Attributes;
-using Lucene.Net.Documents;
-using Lucene.Net.Index.Extensions;
-using Lucene.Net.Store;
-using Lucene.Net.Util;
-using NUnit.Framework;
-using System;
-using System.IO;
-using Console = Lucene.Net.Util.SystemConsole;
-
-namespace Lucene.Net.Index
-{
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-
-    using Directory = Lucene.Net.Store.Directory;
-    using Document = Documents.Document;
-    using Field = Field;
-    using LuceneTestCase = Lucene.Net.Util.LuceneTestCase;
-    using MockAnalyzer = Lucene.Net.Analysis.MockAnalyzer;
-    using MockDirectoryWrapper = Lucene.Net.Store.MockDirectoryWrapper;
-    using RAMDirectory = Lucene.Net.Store.RAMDirectory;
-
-    /// <summary>
-    /// Holds tests cases to verify external APIs are accessible
-    /// while not being in Lucene.Net.Index package.
-    /// </summary>
-    public class TestTaskMergeScheduler : LuceneTestCase
-    {
-        internal volatile bool mergeCalled;
-        internal volatile bool excCalled;
-
-        private class MyMergeScheduler : TaskMergeScheduler
-        {
-            private readonly TestTaskMergeScheduler outerInstance;
-
-            public MyMergeScheduler(TestTaskMergeScheduler outerInstance)
-            {
-                this.outerInstance = outerInstance;
-            }
-
-            protected override void HandleMergeException(Exception t)
-            {
-                outerInstance.excCalled = true;
-            }
-
-            public override void Merge(IndexWriter writer, MergeTrigger trigger, bool newMergesFound)
-            {
-                outerInstance.mergeCalled = true;
-                base.Merge(writer, trigger, newMergesFound);
-            }
-        }
-
-        private class FailOnlyOnMerge : Failure
-        {
-            public override void Eval(MockDirectoryWrapper dir)
-            {
-                // LUCENENET specific: for these to work in release mode, we have added [MethodImpl(MethodImplOptions.NoInlining)]
-                // to each possible target of the StackTraceHelper. If these change, so must the attribute on the target methods.
-                if (StackTraceHelper.DoesStackTraceContainMethod("DoMerge"))
-                {
-                    throw new IOException("now failing during merge");
-                }
-            }
-        }
-
-        [Test]
-        [AwaitsFix(BugUrl = "https://github.com/apache/lucenenet/issues/269")] // LUCENENET TODO: this test occasionally fails
-        public void TestSubclassTaskMergeScheduler()
-        {
-            MockDirectoryWrapper dir = NewMockDirectory();
-            dir.FailOn(new FailOnlyOnMerge());
-
-            Document doc = new Document();
-            Field idField = NewStringField("id", "", Field.Store.YES);
-            doc.Add(idField);
-
-            IndexWriter writer = new IndexWriter(dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random)).SetMergeScheduler(new MyMergeScheduler(this)).SetMaxBufferedDocs(2).SetRAMBufferSizeMB(IndexWriterConfig.DISABLE_AUTO_FLUSH).SetMergePolicy(NewLogMergePolicy()));
-            LogMergePolicy logMP = (LogMergePolicy)writer.Config.MergePolicy;
-            logMP.MergeFactor = 10;
-            for (int i = 0; i < 20; i++)
-            {
-                writer.AddDocument(doc);
-            }
-
-            ((MyMergeScheduler)writer.Config.MergeScheduler).Sync();
-            writer.Dispose();
-
-            assertTrue(mergeCalled);
-            dir.Dispose();
-        }
-
-        private class ReportingMergeScheduler : MergeScheduler
-        {
-            public override void Merge(IndexWriter writer, MergeTrigger trigger, bool newMergesFound)
-            {
-                MergePolicy.OneMerge merge = null;
-                while ((merge = writer.NextMerge()) != null)
-                {
-                    if (Verbose)
-                    {
-                        Console.WriteLine("executing merge " + merge.SegString(writer.Directory));
-                    }
-                    writer.Merge(merge);
-                }
-            }
-
-            protected override void Dispose(bool disposing)
-            {
-            }
-        }
-
-        [Test]
-        public void TestCustomMergeScheduler()
-        {
-            // we don't really need to execute anything, just to make sure the custom MS
-            // compiles. But ensure that it can be used as well, e.g., no other hidden
-            // dependencies or something. Therefore, don't use any random API !
-            Directory dir = new RAMDirectory();
-            IndexWriterConfig conf = new IndexWriterConfig(TEST_VERSION_CURRENT, null);
-            conf.SetMergeScheduler(new ReportingMergeScheduler());
-            IndexWriter writer = new IndexWriter(dir, conf);
-            writer.AddDocument(new Document());
-            writer.Commit(); // trigger flush
-            writer.AddDocument(new Document());
-            writer.Commit(); // trigger flush
-            writer.ForceMerge(1);
-            writer.Dispose();
-            dir.Dispose();
-        }
-
-        // LUCENENET-603
-        [Test, LuceneNetSpecific]
-        public void TestExceptionOnBackgroundThreadIsPropagatedToCallingThread()
-        {
-            using MockDirectoryWrapper dir = NewMockDirectory();
-            dir.FailOn(new FailOnlyOnMerge());
-
-            Document doc = new Document();
-            Field idField = NewStringField("id", "", Field.Store.YES);
-            doc.Add(idField);
-
-            var mergeScheduler = new TaskMergeScheduler();
-            using IndexWriter writer = new IndexWriter(dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random)).SetMergeScheduler(mergeScheduler).SetMaxBufferedDocs(2).SetRAMBufferSizeMB(IndexWriterConfig.DISABLE_AUTO_FLUSH).SetMergePolicy(NewLogMergePolicy()));
-            LogMergePolicy logMP = (LogMergePolicy)writer.Config.MergePolicy;
-            logMP.MergeFactor = 10;
-            for (int i = 0; i < 20; i++)
-            {
-                writer.AddDocument(doc);
-            }
-
-            bool exceptionHit = false;
-            try
-            {
-                mergeScheduler.Sync();
-            }
-            catch (MergePolicy.MergeException)
-            {
-                exceptionHit = true;
-            }
-
-            assertTrue(exceptionHit);
-        }
-    }
-}
\ No newline at end of file