Smdn.Test.NUnit.Utils version 4.1.0
smdn
released this
12 Dec 14:52
·
53 commits
to main
since this release
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2024-12-12 add CompatibilitySuppressions.xml
- 2024-12-12 update assembly version
- 2024-12-12 disable using BinaryFormatter to fix error SYSLIB0011
- 2024-12-12 drop target framework net6.0, or replace it to net8.0
- 2023-12-24 fix or suppress CA warnings
- 2023-12-19 fix warning IDE0005: Using directive is unnecessary
- 2023-12-19 fix warning IDE1006: Naming rule violation
- 2023-12-19 disable warning CS1591
- 2023-12-15 re-enable package validation
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net462.apilist.cs b/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net462.apilist.cs
index 3ee04000..7e84d08b 100644
--- a/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net462.apilist.cs
+++ b/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net462.apilist.cs
@@ -1,58 +1,58 @@
-// Smdn.Test.NUnit.Utils.dll (Smdn.Test.NUnit.Utils-4.0.0)
+// Smdn.Test.NUnit.Utils.dll (Smdn.Test.NUnit.Utils-4.1.0)
// Name: Smdn.Test.NUnit.Utils
-// AssemblyVersion: 4.0.0.0
-// InformationalVersion: 4.0.0+280107daf772c089f4bf30b5bce3f2dded855766
+// AssemblyVersion: 4.1.0.0
+// InformationalVersion: 4.1.0+a2b810f485a890f0e99bf4b9ebe92881f4f71824
// TargetFramework: .NETFramework,Version=v4.6.2
// Configuration: Release
// Referenced assemblies:
// System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// nunit.framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb
// nunit.framework.legacy, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Smdn.Test.NUnit {
public static class Encodings {
public static Encoding EucJP { get; }
public static Encoding Jis { get; }
public static Encoding Latin1 { get; }
public static Encoding ShiftJis { get; }
}
public static class IOUtils {
public static void UsingCurrentDirectory(string path, Action action) {}
public static async Task UsingCurrentDirectoryAsync(string path, Func<Task> action) {}
public static void UsingDirectory(string path, Action<DirectoryInfo> action) {}
public static void UsingDirectory(string path, bool ensureDirectoryCreated, Action<DirectoryInfo> action) {}
public static Task UsingDirectoryAsync(string path, Func<DirectoryInfo, Task> action) {}
public static async Task UsingDirectoryAsync(string path, bool ensureDirectoryCreated, Func<DirectoryInfo, Task> action) {}
public static void UsingFile(string path, Action<FileInfo> action) {}
public static async Task UsingFileAsync(string path, Func<FileInfo, Task> action) {}
}
}
namespace Smdn.Test.NUnit.Assertion {
public class Assert : ClassicAssert {
public static void Elapses(TimeSpan expected, TestDelegate code, string message = null) {}
public static void ElapsesAsync(TimeSpan expected, AsyncTestDelegate code, string message = null) {}
public static void ElapsesInRange(TimeSpan expectedMin, TimeSpan expectedMax, TestDelegate code, string message = null) {}
public static void ElapsesInRangeAsync(TimeSpan expectedMin, TimeSpan expectedMax, AsyncTestDelegate code, string message = null) {}
public static void IsSerializable<TSerializable>(TSerializable obj, Action<TSerializable> testDeserializedObject = null) {}
public static void IsSerializable<TSerializable>(TSerializable obj, IFormatter serializationFormatter, IFormatter deserializationFormatter, Action<TSerializable> testDeserializedObject = null) {}
public static void NotElapse(TimeSpan expected, TestDelegate code, string message = null) {}
public static void NotElapseAsync(TimeSpan expected, AsyncTestDelegate code, string message = null) {}
public static TException ThrowsOrAggregates<TException>(TestDelegate code) where TException : Exception {}
public Assert() {}
}
}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.3.0.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (/~https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.1.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.1.0 (/~https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net472.apilist.cs b/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net472.apilist.cs
index 0f3b5e5e..de77a093 100644
--- a/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net472.apilist.cs
+++ b/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net472.apilist.cs
@@ -1,58 +1,58 @@
-// Smdn.Test.NUnit.Utils.dll (Smdn.Test.NUnit.Utils-4.0.0)
+// Smdn.Test.NUnit.Utils.dll (Smdn.Test.NUnit.Utils-4.1.0)
// Name: Smdn.Test.NUnit.Utils
-// AssemblyVersion: 4.0.0.0
-// InformationalVersion: 4.0.0+280107daf772c089f4bf30b5bce3f2dded855766
+// AssemblyVersion: 4.1.0.0
+// InformationalVersion: 4.1.0+a2b810f485a890f0e99bf4b9ebe92881f4f71824
// TargetFramework: .NETFramework,Version=v4.7.2
// Configuration: Release
// Referenced assemblies:
// System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// nunit.framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb
// nunit.framework.legacy, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Smdn.Test.NUnit {
public static class Encodings {
public static Encoding EucJP { get; }
public static Encoding Jis { get; }
public static Encoding Latin1 { get; }
public static Encoding ShiftJis { get; }
}
public static class IOUtils {
public static void UsingCurrentDirectory(string path, Action action) {}
public static async Task UsingCurrentDirectoryAsync(string path, Func<Task> action) {}
public static void UsingDirectory(string path, Action<DirectoryInfo> action) {}
public static void UsingDirectory(string path, bool ensureDirectoryCreated, Action<DirectoryInfo> action) {}
public static Task UsingDirectoryAsync(string path, Func<DirectoryInfo, Task> action) {}
public static async Task UsingDirectoryAsync(string path, bool ensureDirectoryCreated, Func<DirectoryInfo, Task> action) {}
public static void UsingFile(string path, Action<FileInfo> action) {}
public static async Task UsingFileAsync(string path, Func<FileInfo, Task> action) {}
}
}
namespace Smdn.Test.NUnit.Assertion {
public class Assert : ClassicAssert {
public static void Elapses(TimeSpan expected, TestDelegate code, string message = null) {}
public static void ElapsesAsync(TimeSpan expected, AsyncTestDelegate code, string message = null) {}
public static void ElapsesInRange(TimeSpan expectedMin, TimeSpan expectedMax, TestDelegate code, string message = null) {}
public static void ElapsesInRangeAsync(TimeSpan expectedMin, TimeSpan expectedMax, AsyncTestDelegate code, string message = null) {}
public static void IsSerializable<TSerializable>(TSerializable obj, Action<TSerializable> testDeserializedObject = null) {}
public static void IsSerializable<TSerializable>(TSerializable obj, IFormatter serializationFormatter, IFormatter deserializationFormatter, Action<TSerializable> testDeserializedObject = null) {}
public static void NotElapse(TimeSpan expected, TestDelegate code, string message = null) {}
public static void NotElapseAsync(TimeSpan expected, AsyncTestDelegate code, string message = null) {}
public static TException ThrowsOrAggregates<TException>(TestDelegate code) where TException : Exception {}
public Assert() {}
}
}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.3.0.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (/~https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.1.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.1.0 (/~https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net6.0.apilist.cs b/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net8.0.apilist.cs
similarity index 74%
rename from doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net6.0.apilist.cs
rename to doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net8.0.apilist.cs
index 57e04c4d..95756561 100644
--- a/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils-net8.0.apilist.cs
@@ -1,60 +1,56 @@
-// Smdn.Test.NUnit.Utils.dll (Smdn.Test.NUnit.Utils-4.0.0)
+// Smdn.Test.NUnit.Utils.dll (Smdn.Test.NUnit.Utils-4.1.0)
// Name: Smdn.Test.NUnit.Utils
-// AssemblyVersion: 4.0.0.0
-// InformationalVersion: 4.0.0+280107daf772c089f4bf30b5bce3f2dded855766
-// TargetFramework: .NETCoreApp,Version=v6.0
+// AssemblyVersion: 4.1.0.0
+// InformationalVersion: 4.1.0+a2b810f485a890f0e99bf4b9ebe92881f4f71824
+// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Referenced assemblies:
-// System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Runtime.Serialization.Formatters, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Text.Encoding.CodePages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-// System.Threading.Thread, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Text.Encoding.CodePages, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Threading.Thread, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// nunit.framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb
// nunit.framework.legacy, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb
using System;
using System.IO;
-using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using NUnit.Framework.Legacy;
namespace Smdn.Test.NUnit {
public static class Encodings {
public static Encoding EucJP { get; }
public static Encoding Jis { get; }
public static Encoding Latin1 { get; }
public static Encoding ShiftJis { get; }
}
public static class IOUtils {
public static void UsingCurrentDirectory(string path, Action action) {}
public static async Task UsingCurrentDirectoryAsync(string path, Func<Task> action) {}
public static void UsingDirectory(string path, Action<DirectoryInfo> action) {}
public static void UsingDirectory(string path, bool ensureDirectoryCreated, Action<DirectoryInfo> action) {}
public static Task UsingDirectoryAsync(string path, Func<DirectoryInfo, Task> action) {}
public static async Task UsingDirectoryAsync(string path, bool ensureDirectoryCreated, Func<DirectoryInfo, Task> action) {}
public static void UsingFile(string path, Action<FileInfo> action) {}
public static async Task UsingFileAsync(string path, Func<FileInfo, Task> action) {}
}
}
namespace Smdn.Test.NUnit.Assertion {
public class Assert : ClassicAssert {
public static void Elapses(TimeSpan expected, TestDelegate code, string message = null) {}
public static void ElapsesAsync(TimeSpan expected, AsyncTestDelegate code, string message = null) {}
public static void ElapsesInRange(TimeSpan expectedMin, TimeSpan expectedMax, TestDelegate code, string message = null) {}
public static void ElapsesInRangeAsync(TimeSpan expectedMin, TimeSpan expectedMax, AsyncTestDelegate code, string message = null) {}
public static void IsSerializable<TSerializable>(TSerializable obj, Action<TSerializable> testDeserializedObject = null) {}
- public static void IsSerializable<TSerializable>(TSerializable obj, IFormatter serializationFormatter, IFormatter deserializationFormatter, Action<TSerializable> testDeserializedObject = null) {}
public static void NotElapse(TimeSpan expected, TestDelegate code, string message = null) {}
public static void NotElapseAsync(TimeSpan expected, AsyncTestDelegate code, string message = null) {}
public static TException ThrowsOrAggregates<TException>(TestDelegate code) where TException : Exception {}
public Assert() {}
}
}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.3.0.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (/~https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.1.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.1.0 (/~https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
Full changes
Full changes in this release:
diff --git a/src/Smdn.Test.NUnit.Utils/CompatibilitySuppressions.xml b/src/Smdn.Test.NUnit.Utils/CompatibilitySuppressions.xml
new file mode 100644
index 00000000..0b7edf62
--- /dev/null
+++ b/src/Smdn.Test.NUnit.Utils/CompatibilitySuppressions.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/diagnostic-ids -->
+<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Suppression>
+ <DiagnosticId>PKV006</DiagnosticId>
+ <Target>net6.0</Target>
+ </Suppression>
+</Suppressions>
\ No newline at end of file
diff --git a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/Assert.Serialization.cs b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/Assert.Serialization.cs
index 8658e7e6..b74bb3bf 100644
--- a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/Assert.Serialization.cs
+++ b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/Assert.Serialization.cs
@@ -1,6 +1,11 @@
// SPDX-FileCopyrightText: 2020 smdn <smdn@smdn.jp>
// SPDX-License-Identifier: MIT
+#if !NET8_0_OR_GREATER
+#define ENABLE_SERIALIZATION // SYSLIB0011 (https://aka.ms/binaryformatter)
+#endif
+
using System;
+#if ENABLE_SERIALIZATION
using System.IO;
#if SYSTEM_RUNTIME_SERIALIZATION_ISERIALIZABLE || SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
using System.Runtime.Serialization;
@@ -8,13 +13,15 @@ using System.Runtime.Serialization;
#if SYSTEM_RUNTIME_SERIALIZATION_FORMATTER_BINARY
using System.Runtime.Serialization.Formatters.Binary;
#endif
+#endif // ENABLE_SERIALIZATION
namespace Smdn.Test.NUnit.Assertion;
#pragma warning disable IDE0040
partial class Assert {
#pragma warning restore IDE0040
-#if SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
+#if ENABLE_SERIALIZATION && SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
+#pragma warning disable CA1859
private static IFormatter CreateDefaultSerializationFormatter()
#if SYSTEM_RUNTIME_SERIALIZATION_FORMATTER_BINARY
// TODO: use JsonSerializer instead
@@ -22,16 +29,19 @@ partial class Assert {
=> new BinaryFormatter();
#else
=> null;
+#pragma warning restore CA1859
#endif
+#pragma warning disable CA1859
private static IFormatter CreateDefaultDeserializationFormatter()
-#if SYSTEM_RUNTIME_SERIALIZATION_FORMATTER_BINARY && SYSTEM_RUNTIME_SERIALIZATION_SERIALIZATIONBINDER
+#if ENABLE_SERIALIZATION && SYSTEM_RUNTIME_SERIALIZATION_FORMATTER_BINARY && SYSTEM_RUNTIME_SERIALIZATION_SERIALIZATIONBINDER
=> new BinaryFormatter() {
Binder = new DeserializationBinder(),
};
#else
=> null;
#endif
+#pragma warning restore CA1859
#endif // SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
public static void IsSerializable<TSerializable>(
@@ -43,14 +53,14 @@ partial class Assert {
#endif
=> IsSerializableCore(
obj,
-#if SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
+#if ENABLE_SERIALIZATION && SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
CreateDefaultSerializationFormatter(),
CreateDefaultDeserializationFormatter(),
#endif
testDeserializedObject
);
-#if SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
+#if ENABLE_SERIALIZATION && SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
public static void IsSerializable<TSerializable>(
TSerializable obj,
IFormatter serializationFormatter,
@@ -70,7 +80,7 @@ partial class Assert {
private static void IsSerializableCore<TSerializable>(
TSerializable obj,
-#if SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
+#if ENABLE_SERIALIZATION && SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
IFormatter serializationFormatter,
IFormatter deserializationFormatter,
#endif
@@ -80,7 +90,7 @@ partial class Assert {
where TSerializable : ISerializable
#endif
{
-#if SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
+#if ENABLE_SERIALIZATION && SYSTEM_RUNTIME_SERIALIZATION_IFORMATTER
if (serializationFormatter is null || deserializationFormatter is null)
return; // do nothing
diff --git a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/Assert.cs b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/Assert.cs
index 3bef33ef..91124014 100644
--- a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/Assert.cs
+++ b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/Assert.cs
@@ -3,7 +3,6 @@
using System;
using NUnit.Framework;
-using NUnit.Framework.Legacy;
namespace Smdn.Test.NUnit.Assertion;
diff --git a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/DeserializationBinder.cs b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/DeserializationBinder.cs
index a984d193..cc8845eb 100644
--- a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/DeserializationBinder.cs
+++ b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Assertion/DeserializationBinder.cs
@@ -1,6 +1,10 @@
// SPDX-FileCopyrightText: 2020 smdn <smdn@smdn.jp>
// SPDX-License-Identifier: MIT
-#if SYSTEM_RUNTIME_SERIALIZATION_SERIALIZATIONBINDER
+#if !NET8_0_OR_GREATER
+#define ENABLE_SERIALIZATION // SYSLIB0011 (https://aka.ms/binaryformatter)
+#endif
+
+#if ENABLE_SERIALIZATION && SYSTEM_RUNTIME_SERIALIZATION_SERIALIZATIONBINDER
using System;
using System.Linq;
@@ -10,6 +14,8 @@ using System.Runtime.Serialization;
namespace Smdn.Test.NUnit.Assertion;
internal sealed class DeserializationBinder : SerializationBinder {
+ private static readonly string[] TypeArgumentListSplitter = { "]," };
+
private static Type GetTypeFromLoadedAssemblies(string typeName)
{
var typeFullName = typeName;
@@ -43,7 +49,7 @@ internal sealed class DeserializationBinder : SerializationBinder {
var typeArguments = typeArgumentList
.Substring(1, typeArgumentList.Length - 2) // remove outermost square brackets: "[[T1], [T2], [T3]]" -> "[T1], [T2], [T3]"
- .Split(new[] { "]," }, StringSplitOptions.None) // split type arguments: "[T1], [T2], [T3]" -> {"[T1", "[T2", "[T3]"}
+ .Split(TypeArgumentListSplitter, StringSplitOptions.None) // split type arguments: "[T1], [T2], [T3]" -> {"[T1", "[T2", "[T3]"}
.Select(ta => ta.TrimStart('[').TrimEnd(']')) // trim square brackets: {"[T1", "[T2", "[T3]"} -> {"T1", "T2", "T3"}
.Select(GetTypeFromLoadedAssemblies) // get types from type names
.ToArray();
diff --git a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils.csproj b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils.csproj
index 110da0e4..01b7f583 100644
--- a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils.csproj
+++ b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit.Utils.csproj
@@ -4,12 +4,14 @@ SPDX-License-Identifier: MIT
-->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net6.0;net472;net462</TargetFrameworks>
- <VersionPrefix>4.0.0</VersionPrefix>
+ <TargetFrameworks>net8.0;net472;net462</TargetFrameworks>
+ <VersionPrefix>4.1.0</VersionPrefix>
<VersionSuffix></VersionSuffix>
+ <PackageValidationBaselineVersion>4.0.0</PackageValidationBaselineVersion>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<EnableTrimAnalyzer>false</EnableTrimAnalyzer>
<RootNamespace/> <!-- empty the root namespace so that the namespace is determined only by the directory name, for code style rule IDE0030 -->
+ <NoWarn>CS1591;$(NoWarn)</NoWarn> <!-- CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member' -->
</PropertyGroup>
<PropertyGroup Label="assembly attributes">
diff --git a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit/IOUtils.cs b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit/IOUtils.cs
index 9dc17f77..342e2b9d 100644
--- a/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit/IOUtils.cs
+++ b/src/Smdn.Test.NUnit.Utils/Smdn.Test.NUnit/IOUtils.cs
@@ -132,12 +132,12 @@ public static class IOUtils {
private static void TryIO(Action action)
{
- const int maxRetry = 10;
- const int interval = 100;
+ const int MaxRetry = 10;
+ const int Interval = 100;
Exception caughtException = null;
- for (var retry = maxRetry; retry != 0; retry--) {
+ for (var retry = MaxRetry; retry != 0; retry--) {
try {
action();
return;
@@ -149,7 +149,7 @@ public static class IOUtils {
caughtException = ex;
}
- Thread.Sleep(interval);
+ Thread.Sleep(Interval);
}
if (caughtException is not null)
Notes
What's Changed
- Bump dawidd6/action-download-artifact from 3.0.0 to 6 in /.github/workflows by @dependabot in #230
New Contributors
- @dependabot made their first contribution in #230
Full Changelog: releases/Smdn.Test.NUnit.Utils-4.0.0...releases/Smdn.Test.NUnit.Utils-4.1.0