diff --git a/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs b/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs index 0abf8f9..06f78e3 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs @@ -119,7 +119,7 @@ protected virtual void OnDisposeManagedResources() /// /// Called when this object is being disposed by . /// -#if NET8_0_OR_GREATER +#if NET9_0_OR_GREATER protected virtual async ValueTask OnDisposeManagedResourcesAsync() { if (Host is IAsyncDisposable asyncDisposable) diff --git a/test/Codebelt.Extensions.Xunit.Tests/Assets/AsyncDisposable.cs b/test/Codebelt.Extensions.Xunit.Tests/Assets/AsyncDisposable.cs index 90b4961..53f1c74 100644 --- a/test/Codebelt.Extensions.Xunit.Tests/Assets/AsyncDisposable.cs +++ b/test/Codebelt.Extensions.Xunit.Tests/Assets/AsyncDisposable.cs @@ -7,7 +7,7 @@ namespace Codebelt.Extensions.Xunit.Assets; public class AsyncDisposable : Test { IDisposable _disposableResource = new MemoryStream(); -#if NET8_0_OR_GREATER +#if NET9_0_OR_GREATER IAsyncDisposable _asyncDisposableResource = new MemoryStream(); #else IAsyncDisposable _asyncDisposableResource = new WemoryStream(); diff --git a/test/Codebelt.Extensions.Xunit.Tests/Assets/UnmanagedDisposable.cs b/test/Codebelt.Extensions.Xunit.Tests/Assets/UnmanagedDisposable.cs index ff14b66..d5b88d1 100644 --- a/test/Codebelt.Extensions.Xunit.Tests/Assets/UnmanagedDisposable.cs +++ b/test/Codebelt.Extensions.Xunit.Tests/Assets/UnmanagedDisposable.cs @@ -28,7 +28,7 @@ public delegate IntPtr CreateFileDelegate(string lpFileName, public UnmanagedDisposable() { -#if NET8_0_OR_GREATER +#if NET9_0_OR_GREATER if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { if (NativeLibrary.TryLoad("kernel32.dll", GetType().Assembly, DllImportSearchPath.System32, out _libHandle)) @@ -53,6 +53,13 @@ public UnmanagedDisposable() _handle = _libHandle; // i don't know of any native methods on unix } } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + if (NativeLibrary.TryLoad("libSystem.B.dylib", GetType().Assembly, DllImportSearchPath.SafeDirectories, out _libHandle)) + { + _handle = _libHandle; // i don't know of any native methods on unix + } + } #else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { @@ -74,6 +81,12 @@ public UnmanagedDisposable() _libHandle = _nativeLibrary.Handle; _handle = _libHandle; // i don't know of any native methods on unix } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + _nativeLibrary = new NativeLibrary("libSystem.B.dylib"); + _libHandle = _nativeLibrary.Handle; + _handle = _libHandle; // i don't know of any native methods on unix + } #endif } @@ -89,7 +102,7 @@ protected override void OnDisposeManagedResources() protected override void OnDisposeUnmanagedResources() { -#if NET8_0_OR_GREATER +#if NET9_0_OR_GREATER if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { if (_handle != IntPtr.Zero) @@ -106,6 +119,10 @@ protected override void OnDisposeUnmanagedResources() { NativeLibrary.Free(_libHandle); } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + NativeLibrary.Free(_libHandle); + } #else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { @@ -121,6 +138,10 @@ protected override void OnDisposeUnmanagedResources() { _nativeLibrary.Dispose(); } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + _nativeLibrary.Dispose(); + } #endif } } diff --git a/test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs b/test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs index 2481f1b..723b971 100644 --- a/test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs +++ b/test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs @@ -11,7 +11,7 @@ public DisposableTest(ITestOutputHelper output) : base(output) { } -#if NET8_0_OR_GREATER +#if NET9_0_OR_GREATER [Fact] public async Task AsyncDisposable_VerifyThatAssetIsBeingDisposed() {