41 Commits

Author SHA1 Message Date
tommady
da9b32a366
Fix 7z BadSignature error when compressing and then listing (#819) 2025-05-17 13:00:25 -03:00
João Marcos
c8f97197c3
Give good error messages when archive extensions are invalid (#817)
+ simplify unit tests, don't require them to start the logger

+ unrelated TODOs
2025-05-06 00:08:38 -03:00
Amyspark
07967927dd
feat: Make bzip3 optout (#814)
Co-authored-by: João Marcos <marcospb19@hotmail.com>
2025-05-03 20:43:59 -03:00
tommady
1ff1932e3d
Merge folders in decompression (#798)
Signed-off-by: tommady <tommady@users.noreply.github.com>
2025-05-01 04:20:33 -03:00
Talison Fabio
c97bb6a2d6
feat: Add flag '--no-smart-unpack' to disable smart unpack (#809) 2025-04-28 11:03:50 -03:00
Talison Fabio
267ce7672e
feat: ignore .git/ when -g/--gitignore is set (#795) 2025-04-17 13:56:02 -03:00
tommady
b9b1e11303
Store symlinks by default and add --follow-symlinks to toggle it (#789) 2025-04-16 17:43:46 -03:00
Talison Fabio
35a3f3627c fix: remove unnecessary allow_piped_choice check config on test 2025-04-04 18:30:50 -03:00
Talison Fabio
184bafc0fa test: format 2025-04-04 18:30:50 -03:00
Talison Fabio
8c478a3f9d test: fix renamed test and implement to check disabled smart_unpack 2025-04-04 18:30:50 -03:00
Talison Fabio
31dd9eb923
feat: Add rename option in overwrite menu (#779)
* feat: Add generic Choice prompt implementation

* feat: use ChoicePrompt in user_wants_to_continue method

* feat: add "rename" option in ask_to_create_file method

* feat: check accessible mode for choises prompt

* feat: rename file in "ask_to_create_file" rename action

* feat: create "resolve_path" for smart_unpack to deal with rename

* feat: use resolve_path instead clear_path in smart_unpack

* fix: remove unused clear_path function

* chore: cargo fmt

* Add docs

* refactor: rename "resolve_path" method

* chore: fix ChoicePrompt doc

* doc: improve doc of resolve_path_conflict

* fix: out of bound when type answer bigger than some choice

* doc: improve rename_path docs

* chore: cargo fmt

* chore: revert user_wants_to_continue

* fix: update error message when find EOF in choise prompt response

* revert: update message error in ChoicePrompt instead Confirmation

* test: add overwrite and cancel tests

* test: Add rename test with "allow_piped_choice" new feature

* cargo fmt

* test: create test for autoincrement new renamed files
2025-03-30 19:19:21 -03:00
Pascal Hertleif
ecc05cdd60 feat: Add support for Brotli
Using https://crates.io/crates/brotli/7.0.0

#203
2025-02-12 13:59:18 -03:00
João Marcos P. Bezerra
e405690d35 chore: tweak tests so they run faster 2024-11-20 05:23:20 -03:00
João Marcos P. Bezerra
ca31742394 run clippy for tests too 2024-11-17 17:07:36 -03:00
Jonas Frei
32b50e9c7a Added test code, handled BlockSize error, block size = 16MiB
Signed-off-by: Jonas Frei <freijon@pm.me>
2024-11-17 14:50:02 -03:00
João M. Bezerra
5dac8431f2 Fix --format parsing extensions with dots
Also improve error reporting for `--format` with malformed or
unsupported extensions

This commit is very messy, as it also does an refac in the project,
which should ideally be in a separated commit
2024-09-07 00:24:50 -03:00
Ryan Roden-Corrent
a7fe78fc68 Write decompressed stdin to stdin-output. 2024-08-26 03:40:52 -03:00
Ryan Roden-Corrent
77c1a4e9db Support decompressing stdin.
Fixes #687.

If "-" is passed as a filename, decompress data from stdin.

Currently `--format` must be passed as well, but as a next step,
we could try to infer the format from magic numbers.

As stdin is not connected to the terminal, we cannot prompt for Y/N
when warning about decompression in memory, for e.g. zip. Just default
to No, and require passing "-y" in these cases.

For zip, we have to buffer the whole stream in memory to seek into it,
just as we do with a chained decoder like `.zip.bz`.

The rar format requires an actual file (not an `impl Read`), so
we write a temp file that it can decode.

When decoding a single-file archive (e.g. file.bz), the output filename
is just `-`, since we don't know the original filename. I had to add
a bit of a hack to the tests to work around this. Another option
would be to interpret "-d" as a destination filename in this case.

When decoding a multi-file archive, I decided to unpack directly into
the destination directory, as this seemed like a better experience than
adding a top-level "-" folder inside the destination.
2024-08-26 03:40:52 -03:00
Ryan Roden-Corrent
4a323aeba8 Fix confusion between empty/nonempty test.
The single_empty_file test was writing random content to the file,
whereas the single_file test was writing an empty file.
Only the latter tested different levels, so I figured that test
was the one that should be using actual file content.
2024-07-14 18:22:44 -03:00
Antonios Barotsis
8e43cd2afa Change existing method docs to valid rustdoc 2024-02-28 20:27:32 -03:00
cyqsimon
fa2d214fee Feature-gate RAR support 2023-12-14 23:32:17 -03:00
João Marcos P. Bezerra
f3db923d83 Decrease memory usage in ARMv7 CI
Our GitHub Actions CI was failing because the ARMv7 systems use QEMU
which consumes more memory than usual, by decreasing the memory usage,
we expect to make it all work again.
2023-11-28 20:29:28 -03:00
figsoda
4bea6af526 add 7z to tests 2023-11-25 21:33:22 -03:00
Łukasz Krawiec
dade163243 added support for listing and decompressing .rar archives 2023-11-15 08:59:00 -03:00
João M. Bezerra
dd51525c6c decrease RAM usage in integration tests
by decreasing the size of extension chains
2023-09-16 15:21:08 -03:00
João M. Bezerra
0151238c87 make CI faster by decreasing size of tests
make fuzzing tests create less files, with half the size and run less
test cases

should speed up by a magnitude of ~5.0x
2023-09-16 15:21:08 -03:00
figsoda
c58d2b416a tests: reduce maximum compression level 2023-03-20 14:35:41 -04:00
xgdgsc
e92b9ff723 option level tests 2023-03-18 12:23:59 +08:00
xgdgsc
653ff976f5 clamp , merge test 2023-03-17 22:09:20 +08:00
xgdgsc
d9ffd42c8f 🐛 fix 2023-03-17 21:36:31 +08:00
xgdgsc
ffa16c7d6e add test, move 2023-03-17 17:59:53 +08:00
João M. Bezerra
14025c6816 remove use_small_heuristics = "Max" from rustfmt
and update edition to 2021
2022-06-04 13:06:52 -03:00
LovecraftianHorror
ec6c3b92a5
Cleanup integration tests (#238)
* Actually fill dummy files with random data

* Switch rem logic to more obvious random range

* Test all available formats

* Enable accessibility mode in tests to drastically reduce runtime
2022-01-13 14:40:03 -03:00
figsoda
52a8acf2e1 support snappy format 2021-12-07 13:59:56 -05:00
João Marcos Bezerra
3bf9a1e7a1 Revert "Add interactive integration tests (#208)"
This reverts commit 4d9f5e412f69e60d0b71819f5f0d8181e42e897e.
2021-11-16 18:25:25 -03:00
sigmaSd
4d9f5e412f
Add interactive integration tests (#208) 2021-11-16 17:43:17 -03:00
Nbiba Bedis
0660c2fe59 Remove Lzip because its incorrect, and improve extention comparison 2021-11-13 09:46:08 +01:00
figsoda
dedd254ace switch from lz4_flex to lzzzz, enable lz4 tests 2021-11-09 21:26:04 -05:00
figsoda
2b9023e180 misc comments and wording changes 2021-11-05 23:27:20 -04:00
figsoda
253cedcf60 crate dir-diff -> fn assert_same_directory 2021-11-05 23:27:20 -04:00
figsoda
35df50857d rewrite tests 2021-11-05 23:27:20 -04:00