diff --git a/tests/ImageSharp.Tests/TestUtilities/TestEnvironment.cs b/tests/ImageSharp.Tests/TestUtilities/TestEnvironment.cs
index 9d15023ead..85d5fffdc7 100644
--- a/tests/ImageSharp.Tests/TestUtilities/TestEnvironment.cs
+++ b/tests/ImageSharp.Tests/TestUtilities/TestEnvironment.cs
@@ -57,10 +57,17 @@ namespace SixLabors.ImageSharp.Tests
new BmpConfigurationModule()
);
- configuration.SetDecoder(ImageFormats.Png, SystemDrawingReferenceDecoder.Instance);
- configuration.SetEncoder(ImageFormats.Png, SystemDrawingReferenceEncoder.Png);
- configuration.AddImageFormatDetector(new PngImageFormatDetector());
-
+ if (!IsLinux)
+ {
+ configuration.SetDecoder(ImageFormats.Png, SystemDrawingReferenceDecoder.Instance);
+ configuration.SetEncoder(ImageFormats.Png, SystemDrawingReferenceEncoder.Png);
+ configuration.AddImageFormatDetector(new PngImageFormatDetector());
+ }
+ else
+ {
+ new PngConfigurationModule().Configure(configuration);
+ }
+
return configuration;
}
diff --git a/tests/ImageSharp.Tests/TestUtilities/TestImageExtensions.cs b/tests/ImageSharp.Tests/TestUtilities/TestImageExtensions.cs
index 063137ea98..14d83d295e 100644
--- a/tests/ImageSharp.Tests/TestUtilities/TestImageExtensions.cs
+++ b/tests/ImageSharp.Tests/TestUtilities/TestImageExtensions.cs
@@ -90,7 +90,6 @@ namespace SixLabors.ImageSharp.Tests
/// The extension
/// A boolean indicating whether we should debug save + compare against a grayscale image, smaller in size.
/// A boolean indicating whether to append the pixel type to the output file name.
- /// Custom decoder
///
public static Image CompareToReferenceOutput(
this Image image,
@@ -99,16 +98,14 @@ namespace SixLabors.ImageSharp.Tests
object testOutputDetails = null,
string extension = "png",
bool grayscale = false,
- bool appendPixelTypeToFileName = true,
- IImageDecoder decoder = null)
+ bool appendPixelTypeToFileName = true)
where TPixel : struct, IPixel
{
using (Image referenceImage = GetReferenceOutputImage(
provider,
testOutputDetails,
extension,
- appendPixelTypeToFileName,
- decoder))
+ appendPixelTypeToFileName))
{
comparer.VerifySimilarity(referenceImage, image);
}
@@ -119,8 +116,7 @@ namespace SixLabors.ImageSharp.Tests
public static Image GetReferenceOutputImage(this ITestImageProvider provider,
object testOutputDetails = null,
string extension = "png",
- bool appendPixelTypeToFileName = true,
- IImageDecoder decoder = null)
+ bool appendPixelTypeToFileName = true)
where TPixel : struct, IPixel
{
string referenceOutputFile = provider.Utility.GetReferenceOutputFileName(extension, testOutputDetails, appendPixelTypeToFileName);
@@ -130,7 +126,7 @@ namespace SixLabors.ImageSharp.Tests
throw new Exception("Reference output file missing: " + referenceOutputFile);
}
- decoder = decoder ?? TestEnvironment.GetReferenceDecoder(referenceOutputFile);
+ IImageDecoder decoder = TestEnvironment.GetReferenceDecoder(referenceOutputFile);
return Image.Load(referenceOutputFile, decoder);
}
@@ -141,15 +137,13 @@ namespace SixLabors.ImageSharp.Tests
ImageComparer comparer,
object testOutputDetails = null,
string extension = "png",
- bool appendPixelTypeToFileName = true,
- IImageDecoder decoder = null)
+ bool appendPixelTypeToFileName = true)
where TPixel : struct, IPixel
{
using (Image referenceImage = provider.GetReferenceOutputImage(
testOutputDetails,
extension,
- appendPixelTypeToFileName,
- decoder))
+ appendPixelTypeToFileName))
{
return comparer.CompareImages(referenceImage, image);
}
diff --git a/tests/ImageSharp.Tests/TestUtilities/Tests/TestEnvironmentTests.cs b/tests/ImageSharp.Tests/TestUtilities/Tests/TestEnvironmentTests.cs
index a5bf0a46c4..79478cba25 100644
--- a/tests/ImageSharp.Tests/TestUtilities/Tests/TestEnvironmentTests.cs
+++ b/tests/ImageSharp.Tests/TestUtilities/Tests/TestEnvironmentTests.cs
@@ -14,6 +14,8 @@ using Xunit.Abstractions;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Tests
{
+ using SixLabors.ImageSharp.Formats.Png;
+
public class TestEnvironmentTests
{
public TestEnvironmentTests(ITestOutputHelper output)
@@ -67,8 +69,10 @@ namespace SixLabors.ImageSharp.Tests
[InlineData("lol/foo.png", typeof(SystemDrawingReferenceEncoder))]
[InlineData("lol/Baz.JPG", typeof(JpegEncoder))]
[InlineData("lol/Baz.gif", typeof(GifEncoder))]
- public void GetReferenceEncoder_ReturnsCorrectEncoders(string fileName, Type expectedEncoderType)
+ public void GetReferenceEncoder_ReturnsCorrectEncoders_Windows(string fileName, Type expectedEncoderType)
{
+ if (TestEnvironment.IsLinux) return;
+
IImageEncoder encoder = TestEnvironment.GetReferenceEncoder(fileName);
Assert.IsType(expectedEncoderType, encoder);
}
@@ -77,8 +81,34 @@ namespace SixLabors.ImageSharp.Tests
[InlineData("lol/foo.png", typeof(SystemDrawingReferenceDecoder))]
[InlineData("lol/Baz.JPG", typeof(JpegDecoder))]
[InlineData("lol/Baz.gif", typeof(GifDecoder))]
- public void GetReferenceDecoder_ReturnsCorrectEncoders(string fileName, Type expectedDecoderType)
+ public void GetReferenceDecoder_ReturnsCorrectEncoders_Windows(string fileName, Type expectedDecoderType)
+ {
+ if (TestEnvironment.IsLinux) return;
+
+ IImageDecoder decoder = TestEnvironment.GetReferenceDecoder(fileName);
+ Assert.IsType(expectedDecoderType, decoder);
+ }
+
+ [Theory]
+ [InlineData("lol/foo.png", typeof(PngEncoder))]
+ [InlineData("lol/Baz.JPG", typeof(JpegEncoder))]
+ [InlineData("lol/Baz.gif", typeof(GifEncoder))]
+ public void GetReferenceEncoder_ReturnsCorrectEncoders_Linux(string fileName, Type expectedEncoderType)
{
+ if (!TestEnvironment.IsLinux) return;
+
+ IImageEncoder encoder = TestEnvironment.GetReferenceEncoder(fileName);
+ Assert.IsType(expectedEncoderType, encoder);
+ }
+
+ [Theory]
+ [InlineData("lol/foo.png", typeof(PngDecoder))]
+ [InlineData("lol/Baz.JPG", typeof(JpegDecoder))]
+ [InlineData("lol/Baz.gif", typeof(GifDecoder))]
+ public void GetReferenceDecoder_ReturnsCorrectEncoders_Linux(string fileName, Type expectedDecoderType)
+ {
+ if (!TestEnvironment.IsLinux) return;
+
IImageDecoder decoder = TestEnvironment.GetReferenceDecoder(fileName);
Assert.IsType(expectedDecoderType, decoder);
}