diff --git a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs index 8b886afe..58ebfa1c 100644 --- a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs +++ b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs @@ -832,4 +832,15 @@ public class ZipArchiveTests : ArchiveTests using var _ = firstEntry.OpenEntryStream(); Assert.Equal(29, firstEntry.Comment.Length); } + + [Fact] + public void Zip_FilePermissions() + { + using var archive = ArchiveFactory.Open(Path.Combine(TEST_ARCHIVES_PATH, "Zip.644.zip")); + + var firstEntry = archive.Entries.First(); + const int S_IFREG = 0x8000; + const int expected = (S_IFREG | 0b110_100_100) << 16; // 0644 mode regular file + Assert.Equal(expected, firstEntry.Attrib); + } } diff --git a/tests/TestArchives/Archives/Zip.644.zip b/tests/TestArchives/Archives/Zip.644.zip new file mode 100644 index 00000000..71a786be Binary files /dev/null and b/tests/TestArchives/Archives/Zip.644.zip differ