Skip to content

Sync vendored dotnet test wire contract from testfx (Expected/Actual field ids) - #55247

Merged
Evangelink merged 1 commit into
dotnet:mainfrom
Evangelink:dev/amauryleve/bump-mstest-mtp
Jul 13, 2026
Merged

Sync vendored dotnet test wire contract from testfx (Expected/Actual field ids)#55247
Evangelink merged 1 commit into
dotnet:mainfrom
Evangelink:dev/amauryleve/bump-mstest-mtp

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Reconciles the vendored dotnet test ↔ Microsoft.Testing.Platform wire contract with microsoft/testfx main.

The scheduled vendored-files drift check reported exactly one drifted source: src/Cli/dotnet/Commands/Test/MTP/IPC/ObjectFieldIds.cs (tracked against testfx's ServerMode/DotnetTest/IPC/ObjectFieldIds.cs). Upstream added two optional assertion-diff fields on FailedTestResultMessageFieldsId:

public const ushort Expected = 10;
public const ushort Actual = 11;

These carry the structured expected/actual values captured by assertion libraries so the terminal reporter can render an expected-vs-actual diff for multi-assembly runs. This PR ports those two field-id reservations to keep the named-pipe contract byte-aligned with testfx, and bumps the entry's baseline_ref_sha/baseline_blob_sha in eng/vendored-files.json so the drift workflow goes quiet.

The additions are appended after existing ids, and the serializer skips unrecognized field ids, so this is fully backwards compatible.

Deliberately not ported

  • The upstream local-adaptation differences we always diverge on (file header, namespace, [Embedded] attributes).
  • Upstream serializer ids 13 (WaitForServerControlRequest) and 14 (ServerControlMessage) — these belong to the reverse server-control pipe (protocol 1.4.0) and remain intentionally out of scope, as already noted in the local file.

Verification

python .github/scripts/check_vendored_files.py validateManifest OK: 30 entries, 38 sources.
python .github/scripts/check_vendored_files.py check --dry-runSummary: 0 drifted, 0 errors.

Note on the MSTest/MTP version bump

The other half of the original request — bumping MSTest/MTP to "latest 3.4/2.4" — was not actioned here because it could not be resolved unambiguously: MSTest 3.4.3 (latest 3.4.x) is already present on the release/9.0.x branches, no Microsoft.Testing.Platform 2.4.x is published (latest public is 2.3.1), and these versions normally flow into the SDK automatically via darc/Maestro from the VMR rather than via a hand-authored PR. Happy to follow up once the target branch/exact versions are confirmed.

…field ids)

Reconcile the vendored ObjectFieldIds.cs against microsoft/testfx main: testfx added the optional assertion-diff wire fields Expected (10) and Actual (11) on FailedTestResultMessageFieldsId. Port those field-id reservations to keep the 'dotnet test' <-> Microsoft.Testing.Platform named-pipe contract byte-aligned (new ids are appended, so older readers skip them - backwards compatible). Bump the baseline ref/blob SHAs for this entry in eng/vendored-files.json so the drift workflow is quiet.

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

Copilot-Session: 76511f0e-ff8f-47aa-b540-b133a63810b3
@Evangelink
Evangelink marked this pull request as ready for review July 13, 2026 12:46
@Evangelink
Evangelink requested a review from a team as a code owner July 13, 2026 12:46
Copilot AI review requested due to automatic review settings July 13, 2026 12:46
@Evangelink
Evangelink enabled auto-merge July 13, 2026 12:46

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

This PR syncs the vendored dotnet test ↔ Microsoft.Testing.Platform IPC wire-contract field IDs with the current microsoft/testfx main branch, ensuring the named-pipe protocol remains byte-aligned and compatible.

Changes:

  • Added two new optional field IDs (Expected, Actual) to FailedTestResultMessageFieldsId to reserve upstream protocol slots for structured assertion diffs.
  • Updated the corresponding eng/vendored-files.json baseline SHAs so the vendored-files drift check reflects the new upstream baseline.
Show a summary per file
File Description
src/Cli/dotnet/Commands/Test/MTP/IPC/ObjectFieldIds.cs Adds Expected/Actual field-id reservations (10/11) to keep the MTP IPC contract aligned with testfx.
eng/vendored-files.json Bumps vendored baseline SHAs for the tracked upstream ObjectFieldIds.cs.

Copilot's findings

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

@Evangelink
Evangelink merged commit 111c11d into dotnet:main Jul 13, 2026
31 checks passed
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 11.0-preview7 milestone Jul 14, 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.

3 participants