[INFO] cloning repository https://github.com/SecurityRonin/usnjrnl [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SecurityRonin/usnjrnl" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSecurityRonin%2Fusnjrnl", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSecurityRonin%2Fusnjrnl'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d9e6d44bda7a9263f545effde47e03c68b4ba74a [INFO] testing SecurityRonin/usnjrnl against master#d933cf483edf1605142ac6899ff32536c0ad8b22 for pr-150933 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSecurityRonin%2Fusnjrnl" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/SecurityRonin/usnjrnl [INFO] finished tweaking git repo https://github.com/SecurityRonin/usnjrnl [INFO] tweaked toml for git repo https://github.com/SecurityRonin/usnjrnl written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/SecurityRonin/usnjrnl on toolchain d933cf483edf1605142ac6899ff32536c0ad8b22 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/SecurityRonin/usnjrnl already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded winstructs v0.3.2 [INFO] [stderr] Downloaded enumn v0.1.14 [INFO] [stderr] Downloaded shell-words v1.1.1 [INFO] [stderr] Downloaded lru v0.9.0 [INFO] [stderr] Downloaded simplelog v0.12.2 [INFO] [stderr] Downloaded ewf v0.1.1 [INFO] [stderr] Downloaded dialoguer v0.10.4 [INFO] [stderr] Downloaded binrw_derive v0.11.3 [INFO] [stderr] Downloaded jiff-static v0.2.22 [INFO] [stderr] Downloaded binrw v0.11.3 [INFO] [stderr] Downloaded rusqlite v0.32.1 [INFO] [stderr] Downloaded nt-string v0.1.1 [INFO] [stderr] Downloaded jiff v0.2.22 [INFO] [stderr] Downloaded ntfs v0.4.0 [INFO] [stderr] Downloaded mft v0.6.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d9475b91a33db19725c696386b12dc4ad03318ca4691db98d394d837b1924b13 [INFO] running `Command { std: "docker" "start" "-a" "d9475b91a33db19725c696386b12dc4ad03318ca4691db98d394d837b1924b13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d9475b91a33db19725c696386b12dc4ad03318ca4691db98d394d837b1924b13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9475b91a33db19725c696386b12dc4ad03318ca4691db98d394d837b1924b13", kill_on_drop: false }` [INFO] [stdout] d9475b91a33db19725c696386b12dc4ad03318ca4691db98d394d837b1924b13 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b7db5e9e0fc3fe94f1c781c025acc21b6445c70047167a42eb1fe89ede47aea0 [INFO] running `Command { std: "docker" "start" "-a" "b7db5e9e0fc3fe94f1c781c025acc21b6445c70047167a42eb1fe89ede47aea0", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling camino v1.2.2 [INFO] [stderr] Compiling encoding_index_tests v0.1.4 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling pulldown-cmark v0.9.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling csv-core v0.1.13 [INFO] [stderr] Compiling hashbrown v0.13.2 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling encoding-index-tradchinese v1.20141219.5 [INFO] [stderr] Compiling encoding-index-japanese v1.20141219.5 [INFO] [stderr] Compiling encoding-index-korean v1.20141219.5 [INFO] [stderr] Compiling encoding-index-singlebyte v1.20141219.5 [INFO] [stderr] Compiling encoding-index-simpchinese v1.20141219.5 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling encoding v0.2.33 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling lru v0.9.0 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling dialoguer v0.10.4 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling jiff v0.2.22 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Compiling simplelog v0.12.2 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling csv v1.4.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling env_filter v1.0.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling env_logger v0.11.9 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling cargo-platform v0.1.9 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling cargo_metadata v0.14.2 [INFO] [stderr] Compiling skeptic v0.13.7 [INFO] [stderr] Compiling winstructs v0.3.2 [INFO] [stderr] Compiling mft v0.6.1 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling usnjrnl-forensic v0.2.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.53s [INFO] running `Command { std: "docker" "inspect" "b7db5e9e0fc3fe94f1c781c025acc21b6445c70047167a42eb1fe89ede47aea0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b7db5e9e0fc3fe94f1c781c025acc21b6445c70047167a42eb1fe89ede47aea0", kill_on_drop: false }` [INFO] [stdout] b7db5e9e0fc3fe94f1c781c025acc21b6445c70047167a42eb1fe89ede47aea0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 50d5cf7073a69843769dfd2a258619bb6010a77c1a113412df69e31ca726335f [INFO] running `Command { std: "docker" "start" "-a" "50d5cf7073a69843769dfd2a258619bb6010a77c1a113412df69e31ca726335f", kill_on_drop: false }` [INFO] [stderr] Compiling usnjrnl-forensic v0.2.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 5.11s [INFO] running `Command { std: "docker" "inspect" "50d5cf7073a69843769dfd2a258619bb6010a77c1a113412df69e31ca726335f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "50d5cf7073a69843769dfd2a258619bb6010a77c1a113412df69e31ca726335f", kill_on_drop: false }` [INFO] [stdout] 50d5cf7073a69843769dfd2a258619bb6010a77c1a113412df69e31ca726335f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 87afdac179f0b3096e6feecfd719d11130eef8e231df8a3176eefa9f13d78fd5 [INFO] running `Command { std: "docker" "start" "-a" "87afdac179f0b3096e6feecfd719d11130eef8e231df8a3176eefa9f13d78fd5", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/usnjrnl_forensic-64b91b6313a4b7f7) [INFO] [stdout] [INFO] [stdout] running 388 tests [INFO] [stdout] test analysis::tests::test_bulk_temp_deletion_spread_over_time ... ok [INFO] [stdout] test analysis::tests::test_clearing_empty_records ... ok [INFO] [stdout] test analysis::tests::test_bulk_temp_deletion_grouping_splits_on_time_gap ... ok [INFO] [stdout] test analysis::tests::test_detect_high_starting_usn ... ok [INFO] [stdout] test analysis::tests::test_detect_bulk_temp_deletion ... ok [INFO] [stdout] test analysis::tests::test_detect_journal_clearing_multiple_gaps ... ok [INFO] [stdout] test analysis::tests::test_detect_known_ransomware_extension ... ok [INFO] [stdout] test analysis::tests::test_detect_mass_rename_unknown_extension ... ok [INFO] [stdout] test analysis::tests::test_detect_isolated_basic_info_change ... ok [INFO] [stdout] test analysis::tests::test_detect_timestamp_gap ... ok [INFO] [stdout] test analysis::tests::test_is_common_extension ... ok [INFO] [stdout] test analysis::tests::test_is_sdelete_filename_mixed_chars ... ok [INFO] [stdout] test analysis::tests::test_is_sdelete_filename_with_extension ... ok [INFO] [stdout] test analysis::tests::test_is_sdelete_filename_short ... ok [INFO] [stdout] test analysis::tests::test_mass_rename_over_long_time_not_ransomware ... ok [INFO] [stdout] test analysis::tests::test_mass_rename_with_common_extension_ignored ... ok [INFO] [stdout] test analysis::tests::test_no_bulk_temp_with_few_files ... ok [INFO] [stdout] test analysis::tests::test_no_clearing_for_normal_journal ... ok [INFO] [stdout] test analysis::tests::test_no_ransomware_for_normal_renames ... ok [INFO] [stdout] test analysis::tests::test_no_timestomp_on_create ... ok [INFO] [stdout] test analysis::tests::test_detect_sdelete_pattern ... ok [INFO] [stdout] test analysis::tests::test_no_timestomp_with_data_change ... ok [INFO] [stdout] test analysis::tests::test_ransomware_medium_count_medium_confidence ... ok [INFO] [stdout] test analysis::tests::test_ransomware_multiple_known_extensions ... ok [INFO] [stdout] test analysis::tests::test_ransomware_high_count_high_confidence ... ok [INFO] [stdout] test analysis::tests::test_ransomware_renames_without_extension ... ok [INFO] [stdout] test analysis::tests::test_sdelete_events_spread_over_time ... ok [INFO] [stdout] test analysis::tests::test_sdelete_grouping_splits_on_time_gap ... ok [INFO] [stdout] test analysis::tests::test_sdelete_not_triggered_by_normal_files ... ok [INFO] [stdout] test analysis::tests::test_sdelete_only_creates_lower_confidence ... ok [INFO] [stdout] test analysis::tests::test_timestomp_basic_info_change_with_close ... ok [INFO] [stdout] test analysis::tests::test_timestomp_multiple_files ... ok [INFO] [stdout] test analysis::tests::test_timestomp_other_timestamp_after_event ... ok [INFO] [stdout] test analysis::tests::test_timestomping_other_before_event ... ok [INFO] [stdout] test correlation::tests::test_activity_summary_first_seen_last_seen_update ... ok [INFO] [stdout] test correlation::tests::test_activity_summary_multiple_files ... ok [INFO] [stdout] test correlation::tests::test_coverage_analysis ... ok [INFO] [stdout] test correlation::tests::test_correlation_engine_default ... ok [INFO] [stdout] test correlation::tests::test_deduplication_when_record_in_both_sources ... ok [INFO] [stdout] test correlation::tests::test_detect_entry_reuse ... ok [INFO] [stdout] test correlation::tests::test_empty_inputs ... ok [INFO] [stdout] test correlation::tests::test_file_activity_summary ... ok [INFO] [stdout] test correlation::tests::test_ghost_records_detected ... ok [INFO] [stdout] test correlation::tests::test_mft_usn_timestamp_conflicts ... ok [INFO] [stdout] test correlation::tests::test_no_conflict_when_timestamps_consistent ... ok [INFO] [stdout] test correlation::tests::test_no_ghosts_when_fully_covered ... ok [INFO] [stdout] test correlation::tests::test_no_reuse_same_sequence ... ok [INFO] [stdout] test correlation::tests::test_timeline_preserves_lsn ... ok [INFO] [stdout] test correlation::tests::test_timestamp_conflict_multiple_creates_picks_earliest ... ok [INFO] [stdout] test correlation::tests::test_triforce_report ... ok [INFO] [stdout] test correlation::tests::test_unified_timeline_from_usn_only ... ok [INFO] [stdout] test correlation::tests::test_unified_timeline_merges_logfile_records ... ok [INFO] [stdout] test image::tests::find_ntfs_partition_direct_ntfs_image ... ok [INFO] [stdout] test image::tests::find_ntfs_partition_fails_when_no_ntfs ... ok [INFO] [stdout] test image::tests::detect_ewf_format_from_magic_bytes ... ok [INFO] [stdout] test image::tests::detect_format_returns_error_for_nonexistent_file ... ok [INFO] [stdout] test image::tests::find_ntfs_partition_via_gpt ... ok [INFO] [stdout] test image::tests::detect_raw_format_for_non_ewf_files ... ok [INFO] [stdout] test image::tests::is_ntfs_at_checks_correct_offset ... ok [INFO] [stdout] test image::tests::is_ntfs_at_rejects_non_ntfs ... ok [INFO] [stdout] test image::tests::find_ntfs_partition_via_mbr ... ok [INFO] [stdout] test image::tests::parse_gpt_rejects_invalid_signature ... ok [INFO] [stdout] test image::tests::parse_mbr_finds_multiple_partitions ... ok [INFO] [stdout] test image::tests::parse_mbr_skips_empty_entries ... ok [INFO] [stdout] test image::tests::parse_mbr_finds_ntfs_partition ... ok [INFO] [stdout] test logfile::tests::test_detect_journal_clearing_empty_restart_areas ... ok [INFO] [stdout] test logfile::tests::test_detect_journal_clearing_one_restart_area ... ok [INFO] [stdout] test logfile::tests::test_detect_journal_clearing_three_restart_areas ... ok [INFO] [stdout] test logfile::tests::test_normal_logfile_no_clearing ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_only_rcrd_pages ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_no_gap_for_zeroed_page ... ok [INFO] [stdout] test image::tests::parse_gpt_finds_basic_data_partition ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_gap_detection ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_empty ... ok [INFO] [stdout] test image::tests::parse_mbr_rejects_invalid_signature ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_with_restart_areas ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_empty_logfile ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_from_rcrd_page_short_page_for_lsn ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_from_undersized_page ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_logfile_data_not_page_aligned ... ok [INFO] [stdout] test image::tests::is_ntfs_at_detects_ntfs_boot_sector ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_page_offset_boundary ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_restart_area_lsn_tracking ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_short_rstr_page ... ok [INFO] [stdout] test logfile::tests::test_parse_logfile_data_smaller_than_page ... ok [INFO] [stdout] test analysis::tests::test_timestomp_with_distant_data_change ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_preserves_usn_record_fields ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_rcrd_page_huge_client_data_length ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_usn_from_page_slack ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_usn_from_redo_data ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_usn_from_undo_data ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_zero_client_data_length ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_logfile_record_source_equality ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_scan_empty_data ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_scan_for_multiple_usn_records ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_scan_for_usn_records_in_raw_data ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_scan_short_data ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_try_parse_usn_at_invalid_data ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_try_parse_usn_at_non_v2_version ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_try_parse_usn_at_record_len_exceeds_slice ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_try_parse_usn_at_slice_shorter_than_8 ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_try_parse_usn_at_too_short ... ok [INFO] [stdout] test mft::tests::test_detect_timestomping_no_timestamps ... ok [INFO] [stdout] test mft::tests::test_detect_timestomping_none_when_consistent ... ok [INFO] [stdout] test mft::tests::test_detect_timestomping_si_before_fn ... ok [INFO] [stdout] test mft::tests::test_detect_timestomping_si_modified_before_fn_created ... ok [INFO] [stdout] test mft::tests::test_detect_timestomping_si_modified_none ... ok [INFO] [stdout] test mft::tests::test_mft_data_empty ... ok [INFO] [stdout] test mft::tests::test_entry_key_equality ... ok [INFO] [stdout] test mft::tests::test_mft_data_full_path_field ... ok [INFO] [stdout] test mft::tests::test_mft_data_get_by_entry_found ... ok [INFO] [stdout] test mft::tests::test_mft_data_get_by_entry_not_found ... ok [INFO] [stdout] test mft::tests::test_mft_data_get_by_key_found ... ok [INFO] [stdout] test mft::tests::test_mft_data_get_by_key_not_found ... ok [INFO] [stdout] test mft::tests::test_mft_data_is_directory_and_in_use ... ok [INFO] [stdout] test mft::tests::test_mft_data_parse_corrupt_entries_skipped ... ok [INFO] [stdout] test logfile::tests::test_detect_journal_clearing_with_gaps ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_non_rcrd_pages ... ok [INFO] [stdout] test mft::tests::test_mft_entry_file_size ... ok [INFO] [stdout] test mft::tests::test_mft_entry_has_ads_field ... ok [INFO] [stdout] test mft::tests::test_mft_data_parse_entry_without_filename_skipped ... ok [INFO] [stdout] test mft::tests::test_mft_data_multiple_entries ... ok [INFO] [stdout] test mft::tests::test_mft_data_parse_multiple_entries ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_unicode_filename ... ok [INFO] [stdout] test mft::tests::test_mft_data_parse_entry_with_ads ... ok [INFO] [stdout] test mft::tests::test_mft_data_parse_invalid_data ... ok [INFO] [stdout] test mft::tests::test_mft_data_seed_rewind_multiple ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_skips_rstr_pages ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_multiple_pages ... ok [INFO] [stdout] test mft::tests::test_mft_data_parse_short_data ... ok [INFO] [stdout] test mft::tests::test_mft_data_parse_valid_entry ... ok [INFO] [stdout] test logfile::usn_extractor::tests::test_extract_page_with_zero_lsn_uses_page_lsn ... ok [INFO] [stdout] test mft::tests::test_mft_entry_ads_detection_field ... ok [INFO] [stdout] test mft::tests::test_seed_rewind ... ok [INFO] [stdout] test mftmirr::tests::test_diff_warn_with_logger ... ok [INFO] [stdout] test mftmirr::tests::test_empty_data ... ok [INFO] [stdout] test mftmirr::tests::test_exact_boundary_data_length_multiple_of_1024 ... ok [INFO] [stdout] test mftmirr::tests::test_exact_four_entries_identical ... ok [INFO] [stdout] test mftmirr::tests::test_exactly_one_byte_short_of_four_entries ... ok [INFO] [stdout] test mftmirr::tests::test_each_entry_can_differ_independently ... ok [INFO] [stdout] test mftmirr::tests::test_fewer_than_four_entries_in_mft ... ok [INFO] [stdout] test mftmirr::tests::test_identical_mirror ... ok [INFO] [stdout] test mftmirr::tests::test_mirror_with_more_than_four_entries ... ok [INFO] [stdout] test mftmirr::tests::test_multiple_differences ... ok [INFO] [stdout] test mftmirr::tests::test_short_mft_data ... ok [INFO] [stdout] test monitor::tests::test_monitor_config_custom ... ok [INFO] [stdout] test mftmirr::tests::test_short_mirror_data ... ok [INFO] [stdout] test monitor::tests::test_monitor_handles_all_garbage_data ... ok [INFO] [stdout] test monitor::tests::test_monitor_detects_journal_wrap ... ok [INFO] [stdout] test monitor::tests::test_monitor_handles_corrupt_data ... ok [INFO] [stdout] test monitor::tests::test_monitor_handles_empty_read ... ok [INFO] [stdout] test monitor::tests::test_monitor_handles_read_error ... ok [INFO] [stdout] test monitor::tests::test_monitor_config_defaults ... ok [INFO] [stdout] test monitor::tests::test_monitor_processes_new_data ... ok [INFO] [stdout] test monitor::tests::test_monitor_config_accessor ... ok [INFO] [stdout] test mftmirr::tests::test_insufficient_data_warn_with_logger ... ok [INFO] [stdout] test monitor::tests::test_monitor_event_callback ... ok [INFO] [stdout] test output::body_output::tests::test_body_empty_input ... ok [INFO] [stdout] test monitor::tests::test_monitor_tracks_last_usn ... ok [INFO] [stdout] test output::body_output::tests::test_body_multiple_records ... ok [INFO] [stdout] test output::body_output::tests::test_body_single_record ... ok [INFO] [stdout] test output::body_output::tests::test_body_verifies_all_timestamp_fields ... ok [INFO] [stdout] test output::body_output::tests::test_body_write_error_immediate_fail ... ok [INFO] [stdout] test output::csv_output::tests::test_csv_export_header ... ok [INFO] [stdout] test output::json_output::tests::test_jsonl_export ... ok [INFO] [stdout] test output::tln_output::tests::test_tln_empty_input ... ok [INFO] [stdout] test output::tln_output::tests::test_tln_single_record ... ok [INFO] [stdout] test output::csv_output::tests::test_csv_export_record ... ok [INFO] [stdout] test output::tln_output::tests::test_tln_verifies_reason_in_description ... ok [INFO] [stdout] test output::tln_output::tests::test_tln_multiple_records ... ok [INFO] [stdout] test output::tln_output::tests::test_tln_write_error_immediate_fail ... ok [INFO] [stdout] test output::body_output::tests::test_body_write_error_propagated ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_all_fields_written ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_double_extension ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_dot_first_filename_bashrc ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_empty_input ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_fail_at_file_attributes_line57 ... ok [INFO] [stdout] test mftmirr::tests::test_different_mirror ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_fail_at_major_version_line65 ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_fail_at_parent_entry_number_line39 ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_fail_at_parent_path_line49 ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_fail_at_parent_sequence_number_line44 ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_filename_ending_with_dot ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_multiple_records ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_no_extension_filename ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_nonzero_source_and_security ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_special_characters_in_filename ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_file_without_extension ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_write_error_propagated ... ok [INFO] [stdout] test refs::tests::test_refs_empty_analyzer ... ok [INFO] [stdout] test refs::tests::test_refs_file_id_display ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_single_record ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_fail_at_sequence_number_line34 ... ok [INFO] [stdout] test refs::tests::test_refs_file_id_from_u128 ... ok [INFO] [stdout] test refs::tests::test_refs_mixed_v2_and_v3_not_refs ... ok [INFO] [stdout] test refs::tests::test_refs_path_reconstruction_without_mft ... ok [INFO] [stdout] test refs::tests::test_refs_reconstruct_paths_parent_not_in_lookup ... ok [INFO] [stdout] test refs::tests::test_refs_path_cycle_detection ... ok [INFO] [stdout] test refs::tests::test_refs_record_grouping ... ok [INFO] [stdout] test output::tln_output::tests::test_tln_write_error_propagated ... ok [INFO] [stdout] test refs::tests::test_refs_reconstruct_paths_root_id_skipped ... ok [INFO] [stdout] test refs::tests::test_refs_volume_detection ... ok [INFO] [stdout] test rewind::tests::test_entry_key_not_root ... ok [INFO] [stdout] test rewind::tests::test_entry_key_root ... ok [INFO] [stdout] test output::xml_output::tests::test_xml_dot_only_filename ... ok [INFO] [stdout] test rewind::tests::test_from_mft_seeding ... ok [INFO] [stdout] test rewind::tests::test_resolve_path_from_standalone ... ok [INFO] [stdout] test rewind::tests::test_resolve_path_from_unknown_parent_in_forward ... ok [INFO] [stdout] test rewind::tests::test_resolve_path_root ... ok [INFO] [stdout] test rewind::tests::test_resolve_path_simple ... ok [INFO] [stdout] test rewind::tests::test_rewind_data_extend_and_truncation ... ok [INFO] [stdout] test rewind::tests::test_rewind_deep_path_reconstruction ... ok [INFO] [stdout] test rewind::tests::test_resolve_path_from_hits_depth_limit_in_rewind ... ok [INFO] [stdout] test refs::tests::test_refs_file_id_equality ... ok [INFO] [stdout] test rewind::tests::test_resolve_path_unknown_entry ... ok [INFO] [stdout] test rewind::tests::test_rewind_empty_records ... ok [INFO] [stdout] test mftmirr::tests::test_fewer_than_four_entries_in_mirror ... ok [INFO] [stdout] test monitor::tests::test_monitor_last_usn_not_updated_on_wrap ... ok [INFO] [stdout] test rewind::tests::test_resolve_path_hits_depth_limit_linear_chain ... ok [INFO] [stdout] test mft::tests::test_mft_parse_with_corrupt_entry ... ok [INFO] [stdout] test rewind::tests::test_rewind_engine_default ... ok [INFO] [stdout] test rewind::tests::test_rewind_engine_insert ... ok [INFO] [stdout] test rewind::tests::test_rewind_forward_pass_unseen_entry ... ok [INFO] [stdout] test rewind::tests::test_rewind_handles_rename ... ok [INFO] [stdout] test rewind::tests::test_rewind_resolves_unknown_parent_via_journal ... ok [INFO] [stdout] test rewind::tests::test_rewind_simple_create ... ok [INFO] [stdout] test rules::tests::test_glob_matches_trailing_stars ... ok [INFO] [stdout] test rules::tests::test_rule_combined_conditions ... ok [INFO] [stdout] test rules::tests::test_rule_matches_filename_glob ... ok [INFO] [stdout] test rules::tests::test_rule_matches_extension ... ok [INFO] [stdout] test rules::tests::test_rule_matches_reason_all ... ok [INFO] [stdout] test rules::tests::test_rule_matches_reason_flags ... ok [INFO] [stdout] test rewind::tests::test_resolve_path_circular_reference ... ok [INFO] [stdout] test rules::tests::test_rule_matches_filename_regex ... ok [INFO] [stdout] test rewind::tests::test_rewind_multiple_reuse ... ok [INFO] [stdout] test rules::tests::test_rule_no_match_returns_empty ... ok [INFO] [stdout] test rules::tests::test_ruleset_default ... ok [INFO] [stdout] test rules::tests::test_rule_regex_compile_failure ... ok [INFO] [stdout] test rules::tests::test_rule_negation ... ok [INFO] [stdout] test rules::tests::test_ruleset_evaluates_all_rules ... ok [INFO] [stdout] test rules::tests::test_rule_matches_reason_any ... ok [INFO] [stdout] test usn::attributes::tests::test_directory_attribute ... ok [INFO] [stdout] test usn::attributes::tests::test_empty_attributes ... ok [INFO] [stdout] test usn::attributes::tests::test_combined_attributes ... ok [INFO] [stdout] test output::sqlite_output::tests::test_sqlite_export ... ok [INFO] [stdout] test usn::carver::tests::test_carve_embedded_v2_record ... ok [INFO] [stdout] test usn::carver::tests::test_carve_empty_data ... ok [INFO] [stdout] test usn::carver::tests::test_carve_all_zeros ... ok [INFO] [stdout] test usn::carver::tests::test_carve_handles_truncated_record ... ok [INFO] [stdout] test usn::carver::tests::test_carve_multiple_records_with_gaps ... ok [INFO] [stdout] test usn::carver::tests::test_carve_preserves_record_fields ... ok [INFO] [stdout] test usn::carver::tests::test_carve_record_filename_exceeds_record ... ok [INFO] [stdout] test usn::carver::tests::test_carve_record_with_odd_filename_length ... ok [INFO] [stdout] test usn::carver::tests::test_carve_record_with_wrong_filename_offset ... ok [INFO] [stdout] test usn::carver::tests::test_carve_record_with_zero_filename_length ... ok [INFO] [stdout] test usn::carver::tests::test_carve_rejects_invalid_timestamps ... ok [INFO] [stdout] test usn::carver::tests::test_carve_skips_version_0_and_1 ... ok [INFO] [stdout] test usn::carver::tests::test_carve_v2_record_with_mismatched_internal_length ... ok [INFO] [stdout] test usn::carver::tests::test_carve_from_random_data ... ok [INFO] [stdout] test usn::carver::tests::test_carve_v2_successful_with_logging ... ok [INFO] [stdout] test usn::carver::tests::test_carve_v3_record ... ok [INFO] [stdout] test usn::carver::tests::test_carve_v3_successful_with_logging ... ok [INFO] [stdout] test usn::carver::tests::test_carve_v3_wrong_filename_offset ... ok [INFO] [stdout] test usn::carver::tests::test_carve_v3_zero_filename ... ok [INFO] [stdout] test usn::carver::tests::test_carving_stats_default ... ok [INFO] [stdout] test output::sqlite_output::tests::test_sqlite_export_empty_records ... ok [INFO] [stdout] test usn::carver::tests::test_is_valid_timestamp ... ok [INFO] [stdout] test usn::carver::tests::test_try_carve_v2_parse_error ... ok [INFO] [stdout] test usn::carver::tests::test_try_carve_v2_record_len_below_min ... ok [INFO] [stdout] test usn::carver::tests::test_try_carve_v3_filename_exceeds_record ... ok [INFO] [stdout] test usn::carver::tests::test_try_carve_v3_parse_error ... ok [INFO] [stdout] test usn::carver::tests::test_try_carve_v3_record_len_below_min ... ok [INFO] [stdout] test usn::parallel::tests::test_find_first_record_boundary_finds_valid_record ... ok [INFO] [stdout] test usn::parallel::tests::test_find_first_record_boundary_returns_none_for_all_zeros ... ok [INFO] [stdout] test usn::parallel::tests::test_find_first_record_boundary_returns_none_for_garbage ... ok [INFO] [stdout] test usn::parallel::tests::test_find_first_record_boundary_returns_none_for_short_data ... ok [INFO] [stdout] test usn::parallel::tests::test_is_valid_record_start_insufficient_data ... ok [INFO] [stdout] test usn::carver::tests::test_try_carve_v3_odd_filename_length ... ok [INFO] [stdout] test usn::carver::tests::test_carve_v3_invalid_timestamp ... ok [INFO] [stdout] test usn::parallel::tests::test_is_valid_record_start_invalid_version ... ok [INFO] [stdout] test usn::parallel::tests::test_is_valid_record_start_too_small_length ... ok [INFO] [stdout] test usn::parallel::tests::test_is_valid_record_start_v2 ... ok [INFO] [stdout] test usn::parallel::tests::test_is_valid_record_start_v3 ... ok [INFO] [stdout] test usn::parallel::tests::test_parallel_parse_includes_close_only_records ... ok [INFO] [stdout] test usn::parallel::tests::test_parallel_parse_empty_data ... ok [INFO] [stdout] test usn::parallel::tests::test_parallel_parse_handles_zero_filled_regions ... ok [INFO] [stdout] test usn::parallel::tests::test_parallel_parse_preserves_sort_order ... ok [INFO] [stdout] test usn::parallel::tests::test_is_valid_record_start_nonzero_minor_version ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_done_flag_returns_none ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_empty_data ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_eof_mid_fill_no_remaining_data ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_eof_mid_fill_with_remaining_data ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_fill_buffer_error_propagation ... ok [INFO] [stdout] test usn::parallel::tests::test_is_valid_record_start_too_large_length ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_header_refill_insufficient ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_includes_close_only ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_invalid_record_length ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_invalid_then_valid ... ok [INFO] [stdout] test usn::parallel::tests::test_parallel_parse_single_record ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_mixed_v2_v3 ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_large_zero_gap ... ok [INFO] [stdout] test usn::parallel::tests::test_parallel_parse_produces_same_results_as_sequential ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_basic ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_all_zeros ... ok [INFO] [stdout] test output::sqlite_output::tests::test_sqlite_export_with_mft_entries ... ok [INFO] [stdout] test output::sqlite_output::tests::test_sqlite_extension_extraction ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_fill_buffer_with_unconsumed_data ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_multiple ... ok [INFO] [stdout] test rules::tests::test_ruleset_returns_rule_name_and_severity ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_record_too_large ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_skip_zeros_refill_then_find_data ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_v2_parse_error_skips ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_record_larger_than_initial_buffer_fill ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_v3_close_only_included ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_v3_parse_error_skips ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_record_straddles_buffer ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_record_at_exact_buffer_boundary ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_record_refill_insufficient ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_v3_record ... ok [INFO] [stdout] test usn::reason::tests::test_multiple_reasons_display ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_record_straddles_buffer_refill_fails ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_unknown_version ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_skip_zeros_all_zeros_eof ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_skips_zeros ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_data_larger_than_buffer ... ok [INFO] [stdout] test rules::tests::test_builtin_secure_delete ... ok [INFO] [stdout] test usn::record::tests::test_file_reference_extraction ... ok [INFO] [stdout] test usn::record::tests::test_filetime_to_datetime_negative ... ok [INFO] [stdout] test usn::record::tests::test_filetime_to_datetime_pre_unix_epoch ... ok [INFO] [stdout] test usn::record::tests::test_filetime_to_datetime_valid ... ok [INFO] [stdout] test usn::record::tests::test_parent_reference_extraction ... ok [INFO] [stdout] test usn::record::tests::test_filetime_to_datetime_zero ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_empty_data ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_includes_close_only ... ok [INFO] [stdout] test usn::reader::tests::test_streaming_reader_skip_zeros_error_propagation ... ok [INFO] [stdout] test usn::reason::tests::test_rename_flags ... ok [INFO] [stdout] test usn::reason::tests::test_unknown_bits_display ... ok [INFO] [stdout] test usn::reason::tests::test_single_reason_display ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_mixed_v2_v3 ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_multiple_records ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_record_extends_past_end ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_unknown_version_skipped ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_v2_too_small_for_v2_but_valid_len ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_v2_parse_error_path ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_v3_parse_error_path ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_v3_parse_error_skipped ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_v3_too_small_for_v3_but_valid_len ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_skips_zero_regions ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_with_logging_enabled ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_all_zeros ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_8byte_alignment ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_zeros_then_exactly_8_non_zero_bytes ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_filename_length_one_byte ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_filename_out_of_bounds ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_v4_record_skipped ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_invalid_record_length_scan_forward ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_partial_data_after_zeros ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_v3_records ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_boundary_after_zero_skip ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_invalid_record_length_too_large ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_invalid_record_length_too_small ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_negative_timestamp ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_pre_epoch_timestamp ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_record ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_record_length_exceeds_data ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_zero_filename ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_zero_timestamp ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_record_len_exceeds_data_len ... ok [INFO] [stdout] test usn::record::tests::test_parse_v2_unicode_filename ... ok [INFO] [stdout] test usn::record::tests::test_parse_v3_invalid_record_length_too_large ... ok [INFO] [stdout] test usn::record::tests::test_parse_v3_record_basic ... ok [INFO] [stdout] test usn::record::tests::test_parse_v3_invalid_record_length_too_small ... ok [INFO] [stdout] test usn::parallel::tests::test_parallel_parse_chunk_with_no_valid_records_after_boundary ... ok [INFO] [stdout] test usn::record::tests::test_parse_v3_record_unicode ... ok [INFO] [stdout] test usn::record::tests::test_parse_v3_record_len_out_of_range ... ok [INFO] [stdout] test usn::record::tests::test_parse_v3_too_short ... ok [INFO] [stdout] test usn::record::tests::test_parse_v3_zero_filename ... ok [INFO] [stdout] test usn::record::tests::test_read_i64_le ... ok [INFO] [stdout] test usn::record::tests::test_read_u16_le ... ok [INFO] [stdout] test usn::record::tests::test_read_u32_le ... ok [INFO] [stdout] test usn::record::tests::test_read_u64_le ... ok [INFO] [stdout] test usn::record::tests::test_reason_flags_preserved ... ok [INFO] [stdout] test usn::record::tests::test_too_short_data_fails ... ok [INFO] [stdout] test usn::record::tests::test_parse_journal_v3_close_only_included ... ok [INFO] [stdout] test usn::record::tests::test_read_u128_le ... ok [INFO] [stdout] test rules::tests::test_builtin_suspicious_executables ... ok [INFO] [stdout] test rules::tests::test_builtin_ransomware_extensions ... ok [INFO] [stdout] test usn::parallel::tests::test_parallel_parse_large_dataset_spans_chunks ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 388 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/usnjrnl_forensic-def16fcac0d40690) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test tests::test_cli_accepts_body_flag ... ok [INFO] [stdout] test tests::test_cli_accepts_tln_flag ... ok [INFO] [stdout] test tests::test_cli_no_output_formats_is_valid ... ok [INFO] [stdout] test tests::test_cli_all_output_formats_simultaneously ... ok [INFO] [stdout] test tests::test_cli_accepts_xml_flag ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/image_integration.rs (/opt/rustwide/target/debug/deps/image_integration-2e6f286cbfb0376e) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests usnjrnl_forensic [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "87afdac179f0b3096e6feecfd719d11130eef8e231df8a3176eefa9f13d78fd5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "87afdac179f0b3096e6feecfd719d11130eef8e231df8a3176eefa9f13d78fd5", kill_on_drop: false }` [INFO] [stdout] 87afdac179f0b3096e6feecfd719d11130eef8e231df8a3176eefa9f13d78fd5