From ab6678133308d81d0df4fa12c105c2d7f367f0ec Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Thu, 21 Jan 2021 11:35:17 +0000 Subject: [PATCH] Add a test which changes the CompressionMethod of an item --- CompressionMethod.cs | 20 +++++++++ .../LibZipSharp.UnitTest.csproj | 3 ++ LibZipSharp.UnitTest/ZipTests.cs | 38 ++++++++++++++++++ LibZipSharp.UnitTest/packaged_resources | Bin 0 -> 52865 bytes LibZipSharp.props | 2 +- Native.cs | 11 +++++ 6 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 LibZipSharp.UnitTest/packaged_resources diff --git a/CompressionMethod.cs b/CompressionMethod.cs index 349a77b2..11717fe9 100644 --- a/CompressionMethod.cs +++ b/CompressionMethod.cs @@ -121,6 +121,26 @@ public enum CompressionMethod : short /// LZ77 = 19, + /// + /// LZMA2 Compressed data + /// + LZMA2 = 33, + + /// + /// Zstandard compressed data + /// + ZSTD = 93, + + /// + /// XZ compressed data + /// + XZ = 95, + + /// + /// Compressed Jpeg data + /// + JPEG = 96, + /// /// WavPack compressed data /// diff --git a/LibZipSharp.UnitTest/LibZipSharp.UnitTest.csproj b/LibZipSharp.UnitTest/LibZipSharp.UnitTest.csproj index 10877ded..6db34362 100644 --- a/LibZipSharp.UnitTest/LibZipSharp.UnitTest.csproj +++ b/LibZipSharp.UnitTest/LibZipSharp.UnitTest.csproj @@ -29,6 +29,9 @@ libzip.dll PreserveNewest + + PreserveNewest + diff --git a/LibZipSharp.UnitTest/ZipTests.cs b/LibZipSharp.UnitTest/ZipTests.cs index 50721ff2..5cbc8fed 100644 --- a/LibZipSharp.UnitTest/ZipTests.cs +++ b/LibZipSharp.UnitTest/ZipTests.cs @@ -192,6 +192,44 @@ public void SmallTextFile () } } + [Test] + public void UpdateEntryCompressionMethod () + { + var zipStream = new MemoryStream (); + var encoding = Encoding.UTF8; + using (var zip = ZipArchive.Create (zipStream)) { + zip.AddEntry ("foo", "bar", encoding, CompressionMethod.Deflate); + } + using (var zip = ZipArchive.Open (zipStream)) { + var entry = zip.ReadEntry ("foo"); + Assert.IsNotNull (entry, "Entry 'foo' should exist!"); + AssertEntryIsValid (entry, "foo", compression: CompressionMethod.Deflate); + using (var stream = new MemoryStream ()) { + entry.Extract (stream); + stream.Position = 0; + Assert.AreEqual ("bar", encoding.GetString (stream.ToArray ())); + } + zip.AddEntry ("foo", "foo", encoding, CompressionMethod.Store); + entry = zip.ReadEntry ("foo"); + AssertEntryIsValid (entry, "foo", compression: CompressionMethod.Store); + } + } + + [Test] + public void CheckForUnknownCompressionMethods () + { + string filePath = Path.GetFullPath ("packaged_resources"); + if (!File.Exists (filePath)) { + filePath = Path.GetFullPath (Path.Combine ("LibZipSharp.UnitTest", "packaged_resources")); + } + using (var zip = ZipArchive.Open (filePath, FileMode.Open)) { + foreach (var e in zip) { + Console.WriteLine ($"{e.FullName} is {e.CompressionMethod}"); + Assert.AreNotEqual (CompressionMethod.Unknown, e.CompressionMethod, "Compression Method should not be Unknown."); + } + } + } + [TestCase (false)] [TestCase (true)] public void EnumerateSkipDeletedEntries (bool deleteFromExistingFile) diff --git a/LibZipSharp.UnitTest/packaged_resources b/LibZipSharp.UnitTest/packaged_resources new file mode 100644 index 0000000000000000000000000000000000000000..699e517cfff03bab65be80066b0b2d4240ce7e0f GIT binary patch literal 52865 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 b9_au3vZJny^vE@U(14#0K!E4Nk5~T>1^r-E literal 0 HcmV?d00001 diff --git a/LibZipSharp.props b/LibZipSharp.props index 56c87a1e..a6825f42 100644 --- a/LibZipSharp.props +++ b/LibZipSharp.props @@ -1,5 +1,5 @@ - <_LibZipSharpNugetVersion>1.0.21 + <_LibZipSharpNugetVersion>1.0.22 diff --git a/Native.cs b/Native.cs index 6876beab..4a097509 100644 --- a/Native.cs +++ b/Native.cs @@ -47,17 +47,28 @@ public struct zip_source_args_seek_t public int whence; }; + [StructLayout(LayoutKind.Explicit)] public struct zip_stat_t { + [FieldOffset (0)] public UInt64 valid; /* which fields have valid values */ + [FieldOffset (8)] public IntPtr name; /* name of the file (char *) */ + [FieldOffset (16)] public UInt64 index; /* index within archive */ + [FieldOffset (24)] public UInt64 size; /* size of file (uncompressed) */ + [FieldOffset (32)] public UInt64 comp_size; /* size of file (compressed) */ + [FieldOffset (40)] public IntPtr mtime; /* modification time (time_t) */ + [FieldOffset (48)] public UInt32 crc; /* crc of file data */ + [FieldOffset (52)] public Int16 comp_method; /* compression method used */ + [FieldOffset (56)] public UInt16 encryption_method; /* encryption method used */ + [FieldOffset (60)] public UInt32 flags; /* reserved for future use */ };