[INFO] fetching crate whet 0.1.0...
[INFO] testing whet-0.1.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate whet 0.1.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate whet 0.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate whet 0.1.0
[INFO] tweaked toml for crates.io crate whet 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate whet 0.1.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate whet 0.1.0 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 55726045cb713ead0271d051d48a51a61d0d529ce33afc5b3a95bcf8c1f1722e
[INFO] running `Command { std: "docker" "start" "-a" "55726045cb713ead0271d051d48a51a61d0d529ce33afc5b3a95bcf8c1f1722e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "55726045cb713ead0271d051d48a51a61d0d529ce33afc5b3a95bcf8c1f1722e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "55726045cb713ead0271d051d48a51a61d0d529ce33afc5b3a95bcf8c1f1722e", kill_on_drop: false }`
[INFO] [stdout] 55726045cb713ead0271d051d48a51a61d0d529ce33afc5b3a95bcf8c1f1722e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 375d7622b0fdcddaec4c726a0820c1837d5fff41295042ef297d7dbe2e3d37b7
[INFO] running `Command { std: "docker" "start" "-a" "375d7622b0fdcddaec4c726a0820c1837d5fff41295042ef297d7dbe2e3d37b7", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling clap_builder v4.5.59
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling rustyline v15.0.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling dialoguer v0.11.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap v4.5.59
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling whet v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.42s
[INFO] running `Command { std: "docker" "inspect" "375d7622b0fdcddaec4c726a0820c1837d5fff41295042ef297d7dbe2e3d37b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "375d7622b0fdcddaec4c726a0820c1837d5fff41295042ef297d7dbe2e3d37b7", kill_on_drop: false }`
[INFO] [stdout] 375d7622b0fdcddaec4c726a0820c1837d5fff41295042ef297d7dbe2e3d37b7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 76d6dfc1c14006f77c2ad1a9462724f82e61cb5c39f883d2d91c507bff26df9a
[INFO] running `Command { std: "docker" "start" "-a" "76d6dfc1c14006f77c2ad1a9462724f82e61cb5c39f883d2d91c507bff26df9a", kill_on_drop: false }`
[INFO] [stderr]    Compiling whet v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.26s
[INFO] running `Command { std: "docker" "inspect" "76d6dfc1c14006f77c2ad1a9462724f82e61cb5c39f883d2d91c507bff26df9a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "76d6dfc1c14006f77c2ad1a9462724f82e61cb5c39f883d2d91c507bff26df9a", kill_on_drop: false }`
[INFO] [stdout] 76d6dfc1c14006f77c2ad1a9462724f82e61cb5c39f883d2d91c507bff26df9a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e4c8d55450699ed609679f430b7bd53b31dfda7709aa6d2b8a8cfb73764f3be0
[INFO] running `Command { std: "docker" "start" "-a" "e4c8d55450699ed609679f430b7bd53b31dfda7709aa6d2b8a8cfb73764f3be0", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/whet-e29024b881227f3e)
[INFO] [stdout] 
[INFO] [stdout] running 557 tests
[INFO] [stdout] test agent::prompt::tests::test_prompt_chain_tools_rule ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_act_dont_ask_rule ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_has_workflow_examples ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_has_editing_rules ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_has_vague_request_handling ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_language_rule_is_first_and_mandatory ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_has_tool_selection_table ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_no_skills_means_no_skills_section ... ok
[INFO] [stdout] test agent::prompt::tests::test_load_project_instructions_dotfile ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_no_generic_advice_rule ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_language_reminder_at_end ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_identifies_as_whet ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_has_core_rules_section ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_no_old_project_names ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_be_concise_rule ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_language_rule_appears_twice ... ok
[INFO] [stdout] test agent::prompt::tests::test_load_project_instructions_none_when_missing ... ok
[INFO] [stdout] test agent::prompt::tests::test_load_project_instructions_searches_parent ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_has_error_recovery ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_all_sections_present ... ok
[INFO] [stdout] test agent::prompt::tests::test_load_project_instructions_finds_file ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_read_before_editing_rule ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_readme_mentioned_in_tool_selection ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_tool_selection_correct_vs_wrong ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_vague_requests_mention_cargo_test ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_workflow_read_file_before_repo_map ... ok
[INFO] [stdout] test agent::prompt::tests::test_prompt_skills_appended_after_base ... ok
[INFO] [stdout] test agent::prompt::tests::test_system_prompt_with_skills ... ok
[INFO] [stdout] test agent::tests::test_apply_diff_without_read_returns_warning ... ok
[INFO] [stdout] test agent::tests::test_accept_edits_allows_write_file ... ok
[INFO] [stdout] test agent::tests::test_needs_approval_yolo_mode ... ok
[INFO] [stdout] test agent::tests::test_plan_mode_blocks_dangerous_tools ... ok
[INFO] [stdout] test agent::tests::test_empty_content_response ... ok
[INFO] [stdout] test agent::tests::test_multiple_tool_calls_in_one_response ... ok
[INFO] [stdout] test agent::tests::test_edit_file_after_read_succeeds ... ok
[INFO] [stdout] test agent::tests::test_llm_error_returns_error_message ... ok
[INFO] [stdout] test agent::tests::test_plan_mode_allows_safe_tools ... ok
[INFO] [stdout] test agent::tests::test_edit_file_without_read_returns_warning ... ok
[INFO] [stdout] test agent::tests::test_process_message_delegates_to_callback_version ... ok
[INFO] [stdout] test agent::tests::test_process_message_with_callback_receives_tokens ... ok
[INFO] [stdout] test agent::tests::test_edit_file_path_normalization ... ok
[INFO] [stdout] test agent::tests::test_process_message_with_callback_empty_callback ... ok
[INFO] [stdout] test agent::tests::test_needs_approval_default_mode ... ok
[INFO] [stdout] test agent::tests::test_process_message_with_callback_tool_calls ... ok
[INFO] [stdout] test agent::tests::test_max_iterations_reached ... ok
[INFO] [stdout] test agent::tests::test_process_message_with_callback_error ... ok
[INFO] [stdout] test agent::tests::test_plan_mode_blocks_moderate_tools ... ok
[INFO] [stdout] test agent::tests::test_simple_text_response ... ok
[INFO] [stdout] test agent::tests::test_resumed_session_still_tracks_read_paths ... ok
[INFO] [stdout] test agent::tests::test_safe_tool_never_needs_approval ... ok
[INFO] [stdout] test agent::tests::test_tool_call_then_response ... ok
[INFO] [stdout] test agent::tests::test_memory_accumulates_across_messages ... ok
[INFO] [stdout] test agent::tests::test_tool_denied_by_approval_callback ... ok
[INFO] [stdout] test agent::tests::test_process_message_with_callback_multiple_turns ... ok
[INFO] [stdout] test agent::tests::test_system_prompt_is_first_message ... ok
[INFO] [stdout] test agent::tests::test_tool_call_with_content_alongside ... ok
[INFO] [stdout] test agent::tests::test_tool_approved_by_callback ... ok
[INFO] [stdout] test agent::tests::test_tool_output_exactly_at_limit_not_truncated ... ok
[INFO] [stdout] test agent::tests::test_resumed_edit_file_skips_read_before_edit_warning ... ok
[INFO] [stdout] test agent::tests::test_tool_output_exceeding_limit_is_truncated ... ok
[INFO] [stdout] test agent::tests::test_tool_execution_error_handled ... ok
[INFO] [stdout] test agent::prompt::tests::test_system_prompt_contains_whet ... ok
[INFO] [stdout] test agent::tests::test_tool_output_truncation_utf8_safe ... ok
[INFO] [stdout] test agent::tests::test_write_file_without_read_succeeds ... ok
[INFO] [stdout] test config::tests::test_config_backward_compat_without_mcp ... ok
[INFO] [stdout] test config::tests::test_config_backward_compat_without_streaming ... ok
[INFO] [stdout] test config::tests::test_config_default_new_fields ... ok
[INFO] [stdout] test agent::tests::test_tool_output_within_limit_not_truncated ... ok
[INFO] [stdout] test agent::tests::test_unknown_tool_handled_gracefully ... ok
[INFO] [stdout] test config::tests::test_config_extra_unknown_fields_ignored ... ok
[INFO] [stdout] test config::tests::test_config_load_returns_defaults_when_no_file ... ok
[INFO] [stdout] test agent::tests::test_yolo_mode_skips_approval ... ok
[INFO] [stdout] test config::tests::test_config_backward_compat_without_api_key ... ok
[INFO] [stdout] test config::tests::test_config_parse_custom_values ... ok
[INFO] [stdout] test config::tests::test_config_parse_invalid_toml ... ok
[INFO] [stdout] test config::tests::test_config_mcp_server_without_args ... ok
[INFO] [stdout] test config::tests::test_config_parse_missing_section ... ok
[INFO] [stdout] test config::tests::test_config_parse_wrong_type ... ok
[INFO] [stdout] test config::tests::test_config_roundtrip_with_new_fields ... ok
[INFO] [stdout] test config::tests::test_config_roundtrip_toml ... ok
[INFO] [stdout] test config::tests::test_config_with_all_new_fields ... ok
[INFO] [stdout] test config::tests::test_config_with_api_key ... ok
[INFO] [stdout] test config::tests::test_config_with_streaming_enabled ... ok
[INFO] [stdout] test config::tests::test_default_config_values ... ok
[INFO] [stdout] test config::tests::test_config_with_mcp_servers ... ok
[INFO] [stdout] test config::tests::test_default_permission_mode ... ok
[INFO] [stdout] test config::tests::test_permission_mode_accept_edits ... ok
[INFO] [stdout] test agent::tests::test_needs_approval_accept_edits_mode ... ok
[INFO] [stdout] test config::tests::test_permission_mode_backward_compat ... ok
[INFO] [stdout] test config::tests::test_permission_mode_display ... ok
[INFO] [stdout] test config::tests::test_permission_mode_roundtrip ... ok
[INFO] [stdout] test config::tests::test_permission_mode_yolo ... ok
[INFO] [stdout] test llm::anthropic::tests::test_client_stores_config ... ok
[INFO] [stdout] test llm::anthropic::tests::test_convert_messages_assistant_with_tool_calls ... ok
[INFO] [stdout] test llm::anthropic::tests::test_convert_messages_system ... ok
[INFO] [stdout] test llm::anthropic::tests::test_convert_messages_tool_result ... ok
[INFO] [stdout] test llm::anthropic::tests::test_convert_messages_user ... ok
[INFO] [stdout] test llm::anthropic::tests::test_convert_multiple_system_messages ... ok
[INFO] [stdout] test llm::anthropic::tests::test_convert_tools ... ok
[INFO] [stdout] test llm::anthropic::tests::test_parse_response_text ... ok
[INFO] [stdout] test llm::anthropic::tests::test_parse_response_tool_use ... ok
[INFO] [stdout] test llm::anthropic::tests::test_request_serialization ... ok
[INFO] [stdout] test llm::anthropic::tests::test_sse_content_block_delta_text ... ok
[INFO] [stdout] test llm::anthropic::tests::test_sse_content_block_start_tool_use ... ok
[INFO] [stdout] test llm::anthropic::tests::test_client_trims_trailing_slash ... ok
[INFO] [stdout] test llm::anthropic::tests::test_sse_input_json_delta ... ok
[INFO] [stdout] test llm::gemini::tests::test_client_stores_config ... ok
[INFO] [stdout] test llm::gemini::tests::test_client_trims_trailing_slash ... ok
[INFO] [stdout] test llm::gemini::tests::test_convert_messages_assistant ... ok
[INFO] [stdout] test llm::gemini::tests::test_convert_messages_assistant_with_tool_calls ... ok
[INFO] [stdout] test llm::gemini::tests::test_convert_messages_system ... ok
[INFO] [stdout] test llm::gemini::tests::test_convert_messages_tool_result ... ok
[INFO] [stdout] test llm::gemini::tests::test_convert_messages_user ... ok
[INFO] [stdout] test llm::gemini::tests::test_convert_multiple_system_messages ... ok
[INFO] [stdout] test llm::gemini::tests::test_convert_tools ... ok
[INFO] [stdout] test llm::gemini::tests::test_convert_tools_empty ... ok
[INFO] [stdout] test llm::gemini::tests::test_parse_response_function_call ... ok
[INFO] [stdout] test llm::gemini::tests::test_parse_response_no_candidates ... ok
[INFO] [stdout] test llm::gemini::tests::test_parse_response_text ... ok
[INFO] [stdout] test llm::gemini::tests::test_request_serialization ... ok
[INFO] [stdout] test llm::gemini::tests::test_streaming_sse_function_call_chunk ... ok
[INFO] [stdout] test llm::gemini::tests::test_streaming_sse_text_chunk ... ok
[INFO] [stdout] test llm::ollama::tests::test_convert_assistant_with_tool_calls ... ok
[INFO] [stdout] test llm::ollama::tests::test_convert_empty_messages ... ok
[INFO] [stdout] test llm::ollama::tests::test_convert_mixed_conversation ... ok
[INFO] [stdout] test llm::ollama::tests::test_client_stores_config ... ok
[INFO] [stdout] test llm::ollama::tests::test_convert_system_message ... ok
[INFO] [stdout] test llm::ollama::tests::test_convert_tool_result_message ... ok
[INFO] [stdout] test llm::ollama::tests::test_convert_tools_empty ... ok
[INFO] [stdout] test llm::ollama::tests::test_convert_tools_single ... ok
[INFO] [stdout] test llm::ollama::tests::test_convert_user_message ... ok
[INFO] [stdout] test llm::ollama::tests::test_message_constructors ... ok
[INFO] [stdout] test llm::ollama::tests::test_request_serialization_no_tools ... ok
[INFO] [stdout] test llm::ollama::tests::test_request_serialization_with_tools ... ok
[INFO] [stdout] test llm::ollama::tests::test_response_parse_empty_content_becomes_none ... ok
[INFO] [stdout] test llm::ollama::tests::test_response_parse_multiple_tool_calls ... ok
[INFO] [stdout] test llm::ollama::tests::test_response_parse_text_only ... ok
[INFO] [stdout] test llm::ollama::tests::test_response_parse_with_tool_calls ... ok
[INFO] [stdout] test llm::ollama::tests::test_streaming_chunk_parse_content ... ok
[INFO] [stdout] test llm::ollama::tests::test_streaming_chunk_parse_done ... ok
[INFO] [stdout] test llm::ollama::tests::test_streaming_chunk_parse_no_done_field ... ok
[INFO] [stdout] test llm::ollama::tests::test_streaming_chunk_with_tool_calls ... ok
[INFO] [stdout] test llm::ollama::tests::test_streaming_content_accumulation_simulation ... ok
[INFO] [stdout] test llm::ollama::tests::test_streaming_empty_lines_skipped ... ok
[INFO] [stdout] test llm::ollama::tests::test_streaming_tool_calls_accumulated ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_client_no_api_key ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_client_trims_trailing_slash ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_convert_assistant_with_tool_calls ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_convert_empty_tools ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_convert_mixed_conversation ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_convert_system_message ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_convert_tool_result_message ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_convert_tools ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_convert_user_message ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_request_serialization ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_client_stores_config ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_request_serialization_with_stream_true ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_response_parse_empty_content_becomes_none ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_response_parse_multiple_tool_calls ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_response_parse_null_content ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_response_parse_text_only ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_response_parse_with_tool_calls ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_sse_content_accumulation_simulation ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_sse_empty_content_delta_skipped ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_sse_line_parsing_content_delta ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_sse_line_parsing_done ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_sse_malformed_json_skipped ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_sse_multiple_tool_calls_delta ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_sse_non_data_lines_skipped ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_sse_tool_call_delta_assembly ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_tool_call_arguments_invalid_json_fallback ... ok
[INFO] [stdout] test llm::openai_compat::tests::test_tool_call_arguments_json_string_parsing ... ok
[INFO] [stdout] test mcp::client::tests::test_mcp_error_display ... ok
[INFO] [stdout] test mcp::protocol::tests::test_notification_serialization ... ok
[INFO] [stdout] test mcp::protocol::tests::test_notification_with_params ... ok
[INFO] [stdout] test mcp::protocol::tests::test_json_rpc_error_negative_code ... ok
[INFO] [stdout] test mcp::client::tests::test_spawn_nonexistent_command ... ok
[INFO] [stdout] test mcp::protocol::tests::test_request_large_id ... ok
[INFO] [stdout] test mcp::protocol::tests::test_request_no_params ... ok
[INFO] [stdout] test mcp::protocol::tests::test_request_serialization ... ok
[INFO] [stdout] test mcp::protocol::tests::test_request_with_nested_params ... ok
[INFO] [stdout] test mcp::client::tests::test_mcp_server_closes_connection ... ok
[INFO] [stdout] test mcp::protocol::tests::test_response_deserialization_success ... ok
[INFO] [stdout] test mcp::protocol::tests::test_response_with_null_id ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_call_result_default_is_error ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_call_result_deserialization ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_call_result_multiple_content ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_info_deserialization ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_info_list_parsing ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_info_minimal ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_info_with_empty_description ... ok
[INFO] [stdout] test mcp::tests::test_register_mcp_tools_empty_servers ... ok
[INFO] [stdout] test mcp::tests::test_register_mcp_tools_nonexistent_server ... ok
[INFO] [stdout] test mcp::tool_wrapper::tests::test_tool_wrapper_description ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_call_result_error ... ok
[INFO] [stdout] test mcp::tests::test_register_mcp_tools_mixed_success_failure ... ok
[INFO] [stdout] test mcp::protocol::tests::test_response_deserialization_error ... ok
[INFO] [stdout] test memory::store::tests::test_create_and_load_conversation ... ok
[INFO] [stdout] test memory::store::tests::test_get_latest_conversation ... ok
[INFO] [stdout] test memory::store::tests::test_duplicate_conversation_id_fails ... ok
[INFO] [stdout] test mcp::tool_wrapper::tests::test_tool_wrapper_name_format ... ok
[INFO] [stdout] test memory::store::tests::test_backward_compat_null_working_dir ... ok
[INFO] [stdout] test memory::store::tests::test_get_latest_conversation_filters_by_dir ... ok
[INFO] [stdout] test memory::store::tests::test_list_conversations ... ok
[INFO] [stdout] test memory::store::tests::test_latest_conversation_updated_on_message ... ok
[INFO] [stdout] test memory::store::tests::test_message_ordering_preserved ... ok
[INFO] [stdout] test memory::store::tests::test_load_nonexistent_conversation ... ok
[INFO] [stdout] test memory::store::tests::test_multiple_conversations_isolated ... ok
[INFO] [stdout] test memory::store::tests::test_load_empty_conversation ... ok
[INFO] [stdout] test memory::store::tests::test_tool_calls_json_stored_and_loaded ... ok
[INFO] [stdout] test memory::store::tests::test_special_characters_in_content ... ok
[INFO] [stdout] test memory::store::tests::test_tool_call_id_stored ... ok
[INFO] [stdout] test memory::store::tests::test_tool_calls_null_backward_compat ... ok
[INFO] [stdout] test memory::store::tests::test_update_conversation_title ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_awk_safe ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_chmod_safe ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_diff_safe ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_safe_chains ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_safe_find ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_safe_script_execution ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_sed_safe ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_tee_to_safe_path ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_xargs_safe ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_awk_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_bash_c ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_cat_dollar_home_ssh ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_cat_etc_shadow ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_cat_via_symlink ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_chain_and ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_chain_or ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_grep_safe ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_normal_commands ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_chmod_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_allows_redirect_to_safe_path ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_dd_to_dev ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_chain_semicolon ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_env_dump ... ok
[INFO] [stdout] test memory::store::tests::test_file_based_store ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_find_exec_cat_shadow ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_eval_curl ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_grep_sensitive_file ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_mkfs ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_nested_subshell ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_node_sensitive_path ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_perl_sensitive_path ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_pipe_segment_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_proc_environ ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_python_sensitive_path ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_cp_mv_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_curl_pipe_bash ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_redirect_all_to_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_redirect_in_chain ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_redirect_to_ssh_key ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_redirect_with_traversal ... ok
[INFO] [stdout] test memory::store::tests::test_large_content_stored ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_rm_rf_root ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_script_with_ssh_path ... ok
[INFO] [stdout] test memory::store::tests::test_list_conversations_empty_dir ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_diff_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_fork_bomb ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_redirect_stderr_to_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_sed_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_subshell_dollar_paren ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_sensitive_path_with_traversal ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_su_doas_pkexec ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_xargs_cat ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_sudo ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_xargs_rm ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_subshell_backtick ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_xargs_sudo ... ok
[INFO] [stdout] test security::path::tests::test_normalize_path_resolves_dot_dot ... ok
[INFO] [stdout] test security::path::tests::test_normalize_path_root ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_aws ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_docker_config ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_dollar_home_ssh ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_etc_shadow ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_etc_sudoers ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_gnupg ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_kube_config ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_ssh_dir ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_safe_paths ... ok
[INFO] [stdout] test security::path::tests::test_path_traversal_blocked ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_blocks_etc_gshadow ... ok
[INFO] [stdout] test security::path::tests::test_dot_dot_in_safe_path ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_redirect_to_sensitive_path ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_ruby_sensitive_path ... ok
[INFO] [stdout] test security::path::tests::test_path_traversal_home_sensitive ... ok
[INFO] [stdout] test security::path::tests::test_command_blocks_tee_to_sensitive_path ... ok
[INFO] [stdout] test skills::tests::test_expand_tilde ... ok
[INFO] [stdout] test security::path::tests::test_symlink_to_safe_path_allowed ... ok
[INFO] [stdout] test security::path::tests::test_symlink_to_ssh_dir_blocked ... ok
[INFO] [stdout] test security::path::tests::test_symlink_to_sensitive_path_blocked ... ok
[INFO] [stdout] test skills::tests::test_load_skills_empty_dir ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_blocked_path ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_add_lines ... ok
[INFO] [stdout] test skills::tests::test_load_skills_with_md_files ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_context_mismatch ... ok
[INFO] [stdout] test skills::tests::test_load_skills_missing_dir ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_add_lines_only ... ok
[INFO] [stdout] test security::path::tests::test_path_safety_allows_etc_other ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_missing_args ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_no_hunks ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_multi_hunk_with_gap ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_malformed_hunk_header ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_nonexistent_file ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_old_start_zero_rejected ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_no_trailing_newline_preserved ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_remove_lines ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_remove_lines_only ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_trailing_newline_preserved ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_preserves_original_whitespace ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_parse_hunk_header_with_context_text ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_parse_hunk_header_with_count ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_multi_hunk_diff ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_simple_diff ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_risk_level_is_moderate ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_parse_hunk_header_without_count ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_with_context ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_with_file_headers ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_blocked_path ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_missing_args ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_empty_replacement ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_context_output ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_multiline_replacement ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_with_file_headers_replace ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_multiple_matches ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_basic_replacement ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_unicode_content ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_via_symlink_to_sensitive_blocked ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_nonexistent_file ... ok
[INFO] [stdout] test tools::edit_file::tests::test_get_context_beginning_of_file ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_old_text_not_found ... ok
[INFO] [stdout] test mcp::tests::test_register_mcp_tools_with_mock_server ... ok
[INFO] [stdout] test mcp::client::tests::test_mcp_list_tools ... ok
[INFO] [stdout] test mcp::client::tests::test_mcp_call_tool ... ok
[INFO] [stdout] test mcp::client::tests::test_mcp_initialize_handshake ... ok
[INFO] [stdout] test mcp::client::tests::test_mcp_client_drop_kills_process ... ok
[INFO] [stdout] test tools::edit_file::tests::test_get_context_end_of_file ... ok
[INFO] [stdout] test tools::git::tests::test_git_checkout_accepted ... ok
[INFO] [stdout] test tools::git::tests::test_git_cherry_pick_accepted ... ok
[INFO] [stdout] test tools::git::tests::test_git_command_risk_level_safe ... ok
[INFO] [stdout] test tools::git::tests::test_git_commit_with_long_form_m_flag ... ok
[INFO] [stdout] test tools::apply_diff::tests::test_apply_diff_file_size_limit ... ok
[INFO] [stdout] test mcp::client::tests::test_mcp_call_unknown_tool ... ok
[INFO] [stdout] test mcp::tool_wrapper::tests::test_tool_wrapper_execute ... ok
[INFO] [stdout] test tools::git::tests::test_git_clean_blocked ... ok
[INFO] [stdout] test tools::git::tests::test_git_commit_without_m_false_positive_rejected ... ok
[INFO] [stdout] test tools::git::tests::test_git_commit_without_m_flag ... ok
[INFO] [stdout] test tools::git::tests::test_git_error_messages_contain_allowed_list ... ok
[INFO] [stdout] test tools::git::tests::test_git_fetch_accepted ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_preserves_rest ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_via_symlink_to_safe_allowed ... ok
[INFO] [stdout] test tools::git::tests::test_git_commit_with_m_flag_is_accepted ... ok
[INFO] [stdout] test tools::git::tests::test_git_branch ... ok
[INFO] [stdout] test tools::git::tests::test_git_merge_accepted ... ok
[INFO] [stdout] test tools::git::tests::test_git_push_force_with_lease_blocked ... ok
[INFO] [stdout] test tools::git::tests::test_git_push_force_f_blocked ... ok
[INFO] [stdout] test tools::git::tests::test_git_missing_command_arg ... ok
[INFO] [stdout] test tools::git::tests::test_git_push_force_blocked ... ok
[INFO] [stdout] test tools::git::tests::test_git_command_risk_level_moderate ... ok
[INFO] [stdout] test tools::git::tests::test_git_push_is_approval_required ... ok
[INFO] [stdout] test tools::git::tests::test_git_rebase_blocked ... ok
[INFO] [stdout] test tools::git::tests::test_git_rebase_interactive_blocked ... ok
[INFO] [stdout] test tools::git::tests::test_git_remote_accepted ... ok
[INFO] [stdout] test tools::git::tests::test_git_risk_level_unknown_command ... ok
[INFO] [stdout] test tools::git::tests::test_git_switch_accepted ... ok
[INFO] [stdout] test mcp::client::tests::test_mcp_multiple_tool_calls ... ok
[INFO] [stdout] test tools::git::tests::test_git_log ... ok
[INFO] [stdout] test tools::git::tests::test_git_diff ... ok
[INFO] [stdout] test tools::git::tests::test_git_tag_accepted ... ok
[INFO] [stdout] test tools::git::tests::test_git_reset_hard_blocked ... ok
[INFO] [stdout] test tools::git::tests::test_git_unknown_command ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_mixed_quotes ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_empty ... ok
[INFO] [stdout] test tools::git::tests::test_git_reset_hard_with_extra_args ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_basic ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_double_quoted ... ok
[INFO] [stdout] test tools::git::tests::test_git_reset_soft_allowed ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_unclosed_single_quote ... ok
[INFO] [stdout] test tools::git::tests::test_git_show ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_only_whitespace ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_multiple_spaces ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_single_arg ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_tab_separator ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_quoted ... ok
[INFO] [stdout] test tools::git::tests::test_shell_split_unclosed_double_quote ... ok
[INFO] [stdout] test mcp::tool_wrapper::tests::test_tool_wrapper_multiple_calls_shared_client ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_size_limit ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_blocked_path ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_case_sensitive_no_match ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_missing_pattern ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_empty_pattern ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_line_numbers ... ok
[INFO] [stdout] test tools::git::tests::test_git_stash_list ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_finds_pattern_in_file ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_no_matches ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_line_numbers_start_at_one ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_nonexistent_path ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_max_results_truncation ... ok
[INFO] [stdout] test tools::grep::tests::test_is_binary_nonexistent_file ... ok
[INFO] [stdout] test tools::grep::tests::test_is_binary_null_after_check_boundary ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_skips_binary_files ... ok
[INFO] [stdout] test tools::grep::tests::test_is_binary_null_at_start ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_special_regex_chars_treated_literally ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_unicode_pattern ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_case_insensitive ... ok
[INFO] [stdout] test tools::grep::tests::test_is_binary_with_null_bytes ... ok
[INFO] [stdout] test tools::grep::tests::test_is_binary_with_text_file ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_blocked_sensitive_path ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_directories_have_trailing_slash ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_single_file_search ... ok
[INFO] [stdout] test tools::git::tests::test_git_status ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_empty_directory ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_recursive ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_file_instead_of_dir ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_missing_path_arg ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_skips_large_files ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_src_directory ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_blocked_etc_shadow ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_blocked_sudoers ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_directory_fails ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_nonexistent_directory ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_non_recursive_default ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_blocked_etc_gshadow ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_existing_file ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_missing_path_arg ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_hidden_files_shown ... ok
[INFO] [stdout] test tools::list_dir::tests::test_recursive_skips_skip_dirs_contents ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_recursive_depth_limit ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_symlink_dir_not_followed_recursively ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_finds_pattern_in_directory ... ok
[INFO] [stdout] test tools::list_dir::tests::test_non_recursive_unaffected_by_skip_dirs ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_path_traversal_deep ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_nonexistent_file ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_path_traversal_blocked ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_via_symlink_to_safe_allowed ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_write_roundtrip ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_go_symbols ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_c_symbols ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_kotlin_symbols ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_java_symbols ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_js_ts_symbols ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_via_symlink_to_sensitive_blocked ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_ruby_symbols ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_rust_advanced_symbols ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_python_symbols ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_rust_enum_and_trait ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_rust_symbols ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_signature_no_brace ... ok
[INFO] [stdout] test tools::repo_map::tests::test_repo_map_blocked_path ... ok
[INFO] [stdout] test tools::repo_map::tests::test_is_source_file ... ok
[INFO] [stdout] test tools::repo_map::tests::test_is_source_file_edge_cases ... ok
[INFO] [stdout] test tools::repo_map::tests::test_repo_map_file_instead_of_dir ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_skips_target_directory ... ok
[INFO] [stdout] test tools::repo_map::tests::test_repo_map_no_source_files ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_js_ts_type_and_interface ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_signature_truncation ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_file_exactly_at_size_limit ... ok
[INFO] [stdout] test tools::repo_map::tests::test_extract_signature_with_semicolon ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_default_path ... ok
[INFO] [stdout] test tools::repo_map::tests::test_symbols_include_line_numbers ... ok
[INFO] [stdout] test tools::repo_map::tests::test_repo_map_skips_node_modules ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_blocks_tee_to_sensitive ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_binary_output_handled ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_blocks_chmod_sensitive ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_blocks_xargs_cat ... ok
[INFO] [stdout] test tools::repo_map::tests::test_repo_map_nonexistent_dir ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_blocks_dangerous_command ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_blocks_redirect_to_sensitive ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_missing_command_arg ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_file_size_limit ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_echo ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_empty_command ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_invalid_working_dir ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_ssh_via_absolute_home_path ... ok
[INFO] [stdout] test tools::tests::test_list_dir_tool ... ok
[INFO] [stdout] test tools::tests::test_list_dir_tool_missing ... ok
[INFO] [stdout] test tools::tests::test_all_tools_have_valid_schemas ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_success_no_exit_code_shown ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_failing_command_reports_exit_code ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_skips_git_directory ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_multiline_output ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_stderr_output ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_mixed_stdout_stderr ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_large_output ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_working_dir ... ok
[INFO] [stdout] test tools::tests::test_read_file_tool_missing ... ok
[INFO] [stdout] test tools::tests::test_all_tool_names_are_unique ... ok
[INFO] [stdout] test tools::tests::test_registry_default_is_empty ... ok
[INFO] [stdout] test tools::tests::test_read_file_tool ... ok
[INFO] [stdout] test tools::tests::test_tool_error_display_messages ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_basic ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_empty_input ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_entities ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_line_breaks ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_multiple_blank_lines_collapsed ... ok
[INFO] [stdout] test tools::tests::test_registry_get_by_name ... ok
[INFO] [stdout] test tools::tests::test_tool_risk_levels ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_nested_tags ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_strips_script ... ok
[INFO] [stdout] test tools::tests::test_registry_empty ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_strips_style ... ok
[INFO] [stdout] test tools::tests::test_registry_definitions ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_comment_handling ... ok
[INFO] [stdout] test tools::tests::test_registry_register_and_list ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_self_closing_br ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_nbsp_entity ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_apos_entity ... ok
[INFO] [stdout] test tools::shell::tests::test_shell_timeout_kills_slow_command ... ok
[INFO] [stdout] test tools::tests::test_tool_error_is_std_error ... ok
[INFO] [stdout] test tools::tests::test_safe_definitions_only_safe_tools ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_unknown_entity ... ok
[INFO] [stdout] test tools::web_search::tests::test_decode_entities ... ok
[INFO] [stdout] test tools::web_search::tests::test_decode_entities_numeric ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_html_to_text_unicode_content ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_web_fetch_missing_url ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_web_fetch_schemeless_url_rejected ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_web_fetch_ftp_url_rejected ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_web_fetch_invalid_url ... ok
[INFO] [stdout] test tools::web_fetch::tests::test_web_fetch_connection_refused ... ok
[INFO] [stdout] test tools::repo_map::tests::test_repo_map_src_dir ... ok
[INFO] [stdout] test tools::web_search::tests::test_extract_attr ... ok
[INFO] [stdout] test tools::web_search::tests::test_extract_attr_single_quotes ... ok
[INFO] [stdout] test tools::web_search::tests::test_parse_ddg_results_empty_html ... ok
[INFO] [stdout] test tools::web_search::tests::test_strip_tags_malformed ... ok
[INFO] [stdout] test tools::web_search::tests::test_parse_ddg_results_extracts_fields ... ok
[INFO] [stdout] test tools::web_search::tests::test_parse_ddg_results_no_results ... ok
[INFO] [stdout] test tools::web_search::tests::test_url_decode_invalid_percent ... ok
[INFO] [stdout] test tools::web_search::tests::test_parse_ddg_results_respects_max ... ok
[INFO] [stdout] test tools::web_search::tests::test_extract_attr_missing_value ... ok
[INFO] [stdout] test tools::web_search::tests::test_url_decode ... ok
[INFO] [stdout] test tools::web_search::tests::test_urlencoding_unicode ... ok
[INFO] [stdout] test tools::web_search::tests::test_web_search_missing_query ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_allows_empty_new_file ... ok
[INFO] [stdout] test tools::web_search::tests::test_urlencoding ... ok
[INFO] [stdout] test tools::web_search::tests::test_urlencoding_safe_chars_pass_through ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_missing_path_arg ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_and_verify ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_nonexistent_parent_dir ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_ssh_key_blocked ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_unicode_content ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_allows_overwrite_with_content ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_via_symlink_to_sensitive_blocked ... ok
[INFO] [stdout] test tools::web_search::tests::test_strip_tags ... ok
[INFO] [stdout] test tools::web_search::tests::test_strip_tags_nested_same_type ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_blocked_sensitive_path ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_via_symlink_to_safe_allowed ... ok
[INFO] [stdout] test tools::web_search::tests::test_url_decode_no_encoding ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_missing_content_arg ... ok
[INFO] [stdout] test tools::web_search::tests::test_url_decode_incomplete_percent ... ok
[INFO] [stdout] test tools::web_search::tests::test_urlencoding_special_chars ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_blocks_emptying_existing_file ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_path_traversal_blocked ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_overwrites_existing ... ok
[INFO] [stdout] test tools::git::tests::test_git_empty_output_shows_no_output ... FAILED
[INFO] [stdout] test tools::repo_map::tests::test_repo_map_current_dir ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_max_entries_truncated ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tools::git::tests::test_git_empty_output_shows_no_output stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::git::tests::test_git_empty_output_shows_no_output' (399) panicked at src/tools/git.rs:536:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "[stderr] error: Could not access 'HEAD'\n"
[INFO] [stdout]  right: "(no output)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f852e48091a - std[128c3efe2914e152]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5f852e48091a - std[128c3efe2914e152]::backtrace_rs::backtrace::trace_unsynchronized::<std[128c3efe2914e152]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5f852e48091a - std[128c3efe2914e152]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5f852e48091a - <<std[128c3efe2914e152]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6771d259883166e6]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5f852e49833a - <core[6771d259883166e6]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5f852e49833a - core[6771d259883166e6]::fmt::write
[INFO] [stdout]    6:     0x5f852e485ab2 - std[128c3efe2914e152]::io::default_write_fmt::<alloc[fef50e8eecedd288]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5f852e485ab2 - <alloc[fef50e8eecedd288]::vec::Vec<u8> as std[128c3efe2914e152]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5f852e45bb7f - <std[128c3efe2914e152]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5f852e45bb7f - std[128c3efe2914e152]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5f852e477549 - std[128c3efe2914e152]::panicking::default_hook
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5f852e26001c - <alloc[fef50e8eecedd288]::boxed::Box<dyn for<'a, 'b> core[6771d259883166e6]::ops::function::Fn<(&'a std[128c3efe2914e152]::panic::PanicHookInfo<'b>,), Output = ()> + core[6771d259883166e6]::marker::Sync + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::Fn<(&std[128c3efe2914e152]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2263:9
[INFO] [stdout]   12:     0x5f852e26001c - test[b137923399915ecf]::test_main_with_exit_callback::<test[b137923399915ecf]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5f852e4777c2 - <alloc[fef50e8eecedd288]::boxed::Box<dyn for<'a, 'b> core[6771d259883166e6]::ops::function::Fn<(&'a std[128c3efe2914e152]::panic::PanicHookInfo<'b>,), Output = ()> + core[6771d259883166e6]::marker::Sync + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::Fn<(&std[128c3efe2914e152]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2263:9
[INFO] [stdout]   14:     0x5f852e4777c2 - std[128c3efe2914e152]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5f852e45bc38 - std[128c3efe2914e152]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5f852e450a79 - std[128c3efe2914e152]::sys::backtrace::__rust_end_short_backtrace::<std[128c3efe2914e152]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5f852e45cbcd - __rustc[752cc74e29381ccc]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5f852e498afc - core[6771d259883166e6]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5f852e4989b3 - core[6771d259883166e6]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5f852dc33782 - core::panicking::assert_failed::h1330e6f71725e826
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5f852db88969 - whet::tools::git::tests::test_git_empty_output_shows_no_output::h92cc9720797ec6c3
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tools/git.rs:536:9
[INFO] [stdout]   22:     0x5f852db889e7 - whet::tools::git::tests::test_git_empty_output_shows_no_output::{{closure}}::hada1e6832611a9a5
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tools/git.rs:529:47
[INFO] [stdout]   23:     0x5f852db0c766 - core::ops::function::FnOnce::call_once::hc6a15a006f4d59e5
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5f852e25411b - <fn() -> core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5f852e25411b - test[b137923399915ecf]::__rust_begin_short_backtrace::<core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>, fn() -> core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5f852e260aeb - test[b137923399915ecf]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5f852e260aeb - <core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe<test[b137923399915ecf]::run_test_in_process::{closure#0}> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5f852e260aeb - std[128c3efe2914e152]::panicking::catch_unwind::do_call::<core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe<test[b137923399915ecf]::run_test_in_process::{closure#0}>, core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5f852e260aeb - std[128c3efe2914e152]::panicking::catch_unwind::<core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>, core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe<test[b137923399915ecf]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5f852e260aeb - std[128c3efe2914e152]::panic::catch_unwind::<core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe<test[b137923399915ecf]::run_test_in_process::{closure#0}>, core[6771d259883166e6]::result::Result<(), alloc[fef50e8eecedd288]::string::String>>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5f852e260aeb - test[b137923399915ecf]::run_test_in_process
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5f852e260aeb - test[b137923399915ecf]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5f852e25af44 - test[b137923399915ecf]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5f852e25af44 - std[128c3efe2914e152]::sys::backtrace::__rust_begin_short_backtrace::<test[b137923399915ecf]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5f852e2636f2 - std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked::<test[b137923399915ecf]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5f852e2636f2 - <core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe<std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked<test[b137923399915ecf]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5f852e2636f2 - std[128c3efe2914e152]::panicking::catch_unwind::do_call::<core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe<std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked<test[b137923399915ecf]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5f852e2636f2 - std[128c3efe2914e152]::panicking::catch_unwind::<(), core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe<std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked<test[b137923399915ecf]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5f852e2636f2 - std[128c3efe2914e152]::panic::catch_unwind::<core[6771d259883166e6]::panic::unwind_safe::AssertUnwindSafe<std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked<test[b137923399915ecf]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5f852e2636f2 - std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked::<test[b137923399915ecf]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5f852e2636f2 - <std[128c3efe2914e152]::thread::lifecycle::spawn_unchecked<test[b137923399915ecf]::run_test::{closure#1}, ()>::{closure#1} as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5f852e47fb0f - <alloc[fef50e8eecedd288]::boxed::Box<dyn core[6771d259883166e6]::ops::function::FnOnce<(), Output = ()> + core[6771d259883166e6]::marker::Send> as core[6771d259883166e6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/alloc/src/boxed.rs:2249:9
[INFO] [stdout]   43:     0x5f852e47fb0f - <std[128c3efe2914e152]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x72918ee66aa4 - <unknown>
[INFO] [stdout]   45:     0x72918eef3a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tools::git::tests::test_git_empty_output_shows_no_output
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 556 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.09s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "e4c8d55450699ed609679f430b7bd53b31dfda7709aa6d2b8a8cfb73764f3be0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e4c8d55450699ed609679f430b7bd53b31dfda7709aa6d2b8a8cfb73764f3be0", kill_on_drop: false }`
[INFO] [stdout] e4c8d55450699ed609679f430b7bd53b31dfda7709aa6d2b8a8cfb73764f3be0
