lucenenet-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nightowl...@apache.org
Subject [lucenenet] 01/03: BUG: Lucene.Net.TestFramework: Removed dependency on local file path location of europarl.lines.txt.gz and embedded the file. Removed Lucene.Net.TestFramework.Paths class whose only purpose was to resolve such dependencies (and didn't exist in Java).
Date Tue, 16 Jul 2019 16:39:00 GMT
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 a7c6477db41904a71f2ed4eb198830344de1fb32
Author: Shad Storhaug <shad@shadstorhaug.com>
AuthorDate: Tue Jul 16 08:21:37 2019 +0700

    BUG: Lucene.Net.TestFramework: Removed dependency on local file path location of europarl.lines.txt.gz
and embedded the file. Removed Lucene.Net.TestFramework.Paths class whose only purpose was
to resolve such dependencies (and didn't exist in Java).
---
 .../Lucene.Net.TestFramework.csproj                |   5 +
 src/Lucene.Net.TestFramework/Util/LineFileDocs.cs  |  13 +-
 .../Util/LuceneTestCase.cs                         |   4 -
 src/Lucene.Net.TestFramework/Util/Paths.cs         | 206 ---------------------
 .../Util}/europarl.lines.txt.gz                    | Bin
 5 files changed, 16 insertions(+), 212 deletions(-)

diff --git a/src/Lucene.Net.TestFramework/Lucene.Net.TestFramework.csproj b/src/Lucene.Net.TestFramework/Lucene.Net.TestFramework.csproj
index dc54660..db84739 100644
--- a/src/Lucene.Net.TestFramework/Lucene.Net.TestFramework.csproj
+++ b/src/Lucene.Net.TestFramework/Lucene.Net.TestFramework.csproj
@@ -43,6 +43,11 @@
   </ItemGroup>
 
   <ItemGroup>
+    <None Remove="Util\europarl.lines.txt.gz" />
+    <EmbeddedResource Include="Util\europarl.lines.txt.gz" />
+  </ItemGroup>
+
+  <ItemGroup>
     <ProjectReference Include="..\Lucene.Net.Analysis.Common\Lucene.Net.Analysis.Common.csproj"
/>
     <ProjectReference Include="..\Lucene.Net.Codecs\Lucene.Net.Codecs.csproj" />
   </ItemGroup>
diff --git a/src/Lucene.Net.TestFramework/Util/LineFileDocs.cs b/src/Lucene.Net.TestFramework/Util/LineFileDocs.cs
index 4177e10..1a361ba 100644
--- a/src/Lucene.Net.TestFramework/Util/LineFileDocs.cs
+++ b/src/Lucene.Net.TestFramework/Util/LineFileDocs.cs
@@ -54,7 +54,7 @@ namespace Lucene.Net.Util
         /// </summary>
         public LineFileDocs(Random random, string path, bool useDocValues)
         {
-            this.Path = Paths.ResolveTestArtifactPath(path);
+            this.Path = path;
             this.UseDocValues = useDocValues;
             Open(random);
         }
@@ -100,7 +100,16 @@ namespace Lucene.Net.Util
 
                 try
                 {
-                    @is = new FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.Read);
+                    // LUCENENET: We have embedded the default file, so if that filename
is passed,
+                    // open the local resource instead of an external file.
+                    if (Path == LuceneTestCase.DEFAULT_LINE_DOCS_FILE)
+                    {
+                        @is = this.GetType().getResourceAsStream(Path);
+                    }
+                    else
+                    {
+                        @is = new FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.Read);
+                    }
                 }
                 catch (Exception)
                 {
diff --git a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
index 81af013..54d08ec 100644
--- a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
@@ -200,13 +200,9 @@ namespace Lucene.Net.Util
     [TestFixture]
     public abstract partial class LuceneTestCase : Assert // Wait long for leaked threads
to complete before failure. zk needs this. -  See LUCENE-3995 for rationale.
     {
-        public static System.IO.FileInfo TEMP_DIR;
-
         public LuceneTestCase()
         {
             ClassEnvRule = new TestRuleSetupAndRestoreClassEnv();
-            String directory = Paths.TempDirectory;
-            TEMP_DIR = new System.IO.FileInfo(directory);
         }
 
         // --------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/Util/Paths.cs b/src/Lucene.Net.TestFramework/Util/Paths.cs
deleted file mode 100644
index c9104b6..0000000
--- a/src/Lucene.Net.TestFramework/Util/Paths.cs
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * 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 Lucene.Net.Support;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-
-namespace Lucene.Net.Util
-{
-    /// <summary>
-    /// The static accessor class for file paths used in testing.
-    /// </summary>
-    public static class Paths
-    {
-        private static string s_tempDirectory = null;
-        private static string s_testDocDirectory = null;
-        private static string s_assemblyDirectory = null;
-        private static string s_projectRootDirectory = null;
-
-        /// <summary>
-        /// Gets the temp directory.
-        /// </summary>
-        /// <value>
-        /// The temp directory.
-        /// </value>
-        /// <remarks>
-        /// 	<para>
-        /// 		The temp directory first looks at the app settings for the &qt;tempDir&qt;
-        /// 		key. If the path does not exists or the setting is empty, the temp directory
-        /// 		fall back to using the environment's temp directory path and
-        /// 		append &qt;lucene-net&qt; to it.
-        /// 	</para>
-        /// </remarks>
-        public static string TempDirectory
-        {
-            get
-            {
-                if (s_tempDirectory == null)
-                {
-                    string tempDirectory = SystemProperties.GetProperty("lucene.temp.dir");
-
-                    if (string.IsNullOrEmpty(tempDirectory))
-                    {
-                        tempDirectory = CombinePath(Path.GetTempPath(), "lucene-net");
-                    }
-
-                    if (!Directory.Exists(tempDirectory))
-                        Directory.CreateDirectory(tempDirectory);
-
-                    s_tempDirectory = tempDirectory;
-                }
-
-                return s_tempDirectory;
-            }
-        }
-
-        /// <summary>
-        /// Gets the test document directory.
-        /// </summary>
-        /// <value>
-        /// The test document directory.
-        /// </value>
-        public static string TestDocDirectory
-        {
-            get
-            {
-                if (s_testDocDirectory == null)
-                {
-                    s_testDocDirectory = CombinePath(TempDirectory, "TestDoc");
-                }
-                return s_testDocDirectory;
-            }
-        }
-
-        /// <summary>
-        /// Gets the directory where the compiled assembly Lucene.Net.Tests is found.
-        /// We use Assembly.CodeBase in case NUnit or the current test runner
-        /// has shadow copy enabled.
-        /// </summary>
-        public static string AssemblyDirectory
-        {
-            get
-            {
-                if (s_assemblyDirectory == null)
-                {
-                    // CodeBase uses unc path, get rid of the file prefix if it exists.
-                    // File prefix could be file:// or file:///
-                    var assemblyDirectoryUri = new Uri(typeof(Paths).GetTypeInfo().Assembly.Location);
-                    s_assemblyDirectory = Path.GetDirectoryName(assemblyDirectoryUri.LocalPath);
-                }
-                return s_assemblyDirectory;
-            }
-        }
-
-        private const string TestArtifactsFolder = "test-files";
-
-        public static string ResolveTestArtifactPath(string fileName)
-        {
-            var rootPath = ProjectRootDirectory;
-            while (true)
-            {
-                var possiblePath = Path.Combine(rootPath, TestArtifactsFolder);
-                if (Directory.Exists(possiblePath)) return Path.Combine(possiblePath, fileName);
-                
-                var parent = Directory.GetParent(rootPath);
-                if (parent == parent.Root) break;
-                rootPath = parent.FullName;
-            }
-            throw new FileNotFoundException("Could not find the test-files folder");
-        }
-
-        /// <summary>
-        /// Gets the root directory for the project. e.g. if you were working on trunk
-        /// it would be the trunk directory.
-        /// </summary>
-        public static string ProjectRootDirectory
-        {
-            get
-            {
-                if (s_projectRootDirectory == null)
-                {
-                    // we currently assume that the assembly's directory is root/bin/[Section]/[Build]
-                    // where [Section] is either core, demo, or contrib, and [Build] is either
Debug or Release.
-                    var assemblyLocation = AssemblyDirectory;
-
-                    var index = assemblyLocation.IndexOf(Path.DirectorySeparatorChar + "build"
+ Path.DirectorySeparatorChar, StringComparison.OrdinalIgnoreCase);
-                    if (index == -1)
-                    {
-                        index = assemblyLocation.IndexOf(Path.DirectorySeparatorChar + "bin"
+ Path.DirectorySeparatorChar, StringComparison.OrdinalIgnoreCase);
-                    }
-
-                    if (index < 0)
-                    {
-                        throw new ArgumentOutOfRangeException("Could not locate project root
directory in " + assemblyLocation);
-                    }
-
-                    var difference = assemblyLocation.Substring(index).Count(o => o ==
Path.DirectorySeparatorChar);
-
-                    var list = new List<string>();
-
-                    for (int i = 0; i < difference; i++)
-                    {
-                        list.Add("..");
-                    }
-
-                    var parameters = list.ToArray();
-
-                    s_projectRootDirectory = Path.GetFullPath(CombinePath(assemblyLocation,
parameters));
-                }
-                return s_projectRootDirectory;
-            }
-        }
-
-        /// <summary>
-        /// Combines the path.
-        /// </summary>
-        /// <returns>
-        /// The path.
-        /// </returns>
-        /// <param name='startSegment'>
-        /// Start segment of the path.
-        /// </param>
-        /// <param name='segments'>
-        /// Path segments e.g. directory or file names.
-        /// </param>
-        /// <exception cref='ArgumentNullException'>
-        /// Is thrown when an argument passed to a method is invalid because it is <see
langword="null" /> .
-        /// </exception>
-        /// <exception cref='InvalidOperationException'>
-        /// Is thrown when an operation cannot be performed.
-        /// </exception>
-        internal static string CombinePath(string startSegment, params string[] segments)
-        {
-            if (startSegment == null)
-                throw new ArgumentNullException(startSegment);
-
-            if (segments == null || segments.Length == 0)
-                throw new InvalidOperationException("Paths can not be combined" +
-                    " unless the startSegment and one additional segment is present.");
-
-            string path = startSegment;
-
-            foreach (string segment in segments)
-                path = System.IO.Path.Combine(path, segment);
-
-            return path;
-        }
-    }
-}
\ No newline at end of file
diff --git a/test-files/europarl.lines.txt.gz b/src/Lucene.Net.TestFramework/Util/europarl.lines.txt.gz
similarity index 100%
rename from test-files/europarl.lines.txt.gz
rename to src/Lucene.Net.TestFramework/Util/europarl.lines.txt.gz


Mime
View raw message