From 7af7d41e1bda9160446e971d4e775b84ffacb123 Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Mon, 27 Apr 2020 11:56:15 +0200 Subject: [PATCH] Add tests to ensure chunk order --- .../Formats/Png/PngEncoderTests.cs | 142 ++++++++++++++++-- tests/Images/Input/Png/PngWithMetaData.png | Bin 777 -> 60544 bytes 2 files changed, 130 insertions(+), 12 deletions(-) diff --git a/tests/ImageSharp.Tests/Formats/Png/PngEncoderTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngEncoderTests.cs index 5a31d2d93..0407ef295 100644 --- a/tests/ImageSharp.Tests/Formats/Png/PngEncoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Png/PngEncoderTests.cs @@ -2,6 +2,9 @@ // Licensed under the Apache License, Version 2.0. // ReSharper disable InconsistentNaming + +using System; +using System.Buffers.Binary; using System.IO; using System.Linq; @@ -18,6 +21,8 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png { public class PngEncoderTests { + private static PngEncoder PngEncoder => new PngEncoder(); + public static readonly TheoryData PngBitDepthFiles = new TheoryData { @@ -234,8 +239,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png { using (Stream stream = new MemoryStream()) { - var encoder = new PngEncoder(); - encoder.Encode(provider.GetImage(), stream); + PngEncoder.Encode(provider.GetImage(), stream); stream.Seek(0, SeekOrigin.Begin); @@ -281,7 +285,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png using (Image image = provider.GetImage()) using (var ms = new MemoryStream()) { - image.Save(ms, new PngEncoder()); + image.Save(ms, PngEncoder); byte[] data = ms.ToArray().Take(8).ToArray(); byte[] expected = @@ -304,14 +308,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png [MemberData(nameof(RatioFiles))] public void Encode_PreserveRatio(string imagePath, int xResolution, int yResolution, PixelResolutionUnit resolutionUnit) { - var options = new PngEncoder(); - var testFile = TestFile.Create(imagePath); using (Image input = testFile.CreateRgba32Image()) { using (var memStream = new MemoryStream()) { - input.Save(memStream, options); + input.Save(memStream, PngEncoder); memStream.Position = 0; using (var output = Image.Load(memStream)) @@ -329,14 +331,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png [MemberData(nameof(PngBitDepthFiles))] public void Encode_PreserveBits(string imagePath, PngBitDepth pngBitDepth) { - var options = new PngEncoder(); - var testFile = TestFile.Create(imagePath); using (Image input = testFile.CreateRgba32Image()) { using (var memStream = new MemoryStream()) { - input.Save(memStream, options); + input.Save(memStream, PngEncoder); memStream.Position = 0; using (var output = Image.Load(memStream)) @@ -353,8 +353,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png [MemberData(nameof(PngTrnsFiles))] public void Encode_PreserveTrns(string imagePath, PngBitDepth pngBitDepth, PngColorType pngColorType) { - var options = new PngEncoder(); - var testFile = TestFile.Create(imagePath); using (Image input = testFile.CreateRgba32Image()) { @@ -363,7 +361,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png using (var memStream = new MemoryStream()) { - input.Save(memStream, options); + input.Save(memStream, PngEncoder); memStream.Position = 0; using (var output = Image.Load(memStream)) { @@ -404,6 +402,126 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png } } + [Fact] + public void HeaderChunk_ComesFirst() + { + var testFile = TestFile.Create(TestImages.Png.PngWithMetadata); + using Image input = testFile.CreateRgba32Image(); + using var memStream = new MemoryStream(); + input.Save(memStream, PngEncoder); + memStream.Position = 0; + + // Skip header. + Span bytesSpan = memStream.ToArray().AsSpan(8); + BinaryPrimitives.ReadInt32BigEndian(bytesSpan.Slice(0, 4)); + var type = (PngChunkType)BinaryPrimitives.ReadInt32BigEndian(bytesSpan.Slice(4, 4)); + Assert.Equal(PngChunkType.Header, type); + } + + [Fact] + public void EndChunk_IsLast() + { + var testFile = TestFile.Create(TestImages.Png.PngWithMetadata); + using Image input = testFile.CreateRgba32Image(); + using var memStream = new MemoryStream(); + input.Save(memStream, PngEncoder); + memStream.Position = 0; + + // Skip header. + Span bytesSpan = memStream.ToArray().AsSpan(8); + + bool endChunkFound = false; + while (bytesSpan.Length > 0) + { + int length = BinaryPrimitives.ReadInt32BigEndian(bytesSpan.Slice(0, 4)); + var type = (PngChunkType)BinaryPrimitives.ReadInt32BigEndian(bytesSpan.Slice(4, 4)); + Assert.False(endChunkFound); + if (type == PngChunkType.End) + { + endChunkFound = true; + } + + bytesSpan = bytesSpan.Slice(4 + 4 + length + 4); + } + } + + [Theory] + [InlineData(PngChunkType.Gamma)] + [InlineData(PngChunkType.Chroma)] + [InlineData(PngChunkType.EmbeddedColorProfile)] + [InlineData(PngChunkType.SignificantBits)] + [InlineData(PngChunkType.StandardRgbColourSpace)] + public void Chunk_ComesBeforePlteAndIDat(object chunkTypeObj) + { + var chunkType = (PngChunkType)chunkTypeObj; + var testFile = TestFile.Create(TestImages.Png.PngWithMetadata); + using Image input = testFile.CreateRgba32Image(); + using var memStream = new MemoryStream(); + input.Save(memStream, PngEncoder); + memStream.Position = 0; + + // Skip header. + Span bytesSpan = memStream.ToArray().AsSpan(8); + + bool palFound = false; + bool dataFound = false; + while (bytesSpan.Length > 0) + { + int length = BinaryPrimitives.ReadInt32BigEndian(bytesSpan.Slice(0, 4)); + var type = (PngChunkType)BinaryPrimitives.ReadInt32BigEndian(bytesSpan.Slice(4, 4)); + if (chunkType == type) + { + Assert.False(palFound || dataFound, $"{chunkType} chunk should come before data and palette chunk"); + } + + switch (type) + { + case PngChunkType.Data: + dataFound = true; + break; + case PngChunkType.Palette: + palFound = true; + break; + } + + bytesSpan = bytesSpan.Slice(4 + 4 + length + 4); + } + } + + [Theory] + [InlineData(PngChunkType.Physical)] + [InlineData(PngChunkType.SuggestedPalette)] + public void Chunk_ComesBeforeIDat(object chunkTypeObj) + { + var chunkType = (PngChunkType)chunkTypeObj; + var testFile = TestFile.Create(TestImages.Png.PngWithMetadata); + using Image input = testFile.CreateRgba32Image(); + using var memStream = new MemoryStream(); + input.Save(memStream, PngEncoder); + memStream.Position = 0; + + // Skip header. + Span bytesSpan = memStream.ToArray().AsSpan(8); + + bool dataFound = false; + while (bytesSpan.Length > 0) + { + int length = BinaryPrimitives.ReadInt32BigEndian(bytesSpan.Slice(0, 4)); + var type = (PngChunkType)BinaryPrimitives.ReadInt32BigEndian(bytesSpan.Slice(4, 4)); + if (chunkType == type) + { + Assert.False(dataFound, $"{chunkType} chunk should come before data chunk"); + } + + if (type == PngChunkType.Data) + { + dataFound = true; + } + + bytesSpan = bytesSpan.Slice(4 + 4 + length + 4); + } + } + [Theory] [WithTestPatternImages(587, 821, PixelTypes.Rgba32)] [WithTestPatternImages(677, 683, PixelTypes.Rgba32)] diff --git a/tests/Images/Input/Png/PngWithMetaData.png b/tests/Images/Input/Png/PngWithMetaData.png index 2f167bd794368f92d6c86014deb14530cce4b4c5..b8a8b6d6b1f3118829f6a5e6b7798da71777459c 100644 GIT binary patch delta 60290 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

EulU*NE<2t^V14f# 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 vQchFr8wnRXh``fV00000NkvXXu0mjfEO;#X delta 72 zcmZp;$=t~{LB)_cz$e7DG$}gHNX&wPfq}EYBeIx*fm;}a85w5HkpK#^q&xaLGB9lH Y=l+w(x_Rfz)l8fWp00i_>zopr0Egcb6#xJL