From 57c0d19cde603f82367a51182e4522d89cee06af Mon Sep 17 00:00:00 2001 From: btomblinson Date: Sun, 17 Sep 2023 17:46:56 -0600 Subject: [PATCH] #751 Add .tar.7z support --- .../SevenZip/SevenZipArchiveTests.cs | 25 ++++++++++++++++++ tests/TestArchives/Archives/7Zip.Tar.tar | Bin 0 -> 10240 bytes tests/TestArchives/Archives/7Zip.Tar.tar.7z | Bin 0 -> 272 bytes 3 files changed, 25 insertions(+) create mode 100644 tests/TestArchives/Archives/7Zip.Tar.tar create mode 100644 tests/TestArchives/Archives/7Zip.Tar.tar.7z diff --git a/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs b/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs index 8937ce05..b32ce377 100644 --- a/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs +++ b/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs @@ -1,6 +1,8 @@ using System; using System.IO; using System.Linq; +using SharpCompress.Archives; +using SharpCompress.Archives.SevenZip; using SharpCompress.Common; using SharpCompress.Readers; using Xunit; @@ -163,4 +165,27 @@ public class SevenZipArchiveTests : ArchiveTests [Fact] public void SevenZipArchive_Delta_Distance() => ArchiveDeltaDistanceRead("7Zip.delta.distance.7z"); + + [Fact] + public void SevenZipArchive_Tar_PathRead() + { + using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "7Zip.Tar.tar.7z"))) + using (var archive = SevenZipArchive.Open(stream)) + { + var entry = archive.Entries.First(); + entry.WriteToFile(Path.Combine(SCRATCH_FILES_PATH, entry.Key)); + + var size = entry.Size; + var scratch = new FileInfo(Path.Combine(SCRATCH_FILES_PATH, "7Zip.Tar.tar")); + var test = new FileInfo(Path.Combine(TEST_ARCHIVES_PATH, "7Zip.Tar.tar")); + + Assert.Equal(size, scratch.Length); + Assert.Equal(size, test.Length); + } + + CompareArchivesByPath( + Path.Combine(SCRATCH_FILES_PATH, "7Zip.Tar.tar"), + Path.Combine(TEST_ARCHIVES_PATH, "7Zip.Tar.tar") + ); + } } diff --git a/tests/TestArchives/Archives/7Zip.Tar.tar b/tests/TestArchives/Archives/7Zip.Tar.tar new file mode 100644 index 0000000000000000000000000000000000000000..e72cd7ee1fb52e4fd171feef2dc34f15e7e67ae2 GIT binary patch literal 10240 zcmXqy$}G?eNi5Q5pdBzUFfcGTHDv(N1_lP`G)S1i(8R>t$jHph+}M!8z|hdp#Ee0~ zly*)+m|R+1l31jmz)+N*UxEW4wA4%Fqc>IH+ouu#@RXiF3qaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@? z8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O KqaiS8LI41B(JFZW literal 0 HcmV?d00001 diff --git a/tests/TestArchives/Archives/7Zip.Tar.tar.7z b/tests/TestArchives/Archives/7Zip.Tar.tar.7z new file mode 100644 index 0000000000000000000000000000000000000000..6549adae43f9b3fcf126c4d3fb293e05e2475494 GIT binary patch literal 272 zcmXr7+Ou9=hJnS;@v%Z50|X>ND2CrtTS6YF|7U26WssiMsm@r_-T0z)mwj_(sgcxq zo?Y@jV#h=J`OD;zk1zEWjrf)E>}4;vVAGSF-1U1c@9%DvWJHj#Jzbs~~70a4dN4g_H>K^7{7~tp-&ENv9{aFLPPU{`~8U_FF6V z@!dLeL4o@n``*9pT@t!4f*2SWS=bmDIUD*I*tr=Q7!?&6nR!+)FmP}&#$FfaW?*1t zl;ncCoq>TtP@2J0`p#)4bFi0|pa4|A4sIkYLzJ8NYl#P)= Kp