diff --git a/src/xunit.netcore.extensions/Attributes/ActiveIssueAttribute.cs b/src/xunit.netcore.extensions/Attributes/ActiveIssueAttribute.cs index b8fbb77559..9753ab544a 100644 --- a/src/xunit.netcore.extensions/Attributes/ActiveIssueAttribute.cs +++ b/src/xunit.netcore.extensions/Attributes/ActiveIssueAttribute.cs @@ -14,7 +14,11 @@ namespace Xunit [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] public class ActiveIssueAttribute : Attribute, ITraitAttribute { - public ActiveIssueAttribute(int issueNumber, PlatformID platforms = PlatformID.Any) { } - public ActiveIssueAttribute(string issue, PlatformID platforms = PlatformID.Any) { } + public ActiveIssueAttribute(int issueNumber, TestPlatforms platforms = TestPlatforms.Any) { } + public ActiveIssueAttribute(string issue, TestPlatforms platforms = TestPlatforms.Any) { } + + // TODO #999: Remove PlatformID when all uses have transitioned to TestPlatforms. + public ActiveIssueAttribute(int issueNumber, PlatformID platforms) { } + public ActiveIssueAttribute(string issue, PlatformID platforms) { } } } diff --git a/src/xunit.netcore.extensions/Attributes/PlatformSpecificAttribute.cs b/src/xunit.netcore.extensions/Attributes/PlatformSpecificAttribute.cs index 4ca224b9f4..e1ff21c6bd 100644 --- a/src/xunit.netcore.extensions/Attributes/PlatformSpecificAttribute.cs +++ b/src/xunit.netcore.extensions/Attributes/PlatformSpecificAttribute.cs @@ -14,6 +14,9 @@ namespace Xunit [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false)] public class PlatformSpecificAttribute : Attribute, ITraitAttribute { + public PlatformSpecificAttribute(TestPlatforms platforms) { } + + // TODO #999: Remove PlatformID when all uses have transitioned to TestPlatforms. public PlatformSpecificAttribute(PlatformID platform) { } } } diff --git a/src/xunit.netcore.extensions/Discoverers/ActiveIssueDiscoverer.cs b/src/xunit.netcore.extensions/Discoverers/ActiveIssueDiscoverer.cs index bccb6cc11a..25ccba959e 100644 --- a/src/xunit.netcore.extensions/Discoverers/ActiveIssueDiscoverer.cs +++ b/src/xunit.netcore.extensions/Discoverers/ActiveIssueDiscoverer.cs @@ -28,12 +28,12 @@ public IEnumerable> GetTraits(IAttributeInfo traitA Debug.Assert(ctorArgs.Count() >= 2); string issue = ctorArgs.First().ToString(); - PlatformID platforms = (PlatformID)ctorArgs.Last(); - if ((platforms.HasFlag(PlatformID.FreeBSD) && RuntimeInformation.IsOSPlatform(OSPlatform.Create("FREEBSD"))) || - (platforms.HasFlag(PlatformID.Linux) && RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) || - (platforms.HasFlag(PlatformID.NetBSD) && RuntimeInformation.IsOSPlatform(OSPlatform.Create("NETBSD"))) || - (platforms.HasFlag(PlatformID.OSX) && RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) || - (platforms.HasFlag(PlatformID.Windows) && RuntimeInformation.IsOSPlatform(OSPlatform.Windows))) + TestPlatforms platforms = (TestPlatforms)ctorArgs.Last(); + if ((platforms.HasFlag(TestPlatforms.FreeBSD) && RuntimeInformation.IsOSPlatform(OSPlatform.Create("FREEBSD"))) || + (platforms.HasFlag(TestPlatforms.Linux) && RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) || + (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))) { yield return new KeyValuePair(XunitConstants.Category, XunitConstants.Failing); yield return new KeyValuePair(XunitConstants.ActiveIssue, issue); diff --git a/src/xunit.netcore.extensions/Discoverers/PlatformSpecificDiscoverer.cs b/src/xunit.netcore.extensions/Discoverers/PlatformSpecificDiscoverer.cs index 030d6cd1d7..ce3b9e4b99 100644 --- a/src/xunit.netcore.extensions/Discoverers/PlatformSpecificDiscoverer.cs +++ b/src/xunit.netcore.extensions/Discoverers/PlatformSpecificDiscoverer.cs @@ -22,16 +22,16 @@ public class PlatformSpecificDiscoverer : ITraitDiscoverer /// The trait values. public IEnumerable> GetTraits(IAttributeInfo traitAttribute) { - PlatformID platform = (PlatformID)traitAttribute.GetConstructorArguments().First(); - if (!platform.HasFlag(PlatformID.Windows)) + TestPlatforms platforms = (TestPlatforms)traitAttribute.GetConstructorArguments().First(); + if (!platforms.HasFlag(TestPlatforms.Windows)) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonWindowsTest); - if (!platform.HasFlag(PlatformID.Linux)) + if (!platforms.HasFlag(TestPlatforms.Linux)) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonLinuxTest); - if (!platform.HasFlag(PlatformID.OSX)) + if (!platforms.HasFlag(TestPlatforms.OSX)) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonOSXTest); - if (!platform.HasFlag(PlatformID.FreeBSD)) + if (!platforms.HasFlag(TestPlatforms.FreeBSD)) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonFreeBSDTest); - if (!platform.HasFlag(PlatformID.NetBSD)) + if (!platforms.HasFlag(TestPlatforms.NetBSD)) yield return new KeyValuePair(XunitConstants.Category, XunitConstants.NonNetBSDTest); } } diff --git a/src/xunit.netcore.extensions/PlatformID.cs b/src/xunit.netcore.extensions/PlatformID.cs index 988bd747f0..8d63e1e357 100644 --- a/src/xunit.netcore.extensions/PlatformID.cs +++ b/src/xunit.netcore.extensions/PlatformID.cs @@ -7,6 +7,7 @@ namespace Xunit { + // TODO #999: Remove PlatformID when all uses have transitioned to TestPlatforms. [Flags] public enum PlatformID { diff --git a/src/xunit.netcore.extensions/TestPlatforms.cs b/src/xunit.netcore.extensions/TestPlatforms.cs new file mode 100644 index 0000000000..fe905803be --- /dev/null +++ b/src/xunit.netcore.extensions/TestPlatforms.cs @@ -0,0 +1,20 @@ +// 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 TestPlatforms + { + Windows = 1, + Linux = 2, + OSX = 4, + FreeBSD = 8, + NetBSD = 16, + AnyUnix = FreeBSD | Linux | NetBSD | OSX, + Any = ~0 + } +} diff --git a/src/xunit.netcore.extensions/xunit.netcore.extensions.csproj b/src/xunit.netcore.extensions/xunit.netcore.extensions.csproj index e43d27ebaa..1068265b27 100644 --- a/src/xunit.netcore.extensions/xunit.netcore.extensions.csproj +++ b/src/xunit.netcore.extensions/xunit.netcore.extensions.csproj @@ -31,6 +31,7 @@ +