Skip to content

Revert WebSocket transport for browser-wasm dotnettestcli#10149

Merged
Evangelink merged 5 commits into
mainfrom
dev/amauryleve/revert-websocket-transport
Jul 23, 2026
Merged

Revert WebSocket transport for browser-wasm dotnettestcli#10149
Evangelink merged 5 commits into
mainfrom
dev/amauryleve/revert-websocket-transport

Conversation

@Evangelink

@Evangelink Evangelink commented Jul 22, 2026

Copy link
Copy Markdown
Member

Summary

Reverts #10118 (4ff238798c48501c902a0ae7f3b8458854f522de) to restore the pre-WebSocket dotnettestcli behavior while preserving unrelated commits that landed afterward.

The HTTP transport alternative remains independently reviewed in #10143 and can replace this implementation separately. This PR intentionally contains only the WebSocket revert and does not include the HTTP implementation.

Validation

  • .\build.cmd -test -projects "test\UnitTests\Microsoft.Testing.Platform.UnitTests\Microsoft.Testing.Platform.UnitTests.csproj" /bl:artifacts\log\revert-websocket-pipeline-platform-unit.binlog
  • .\build.cmd -test -projects "test\UnitTests\Microsoft.Testing.Platform.DotnetTestProtocolContract.UnitTests\Microsoft.Testing.Platform.DotnetTestProtocolContract.UnitTests.csproj" /bl:artifacts\log\revert-websocket-pipeline-protocol-contract.binlog
  • .\build.cmd /bl:artifacts\log\revert-websocket-pipeline-full-build.binlog
  • git diff --check origin/main...HEAD

This reverts commit 4ff2387 (#10118).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3ca80559-db99-40e7-84be-be4e41ee3574
Copilot AI review requested due to automatic review settings July 22, 2026 21:47
@Evangelink Evangelink added the state/needs-review Awaiting review from the team. label Jul 22, 2026
@Evangelink
Evangelink enabled auto-merge (squash) July 22, 2026 21:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Restores the named-pipe-only dotnettestcli implementation by cleanly reverting #10118 while leaving the HTTP replacement to #10143.

Changes:

  • Removes WebSocket transports, CLI options, authentication redaction, and browser-wasm transport tests.
  • Restores named-pipe framing, protocol version 1.4.0, documentation, resources, and API baselines.
  • Updates affected unit and acceptance expectations.
Show a summary per file
File Description
docs/mstest-runner-protocol/004-protocol-dotnet-test-pipe.md Restores named-pipe-only documentation.
src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt Reverts framing API entries.
src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt Reverts framing API entries.
src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt Reverts framing API entries.
src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt Reverts framing API entries.
src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs Restores original command-line logging.
src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineArgumentsRedactor.cs Removes WebSocket secret redaction.
src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineOptionsValidator.cs Removes redaction integration.
src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs Restores original parse-result handling.
src/Platform/Microsoft.Testing.Platform/CommandLine/Parser.cs Restores original constructor use.
src/Platform/Microsoft.Testing.Platform/CommandLine/PlatformCommandLineProvider.cs Removes WebSocket CLI options and validation.
src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeConnectionBase.cs Restores PipeStream framing APIs.
src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt Removes reverted internal APIs.
src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt Removes browser transport APIs.
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs Removes WebSocket resource accessors.
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx Removes WebSocket messages.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf Synchronizes Czech localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf Synchronizes German localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf Synchronizes Spanish localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf Synchronizes French localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf Synchronizes Italian localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf Synchronizes Japanese localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf Synchronizes Korean localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf Synchronizes Polish localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf Synchronizes Portuguese localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf Synchronizes Russian localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf Synchronizes Turkish localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf Synchronizes Simplified Chinese localization.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf Synchronizes Traditional Chinese localization.
src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/DotnetTestConnection.cs Restores named-pipe connection handling.
src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/DotnetTestHelper.cs Removes transport-selection logic.
src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/IPC/Constants.cs Restores protocol 1.4.0 constants.
src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/IPC/DotnetTestDataConsumer.cs Restores browser unsupported annotation.
src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/Transport/BrowserWebSocketDuplexStream.cs Removes browser WebSocket stream.
src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/Transport/ClientWebSocketDuplexStream.cs Removes desktop WebSocket stream.
src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/Transport/DotnetTestWebSocketClient.cs Removes WebSocket protocol client.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/BrowserWasmExecutionTests.cs Removes WebSocket acceptance coverage.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/DotnetTestPipe/DotnetTestPipeBaselineTests.cs Restores protocol 1.4 baseline.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/DotnetTestPipe/DotnetTestPipeProtocol.cs Removes transport property ID.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.cs Removes WebSocket help expectations.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoTests.cs Removes WebSocket help expectations.
test/UnitTests/Microsoft.Testing.Platform.DotnetTestProtocolContract.UnitTests/DotnetTestProtocolContractTests.cs Restores the prior protocol contract.
test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineArgumentsRedactorTests.cs Removes redactor tests.
test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineHandlerTests.cs Removes WebSocket validation tests.
test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/PlatformCommandLineProviderTests.cs Restores pipe-only option tests.
test/UnitTests/Microsoft.Testing.Platform.UnitTests/IPC/DotnetTestWebSocketClientTests.cs Removes WebSocket client tests.
test/UnitTests/Microsoft.Testing.Platform.UnitTests/IPC/ProtocolTests.cs Restores protocol 1.4 expectation.
test/Utilities/Microsoft.Testing.TestInfrastructure/WasmRuntime.cs Removes Node WebSocket flag support.

Review details

  • Files reviewed: 48/48 changed files
  • Comments generated: 0
  • Review effort level: Medium

Comment thread src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/DotnetTestConnection.cs Dismissed
Comment thread src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/DotnetTestConnection.cs Dismissed
@github-actions

This comment has been minimized.

Evangelink and others added 3 commits July 23, 2026 09:56
This reverts commit 4ff2387 (#10118).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3ca80559-db99-40e7-84be-be4e41ee3574
Remove the post-#10118 Transport property assertions while preserving the coverage-era protocol stability test.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3ca80559-db99-40e7-84be-be4e41ee3574
Reconnect the rebased conflict resolution to the existing PR head without changing the resolved tree.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3ca80559-db99-40e7-84be-be4e41ee3574
@github-actions

This comment has been minimized.

Refresh the PR merge base after unrelated main changes and queue a clean validation build.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3ca80559-db99-40e7-84be-be4e41ee3574
@Evangelink
Evangelink force-pushed the dev/amauryleve/revert-websocket-transport branch from 08aa9de to b23b2b0 Compare July 23, 2026 08:38
Copilot AI review requested due to automatic review settings July 23, 2026 08:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review details

  • Files reviewed: 48/48 changed files
  • Comments generated: 0 new
  • Review effort level: Medium

@github-actions

Copy link
Copy Markdown
Contributor

🧪 Test quality grade — PR #10149

This PR removes the WebSocket transport layer from the dotnet-test pipe protocol (reverting to named-pipe only). The test changes are almost exclusively deletions of now-obsolete tests and small assertion updates to reflect the reduced protocol version list and property set. Eight modified tests remain to grade; all are well-structured with meaningful assertions.

GradeTestNotes
B (80-89) mod DotnetTestProtocolContractTests.
ProtocolVersion_
IsStable
Single equality assertion on the stable protocol string; clean but could add a comment explaining that a mismatch is a wire-protocol break.
B (80-89) mod ProtocolTests.
ProtocolVersion_
IsStable
Single equality assertion on the stable protocol string; mirrors the contract test above — duplication is intentional per the comment, each is individually solid.
A (90-100) mod DotnetTestPipeBaselineTests.
DotnetTestPipe_
TestAppAdvertisesAllSupportedVersions_
NegotiatesDownToV100WithOldSdk
Multiple well-messaged assertions covering handshake presence, version advertisement, negotiation, and attempt number; appropriate integration-test length.
A (90-100) mod DotnetTestProtocolContractTests.
HandshakeMessagePropertyNames_
AreStable
Comprehensive positional equality checks on every stable wire-protocol property; no issues found.
A (90-100) mod HelpInfoAllExtensionsTests.
Info_
WithAllExtensionsRegistered_
OutputFullInfoContent
Exit-code assertion plus full-output wildcard snapshot; appropriate integration-test length; no issues found.
A (90-100) mod HelpInfoTests.
Info_
WhenNoExtensionRegistered_
OutputDefaultInfoContent
Exit-code assertion plus regex snapshot of --info output; appropriate integration-test scope; no issues found.
A (90-100) mod PlatformCommandLineProviderTests.
IsInvalid_
When_Server_
DotnetTestCli_
Without_
DotnetTestPipe
DataRow-parameterized; IsFalse + exact error-message equality; clear AAA; no issues found.
A (90-100) mod ProtocolTests.
HandshakeMessagePropertyNames_
ValuesAreStable
Comprehensive positional equality checks on every stable wire-protocol property; no issues found.

This advisory comment was generated automatically. Grades are heuristic
and informational — they do not block merging. Re-run with
/grade-tests.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

🤖 Automated content by GitHub Copilot. Generated by the Grade Tests on PR (on open / sync) workflow. · 117.6 AIC · ⌖ 7.54 AIC · ⊞ 8.9K · [◷]( · )

@Evangelink
Evangelink merged commit a98bbd7 into main Jul 23, 2026
32 checks passed
@Evangelink
Evangelink deleted the dev/amauryleve/revert-websocket-transport branch July 23, 2026 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state/needs-review Awaiting review from the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants