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 4a26905fda79ba8a2ce347fda35d0c6d46b7a348
Author: Shad Storhaug <[email protected]>
AuthorDate: Mon Jun 29 15:09:15 2020 +0700

    Lucene.Net.TestFramework: Changed ConcurrentMergeSchedulerFactories.Values 
to only return the TaskMergeScheduler rarely, since it is no longer a default 
setting and is slowing down tests (#295, #261)
---
 .../Util/LuceneTestCase.cs                         | 27 +++++++++++++++-------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs 
b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
index 854da97..06b8450 100644
--- a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
@@ -1217,13 +1217,13 @@ namespace Lucene.Net.Util
 #if !FEATURE_CONCURRENTMERGESCHEDULER
                 mergeScheduler = new TaskMergeScheduler();
 #else
-                if (random.NextBoolean())
+                if (Rarely(random))
                 {
-                    mergeScheduler = new ConcurrentMergeScheduler();
+                    mergeScheduler = new TaskMergeScheduler();
                 }
                 else
                 {
-                    mergeScheduler = new TaskMergeScheduler();
+                    mergeScheduler = new ConcurrentMergeScheduler();
                 }
 #endif
                 mergeScheduler.SetMaxMergesAndThreads(maxMergeCount, 
maxThreadCount);
@@ -3230,20 +3230,31 @@ namespace Lucene.Net.Util
         }
 
         /// <summary>
-        /// Contains a list of all the Func&lt;IConcurrentMergeSchedulers&gt; 
to be tested.
+        /// Contains a list of the Func&lt;IConcurrentMergeSchedulers&gt; to 
be tested.
         /// Delegate method allows them to be created on their target thread 
instead of the test thread
         /// and also ensures a separate instance is created in each case 
(which can affect the result of the test).
         /// <para/>
+        /// The <see cref="TaskMergeScheduler"/> is only rarely included.
+        /// <para/>
         /// LUCENENET specific for injection into tests (i.e. using 
NUnit.Framework.ValueSourceAttribute)
         /// </summary>
         public static class ConcurrentMergeSchedulerFactories
         {
-            public static readonly Func<IConcurrentMergeScheduler>[] Values = 
new Func<IConcurrentMergeScheduler>[] {
+            public static IList<Func<IConcurrentMergeScheduler>> Values
+            {
+                get
+                {
+                    var schedulerFactories = new 
List<Func<IConcurrentMergeScheduler>>();
 #if FEATURE_CONCURRENTMERGESCHEDULER
-                () => new ConcurrentMergeScheduler(),
+                    schedulerFactories.Add(() => new 
ConcurrentMergeScheduler());
+                    if (Rarely())
+                        schedulerFactories.Add(() => new TaskMergeScheduler());
+#else
+                    schedulerFactories.Add(() => new TaskMergeScheduler());
 #endif
-                () => new TaskMergeScheduler()
-            };
+                    return schedulerFactories;
+                }
+            }
         }
 
         private double nextNextGaussian; // LUCENENET specific

Reply via email to