Skip to content

Sync latest vendored TestFx protocol changes - #55338

Merged
Evangelink merged 1 commit into
mainfrom
dev/amauryleve/update-testfx-version
Jul 17, 2026
Merged

Sync latest vendored TestFx protocol changes#55338
Evangelink merged 1 commit into
mainfrom
dev/amauryleve/update-testfx-version

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

  • synchronize tracked TestFx files and vendored baselines to microsoft/testfx@dba319b212caae2a325800de8a5570ebe787b06d
  • consume optional retry AttemptNumber handshake metadata so multiple test-host instances can share one attempt, while retaining instance-based inference for older hosts
  • synchronize file-artifact Kind field ID, model, and serializer support
  • make retry state updates thread-safe for concurrent test-host shards

Fixes #55255

Compatibility

Both protocol additions are optional and additive. Older peers continue to omit them, and unknown fields remain skippable.

Validation

  • built src\Cli\dotnet\dotnet.csproj
  • built test\dotnet.Tests\dotnet.Tests.csproj
  • 43 focused dotnet.Tests passed
  • vendored manifest validation and dry-run drift check report 30 entries, 38 sources, and 0 drift

Consume explicit retry attempt metadata, preserve legacy inference, and synchronize artifact kind support and tracked TestFx baselines.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4a5b9a27-166c-42ad-8c0a-d2f7bef9be5a
Copilot AI review requested due to automatic review settings July 17, 2026 13:21
@Evangelink
Evangelink requested a review from a team as a code owner July 17, 2026 13:21
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
2 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

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

Synchronizes the dotnet test <-> Microsoft.Testing.Platform (TestFx) vendored protocol surface in dotnet/sdk to match upstream changes, including an optional retry attempt number handshake property, an added file-artifact Kind field, and thread-safe retry/progress state updates for concurrent/sharded hosts.

Changes:

  • Consume optional AttemptNumber handshake metadata to correctly attribute multiple host instances (shards) to the same retry attempt, while preserving legacy instance-based inference when absent.
  • Extend the file-artifact IPC model/field IDs/serializer to support the optional Kind field and log it.
  • Make retry/progress state updates thread-safe (assembly run map + per-assembly progress state) and add focused regression tests.
Show a summary per file
File Description
test/dotnet.Tests/CommandTests/Test/TestProgressStateTests.cs Adds regression tests for explicit attempt-number semantics and concurrency across shards.
test/dotnet.Tests/CommandTests/Test/TestApplicationHandlerTests.cs Adds a test ensuring an explicit attempt number is surfaced in terminal output; updates test handshake builder to optionally include it.
test/dotnet.Tests/CommandTests/Test/FileArtifactMessagesSerializerTests.cs New test validating FileArtifactMessage.Kind round-trips through the serializer.
src/Cli/dotnet/Commands/Test/MTP/TestApplicationHandler.cs Parses optional AttemptNumber from handshake and forwards it into terminal reporting; logs artifact kind.
src/Cli/dotnet/Commands/Test/MTP/Terminal/TestProgressState.cs Introduces locking and attempt-number mapping to make retry/result accounting thread-safe and shard-aware.
src/Cli/dotnet/Commands/Test/MTP/Terminal/TerminalTestReporter.cs Threads attempt number through AssemblyRunStarted, ensures safe assembly-run creation under concurrency, and uses per-instance attempt numbers for output.
src/Cli/dotnet/Commands/Test/MTP/Terminal/SimpleTerminalBase.cs Minor comment update while syncing vendored content.
src/Cli/dotnet/Commands/Test/MTP/IPC/Serializers/FileArtifactMessagesSerializer.cs Adds read/write support for optional Kind field and updates field counting.
src/Cli/dotnet/Commands/Test/MTP/IPC/ObjectFieldIds.cs Adds the FileArtifactMessageFieldsId.Kind field id (wire contract alignment).
src/Cli/dotnet/Commands/Test/MTP/IPC/Models/FileArtifactMessages.cs Extends FileArtifactMessage model with optional Kind.
src/Cli/dotnet/Commands/Test/CliConstants.cs Adds optional handshake property id AttemptNumber (vendored constants alignment).
eng/vendored-files.json Updates baseline SHAs to the referenced upstream microsoft/testfx commit.

Copilot's findings

  • Files reviewed: 12/12 changed files
  • Comments generated: 0

@Evangelink
Evangelink merged commit e71fa90 into main Jul 17, 2026
32 checks passed
@Evangelink
Evangelink deleted the dev/amauryleve/update-testfx-version branch July 17, 2026 15:07
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 11.0-preview7 milestone Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[vendored-sync] dotnet-test-wire-contract-fieldids: drift detected (#0)

3 participants