mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-02-04 05:25:00 +00:00
use ifdefs for creating files?
This commit is contained in:
@@ -216,9 +216,9 @@
|
||||
"net10.0": {
|
||||
"Microsoft.NET.ILLink.Tasks": {
|
||||
"type": "Direct",
|
||||
"requested": "[10.0.0, )",
|
||||
"resolved": "10.0.0",
|
||||
"contentHash": "kICGrGYEzCNI3wPzfEXcwNHgTvlvVn9yJDhSdRK+oZQy4jvYH529u7O0xf5ocQKzOMjfS07+3z9PKRIjrFMJDA=="
|
||||
"requested": "[10.0.1, )",
|
||||
"resolved": "10.0.1",
|
||||
"contentHash": "ISahzLHsHY7vrwqr2p1YWZ+gsxoBRtH7gWRDK8fDUst9pp2He0GiesaqEfeX0V8QMCJM3eNEHGGpnIcPjFo2NQ=="
|
||||
},
|
||||
"Microsoft.NETFramework.ReferenceAssemblies": {
|
||||
"type": "Direct",
|
||||
|
||||
@@ -97,17 +97,27 @@ public class AsyncTests : TestBase
|
||||
public async ValueTask Writer_Async_Write_Single_File()
|
||||
{
|
||||
var outputPath = Path.Combine(SCRATCH_FILES_PATH, "async_test.zip");
|
||||
|
||||
#if NETFRAMEWORK
|
||||
using (var stream = File.Create(outputPath))
|
||||
#else
|
||||
await using (var stream = File.Create(outputPath))
|
||||
#endif
|
||||
using (var writer = WriterFactory.Open(stream, ArchiveType.Zip, CompressionType.Deflate))
|
||||
{
|
||||
var testFile = Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz");
|
||||
|
||||
#if NETFRAMEWORK
|
||||
using var fileStream = File.OpenRead(testFile);
|
||||
#else
|
||||
await using var fileStream = File.OpenRead(testFile);
|
||||
#endif
|
||||
await writer.WriteAsync("test_entry.bin", fileStream, new DateTime(2023, 1, 1));
|
||||
}
|
||||
|
||||
// Verify the archive was created and contains the entry
|
||||
Assert.True(File.Exists(outputPath));
|
||||
using var archive = ZipArchive.Open(outputPath);
|
||||
await using var archive = ZipArchive.Open(outputPath);
|
||||
Assert.Single(archive.Entries.Where(e => !e.IsDirectory));
|
||||
}
|
||||
|
||||
@@ -118,7 +128,11 @@ public class AsyncTests : TestBase
|
||||
cts.CancelAfter(10000); // 10 seconds should be plenty
|
||||
|
||||
var testArchive = Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz");
|
||||
#if NETFRAMEWORK
|
||||
using var stream = File.OpenRead(testArchive);
|
||||
#else
|
||||
await using var stream = File.OpenRead(testArchive);
|
||||
#endif
|
||||
await using var reader = await ReaderFactory.OpenAsync(
|
||||
new AsyncOnlyStream(stream),
|
||||
cancellationToken: cts.Token
|
||||
@@ -143,9 +157,14 @@ public class AsyncTests : TestBase
|
||||
public async ValueTask Stream_Extensions_Async()
|
||||
{
|
||||
var testFile = Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz");
|
||||
using var inputStream = File.OpenRead(testFile);
|
||||
var outputPath = Path.Combine(SCRATCH_FILES_PATH, "async_copy.bin");
|
||||
#if NETFRAMEWORK
|
||||
using var inputStream = File.OpenRead(testFile);
|
||||
using var outputStream = File.Create(outputPath);
|
||||
#else
|
||||
await using var inputStream = File.OpenRead(testFile);
|
||||
await using var outputStream = File.Create(outputPath);
|
||||
#endif
|
||||
|
||||
// Test the async extension method
|
||||
var buffer = new byte[8192];
|
||||
@@ -163,14 +182,22 @@ public class AsyncTests : TestBase
|
||||
public async ValueTask EntryStream_ReadAsync_Works()
|
||||
{
|
||||
var testArchive = Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz");
|
||||
#if NETFRAMEWORK
|
||||
using var stream = File.OpenRead(testArchive);
|
||||
#else
|
||||
await using var stream = File.OpenRead(testArchive);
|
||||
#endif
|
||||
await using var reader = await ReaderFactory.OpenAsync(new AsyncOnlyStream(stream));
|
||||
|
||||
while (await reader.MoveToNextEntryAsync())
|
||||
{
|
||||
if (!reader.Entry.IsDirectory)
|
||||
{
|
||||
#if NETFRAMEWORK
|
||||
using var entryStream = await reader.OpenEntryStreamAsync();
|
||||
#else
|
||||
await using var entryStream = await reader.OpenEntryStreamAsync();
|
||||
#endif
|
||||
var buffer = new byte[4096];
|
||||
var totalRead = 0;
|
||||
int bytesRead;
|
||||
@@ -196,8 +223,13 @@ public class AsyncTests : TestBase
|
||||
var compressedPath = Path.Combine(SCRATCH_FILES_PATH, "async_compressed.gz");
|
||||
|
||||
// Test async write with GZipStream
|
||||
#if NETFRAMEWORK
|
||||
using (var fileStream = File.Create(compressedPath))
|
||||
using (var gzipStream = new GZipStream(fileStream, CompressionMode.Compress))
|
||||
#else
|
||||
await using (var fileStream = File.Create(compressedPath))
|
||||
await using (var gzipStream = new GZipStream(fileStream, CompressionMode.Compress))
|
||||
#endif
|
||||
{
|
||||
await gzipStream.WriteAsync(testData, 0, testData.Length);
|
||||
await gzipStream.FlushAsync();
|
||||
@@ -205,10 +237,14 @@ public class AsyncTests : TestBase
|
||||
|
||||
Assert.True(File.Exists(compressedPath));
|
||||
Assert.True(new FileInfo(compressedPath).Length > 0);
|
||||
|
||||
#if NETFRAMEWORK
|
||||
using (var fileStream = File.Create(compressedPath))
|
||||
using (var gzipStream = new GZipStream(fileStream, CompressionMode.Compress))
|
||||
#else
|
||||
// Test async read with GZipStream
|
||||
using (var fileStream = File.OpenRead(compressedPath))
|
||||
using (var gzipStream = new GZipStream(fileStream, CompressionMode.Decompress))
|
||||
await using (var fileStream = File.Create(compressedPath))
|
||||
await using (var gzipStream = new GZipStream(fileStream, CompressionMode.Compress))
|
||||
#endif
|
||||
{
|
||||
var decompressed = new byte[testData.Length];
|
||||
var totalRead = 0;
|
||||
|
||||
@@ -16,7 +16,11 @@ public class GZipArchiveAsyncTests : ArchiveTests
|
||||
[Fact]
|
||||
public async ValueTask GZip_Archive_Generic_Async()
|
||||
{
|
||||
#if NETFRAMEWORK
|
||||
using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")))
|
||||
#else
|
||||
await using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")))
|
||||
#endif
|
||||
using (var archive = ArchiveFactory.Open(stream))
|
||||
{
|
||||
var entry = archive.Entries.First();
|
||||
@@ -38,8 +42,12 @@ public class GZipArchiveAsyncTests : ArchiveTests
|
||||
[Fact]
|
||||
public async ValueTask GZip_Archive_Async()
|
||||
{
|
||||
#if NETFRAMEWORK
|
||||
using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")))
|
||||
using (var archive = GZipArchive.Open(stream))
|
||||
#else
|
||||
await using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")))
|
||||
#endif
|
||||
await using (var archive = GZipArchive.Open(stream))
|
||||
{
|
||||
var entry = archive.Entries.First();
|
||||
await entry.WriteToFileAsync(Path.Combine(SCRATCH_FILES_PATH, entry.Key.NotNull()));
|
||||
@@ -61,8 +69,12 @@ public class GZipArchiveAsyncTests : ArchiveTests
|
||||
public async ValueTask GZip_Archive_NoAdd_Async()
|
||||
{
|
||||
var jpg = Path.Combine(ORIGINAL_FILES_PATH, "jpg", "test.jpg");
|
||||
#if NETFRAMEWORK
|
||||
using Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz"));
|
||||
using var archive = GZipArchive.Open(stream);
|
||||
#else
|
||||
await using Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz"));
|
||||
#endif
|
||||
await using var archive = GZipArchive.Open(stream);
|
||||
Assert.Throws<InvalidFormatException>(() => archive.AddEntry("jpg\\test.jpg", jpg));
|
||||
await archive.SaveToAsync(Path.Combine(SCRATCH_FILES_PATH, "Tar.tar.gz"));
|
||||
}
|
||||
@@ -71,34 +83,55 @@ public class GZipArchiveAsyncTests : ArchiveTests
|
||||
public async ValueTask GZip_Archive_Multiple_Reads_Async()
|
||||
{
|
||||
var inputStream = new MemoryStream();
|
||||
using (var fileStream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")))
|
||||
#if NETFRAMEWORK
|
||||
using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")))
|
||||
#else
|
||||
await using (Stream stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")))
|
||||
#endif
|
||||
{
|
||||
await fileStream.CopyToAsync(inputStream);
|
||||
await stream.CopyToAsync(inputStream);
|
||||
inputStream.Position = 0;
|
||||
}
|
||||
using var archive = GZipArchive.Open(inputStream);
|
||||
|
||||
await using var archive = GZipArchive.Open(inputStream);
|
||||
var archiveEntry = archive.Entries.First();
|
||||
|
||||
MemoryStream tarStream;
|
||||
#if NETFRAMEWORK
|
||||
using (var entryStream = await archiveEntry.OpenEntryStreamAsync())
|
||||
#else
|
||||
await using (var entryStream = await archiveEntry.OpenEntryStreamAsync())
|
||||
#endif
|
||||
{
|
||||
tarStream = new MemoryStream();
|
||||
await entryStream.CopyToAsync(tarStream);
|
||||
}
|
||||
var size = tarStream.Length;
|
||||
#if NETFRAMEWORK
|
||||
using (var entryStream = await archiveEntry.OpenEntryStreamAsync())
|
||||
#else
|
||||
await using (var entryStream = await archiveEntry.OpenEntryStreamAsync())
|
||||
#endif
|
||||
{
|
||||
tarStream = new MemoryStream();
|
||||
await entryStream.CopyToAsync(tarStream);
|
||||
}
|
||||
Assert.Equal(size, tarStream.Length);
|
||||
#if NETFRAMEWORK
|
||||
using (var entryStream = await archiveEntry.OpenEntryStreamAsync())
|
||||
#else
|
||||
await using (var entryStream = await archiveEntry.OpenEntryStreamAsync())
|
||||
#endif
|
||||
{
|
||||
var result = TarArchive.IsTarFile(entryStream);
|
||||
Assert.True(result);
|
||||
}
|
||||
Assert.Equal(size, tarStream.Length);
|
||||
#if NETFRAMEWORK
|
||||
using (var entryStream = await archiveEntry.OpenEntryStreamAsync())
|
||||
#else
|
||||
await using (var entryStream = await archiveEntry.OpenEntryStreamAsync())
|
||||
#endif
|
||||
{
|
||||
tarStream = new MemoryStream();
|
||||
await entryStream.CopyToAsync(tarStream);
|
||||
|
||||
Reference in New Issue
Block a user