1539 Commits

Author SHA1 Message Date
Timofey Solomko 1000194a7e [swcomp] Make all classes final 2022-01-09 14:44:40 +03:00
Timofey Solomko 9241987e53 [swcomp] Add writer-tar benchmark
In addition move create-tar benchmark into BenchmarkGroup.swift file
2022-01-09 14:36:24 +03:00
Timofey Solomko 3caacff134 [swcomp] Add FileHandle closeCompat() extension
This is the same one used in tests.
2022-01-09 14:33:22 +03:00
Timofey Solomko 3388cb047b [TAR] Rename the second argument of TarWriter.init to force
This is for consistency with TarContainer.create.
2022-01-09 14:17:00 +03:00
Timofey Solomko c8d8c7b4fd [TAR] TarReader.read now throws DataError.truncated if the entry data is truncated 2022-01-08 23:13:46 +03:00
Timofey Solomko a3677a0cb7 [TAR] TarReader now sets TarEntry.data to nil for directories
This is the same behavior as TarContainer.open.
2022-01-08 23:00:21 +03:00
Timofey Solomko 79a0aa8d08 Fix compilation issues on Linux and Windows due to the absence of autoreleasepool 2022-01-08 15:47:16 +03:00
Timofey Solomko c4aab7b648 [swcomp] Remove --use-rw-api option from tar command
Swcomp now uses TarReader/Writer automatically, if possible (when there is no compression involved).
2022-01-08 15:38:58 +03:00
Timofey Solomko 79295db930 Update copyright year to 2022 2022-01-08 15:02:59 +03:00
Timofey Solomko a898c9aabe [swcomp] Use autoreleasepool for tar creating in rw-api version 2022-01-08 14:35:09 +03:00
Timofey Solomko 4c282c6fae [swcomp] Fix incorrect tar info printing when using TarReader 2022-01-08 14:34:34 +03:00
Timofey Solomko de9cf3916c [swcomp] Rewrite tar command info and extract rw-api versions using TarReader.process 2022-01-08 14:33:50 +03:00
Timofey Solomko ddb789b645 [TAR] Add TarReader.process(_:) 2022-01-08 14:33:50 +03:00
Timofey Solomko fe9453173a [TAR] Rename TarReader.next() to read() 2022-01-08 14:33:40 +03:00
Phil Mitchell c5bbc713b3 [swcomp] Use autoreleasepool to immediately free memory when untarring file with rw-api 2022-01-02 11:13:17 -08:00
Timofey Solomko 0a5378a016 [swcomp] Add a second version of TarCommand.execute for use-rw-api option
It doesn't support any of the compression options, as well as format option.
2021-11-21 12:37:36 +03:00
Timofey Solomko 643f2c9866 [TAR] Remove argument label from TarWriter.append 2021-11-21 12:36:56 +03:00
Timofey Solomko eaa0ae4b9b [swcomp] Add TarEntry.generateEntries function which uses TarWriter 2021-11-21 12:36:16 +03:00
Timofey Solomko 7733b293d3 [swcomp] Restructure writeEntries into writeFile and writeDirectory 2021-11-21 12:28:38 +03:00
Timofey Solomko c5efb9bf39 [swcomp] Clarify a couple of error messages 2021-11-21 11:56:07 +03:00
Timofey Solomko 4545d6b1f0 [TAR] Add TarWriter 2021-11-20 23:45:05 +03:00
Timofey Solomko 6306365cde [swcomp] Add use-rw-api option to tar command
It enables usage of new TarReader/Writer APIs. For now only info option supports this.
2021-11-20 21:33:05 +03:00
Timofey Solomko 7c1a12bb0d [TAR] Initialize optional vars explicitly in TarParser and TarReader 2021-11-20 21:32:29 +03:00
Timofey Solomko 44ff3de44f [TAR] Add conditional compilation for FileHandle to fix issues with Swift 5.1 2021-11-20 17:51:34 +03:00
Timofey Solomko 49becf4a9f [TAR] Remove getChunk and add getOffset and set(offset:) 2021-11-20 17:48:04 +03:00
Timofey Solomko 61eac884da [TAR] Add TarReader 2021-11-20 12:28:33 +03:00
Timofey Solomko 1e8ad0e2a5 Prepare for 4.7.0 release 2021-11-04 12:12:10 +03:00
Timofey Solomko 6971656b63 Two minor changes: make Checksums a caseless enum, fix a grammar mistake in a code comment 2021-11-04 12:10:39 +03:00
Timofey Solomko 10905dc588 [docs] Minor fixes to LZ4 documentation 2021-11-03 20:41:48 +03:00
Timofey Solomko 9f7efc9276 [docs] Add documentation for LZ4 compression functions 2021-11-03 20:31:08 +03:00
Timofey Solomko d73fc791b1 [docs] Add documentation for DataError 2021-11-03 20:19:41 +03:00
Timofey Solomko e3ffb812b9 [docs] Add documentation for LZ4 decompression functions 2021-11-03 20:13:42 +03:00
Timofey Solomko 5d63df36cf Prepare for the test release of 4.7.0 2021-10-30 13:06:45 +03:00
Timofey Solomko a3332364a7 [Tests] Add many tests that check that checksum errors are thrown correctly 2021-10-29 19:26:33 +03:00
Timofey Solomko 20e8db701f [Tests] Add a test for correct usage of CP437 in ZIP 2021-10-28 19:54:25 +03:00
Timofey Solomko 088d63ac03 [swcomp] Add --use-format option to tar command
This option allows to specify which TAR format to use when creating a container.
2021-10-25 20:01:00 +03:00
Timofey Solomko 01c106228b [swcomp] Replace ConvertibleFromString extension for BZip2.BlockSize with an empty conformance
SwiftCLI provides a default implementation for enums with Int raw values.
2021-10-25 20:00:22 +03:00
Timofey Solomko 68fd0e8f49 [swcomp] Compress after creating a tar container 2021-10-24 19:07:56 +03:00
Timofey Solomko a47431f86d [Deflate] Don't use match index as a cycling index
This was the cause of incorrect results in some rare cases.
2021-10-24 15:03:53 +03:00
Timofey Solomko dc93436269 [swcomp] Update to use SwiftCLI's property wrappers
This should fix all deprecation warnings.
2021-10-24 12:47:22 +03:00
Timofey Solomko 29eb6f346c [swcomp] Upgrade SwiftCLI to 6.0 2021-10-23 21:45:22 +03:00
Timofey Solomko deeb02fb5c [LZ4] Remove remaining TODOs 2021-10-23 21:14:44 +03:00
Timofey Solomko 04aa3bd034 [LZ4] Add comments about implementation 2021-10-23 21:04:21 +03:00
Timofey Solomko 6e920a4ecc [LZ4] Fix compilation issues with swift pre-5.5 2021-10-22 23:56:54 +03:00
Timofey Solomko f64c5264f8 [LZ4] Remove extra TODOs 2021-10-22 22:43:50 +03:00
Timofey Solomko 7a43328b8e [BZip2] Rename crc32 function for bzip2 2021-10-22 21:55:33 +03:00
Timofey Solomko 33fd3001a0 [LZ4] Don't use optionals for storing dictionary in encoder 2021-10-22 21:51:58 +03:00
Timofey Solomko 8398f25b2b [swcomp] Don't accept block sizes larger than 4MB in LZ4 compression 2021-10-22 21:01:13 +03:00
Timofey Solomko c1496428d5 [LZ4] Don't accept block sizes larger than 4MB in compression
This matches the behavior of the reference implementation and allows to remove a couple of additional checks.
2021-10-22 20:53:56 +03:00
Timofey Solomko c2465fcd75 [LZ4] Verify in decoder that block size is not larger than max block size 2021-10-22 20:52:34 +03:00