Timofey Solomko
17bd85ba5d
[Tests] Add a test for multiple concatenated LZ4 frames
2021-10-01 14:41:16 +03:00
Timofey Solomko
ba15f96312
[LZ4] Implement decompression of multiple concatenated frames
2021-10-01 14:41:16 +03:00
Timofey Solomko
86c31f7462
[swcomp] Add options to lz4 command to support dictionary decompression
2021-09-27 14:29:30 +03:00
Timofey Solomko
8e31f60b10
[LZ4] Check that dictionary is supplied if dictID is present in the frame
2021-09-27 10:46:27 +03:00
Timofey Solomko
2603ca98ec
[Tests] Add a test for LZ4 which has dictID
2021-09-27 10:45:54 +03:00
Timofey Solomko
4df0d5feb2
[LZ4] Change dictionaryID type to UInt32?
...
This allows us to verify the value on type level, instead of by using the precondition. It is also okay to use UInt32 instead of Int ("currency type"), since this API is supposed to be used by advanced users only.
2021-09-27 10:43:26 +03:00
Timofey Solomko
725a3b58bb
[Tests] Add a test for LZ4 dictionary decompression
2021-09-26 19:52:01 +03:00
Timofey Solomko
4bc7d37d7d
[LZ4] Implement dictionary decompression
2021-09-26 19:49:35 +03:00
Timofey Solomko
d8f7b8a8f5
[swcomp] Add benchmark command for LZ4 decompression
2021-09-26 16:06:09 +03:00
Timofey Solomko
8b0715b5a2
[swcomp] Add lz4 command
2021-09-26 16:03:56 +03:00
Timofey Solomko
8f1a1e0517
[Tests] Add tests for LZ4 frames with various block sizes
2021-09-26 15:55:36 +03:00
Timofey Solomko
e321f4a49e
[Tests] Add a test for LZ4 legacy frame with multiple blocks
2021-09-26 15:26:27 +03:00
Timofey Solomko
7440d3c95e
[Tests] Add tests for LZ4 legacy frame format
2021-09-26 15:19:46 +03:00
Timofey Solomko
8e32397e7c
[LZ4] Implement legacy frame processing
2021-09-26 15:18:57 +03:00
Timofey Solomko
c6bf66fbad
[Tests] Add a test for LZ4 with a skippable frame in the beginning
2021-09-26 14:37:50 +03:00
Timofey Solomko
d430e939f8
[LZ4] Implement skipping of skippable frames
2021-09-26 14:37:31 +03:00
Timofey Solomko
cfe0416547
[LZ4] Reorganize implementation to support other frame types
2021-09-26 14:24:59 +03:00
Timofey Solomko
8715136094
[Tests] Add "bad file" tests for LZ4
2021-09-26 14:14:14 +03:00
Timofey Solomko
490d5ad816
Make DataError conform to Equatable
2021-09-26 14:03:38 +03:00
Timofey Solomko
cb89e77857
[LZ4] Add truncation checks in block processing
2021-09-26 13:52:34 +03:00
Timofey Solomko
c4946a00a3
[LZ4] Add checks for end of block restrictions
2021-09-26 13:43:47 +03:00
Timofey Solomko
f44fd90b2c
[Tests] Add a test for LZ4 with dependent blocks
2021-09-26 13:33:32 +03:00
Timofey Solomko
0b2dd279a9
[LZ4] Implement dependent blocks
2021-09-26 13:32:32 +03:00
Timofey Solomko
f27e0eef7c
Add LZ4 to SPM package manifest
2021-09-26 12:55:20 +03:00
Timofey Solomko
c6addda952
[LZ4] Implement decoding of independent blocks
2021-09-25 22:56:51 +03:00
Timofey Solomko
39d36a6805
[LZ4] Implement block loop and some checks for truncated data
2021-09-25 21:44:53 +03:00
Timofey Solomko
bb39e6e36d
Remove DataError.encrypted
...
I think, this case is covered by DataError.unsupportedFeature, and we don't want redundant cases, since we're trying to minimize the amount of different error types.
2021-09-25 15:50:21 +03:00
Timofey Solomko
2daf285539
[LZ4] Implement content checks
2021-09-24 20:55:39 +03:00
Timofey Solomko
a233ec8d08
[LZ4] Skip magic number when computing header checksum
2021-09-24 20:41:39 +03:00
Timofey Solomko
c2278f781f
[LZ4] Fix issues related to data slicing in xxHash32
2021-09-24 20:41:19 +03:00
Timofey Solomko
9e14fa159f
[XZ] Make rotation operator fileprivate and simplify its implementation
2021-09-24 20:05:42 +03:00
Timofey Solomko
7fcd5a7554
[Tests] Add tests for xxHash32
2021-09-24 20:05:15 +03:00
Timofey Solomko
885d2e3828
[LZ4] Implement xxHash32
2021-09-24 20:04:36 +03:00
Timofey Solomko
c8b4020a9b
[LZ4] Implement Frame Descriptor processing
2021-09-24 18:55:41 +03:00
Timofey Solomko
3cb6cac20b
Add two more cases to DataError
2021-09-24 18:55:31 +03:00
Timofey Solomko
46590ad631
[LZ4] Add an empty implementation of xxHash-32
2021-09-24 18:55:28 +03:00
Timofey Solomko
4609fc6877
[Tests] Add basic tests for LZ4
2021-09-23 22:01:15 +03:00
Timofey Solomko
de4fcb29cf
[LZ4] Add an empty implementation of LZ4
2021-09-23 21:50:35 +03:00
Timofey Solomko
135f4c3bcd
Add DataError enum
...
This enum will be used going forward instead of algorithm-specific error enums.
2021-09-23 21:46:30 +03:00
Timofey Solomko
2efdb3ef8c
Prepare for 4.6.1 release
2021-09-21 13:29:03 +03:00
Timofey Solomko
324a2dafe0
CI: add swift 5.5 on all platforms
...
However, linux and windows will fail at the moment.
2021-09-21 13:22:12 +03:00
Timofey Solomko
7d53b4aee3
Upgrade xcode project to xcode 13
2021-09-21 13:20:15 +03:00
Timofey Solomko
7c6c98b3a3
[ZIP] Remove unused import
2021-09-20 12:00:12 +03:00
Timofey Solomko
86a9caf337
[ZIP] Unify the code for finding CP437 enconding
2021-09-19 18:28:25 +03:00
Timofey Solomko
33cb74cdeb
[Tests] Add tests for different format minor versions of 7-Zip
2021-09-19 17:19:05 +03:00
Timofey Solomko
aefacf3e16
[7-Zip] Change SevenZipProperty from class to struct
2021-09-19 17:17:57 +03:00
Timofey Solomko
f5ecfec6b6
[Tests] Add various tests which try to process empty Data
2021-09-19 15:49:38 +03:00
Timofey Solomko
791beca597
[LZMA2] Fix a crash when trying to process empty data
...
Now it throws LZMAError.rangeDecoderInitError instead.
2021-09-19 15:49:09 +03:00
Timofey Solomko
15a99d1448
[swcomp] Replace ContainerCommand.Entry with ContainerType
2021-09-19 15:15:55 +03:00
Timofey Solomko
19c788eb30
[swcomp] Output uncertainty of the bench speed using avg speed units
2021-09-13 17:33:09 +03:00