[INFO] fetching crate pw-env-lib 0.3.17...
[INFO] testing pw-env-lib-0.3.17 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate pw-env-lib 0.3.17 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate pw-env-lib 0.3.17
[INFO] finished tweaking crates.io crate pw-env-lib 0.3.17
[INFO] tweaked toml for crates.io crate pw-env-lib 0.3.17 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate pw-env-lib 0.3.17 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate pw-env-lib 0.3.17 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded digest v0.11.2
[INFO] [stderr]   Downloaded toml v1.1.6+spec-1.1.0
[INFO] [stderr]   Downloaded keyring v3.6.3
[INFO] [stderr]   Downloaded hybrid-array v0.4.10
[INFO] [stderr]   Downloaded secret-service v4.0.0
[INFO] [stderr]   Downloaded libc v0.2.185
[INFO] [stderr]   Downloaded dbus-secret-service v4.1.0
[INFO] [stderr]   Downloaded dirs v7.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a
[INFO] running `Command { std: "docker" "start" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a", 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" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a", 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" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling libdbus-sys v0.2.7
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling hybrid-array v0.4.10
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling dbus v0.9.10
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling dirs v7.0.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling toml v1.1.6+spec-1.1.0
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling dbus-secret-service v4.1.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling keyring v3.6.3
[INFO] [stderr]    Compiling pw-env-lib v0.3.17 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.94s
[INFO] running `Command { std: "docker" "inspect" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a", 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" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling keyring v3.6.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling pw-env-lib v0.3.17 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 19.35s
[INFO] running `Command { std: "docker" "inspect" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a", 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" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pw_env_lib-d78effa5af13ef6d)
[INFO] [stdout] 
[INFO] [stdout] running 413 tests
[INFO] [stdout] test backend::bw::tests::backend_name_is_bitwarden ... ok
[INFO] [stdout] test backend::bw::tests::backend_has_returns_true_when_resolve_succeeds ... ok
[INFO] [stdout] test backend::bw::tests::configure_sync_throttle_updates_effective_value ... ok
[INFO] [stdout] test backend::bw::tests::current_unix_secs_is_close_to_system_time ... ok
[INFO] [stdout] test backend::bw::tests::backend_has_returns_false_when_resolve_fails ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_disambiguates_by_project_single_match ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_exact_name_match_from_list ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_direct_password_lookup ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_with_item_configured ... ok
[INFO] [stdout] test backend::bw::tests::backend_store_edits_existing_item_when_item_configured ... ok
[INFO] [stdout] test backend::bw::tests::invalidate_session_clears_cached_value ... ok
[INFO] [stdout] test backend::bw::tests::is_stale_session_error_detects_expected_messages ... ok
[INFO] [stdout] test backend::bw::tests::log_action_timing_emits_debug_log ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_retries_after_forced_sync_on_missing_item ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_returns_err_for_invalid_bw_reference ... ok
[INFO] [stdout] test backend::bw::tests::reference_url_with_folder_returns_bw_url ... ok
[INFO] [stdout] test backend::bw::tests::reference_url_without_folder_returns_bw_url ... ok
[INFO] [stdout] test backend::bw::tests::reference_url_with_item_uses_item_name ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_with_bw_reference ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_with_configured_item_rejects_outside_folder ... ok
[INFO] [stdout] test backend::bw::tests::backend_resolve_with_bw_reference_filters_by_folder_before_metadata ... ok
[INFO] [stdout] test backend::bw::tests::clear_sync_state_removes_persisted_file ... ok
[INFO] [stdout] test backend::bw::tests::backend_store_returns_err_when_bw_create_fails ... ok
[INFO] [stdout] test backend::bw::tests::clear_folder_cache_removes_persisted_file ... ok
[INFO] [stdout] test backend::bw::tests::resolve_folder_id_logs_when_loading_nonempty_persisted_cache ... ok
[INFO] [stdout] test backend::bw::tests::disambiguate_items_narrows_by_folder ... ok
[INFO] [stdout] test backend::bw::tests::disambiguate_items_narrows_by_folder_before_repository ... ok
[INFO] [stdout] test backend::bw::tests::disambiguate_items_narrows_by_project_after_folder ... ok
[INFO] [stdout] test backend::bw::tests::disambiguate_items_returns_empty_when_ambiguous ... ok
[INFO] [stdout] test backend::bw::tests::ensure_session_uses_bw_session_from_environment ... ok
[INFO] [stdout] test backend::bw::tests::ensure_unlocked_with_uses_application_interaction ... ok
[INFO] [stdout] test backend::bw::tests::prompt_unlock_runs_bw_unlock_and_returns_session ... ok
[INFO] [stdout] test backend::bw::tests::select_item_from_list_does_not_log_available_names_for_empty_results ... ok
[INFO] [stdout] test backend::bw::tests::select_item_from_list_errors_when_no_exact_name ... ok
[INFO] [stdout] test backend::bw::tests::resolve_batch_key_lookup_filters_by_folder_before_metadata ... ok
[INFO] [stdout] test backend::bw::tests::select_item_from_list_rejects_sole_match_outside_requested_folder ... ok
[INFO] [stdout] test backend::bw::tests::select_item_from_list_returns_single_repository_match ... ok
[INFO] [stdout] test backend::bw::tests::set_test_sync_throttle_override_updates_effective_value ... ok
[INFO] [stdout] test backend::bw::tests::should_retry_after_sync_matches_expected_patterns ... ok
[INFO] [stdout] test backend::bw::tests::should_retry_after_sync_requires_both_field_markers ... ok
[INFO] [stdout] test backend::bw::tests::sync_state_store_save_persists_contents ... ok
[INFO] [stdout] test backend::bw::tests::resolve_batch_propagates_missing_configured_folder_without_unrestricted_lookup ... ok
[INFO] [stdout] test backend::bw::tests::resolve_batch_reference_disambiguates_by_folder_then_project ... ok
[INFO] [stdout] test backend::bw::tests::resolve_batch_reference_reuses_selected_item_for_multiple_fields ... ok
[INFO] [stdout] test backend::bw::tests::test_base64_encode_binary_bytes ... ok
[INFO] [stdout] test backend::bw::tests::test_base64_encode_empty ... ok
[INFO] [stdout] test backend::bw::tests::test_base64_encode_known_value ... ok
[INFO] [stdout] test backend::bw::tests::test_base64_encode_one_byte ... ok
[INFO] [stdout] test backend::bw::tests::test_base64_encode_single_byte ... ok
[INFO] [stdout] test backend::bw::tests::test_base64_encode_six_bytes ... ok
[INFO] [stdout] test backend::bw::tests::test_base64_encode_three_bytes ... ok
[INFO] [stdout] test backend::bw::tests::test_base64_encode_two_bytes ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_item_invalid_json ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_item_valid_json ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_value_custom_field ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_value_custom_field_second_item_selected ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_value_missing ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_value_notes ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_value_password ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_value_password_prefers_login_over_username ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_value_username ... ok
[INFO] [stdout] test backend::bw::tests::test_extract_field_from_value_username_ignores_password ... ok
[INFO] [stdout] test backend::bw::tests::test_migration_metadata_fields_include_project_and_source_dir ... ok
[INFO] [stdout] test backend::bw::tests::test_parse_bw_reference_invalid_only_one_part ... ok
[INFO] [stdout] test backend::bw::tests::test_parse_bw_reference_no_prefix ... ok
[INFO] [stdout] test backend::bw::tests::test_parse_bw_reference_three_parts ... ok
[INFO] [stdout] test backend::bw::tests::test_parse_bw_reference_two_parts ... ok
[INFO] [stdout] test backend::bw::tests::test_paths_use_test_overrides ... ok
[INFO] [stdout] test backend::bw::tests::test_upsert_custom_field_adds_new_field ... ok
[INFO] [stdout] test backend::bw::tests::test_upsert_custom_field_creates_fields_array_when_absent ... ok
[INFO] [stdout] test backend::bw::tests::test_upsert_custom_field_replaces_existing_field ... ok
[INFO] [stdout] test backend::bw::tests::resolve_batch_retries_after_forced_sync_on_missing_item ... ok
[INFO] [stdout] test backend::gpg::tests::backend_has_returns_err_when_gpg_file_missing ... ok
[INFO] [stdout] test backend::bw::tests::resolve_does_not_force_sync_for_non_retryable_errors ... ok
[INFO] [stdout] test backend::bw::tests::backend_store_creates_new_item_when_no_item_config ... ok
[INFO] [stdout] test backend::gpg::tests::backend_name_is_gpg ... ok
[INFO] [stdout] test backend::bw::tests::resolve_folder_id_persists_cache_to_disk ... ok
[INFO] [stdout] test backend::gpg::tests::backend_resolve_returns_err_when_gpg_file_missing ... ok
[INFO] [stdout] test backend::bw::tests::resolve_folder_id_skips_loaded_cache_log_for_empty_persisted_cache ... ok
[INFO] [stdout] test backend::bw::tests::resolve_reference_folder_id_prefers_reference_folder ... ok
[INFO] [stdout] test backend::gpg::tests::gpg_backend_reference_url_returns_none ... ok
[INFO] [stdout] test backend::gpg::tests::load_all_returns_err_when_gpg_file_missing ... ok
[INFO] [stdout] test backend::bw::tests::resolve_reference_folder_id_rejects_missing_requested_folder ... ok
[INFO] [stdout] test backend::bw::tests::run_bw_does_not_inject_empty_bw_session_env ... ok
[INFO] [stdout] test backend::gpg::tests::load_all_stored_secrets_returns_err_when_gpg_file_missing ... ok
[INFO] [stdout] test backend::bw::tests::run_bw_retries_once_on_stale_session_and_returns_retry_output ... ok
[INFO] [stdout] test backend::bw::tests::run_bw_returns_err_on_non_zero_exit ... ok
[INFO] [stdout] test backend::bw::tests::run_bw_returns_stdout_on_success ... ok
[INFO] [stdout] test backend::gpg::tests::store_returns_err_when_recipient_not_configured ... ok
[INFO] [stdout] test backend::bw::tests::sync_vault_clamps_configured_throttle_to_one_hour_minimum ... ok
[INFO] [stdout] test backend::gpg::tests::test_gpg_file_path ... ok
[INFO] [stdout] test backend::gpg::tests::test_gpg_file_path_allows_safe_pattern ... ok
[INFO] [stdout] test backend::gpg::tests::test_gpg_file_path_falls_back_when_existing_path_escapes_project_dir ... ok
[INFO] [stdout] test backend::gpg::tests::test_gpg_file_path_rejects_traversal ... ok
[INFO] [stdout] test backend::gpg::tests::test_gpg_file_path_keeps_existing_path_within_project_dir ... ok
[INFO] [stdout] test backend::gpg::tests::test_metadata_comment_format ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_env_content ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_env_content_empty ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_falls_back_for_invalid_json_quotes ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_reads_metadata_comments ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_unmatched_leading_single_quote_not_stripped ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_unmatched_leading_double_quote_not_stripped ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_with_empty_key_ignored ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_with_double_quoted_value ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_with_single_quoted_value ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_with_line_without_equals ... ok
[INFO] [stdout] test backend::gpg::tests::test_parse_stored_secrets_with_unknown_metadata_key ... ok
[INFO] [stdout] test backend::gpg::tests::test_serialize_stored_secrets_empty ... ok
[INFO] [stdout] test backend::gpg::tests::test_serialize_stored_secrets_round_trips_special_values ... ok
[INFO] [stdout] test backend::gpg::tests::test_serialize_stored_secrets_with_no_metadata ... ok
[INFO] [stdout] test backend::gpg::tests::test_serialize_stored_secrets_emits_metadata_comments ... ok
[INFO] [stdout] test backend::bw::tests::sync_vault_runs_sync_when_age_equals_throttle ... ok
[INFO] [stdout] test backend::bw::tests::sync_vault_runs_sync_when_state_is_stale ... ok
[INFO] [stdout] test backend::bw::tests::sync_vault_skips_recent_syncs_from_persisted_state ... ok
[INFO] [stdout] test backend::bw::tests::with_mock_bw_executes_callback ... ok
[INFO] [stdout] test backend::op::tests::backend_name_is_1password ... ok
[INFO] [stdout] test backend::gpg::tests::backend_has_returns_false_with_mock_gpg_when_key_absent ... ok
[INFO] [stdout] test backend::gpg::tests::backend_has_returns_true_with_mock_gpg ... ok
[INFO] [stdout] test backend::gpg::tests::backend_resolve_returns_err_for_missing_key_with_mock_gpg ... ok
[INFO] [stdout] test backend::gpg::tests::backend_resolve_returns_value_with_mock_gpg ... ok
[INFO] [stdout] test backend::gpg::tests::encrypt_to_file_writes_content_with_mock_gpg ... ok
[INFO] [stdout] test backend::gpg::tests::load_all_returns_values_with_mock_gpg ... ok
[INFO] [stdout] test backend::gpg::tests::load_all_stored_secrets_reads_mocked_gpg_content ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_vault_configured ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_vault_disambiguates_by_project_single_match ... ok
[INFO] [stdout] test backend::gpg::tests::store_refuses_to_replace_existing_file_when_decryption_fails ... ok
[INFO] [stdout] test backend::gpg::tests::with_failing_mock_gpg_executes_callback ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_vault_non_multiple_item_error_propagated ... ok
[INFO] [stdout] test backend::op::tests::backend_has_returns_false_when_resolve_fails ... ok
[INFO] [stdout] test backend::op::tests::backend_has_returns_true_when_resolve_succeeds ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_no_vault_disambiguates_on_multiple_items ... ok
[INFO] [stdout] test backend::op::tests::backend_store_does_not_return_secret_from_write_stderr ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_no_vault_disambiguates_when_only_repository_set ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_no_vault_non_multiple_item_error_propagated ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_item_configured ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_op_reference ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_vault_alias_uses_real_vault ... ok
[INFO] [stdout] test backend::op::tests::contains_passkey_checks_array_and_string_values ... ok
[INFO] [stdout] test backend::gpg::tests::store_appends_to_existing_file_with_mock_gpg ... ok
[INFO] [stdout] test backend::gpg::tests::store_creates_new_file_with_mock_gpg ... ok
[INFO] [stdout] test backend::op::tests::migration_fields_include_required_metadata ... ok
[INFO] [stdout] test backend::op::tests::reference_url_with_vault_and_item ... ok
[INFO] [stdout] test backend::op::tests::reference_url_with_vault_returns_op_url ... ok
[INFO] [stdout] test backend::op::tests::reference_url_without_vault_returns_none ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_vault_disambiguates_by_repository_before_project ... ok
[INFO] [stdout] test backend::gpg::tests::with_mock_gpg_executes_callback ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_vault_disambiguates_when_only_repository_set ... ok
[INFO] [stdout] test backend::op::tests::backend_store_creates_new_item_when_no_item_config ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_with_op_reference_applies_vault_alias ... ok
[INFO] [stdout] test backend::op::tests::backend_store_creates_password_field_for_new_item ... ok
[INFO] [stdout] test backend::op::tests::test_migration_field_assignments_include_project_and_source_dir ... ok
[INFO] [stdout] test backend::op::tests::test_migration_field_assignments_with_project ... ok
[INFO] [stdout] test backend::op::tests::test_migration_field_assignments_without_project ... ok
[INFO] [stdout] test backend::op::tests::test_text_field_assignment_format ... ok
[INFO] [stdout] test backend::op::tests::upsert_json_field_updates_a_field_matching_by_label_or_id ... ok
[INFO] [stdout] test backend::op::tests::backend_store_creation_sends_secret_only_in_json_stdin ... ok
[INFO] [stdout] test backend::tests::test_create_backend_bw ... ok
[INFO] [stdout] test backend::tests::test_create_backend_gpg ... ok
[INFO] [stdout] test backend::tests::test_create_backend_op ... ok
[INFO] [stdout] test backend::tests::test_create_backend_unknown_returns_error ... ok
[INFO] [stdout] test backend::tests::test_store_context_created_with ... ok
[INFO] [stdout] test backend::tests::test_store_context_migrated_from ... ok
[INFO] [stdout] test cache::tests::clear_secret_cache_counts_keyring_failures_per_entry ... ok
[INFO] [stdout] test backend::op::tests::backend_resolve_no_item_no_vault ... ok
[INFO] [stdout] test cache::tests::now_unix_secs_returns_current_epoch_seconds ... ok
[INFO] [stdout] test cache::tests::clear_secret_cache_removes_index_and_keyring_entries ... ok
[INFO] [stdout] test cache::tests::reset_test_keyring_clears_state_and_reenables_keyring ... ok
[INFO] [stdout] test cache::tests::secret_cache_index_path_returns_configured_test_path ... ok
[INFO] [stdout] test cache::tests::secret_cache_key_fingerprint_changes_with_backend_config ... ok
[INFO] [stdout] test cache::tests::secret_value_cache_ignores_unavailable_keyring ... ok
[INFO] [stdout] test cache::tests::secret_value_cache_expired_entry_is_removed_and_persisted ... ok
[INFO] [stdout] test cache::tests::secret_value_cache_removes_stale_index_when_keyring_entry_is_missing ... ok
[INFO] [stdout] test cache::tests::secret_value_cache_round_trips_with_test_keyring ... ok
[INFO] [stdout] test config::tests::approval_hashes_are_bounded_per_project ... ok
[INFO] [stdout] test config::tests::approve_hash_evicts_excess_entries_keeping_exactly_max ... ok
[INFO] [stdout] test config::tests::approval_store_path_returns_some_nonempty_path ... ok
[INFO] [stdout] test config::tests::approved_project_configs_revoke_removes_entry ... ok
[INFO] [stdout] test backend::op::tests::backend_store_edit_preserves_existing_fields_and_keeps_secret_out_of_argv ... ok
[INFO] [stdout] test backend::op::tests::backend_store_fails_when_op_fails ... ok
[INFO] [stdout] test config::tests::approved_project_configs_contains_entry_after_approval ... ok
[INFO] [stdout] test config::tests::approved_secret_fetches_entries_returns_hash_based_entry ... ok
[INFO] [stdout] test config::tests::approved_secret_fetches_contains_entry_after_approval ... ok
[INFO] [stdout] test config::tests::approved_secret_fetches_entries_returns_project_wide_entry ... ok
[INFO] [stdout] test config::tests::approved_secret_fetches_revoke_returns_true_when_hash_removed ... ok
[INFO] [stdout] test config::tests::base_dir_from_env_prefers_explicit_env_value ... ok
[INFO] [stdout] test config::tests::base_dir_from_env_uses_home_with_fallback_components ... ok
[INFO] [stdout] test config::tests::default_gpg_file_pattern_returns_env_gpg ... ok
[INFO] [stdout] test config::tests::default_log_file_returns_some_nonempty_path ... ok
[INFO] [stdout] test config::tests::default_log_level_returns_info ... ok
[INFO] [stdout] test config::tests::approved_project_configs_round_trip_via_custom_path ... ok
[INFO] [stdout] test config::tests::default_update_check_interval_returns_24 ... ok
[INFO] [stdout] test config::tests::default_updates_enabled_returns_true ... ok
[INFO] [stdout] test config::tests::effective_commands_with_matching_project_returns_commands ... ok
[INFO] [stdout] test config::tests::effective_commands_without_matching_project_returns_empty ... ok
[INFO] [stdout] test config::tests::effective_item_with_bw_backend_returns_bw_item ... ok
[INFO] [stdout] test config::tests::effective_item_with_no_backend_item_returns_none ... ok
[INFO] [stdout] test config::tests::config_load_for_dir_with_approval_applies_local_override ... ok
[INFO] [stdout] test backend::op::tests::backend_store_rejects_existing_passkey_items ... ok
[INFO] [stdout] test config::tests::ensure_secret_fetch_approved_non_interactive_error_mentions_interactive_session ... ok
[INFO] [stdout] test config::tests::ensure_secret_fetch_approval_binds_decision_to_original_snapshot ... ok
[INFO] [stdout] test config::tests::ensure_secret_fetch_approval_rejects_a_different_retained_snapshot ... ok
[INFO] [stdout] test config::tests::ensure_secret_fetch_approved_a_answer_approves_project_wide ... ok
[INFO] [stdout] test config::tests::ensure_secret_fetch_approved_y_answer_approves_hash ... ok
[INFO] [stdout] test config::tests::load_if_approved_non_terminal_ignores_mock_stdin_y ... ok
[INFO] [stdout] test config::tests::load_if_approved_returns_none_for_unapproved_in_non_terminal ... ok
[INFO] [stdout] test config::tests::load_if_approved_returns_some_for_pre_approved_hash ... ok
[INFO] [stdout] test config::tests::load_if_approved_y_answer_in_terminal_returns_some ... ok
[INFO] [stdout] test config::tests::load_if_approved_yes_answer_in_terminal_returns_some ... ok
[INFO] [stdout] test config::tests::forget_reviewed_migration_entries_removes_fingerprint ... ok
[INFO] [stdout] test config::tests::ordinary_atomic_writes_preserve_existing_file_permissions ... ok
[INFO] [stdout] test config::tests::project_override_path_returns_none_when_no_override_file ... ok
[INFO] [stdout] test config::tests::project_override_path_returns_some_when_override_file_exists_in_dir ... ok
[INFO] [stdout] test config::tests::project_override_path_finds_file_in_ancestor_at_git_root ... ok
[INFO] [stdout] test config::tests::private_writes_correct_existing_file_permissions ... ok
[INFO] [stdout] test config::tests::reviewed_migration_entry_fingerprints_returns_empty_for_new_path ... ok
[INFO] [stdout] test config::tests::project_override_symlink_is_rejected ... ok
[INFO] [stdout] test config::tests::reviewed_migrations_forget_removes_only_requested_fingerprints ... ok
[INFO] [stdout] test config::tests::reviewed_migrations_forget_ignores_unknown_fingerprints ... ok
[INFO] [stdout] test config::tests::reviewed_migrations_path_is_some_and_points_to_expected_file ... ok
[INFO] [stdout] test config::tests::revoke_project_override_approval_returns_false_for_unapproved_entry ... ok
[INFO] [stdout] test config::tests::remember_and_reviewed_migration_entries_round_trip ... ok
[INFO] [stdout] test config::tests::revoke_project_override_approval_returns_true_for_approved_entry ... ok
[INFO] [stdout] test config::tests::revoke_secret_fetch_approval_returns_true_for_approved_entry ... ok
[INFO] [stdout] test config::tests::secret_fetch_approval_store_path_returns_some_nonempty_path ... ok
[INFO] [stdout] test config::tests::state_dir_path_returns_local_state_location ... ok
[INFO] [stdout] test config::tests::temporary_file_creation_propagates_non_collision_errors ... ok
[INFO] [stdout] test config::tests::state_files_are_written_with_restricted_permissions ... ok
[INFO] [stdout] test config::tests::temporary_file_creation_retries_after_a_name_collision ... ok
[INFO] [stdout] test config::tests::test_approve_hash_keeps_max_hashes_and_evicts_oldest_lexicographic ... ok
[INFO] [stdout] test config::tests::test_approved_project_configs_load_from_missing_path_returns_empty ... ok
[INFO] [stdout] test config::tests::revoke_secret_fetch_approval_returns_false_for_unapproved_entry ... ok
[INFO] [stdout] test config::tests::set_test_reviewed_migrations_path_overrides_and_clears_store_path ... ok
[INFO] [stdout] test config::tests::test_approved_secret_fetches_load_from_missing_path_returns_empty ... ok
[INFO] [stdout] test config::tests::test_approved_project_configs_load_returns_invalid_json_error ... ok
[INFO] [stdout] test config::tests::test_bw_config_default_sync_throttle_is_set ... ok
[INFO] [stdout] test config::tests::test_cache_config_defaults_are_enabled_for_four_hours ... ok
[INFO] [stdout] test config::tests::test_backend_override_changes_matching_project_and_default ... ok
[INFO] [stdout] test config::tests::test_approval_store_round_trip_and_revoke ... ok
[INFO] [stdout] test config::tests::test_config_approval_store_path_does_not_panic ... ok
[INFO] [stdout] test config::tests::test_config_approved_project_configs_returns_result ... ok
[INFO] [stdout] test config::tests::test_config_path_contains_pw_env_and_toml ... ok
[INFO] [stdout] test config::tests::test_config_approved_secret_fetches_returns_result ... ok
[INFO] [stdout] test config::tests::test_config_project_override_approval_status_with_temp_file ... ok
[INFO] [stdout] test config::tests::test_approved_secret_fetches_load_returns_invalid_json_error ... ok
[INFO] [stdout] test config::tests::test_config_load_for_dir_with_no_override_returns_config ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_config_secret_fetch_approval_status_with_temp_env ... ok
[INFO] [stdout] test config::tests::test_config_secret_fetch_approval_store_path_does_not_panic ... ok
[INFO] [stdout] test config::tests::test_effective_fallback_example_env_uses_project_override_and_default ... ok
[INFO] [stdout] test config::tests::test_effective_gpg_uses_project_override ... ok
[INFO] [stdout] test config::tests::test_effective_commands_for_project ... ok
[INFO] [stdout] test config::tests::test_effective_cache_uses_project_override ... ok
[INFO] [stdout] test config::tests::test_effective_bw_uses_project_override ... ok
[INFO] [stdout] test config::tests::test_effective_item_from_bw_config ... ok
[INFO] [stdout] test config::tests::test_effective_item_from_op_config ... ok
[INFO] [stdout] test config::tests::test_effective_item_from_project ... ok
[INFO] [stdout] test backend::op::tests::backend_store_with_item_configured_includes_vault_arg ... ok
[INFO] [stdout] test config::tests::test_effective_item_none_when_not_configured ... ok
[INFO] [stdout] test config::tests::test_effective_op_uses_project_override ... ok
[INFO] [stdout] test config::tests::test_effective_source_all_project_override_takes_precedence ... ok
[INFO] [stdout] test config::tests::test_effective_search_parent_env_uses_project_override_and_default ... ok
[INFO] [stdout] test config::tests::test_effective_source_all_uses_defaults_when_enabled ... ok
[INFO] [stdout] test config::tests::test_effective_warn_missing_uses_project_override_and_default ... ok
[INFO] [stdout] test config::tests::test_expand_path_relative_unchanged ... ok
[INFO] [stdout] test config::tests::test_expand_path_with_tilde_prefix ... ok
[INFO] [stdout] test config::tests::test_expand_path_without_tilde ... ok
[INFO] [stdout] test config::tests::test_find_git_root_in_config_module ... ok
[INFO] [stdout] test config::tests::test_effective_source_all_defaults_to_false ... ok
[INFO] [stdout] test config::tests::test_ensure_secret_fetch_approved_bails_when_non_interactive ... ok
[INFO] [stdout] test config::tests::test_normalize_path_returns_nonempty_canonical_string ... ok
[INFO] [stdout] test config::tests::test_normalize_path_nonexistent_returns_input ... ok
[INFO] [stdout] test config::tests::test_hash_file_matches_sha256_hex_of_content ... ok
[INFO] [stdout] test config::tests::test_hash_file_known_content ... ok
[INFO] [stdout] test config::tests::test_parse_full_config ... ok
[INFO] [stdout] test config::tests::test_parse_minimal_config ... ok
[INFO] [stdout] test config::tests::test_normalize_path_existing_dir ... ok
[INFO] [stdout] test config::tests::test_parse_op_vault_aliases ... ok
[INFO] [stdout] test config::tests::test_project_for_prefers_most_specific_match ... ok
[INFO] [stdout] test config::tests::test_parse_project_directory_override ... ok
[INFO] [stdout] test config::tests::test_resolve_project_override_target_with_directory ... ok
[INFO] [stdout] test config::tests::test_resolve_secret_fetch_target_prefers_git_root_as_project ... ok
[INFO] [stdout] test config::tests::test_resolve_secret_fetch_target_with_direct_env_file ... ok
[INFO] [stdout] test config::tests::test_resolve_secret_fetch_target_rejects_other_file_names ... ok
[INFO] [stdout] test config::tests::test_reviewed_migrations_load_from_missing_path_returns_empty ... ok
[INFO] [stdout] test config::tests::test_project_backend_sections_attach_to_most_recent_project ... ok
[INFO] [stdout] test config::tests::test_resolve_secret_fetch_target_with_directory ... ok
[INFO] [stdout] test config::tests::test_reviewed_migrations_remember_and_fingerprints ... ok
[INFO] [stdout] test config::tests::test_resolve_secret_fetch_target_accepts_direct_example_file ... ok
[INFO] [stdout] test config::tests::test_revoke_project_override_approval_returns_false_when_not_approved ... ok
[INFO] [stdout] test config::tests::test_revoke_secret_fetch_approval_returns_false_when_not_approved ... ok
[INFO] [stdout] test config::tests::test_secret_fetch_is_approved_by_hash ... ok
[INFO] [stdout] test config::tests::test_secret_fetch_is_approved_project_wide ... ok
[INFO] [stdout] test config::tests::test_sha256_hex_empty_string ... ok
[INFO] [stdout] test config::tests::test_sha256_hex_produces_64_hex_chars ... ok
[INFO] [stdout] test config::tests::test_sha256_hex_produces_correct_digest ... ok
[INFO] [stdout] test config::tests::test_source_all_parsed_from_toml ... ok
[INFO] [stdout] test config::tests::test_source_all_defaults_to_false_when_omitted_from_toml ... ok
[INFO] [stdout] test env_file::tests::comment_has_no_migrate_marker_requires_both_prefix_and_suffix_match ... ok
[INFO] [stdout] test env_file::tests::comment_has_no_migrate_marker_returns_false_for_regular_comment ... ok
[INFO] [stdout] test config::tests::test_validate_project_override ... ok
[INFO] [stdout] test env_file::tests::comment_has_no_migrate_marker_returns_true_for_marker ... ok
[INFO] [stdout] test config::tests::test_reviewed_migrations_save_and_load ... ok
[INFO] [stdout] test config::tests::test_reviewed_migrations_round_trip_and_forget ... ok
[INFO] [stdout] test env_file::tests::contains_embedded_credentials_both_present_returns_true ... ok
[INFO] [stdout] test env_file::tests::contains_embedded_credentials_empty_password_returns_false ... ok
[INFO] [stdout] test env_file::tests::find_example_returns_correct_path ... ok
[INFO] [stdout] test env_file::tests::contains_embedded_credentials_empty_username_returns_false ... ok
[INFO] [stdout] test env_file::tests::find_example_none_when_missing ... ok
[INFO] [stdout] test env_file::tests::find_returns_some_for_plain_env_file ... ok
[INFO] [stdout] test env_file::tests::find_rejects_symlinked_env_file ... ok
[INFO] [stdout] test env_file::tests::find_example_none_when_symlink ... ok
[INFO] [stdout] test env_file::tests::has_common_secret_prefix_detects_each_known_prefix ... ok
[INFO] [stdout] test env_file::tests::find_with_parents_does_not_stop_at_submodule_root ... ok
[INFO] [stdout] test env_file::tests::find_with_parents_returns_ancestor_env_before_git_root ... ok
[INFO] [stdout] test config::tests::test_secret_fetch_approval_store_round_trip_and_revoke ... ok
[INFO] [stdout] test env_file::tests::looks_like_high_entropy_secret_low_entropy_is_not_secret ... ok
[INFO] [stdout] test env_file::tests::looks_like_high_entropy_secret_medium_entropy_long_is_secret ... ok
[INFO] [stdout] test env_file::tests::find_with_parents_stops_at_git_root_without_env ... ok
[INFO] [stdout] test env_file::tests::has_common_secret_prefix_returns_false_for_plain_value ... ok
[INFO] [stdout] test env_file::tests::looks_like_high_entropy_secret_exactly_minimum_length_qualifies ... ok
[INFO] [stdout] test env_file::tests::looks_like_secret_name_detects_auth_key_segment_pair ... ok
[INFO] [stdout] test env_file::tests::looks_like_secret_name_does_not_match_non_secret_key_names ... ok
[INFO] [stdout] test env_file::tests::looks_like_high_entropy_secret_medium_entropy_short_is_not_secret ... ok
[INFO] [stdout] test env_file::tests::looks_like_secret_name_detects_access_key_segment_pair_with_double_dash ... ok
[INFO] [stdout] test env_file::tests::parse_rejects_symlinked_env_file ... ok
[INFO] [stdout] test env_file::tests::parse_captures_canonical_identity_and_hash_for_original_contents ... ok
[INFO] [stdout] test env_file::tests::parse_uses_the_enclosing_git_root_as_project_identity ... ok
[INFO] [stdout] test env_file::tests::looks_like_secret_name_detects_api_key_segment_pair_with_double_dash ... ok
[INFO] [stdout] test env_file::tests::split_value_and_comment_ignores_double_quote_inside_single_quotes ... ok
[INFO] [stdout] test env_file::tests::looks_like_secret_name_detects_private_key_segment_pair_with_double_dash ... ok
[INFO] [stdout] test env_file::tests::strip_quotes_does_not_strip_mismatched_quotes ... ok
[INFO] [stdout] test env_file::tests::split_value_and_comment_keeps_hash_inside_single_quotes ... ok
[INFO] [stdout] test env_file::tests::split_value_and_comment_splits_hash_after_single_quoted_value ... ok
[INFO] [stdout] test env_file::tests::strip_quotes_handles_multibyte_utf8 ... ok
[INFO] [stdout] test env_file::tests::test_blank_line_clears_pending_no_migrate_marker ... ok
[INFO] [stdout] test env_file::tests::split_value_and_comment_ignores_single_quote_inside_double_quotes ... ok
[INFO] [stdout] test env_file::tests::test_classify_bw_reference ... ok
[INFO] [stdout] test env_file::tests::test_classify_empty ... ok
[INFO] [stdout] test env_file::tests::rewrite_with_key_value_updates_only_matching_entry ... ok
[INFO] [stdout] test env_file::tests::test_classify_op_reference ... ok
[INFO] [stdout] test env_file::tests::test_export_prefix_in_full_parse ... ok
[INFO] [stdout] test env_file::tests::test_filters_likely_secret_entries ... ok
[INFO] [stdout] test env_file::tests::test_classify_plaintext ... ok
[INFO] [stdout] test env_file::tests::test_filters_reviewed_likely_secret_entries ... ok
[INFO] [stdout] test env_file::tests::test_detects_secret_in_url_credentials ... ok
[INFO] [stdout] test env_file::tests::test_detects_secret_by_entropy ... ok
[INFO] [stdout] test env_file::tests::test_ignores_plaintext_non_secret_setting ... ok
[INFO] [stdout] test env_file::tests::test_parse_entry_line_splits_inline_comment ... ok
[INFO] [stdout] test env_file::tests::test_parse_entry_line_strips_export_prefix ... ok
[INFO] [stdout] test env_file::tests::test_detects_secret_by_name ... ok
[INFO] [stdout] test resolve::tests::build_secret_cache_key_uses_effective_item_only_for_op_and_bw ... ok
[INFO] [stdout] test resolve::tests::cache_backend_config_serializes_known_backends_and_defaults_unknown ... ok
[INFO] [stdout] test env_file::tests::test_preceding_no_migrate_comment_marks_next_entry_only ... ok
[INFO] [stdout] test env_file::tests::test_parse_entry_line_keeps_hash_inside_quotes ... ok
[INFO] [stdout] test env_file::tests::test_strip_quotes ... ok
[INFO] [stdout] test resolve::tests::current_git_branch_returns_none_for_non_branch_reference ... ok
[INFO] [stdout] test resolve::tests::cache_entry_kind_returns_expected_labels ... ok
[INFO] [stdout] test resolve::tests::detect_project_name_uses_git_root_name ... ok
[INFO] [stdout] test resolve::tests::detect_project_name_uses_folder_name_when_no_git ... ok
[INFO] [stdout] test resolve::tests::current_git_branch_returns_none_for_detached_head ... ok
[INFO] [stdout] test resolve::tests::detect_repository_remote_prefers_origin_when_multiple_remotes_exist ... ok
[INFO] [stdout] test backend::op::tests::backend_store_with_item_configured_succeeds ... ok
[INFO] [stdout] test resolve::tests::find_git_dir_returns_none_for_malformed_gitdir_file ... ok
[INFO] [stdout] test resolve::tests::detect_repository_remote_returns_none_for_local_path_remote ... ok
[INFO] [stdout] test resolve::tests::find_git_dir_resolves_relative_gitdir_file ... ok
[INFO] [stdout] test env_file::tests::test_rewrite_preserves_inline_comments ... ok
[INFO] [stdout] test resolve::tests::find_git_root_finds_root_above_subdir ... ok
[INFO] [stdout] test resolve::tests::find_git_dir_resolves_absolute_gitdir_file ... ok
[INFO] [stdout] test resolve::tests::detect_repository_remote_uses_branch_remote_when_multiple_without_origin ... ok
[INFO] [stdout] test resolve::tests::formats_audit_log_uses_dir_name_when_project_is_empty_string ... ok
[INFO] [stdout] test resolve::tests::log_credential_fetch_audit_does_not_panic ... ok
[INFO] [stdout] test resolve::tests::formats_audit_log_uses_dir_name_when_project_is_none ... ok
[INFO] [stdout] test resolve::tests::formats_audit_log_with_folder_and_env_file ... ok
[INFO] [stdout] test resolve::tests::formats_audit_log_ignores_empty_project_string_and_uses_dir_name ... ok
[INFO] [stdout] test resolve::tests::find_git_root_returns_none_when_no_git_above ... ok
[INFO] [stdout] test resolve::tests::normalize_git_remote_url_accepts_non_alpha_single_char_host_without_slash ... ok
[INFO] [stdout] test resolve::tests::log_credential_fetch_audit_emits_audit_message ... ok
[INFO] [stdout] test resolve::tests::normalize_git_remote_url_accepts_scheme_only_url ... ok
[INFO] [stdout] test resolve::tests::normalize_git_remote_url_accepts_supported_remote_forms ... ok
[INFO] [stdout] test resolve::tests::normalize_git_remote_url_rejects_invalid_scp_like_hosts ... ok
[INFO] [stdout] test resolve::tests::normalize_git_remote_url_rejects_local_and_windows_paths ... ok
[INFO] [stdout] test resolve::tests::normalize_git_remote_url_rejects_local_prefixes_even_with_protocol_like_content ... ok
[INFO] [stdout] test resolve::tests::normalize_git_remote_url_rejects_false_windows_drive_from_third_byte_slash ... ok
[INFO] [stdout] test resolve::tests::normalize_git_remote_url_rejects_non_alphabetic_windows_drive_prefixes ... ok
[INFO] [stdout] test resolve::tests::parse_git_config_ignores_comments_and_malformed_sections ... ok
[INFO] [stdout] test backend::op::tests::get_item_field_calls_run_op_with_item_args ... ok
[INFO] [stdout] test backend::op::tests::get_item_field_with_vault_arg ... ok
[INFO] [stdout] test backend::op::tests::resolve_batch_disambiguates_with_repository_only ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_returns_empty_for_all_plaintext_entries ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_returns_empty_for_empty_env_file ... ok
[INFO] [stdout] test backend::op::tests::resolve_by_metadata_narrows_by_repo_then_project ... ok
[INFO] [stdout] test backend::op::tests::resolve_batch_rejects_multiple_items_without_metadata ... ok
[INFO] [stdout] test backend::op::tests::run_op_returns_err_on_non_zero_exit ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_with_interaction_fails_closed_for_unresolved_entries ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_with_source_all_includes_plaintext_entries ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_without_source_all_omits_plaintext_entries ... ok
[INFO] [stdout] test backend::op::tests::run_op_returns_stdout_on_success ... ok
[INFO] [stdout] test resolve::tests::select_git_remote_name_handles_empty_and_single_remote_maps ... ok
[INFO] [stdout] test backend::op::tests::run_op_with_account_argument ... ok
[INFO] [stdout] test backend::op::tests::with_mock_op_invokes_closure ... ok
[INFO] [stdout] test config::tests::config_load_for_dir_reads_global_config_values ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_batches_default_onepassword_item_fields ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_batches_default_bitwarden_entries ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_batches_default_gpg_entries ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_lists_onepassword_items_before_missing_key_lookups ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_passes_bw_reference_to_backend ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_passes_op_reference_to_backend ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_resolves_default_entries_with_non_gpg_backend ... ok
[INFO] [stdout] test resolve::tests::resolve_rejects_retained_replacement_snapshot_before_backend_call ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_falls_back_when_keyring_is_unavailable ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_uses_secret_cache_for_bitwarden_entries ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_uses_secret_cache_for_gpg_entries ... ok
[INFO] [stdout] test resolve::tests::resolve_env_file_uses_secret_cache_for_op_entries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 413 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.24s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests pw_env_lib
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a", kill_on_drop: false }`
[INFO] [stdout] cde84cc4fdf46bbec8c8179c489beb97a7401ba29cc41532d6733cb14dee2f3a
