fix: skip corrupt/unreadable images instead of aborting scan

- scan_images now warns and continues on decode errors
- new test: scan_skips_corrupt_image_files
- 21 tests passing
This commit is contained in:
admin
2026-04-27 23:51:10 +00:00
parent 226a5e7e8f
commit deb5321a8a
2 changed files with 25 additions and 2 deletions

View File

@@ -109,6 +109,17 @@ fn single_image_no_duplicates() {
assert!(groups.is_empty(), "single image should produce no duplicate groups");
}
#[test]
fn scan_skips_corrupt_image_files() {
// corrupt.png exists in fixtures dir with invalid PNG data
let dir = Path::new("/a0/usr/projects/deduper/.a0proj/test_media/images");
let entries = scan_images(dir).expect("scan should not fail on corrupt files");
// corrupt.png should be skipped, not cause an error
assert!(!entries.iter().any(|e| e.path.ends_with("corrupt.png")), "corrupt file should be skipped");
// valid images still found
assert!(entries.iter().any(|e| e.path.ends_with("orig.jpg")), "valid images should still be found");
}
#[test]
fn cli_binary_reports_duplicates() {
let bin = env!("CARGO_BIN_EXE_deduper");