From 6bd6e9fd2931f968c46f26414f876d10917b7467 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Thu, 10 Nov 2022 18:29:52 -0500 Subject: [PATCH] Reuse PlatformFact on some onplatform tests --- .../PlatformFactAttribute.cs | 25 +++++++++++++------ .../Avalonia.Markup.Xaml.UnitTests.csproj | 5 ++++ .../OptionsMarkupExtensionTests.cs | 5 ++-- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/tests/Avalonia.IntegrationTests.Appium/PlatformFactAttribute.cs b/tests/Avalonia.IntegrationTests.Appium/PlatformFactAttribute.cs index 53ae5d924f..3acf9fd5e2 100644 --- a/tests/Avalonia.IntegrationTests.Appium/PlatformFactAttribute.cs +++ b/tests/Avalonia.IntegrationTests.Appium/PlatformFactAttribute.cs @@ -1,27 +1,34 @@ +#nullable enable using System; -using System.Linq; using System.Runtime.InteropServices; using Xunit; -namespace Avalonia.IntegrationTests.Appium +namespace Avalonia { [Flags] internal enum TestPlatforms { Windows = 0x01, MacOS = 0x02, - All = Windows | MacOS, + Linux = 0x04, + All = Windows | MacOS | Linux, } - + internal class PlatformFactAttribute : FactAttribute { - public PlatformFactAttribute(TestPlatforms platforms = TestPlatforms.All) => Platforms = platforms; - + private readonly string? _reason; + + public PlatformFactAttribute(TestPlatforms platforms, string? reason = null) + { + _reason = reason; + Platforms = platforms; + } + public TestPlatforms Platforms { get; } - + public override string? Skip { - get => IsSupported() ? null : $"Ignored on {RuntimeInformation.OSDescription}"; + get => IsSupported() ? null : $"Ignored on {RuntimeInformation.OSDescription}" + (_reason is not null ? $" reason: \"{_reason}\"" : ""); set => throw new NotSupportedException(); } @@ -31,6 +38,8 @@ namespace Avalonia.IntegrationTests.Appium return Platforms.HasAnyFlag(TestPlatforms.Windows); if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) return Platforms.HasAnyFlag(TestPlatforms.MacOS); + if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + return Platforms.HasAnyFlag(TestPlatforms.Linux); return false; } } diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj index f562529cb8..7ff19e1049 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj @@ -31,5 +31,10 @@ + + + PlatformFactAttribute.cs + + diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/OptionsMarkupExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/OptionsMarkupExtensionTests.cs index aaf946871a..2d1f961743 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/OptionsMarkupExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/OptionsMarkupExtensionTests.cs @@ -1,5 +1,6 @@ using System; using System.Reactive.Disposables; +using System.Runtime.InteropServices; using Avalonia.Controls; using Avalonia.Markup.Xaml.MarkupExtensions; using Avalonia.Media; @@ -185,7 +186,7 @@ public class OptionsMarkupExtensionTests : XamlTestBase Assert.Equal(new Thickness(10, 8, 10, 8), border.Padding); } - [Fact] + [PlatformFact(TestPlatforms.Windows | TestPlatforms.Linux, "TypeArguments test is failing on macOS from SRE emit")] public void Respect_Custom_TypeArgument() { using var _ = SetupTestGlobals("option 1"); @@ -261,7 +262,7 @@ public class OptionsMarkupExtensionTests : XamlTestBase Assert.Equal(Color.Parse("#ff506070"), ((ISolidColorBrush)border.Background!).Color); } - [Fact] + [PlatformFact(TestPlatforms.Windows | TestPlatforms.Linux, "TypeArguments test is failing on macOS from SRE emit")] public void Support_Xml_Syntax_With_Custom_TypeArguments() { using var _ = SetupTestGlobals("option 1");