microsoft / microsoft/testfx

Pipe protocol: The design of InstanceId

Open
#6,337 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/server-mode-pipe
Dominant language
C#
Stars
1k
Forks
312
Avg merge
7h 46m
Merged PRs (30d)
465

Description

Today, we recognize retries by receiving a different "instance id". A new "instance id" essentially means "this is a different test host".

https://github.com/microsoft/testfx/blob/a2f4caf24047ec2e050c99174edc755745b58a21/src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/DotnetTestConnection.cs#L29

This feels like an incomplete design to me. What if we want to support sharding. Are we going to have an env variable that takes precedence over Guid.NewGuid().ToString("N")?

Long-term, I think it's more wise to encode the information about "attempt number" inside the protocol. So, each test result is received with an "attempt number" in case of retries. But that might not be easy to change "now", probably.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/DotnetTestConnection.cs at line 29 and trace how instance IDs identify retries. Review the pipe protocol's handling of retries and sharding, then clarify and document the intended attempt identity model. Done requires an agreed protocol design and corresponding implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.