diff --git a/src/Microsoft.TestPlatform.Common/Filtering/FastFilter.cs b/src/Microsoft.TestPlatform.Common/Filtering/FastFilter.cs index af23503c37..b84fc5c29e 100644 --- a/src/Microsoft.TestPlatform.Common/Filtering/FastFilter.cs +++ b/src/Microsoft.TestPlatform.Common/Filtering/FastFilter.cs @@ -150,6 +150,11 @@ internal void AddOperator(Operator @operator) { operatorEncountered = true; fastFilterOperator = @operator; + if ((fastFilterOperation == Operation.NotEqual && fastFilterOperator == Operator.Or) + || (fastFilterOperation == Operation.Equal && fastFilterOperator == Operator.And)) + { + containsValidFilter = false; + } } } else diff --git a/test/Microsoft.TestPlatform.Common.UnitTests/Filtering/FastFilterTests.cs b/test/Microsoft.TestPlatform.Common.UnitTests/Filtering/FastFilterTests.cs index c107a04d98..c35e55af79 100644 --- a/test/Microsoft.TestPlatform.Common.UnitTests/Filtering/FastFilterTests.cs +++ b/test/Microsoft.TestPlatform.Common.UnitTests/Filtering/FastFilterTests.cs @@ -54,6 +54,7 @@ public void AndOperatorAndEqualsOperationShouldNotCreateFastFilter() var fastFilter = filterExpressionWrapper.fastFilter; Assert.IsTrue(fastFilter == null); + Assert.IsTrue(string.IsNullOrEmpty(filterExpressionWrapper.ParseError)); } [TestMethod] @@ -63,6 +64,7 @@ public void OrOperatorAndNotEqualsOperationShouldNotCreateFastFilter() var fastFilter = filterExpressionWrapper.fastFilter; Assert.IsTrue(fastFilter == null); + Assert.IsTrue(string.IsNullOrEmpty(filterExpressionWrapper.ParseError)); } [TestMethod]