diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/Attributes/ActiveIssueAttribute.cs b/src/Microsoft.DotNet.XUnitExtensions/src/Attributes/ActiveIssueAttribute.cs index 97c9e4b521c..4c4db88d29a 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/Attributes/ActiveIssueAttribute.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/Attributes/ActiveIssueAttribute.cs @@ -18,7 +18,9 @@ public ActiveIssueAttribute(int issueNumber, TestPlatforms platforms) { } public ActiveIssueAttribute(string issue, TestPlatforms platforms) { } public ActiveIssueAttribute(int issueNumber, TargetFrameworkMonikers framework) { } public ActiveIssueAttribute(string issue, TargetFrameworkMonikers framework) { } - public ActiveIssueAttribute(int issueNumber, TestPlatforms platforms = TestPlatforms.Any, TargetFrameworkMonikers framework = (TargetFrameworkMonikers)0) { } - public ActiveIssueAttribute(string issue, TestPlatforms platforms = TestPlatforms.Any, TargetFrameworkMonikers framework = (TargetFrameworkMonikers)0) { } + public ActiveIssueAttribute(int issueNumber, TestRuntimes runtimes) { } + public ActiveIssueAttribute(string issue, TestRuntimes runtimes) { } + public ActiveIssueAttribute(int issueNumber, TestPlatforms platforms = TestPlatforms.Any, TargetFrameworkMonikers framework = (TargetFrameworkMonikers)0, TestRuntimes runtimes = TestRuntimes.Any) { } + public ActiveIssueAttribute(string issue, TestPlatforms platforms = TestPlatforms.Any, TargetFrameworkMonikers framework = (TargetFrameworkMonikers)0, TestRuntimes runtimes = TestRuntimes.Any) { } } } diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/ConditionalDiscovererException.cs b/src/Microsoft.DotNet.XUnitExtensions/src/ConditionalDiscovererException.cs index 58cfd36eba3..99a1670b9ac 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/ConditionalDiscovererException.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/ConditionalDiscovererException.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; namespace Microsoft.DotNet.XUnitExtensions { diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/DiscovererHelpers.cs b/src/Microsoft.DotNet.XUnitExtensions/src/DiscovererHelpers.cs index f5b79398c5a..239f223bf7c 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/DiscovererHelpers.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/DiscovererHelpers.cs @@ -11,5 +11,10 @@ internal static bool TestPlatformApplies(TestPlatforms platforms) => (platforms.HasFlag(TestPlatforms.NetBSD) && RuntimeInformation.IsOSPlatform(OSPlatform.Create("NETBSD"))) || (platforms.HasFlag(TestPlatforms.OSX) && RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) || (platforms.HasFlag(TestPlatforms.Windows) && RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); + + internal static bool TestRuntimeApplies(TestRuntimes runtimes) => + (runtimes.HasFlag(TestRuntimes.Mono) && SkipOnMonoDiscoverer.IsMonoRuntime) || + (runtimes.HasFlag(TestRuntimes.CoreCLR) && !SkipOnMonoDiscoverer.IsMonoRuntime); // assume CoreCLR if it's not Mono + } } diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/ActiveIssueDiscoverer.cs b/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/ActiveIssueDiscoverer.cs index 86012596af7..001ee77ceeb 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/ActiveIssueDiscoverer.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/ActiveIssueDiscoverer.cs @@ -31,6 +31,7 @@ public IEnumerable> GetTraits(IAttributeInfo traitA string issue = ctorArgs.First().ToString(); TestPlatforms platforms = TestPlatforms.Any; TargetFrameworkMonikers frameworks = (TargetFrameworkMonikers)0; + TestRuntimes runtimes = TestRuntimes.Any; foreach (object arg in ctorArgs.Skip(1)) // First argument is the issue number. { @@ -42,22 +43,20 @@ public IEnumerable> GetTraits(IAttributeInfo traitA { frameworks = (TargetFrameworkMonikers)arg; } + else if (arg is TestRuntimes) + { + runtimes = (TestRuntimes)arg; + } } - if (DiscovererHelpers.TestPlatformApplies(platforms)) + if (DiscovererHelpers.TestPlatformApplies(platforms) && DiscovererHelpers.TestRuntimeApplies(runtimes)) { if (frameworks.HasFlag(TargetFrameworkMonikers.Netcoreapp)) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonNetcoreappTest); if (frameworks.HasFlag(TargetFrameworkMonikers.NetFramework)) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonNetfxTest); - if (frameworks.HasFlag(TargetFrameworkMonikers.Uap)) - yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonUapTest); - if (frameworks.HasFlag(TargetFrameworkMonikers.Mono)) - yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonMonoTest); if (frameworks == (TargetFrameworkMonikers)0) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.Failing); - - yield return new KeyValuePair(XunitConstants.ActiveIssue, issue); } } } diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/SkipOnTargetFrameworkDiscoverer.cs b/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/SkipOnTargetFrameworkDiscoverer.cs index 53431640da2..613dda85a59 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/SkipOnTargetFrameworkDiscoverer.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/SkipOnTargetFrameworkDiscoverer.cs @@ -28,10 +28,6 @@ public IEnumerable> GetTraits(IAttributeInfo traitA yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonNetcoreappTest); if (frameworks.HasFlag(TargetFrameworkMonikers.NetFramework)) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonNetfxTest); - if (frameworks.HasFlag(TargetFrameworkMonikers.Uap)) - yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonUapTest); - if (frameworks.HasFlag(TargetFrameworkMonikers.Mono)) - yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonMonoTest); } } } diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/TestCategoryDiscoverer.cs b/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/TestCategoryDiscoverer.cs index 298edf4a3a0..4f30e9c42d1 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/TestCategoryDiscoverer.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/Discoverers/TestCategoryDiscoverer.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -using System; using System.Collections.Generic; using System.Linq; using Xunit.Abstractions; diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/Extensions/TheoryExtensions.cs b/src/Microsoft.DotNet.XUnitExtensions/src/Extensions/TheoryExtensions.cs index 1fd2f44a122..110af4dedbf 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/Extensions/TheoryExtensions.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/Extensions/TheoryExtensions.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -using System; using System.Collections; using System.Collections.Generic; using System.Linq; diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/TargetFrameworkMonikers.cs b/src/Microsoft.DotNet.XUnitExtensions/src/TargetFrameworkMonikers.cs index 182768f7413..00acf44aa44 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/TargetFrameworkMonikers.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/TargetFrameworkMonikers.cs @@ -10,8 +10,6 @@ namespace Xunit public enum TargetFrameworkMonikers { Netcoreapp = 0x1, - NetFramework = 0x2, - Uap = 0x4, - Mono = 0x8 + NetFramework = 0x2 } } diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/TestRuntimes.cs b/src/Microsoft.DotNet.XUnitExtensions/src/TestRuntimes.cs new file mode 100644 index 00000000000..dedad543392 --- /dev/null +++ b/src/Microsoft.DotNet.XUnitExtensions/src/TestRuntimes.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; + +namespace Xunit +{ + [Flags] + public enum TestRuntimes + { + CoreCLR = 1, + Mono = 2, + Any = ~0 + } +} diff --git a/src/Microsoft.DotNet.XUnitExtensions/src/XunitConstants.cs b/src/Microsoft.DotNet.XUnitExtensions/src/XunitConstants.cs index 470bff72014..b51e3a6c0b0 100644 --- a/src/Microsoft.DotNet.XUnitExtensions/src/XunitConstants.cs +++ b/src/Microsoft.DotNet.XUnitExtensions/src/XunitConstants.cs @@ -16,11 +16,8 @@ public struct XunitConstants internal static string NonNetcoreappTest = "nonnetcoreapptests"; internal static string NonNetfxTest = "nonnetfxtests"; - internal static string NonUapTest = "nonuaptests"; - internal static string NonMonoTest = "nonmonotests"; internal const string Failing = "failing"; - internal const string ActiveIssue = "activeissue"; internal const string OuterLoop = "outerloop"; public const string Category = "category";