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");