Fix .NET in-process E2E transport coverage#1986
Conversation
Make the in-process E2E matrix use the FFI runtime, restore the native host environment between tests, and align same-client session resume with the other SDKs. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: c71188a1-1445-46aa-9faf-3b73cf6a6dd9
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Updates .NET E2E coverage to exercise the FFI transport and supports same-client session resumption.
Changes:
- Selects in-process or TCP transport according to the test matrix.
- Restores host environment state between in-process tests.
- Adds same-client resume replacement behavior and related coverage.
Show a summary per file
| File | Description |
|---|---|
dotnet/src/Client.cs |
Replaces tracked wrappers during resume. |
dotnet/test/Harness/E2ETestFixture.cs |
Selects matrix-appropriate transport. |
dotnet/test/Harness/E2ETestContext.cs |
Restores in-process environment state. |
dotnet/test/Harness/E2ETestBase.cs |
Prepares tests and chooses resume client. |
dotnet/test/E2E/SessionE2ETests.cs |
Covers same-client resume replacement. |
dotnet/test/E2E/RpcWorkspaceCheckpointsE2ETests.cs |
Uses a native-compatible checkpoint value. |
dotnet/test/Unit/E2ETestFixtureTests.cs |
Tests fixture transport selection. |
dotnet/test/Unit/ClientSessionLifetimeTests.cs |
Tests replacement and failure lifetimes. |
Review details
- Files reviewed: 8/8 changed files
- Comments generated: 1
- Review effort level: Medium
Capture the wrapper displaced before session.resume and restore it only if the failed replacement is still registered. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: c71188a1-1445-46aa-9faf-3b73cf6a6dd9
✅ Cross-SDK Consistency ReviewThis PR touches only the .NET SDK (
No other SDKs need updates. The PR brings .NET into alignment with the established cross-SDK contract.
|
|
@SteveSandersonMS noticed this while working on other stuff, take a look - we weren't doing actual FFI in the .NET SDK, plus the .NET SDK was unique in not allowing the same session to be resumed with a new session object (which obstructed fixing the former). |
The .NET E2E fixture explicitly selected TCP even in the in-process matrix, so those tests never exercised the FFI transport and hid FFI-specific behavior.
This change:
RuntimeConnection.ForInProcess()for the in-process matrix while preserving TCP coverage in the other matrixu32domainThe complete .NET in-process suite passes through FFI with 672 tests passed and 3 existing skips. Targeted TCP resume coverage and all .NET target-framework builds also pass.