Skip to content

Refactor Condition evaluation#15357

Merged
nohwnd merged 1 commit intomainfrom
dev/ygerges/refactor
Jan 13, 2026
Merged

Refactor Condition evaluation#15357
nohwnd merged 1 commit intomainfrom
dev/ygerges/refactor

Conversation

@Youssef1313
Copy link
Copy Markdown
Member

This is refactoring-only change. Previously, Equals/NotEquals (and Contains/DoesNotContain) logic was duplicated, but just negated. Now the logic is implemented once, and when the negated operator is needed, we call the positive implementation and negate the result.

@nohwnd nohwnd merged commit c890b91 into main Jan 13, 2026
7 checks passed
@nohwnd nohwnd deleted the dev/ygerges/refactor branch January 13, 2026 15:58
nohwnd added a commit to nohwnd/vstest that referenced this pull request Mar 25, 2026
Add 32 new test files covering 30 areas of bug fixes that were merged
without corresponding tests. Each test documents which PR/issue it
prevents from regressing.

Areas covered:
- TestProperty.Equals ID-based equality (microsoft#15370)
- TraitCollection.GetTraits with EqualityComparer (microsoft#15370, microsoft#15249)
- CommandLineUtilities backslash-quote parsing (microsoft#15304)
- ManagedNameParser F# method name unescaping (microsoft#4972)
- ManagedNameParser edge cases (microsoft#15259, microsoft#15255)
- Condition evaluation operations refactor (microsoft#15357)
- Condition parsing and tokenization (microsoft#15357)
- TrackableEvent subscribe/notify/wait (microsoft#4553)
- PathConverter path replacement for UWP (microsoft#3367)
- NullPathConverter singleton pattern (microsoft#3367)
- PathConverter attachment handling (microsoft#3367)
- PathConverter DiscoveryCriteria/TestRunCriteria (microsoft#3367)
- DiscoveryDataAggregator source status tracking (microsoft#3381)
- DiscoveryCompleteEventArgs status properties (microsoft#3381)
- DiscoveryCriteria constructor behavior (microsoft#3381)
- JsonDataSerializer discovery status (microsoft#3381)
- JsonDataSerializer payload serialization (microsoft#3381)
- LengthPrefixCommunicationChannel TrackableEvent (microsoft#4553)
- TrxLogger WarnOnFileOverwrite parameter (microsoft#5141)
- VSTestTask2 message parsing and error codes (microsoft#5115, microsoft#5113)
- VSTestTask2 ANSI escape handling (microsoft#5084)
- VSTestTask2 duration formatting (microsoft#4894)
- TestHostManagerCallbacks error as informational (microsoft#5192)
- ConsoleLogger MinimalTestResult timing fix (microsoft#5143)
- TestResult timing properties (microsoft#5143, microsoft#4894)
- TestCase serialization with traits (microsoft#15370)
- TestObject property storage (microsoft#15370, microsoft#15249)
- Condition ValidForProperties (microsoft#15357)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
nohwnd added a commit that referenced this pull request Mar 30, 2026
* Deprecate EnableShutdownAfterTestRun which is no-op

* Add regression tests for untested bug fixes

Add 32 new test files covering 30 areas of bug fixes that were merged
without corresponding tests. Each test documents which PR/issue it
prevents from regressing.

Areas covered:
- TestProperty.Equals ID-based equality (#15370)
- TraitCollection.GetTraits with EqualityComparer (#15370, #15249)
- CommandLineUtilities backslash-quote parsing (#15304)
- ManagedNameParser F# method name unescaping (#4972)
- ManagedNameParser edge cases (#15259, #15255)
- Condition evaluation operations refactor (#15357)
- Condition parsing and tokenization (#15357)
- TrackableEvent subscribe/notify/wait (#4553)
- PathConverter path replacement for UWP (#3367)
- NullPathConverter singleton pattern (#3367)
- PathConverter attachment handling (#3367)
- PathConverter DiscoveryCriteria/TestRunCriteria (#3367)
- DiscoveryDataAggregator source status tracking (#3381)
- DiscoveryCompleteEventArgs status properties (#3381)
- DiscoveryCriteria constructor behavior (#3381)
- JsonDataSerializer discovery status (#3381)
- JsonDataSerializer payload serialization (#3381)
- LengthPrefixCommunicationChannel TrackableEvent (#4553)
- TrxLogger WarnOnFileOverwrite parameter (#5141)
- VSTestTask2 message parsing and error codes (#5115, #5113)
- VSTestTask2 ANSI escape handling (#5084)
- VSTestTask2 duration formatting (#4894)
- TestHostManagerCallbacks error as informational (#5192)
- ConsoleLogger MinimalTestResult timing fix (#5143)
- TestResult timing properties (#5143, #4894)
- TestCase serialization with traits (#15370)
- TestObject property storage (#15370, #15249)
- Condition ValidForProperties (#15357)

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

---------

Co-authored-by: Youssef1313 <youssefvictor00@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Apr 7, 2026
github-actions bot added a commit to secana/PeNet that referenced this pull request Apr 9, 2026
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.3.0 to 18.4.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._

## 18.4.0

## What's Changed
* Add LoongArch64 support by @​stdmnpkg in
microsoft/vstest#15359

* Refactor Condition evaluation by @​Youssef1313 in
microsoft/vstest#15357
* Adding info on extensions points part 1 by @​nohwnd in
microsoft/vstest#15360
* Add option to ask for uploading code QL before the standard window
ends by @​nohwnd in microsoft/vstest#15373
* Update runtime versions by @​nohwnd in
microsoft/vstest#15372
* Fix .NET 10 regression for traits by @​Youssef1313 in
microsoft/vstest#15370
* Update target frameworks to net10.0 and net11.0 by
@​dotnet-maestro[bot] in microsoft/vstest#15349
* Fix names in pipeline matrix so we don't have to align them by
@​nohwnd in microsoft/vstest#15365
* Update SECURITY.md by @​Youssef1313 in
microsoft/vstest#15342

## New Contributors
* @​stdmnpkg made their first contribution in
microsoft/vstest#15359

**Full Changelog**:
microsoft/vstest@v18.3.0...v18.4.0

Commits viewable in [compare
view](microsoft/vstest@v18.3.0...v18.4.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Microsoft.NET.Test.Sdk&package-manager=nuget&previous-version=18.3.0&new-version=18.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
This was referenced Apr 9, 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.

2 participants