[INFO] cloning repository https://github.com/SecurityRonin/browser-forensic
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SecurityRonin/browser-forensic" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSecurityRonin%2Fbrowser-forensic", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSecurityRonin%2Fbrowser-forensic'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a72f8428e500c9ba178b3967a390a7e4a107f75b
[INFO] testing SecurityRonin/browser-forensic against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSecurityRonin%2Fbrowser-forensic" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/SecurityRonin/browser-forensic
[INFO] finished tweaking git repo https://github.com/SecurityRonin/browser-forensic
[INFO] tweaked toml for git repo https://github.com/SecurityRonin/browser-forensic written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/SecurityRonin/browser-forensic on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/SecurityRonin/browser-forensic 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" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa
[INFO] running `Command { std: "docker" "start" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling lru v0.18.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling snss-core v0.1.0
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling pxfm v0.1.29
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling twox-hash v2.1.2
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling is-docker v0.2.0
[INFO] [stderr]    Compiling lz4_flex v0.11.6
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling is-wsl v0.4.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling pathdiff v0.2.3
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling open v5.3.5
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling ratatui-core v0.1.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui-widgets v0.3.1
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.1
[INFO] [stderr]    Compiling forensicnomicon-core v1.0.0
[INFO] [stderr]    Compiling plist v1.9.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling forensicnomicon-data v1.0.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.1
[INFO] [stderr]    Compiling ratatui v0.30.1
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling forensicnomicon v1.0.0
[INFO] [stderr]    Compiling browser-forensic-core v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-core)
[INFO] [stderr]    Compiling browser-forensic-chrome v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-chrome)
[INFO] [stderr]    Compiling browser-forensic-discovery v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-discovery)
[INFO] [stderr]    Compiling browser-forensic-integrity v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-integrity)
[INFO] [stderr]    Compiling browser-forensic-firefox v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-firefox)
[INFO] [stderr]    Compiling browser-forensic-safari v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-safari)
[INFO] [stderr]    Compiling browser-forensic-memory v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-memory)
[INFO] [stderr]    Compiling browser-forensic-mcp v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-mcp)
[INFO] [stderr]    Compiling browser-forensic-carve v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-carve)
[INFO] [stderr]    Compiling browser-forensic-triage v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-triage)
[INFO] [stderr]    Compiling browser-forensic-cli v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 34s
[INFO] running `Command { std: "docker" "inspect" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling assert_cmd v2.2.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling browser-forensic-core v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-core)
[INFO] [stderr]    Compiling browser-forensic-discovery v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-discovery)
[INFO] [stderr]    Compiling browser-forensic-chrome v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-chrome)
[INFO] [stderr]    Compiling browser-forensic-mcp v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-mcp)
[INFO] [stderr]    Compiling browser-forensic-triage v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-triage)
[INFO] [stderr]    Compiling browser-forensic-carve v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-carve)
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling browser-forensic-memory v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-memory)
[INFO] [stderr]    Compiling browser-forensic-safari v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-safari)
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling browser-forensic-integrity v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-integrity)
[INFO] [stderr]    Compiling browser-forensic-firefox v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-firefox)
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling browser-forensic-cli v0.2.0 (/opt/rustwide/workdir/crates/browser-forensic-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 16.73s
[INFO] running `Command { std: "docker" "inspect" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_carve-09df40c1e30a0328)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test tests::carve_stats_default_is_zero ... ok
[INFO] [stdout] test tests::carved_record_clone ... ok
[INFO] [stdout] test tests::carve_result_empty ... ok
[INFO] [stdout] test tests::carved_record_round_trips ... ok
[INFO] [stdout] test tests::crate_root_reexports_carve_functions ... ok
[INFO] [stdout] test tests::recovery_method_serializes ... ok
[INFO] [stdout] test tests::recovery_quality_serializes ... ok
[INFO] [stdout] test sqlite_carve::tests::carve_nonexistent_file_returns_error ... ok
[INFO] [stdout] test sqlite_carve::tests::carve_sub_minimum_page_size_does_not_panic ... ok
[INFO] [stdout] test sqlite_carve::tests::carve_zero_page_size_does_not_panic ... ok
[INFO] [stdout] test wal_recovery::tests::recover_from_wal_ignores_non_http_and_short_matches ... ok
[INFO] [stdout] test wal_recovery::tests::recover_from_wal_carves_url_from_frame ... ok
[INFO] [stdout] test wal_recovery::tests::recover_from_wal_nonexistent_returns_error ... ok
[INFO] [stdout] test wal_recovery::tests::recover_from_wal_zero_page_size_header_defaults ... ok
[INFO] [stdout] test wal_recovery::tests::recover_from_wal_truncated_below_header_returns_empty ... ok
[INFO] [stdout] test wal_recovery::tests::recover_from_wal_no_wal_returns_empty ... ok
[INFO] [stdout] test sqlite_carve::tests::carve_stats_populated ... ok
[INFO] [stdout] test sqlite_carve::tests::carve_empty_db_returns_empty ... ok
[INFO] [stdout] test wal_recovery::tests::recover_from_wal_with_wal_file_scans_pages ... ok
[INFO] [stdout] test sqlite_carve::tests::carve_db_with_deleted_rows_finds_free_pages ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_chrome-5e7c6760fe999f2d)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test cache::tests::parse_empty_cache_dir_returns_empty ... ok
[INFO] [stdout] test cache::tests::parse_cache_extracts_url_from_entry ... ok
[INFO] [stdout] test bookmarks::tests::bookmark_timestamp_uses_webkit_epoch ... ok
[INFO] [stdout] test extensions::tests::parse_highest_version_only ... ok
[INFO] [stdout] test bookmarks::tests::parse_chrome_bookmarks_flat ... ok
[INFO] [stdout] test extensions::tests::parse_empty_extensions_dir ... ok
[INFO] [stdout] test history::tests::webkit_epoch_conversion ... ok
[INFO] [stdout] test local_state::tests::parse_local_state_empty_profiles_returns_empty ... ok
[INFO] [stdout] test extensions::tests::parse_single_extension ... ok
[INFO] [stdout] test local_state::tests::parse_local_state_missing_file_returns_error ... ok
[INFO] [stdout] test bookmarks::tests::parse_empty_chrome_bookmarks ... ok
[INFO] [stdout] test local_state::tests::parse_local_state_extracts_profiles ... ok
[INFO] [stdout] test cookies::tests::parse_empty_cookies_returns_empty ... ok
[INFO] [stdout] test autofill::tests::parse_empty_autofill_returns_empty ... ok
[INFO] [stdout] test session::tests::parse_session_decodes_tabs_dialect_recently_closed ... ok
[INFO] [stdout] test history::tests::parse_empty_history_returns_empty ... ok
[INFO] [stdout] test session::tests::parse_session_emits_event_per_open_tab ... ok
[INFO] [stdout] test session::tests::parse_session_invalid_magic_fails ... ok
[INFO] [stdout] test login_data::tests::parse_empty_login_data_returns_empty ... ok
[INFO] [stdout] test cookies::tests::parse_single_cookie_emits_event ... ok
[INFO] [stdout] test downloads::tests::parse_empty_downloads_returns_empty ... ok
[INFO] [stdout] test autofill::tests::parse_single_autofill_entry ... ok
[INFO] [stdout] test visits::tests::transition_helpers_decode_core_and_qualifiers ... ok
[INFO] [stdout] test cookies::tests::cookie_timestamp_uses_webkit_epoch ... ok
[INFO] [stdout] test autofill::tests::autofill_uses_unix_seconds_not_webkit ... ok
[INFO] [stdout] test login_data::tests::login_data_emits_url_and_username ... ok
[INFO] [stdout] test cookies::tests::zero_creation_utc_is_skipped ... ok
[INFO] [stdout] test login_data::tests::login_data_password_never_exposed ... ok
[INFO] [stdout] test history::tests::zero_timestamp_row_skipped ... ok
[INFO] [stdout] test history::tests::parse_single_url_emits_event ... ok
[INFO] [stdout] test downloads::tests::dangerous_download_flagged_in_attrs ... ok
[INFO] [stdout] test downloads::tests::parse_single_download ... ok
[INFO] [stdout] test visits::tests::collapse_redirects_is_identity_when_no_redirects ... ok
[INFO] [stdout] test visits::tests::redirect_visit_is_flagged ... ok
[INFO] [stdout] test visits::tests::emits_event_per_visit_in_time_order ... ok
[INFO] [stdout] test visits::tests::skips_zero_visit_time ... ok
[INFO] [stdout] test visits::tests::collapse_redirects_drops_intermediate_hops_keeps_landings ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_cli-90e35ab7e30d93ad)
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test cli::tests::csv_escape_quotes_commas ... ok
[INFO] [stdout] test cli::tests::filter_in_place_matches_url_case_insensitively ... ok
[INFO] [stdout] test cli::tests::fmt_event_round_trips_each_format ... ok
[INFO] [stdout] test cli::tests::format_ts_is_rfc3339 ... ok
[INFO] [stdout] test cli::tests::event_json_hoists_url_to_top_level ... ok
[INFO] [stdout] test cli::tests::merge_carve_stats_and_summary_helpers ... ok
[INFO] [stdout] test cli::tests::resolve_history_appends_history_for_a_profile_dir ... ok
[INFO] [stdout] test cli::tests::resolve_history_detects_firefox_places_in_a_profile_dir ... ok
[INFO] [stdout] test cli::tests::resolve_history_passes_through_a_file ... ok
[INFO] [stdout] test cli::tests::resolve_sessions_routes_firefox_sessionstore_file ... ok
[INFO] [stdout] test cli::tests::resolve_sessions_finds_firefox_file_in_a_profile_dir ... ok
[INFO] [stdout] test cli::tests::resolve_history_detects_safari_history_db_by_file_name ... ok
[INFO] [stdout] test cli::tests::run_analyze_unknown_path_errors ... ok
[INFO] [stdout] test cli::tests::resolve_sessions_prefers_sessions_child ... ok
[INFO] [stdout] test cli::tests::run_profiles_all_formats ... ok
[INFO] [stdout] test cli::tests::run_browsers_all_formats ... ok
[INFO] [stdout] test cli::tests::run_artifact_unknown_path_errors ... ok
[INFO] [stdout] test cli::tests::run_artifact_safari_unsupported_arms_error ... ok
[INFO] [stdout] test cli::tests::run_sessions_firefox_file_and_dir_errors ... ok
[INFO] [stdout] test cli::tests::run_carve_all_formats ... ok
[INFO] [stdout] test cli::tests::run_artifact_firefox_cookies_all_formats ... ok
[INFO] [stdout] test cli::tests::run_analyze_chromium_ok ... ok
[INFO] [stdout] test cli::tests::run_artifact_session_rejects_non_firefox ... ok
[INFO] [stdout] test cli::tests::run_history_firefox_and_directory_errors ... ok
[INFO] [stdout] test cli::tests::run_artifact_history_all_formats_firefox ... ok
[INFO] [stdout] test cli::tests::run_artifact_history_all_formats_chromium ... ok
[INFO] [stdout] test cli::tests::run_history_chromium_collapsed_and_raw_all_formats ... ok
[INFO] [stdout] test cli::tests::run_triage_all_formats_with_events ... ok
[INFO] [stdout] test cli::tests::run_integrity_all_formats_clean_and_dirty ... ok
[INFO] [stdout] test cli::tests::run_triage_empty_home_all_formats ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/br4n6-8af47db9c440d417)
[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]      Running tests/actions.rs (/opt/rustwide/target/debug/deps/actions-209621698597d72c)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test keymap_maps_action_keys ... ok
[INFO] [stdout] test open_yields_open_url_effect ... ok
[INFO] [stdout] test reload_yields_reload_effect ... ok
[INFO] [stdout] test sort_by_tab_count_orders_windows ... ok
[INFO] [stdout] test sort_by_title_orders_tabs ... ok
[INFO] [stdout] test sort_cycles_through_modes ... ok
[INFO] [stdout] test yank_url_and_title_url ... ok
[INFO] [stdout] test open_above_tab_level_yields_nothing ... ok
[INFO] [stderr]      Running tests/app.rs (/opt/rustwide/target/debug/deps/app-40c1591e3c856617)
[INFO] [stdout] test export_tab_produces_markdown_and_valid_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test descend_and_ascend_walk_the_hierarchy ... ok
[INFO] [stdout] test descend_into_history_then_stops_at_leaf ... ok
[INFO] [stdout] test descend_does_nothing_when_no_children ... ok
[INFO] [stdout] test down_and_up_are_clamped ... ok
[INFO] [stdout] test half_and_full_page_move_and_clamp ... ok
[INFO] [stdout] test next_and_prev_window_jump_and_rescope ... ok
[INFO] [stdout] test renders_real_profile_without_panic ... ok
[INFO] [stdout] test starts_at_source_level ... ok
[INFO] [stdout] test swap_pane_toggles_and_quit_sets_flag ... ok
[INFO] [stdout] test top_and_bottom_jump_within_level ... ok
[INFO] [stderr]      Running tests/br4n6_cli.rs (/opt/rustwide/target/debug/deps/br4n6_cli-19f7bf9eea7202d3)
[INFO] [stdout] test render_shows_source_label_and_a_url ... ok
[INFO] [stdout] test render_after_descending_shows_tab_url ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test br4n6_sessions_search_filters ... ok
[INFO] [stdout] test br4n6_sessions_surfaces_open_tabs ... ok
[INFO] [stdout] test br4n6_sessions_accepts_firefox_profile_directory ... ok
[INFO] [stdout] test br4n6_sessions_reads_firefox_sessionstore ... ok
[INFO] [stdout] test br4n6_history_accepts_safari_profile_directory ... ok
[INFO] [stdout] test br4n6_history_reads_safari_history_db ... ok
[INFO] [stdout] test br4n6_history_accepts_firefox_profile_directory ... ok
[INFO] [stdout] test br4n6_history_reads_firefox_places ... ok
[INFO] [stdout] test br4n6_history_collapses_redirect_chain_by_default ... ok
[INFO] [stdout] test br4n6_history_search_filters_to_substring ... ok
[INFO] [stdout] test br4n6_history_accepts_profile_directory ... ok
[INFO] [stdout] test br4n6_history_no_collapse_keeps_every_visit ... ok
[INFO] [stderr]      Running tests/cli_decisions.rs (/opt/rustwide/target/debug/deps/cli_decisions-d997a8ebcae76283)
[INFO] [stdout] test br4n6_browsers_discovers_chromium_profile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test infer_browser_firefox_artifacts ... ok
[INFO] [stdout] test infer_browser_safari_history_db ... ok
[INFO] [stdout] test infer_browser_unknown_is_none ... ok
[INFO] [stdout] test merge_carve_stats_sums_every_field ... ok
[INFO] [stdout] test triage_summary_lines_reports_the_counts ... 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/cli_subcommands.rs (/opt/rustwide/target/debug/deps/cli_subcommands-ff556717458da542)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test profiles_exits_0 ... ok
[INFO] [stdout] test cookies_nonexistent_path_exits_nonzero ... ok
[INFO] [stdout] test carve_jsonl_output_is_valid_json ... ok
[INFO] [stdout] test triage_on_empty_home_succeeds ... ok
[INFO] [stdout] test carve_on_valid_db_succeeds ... ok
[INFO] [stdout] test analyze_chrome_history_succeeds ... ok
[INFO] [stdout] test timeline_chrome_history_csv_has_header ... ok
[INFO] [stdout] test timeline_chrome_history_jsonl_valid_json ... ok
[INFO] [stdout] test timeline_firefox_history_text ... ok
[INFO] [stdout] test triage_with_chrome_profile_finds_events ... ok
[INFO] [stdout] test integrity_on_valid_chrome_history_succeeds ... ok
[INFO] [stdout] test integrity_on_cleared_history_reports_indicators ... ok
[INFO] [stderr]      Running tests/keymap.rs (/opt/rustwide/target/debug/deps/keymap-e23c873c7cbc22d8)
[INFO] [stdout] test every_subcommand_help_exits_0 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test ctrl_paging ... ok
[INFO] [stdout] test braces_jump_windows ... ok
[INFO] [stdout] test basic_vi_and_arrows_and_tab ... ok
[INFO] [stdout] test shift_g_is_bottom ... ok
[INFO] [stdout] test gg_requires_two_keystrokes_and_cancels_on_other_key ... ok
[INFO] [stdout] test quit_keys ... ok
[INFO] [stdout] test unmapped_key_is_none ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/search.rs (/opt/rustwide/target/debug/deps/search-27b017e9cbcce0d3)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test clear_search_resets ... ok
[INFO] [stdout] test keymap_maps_search_keys ... ok
[INFO] [stdout] test next_and_prev_match_cycle_with_wrap ... ok
[INFO] [stdout] test search_hostname_uses_url_under_cursor ... ok
[INFO] [stdout] test no_match_keeps_query_but_zero_count ... ok
[INFO] [stdout] test set_query_finds_matches_across_sources_and_jumps ... ok
[INFO] [stdout] test search_is_case_insensitive_on_url_and_title ... ok
[INFO] [stdout] test backward_search_starts_at_last_match ... ok
[INFO] [stderr]      Running tests/shell.rs (/opt/rustwide/target/debug/deps/shell-109eb48a648f4979)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test backspace_on_empty_buffer_is_a_no_op_edit ... ok
[INFO] [stderr]      Running tests/tagging.rs (/opt/rustwide/target/debug/deps/tagging-90b7c758347af185)
[INFO] [stdout] test clipboard_status_reports_success_and_failure ... ok
[INFO] [stdout] test backspace_pops_the_last_char ... ok
[INFO] [stdout] test esc_cancels ... ok
[INFO] [stdout] test enter_accepts ... ok
[INFO] [stdout] test other_keys_are_ignored_without_editing ... ok
[INFO] [stdout] test reload_status_reports_success_and_failure ... ok
[INFO] [stdout] test export_status_reports_both_filenames ... ok
[INFO] [stdout] test glob_status_renders_the_live_prompt ... ok
[INFO] [stdout] test open_status_reports_success_and_failure ... ok
[INFO] [stdout] test tagged_status_pluralizes_count ... ok
[INFO] [stdout] test typing_a_char_edits_the_buffer ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test clear_tags_empties_the_set ... ok
[INFO] [stdout] test export_with_tags_exports_all_tagged ... ok
[INFO] [stdout] test keymap_maps_tagging_keys ... ok
[INFO] [stdout] test tag_by_glob_tags_matching_tabs ... ok
[INFO] [stdout] test glob_anchors_with_prefix_and_suffix ... ok
[INFO] [stdout] test tagged_urls_are_in_document_order ... ok
[INFO] [stdout] test toggle_tag_above_tab_level_is_noop ... ok
[INFO] [stdout] test untag_by_glob_removes_matching ... ok
[INFO] [stdout] test yank_with_tags_joins_all_tagged_urls ... ok
[INFO] [stdout] test toggle_tag_adds_then_removes_current_tab ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_core-f592857483ba9831)
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test analyze::tests::rare_domains_empty_events_returns_empty ... ok
[INFO] [stdout] test sqlite::tests::sidecar_appends_suffix ... ok
[INFO] [stdout] test sqlite::tests::immutable_uri_escapes_special_chars ... ok
[INFO] [stdout] test sqlite::tests::hex_lower_is_64_chars_for_sha256 ... ok
[INFO] [stdout] test tests::artifact_kind_display ... ok
[INFO] [stdout] test tests::artifact_kind_has_autofill ... ok
[INFO] [stdout] test tests::artifact_kind_has_carved_variant ... ok
[INFO] [stdout] test tests::artifact_kind_has_bookmarks ... ok
[INFO] [stdout] test tests::artifact_kind_has_integrity_variant ... ok
[INFO] [stdout] test analyze::tests::rare_domains_below_cap_returned ... ok
[INFO] [stdout] test tests::artifact_kind_has_memory_variant ... ok
[INFO] [stdout] test analyze::tests::rare_domains_sorted_by_count_ascending ... ok
[INFO] [stdout] test analyze::tests::rare_domains_above_cap_excluded ... ok
[INFO] [stdout] test tests::artifact_kind_has_session ... ok
[INFO] [stdout] test tests::browser_event_with_attr ... ok
[INFO] [stdout] test tests::browser_family_display ... ok
[INFO] [stdout] test tests::browser_family_has_safari_variant ... ok
[INFO] [stdout] test tests::detect_brave_history ... ok
[INFO] [stdout] test tests::detect_chrome_history ... ok
[INFO] [stdout] test tests::detect_edge_history ... ok
[INFO] [stdout] test tests::detect_firefox_cookies ... ok
[INFO] [stdout] test tests::detect_firefox_places ... ok
[INFO] [stdout] test tests::detect_safari_history_db ... ok
[INFO] [stdout] test tests::detect_unknown_returns_none ... ok
[INFO] [stdout] test timestamp::tests::core_data_epoch_at_unix_offset_returns_negative_secs ... ok
[INFO] [stdout] test timestamp::tests::unix_micros_to_nanos_multiplies_by_1000 ... ok
[INFO] [stdout] test timestamp::tests::unix_millis_to_nanos_multiplies_by_1_000_000 ... ok
[INFO] [stdout] test timestamp::tests::unix_secs_to_nanos_multiplies_by_1_000_000_000 ... ok
[INFO] [stdout] test timestamp::tests::webkit_epoch_at_unix_epoch_returns_zero ... ok
[INFO] [stdout] test timestamp::tests::webkit_one_second_after_unix_epoch ... ok
[INFO] [stdout] test tests::forensic_meta_lookup_unknown_returns_none ... ok
[INFO] [stdout] test tests::forensic_meta_evidence_strength_is_populated ... ok
[INFO] [stdout] test tests::forensic_meta_all_browser_artifacts_have_profiles ... ok
[INFO] [stdout] test test_utils::tests::test_db_creates_with_schema ... ok
[INFO] [stdout] test test_utils::tests::test_db_insert_stores_row ... ok
[INFO] [stdout] test tests::forensic_meta_lookup_chrome_history ... ok
[INFO] [stdout] test timestamp::tests::core_data_one_second_later ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/open_evidence_db.rs (/opt/rustwide/target/debug/deps/open_evidence_db-c207b3caaa187cd0)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test no_wal_opens_original_without_snapshot ... ok
[INFO] [stdout] test provenance_records_snapshot_when_wal_present ... ok
[INFO] [stdout] test wal_only_row_is_visible_not_dropped ... ok
[INFO] [stdout] test writes_through_connection_fail ... ok
[INFO] [stdout] test original_file_is_not_mutated ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_discovery-4ab4d11c70667fa1)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test tests::discover_edge_profile ... ok
[INFO] [stdout] test tests::discover_chrome_windows_layout ... ok
[INFO] [stdout] test tests::discover_safari_profile ... ok
[INFO] [stdout] test tests::discover_chrome_linux_layout ... ok
[INFO] [stdout] test tests::discover_firefox_windows_layout ... ok
[INFO] [stdout] test tests::discover_multiple_chrome_profiles ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_firefox-b918987d55681f9c)
[INFO] [stdout] test tests::discover_firefox_profiles_macos_layout ... ok
[INFO] [stdout] test tests::discover_chrome_profile_macos_layout ... ok
[INFO] [stdout] test tests::discover_edge_windows_layout ... ok
[INFO] [stdout] test tests::discover_firefox_linux_layout ... ok
[INFO] [stdout] test tests::discover_brave_profile ... ok
[INFO] [stdout] test tests::discover_empty_home_returns_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test cache::tests::parse_empty_cache_dir_returns_empty ... ok
[INFO] [stdout] test cache::tests::parse_ff_cache_extracts_url ... ok
[INFO] [stdout] test extensions::tests::parse_empty_addons_array ... ok
[INFO] [stdout] test login_data::tests::ff_login_emits_hostname ... ok
[INFO] [stdout] test extensions::tests::parse_single_firefox_addon ... ok
[INFO] [stdout] test login_data::tests::ff_login_password_never_exposed ... ok
[INFO] [stdout] test login_data::tests::parse_empty_logins_returns_empty ... ok
[INFO] [stdout] test session::tests::parse_empty_session_returns_empty ... ok
[INFO] [stdout] test session::tests::parse_session_with_single_tab ... ok
[INFO] [stdout] test session::tests::parse_session_invalid_magic_fails ... ok
[INFO] [stdout] test cookies::tests::parse_empty_cookies_returns_empty ... ok
[INFO] [stdout] test history::tests::parse_empty_places_returns_empty ... ok
[INFO] [stdout] test autofill::tests::parse_empty_formhistory_returns_empty ... ok
[INFO] [stdout] test bookmarks::tests::parse_empty_ff_bookmarks_returns_empty ... ok
[INFO] [stdout] test cookies::tests::firefox_cookie_timestamp_microseconds_to_ns ... ok
[INFO] [stdout] test autofill::tests::parse_single_formhistory_entry ... ok
[INFO] [stdout] test cookies::tests::parse_single_firefox_cookie ... ok
[INFO] [stdout] test history::tests::parse_single_url_emits_event ... ok
[INFO] [stdout] test history::tests::null_visit_date_skipped ... ok
[INFO] [stdout] test bookmarks::tests::parse_single_ff_bookmark ... ok
[INFO] [stdout] test bookmarks::tests::folder_type_excluded ... ok
[INFO] [stdout] test downloads::tests::parse_single_ff_download ... ok
[INFO] [stdout] test downloads::tests::parse_empty_ff_downloads_returns_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_integrity-66771344946d7255)
[INFO] [stdout] 
[INFO] [stdout] running 28 tests
[INFO] [stdout] test database::tests::check_database_integrity_nonexistent_returns_error ... ok
[INFO] [stdout] test database::tests::check_wal_state_no_wal_returns_empty ... ok
[INFO] [stdout] test database::tests::check_database_integrity_valid_db_returns_empty ... ok
[INFO] [stdout] test tests::crate_root_reexports_check_functions ... ok
[INFO] [stdout] test tests::integrity_indicator_clone ... ok
[INFO] [stdout] test tests::integrity_indicator_cookie_timestamp_anomaly ... ok
[INFO] [stdout] test database::tests::check_wal_state_detects_wal_file ... ok
[INFO] [stdout] test tests::integrity_indicator_debug_display ... ok
[INFO] [stdout] test tests::integrity_indicator_history_cleared_serializes ... ok
[INFO] [stdout] test tests::integrity_indicator_history_tombstone ... ok
[INFO] [stdout] test tests::integrity_indicator_sqlite_integrity_failure ... ok
[INFO] [stdout] test tests::integrity_indicator_timestamp_non_monotonic ... ok
[INFO] [stdout] test tests::integrity_indicator_visit_id_gap ... ok
[INFO] [stdout] test tests::integrity_indicator_wal_present ... ok
[INFO] [stdout] test cookies::tests::chromium_cookies_clean_returns_empty ... ok
[INFO] [stdout] test cookies::tests::firefox_cookie_creation_after_last_access_detected ... ok
[INFO] [stdout] test cookies::tests::chromium_cookie_creation_after_last_access_detected ... ok
[INFO] [stdout] test history::tests::safari_tombstones_detected ... ok
[INFO] [stdout] test history::tests::chromium_history_clearing_detected_by_autoinc_gap ... ok
[INFO] [stdout] test history::tests::empty_history_with_nonzero_autoinc_is_clearing ... ok
[INFO] [stdout] test history::tests::firefox_visit_id_gap_detected ... ok
[INFO] [stdout] test history::tests::chromium_history_clean_returns_empty ... ok
[INFO] [stdout] test history::tests::chromium_timestamp_non_monotonic_detected ... ok
[INFO] [stdout] test history::tests::safari_history_clean_returns_empty ... ok
[INFO] [stdout] test history::tests::chromium_visit_id_gap_detected ... ok
[INFO] [stdout] test history::tests::firefox_history_clean_returns_empty ... ok
[INFO] [stdout] test history::tests::safari_visit_id_gap_detected ... ok
[INFO] [stdout] test history::tests::firefox_timestamp_non_monotonic_detected ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_mcp-625eba371dc0a5b8)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test redact::tests::mask_secrets_keeps_normal_words ... ok
[INFO] [stdout] test context::tests::state_section_is_a_snapshot_not_time_filtered ... ok
[INFO] [stdout] test redact::tests::redact_url_keeps_plain_url ... ok
[INFO] [stdout] test context::tests::browsing_context_history_section_windows_collapses_redacts_and_counts ... ok
[INFO] [stdout] test context::tests::did_user_visit_returns_allowlisted_matches_only ... ok
[INFO] [stdout] test redact::tests::mask_secrets_masks_email ... ok
[INFO] [stdout] test context::tests::allowlist_matches_domain_and_subdomains_only ... ok
[INFO] [stdout] test redact::tests::redact_url_strips_query_and_fragment ... ok
[INFO] [stdout] test context::tests::each_section_caps_and_orders_newest_first ... ok
[INFO] [stdout] test redact::tests::redact_url_strips_bare_fragment ... ok
[INFO] [stdout] test redact::tests::mask_secrets_masks_long_token ... ok
[INFO] [stdout] test server::tests::initialize_returns_server_info ... ok
[INFO] [stdout] test server::tests::notification_without_id_returns_none ... ok
[INFO] [stdout] test server::tests::tools_call_unknown_tool_is_error ... ok
[INFO] [stdout] test server::tests::tools_call_browsing_context_returns_redacted_items ... ok
[INFO] [stdout] test server::tests::tools_list_has_the_mvp_tools ... ok
[INFO] [stdout] test reader::tests::records_from_session_maps_open_tabs ... ok
[INFO] [stdout] test reader::tests::records_from_history_maps_visits_with_redirect_flag ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/browser_forensic_mcp-c6f7841d3b6c1acc)
[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]      Running tests/allowlist.rs (/opt/rustwide/target/debug/deps/allowlist-50f07072deb5dc63)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test blank_entries_are_dropped ... ok
[INFO] [stdout] test comma_list_permits_only_listed_domains ... ok
[INFO] [stdout] test empty_string_permits_nothing ... ok
[INFO] [stdout] test star_permits_everything ... ok
[INFO] [stdout] test star_with_surrounding_whitespace_still_permits_all ... ok
[INFO] [stdout] test unset_permits_nothing ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_memory-1bcf696ec542deeb)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test tests::scan_bytes_for_cookies_empty_returns_empty ... ok
[INFO] [stdout] test tests::scan_bytes_for_urls_no_urls_returns_empty ... ok
[INFO] [stdout] test tests::scan_bytes_for_cookies_finds_cookie_header ... ok
[INFO] [stdout] test tests::scan_bytes_for_urls_empty_data_returns_empty ... ok
[INFO] [stdout] test tests::scan_bytes_for_urls_finds_http ... ok
[INFO] [stdout] test tests::scan_bytes_for_urls_multiple_urls ... ok
[INFO] [stdout] test tests::scan_bytes_for_urls_handles_null_terminated ... ok
[INFO] [stdout] test tests::scan_bytes_for_urls_finds_https ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_safari-9af498c4d1e6cec3)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test downloads::tests::parse_empty_safari_downloads ... ok
[INFO] [stdout] test bookmarks::tests::nested_safari_bookmarks_all_found ... ok
[INFO] [stdout] test history::tests::safari_epoch_known_value ... ok
[INFO] [stdout] test history::tests::safari_epoch_offset_is_correct ... ok
[INFO] [stdout] test topsites::tests::parse_topsites_missing_file_returns_error ... ok
[INFO] [stdout] test extensions::tests::parse_single_safari_extension ... ok
[INFO] [stdout] test bookmarks::tests::parse_safari_bookmarks_excludes_folders ... ok
[INFO] [stdout] test bookmarks::tests::parse_safari_bookmarks_finds_leaf_urls ... ok
[INFO] [stdout] test extensions::tests::parse_empty_extensions_plist ... ok
[INFO] [stdout] test topsites::tests::parse_topsites_empty_returns_empty ... ok
[INFO] [stdout] test topsites::tests::parse_topsites_from_xml_plist ... ok
[INFO] [stdout] test downloads::tests::parse_single_safari_download ... ok
[INFO] [stdout] test cookies::tests::parse_empty_safari_cookies_returns_empty ... ok
[INFO] [stdout] test history::tests::parse_empty_safari_history_returns_empty ... ok
[INFO] [stdout] test cookies::tests::parse_single_safari_cookie ... ok
[INFO] [stdout] test cookies::tests::safari_cookie_timestamp_uses_core_data_epoch ... ok
[INFO] [stdout] test history::tests::parse_single_safari_url ... ok
[INFO] [stdout] test history::tests::parse_multiple_visits_creates_one_event_per_visit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/browser_forensic_triage-2176a39154707f6a)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tests::triage_report_has_all_fields ... ok
[INFO] [stdout] test tests::triage_profile_nonexistent_path_returns_empty_report ... ok
[INFO] [stdout] test tests::triage_report_serializes ... ok
[INFO] [stderr]      Running tests/integration_pipeline.rs (/opt/rustwide/target/debug/deps/integration_pipeline-d5bb7d67328344d4)
[INFO] [stdout] test tests::triage_profile_chrome_returns_report ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test integrity_indicators_are_serializable_to_json ... ok
[INFO] [stdout] test triage_firefox_profile_with_places ... ok
[INFO] [stdout] test triage_chromium_profile_with_history_and_cookies ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests browser_forensic_carve
[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 browser_forensic_chrome
[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 browser_forensic_cli
[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 browser_forensic_core
[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 browser_forensic_discovery
[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 browser_forensic_firefox
[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 browser_forensic_integrity
[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 browser_forensic_mcp
[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 browser_forensic_memory
[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 browser_forensic_safari
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests browser_forensic_triage
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[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" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa", kill_on_drop: false }`
[INFO] [stdout] 4a8faf283b76c6fafcfdac555670808273ee7c04710d1bb0c5cab2eeddcc6cfa
