537 Commits

Author SHA1 Message Date
Marcus Holland-Moritz
36789b4be4 feat: use sane per-category defaults for rewriting 2025-05-18 13:54:06 +02:00
Marcus Holland-Moritz
4aa2107f28 test: add metadata rebuilding tests 2025-05-18 13:54:06 +02:00
Marcus Holland-Moritz
ac2443cd0b feat: add metadata version history 2025-05-18 13:54:04 +02:00
Marcus Holland-Moritz
c6416084c9 feat: add metadata_builder and --rebuild-metadata option 2025-05-18 13:52:15 +02:00
Marcus Holland-Moritz
d577cd04bf feat: optionally add category metadata to file system metadata 2025-05-15 20:50:24 +02:00
Marcus Holland-Moritz
3790c5451e refactor: factor out metadata_builder from scanner 2025-05-15 20:49:38 +02:00
Marcus Holland-Moritz
5b3a5e1f3c test(block_merger): don't excessively sleep on Windows 2025-05-14 07:09:49 +02:00
Marcus Holland-Moritz
3a49825eca fix(rewrite_filesystem): add history unless --no-history is given 2025-05-14 06:50:13 +02:00
Marcus Holland-Moritz
f01cf2c76a fix(filesystem_writer): segfault on bad_compression_ratio_error
When recompressing a filesystem where some blocks cannot be compressed
using the selected algorithm because of a `bad_compression_ratio_error`,
the resulting `block` was left empty after the refactoring done in
06f8728cc. It's a really easy fix, pretty much just doing what the code
did before the refactor: initialize `block` with the decompressed data
before attempting to compress it. Since `clang-format` reformatted the
whole lambda after the change, I've pulled the lamdba body out into a
separate function, which makes this change much bigger than it is.
2025-05-14 06:47:32 +02:00
Marcus Holland-Moritz
7b0b1cdc0c refactor: introduce and use safe_localtime() 2025-05-14 06:47:32 +02:00
Marcus Holland-Moritz
7508b1db38 feat: use new minimal LRU cache implementation 2025-05-09 11:48:52 +02:00
Marcus Holland-Moritz
1fec8314da refactor: make proper use of cpptrace with ENABLE_STACKTRACE 2025-05-09 11:48:52 +02:00
Marcus Holland-Moritz
07458eab80 fix(filesystem_parser): make find_image_offset more reliable 2025-04-21 17:53:56 +02:00
Marcus Holland-Moritz
24f87bbeaa chore: drop DWARFSEXTRACT_MINIMAL completely
Extracting by pattern is a mandatory feature for the `fuse-extract` use
case, so no point in being able to disable this.
2025-04-21 17:53:56 +02:00
Marcus Holland-Moritz
e6ae08475a feat: allow disabling advanced features in dwarfs-fuse-extract 2025-04-13 22:14:57 +02:00
Marcus Holland-Moritz
1675b90d71 test: rename filter_test to tool_filter_test for uniqueness
This is essential when building a monolithic test as it would otherwise
collide with the `filter_test` from `dwarfs_test.cpp`.
2025-04-13 16:29:09 +02:00
Marcus Holland-Moritz
bd961ccfb4 test: (unnecessary) refactor to use span instead of vector 2025-04-13 16:29:09 +02:00
Marcus Holland-Moritz
8b6002a4e3 test(badfs_test): refactor so we don't require main function 2025-04-13 16:29:09 +02:00
Marcus Holland-Moritz
9996748134 feat: replace vector_byte_buffer with malloc_byte_buffer
The latter doesn't always explicitly initialize the allocated memory,
which can help improve performance.
2025-04-09 21:42:32 +02:00
Marcus Holland-Moritz
d8a8d3250c test: test fragment order 2025-04-08 13:12:25 +02:00
Marcus Holland-Moritz
6d0e37abab test: hotness categorizer 2025-04-08 12:38:09 +02:00
Marcus Holland-Moritz
2f30d0c150 test: make sure mmap_mock knows its path 2025-04-08 12:38:09 +02:00
Marcus Holland-Moritz
ca5c1bba0b refactor: use file_access abstraction in hotness categorizer 2025-04-08 12:38:09 +02:00
Marcus Holland-Moritz
5529c54acf test: exercise preload_category and test analysis_file option 2025-04-08 12:38:09 +02:00
Marcus Holland-Moritz
8f4d400ced test: exercise preload_all option 2025-04-08 09:43:44 +02:00
Marcus Holland-Moritz
a622d89f9c fix: compatibility with boost process v2 2025-04-07 21:32:26 +02:00
Marcus Holland-Moritz
440299eb26 fix(tool_main_test): don't rely on having support for LZ4 compression 2025-04-07 21:32:26 +02:00
Marcus Holland-Moritz
e71cc49353 feat(dwarfs): add block_allocator option to FUSE driver 2025-04-07 21:32:26 +02:00
Marcus Holland-Moritz
d84d7535c7 refactor(categorizer): allow access to root and relative paths 2025-04-07 21:32:26 +02:00
Marcus Holland-Moritz
d786083d3d chore: move everything but the writer code from GPLv3 to MIT license 2025-04-07 21:32:26 +02:00
Marcus Holland-Moritz
4e0ea2c165 refactor: separate compression / decompression 2025-04-07 21:32:26 +02:00
Marcus Holland-Moritz
dde5dcaead refactor(checksum): reorganize code to be more linker friendly 2025-04-07 21:32:26 +02:00
Marcus Holland-Moritz
9eb5ca94b1 refactor: migrate the only folly::Benchmark test to google-benchmark 2025-04-07 21:32:26 +02:00
Marcus Holland-Moritz
39950e085e refactor: new start_compression API for more flexible buffer handling 2025-04-07 21:31:47 +02:00
Marcus Holland-Moritz
06f8728cc3 refactor: replace block_data with byte_buffer 2025-04-07 21:30:00 +02:00
Marcus Holland-Moritz
501f5c38f4 refactor: simplify block_decompressor API 2025-04-07 16:54:04 +02:00
Marcus Holland-Moritz
2501cf7783 chore(nilsimsa): add tests and benchmark 2025-03-31 14:16:09 +02:00
Marcus Holland-Moritz
f992d2c847 refactor(entry_factory): don't rebuild path for every entry 2025-03-31 14:16:09 +02:00
Marcus Holland-Moritz
cac5b778e8 refactor: replace multiversioning 2025-03-31 14:16:09 +02:00
Marcus Holland-Moritz
0f0249b1ee fix(scanner): handle absolute paths in --input-list (fixes gh #259) 2025-03-31 14:10:38 +02:00
Marcus Holland-Moritz
ff4c34383d chore: provide wrapper for <source_location> missing on macOS Ventura 2025-03-18 13:23:44 +01:00
Marcus Holland-Moritz
e440101b0c test(sorted_array_map): add more test cases 2025-03-18 13:23:44 +01:00
Marcus Holland-Moritz
45098e7913 chore: reformat code using new .clang-format 2025-03-17 07:15:55 +01:00
Marcus Holland-Moritz
7efa82854a refactor(fstypes): use std::array for magic / SHA2 members 2025-03-17 07:15:55 +01:00
Marcus Holland-Moritz
689a43b19f feat: add sorted_array_map 2025-03-17 07:15:54 +01:00
Marcus Holland-Moritz
f6e760bfad refactor: explicitly handle release_until() return value 2025-03-17 07:15:54 +01:00
Marcus Holland-Moritz
9130d2a5de build: separate tests with internal header dependencies 2025-03-15 08:19:07 +01:00
Marcus Holland-Moritz
9b7a1b939e feat: add a few more metadata consistency checks 2025-03-14 15:07:49 +01:00
Marcus Holland-Moritz
e13d9cb6eb chore: add binary for fuzzing the reader library 2025-03-14 15:07:49 +01:00
Marcus Holland-Moritz
bfadb40615 refactor(test_helpers): improve os_access_mock flexibility / readability 2025-03-14 15:07:49 +01:00