Browse Source

skip a few Jpeg tests on 32bit CI

af/merge-core
Anton Firszov 8 years ago
parent
commit
e63860ea74
  1. 4
      tests/ImageSharp.Tests/Colorspaces/RgbAndCieXyzConversionTest.cs
  2. 55
      tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs
  3. 5
      tests/ImageSharp.Tests/TestUtilities/FloatRoundingComparer.cs

4
tests/ImageSharp.Tests/Colorspaces/RgbAndCieXyzConversionTest.cs

@ -43,7 +43,7 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces
// Assert
IEqualityComparer<float> comparer = TestEnvironment.Is64BitProcess ? FloatRoundingComparer : new FloatRoundingComparer(4);
IEqualityComparer<float> comparer = new FloatRoundingComparer(4);
Assert.Equal(Rgb.DefaultWorkingSpace, output.WorkingSpace, ApproximateComparer);
Assert.Equal(r, output.R, comparer);
@ -100,7 +100,7 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces
CieXyz output = converter.ToCieXyz(input);
// Assert
IEqualityComparer<float> comparer = TestEnvironment.Is64BitProcess ? FloatRoundingComparer : new FloatRoundingComparer(4);
IEqualityComparer<float> comparer = new FloatRoundingComparer(4);
Assert.Equal(x, output.X, comparer);
Assert.Equal(y, output.Y, comparer);
Assert.Equal(z, output.Z, comparer);

55
tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs

@ -97,6 +97,18 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
return ImageComparer.Tolerant(tolerance);
}
private static bool SkipTest(ITestImageProvider provider)
{
string[] largeImagesToSkipOn32Bit =
{
TestImages.Jpeg.Baseline.Jpeg420Exif,
TestImages.Jpeg.Issues.BadZigZagProgressive385
};
return TestEnvironment.RunsOnCI && !TestEnvironment.Is64BitProcess
&& largeImagesToSkipOn32Bit.Contains(provider.SourceFileOrDescription);
}
public JpegDecoderTests(ITestOutputHelper output)
{
this.Output = output;
@ -129,6 +141,11 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
public void JpegDecoder_IsNotBoundToSinglePixelType<TPixel>(TestImageProvider<TPixel> provider, bool useOldDecoder)
where TPixel : struct, IPixel<TPixel>
{
if (SkipTest(provider))
{
return;
}
// For 32 bit test enviroments:
provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();
@ -149,6 +166,11 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
public void DecodeBaselineJpeg_Orig<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : struct, IPixel<TPixel>
{
if (SkipTest(provider))
{
return;
}
// For 32 bit test enviroments:
provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();
@ -170,8 +192,11 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
public void DecodeBaselineJpeg_PdfJs<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : struct, IPixel<TPixel>
{
// For 32 bit test enviroments:
provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();
if (TestEnvironment.RunsOnCI && !TestEnvironment.Is64BitProcess)
{
// skipping to avoid OutOfMemoryException on CI
return;
}
using (Image<TPixel> image = provider.GetImage(PdfJsJpegDecoder))
{
@ -183,8 +208,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
provider,
appendPixelTypeToFileName: false);
}
provider.Configuration.MemoryManager.ReleaseRetainedResources();
}
[Theory]
@ -203,6 +226,11 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
public void DecodeProgressiveJpeg_Orig<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : struct, IPixel<TPixel>
{
if (SkipTest(provider))
{
return;
}
// For 32 bit test enviroments:
provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();
@ -225,8 +253,11 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
public void DecodeProgressiveJpeg_PdfJs<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : struct, IPixel<TPixel>
{
// For 32 bit test enviroments:
provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();
if (TestEnvironment.RunsOnCI && !TestEnvironment.Is64BitProcess)
{
// skipping to avoid OutOfMemoryException on CI
return;
}
using (Image<TPixel> image = provider.GetImage(PdfJsJpegDecoder))
{
@ -238,8 +269,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
provider,
appendPixelTypeToFileName: false);
}
provider.Configuration.MemoryManager.ReleaseRetainedResources();
}
private string GetDifferenceInPercentageString<TPixel>(Image<TPixel> image, TestImageProvider<TPixel> provider)
@ -291,12 +320,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
public void CompareJpegDecoders_Baseline<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : struct, IPixel<TPixel>
{
// For 32 bit test enviroments:
provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();
this.CompareJpegDecodersImpl(provider, DecodeBaselineJpegOutputName);
provider.Configuration.MemoryManager.ReleaseRetainedResources();
}
[Theory]
@ -304,12 +328,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
public void CompareJpegDecoders_Progressive<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : struct, IPixel<TPixel>
{
// For 32 bit test enviroments:
provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();
this.CompareJpegDecodersImpl(provider, DecodeProgressiveJpegOutputName);
provider.Configuration.MemoryManager.ReleaseRetainedResources();
}
[Theory]

5
tests/ImageSharp.Tests/TestUtilities/FloatRoundingComparer.cs

@ -33,13 +33,14 @@ namespace SixLabors.ImageSharp.Tests
float xp = (float)Math.Round(x, this.Precision, MidpointRounding.AwayFromZero);
float yp = (float)Math.Round(y, this.Precision, MidpointRounding.AwayFromZero);
return Comparer<float>.Default.Compare(xp, yp) == 0;
// ReSharper disable once CompareOfFloatsByEqualityOperator
return xp == yp;
}
/// <inheritdoc />
public bool Equals(Vector4 x, Vector4 y)
{
return Equals(x.X, y.X) && Equals(x.Y, y.Y) && Equals(x.Z, y.Z) && Equals(x.W, y.W);
return this.Equals(x.X, y.X) && this.Equals(x.Y, y.Y) && this.Equals(x.Z, y.Z) && this.Equals(x.W, y.W);
}
/// <inheritdoc />

Loading…
Cancel
Save