pull/995/head
Next Turn 2023-01-29 15:45:08 +08:00 committed by GitHub
parent 73b2539440
commit f8d2ae567c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 11 deletions

View File

@ -27,7 +27,7 @@ namespace WinSW.Tests
Assert.Equal(ServiceControllerStatus.Stopped, controller.Status);
Assert.Equal(ServiceType.Win32OwnProcess, controller.ServiceType);
#if NETFRAMEWORK
#if NET
InterProcessCodeCoverageSession session = null;
try
{

View File

@ -0,0 +1 @@
Windows.Win32.System.Diagnostics.Debug.DebugCreate

View File

@ -6,6 +6,7 @@ using System.Runtime.InteropServices;
using System.Threading;
using Microsoft.Diagnostics.Runtime;
using Microsoft.Diagnostics.Runtime.Interop;
using Windows.Win32;
using WinSW.Native;
using Xunit;
@ -36,20 +37,19 @@ namespace WinSW.Tests.Util
Assert.True(processId >= 0);
var guid = new Guid("27fe5639-8407-4f47-8364-ee118fb08ac8");
int hr = Native.DebugCreate(guid, out object unknown);
AssertEx.Succeeded(hr);
PInvoke.DebugCreate(guid, out object unknown).ThrowOnFailure();
var client = (IDebugClient)unknown;
this.control = (IDebugControl)unknown;
hr = client.AttachProcess(0, (uint)processId, DEBUG_ATTACH.DEFAULT);
int hr = client.AttachProcess(0, (uint)processId, DEBUG_ATTACH.DEFAULT);
AssertEx.Succeeded(hr);
hr = client.SetEventCallbacks(this);
AssertEx.Succeeded(hr);
var pointer = Marshal.GetIUnknownForObject(client);
Assert.Equal(1, Marshal.Release(pointer));
Assert.Equal(3, Marshal.Release(pointer));
target = DataTarget.CreateFromDbgEng(pointer);
@ -181,11 +181,5 @@ namespace WinSW.Tests.Util
{
throw new NotImplementedException();
}
private static class Native
{
[DllImport("dbgeng.dll")]
internal static extern int DebugCreate(in Guid InterfaceId, [MarshalAs(UnmanagedType.IUnknown)] out object Interface);
}
}
}

View File

@ -13,6 +13,10 @@
<PackageReference Include="Microsoft.Diagnostics.Runtime" Version="2.0.226801" />
<PackageReference Include="Microsoft.Diagnostics.Runtime.Utilities" Version="2.0.0-rc.20303.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.2.188-beta">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>