[INFO] cloning repository https://github.com/kahramanemir/Vallum
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kahramanemir/Vallum" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkahramanemir%2FVallum", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkahramanemir%2FVallum'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] df209ecc581d1353022c6f03a5e11bc04bbb1d3c
[INFO] testing kahramanemir/Vallum against 1.97.0-beta.6 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkahramanemir%2FVallum" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kahramanemir/Vallum
[INFO] finished tweaking git repo https://github.com/kahramanemir/Vallum
[INFO] tweaked toml for git repo https://github.com/kahramanemir/Vallum written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kahramanemir/Vallum on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kahramanemir/Vallum 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wait-timeout v0.2.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.121
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.121
[INFO] [stderr]   Downloaded rusty-fork v0.3.1
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.20
[INFO] [stderr]   Downloaded proptest v1.11.0
[INFO] [stderr]   Downloaded fancy-regex v0.13.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.121
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.121
[INFO] [stderr]   Downloaded clap_complete v4.6.5
[INFO] [stderr]   Downloaded js-sys v0.3.98
[INFO] [stderr]   Downloaded web-sys v0.3.98
[INFO] [stderr]   Downloaded tiktoken-rs v0.6.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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] f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed
[INFO] running `Command { std: "docker" "start" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed", 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" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed", 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" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling clap_complete v4.6.5
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling vallum v0.8.8 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.08s
[INFO] running `Command { std: "docker" "inspect" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed", 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" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.49
[INFO] [stderr]    Compiling zerocopy-derive v0.8.49
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling vallum v0.8.8 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 37.96s
[INFO] running `Command { std: "docker" "inspect" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed", 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" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vallum-9239b51f82018ce1)
[INFO] [stdout] 
[INFO] [stdout] running 488 tests
[INFO] [stdout] test audit::tests::default_log_path_uses_vallum_logs_directory ... ok
[INFO] [stdout] test audit::tests::resolve_log_path_uses_custom_directory_when_provided ... ok
[INFO] [stdout] test config::tests::policy_rule_unknown_action_is_error ... ok
[INFO] [stdout] test ansi::tests::strip_cursor_move ... ok
[INFO] [stdout] test config::tests::rejects_invalid_regex_in_config ... ok
[INFO] [stdout] test config::tests::missing_config_uses_defaults ... ok
[INFO] [stdout] test ansi::tests::strip_basic_color ... ok
[INFO] [stdout] test config::tests::policy_rule_parses_and_validates ... ok
[INFO] [stdout] test audit::tests::test_log_writing ... ok
[INFO] [stdout] test ansi::tests::preserve_plain_text ... ok
[INFO] [stdout] test config::tests::scrubber_entropy_defaults_true_and_parses_false ... ok
[INFO] [stdout] test config::tests::parses_config_file_and_validates_regex ... ok
[INFO] [stdout] test config::tests::bare_string_secret_pattern_error_shows_expected_form ... ok
[INFO] [stdout] test config::tests::policy_rule_bad_regex_is_error ... ok
[INFO] [stdout] test config::tests::security_strict_defaults_false_and_parses ... ok
[INFO] [stdout] test doctor::tests::agent_hook_absent_agent_dir_is_ok_skip ... ok
[INFO] [stdout] test config::tests::guardrail_defaults_on_assume_yes_off ... ok
[INFO] [stdout] test config::tests::scrubber_normalize_defaults_true_and_parses_false ... ok
[INFO] [stdout] test config::tests::policy_rule_allow_action_is_error ... ok
[INFO] [stdout] test doctor::tests::agent_hook_states ... ok
[INFO] [stdout] test doctor::tests::agent_hook_installed_note_is_appended_only_when_installed ... ok
[INFO] [stdout] test config::tests::optimizer_disabled_defaults_empty_and_parses ... ok
[INFO] [stdout] test doctor::tests::config_broken_is_fail ... ok
[INFO] [stdout] test doctor::tests::guardrail_off_warns ... ok
[INFO] [stdout] test doctor::tests::guardrail_on_reports_ok ... ok
[INFO] [stdout] test doctor::tests::render_flags_failure_and_lists_all ... ok
[INFO] [stdout] test eval::tests::injection_metrics_empty_is_zero_not_nan ... ok
[INFO] [stdout] test doctor::tests::optimizer_names_ok_and_warn ... ok
[INFO] [stdout] test doctor::tests::unknown_disabled_name_warns ... ok
[INFO] [stdout] test eval::tests::misses_block_escapes_backticks_and_newlines ... ok
[INFO] [stdout] test doctor::tests::hook_states ... ok
[INFO] [stdout] test doctor::tests::log_chain_absent_is_ok ... ok
[INFO] [stdout] test config::tests::table_secret_pattern_missing_field_still_clear ... ok
[INFO] [stdout] test eval::tests::loads_injection_corpus ... ok
[INFO] [stdout] test doctor::tests::config_missing_is_ok ... ok
[INFO] [stdout] test doctor::tests::binary_on_path_found_and_missing ... ok
[INFO] [stdout] test doctor::tests::render_no_failure_when_all_ok_or_warn ... ok
[INFO] [stdout] test doctor::tests::log_dir_writable_is_ok ... ok
[INFO] [stdout] test doctor::tests::log_chain_intact_is_ok_and_broken_is_fail ... ok
[INFO] [stdout] test fsutil::tests::creates_file_with_0600 ... ok
[INFO] [stdout] test executor::tests::tee_open_failure_falls_back_to_capture ... ok
[INFO] [stdout] test executor::tests::tee_writes_each_line_to_file_and_returns_normal_output ... ok
[INFO] [stdout] test executor::tests::test_exit_code_propagates ... ok
[INFO] [stdout] test hook::claude::tests::guardrail_off_always_allows ... ok
[INFO] [stdout] test executor::tests::test_output_cap_marks_truncation ... ok
[INFO] [stdout] test executor::tests::test_execute_echo ... ok
[INFO] [stdout] test eval::tests::secret_metrics_detects_and_misses ... ok
[INFO] [stdout] test doctor::tests::audit_empty_when_only_vallum ... ok
[INFO] [stdout] test hook::claude::tests::non_bash_and_tui_pass_through ... ok
[INFO] [stdout] test hook::codex::tests::ask_fails_closed_with_actionable_deny ... ok
[INFO] [stdout] test hook::codex::tests::allow_and_non_shell_emit_nothing ... ok
[INFO] [stdout] test hook::claude::tests::dangerous_command_asks_with_reason ... ok
[INFO] [stdout] test hook::codex::tests::malformed_and_tui_emit_nothing ... ok
[INFO] [stdout] test hook::claude::tests::denied_command_returns_deny_no_rewrite ... ok
[INFO] [stdout] test hook::codex::tests::guardrail_off_emits_no_decision ... ok
[INFO] [stdout] test hook::claude::tests::tool_name_match_is_case_insensitive ... ok
[INFO] [stdout] test hook::claude::tests::allow_rewrites_plain_command ... ok
[INFO] [stdout] test hook::codex::tests::tui_ask_fails_closed_too ... ok
[INFO] [stdout] test doctor::tests::audit_skips_vallum_and_flags_foreign ... ok
[INFO] [stdout] test hook::codex::tests::deny_maps_to_deny ... ok
[INFO] [stdout] test hook::claude::tests::tui_ask_has_no_rewrite ... ok
[INFO] [stdout] test hook::cursor::tests::ask_maps_to_native_ask ... ok
[INFO] [stdout] test hook::cursor::tests::guardrail_off_emits_nothing ... ok
[INFO] [stdout] test hook::gemini::tests::non_shell_tool_emits_nothing ... ok
[INFO] [stdout] test hook::gemini::tests::allow_emits_nothing ... ok
[INFO] [stdout] test hook::gemini::tests::malformed_and_tui_emit_nothing ... ok
[INFO] [stdout] test hook::gemini::tests::ask_fails_closed_with_actionable_deny ... ok
[INFO] [stdout] test hook::cursor::tests::deny_maps_to_deny ... ok
[INFO] [stdout] test hook::gemini::tests::deny_maps_to_deny ... ok
[INFO] [stdout] test hook::tests::ask_message_user_rule_advises_config_edit ... ok
[INFO] [stdout] test hook::tests::ask_message_names_rule_command_and_escape_hatch ... ok
[INFO] [stdout] test hook::gemini::tests::guardrail_off_emits_no_decision ... ok
[INFO] [stdout] test hook::tests::decide_tui_matching_a_deny_rule_denies ... ok
[INFO] [stdout] test hook::tests::decide_gates_empty_tui_and_vallum_head ... ok
[INFO] [stdout] test install_hook::claude::tests::add_vallum_errors_on_malformed_hooks_key ... ok
[INFO] [stdout] test install_hook::claude::tests::install_force_replaces_existing ... ok
[INFO] [stdout] test hook::tests::decide_without_policy_allows ... ok
[INFO] [stdout] test install_hook::claude::tests::install_is_idempotent_without_force ... ok
[INFO] [stdout] test install_hook::claude::tests::install_preserves_other_hooks_and_top_level_fields ... ok
[INFO] [stdout] test install_hook::claude::tests::list_hook_commands_empty_when_no_hooks ... ok
[INFO] [stdout] test install_hook::claude::tests::list_hook_commands_extracts_all_commands ... ok
[INFO] [stdout] test install_hook::claude::tests::uninstall_removes_only_vallum_entry ... ok
[INFO] [stdout] test install_hook::codex::tests::add_errors_on_malformed_hooks_key ... ok
[INFO] [stdout] test hook::gemini::tests::tui_ask_fails_closed_too ... ok
[INFO] [stdout] test install_hook::codex::tests::add_into_empty_sets_version_and_entry ... ok
[INFO] [stdout] test hook::cursor::tests::malformed_missing_and_tui_emit_nothing ... ok
[INFO] [stdout] test install_hook::claude::tests::install_into_missing_file_creates_it ... ok
[INFO] [stdout] test hook::tests::decide_tui_with_no_objection_still_passes_through ... ok
[INFO] [stdout] test install_hook::codex::tests::add_is_idempotent_and_force_replaces ... ok
[INFO] [stdout] test hook::tests::decide_maps_policy_verdicts ... ok
[INFO] [stdout] test hook::tests::decide_tui_matching_a_rule_now_asks ... ok
[INFO] [stdout] test hook::cursor::tests::allow_emits_nothing ... ok
[INFO] [stdout] test hook::tests::test_report_covers_all_verdicts ... ok
[INFO] [stdout] test install_hook::codex::tests::list_hook_commands_reads_entries ... ok
[INFO] [stdout] test install_hook::codex::tests::remove_deletes_only_vallum_entry ... ok
[INFO] [stdout] test install_hook::cursor::tests::add_errors_on_malformed_hooks_key ... ok
[INFO] [stdout] test install_hook::cursor::tests::add_into_empty_sets_version_and_entry ... ok
[INFO] [stdout] test install_hook::cursor::tests::list_hook_commands_reads_flat_entries ... ok
[INFO] [stdout] test install_hook::gemini::tests::add_errors_on_malformed_hooks_key ... ok
[INFO] [stdout] test install_hook::cursor::tests::remove_deletes_only_vallum_entry ... ok
[INFO] [stdout] test install_hook::gemini::tests::list_hook_commands_reads_entries ... ok
[INFO] [stdout] test install_hook::gemini::tests::add_preserves_unrelated_hooks_and_keys ... ok
[INFO] [stdout] test install_hook::gemini::tests::remove_deletes_only_vallum_entry ... ok
[INFO] [stdout] test install_hook::select::tests::color_render_highlights_cursor_row_only ... ok
[INFO] [stdout] test install_hook::select::tests::cursor_wraps_both_directions ... ok
[INFO] [stdout] test install_hook::select::tests::decodes_arrow_sequences ... ok
[INFO] [stdout] test install_hook::select::tests::confirm_cancel_and_other ... ok
[INFO] [stdout] test install_hook::select::tests::decodes_plain_keys ... ok
[INFO] [stdout] test install_hook::select::tests::install_rows_preselect_detected_unhooked ... ok
[INFO] [stdout] test install_hook::select::tests::plain_render_matches_layout_exactly ... ok
[INFO] [stdout] test install_hook::select::tests::render_pads_labels_so_hook_markers_align ... ok
[INFO] [stdout] test install_hook::cursor::tests::add_is_idempotent_and_force_replaces ... ok
[INFO] [stdout] test install_hook::select::tests::selected_preserves_row_order ... ok
[INFO] [stdout] test install_hook::select::tests::plain_render_has_no_escape_codes ... ok
[INFO] [stdout] test install_hook::select::tests::toggle_all_checks_then_unchecks ... ok
[INFO] [stdout] test install_hook::cursor::tests::add_preserves_unrelated_hooks_and_keys ... ok
[INFO] [stdout] test install_hook::select::tests::toggle_all_from_partial_checks_all ... ok
[INFO] [stdout] test install_hook::select::tests::uninstall_rows_list_only_hooked_none_checked ... ok
[INFO] [stdout] test install_hook::select::tests::zero_byte_read_is_none ... ok
[INFO] [stdout] test install_hook::tests::status_at_detects_dir_and_hook ... ok
[INFO] [stdout] test install_hook::tests::read_settings_refuses_malformed_json ... ok
[INFO] [stdout] test install_hook::tests::status_at_err_path_is_undetected ... ok
[INFO] [stdout] test install_hook::tests::status_at_malformed_config_counts_as_not_hooked ... ok
[INFO] [stdout] test install_hook::tests::status_at_missing_dir_is_undetected ... ok
[INFO] [stdout] test install_hook::tests::atomic_write_creates_backup ... ok
[INFO] [stdout] test logchain::tests::append_writes_chained_blocks ... ok
[INFO] [stdout] test logchain::tests::delim_matches_audit_writer ... ok
[INFO] [stdout] test logchain::tests::payload_newlines_are_escaped_to_one_line ... ok
[INFO] [stdout] test logchain::tests::run_verify_paths_and_codes ... ok
[INFO] [stdout] test logchain::tests::sha256_hex_known_vector ... ok
[INFO] [stdout] test logchain::tests::tail_truncation_is_invisible_without_anchor ... ok
[INFO] [stdout] test logchain::tests::render_report_codes ... ok
[INFO] [stdout] test logchain::tests::verify_detects_corrupt_chain_line ... ok
[INFO] [stdout] test logchain::tests::verify_detects_deleted_middle_block ... ok
[INFO] [stdout] test logchain::tests::verify_detects_edited_payload ... ok
[INFO] [stdout] test logchain::tests::verify_file_absent_is_none ... ok
[INFO] [stdout] test install_hook::select::tests::bare_esc_cancels_and_esc_junk_is_ignored ... ok
[INFO] [stdout] test logchain::tests::verify_incomplete_tail_after_chain_breaks ... ok
[INFO] [stdout] test logchain::tests::verify_intact_chain ... ok
[INFO] [stdout] test logchain::tests::concurrent_appends_do_not_fork_the_chain ... ok
[INFO] [stdout] test mcp::discover::tests::existing_from_keeps_only_files_that_exist ... ok
[INFO] [stdout] test mcp::discover::tests::known_paths_are_nonempty_and_include_cursor ... ok
[INFO] [stdout] test install_hook::select::tests::space_toggles_cursor_row ... ok
[INFO] [stdout] test install_hook::gemini::tests::add_into_empty_sets_version_and_entry ... ok
[INFO] [stdout] test install_hook::gemini::tests::add_is_idempotent_and_force_replaces ... ok
[INFO] [stdout] test logchain::tests::verify_legacy_prefix_then_chain_is_intact ... ok
[INFO] [stdout] test logchain::tests::verify_unchained_block_after_chain_breaks ... ok
[INFO] [stdout] test mcp::model::tests::json_mcpservers_key_parses_all_fields ... ok
[INFO] [stdout] test install_hook::codex::tests::add_preserves_unrelated_hooks_and_keys ... ok
[INFO] [stdout] test logchain::tests::payload_starting_with_chain_prefix_still_verifies ... ok
[INFO] [stdout] test mcp::model::tests::json_servers_key_is_accepted ... ok
[INFO] [stdout] test mcp::model::tests::json_without_server_map_is_zero_servers_not_error ... ok
[INFO] [stdout] test mcp::model::tests::malformed_json_is_error_not_panic ... ok
[INFO] [stdout] test mcp::model::tests::parse_file_dispatches_by_extension ... ok
[INFO] [stdout] test mcp::tests::clean_report_exits_zero ... ok
[INFO] [stdout] test mcp::model::tests::toml_mcp_servers_table_parses ... ok
[INFO] [stdout] test mcp::scan::tests::clean_env_value_is_not_flagged ... ok
[INFO] [stdout] test mcp::tests::high_finding_exits_twenty ... ok
[INFO] [stdout] test mcp::tests::warning_finding_exits_ten ... ok
[INFO] [stdout] test mcp::tests::usage_error_forces_125_over_findings ... ok
[INFO] [stdout] test metrics::tests::append_stat_creates_file_and_dir ... ok
[INFO] [stdout] test mcp::scan::tests::ordinary_launch_command_is_not_flagged ... ok
[INFO] [stdout] test optimizer::apt::tests::collapses_progress_keeps_plan_and_summary ... ok
[INFO] [stdout] test optimizer::apt::tests::does_not_match_non_install_or_other_commands ... ok
[INFO] [stdout] test optimizer::apt::tests::matches_apt_install_with_and_without_sudo ... ok
[INFO] [stdout] test optimizer::apt::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::brew::tests::collapses_downloads_keeps_pour_and_caveats ... ok
[INFO] [stdout] test optimizer::brew::tests::matches_brew_only ... ok
[INFO] [stdout] test optimizer::brew::tests::passes_through_short_output ... ok
[INFO] [stdout] test metrics::tests::estimate_empty ... ok
[INFO] [stdout] test metrics::tests::estimate_unicode ... ok
[INFO] [stdout] test metrics::tests::estimate_ascii ... ok
[INFO] [stdout] test mcp::scan::tests::risky_launch_command_is_flagged ... ok
[INFO] [stdout] test mcp::scan::tests::env_openai_key_is_flagged_and_masked ... ok
[INFO] [stdout] test optimizer::cargo::tests::does_not_match_cargo_metadata ... ok
[INFO] [stdout] test optimizer::cargo::tests::matches_cargo_test ... ok
[INFO] [stdout] test optimizer::cargo::tests::summarizes_long_cargo_output ... ok
[INFO] [stdout] test optimizer::cmake::tests::matches_cmake_only ... ok
[INFO] [stdout] test optimizer::cmake::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::cmake::tests::collapses_probes_keeps_result_and_errors ... ok
[INFO] [stdout] test optimizer::docker::tests::matches_docker_build_and_compose ... ok
[INFO] [stdout] test optimizer::docker::tests::collapses_progress_keeps_result ... ok
[INFO] [stdout] test optimizer::dotnet::tests::collapses_restore_keeps_build_result ... ok
[INFO] [stdout] test optimizer::dotnet::tests::matches_dotnet_build_family ... ok
[INFO] [stdout] test optimizer::docker::tests::passthrough_small ... ok
[INFO] [stdout] test optimizer::file_list::tests::matches_file_list_commands ... ok
[INFO] [stdout] test optimizer::file_list::tests::ls_long_mode_keeps_head_and_total ... ok
[INFO] [stdout] test optimizer::file_list::tests::passthrough_small_input ... ok
[INFO] [stdout] test optimizer::dotnet::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::file_list::tests::path_mode_absolute_paths_get_real_top_dirs ... ok
[INFO] [stdout] test optimizer::file_list::tests::path_mode_never_hides_error_lines ... ok
[INFO] [stdout] test optimizer::file_list::tests::tree_mode_keeps_head_and_report_line ... ok
[INFO] [stdout] test optimizer::file_list::tests::path_mode_keeps_head_and_summarizes_dirs ... ok
[INFO] [stdout] test optimizer::file_list::tests::path_mode_passthrough_when_only_errors_beyond_head ... ok
[INFO] [stdout] test optimizer::file_list::tests::tree_mode_keeps_singular_report_line ... ok
[INFO] [stdout] test optimizer::git_diff::tests::collapses_context_keeps_changes ... ok
[INFO] [stdout] test optimizer::git_diff::tests::passthrough_small_diff ... ok
[INFO] [stdout] test optimizer::git_diff::tests::matches_git_diff ... ok
[INFO] [stdout] test optimizer::git_log::tests::matches_git_log ... ok
[INFO] [stdout] test optimizer::git_log::tests::keeps_headers_and_subject_collapses_body ... ok
[INFO] [stdout] test optimizer::git_log::tests::passthrough_short_log ... ok
[INFO] [stdout] test optimizer::git_status::tests::compress_long_status ... ok
[INFO] [stdout] test optimizer::git_status::tests::matches_git_status ... ok
[INFO] [stdout] test optimizer::git_status::tests::not_match_git_log ... ok
[INFO] [stdout] test optimizer::cargo::tests::does_not_match_json_message_format ... ok
[INFO] [stdout] test optimizer::git_status::tests::passthrough_short_status ... ok
[INFO] [stdout] test optimizer::git_status::tests::not_match_porcelain ... ok
[INFO] [stdout] test optimizer::go_build::tests::collapses_module_downloads ... ok
[INFO] [stdout] test optimizer::go_build::tests::matches_go_build_family_not_test ... ok
[INFO] [stdout] test optimizer::go_build::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::go_test::tests::collapses_pass_keeps_fail_and_summary ... ok
[INFO] [stdout] test optimizer::go_test::tests::matches_go_test ... ok
[INFO] [stdout] test optimizer::go_test::tests::passthrough_small ... ok
[INFO] [stdout] test logchain::tests::verify_file_unreadable_dir_is_error_not_absent ... FAILED
[INFO] [stdout] test optimizer::gradle::tests::collapses_downloads_keeps_result ... ok
[INFO] [stdout] test optimizer::gradle::tests::matches_gradle_and_wrapper ... ok
[INFO] [stdout] test optimizer::gradle::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::grep::tests::caps_number_of_detailed_files ... ok
[INFO] [stdout] test optimizer::grep::tests::groups_by_file_and_caps_matches_per_file ... ok
[INFO] [stdout] test optimizer::grep::tests::keeps_colon_diagnostics_verbatim ... ok
[INFO] [stdout] test optimizer::grep::tests::keeps_non_match_lines_verbatim ... ok
[INFO] [stdout] test optimizer::grep::tests::matches_grep_family_without_shape_changing_flags ... ok
[INFO] [stdout] test optimizer::grep::tests::passthrough_single_file_content_with_colons ... ok
[INFO] [stdout] test optimizer::grep::tests::passthrough_small_input ... ok
[INFO] [stdout] test optimizer::grep::tests::passthrough_when_nothing_hidden ... ok
[INFO] [stdout] test optimizer::go_test::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test executor::tests::test_timeout_kills_child ... ok
[INFO] [stdout] test optimizer::grep::tests::windows_drive_prefixes_are_not_grouped ... ok
[INFO] [stdout] test optimizer::kubectl::tests::collapses_healthy_keeps_header_and_problems ... ok
[INFO] [stdout] test optimizer::kubectl::tests::matches_kubectl_get ... ok
[INFO] [stdout] test optimizer::kubectl::tests::passthrough_small ... ok
[INFO] [stdout] test optimizer::git_log::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test optimizer::make::tests::matches_make ... ok
[INFO] [stdout] test ansi::tests::prop_strip_never_grows ... ok
[INFO] [stdout] test optimizer::make::tests::passthrough_small ... ok
[INFO] [stdout] test optimizer::make::tests::surfaces_diagnostics_collapses_noise ... ok
[INFO] [stdout] test optimizer::maven::tests::collapses_downloads_keeps_phases_and_summary ... ok
[INFO] [stdout] test optimizer::maven::tests::matches_mvn_and_wrapper ... ok
[INFO] [stdout] test optimizer::maven::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::ninja::tests::collapses_progress_keeps_warnings ... ok
[INFO] [stdout] test optimizer::ninja::tests::matches_ninja_only ... ok
[INFO] [stdout] test optimizer::ninja::tests::non_progress_bracket_line_is_not_noise ... ok
[INFO] [stdout] test optimizer::git_diff::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test optimizer::npm::tests::does_not_match_npm_json_mode ... ok
[INFO] [stdout] test optimizer::npm::tests::matches_npm_test ... ok
[INFO] [stdout] test optimizer::npm::tests::summarizes_pass_lines ... ok
[INFO] [stdout] test optimizer::pip::tests::collapses_dependency_chatter_keeps_outcome ... ok
[INFO] [stdout] test optimizer::pip::tests::does_not_match_non_install_or_other_commands ... ok
[INFO] [stdout] test optimizer::pip::tests::matches_pip_install ... ok
[INFO] [stdout] test optimizer::pip::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::poetry::tests::collapses_operations_keeps_summary ... ok
[INFO] [stdout] test optimizer::poetry::tests::matches_poetry_only ... ok
[INFO] [stdout] test optimizer::poetry::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::pytest::tests::matches_pytest_binary ... ok
[INFO] [stdout] test optimizer::pytest::tests::matches_python_module_pytest ... ok
[INFO] [stdout] test optimizer::docker::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test optimizer::pytest::tests::summarizes_progress_lines ... ok
[INFO] [stdout] test optimizer::terraform::tests::keeps_headers_summary_and_collapses_refresh_and_diff ... ok
[INFO] [stdout] test optimizer::terraform::tests::matches_terraform_plan_and_apply ... ok
[INFO] [stdout] test optimizer::terraform::tests::passthrough_small ... ok
[INFO] [stdout] test optimizer::tests::collapse_noise_runs_collapses_and_keeps_signal ... ok
[INFO] [stdout] test optimizer::tests::collapse_noise_runs_passthrough_when_nothing_collapsed ... ok
[INFO] [stdout] test optimizer::tests::collapse_noise_runs_passthrough_when_too_small ... ok
[INFO] [stdout] test optimizer::tests::dispatch_does_not_unwrap_metacharacter_scripts ... ok
[INFO] [stdout] test optimizer::tests::dispatch_matches_cargo_test_when_output_is_long ... ok
[INFO] [stdout] test optimizer::tests::dispatch_matches_git_status_when_input_is_long ... ok
[INFO] [stdout] test optimizer::tests::dispatch_matches_npm_test_when_output_is_long ... ok
[INFO] [stdout] test optimizer::ninja::tests::passes_through_short_output ... ok
[INFO] [stdout] test optimizer::tests::dispatch_matches_pytest_when_output_is_long ... ok
[INFO] [stdout] test optimizer::tests::dispatch_returns_none_for_unknown_command ... ok
[INFO] [stdout] test optimizer::tests::dispatch_skips_disabled_optimizer ... ok
[INFO] [stdout] test optimizer::tests::dispatch_matches_rg_output ... ok
[INFO] [stdout] test optimizer::tests::dispatch_unwraps_bash_c_simple_command ... ok
[INFO] [stdout] test optimizer::tests::dispatch_unwraps_bash_c_find_to_file_list ... ok
[INFO] [stdout] test optimizer::git_status::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test optimizer::tests::trait_dispatch_returns_name_and_output ... ok
[INFO] [stdout] test optimizer::tests::unwrap_shell_invocation_shapes ... ok
[INFO] [stdout] test policy::audit::tests::allow_verdict_writes_nothing ... ok
[INFO] [stdout] test policy::audit::tests::deny_line_records_agent ... ok
[INFO] [stdout] test policy::audit::tests::disabled_logging_writes_nothing ... ok
[INFO] [stdout] test policy::audit::tests::verdict_blocks_are_hash_chained ... ok
[INFO] [stdout] test policy::normalize::tests::brace_expand_expands_a_single_group_in_place ... ok
[INFO] [stdout] test policy::normalize::tests::brace_expand_leaves_non_lists_untouched ... ok
[INFO] [stdout] test policy::normalize::tests::dequote_keeps_spans_containing_whitespace ... ok
[INFO] [stdout] test policy::normalize::tests::dequote_strips_whitespace_free_quoted_spans ... ok
[INFO] [stdout] test optimizer::file_list::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test policy::normalize::tests::path_normalize_collapses_trailing_dot ... ok
[INFO] [stdout] test policy::normalize::tests::shell_normalize_strips_ansi_c_dollar_quote ... ok
[INFO] [stdout] test policy::normalize::tests::unescape_drops_backslash_before_punctuation ... ok
[INFO] [stdout] test policy::tests::action_serializes_lowercase ... ok
[INFO] [stdout] test policy::normalize::tests::shell_normalize_composes_all_transforms ... ok
[INFO] [stdout] test policy::tests::base64_encoded_commands_still_fire ... ok
[INFO] [stdout] test ansi::tests::prop_strip_does_not_panic ... ok
[INFO] [stdout] test policy::tests::builtins_all_ask_and_named ... ok
[INFO] [stdout] test policy::tests::compile_bad_regex_errors ... ok
[INFO] [stdout] test policy::tests::builtin_benign_twins_do_not_fire ... ok
[INFO] [stdout] test policy::tests::empty_quotes_in_benign_commands_do_not_fire ... ok
[INFO] [stdout] test policy::tests::most_severe_wins_deny_over_ask ... ok
[INFO] [stdout] test optimizer::grep::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test policy::tests::obfuscated_commands_still_fire ... ok
[INFO] [stdout] test policy::tests::quoted_argument_mentions_do_not_fire ... ok
[INFO] [stdout] test policy::tests::resolve_ask_truth_table ... ok
[INFO] [stdout] test policy::tests::split_obfuscation_still_fires ... ok
[INFO] [stdout] test policy::tests::user_deny_rule_fires_with_reason ... ok
[INFO] [stdout] test policy::tests::wrapped_commands_still_fire ... ok
[INFO] [stdout] test policy::tests::no_match_is_allow ... ok
[INFO] [stdout] test policy::tests::builtin_positives_fire ... ok
[INFO] [stdout] test optimizer::kubectl::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test policy::unwrap::tests::base64_only_decoded_when_decode_flag_present ... ok
[INFO] [stdout] test policy::unwrap::tests::bundled_dash_c_flags_are_extracted ... ok
[INFO] [stdout] test policy::tests::write_agent_config_allows_reads_and_source_copies ... ok
[INFO] [stdout] test policy::tests::wrappers_never_downgrade_a_firing_command_to_allow ... ok
[INFO] [stdout] test optimizer::tests::prop_collapse_noise_runs_line_count_bounded ... ok
[INFO] [stdout] test policy::unwrap::tests::dash_c_scan_does_not_cross_a_newline ... ok
[INFO] [stdout] test policy::unwrap::tests::echo_is_not_an_interpreter ... ok
[INFO] [stdout] test policy::unwrap::tests::deduplicates_identical_views ... ok
[INFO] [stdout] test policy::unwrap::tests::decodes_standard_base64 ... ok
[INFO] [stdout] test policy::unwrap::tests::extracts_eval_payload ... ok
[INFO] [stdout] test policy::unwrap::tests::extracts_shell_dash_c_payload ... ok
[INFO] [stdout] test policy::unwrap::tests::interpreter_after_a_pipe_is_extracted ... ok
[INFO] [stdout] test policy::unwrap::tests::interpreter_on_a_later_line_is_extracted ... ok
[INFO] [stdout] test policy::unwrap::tests::is_dash_c_flag_recognizes_bundles_only ... ok
[INFO] [stdout] test policy::unwrap::tests::encoded_payload_becomes_a_view ... ok
[INFO] [stdout] test policy::unwrap::tests::print_led_interpreter_mention_is_not_extracted ... ok
[INFO] [stdout] test policy::unwrap::tests::obfuscated_interpreter_verb_is_unwrapped ... ok
[INFO] [stdout] test policy::unwrap::tests::path_qualified_interpreter_is_unwrapped ... ok
[INFO] [stdout] test policy::unwrap::tests::raw_line_is_always_view_zero ... ok
[INFO] [stdout] test policy::unwrap::tests::reads_bare_word ... ok
[INFO] [stdout] test policy::unwrap::tests::reads_single_quoted_word ... ok
[INFO] [stdout] test policy::unwrap::tests::shell_normalized_form_becomes_a_view ... ok
[INFO] [stdout] test scrubber::entropy::tests::leaves_bare_commit_sha_alone ... ok
[INFO] [stdout] test scrubber::entropy::tests::leaves_bare_uuid_alone ... ok
[INFO] [stdout] test policy::unwrap::tests::wrapper_prefixed_interpreter_is_extracted ... ok
[INFO] [stdout] test scrubber::entropy::tests::leaves_git_log_block_alone ... ok
[INFO] [stdout] test scrubber::entropy::tests::leaves_low_entropy_values_alone ... ok
[INFO] [stdout] test scrubber::entropy::tests::leaves_pure_decimal_ids_alone ... ok
[INFO] [stdout] test scrubber::entropy::tests::leaves_value_just_under_min_length ... ok
[INFO] [stdout] test scrubber::entropy::tests::leaves_rust_paths_alone ... ok
[INFO] [stdout] test policy::unwrap::tests::unwrapped_payload_becomes_a_view ... ok
[INFO] [stdout] test scrubber::entropy::tests::redaction_is_idempotent_on_its_own_output ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_dangling_separator_before_quoted_value ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_dashed_api_key ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_despite_double_separator ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_despite_trailing_separator ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_json_auth_token ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_lowercase_password_assignment ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_padded_quoted_value ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_pwd_and_session_keys ... ok
[INFO] [stdout] test scrubber::entropy::tests::redacts_quoted_hex_secret_with_colon_separator ... ok
[INFO] [stdout] test scrubber::entropy::tests::url_and_path_guards ... ok
[INFO] [stdout] test policy::tests::write_agent_config_asks_on_writes ... ok
[INFO] [stdout] test optimizer::make::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test optimizer::tests::prop_collapse_noise_runs_does_not_panic ... ok
[INFO] [stdout] test mcp::scan::tests::injection_in_description_is_flagged ... ok
[INFO] [stdout] test optimizer::terraform::tests::prop_optimize_does_not_panic ... ok
[INFO] [stdout] test mcp::scan::tests::benign_description_is_not_flagged ... ok
[INFO] [stdout] test eval::tests::injection_metrics_math ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_precomposed_accent_evasion ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_no_space_reveal_family ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_no_space_ignore_family ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_tr_prompt_loanword_reveal ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_dan_persona ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_fr_es_adjective_free_ignore ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_zh_line_split_injection ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_disregard_everything_above ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_zh_injection_families ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_unicode_evasions ... ok
[INFO] [stdout] test scrubber::injection::tests::en_persona_benign_not_flagged ... ok
[INFO] [stdout] test scrubber::injection::tests::no_space_normalize_off_passes ... ok
[INFO] [stdout] test scrubber::injection::tests::no_space_benign_passes ... ok
[INFO] [stdout] test scrubber::injection::tests::fr_tr_benign_not_flagged ... ok
[INFO] [stdout] test scrubber::injection::tests::no_space_reveal_normalize_off_passes ... ok
[INFO] [stdout] test scrubber::injection::tests::normalize_off_misses_homoglyph ... ok
[INFO] [stdout] test scrubber::injection::tests::en_persona_broad_benign_not_flagged ... ok
[INFO] [stdout] test scrubber::injection::tests::normalize_off_preserves_accented_multilingual_detection ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_scaffold_and_hidden_markup_families ... ok
[INFO] [stdout] test scrubber::injection::tests::normalize_on_detects_multilingual_shadow_variants ... ok
[INFO] [stdout] test scrubber::injection::tests::exfil_escalation_benign_not_flagged ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_exfil_escalation_covert_families ... ok
[INFO] [stdout] test scrubber::injection::tests::no_space_reveal_benign_passes ... ok
[INFO] [stdout] test scrubber::injection::tests::test_benign_text_not_over_neutralized ... ok
[INFO] [stdout] test scrubber::injection::tests::test_line_split_injection_detected ... ok
[INFO] [stdout] test scrubber::injection::tests::test_looks_like_log_line ... ok
[INFO] [stdout] test scrubber::injection::tests::test_injection_consumes_trailing_payload ... ok
[INFO] [stdout] test scrubber::injection::tests::pt_it_nl_hi_benign_not_flagged ... ok
[INFO] [stdout] test scrubber::injection::tests::scaffold_and_hidden_benign_not_flagged ... ok
[INFO] [stdout] test scrubber::injection::tests::detects_pt_it_nl_hi_injection_families ... ok
[INFO] [stdout] test scrubber::injection::tests::test_turn_lines_natural_language_neutralized ... ok
[INFO] [stdout] test scrubber::entropy::tests::prop_does_not_panic ... ok
[INFO] [stdout] test scrubber::entropy::tests::prop_idempotent ... ok
[INFO] [stdout] test scrubber::injection::tests::test_turn_lines_value_like_pass_through ... ok
[INFO] [stdout] test scrubber::injection::tests::test_reveal_family_en_requires_directed_object ... ok
[INFO] [stdout] test policy::unwrap::tests::command_views_never_panics ... ok
[INFO] [stdout] test scrubber::injection::tests::test_scrub_injections_variants ... ok
[INFO] [stdout] test scrubber::injection::tests::zh_benign_not_flagged ... ok
[INFO] [stdout] test scrubber::markers::tests::defangs_exact_markers ... ok
[INFO] [stdout] test scrubber::normalize::tests::leaves_ordinary_text_and_whitespace_untouched ... ok
[INFO] [stdout] test scrubber::injection::tests::test_multilingual_injection_detected ... ok
[INFO] [stdout] test scrubber::markers::tests::defangs_whitespace_and_case_variants ... ok
[INFO] [stdout] test scrubber::normalize::tests::shadow_ascii_fast_path_equals_ascii_lowercase ... ok
[INFO] [stdout] test scrubber::normalize::tests::shadow_folds_cyrillic_confusables ... ok
[INFO] [stdout] test scrubber::normalize::tests::shadow_folds_fullwidth_and_math_to_ascii ... ok
[INFO] [stdout] test scrubber::normalize::tests::shadow_lowercases ... ok
[INFO] [stdout] test scrubber::normalize::tests::shadow_strips_combining_marks ... ok
[INFO] [stdout] test scrubber::normalize::tests::shadow_strips_marks_exposed_by_case_and_decomposition ... ok
[INFO] [stdout] test scrubber::normalize::tests::strip_invisible_is_idempotent ... ok
[INFO] [stdout] test scrubber::normalize::tests::strips_zero_width_and_bidi ... ok
[INFO] [stdout] test scrubber::secrets::tests::batch_3_prefixes_do_not_eat_prose ... ok
[INFO] [stdout] test scrubber::secrets::tests::entropy_stage_can_be_disabled ... ok
[INFO] [stdout] test scrubber::secrets::tests::over_length_fixed_count_keys_do_not_leak_a_suffix ... ok
[INFO] [stdout] test scrubber::injection::tests::test_reveal_family_multilingual_precision ... ok
[INFO] [stdout] test scrubber::normalize::tests::prop_detection_shadow_ascii_is_ascii_lowercase ... ok
[INFO] [stdout] test scrubber::secrets::tests::scrubs_more_provider_formats ... ok
[INFO] [stdout] test scrubber::secrets::tests::scrubs_provider_formats_batch_2 ... ok
[INFO] [stdout] test scrubber::secrets::tests::scrubs_provider_formats_batch_3 ... ok
[INFO] [stdout] test scrubber::secrets::tests::sk_ant_key_is_not_double_masked ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_env_assignment_ignores_short_prose ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_scrub_additional_provider_formats ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_scrub_bare_jwt ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_scrub_connection_string_password ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_scrub_custom_secret_pattern ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_scrub_env_assignment ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_scrub_extended_secret_formats ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_scrub_new_secret_formats ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_scrub_secrets ... ok
[INFO] [stdout] test scrubber::secrets::tests::test_twilio_sid_does_not_eat_prose ... ok
[INFO] [stdout] test scrubber::tests::injection_hidden_behind_secret_mask_is_neutralized ... ok
[INFO] [stdout] test scrubber::normalize::tests::prop_detection_shadow_is_idempotent ... ok
[INFO] [stdout] test scrubber::secrets::tests::prop_scrub_secrets_does_not_panic ... ok
[INFO] [stdout] test scrubber::normalize::tests::prop_strip_invisible_does_not_panic ... ok
[INFO] [stdout] test scrubber::tests::redact_masks_secrets_without_wrapper ... ok
[INFO] [stdout] test scrubber::tests::sanitize_keeps_invisible_when_normalize_off ... ok
[INFO] [stdout] test scrubber::tests::sanitize_strips_zero_width_when_normalize_on ... ok
[INFO] [stdout] test scrubber::markers::tests::prop_defang_strips_exact_markers ... ok
[INFO] [stdout] test scrubber::tests::secret_and_injection_on_separate_lines_both_handled ... ok
[INFO] [stdout] test scrubber::tests::strict_passes_clean_output_through ... ok
[INFO] [stdout] test scrubber::tests::strict_blocks_output_on_injection ... ok
[INFO] [stdout] test stats::tests::aggregate_savings_total ... ok
[INFO] [stdout] test stats::tests::tolerant_parse_skips_corrupt_lines ... ok
[INFO] [stdout] test scrubber::tests::test_marker_spoofing_is_defanged ... ok
[INFO] [stdout] test stats::tests::top_n_sorted_by_absolute_savings ... ok
[INFO] [stdout] test tokenizer::tests::empty_is_zero ... ok
[INFO] [stdout] test tokenizer::tests::symbols_counted_separately ... ok
[INFO] [stdout] test tokenizer::tests::unicode_word_is_one_token ... ok
[INFO] [stdout] test tokenizer::tests::words_counted ... ok
[INFO] [stdout] test truncator::tests::caps_overlong_line_on_char_boundary ... ok
[INFO] [stdout] test truncator::tests::cap_is_utf8_safe ... ok
[INFO] [stdout] test optimizer::grep::tests::prop_output_never_longer_in_lines ... ok
[INFO] [stdout] test scrubber::secrets::tests::prop_scrub_secrets_idempotent ... ok
[INFO] [stdout] test eval::tests::render_has_secrets_missed_section ... ok
[INFO] [stdout] test truncator::tests::short_line_untouched_and_zero_disables ... ok
[INFO] [stdout] test truncator::tests::smart_truncate_applies_line_cap ... ok
[INFO] [stdout] test truncator::tests::test_error_kept_in_place_with_context ... ok
[INFO] [stdout] test truncator::tests::test_no_false_positive_on_no_errors_phrase ... ok
[INFO] [stdout] test truncator::tests::test_truncate_short_output ... ok
[INFO] [stdout] test update::tests::detects_install_method_from_path ... ok
[INFO] [stdout] test update::tests::parses_latest_from_sparse_index ... ok
[INFO] [stdout] test update::tests::upgrade_command_per_method ... ok
[INFO] [stdout] test update::tests::version_comparison ... ok
[INFO] [stdout] test welcome::tests::color_render_paints_title_and_markers ... ok
[INFO] [stdout] test welcome::tests::guardrail_off_and_unknown_variants ... ok
[INFO] [stdout] test welcome::tests::guardrail_one_rule_is_singular ... ok
[INFO] [stdout] test welcome::tests::guardrail_state_from_config_result ... ok
[INFO] [stdout] test welcome::tests::hook_state_classifies_all_four_cases ... ok
[INFO] [stdout] test welcome::tests::plain_render_contains_no_escape_codes ... ok
[INFO] [stdout] test welcome::tests::plain_render_matches_spec_layout_exactly ... ok
[INFO] [stdout] test welcome::tests::unknown_hook_state_renders_question_mark ... ok
[INFO] [stdout] test whitespace::tests::collapse_triple_blank_to_single ... ok
[INFO] [stdout] test whitespace::tests::preserve_double_blank ... ok
[INFO] [stdout] test whitespace::tests::preserve_meaningful_indent ... ok
[INFO] [stdout] test eval::tests::report_has_category_breakdown ... ok
[INFO] [stdout] test scrubber::normalize::tests::prop_strip_invisible_only_removes_target_set ... ok
[INFO] [stdout] test scrubber::normalize::tests::prop_detection_shadow_does_not_panic ... ok
[INFO] [stdout] test whitespace::tests::strip_trailing_spaces ... ok
[INFO] [stdout] test eval::tests::render_is_deterministic_and_labeled ... ok
[INFO] [stdout] test whitespace::tests::prop_collapse_no_quad_newline ... ok
[INFO] [stdout] test truncator::tests::prop_cap_line_length_bounded ... ok
[INFO] [stdout] test whitespace::tests::prop_collapse_does_not_panic ... ok
[INFO] [stdout] test truncator::tests::prop_cap_line_length_zero_is_identity ... ok
[INFO] [stdout] test truncator::tests::prop_cap_line_length_does_not_panic ... ok
[INFO] [stdout] test scrubber::injection::tests::prop_scrub_injections_does_not_panic ... ok
[INFO] [stdout] test policy::tests::evaluate_never_panics ... ok
[INFO] [stdout] test scrubber::injection::tests::prop_no_detection_means_output_unchanged ... ok
[INFO] [stdout] test truncator::tests::prop_smart_truncate_does_not_panic ... ok
[INFO] [stdout] test scrubber::tests::prop_sanitize_does_not_panic ... ok
[INFO] [stdout] test scrubber::injection::tests::prop_scrub_injections_no_alpha_means_no_detection ... ok
[INFO] [stdout] test scrubber::tests::prop_sanitize_has_exactly_one_end_marker ... ok
[INFO] [stdout] test scrubber::tests::prop_sanitize_output_is_wrapped ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- logchain::tests::verify_file_unreadable_dir_is_error_not_absent stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'logchain::tests::verify_file_unreadable_dir_is_error_not_absent' (1670) panicked at src/logchain.rs:498:9:
[INFO] [stdout] dir-level EACCES must be an error, not absence
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5c6d30d90318 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5c6d30d90318 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5c6d30d90318 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5c6d30d90318 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5c6d30da7faa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5c6d30da7faa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5c6d30d95012 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5c6d30d95012 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5c6d30d6b986 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5c6d30d6b986 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5c6d30d867d9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5c6d309b3abc - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5c6d309b3abc - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5c6d30d86992 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5c6d30d86992 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5c6d30d6ba74 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5c6d30d609b9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5c6d30d6c8ad - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5c6d30da87ec - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5c6d30733614 - vallum[df229f40a24a90db]::logchain::tests::verify_file_unreadable_dir_is_error_not_absent
[INFO] [stdout]                                at /opt/rustwide/workdir/src/logchain.rs:498:9
[INFO] [stdout]   20:     0x5c6d3071fcc7 - vallum[df229f40a24a90db]::logchain::tests::verify_file_unreadable_dir_is_error_not_absent::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/logchain.rs:488:56
[INFO] [stdout]   21:     0x5c6d307928b6 - <vallum[df229f40a24a90db]::logchain::tests::verify_file_unreadable_dir_is_error_not_absent::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5c6d309a6b9b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5c6d309a6b9b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x5c6d309b4415 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x5c6d309b4415 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5c6d309b4415 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x5c6d309b4415 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x5c6d309b4415 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5c6d309b4415 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x5c6d309b4415 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x5c6d309add24 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x5c6d309add24 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5c6d309b7492 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x5c6d309b7492 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5c6d309b7492 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x5c6d309b7492 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x5c6d309b7492 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5c6d309b7492 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x5c6d309b7492 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5c6d30d8f3df - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   41:     0x5c6d30d8f3df - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x77011e854aa4 - <unknown>
[INFO] [stdout]   43:     0x77011e8e1a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     logchain::tests::verify_file_unreadable_dir_is_error_not_absent
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 487 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.10s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed", kill_on_drop: false }`
[INFO] [stdout] f53cb9aa2e3a178ffe99956ca0ee7dbb86b426240821cd7536cfb68082a037ed
