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 <[email protected]> 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]
