lucenenet-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nightowl...@apache.org
Subject [12/16] lucenenet git commit: Lucene.Net.TestFramework: Added exception logic for Nullable Enum convention
Date Sat, 11 Mar 2017 05:53:05 GMT
Lucene.Net.TestFramework: Added exception logic for Nullable Enum convention


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

Branch: refs/heads/api-work
Commit: 32be74bfe403766a55c0e7269a458c4b5ab3e998
Parents: da64d38
Author: Shad Storhaug <shad@shadstorhaug.com>
Authored: Fri Mar 10 22:56:34 2017 +0700
Committer: Shad Storhaug <shad@shadstorhaug.com>
Committed: Sat Mar 11 12:47:39 2017 +0700

----------------------------------------------------------------------
 src/Lucene.Net.Core/Lucene.Net.csproj                  |  1 +
 .../Support/ExceptionToNullableEnumConvention.cs       | 13 +++++++++++++
 src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs   | 11 +++++++++--
 .../Util/TestRuleSetupAndRestoreClassEnv.cs            |  9 ++++++++-
 4 files changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/32be74bf/src/Lucene.Net.Core/Lucene.Net.csproj
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Lucene.Net.csproj b/src/Lucene.Net.Core/Lucene.Net.csproj
index d094f47..db7adab 100644
--- a/src/Lucene.Net.Core/Lucene.Net.csproj
+++ b/src/Lucene.Net.Core/Lucene.Net.csproj
@@ -637,6 +637,7 @@
     <Compile Include="Support\DataOutputStream.cs" />
     <Compile Include="Support\Codecs\DefaultCodecFactory.cs" />
     <Compile Include="Support\ExceptionToClassNameConventionAttribute.cs" />
+    <Compile Include="Support\ExceptionToNullableEnumConvention.cs" />
     <Compile Include="Support\FileStreamExtensions.cs" />
     <Compile Include="Support\HashHelpers.cs" />
     <Compile Include="Support\ICallable.cs" />

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/32be74bf/src/Lucene.Net.Core/Support/ExceptionToNullableEnumConvention.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Support/ExceptionToNullableEnumConvention.cs b/src/Lucene.Net.Core/Support/ExceptionToNullableEnumConvention.cs
new file mode 100644
index 0000000..db046ba
--- /dev/null
+++ b/src/Lucene.Net.Core/Support/ExceptionToNullableEnumConvention.cs
@@ -0,0 +1,13 @@
+´╗┐using System;
+
+namespace Lucene.Net.Support
+{
+    /// <summary>
+    /// Use this attribute to make an exception to the nullable enum rule.
+    /// Some of these cannot be avoided.
+    /// </summary>
+    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field
| AttributeTargets.Constructor, AllowMultiple = false)]
+    public class ExceptionToNullableEnumConvention : Attribute
+    {
+    }
+}

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/32be74bf/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs b/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs
index fc8b96b..42423c0 100644
--- a/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs
+++ b/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs
@@ -325,8 +325,9 @@ namespace Lucene.Net.Util
             //}
 
             Assert.IsFalse(names.Any(), names.Count() + " members that are type nullable
enum detected. " +
-                "Nullable enum parameters, fields, methods, and properties should be eliminated,
either by " +
-                "eliminating the logic that depends on 'null' or by adding a NOT_SET=0 state
to the enum.");
+                "Nullable enum parameters, fields, methods, and properties should be eliminated
(where possible), either by " +
+                "eliminating the logic that depends on 'null'. Sometimes, it makes sense
to keep a nullable enum parameter. " +
+                "In those cases, mark the member with the [ExceptionToNullableEnumConvention]
attribute.");
         }
 
         //[Test, LuceneNetSpecific]
@@ -869,6 +870,12 @@ namespace Lucene.Net.Util
                         continue;
                     }
 
+                    // Ignore properties, methods, and events with IgnoreNetNumericConventionAttribute
+                    if (System.Attribute.IsDefined(member, typeof(ExceptionToNullableEnumConvention)))
+                    {
+                        continue;
+                    }
+
                     if (member.DeclaringType.Equals(t.UnderlyingSystemType))
                     {
                         if (member.MemberType == MemberTypes.Method && !(member.Name.StartsWith("get_")
|| member.Name.StartsWith("set_")))

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/32be74bf/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs b/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
index 34ad216..4715e57 100644
--- a/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
+++ b/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
@@ -239,12 +239,19 @@ namespace Lucene.Net.Util
             {
                 Debug.Assert(false);
             }
+            //codec = Codec.ForName("Lucene42");
+            //LuceneTestCase.OLD_FORMAT_IMPERSONATION_IS_ACTIVE = true;
+
             Codec.Default = codec;
 
             // Initialize locale/ timezone.
             string testLocale = System.Environment.GetEnvironmentVariable("tests.locale")
?? "random";
             string testTimeZone = System.Environment.GetEnvironmentVariable("tests.timezone")
?? "random";
 
+            //testLocale = "sr-Latn-RS";
+            testLocale = "lt-LT";
+            //testLocale = "en-US";
+
             // Always pick a random one for consistency (whether tests.locale was specified
or not).
             savedLocale = CultureInfo.CurrentCulture;
             CultureInfo randomLocale = LuceneTestCase.RandomLocale(random);
@@ -266,7 +273,7 @@ namespace Lucene.Net.Util
             //TimeZoneInfo.ConvertTime() // LUCENENET TODO: Everywhere TimeZoneInfo is supposed
to be used, use this method to convert a dateTime object to the time zone
 
             similarity = random.NextBoolean() ? (Similarity)new DefaultSimilarity() : new
RandomSimilarityProvider(random);
-            
+
             // Check codec restrictions once at class level.
             try
             {


Mime
View raw message