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 2017/07/13 18:36:01 UTC

[6/9] lucenenet git commit: LUCENENET-521: Added regression test to confirm this issue is fixed with the new MMapDirectory implementation.

LUCENENET-521: Added regression test to confirm this issue is fixed with the new MMapDirectory implementation.


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/39e63160
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/39e63160
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/39e63160

Branch: refs/heads/master
Commit: 39e63160efd6709c591862a7cf6c8e3a1e44b126
Parents: 3944108
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Fri Jul 14 00:46:07 2017 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Fri Jul 14 00:46:07 2017 +0700

----------------------------------------------------------------------
 src/Lucene.Net.Tests/Lucene.Net.Tests.csproj |   1 +
 src/Lucene.Net.Tests/Store/LUCENENET521.zip  | Bin 0 -> 8186 bytes
 src/Lucene.Net.Tests/Store/TestDirectory.cs  |  44 ++++++++++++++++++++++
 src/Lucene.Net.Tests/project.json            |   1 +
 4 files changed, 46 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/39e63160/src/Lucene.Net.Tests/Lucene.Net.Tests.csproj
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/Lucene.Net.Tests.csproj b/src/Lucene.Net.Tests/Lucene.Net.Tests.csproj
index a913b37..de94c52 100644
--- a/src/Lucene.Net.Tests/Lucene.Net.Tests.csproj
+++ b/src/Lucene.Net.Tests/Lucene.Net.Tests.csproj
@@ -117,6 +117,7 @@
     <EmbeddedResource Include="Index\taxo.48.w-binary-doc-values.zip" />
     <None Include="Lucene.Net.snk" />
     <None Include="Lucene.Net.Tests.project.json" />
+    <EmbeddedResource Include="Store\LUCENENET521.zip" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Lucene.Net.Analysis.Common\Lucene.Net.Analysis.Common.csproj">

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/39e63160/src/Lucene.Net.Tests/Store/LUCENENET521.zip
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/Store/LUCENENET521.zip b/src/Lucene.Net.Tests/Store/LUCENENET521.zip
new file mode 100644
index 0000000..ee12368
Binary files /dev/null and b/src/Lucene.Net.Tests/Store/LUCENENET521.zip differ

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/39e63160/src/Lucene.Net.Tests/Store/TestDirectory.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/Store/TestDirectory.cs b/src/Lucene.Net.Tests/Store/TestDirectory.cs
index bbcfbc9..2d22ae1 100644
--- a/src/Lucene.Net.Tests/Store/TestDirectory.cs
+++ b/src/Lucene.Net.Tests/Store/TestDirectory.cs
@@ -6,6 +6,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
+using System.Reflection;
 using System.Threading;
 
 namespace Lucene.Net.Store
@@ -477,5 +478,48 @@ namespace Lucene.Net.Store
                 }
             }
         }
+
+        [Test]
+        [LuceneNetSpecific]
+        public void TestLUCENENET521()
+        {
+            var newDirectoryInfo = CreateTempDir("LUCENENET521");
+            using (var zipFileStream = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(this.GetType(), "LUCENENET521.zip"))
+            {
+                TestUtil.Unzip(zipFileStream, newDirectoryInfo);
+            }
+
+            var newDirectory = new MMapDirectory(newDirectoryInfo);
+            var conf = new Index.IndexWriterConfig(LuceneVersion.LUCENE_30, new Analysis.Standard.StandardAnalyzer(LuceneVersion.LUCENE_30));
+            var indexWriter = new Index.IndexWriter(newDirectory, conf);
+            indexWriter.Dispose();
+
+            var sharedReader = Index.IndexReader.Open(newDirectory /*, true*/);
+            const int times = 10;
+            const int concurrentTaskCount = 10;
+            var task = new System.Threading.Tasks.Task[concurrentTaskCount];
+            for (int i = 0; i < concurrentTaskCount; i++)
+            {
+                task[i] = new System.Threading.Tasks.Task(() => Search(sharedReader, times));
+                task[i].Start();
+            }
+
+            System.Threading.Tasks.Task.WaitAll(task);
+            return;
+        }
+
+        private static void Search(Index.IndexReader r, int times)
+        {
+            var searcher = new Search.IndexSearcher(r);
+            var docs = new System.Collections.Generic.List<Documents.Document>(10000);
+            for (int i = 0; i < times; i++)
+            {
+                var q = new Search.TermQuery(new Index.Term("title", "volume"));
+                foreach (var scoreDoc in searcher.Search(q, 100).ScoreDocs)
+                {
+                    docs.Add(searcher.Doc(scoreDoc.Doc));
+                }
+            }
+        }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/39e63160/src/Lucene.Net.Tests/project.json
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/project.json b/src/Lucene.Net.Tests/project.json
index 117862c..f1ff4ed 100644
--- a/src/Lucene.Net.Tests/project.json
+++ b/src/Lucene.Net.Tests/project.json
@@ -50,6 +50,7 @@
         "Index/unsupported.24.nocfs.zip",
         "Index/unsupported.29.cfs.zip",
         "Index/unsupported.29.nocfs.zip",
+        "Store/LUCENENET521.zip",
         "Support/IO/ReadFully.txt"
       ]
     }