diff --git a/src/SharpCompress/Archives/IArchiveExtensions.cs b/src/SharpCompress/Archives/IArchiveExtensions.cs index d48a45df..fcdf27fc 100644 --- a/src/SharpCompress/Archives/IArchiveExtensions.cs +++ b/src/SharpCompress/Archives/IArchiveExtensions.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; using System.Threading; using System.Threading.Tasks; using SharpCompress.Common; @@ -31,7 +30,7 @@ public static class IArchiveExtensions /// The folder to extract into. /// Optional progress report callback. /// Optional cancellation token. - public static async Task ExtractToDirectory( + public static async Task ExtractToDirectoryAsync( this IArchive archive, string destination, Action? progressReport = null, diff --git a/tests/SharpCompress.Test/Arc/ArcReaderTests.cs b/tests/SharpCompress.Test/Arc/ArcReaderTests.cs index 39a13038..e7386911 100644 --- a/tests/SharpCompress.Test/Arc/ArcReaderTests.cs +++ b/tests/SharpCompress.Test/Arc/ArcReaderTests.cs @@ -8,7 +8,7 @@ using Xunit; namespace SharpCompress.Test.Arc { public class ArcReaderTests - : ReaderTests { /* + : ReaderTests { public ArcReaderTests() { UseExtensionInsteadOfNameToVerify = true; @@ -16,7 +16,7 @@ namespace SharpCompress.Test.Arc } [Fact] - public void Arc_Uncompressed_Read() => Read("Arc.uncompressed.arc", CompressionType.None); + public Task Arc_Uncompressed_Read() => ReadAsync("Arc.uncompressed.arc", CompressionType.None); [Fact] public async Task Arc_Squeezed_Read() @@ -40,7 +40,7 @@ namespace SharpCompress.Test.Arc { if (!reader.Entry.IsDirectory) { - await reader.WriteAllToDirectoryAsync( + await reader.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -49,6 +49,6 @@ namespace SharpCompress.Test.Arc } VerifyFilesByExtension(); - }*/ + } } } diff --git a/tests/SharpCompress.Test/ArchiveTests.cs b/tests/SharpCompress.Test/ArchiveTests.cs index 7a9d916f..25717219 100644 --- a/tests/SharpCompress.Test/ArchiveTests.cs +++ b/tests/SharpCompress.Test/ArchiveTests.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Threading.Tasks; using SharpCompress.Archives; using SharpCompress.Common; using SharpCompress.Compressors.Xz; @@ -16,7 +17,7 @@ namespace SharpCompress.Test; public class ArchiveTests : ReaderTests { - /* + protected void ArchiveGetParts(IEnumerable testArchives) { var arcs = testArchives.Select(a => Path.Combine(TEST_ARCHIVES_PATH, a)).ToArray(); @@ -28,13 +29,13 @@ public class ArchiveTests : ReaderTests } } - protected void ArchiveStreamReadExtractAll(string testArchive, CompressionType compression) + protected async Task ArchiveStreamReadExtractAllAsync(string testArchive, CompressionType compression) { testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); - ArchiveStreamReadExtractAll(new[] { testArchive }, compression); + await ArchiveStreamReadExtractAllAsync(new[] { testArchive }, compression); } - protected void ArchiveStreamReadExtractAll( + protected async Task ArchiveStreamReadExtractAllAsync( IEnumerable testArchives, CompressionType compression ) @@ -55,7 +56,7 @@ public class ArchiveTests : ReaderTests Assert.True(archive.IsSolid); using (var reader = archive.ExtractAllEntries()) { - UseReader(reader, compression); + await UseReaderAsync(reader, compression); } VerifyFiles(); @@ -66,7 +67,7 @@ public class ArchiveTests : ReaderTests } foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -84,36 +85,36 @@ public class ArchiveTests : ReaderTests } } - protected void ArchiveStreamRead(string testArchive, ReaderOptions? readerOptions = null) => - ArchiveStreamRead(ArchiveFactory.AutoFactory, testArchive, readerOptions); + protected Task ArchiveStreamReadAsync(string testArchive, ReaderOptions? readerOptions = null) => + ArchiveStreamReadAsync(ArchiveFactory.AutoFactory, testArchive, readerOptions); - protected void ArchiveStreamRead( + protected Task ArchiveStreamReadAsync( IArchiveFactory archiveFactory, string testArchive, ReaderOptions? readerOptions = null ) { testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); - ArchiveStreamRead(archiveFactory, readerOptions, testArchive); + return ArchiveStreamReadAsync(archiveFactory, readerOptions, testArchive); } - protected void ArchiveStreamRead( + protected Task ArchiveStreamReadAsync( ReaderOptions? readerOptions = null, params string[] testArchives - ) => ArchiveStreamRead(ArchiveFactory.AutoFactory, readerOptions, testArchives); + ) => ArchiveStreamReadAsync(ArchiveFactory.AutoFactory, readerOptions, testArchives); - protected void ArchiveStreamRead( + protected Task ArchiveStreamReadAsync( IArchiveFactory archiveFactory, ReaderOptions? readerOptions = null, params string[] testArchives ) => - ArchiveStreamRead( + ArchiveStreamReadAsync( archiveFactory, readerOptions, testArchives.Select(x => Path.Combine(TEST_ARCHIVES_PATH, x)) ); - protected void ArchiveStreamRead( + protected async Task ArchiveStreamReadAsync( IArchiveFactory archiveFactory, ReaderOptions? readerOptions, IEnumerable testArchives @@ -134,7 +135,7 @@ public class ArchiveTests : ReaderTests { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -152,16 +153,16 @@ public class ArchiveTests : ReaderTests } } - protected void ArchiveStreamMultiRead( + protected Task ArchiveStreamMultiReadAsync( ReaderOptions? readerOptions = null, params string[] testArchives ) => - ArchiveStreamMultiRead( + ArchiveStreamMultiReadAsync( readerOptions, testArchives.Select(x => Path.Combine(TEST_ARCHIVES_PATH, x)) ); - protected void ArchiveStreamMultiRead( + protected async Task ArchiveStreamMultiReadAsync( ReaderOptions? readerOptions, IEnumerable testArchives ) @@ -175,7 +176,7 @@ public class ArchiveTests : ReaderTests { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -184,16 +185,16 @@ public class ArchiveTests : ReaderTests VerifyFiles(); } - protected void ArchiveOpenStreamRead( + protected Task ArchiveOpenStreamReadAsync( ReaderOptions? readerOptions = null, params string[] testArchives ) => - ArchiveOpenStreamRead( + ArchiveOpenStreamReadAsync( readerOptions, testArchives.Select(x => Path.Combine(TEST_ARCHIVES_PATH, x)) ); - protected void ArchiveOpenStreamRead( + protected async Task ArchiveOpenStreamReadAsync( ReaderOptions? readerOptions, IEnumerable testArchives ) @@ -207,7 +208,7 @@ public class ArchiveTests : ReaderTests { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -253,7 +254,7 @@ public class ArchiveTests : ReaderTests } } - protected void ArchiveExtractToDirectory( + protected async Task ArchiveExtractToDirectoryAsync( string testArchive, ReaderOptions? readerOptions = null ) @@ -261,12 +262,12 @@ public class ArchiveTests : ReaderTests testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); using (var archive = ArchiveFactory.Open(new FileInfo(testArchive), readerOptions)) { - archive.ExtractToDirectory(SCRATCH_FILES_PATH); + await archive.ExtractToDirectoryAsync(SCRATCH_FILES_PATH); } VerifyFiles(); } - protected void ArchiveFileRead( + protected async Task ArchiveFileReadAsync( IArchiveFactory archiveFactory, string testArchive, ReaderOptions? readerOptions = null @@ -277,7 +278,7 @@ public class ArchiveTests : ReaderTests { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -286,8 +287,8 @@ public class ArchiveTests : ReaderTests VerifyFiles(); } - protected void ArchiveFileRead(string testArchive, ReaderOptions? readerOptions = null) => - ArchiveFileRead(ArchiveFactory.AutoFactory, testArchive, readerOptions); + protected Task ArchiveFileReadAsync(string testArchive, ReaderOptions? readerOptions = null) => + ArchiveFileReadAsync(ArchiveFactory.AutoFactory, testArchive, readerOptions); protected void ArchiveFileSkip( string testArchive, @@ -311,14 +312,14 @@ public class ArchiveTests : ReaderTests /// /// Demonstrate the ExtractionOptions.PreserveFileTime and ExtractionOptions.PreserveAttributes extract options /// - protected void ArchiveFileReadEx(string testArchive) + protected async Task ArchiveFileReadExAsync(string testArchive) { testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); using (var archive = ArchiveFactory.Open(testArchive)) { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { @@ -333,7 +334,7 @@ public class ArchiveTests : ReaderTests VerifyFilesEx(); } - protected void ArchiveDeltaDistanceRead(string testArchive) + protected async Task ArchiveDeltaDistanceReadAsync(string testArchive) { testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); using var archive = ArchiveFactory.Open(testArchive); @@ -342,7 +343,7 @@ public class ArchiveTests : ReaderTests if (!entry.IsDirectory) { var memory = new MemoryStream(); - entry.WriteTo(memory); + await entry.WriteToAsync(memory); memory.Position = 0; @@ -570,5 +571,5 @@ public class ArchiveTests : ReaderTests return (extractedData, crc); } - */ + } diff --git a/tests/SharpCompress.Test/GZip/GZipArchiveTests.cs b/tests/SharpCompress.Test/GZip/GZipArchiveTests.cs index 93093108..e036a21a 100644 --- a/tests/SharpCompress.Test/GZip/GZipArchiveTests.cs +++ b/tests/SharpCompress.Test/GZip/GZipArchiveTests.cs @@ -1,5 +1,6 @@ using System.IO; using System.Linq; +using System.Threading.Tasks; using SharpCompress.Archives; using SharpCompress.Archives.GZip; using SharpCompress.Archives.Tar; @@ -12,51 +13,51 @@ public class GZipArchiveTests : ArchiveTests { public GZipArchiveTests() => UseExtensionInsteadOfNameToVerify = true; - /* + [Fact] - public void GZip_Archive_Generic() + public async Task GZip_Archive_Generic() { using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz"))) using (var archive = ArchiveFactory.Open(stream)) { var entry = archive.Entries.First(); - entry.WriteToFile(Path.Combine(SCRATCH_FILES_PATH, entry.Key.NotNull())); - + await entry.WriteToFileAsync(Path.Combine(SCRATCH_FILES_PATH, entry.Key.NotNull())); + var size = entry.Size; var scratch = new FileInfo(Path.Combine(SCRATCH_FILES_PATH, "Tar.tar")); var test = new FileInfo(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar")); - + Assert.Equal(size, scratch.Length); Assert.Equal(size, test.Length); } - CompareArchivesByPath( + await CompareArchivesByPathAsync( Path.Combine(SCRATCH_FILES_PATH, "Tar.tar"), Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar") ); } - + [Fact] - public void GZip_Archive() + public async Task GZip_Archive() { using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz"))) using (var archive = GZipArchive.Open(stream)) { var entry = archive.Entries.First(); - entry.WriteToFile(Path.Combine(SCRATCH_FILES_PATH, entry.Key.NotNull())); - + await entry.WriteToFileAsync(Path.Combine(SCRATCH_FILES_PATH, entry.Key.NotNull())); + var size = entry.Size; var scratch = new FileInfo(Path.Combine(SCRATCH_FILES_PATH, "Tar.tar")); var test = new FileInfo(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar")); - + Assert.Equal(size, scratch.Length); Assert.Equal(size, test.Length); } - CompareArchivesByPath( + await CompareArchivesByPathAsync( Path.Combine(SCRATCH_FILES_PATH, "Tar.tar"), Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar") ); } - + [Fact] public void GZip_Archive_NoAdd() { @@ -65,7 +66,7 @@ public class GZipArchiveTests : ArchiveTests using var archive = GZipArchive.Open(stream); Assert.Throws(() => archive.AddEntry("jpg\\test.jpg", jpg)); archive.SaveTo(Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz")); - }*/ + } [Fact] public void GZip_Archive_Multiple_Reads() diff --git a/tests/SharpCompress.Test/GZip/GZipReaderTests.cs b/tests/SharpCompress.Test/GZip/GZipReaderTests.cs index 40918000..b0eb2bce 100644 --- a/tests/SharpCompress.Test/GZip/GZipReaderTests.cs +++ b/tests/SharpCompress.Test/GZip/GZipReaderTests.cs @@ -1,4 +1,5 @@ -/*using System.IO; +using System.IO; +using System.Threading.Tasks; using SharpCompress.Common; using SharpCompress.IO; using SharpCompress.Readers.GZip; @@ -11,19 +12,19 @@ public class GZipReaderTests : ReaderTests public GZipReaderTests() => UseExtensionInsteadOfNameToVerify = true; [Fact] - public void GZip_Reader_Generic() => Read("Tar.tar.gz", CompressionType.GZip); + public Task GZip_Reader_Generic() => ReadAsync("Tar.tar.gz", CompressionType.GZip); [Fact] - public void GZip_Reader_Generic2() + public async Task GZip_Reader_Generic2() { //read only as GZip itme using Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")); using var reader = GZipReader.Open(new SharpCompressStream(stream)); - while (reader.MoveToNextEntry()) // Crash here + while (await reader.MoveToNextEntryAsync()) // Crash here { Assert.NotEqual(0, reader.Entry.Size); Assert.NotEqual(0, reader.Entry.Crc); } } } -*/ + diff --git a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs index 5f60ba50..3aa99cf5 100644 --- a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs +++ b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs @@ -1,5 +1,6 @@ using System.IO; using System.Linq; +using System.Threading.Tasks; using SharpCompress.Archives; using SharpCompress.Archives.Rar; using SharpCompress.Common; @@ -9,61 +10,61 @@ using Xunit; namespace SharpCompress.Test.Rar; -/* + public class RarArchiveTests : ArchiveTests { [Fact] - public void Rar_EncryptedFileAndHeader_Archive() => - ReadRarPassword("Rar.encrypted_filesAndHeader.rar", "test"); + public Task Rar_EncryptedFileAndHeader_Archive() => + ReadRarPasswordAsync("Rar.encrypted_filesAndHeader.rar", "test"); [Fact] - public void Rar_EncryptedFileAndHeader_NoPasswordExceptionTest() => - Assert.Throws( + public Task Rar_EncryptedFileAndHeader_NoPasswordExceptionTest() => + Assert.ThrowsAsync( typeof(CryptographicException), - () => ReadRarPassword("Rar.encrypted_filesAndHeader.rar", null) + async () => await ReadRarPasswordAsync("Rar.encrypted_filesAndHeader.rar", null) ); [Fact] - public void Rar5_EncryptedFileAndHeader_Archive() => - ReadRarPassword("Rar5.encrypted_filesAndHeader.rar", "test"); + public Task Rar5_EncryptedFileAndHeader_Archive() => + ReadRarPasswordAsync("Rar5.encrypted_filesAndHeader.rar", "test"); [Fact] - public void Rar5_EncryptedFileAndHeader_Archive_Err() => - Assert.Throws( + public Task Rar5_EncryptedFileAndHeader_Archive_Err() => + Assert.ThrowsAsync( typeof(CryptographicException), - () => ReadRarPassword("Rar5.encrypted_filesAndHeader.rar", "failed") + async () => await ReadRarPasswordAsync("Rar5.encrypted_filesAndHeader.rar", "failed") ); [Fact] - public void Rar5_EncryptedFileAndHeader_NoPasswordExceptionTest() => - Assert.Throws( + public Task Rar5_EncryptedFileAndHeader_NoPasswordExceptionTest() => + Assert.ThrowsAsync( typeof(CryptographicException), - () => ReadRarPassword("Rar5.encrypted_filesAndHeader.rar", null) + async () => await ReadRarPasswordAsync("Rar5.encrypted_filesAndHeader.rar", null) ); [Fact] - public void Rar_EncryptedFileOnly_Archive() => - ReadRarPassword("Rar.encrypted_filesOnly.rar", "test"); + public Task Rar_EncryptedFileOnly_Archive() => + ReadRarPasswordAsync("Rar.encrypted_filesOnly.rar", "test"); [Fact] - public void Rar_EncryptedFileOnly_Archive_Err() => - Assert.Throws( + public Task Rar_EncryptedFileOnly_Archive_Err() => + Assert.ThrowsAsync( typeof(CryptographicException), - () => ReadRarPassword("Rar5.encrypted_filesOnly.rar", "failed") + async () => await ReadRarPasswordAsync("Rar5.encrypted_filesOnly.rar", "failed") ); [Fact] - public void Rar5_EncryptedFileOnly_Archive() => - ReadRarPassword("Rar5.encrypted_filesOnly.rar", "test"); + public Task Rar5_EncryptedFileOnly_Archive() => + ReadRarPasswordAsync("Rar5.encrypted_filesOnly.rar", "test"); [Fact] - public void Rar_Encrypted_Archive() => ReadRarPassword("Rar.Encrypted.rar", "test"); + public Task Rar_Encrypted_Archive() => ReadRarPasswordAsync("Rar.Encrypted.rar", "test"); [Fact] - public void Rar5_Encrypted_Archive() => - ReadRarPassword("Rar5.encrypted_filesAndHeader.rar", "test"); + public Task Rar5_Encrypted_Archive() => + ReadRarPasswordAsync("Rar5.encrypted_filesAndHeader.rar", "test"); - private void ReadRarPassword(string testArchive, string? password) + private async Task ReadRarPasswordAsync(string testArchive, string? password) { using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, testArchive))) using ( @@ -78,7 +79,7 @@ public class RarArchiveTests : ArchiveTests if (!entry.IsDirectory) { Assert.Equal(CompressionType.Rar, entry.CompressionType); - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -89,12 +90,12 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar_Multi_Archive_Encrypted() => - Assert.Throws(() => - ArchiveFileReadPassword("Rar.EncryptedParts.part01.rar", "test") + public Task Rar_Multi_Archive_Encrypted() => + Assert.ThrowsAsync(async () => + await ArchiveFileReadPasswordAsync("Rar.EncryptedParts.part01.rar", "test") ); - protected void ArchiveFileReadPassword(string archiveName, string password) + protected async Task ArchiveFileReadPasswordAsync(string archiveName, string password) { using ( var archive = RarArchive.Open( @@ -105,7 +106,7 @@ public class RarArchiveTests : ArchiveTests { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -115,28 +116,28 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar_None_ArchiveStreamRead() => ArchiveStreamRead("Rar.none.rar"); + public Task Rar_None_ArchiveStreamRead() => ArchiveStreamReadAsync("Rar.none.rar"); [Fact] - public void Rar5_None_ArchiveStreamRead() => ArchiveStreamRead("Rar5.none.rar"); + public Task Rar5_None_ArchiveStreamRead() => ArchiveStreamReadAsync("Rar5.none.rar"); [Fact] - public void Rar_ArchiveStreamRead() => ArchiveStreamRead("Rar.rar"); + public Task Rar_ArchiveStreamRead() => ArchiveStreamReadAsync("Rar.rar"); [Fact] - public void Rar5_ArchiveStreamRead() => ArchiveStreamRead("Rar5.rar"); + public Task Rar5_ArchiveStreamRead() => ArchiveStreamReadAsync("Rar5.rar"); [Fact] - public void Rar_test_invalid_exttime_ArchiveStreamRead() => + public Task Rar_test_invalid_exttime_ArchiveStreamRead() => DoRar_test_invalid_exttime_ArchiveStreamRead("Rar.test_invalid_exttime.rar"); - private void DoRar_test_invalid_exttime_ArchiveStreamRead(string filename) + private async Task DoRar_test_invalid_exttime_ArchiveStreamRead(string filename) { using var stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, filename)); using var archive = ArchiveFactory.Open(stream); foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -144,14 +145,14 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar_Jpg_ArchiveStreamRead() + public async Task Rar_Jpg_ArchiveStreamRead() { using var stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Rar.jpeg.jpg")); using (var archive = RarArchive.Open(stream, new ReaderOptions { LookForHeader = true })) { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -161,12 +162,12 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar_IsSolidArchiveCheck() => DoRar_IsSolidArchiveCheck("Rar.rar"); + public Task Rar_IsSolidArchiveCheck() => DoRar_IsSolidArchiveCheck("Rar.rar"); [Fact] - public void Rar5_IsSolidArchiveCheck() => DoRar_IsSolidArchiveCheck("Rar5.rar"); + public Task Rar5_IsSolidArchiveCheck() => DoRar_IsSolidArchiveCheck("Rar5.rar"); - private void DoRar_IsSolidArchiveCheck(string filename) + private async Task DoRar_IsSolidArchiveCheck(string filename) { using (var stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, filename))) { @@ -174,7 +175,7 @@ public class RarArchiveTests : ArchiveTests Assert.False(archive.IsSolid); foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -214,22 +215,22 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar_Solid_ArchiveStreamRead() => ArchiveStreamRead("Rar.solid.rar"); + public Task Rar_Solid_ArchiveStreamRead() => ArchiveStreamReadAsync("Rar.solid.rar"); [Fact] - public void Rar5_Solid_ArchiveStreamRead() => ArchiveStreamRead("Rar5.solid.rar"); + public Task Rar5_Solid_ArchiveStreamRead() => ArchiveStreamReadAsync("Rar5.solid.rar"); [Fact] - public void Rar_Solid_StreamRead_Extract_All() => - ArchiveStreamReadExtractAll("Rar.solid.rar", CompressionType.Rar); + public Task Rar_Solid_StreamRead_Extract_All() => + ArchiveStreamReadExtractAllAsync("Rar.solid.rar", CompressionType.Rar); [Fact] - public void Rar5_Solid_StreamRead_Extract_All() => - ArchiveStreamReadExtractAll("Rar5.solid.rar", CompressionType.Rar); + public Task Rar5_Solid_StreamRead_Extract_All() => + ArchiveStreamReadExtractAllAsync("Rar5.solid.rar", CompressionType.Rar); [Fact] - public void Rar_Multi_ArchiveStreamRead() => - DoRar_Multi_ArchiveStreamRead( + public Task Rar_Multi_ArchiveStreamRead() => + DoRar_Multi_ArchiveStreamReadAsync( [ "Rar.multi.part01.rar", "Rar.multi.part02.rar", @@ -242,8 +243,8 @@ public class RarArchiveTests : ArchiveTests ); [Fact] - public void Rar5_Multi_ArchiveStreamRead() => - DoRar_Multi_ArchiveStreamRead( + public Task Rar5_Multi_ArchiveStreamRead() => + DoRar_Multi_ArchiveStreamReadAsync( [ "Rar5.multi.part01.rar", "Rar5.multi.part02.rar", @@ -255,7 +256,7 @@ public class RarArchiveTests : ArchiveTests false ); - private void DoRar_Multi_ArchiveStreamRead(string[] archives, bool isSolid) + private async Task DoRar_Multi_ArchiveStreamReadAsync(string[] archives, bool isSolid) { using var archive = RarArchive.Open( archives.Select(s => Path.Combine(TEST_ARCHIVES_PATH, s)).Select(File.OpenRead) @@ -263,7 +264,7 @@ public class RarArchiveTests : ArchiveTests Assert.Equal(archive.IsSolid, isSolid); foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -271,8 +272,8 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar5_MultiSolid_ArchiveStreamRead() => - DoRar_Multi_ArchiveStreamRead( + public Task Rar5_MultiSolid_ArchiveStreamRead() => + DoRar_Multi_ArchiveStreamReadAsync( [ "Rar.multi.solid.part01.rar", "Rar.multi.solid.part02.rar", @@ -285,16 +286,16 @@ public class RarArchiveTests : ArchiveTests ); [Fact] - public void RarNoneArchiveFileRead() => ArchiveFileRead("Rar.none.rar"); + public Task RarNoneArchiveFileRead() => ArchiveFileReadAsync("Rar.none.rar"); [Fact] - public void Rar5NoneArchiveFileRead() => ArchiveFileRead("Rar5.none.rar"); + public Task Rar5NoneArchiveFileRead() => ArchiveFileReadAsync("Rar5.none.rar"); [Fact] - public void Rar_ArchiveFileRead() => ArchiveFileRead("Rar.rar"); + public Task Rar_ArchiveFileRead() => ArchiveFileReadAsync("Rar.rar"); [Fact] - public void Rar5_ArchiveFileRead() => ArchiveFileRead("Rar5.rar"); + public Task Rar5_ArchiveFileRead() => ArchiveFileReadAsync("Rar5.rar"); [Fact] public void Rar_ArchiveFileRead_HasDirectories() => @@ -313,7 +314,7 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar_Jpg_ArchiveFileRead() + public async Task Rar_Jpg_ArchiveFileRead() { using ( var archive = RarArchive.Open( @@ -324,7 +325,7 @@ public class RarArchiveTests : ArchiveTests { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { - entry.WriteToDirectory( + await entry.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); @@ -334,14 +335,14 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar_Solid_ArchiveFileRead() => ArchiveFileRead("Rar.solid.rar"); + public Task Rar_Solid_ArchiveFileRead() => ArchiveFileReadAsync("Rar.solid.rar"); [Fact] - public void Rar5_Solid_ArchiveFileRead() => ArchiveFileRead("Rar5.solid.rar"); + public Task Rar5_Solid_ArchiveFileRead() => ArchiveFileReadAsync("Rar5.solid.rar"); [Fact] - public void Rar2_Multi_ArchiveStreamRead() => - DoRar_Multi_ArchiveStreamRead( + public Task Rar2_Multi_ArchiveStreamRead() => + DoRar_Multi_ArchiveStreamReadAsync( [ "Rar2.multi.rar", "Rar2.multi.r00", @@ -355,17 +356,17 @@ public class RarArchiveTests : ArchiveTests ); [Fact] - public void Rar2_Multi_ArchiveFileRead() => ArchiveFileRead("Rar2.multi.rar"); //r00, r01... + public Task Rar2_Multi_ArchiveFileRead() => ArchiveFileReadAsync("Rar2.multi.rar"); //r00, r01... [Fact] - public void Rar2_ArchiveFileRead() => ArchiveFileRead("Rar2.rar"); + public Task Rar2_ArchiveFileRead() => ArchiveFileReadAsync("Rar2.rar"); [Fact] - public void Rar15_ArchiveFileRead() + public async Task Rar15_ArchiveFileRead() { UseExtensionInsteadOfNameToVerify = true; UseCaseInsensitiveToVerify = true; - ArchiveFileRead("Rar15.rar"); + await ArchiveFileReadAsync("Rar15.rar"); } [Fact] @@ -409,10 +410,10 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar4_Multi_ArchiveFileRead() => ArchiveFileRead("Rar4.multi.part01.rar"); + public Task Rar4_Multi_ArchiveFileRead() => ArchiveFileReadAsync("Rar4.multi.part01.rar"); [Fact] - public void Rar4_ArchiveFileRead() => ArchiveFileRead("Rar4.rar"); + public Task Rar4_ArchiveFileRead() => ArchiveFileReadAsync("Rar4.rar"); [Fact] public void Rar_GetPartsSplit() => @@ -462,8 +463,8 @@ public class RarArchiveTests : ArchiveTests ); [Fact] - public void Rar4_Multi_ArchiveStreamRead() => - DoRar_Multi_ArchiveStreamRead( + public Task Rar4_Multi_ArchiveStreamRead() => + DoRar_Multi_ArchiveStreamReadAsync( [ "Rar4.multi.part01.rar", "Rar4.multi.part02.rar", @@ -478,8 +479,8 @@ public class RarArchiveTests : ArchiveTests //no extension to test the lib identifies the archive by content not ext [Fact] - public void Rar4_Split_ArchiveStreamRead() => - ArchiveStreamMultiRead( + public Task Rar4_Split_ArchiveStreamRead() => + ArchiveStreamMultiReadAsync( null, [ "Rar4.split.001", @@ -493,7 +494,7 @@ public class RarArchiveTests : ArchiveTests //will detect and load other files [Fact] - public void Rar4_Multi_ArchiveFirstFileRead() => ArchiveFileRead("Rar4.multi.part01.rar"); + public Task Rar4_Multi_ArchiveFirstFileRead() => ArchiveFileReadAsync("Rar4.multi.part01.rar"); //"Rar4.multi.part02.rar", //"Rar4.multi.part03.rar", @@ -503,7 +504,7 @@ public class RarArchiveTests : ArchiveTests //"Rar4.multi.part07.rar" //will detect and load other files [Fact] - public void Rar4_Split_ArchiveFirstFileRead() => ArchiveFileRead("Rar4.split.001"); + public Task Rar4_Split_ArchiveFirstFileRead() => ArchiveFileReadAsync("Rar4.split.001"); //"Rar4.split.002", //"Rar4.split.003", @@ -512,8 +513,8 @@ public class RarArchiveTests : ArchiveTests //"Rar4.split.006" //will detect and load other files [Fact] - public void Rar4_Split_ArchiveStreamFirstFileRead() => - ArchiveStreamMultiRead( + public Task Rar4_Split_ArchiveStreamFirstFileRead() => + ArchiveStreamMultiReadAsync( null, [ "Rar4.split.001", @@ -527,8 +528,8 @@ public class RarArchiveTests : ArchiveTests //open with ArchiveFactory.Open and stream [Fact] - public void Rar4_Split_ArchiveOpen() => - ArchiveOpenStreamRead( + public Task Rar4_Split_ArchiveOpen() => + ArchiveOpenStreamReadAsync( null, "Rar4.split.001", "Rar4.split.002", @@ -540,8 +541,8 @@ public class RarArchiveTests : ArchiveTests //open with ArchiveFactory.Open and stream [Fact] - public void Rar4_Multi_ArchiveOpen() => - ArchiveOpenStreamRead( + public Task Rar4_Multi_ArchiveOpen() => + ArchiveOpenStreamReadAsync( null, "Rar4.multi.part01.rar", "Rar4.multi.part02.rar", @@ -571,10 +572,10 @@ public class RarArchiveTests : ArchiveTests ); [Fact] - public void Rar_Multi_ArchiveFileRead() => ArchiveFileRead("Rar.multi.part01.rar"); + public Task Rar_Multi_ArchiveFileRead() => ArchiveFileReadAsync("Rar.multi.part01.rar"); [Fact] - public void Rar5_Multi_ArchiveFileRead() => ArchiveFileRead("Rar5.multi.part01.rar"); + public Task Rar5_Multi_ArchiveFileRead() => ArchiveFileReadAsync("Rar5.multi.part01.rar"); [Fact] public void Rar_IsFirstVolume_True() => DoRar_IsFirstVolume_True("Rar.multi.part01.rar"); @@ -603,7 +604,7 @@ public class RarArchiveTests : ArchiveTests } [Fact] - public void Rar5_CRC_Blake2_Archive() => ArchiveFileRead("Rar5.crc_blake2.rar"); + public Task Rar5_CRC_Blake2_Archive() => ArchiveFileReadAsync("Rar5.crc_blake2.rar"); [Fact] void Rar_Iterate_Archive() => @@ -635,4 +636,4 @@ public class RarArchiveTests : ArchiveTests "Failure jpg exe Empty ั‚ะตัั‚.txt jpg\\test.jpg exe\\test.exe" ); } -*/ + diff --git a/tests/SharpCompress.Test/ReaderTests.cs b/tests/SharpCompress.Test/ReaderTests.cs index 05aefbcc..96697a71 100644 --- a/tests/SharpCompress.Test/ReaderTests.cs +++ b/tests/SharpCompress.Test/ReaderTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Threading.Tasks; using SharpCompress.Common; using SharpCompress.IO; using SharpCompress.Readers; @@ -11,26 +12,26 @@ namespace SharpCompress.Test; public abstract class ReaderTests : TestBase { - /* - protected void Read( + + protected async Task ReadAsync( string testArchive, CompressionType expectedCompression, ReaderOptions? options = null ) { testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); - + options ??= new ReaderOptions() { BufferSize = 0x20000 }; //test larger buffer size (need test rather than eyeballing debug logs :P) - + options.LeaveStreamOpen = true; - ReadImpl(testArchive, expectedCompression, options); - + await ReadAsyncImpl(testArchive, expectedCompression, options); + options.LeaveStreamOpen = false; - ReadImpl(testArchive, expectedCompression, options); + await ReadAsyncImpl(testArchive, expectedCompression, options); VerifyFiles(); } - - private void ReadImpl( + + private async Task ReadAsyncImpl( string testArchive, CompressionType expectedCompression, ReaderOptions options @@ -46,54 +47,31 @@ public abstract class ReaderTests : TestBase using var testStream = new TestStream(protectedStream); using (var reader = ReaderFactory.Open(testStream, options)) { - UseReader(reader, expectedCompression); + await UseReaderAsync(reader, expectedCompression); protectedStream.ThrowOnDispose = false; Assert.False(testStream.IsDisposed, $"{nameof(testStream)} prematurely closed"); } - + // Boolean XOR -- If the stream should be left open (true), then the stream should not be diposed (false) // and if the stream should be closed (false), then the stream should be disposed (true) var message = $"{nameof(options.LeaveStreamOpen)} is set to '{options.LeaveStreamOpen}', so {nameof(testStream.IsDisposed)} should be set to '{!testStream.IsDisposed}', but is set to {testStream.IsDisposed}"; Assert.True(options.LeaveStreamOpen != testStream.IsDisposed, message); } - - public void UseReader(IReader reader, CompressionType expectedCompression) + + public async Task UseReaderAsync(IReader reader, CompressionType expectedCompression) { - while (reader.MoveToNextEntry()) + while (await reader.MoveToNextEntryAsync()) { if (!reader.Entry.IsDirectory) { Assert.Equal(expectedCompression, reader.Entry.CompressionType); - reader.WriteEntryToDirectory( + await reader.WriteEntryToDirectoryAsync( SCRATCH_FILES_PATH, new ExtractionOptions { ExtractFullPath = true, Overwrite = true } ); } } } - - protected void Iterate( - string testArchive, - string fileOrder, - CompressionType expectedCompression, - ReaderOptions? options = null - ) - { - if (!Environment.OSVersion.IsWindows()) - { - fileOrder = fileOrder.Replace('\\', '/'); - } - var expected = new Stack(fileOrder.Split(' ')); - - testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); - using var file = File.OpenRead(testArchive); - using var forward = new ForwardOnlyStream(file); - using var reader = ReaderFactory.Open(forward, options); - while (reader.MoveToNextEntry()) - { - Assert.Equal(expectedCompression, reader.Entry.CompressionType); - Assert.Equal(expected.Pop(), reader.Entry.Key); - } - }*/ + } diff --git a/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs b/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs index 9fb2269f..5cc1c8a1 100644 --- a/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs +++ b/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Linq; +using System.Threading.Tasks; using SharpCompress.Archives; using SharpCompress.Archives.SevenZip; using SharpCompress.Common; @@ -12,80 +13,80 @@ namespace SharpCompress.Test.SevenZip; public class SevenZipArchiveTests : ArchiveTests { - /* + [Fact] - public void SevenZipArchive_Solid_StreamRead() => ArchiveStreamRead("7Zip.solid.7z"); - + public Task SevenZipArchive_Solid_StreamRead() => ArchiveStreamReadAsync("7Zip.solid.7z"); + [Fact] - public void SevenZipArchive_NonSolid_StreamRead() => ArchiveStreamRead("7Zip.nonsolid.7z"); - + public Task SevenZipArchive_NonSolid_StreamRead() => ArchiveStreamReadAsync("7Zip.nonsolid.7z"); + [Fact] - public void SevenZipArchive_LZMA_StreamRead() => ArchiveStreamRead("7Zip.LZMA.7z"); - + public Task SevenZipArchive_LZMA_StreamRead() => ArchiveStreamReadAsync("7Zip.LZMA.7z"); + [Fact] - public void SevenZipArchive_LZMA_PathRead() => ArchiveFileRead("7Zip.LZMA.7z"); - + public Task SevenZipArchive_LZMA_PathRead() => ArchiveFileReadAsync("7Zip.LZMA.7z"); + [Fact] - public void SevenZipArchive_LZMAAES_StreamRead() => - ArchiveStreamRead("7Zip.LZMA.Aes.7z", new ReaderOptions { Password = "testpassword" }); - + public Task SevenZipArchive_LZMAAES_StreamRead() => + ArchiveStreamReadAsync("7Zip.LZMA.Aes.7z", new ReaderOptions { Password = "testpassword" }); + [Fact] - public void SevenZipArchive_LZMAAES_PathRead() => - ArchiveFileRead("7Zip.LZMA.Aes.7z", new ReaderOptions { Password = "testpassword" }); - + public Task SevenZipArchive_LZMAAES_PathRead() => + ArchiveFileReadAsync("7Zip.LZMA.Aes.7z", new ReaderOptions { Password = "testpassword" }); + [Fact] - public void SevenZipArchive_LZMAAES_NoPasswordExceptionTest() => - Assert.Throws( + public Task SevenZipArchive_LZMAAES_NoPasswordExceptionTest() => + Assert.ThrowsAsync( typeof(CryptographicException), - () => ArchiveFileRead("7Zip.LZMA.Aes.7z", new ReaderOptions { Password = null }) + async () => await ArchiveFileReadAsync("7Zip.LZMA.Aes.7z", new ReaderOptions { Password = null }) ); //was failing with ArgumentNullException not CryptographicException like rar - + [Fact] - public void SevenZipArchive_PPMd_StreamRead() => ArchiveStreamRead("7Zip.PPMd.7z"); - + public Task SevenZipArchive_PPMd_StreamRead() => ArchiveStreamReadAsync("7Zip.PPMd.7z"); + [Fact] - public void SevenZipArchive_PPMd_StreamRead_Extract_All() => - ArchiveStreamReadExtractAll("7Zip.PPMd.7z", CompressionType.PPMd); - + public Task SevenZipArchive_PPMd_StreamRead_Extract_All() => + ArchiveStreamReadExtractAllAsync("7Zip.PPMd.7z", CompressionType.PPMd); + [Fact] - public void SevenZipArchive_PPMd_PathRead() => ArchiveFileRead("7Zip.PPMd.7z"); - + public Task SevenZipArchive_PPMd_PathRead() => ArchiveFileReadAsync("7Zip.PPMd.7z"); + [Fact] - public void SevenZipArchive_LZMA2_StreamRead() => ArchiveStreamRead("7Zip.LZMA2.7z"); - + public Task SevenZipArchive_LZMA2_StreamRead() => ArchiveStreamReadAsync("7Zip.LZMA2.7z"); + [Fact] - public void SevenZipArchive_LZMA2_PathRead() => ArchiveFileRead("7Zip.LZMA2.7z"); - + public Task SevenZipArchive_LZMA2_PathRead() => ArchiveFileReadAsync("7Zip.LZMA2.7z"); + [Fact] - public void SevenZipArchive_LZMA2_EXE_StreamRead() => - ArchiveStreamRead(new SevenZipFactory(), "7Zip.LZMA2.exe", new() { LookForHeader = true }); - + public Task SevenZipArchive_LZMA2_EXE_StreamRead() => + ArchiveStreamReadAsync(new SevenZipFactory(), "7Zip.LZMA2.exe", new() { LookForHeader = true }); + [Fact] - public void SevenZipArchive_LZMA2_EXE_PathRead() => - ArchiveFileRead(new SevenZipFactory(), "7Zip.LZMA2.exe", new() { LookForHeader = true }); - + public Task SevenZipArchive_LZMA2_EXE_PathRead() => + ArchiveFileReadAsync(new SevenZipFactory(), "7Zip.LZMA2.exe", new() { LookForHeader = true }); + [Fact] - public void SevenZipArchive_LZMA2AES_StreamRead() => - ArchiveStreamRead("7Zip.LZMA2.Aes.7z", new ReaderOptions { Password = "testpassword" }); - + public Task SevenZipArchive_LZMA2AES_StreamRead() => + ArchiveStreamReadAsync("7Zip.LZMA2.Aes.7z", new ReaderOptions { Password = "testpassword" }); + [Fact] - public void SevenZipArchive_LZMA2AES_PathRead() => - ArchiveFileRead("7Zip.LZMA2.Aes.7z", new ReaderOptions { Password = "testpassword" }); - + public Task SevenZipArchive_LZMA2AES_PathRead() => + ArchiveFileReadAsync("7Zip.LZMA2.Aes.7z", new ReaderOptions { Password = "testpassword" }); + [Fact] - public void SevenZipArchive_BZip2_StreamRead() => ArchiveStreamRead("7Zip.BZip2.7z"); - + public Task SevenZipArchive_BZip2_StreamRead() => ArchiveStreamReadAsync("7Zip.BZip2.7z"); + [Fact] - public void SevenZipArchive_BZip2_PathRead() => ArchiveFileRead("7Zip.BZip2.7z"); - + public Task SevenZipArchive_BZip2_PathRead() => ArchiveFileReadAsync("7Zip.BZip2.7z"); + [Fact] - public void SevenZipArchive_LZMA_Time_Attributes_PathRead() => - ArchiveFileReadEx("7Zip.LZMA.7z"); - + public Task SevenZipArchive_LZMA_Time_Attributes_PathRead() => + ArchiveFileReadExAsync("7Zip.LZMA.7z"); + [Fact] - public void SevenZipArchive_BZip2_Split() => - Assert.Throws(() => - ArchiveStreamRead( + public Task SevenZipArchive_BZip2_Split() => + Assert.ThrowsAsync(async () => + await ArchiveStreamReadAsync( null, "Original.7z.001", "Original.7z.002", @@ -96,11 +97,11 @@ public class SevenZipArchiveTests : ArchiveTests "Original.7z.007" ) ); - + //Same as archive as Original.7z.001 ... 007 files without the root directory 'Original\' in the archive - this caused the verify to fail [Fact] - public void SevenZipArchive_BZip2_Split_Working() => - ArchiveStreamMultiRead( + public Task SevenZipArchive_BZip2_Split_Working() => + ArchiveStreamMultiReadAsync( null, "7Zip.BZip2.split.001", "7Zip.BZip2.split.002", @@ -110,29 +111,29 @@ public class SevenZipArchiveTests : ArchiveTests "7Zip.BZip2.split.006", "7Zip.BZip2.split.007" ); - + //will detect and load other files [Fact] - public void SevenZipArchive_BZip2_Split_FirstFileRead() => - ArchiveFileRead("7Zip.BZip2.split.001"); - + public Task SevenZipArchive_BZip2_Split_FirstFileRead() => + ArchiveFileReadAsync("7Zip.BZip2.split.001"); + //"7Zip.BZip2.split.002", //"7Zip.BZip2.split.003", //"7Zip.BZip2.split.004", //"7Zip.BZip2.split.005", //"7Zip.BZip2.split.006", //"7Zip.BZip2.split.007" - + [Fact] - public void SevenZipArchive_ZSTD_StreamRead() => ArchiveStreamRead("7Zip.ZSTD.7z"); - + public Task SevenZipArchive_ZSTD_StreamRead() => ArchiveStreamReadAsync("7Zip.ZSTD.7z"); + [Fact] - public void SevenZipArchive_ZSTD_PathRead() => ArchiveFileRead("7Zip.ZSTD.7z"); - + public Task SevenZipArchive_ZSTD_PathRead() => ArchiveFileReadAsync("7Zip.ZSTD.7z"); + [Fact] - public void SevenZipArchive_ZSTD_Split() => - Assert.Throws(() => - ArchiveStreamRead( + public Task SevenZipArchive_ZSTD_Split() => + Assert.ThrowsAsync(async () => + await ArchiveStreamReadAsync( null, "7Zip.ZSTD.Split.7z.001", "7Zip.ZSTD.Split.7z.002", @@ -142,70 +143,70 @@ public class SevenZipArchiveTests : ArchiveTests "7Zip.ZSTD.Split.7z.006" ) ); - + [Fact] - public void SevenZipArchive_EOS_FileRead() => ArchiveFileRead("7Zip.eos.7z"); - + public Task SevenZipArchive_EOS_FileRead() => ArchiveFileReadAsync("7Zip.eos.7z"); + [Fact] - public void SevenZipArchive_Delta_FileRead() => ArchiveFileRead("7Zip.delta.7z"); - + public Task SevenZipArchive_Delta_FileRead() => ArchiveFileReadAsync("7Zip.delta.7z"); + [Fact] - public void SevenZipArchive_ARM_FileRead() => ArchiveFileRead("7Zip.ARM.7z"); - + public Task SevenZipArchive_ARM_FileRead() => ArchiveFileReadAsync("7Zip.ARM.7z"); + [Fact] - public void SevenZipArchive_ARMT_FileRead() => ArchiveFileRead("7Zip.ARMT.7z"); - + public Task SevenZipArchive_ARMT_FileRead() => ArchiveFileReadAsync("7Zip.ARMT.7z"); + [Fact] - public void SevenZipArchive_BCJ_FileRead() => ArchiveFileRead("7Zip.BCJ.7z"); - + public Task SevenZipArchive_BCJ_FileRead() => ArchiveFileReadAsync("7Zip.BCJ.7z"); + [Fact] - public void SevenZipArchive_BCJ2_FileRead() => ArchiveFileRead("7Zip.BCJ2.7z"); - + public Task SevenZipArchive_BCJ2_FileRead() => ArchiveFileReadAsync("7Zip.BCJ2.7z"); + [Fact] - public void SevenZipArchive_IA64_FileRead() => ArchiveFileRead("7Zip.IA64.7z"); - + public Task SevenZipArchive_IA64_FileRead() => ArchiveFileReadAsync("7Zip.IA64.7z"); + [Fact] - public void SevenZipArchive_PPC_FileRead() => ArchiveFileRead("7Zip.PPC.7z"); - + public Task SevenZipArchive_PPC_FileRead() => ArchiveFileReadAsync("7Zip.PPC.7z"); + [Fact] - public void SevenZipArchive_SPARC_FileRead() => ArchiveFileRead("7Zip.SPARC.7z"); - + public Task SevenZipArchive_SPARC_FileRead() => ArchiveFileReadAsync("7Zip.SPARC.7z"); + [Fact] - public void SevenZipArchive_ARM64_FileRead() => ArchiveFileRead("7Zip.ARM64.7z"); - + public Task SevenZipArchive_ARM64_FileRead() => ArchiveFileReadAsync("7Zip.ARM64.7z"); + [Fact] - public void SevenZipArchive_RISCV_FileRead() => ArchiveFileRead("7Zip.RISCV.7z"); - + public Task SevenZipArchive_RISCV_FileRead() => ArchiveFileReadAsync("7Zip.RISCV.7z"); + [Fact] - public void SevenZipArchive_Filters_FileRead() => ArchiveFileRead("7Zip.Filters.7z"); - + public Task SevenZipArchive_Filters_FileRead() => ArchiveFileReadAsync("7Zip.Filters.7z"); + [Fact] - public void SevenZipArchive_Delta_Distance() => - ArchiveDeltaDistanceRead("7Zip.delta.distance.7z"); - + public Task SevenZipArchive_Delta_Distance() => + ArchiveDeltaDistanceReadAsync("7Zip.delta.distance.7z"); + [Fact] - public void SevenZipArchive_Tar_PathRead() + public async Task 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.NotNull())); - + await entry.WriteToFileAsync(Path.Combine(SCRATCH_FILES_PATH, entry.Key.NotNull())); + 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( + + await CompareArchivesByPathAsync( Path.Combine(SCRATCH_FILES_PATH, "7Zip.Tar.tar"), Path.Combine(TEST_ARCHIVES_PATH, "7Zip.Tar.tar") ); } - + [Fact] public void SevenZipArchive_TestSolidDetection() { @@ -213,15 +214,15 @@ public class SevenZipArchiveTests : ArchiveTests Path.Combine(TEST_ARCHIVES_PATH, "7Zip.solid.1block.7z") ); Assert.True(oneBlockSolidArchive.IsSolid); - + using var solidArchive = SevenZipArchive.Open( Path.Combine(TEST_ARCHIVES_PATH, "7Zip.solid.7z") ); Assert.True(solidArchive.IsSolid); - + using var nonSolidArchive = SevenZipArchive.Open( Path.Combine(TEST_ARCHIVES_PATH, "7Zip.nonsolid.7z") ); Assert.False(nonSolidArchive.IsSolid); - }*/ + } }