Adam Hathcock
9cf2b3129c
fixed up async writer
2026-01-13 13:54:15 +00:00
Adam Hathcock
0502ff545e
test fixes and fmt
2026-01-12 15:01:29 +00:00
Adam Hathcock
fce4a96718
make Writable interfaces for archive
2026-01-12 14:57:13 +00:00
Adam Hathcock
38203fb950
Fix async reader variable types - Remove double await on ReaderFactory.OpenAsync and use IAsyncReader
...
- Removed 'await' keyword before ReaderFactory.OpenAsync() calls since the method returns IAsyncReader directly (not Task)
- Changed ZipReader.Open() to ReaderFactory.OpenAsync() in Zip64AsyncTests.ReadForwardOnlyAsync()
- Changed TarReader.Open() to ReaderFactory.OpenAsync() in TarReaderAsyncTests.Tar_BZip2_Entry_Stream_Async()
- Fixed EntryStream disposal from 'await using' to 'using' since EntryStream doesn't implement IAsyncDisposable
- These changes fix compilation errors where async methods were being called on IReader (synchronous) instead of IAsyncReader (asynchronous)
2026-01-12 14:14:46 +00:00
Adam Hathcock
c1f8580d89
Remove unnecessary ValueTask wrappers from async factory methods
...
Change return types from ValueTask<T> to direct interface types (IAsyncArchive, IAsyncReader, IWriter) for wrapper methods that don't perform async work. This eliminates unnecessary async state machine allocations while maintaining the same public API behavior.
Changes:
- Interface definitions: Updated IArchiveFactory, IMultiArchiveFactory, IReaderFactory, IWriterFactory
- Concrete factories: Updated archive factories (Zip, Tar, Rar, GZip, SevenZip) and reader-only factories (Ace, Arc, Arj)
- Static factory methods: Updated ReaderFactory, ArchiveFactory, WriterFactory to use new signatures
- Archive classes: Updated static OpenAsync methods in ZipArchive, TarArchive, RarArchive, SevenZipArchive, GZipArchive
- Supporting changes: Updated Factory.cs and async polyfills
Performance benefit: Reduced GC pressure by eliminating unnecessary state machine overhead for non-async wrapper methods.
2026-01-12 13:16:44 +00:00
Adam Hathcock
05ebf22009
Start using the interface to draw distinction between async and sync
2026-01-12 12:08:25 +00:00
Adam Hathcock
a35e65ee42
use ifdefs for creating files?
2026-01-08 16:52:23 +00:00
Adam Hathcock
17cd934b5b
use async methods where we can
2026-01-08 16:24:11 +00:00
Adam Hathcock
3747a27109
Task to ValueTask
2026-01-08 12:35:12 +00:00
Adam Hathcock
b501bac54a
better names for new interfaces
2026-01-08 12:02:26 +00:00
Adam Hathcock
7aec98d652
read async interface for reader
2026-01-08 11:28:15 +00:00
Adam Hathcock
bb53d1e1c6
entrystream fixes and fmt
2025-10-29 08:41:05 +00:00
Adam Hathcock
aca97c2c6c
add rarcrc tests
2025-10-28 16:48:05 +00:00
copilot-swe-agent[bot]
b4352fefa5
Fix code formatting per CSharpier standards
...
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2025-10-28 11:32:39 +00:00
copilot-swe-agent[bot]
a93a3f0598
Address code review feedback - fix formatting
...
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2025-10-28 10:26:31 +00:00
copilot-swe-agent[bot]
084f81fc8d
Format code with CSharpier
2025-10-28 10:23:57 +00:00
copilot-swe-agent[bot]
d148f36e87
Add support for empty directory entries in archives
...
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2025-10-28 10:22:58 +00:00
copilot-swe-agent[bot]
4067b6ed2c
Fix GZip extraction for non-seekable streams
...
- Modified GZipFilePart to only access stream.Position when stream.CanSeek is true
- Modified GZipArchiveEntry.OpenEntryStream to check CanSeek before accessing Position
- Added test case GZip_Archive_NonSeekableStream to verify non-seekable stream support
- All existing tests pass
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2025-10-27 11:08:38 +00:00
Adam Hathcock
f21b982955
adds more async tests and overloads to make things writable and async
2025-10-27 10:31:10 +00:00
Adam Hathcock
c696197b03
formatting
2025-10-27 10:19:24 +00:00
Adam Hathcock
738a72228b
added fixes and more async tests
2025-10-27 10:15:06 +00:00
Adam Hathcock
fdca728fdc
add some dispose async
2025-10-27 09:47:15 +00:00
Nanook
21f14cd3f2
Added IStreamStack for debugging and configurable buffer management. Added SharpCompressStream to consolodate streams to help simplify debugging. All unit tests passing.
2025-07-20 17:35:22 +01:00
Adam Hathcock
95caffe607
Merge remote-tracking branch 'origin/master' into exception-normalization
...
# Conflicts:
# src/SharpCompress/Common/Rar/RarVolume.cs
# src/SharpCompress/Common/SevenZip/SevenZipFilePart.cs
# src/SharpCompress/Compressors/LZMA/LZipStream.cs
2025-04-28 15:59:34 +01:00
Morilli
525b309d37
Add failing test
2024-06-04 10:33:32 +02:00
Adam Hathcock
e4d5b56951
fix more nulls and tests
2024-04-23 15:08:32 +01:00
Adam Hathcock
e96366f489
Entry can be null and remove other ! usages
2024-04-18 13:24:03 +01:00
Adam Hathcock
0299232cb5
just using rider to clean up
2024-03-14 08:37:17 +00:00
Adam Hathcock
16e8dd447b
update csharpier
2023-03-21 13:14:08 +00:00
Adam Hathcock
b01e97b168
more clean up
2022-12-20 15:20:49 +00:00
Adam Hathcock
7da10795a1
csharpier
2022-12-20 15:14:22 +00:00
Adam Hathcock
959bbdcf1b
big clean up
2022-12-20 15:06:44 +00:00
Adam Hathcock
970e31a1b1
cleanup and run csharpier
2022-12-20 13:45:47 +00:00
Nanook
4eb1fe0b80
RarArchive has Min/MaxVersion. RarEntry has Volumne Indexes. GZ CRC fix.
2022-07-15 21:15:10 +01:00
Adam Hathcock
2dd17e3882
Be explicit about zip64 extra field sizes. Formatting
2021-02-13 07:05:53 +00:00
Adam Hathcock
0f06c3d934
Fix rewindable stream to expose length
2021-01-13 14:40:36 +00:00
Adam Hathcock
9d5cb8d119
Add GZip Reader tests
2021-01-13 10:42:59 +00:00
Adam Hathcock
ee17dca9e5
Fix formatting
2021-01-09 13:36:30 +00:00
Adam Hathcock
8598885258
Read trailer for GZip for CRC and uncompressed size
2021-01-09 13:22:06 +00:00
avao
0268713960
UT and Fix for: Index out of range exception from gzip #532
2020-10-13 19:58:11 +01:00
Matt Kotsenas
0473ec1626
Open test archives as read
...
Update `RarHeaderFactoryTests` and `GZipArchiveTests` to open the test
readers as `FileAccess.Read` and `FileShare.Read` to prevent issues with
multiple test from trying to open exclusive access to files.
2018-07-11 16:21:19 -07:00
Matt Kotsenas
4cd80e96f3
Simplify GZip bad compression test
2018-07-11 16:21:19 -07:00
Matt Kotsenas
7b338511cc
Create unique scratch path per test
...
Tests fail in Visual Studio because they try to reuse the same scratch
working space, and each test is responsible for resetting the space. To
simplify the test code:
1. Make `TestBase` `IDisposable` and have it create the scratch space
2. Remove `ResetScratch()` as it is now handled by the base class
3. Add a unique ID to each scrach space folder to prevent collisions
2018-07-10 11:46:44 -07:00
Adam Hathcock
a361d41e68
Fix test namespaces
2017-05-30 15:14:02 +01:00
Adam Hathcock
8be931bbcb
Doing some resharper clean up
2017-05-19 10:52:49 +01:00
Adam Hathcock
ee64670755
Move test folder to be tests
2017-05-19 09:19:37 +01:00