Open
Description
Summary
55 unit tests in the dotnet/maintenance-packages repo that try to use RemoteExecutor
are failing due to unsupported field marshaling when attempting to run them with Live Unit Testing.
Note that all the unit tests pass without any issues in all other contexts:
- When running them with regular Text Explorer.
- When executed via CLI using
dotnet test
. - When executed in the CI (rolling builds or PRs).
@dotnet/interop-contrib @dotnet/runtime-infrastructure
Repro steps
- Open the solution using the
build.cmd -vs MaintenancePackages.sln
command. - Test menu -> Live Unit Testing -> Start. If asked, choose a location for the
lut
folder. Wait for the tests to finish. - Go to the Live Unit Testing tab. Select any of the failing tests. The callstack will look something like this:
System.Buffers.ArrayPool.Tests.ArrayPoolUnitTests.RentBufferFiresRentedDiagnosticEvent
Message:
System.ArgumentException : Field marshaling is not supported by Invoke: CS$InstrumentationPayload1
Stack Trace:
RemoteExecutor.GetMethodInfo(Delegate d) line 596
RemoteExecutor.Invoke(Action method, RemoteInvokeOptions options) line 118
ArrayPoolTest.RemoteInvokeWithTrimming(Action method, Int32 timeout) line 48
ArrayPoolUnitTests.RentBufferFiresRentedDiagnosticEvent() line 403
The exception is being thrown in line 596:
arcade/src/Microsoft.DotNet.RemoteExecutor/src/RemoteExecutor.cs
Lines 578 to 596 in 162990f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Assignees
Labels
No labels