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 2020/07/21 09:48:58 UTC

[lucenenet] 24/24: Lucene.Net.Tests.Support.TestApiConsistency: Added support for filtering public fields via regex

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 47599bc3bd59bf5c0e21a0183a62c83ce7af7e50
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Tue Jul 21 15:48:32 2020 +0700

    Lucene.Net.Tests.Support.TestApiConsistency: Added support for filtering public fields via regex
---
 .../Support/ApiScanTestBase.cs                     | 22 +++++++++++++---------
 src/Lucene.Net.Tests/Support/TestApiConsistency.cs |  4 ++--
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs b/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
index 1a48b30..2946de2 100644
--- a/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
+++ b/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
@@ -138,10 +138,15 @@ namespace Lucene.Net.Util
                 "Private field names should be camelCase.");
         }
 
-        //[Test, LuceneNetSpecific]
         public virtual void TestPublicFields(Type typeFromTargetAssembly)
         {
-            var names = GetInvalidPublicFields(typeFromTargetAssembly.Assembly);
+            TestPublicFields(typeFromTargetAssembly, null);
+        }
+
+        //[Test, LuceneNetSpecific]
+        public virtual void TestPublicFields(Type typeFromTargetAssembly, string exceptionRegex)
+        {
+            var names = GetInvalidPublicFields(typeFromTargetAssembly.Assembly, exceptionRegex);
 
             //if (VERBOSE)
             //{
@@ -433,11 +438,6 @@ namespace Lucene.Net.Util
                     if ((field.IsPrivate || field.IsAssembly) && !PrivateFieldName.IsMatch(field.Name) && field.DeclaringType.Equals(c.UnderlyingSystemType))
                     {
                         var name = string.Concat(c.FullName, ".", field.Name);
-                        //bool hasExceptions = !string.IsNullOrWhiteSpace(exceptionRegex);
-                        //if (!hasExceptions || (hasExceptions && !Regex.IsMatch(name, exceptionRegex)))
-                        //{
-                        //    result.Add(name);
-                        //}
                         if (!IsException(name, exceptionRegex))
                         {
                             result.Add(name);
@@ -495,7 +495,7 @@ namespace Lucene.Net.Util
         /// </summary>
         /// <param name="assembly"></param>
         /// <returns></returns>
-        private static IEnumerable<string> GetInvalidPublicFields(Assembly assembly)
+        private static IEnumerable<string> GetInvalidPublicFields(Assembly assembly, string exceptionRegex)
         {
             var result = new List<string>();
 
@@ -529,7 +529,11 @@ namespace Lucene.Net.Util
 
                     if (field.IsPublic && field.DeclaringType.Equals(c.UnderlyingSystemType))
                     {
-                        result.Add(string.Concat(c.FullName, ".", field.Name));
+                        var name = string.Concat(c.FullName, ".", field.Name);
+                        if (!IsException(name, exceptionRegex))
+                        {
+                            result.Add(name);
+                        }
                     }
                 }
             }
diff --git a/src/Lucene.Net.Tests/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
index 2a96e22..00728a9 100644
--- a/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
@@ -38,14 +38,14 @@ namespace Lucene.Net
         [TestCase(typeof(Lucene.Net.Analysis.Analyzer))]
         public override void TestPrivateFieldNames(Type typeFromTargetAssembly)
         {
-            base.TestPrivateFieldNames(typeFromTargetAssembly, @"^Lucene\.Net\.Support\.(?:LurchTable|HashUtilities|ConcurrentHashSet|PlatformHelper)");
+            base.TestPrivateFieldNames(typeFromTargetAssembly, @"^Lucene\.Net\.Support\.(?:ConcurrentHashSet|PlatformHelper)");
         }
 
         [Test, LuceneNetSpecific]
         [TestCase(typeof(Lucene.Net.Analysis.Analyzer))]
         public override void TestPublicFields(Type typeFromTargetAssembly)
         {
-            base.TestPublicFields(typeFromTargetAssembly);
+            base.TestPublicFields(typeFromTargetAssembly, @"^Lucene\.Net\.Util\.(?:LightWeight|Disposable)ThreadLocal`1\+(?:LocalState|CurrentThreadState)");
         }
 
         [Test, LuceneNetSpecific]