[INFO] cloning repository https://github.com/lipoe/mr-nope
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lipoe/mr-nope" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flipoe%2Fmr-nope", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flipoe%2Fmr-nope'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e560dadd103a31105fe6cd02d540e31eedc5a50e
[INFO] testing lipoe/mr-nope against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flipoe%2Fmr-nope" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lipoe/mr-nope
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/lipoe/mr-nope
[INFO] tweaked toml for git repo https://github.com/lipoe/mr-nope written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lipoe/mr-nope on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lipoe/mr-nope 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4
[INFO] running `Command { std: "docker" "start" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4", 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" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4", 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" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling mr-nope v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `percent-encoding`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | percent-encoding = "2"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `percent-encoding`
[INFO] [stderr] warning: `mr-nope` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 32.47s
[INFO] running `Command { std: "docker" "inspect" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4", 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" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling mr-nope v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `percent-encoding`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | percent-encoding = "2"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `percent-encoding`
[INFO] [stderr] warning: `mr-nope` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 19s
[INFO] running `Command { std: "docker" "inspect" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4", 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" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused dependency `percent-encoding`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | percent-encoding = "2"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `percent-encoding`
[INFO] [stderr] warning: `mr-nope` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/mr-nope/ce6ec161fe49c57f/out/mr_nope-ce6ec161fe49c57f)
[INFO] [stdout] 
[INFO] [stdout] running 329 tests
[INFO] [stderr] blocked
[INFO] [stdout] test adapter::cursor::tests::test_extract_strings_empty_object ... ok
[INFO] [stdout] test adapter::cursor::tests::test_extract_strings_empty_array ... ok
[INFO] [stdout] test adapter::cursor::tests::test_extract_strings_deeply_nested ... ok
[INFO] [stdout] test adapter::cursor::tests::test_extract_strings_arrays ... ok
[INFO] [stdout] test adapter::cursor::tests::test_extract_strings_skips_non_string_types ... ok
[INFO] [stdout] test adapter::cursor::tests::test_handle_hook_routes_mcp_execution ... ok
[INFO] [stdout] test adapter::cursor::tests::test_handle_hook_shell_execution_deny ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_deeply_nested_array_denies ... ok
[INFO] [stdout] test adapter::cursor::tests::test_handle_hook_shell_no_command_allows ... ok
[INFO] [stdout] test adapter::cursor::tests::test_handle_hook_unknown_event_denies ... ok
[INFO] [stdout] test adapter::cursor::tests::test_extract_strings_from_simple_object ... ok
[INFO] [stdout] test adapter::cursor::tests::test_handle_hook_mcp_no_tool_input_allows ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_forbidden_command_in_nested_object_denies ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_forbidden_command_in_string_denies ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_git_status_in_string_allows ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_mixed_types_only_checks_strings ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_no_string_values_allows ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_safe_nested_structure_allows ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_empty_tool_input_allows ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_safe_string_values_allows ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_first_deny_short_circuits ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_unparsed_file_text_allows_by_default ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_whitespace_only_string_values_allows ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_whitespace_only_tool_input_allows ... ok
[INFO] [stdout] test adapter::integration::tests::test_cursor_add_hook_entry_preserves_existing_and_no_duplicate ... ok
[INFO] [stdout] test adapter::integration::tests::test_cursor_add_hook_entry_to_empty ... ok
[INFO] [stdout] test adapter::integration::tests::test_cursor_emit_always_allows_exit_code ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_invalid_json_denies ... ok
[INFO] [stdout] test adapter::integration::tests::test_cursor_parse_stdin_reads_hookinput ... ok
[INFO] [stdout] test adapter::integration::tests::test_kiro_command_includes_adapter_flag ... ok
[INFO] [stdout] test adapter::integration::tests::test_integration_lookup_known ... ok
[INFO] [stdout] test adapter::integration::tests::test_integration_lookup_unknown ... ok
[INFO] [stdout] test adapter::integration::tests::test_is_installed_at_detects_marker ... ok
[INFO] [stdout] test adapter::integration::tests::test_kiro_emit_uses_exit_codes ... ok
[INFO] [stdout] test adapter::integration::tests::test_is_installed_at_absent_or_no_marker ... ok
[INFO] [stdout] test adapter::integration::tests::test_kiro_parse_stdin_reads_payload ... ok
[INFO] [stdout] test adapter::integration::tests::test_supported_names ... ok
[INFO] [stdout] test adapter::kiro::tests::test_extract_strings_nested ... ok
[INFO] [stdout] test adapter::integration::tests::test_kiro_hook_file_structure ... ok
[INFO] [stdout] test adapter::cursor::tests::test_mcp_forbidden_command_in_array_denies ... ok
[INFO] [stdout] test adapter::integration::tests::test_scope_display ... ok
[INFO] [stdout] test adapter::kiro::tests::test_handle_hook_non_shell_tool_safe_allows ... ok
[INFO] [stdout] test adapter::kiro::tests::test_handle_hook_no_tool_input_allows ... ok
[INFO] [stdout] test adapter::kiro::tests::test_handle_hook_shell_deny ... ok
[INFO] [stdout] test adapter::kiro::tests::test_handle_hook_shell_no_command_allows ... ok
[INFO] [stdout] test adapter::kiro::tests::test_handle_hook_shell_allow ... ok
[INFO] [stdout] test adapter::kiro::tests::test_payload_defaults_hook_event_name ... ok
[INFO] [stdout] test adapter::kiro::tests::test_payload_execute_cmd_alias_extracts_command ... ok
[INFO] [stdout] test adapter::cursor::tests::test_handle_hook_shell_execution_allow ... ok
[INFO] [stdout] test adapter::integration::tests::test_cursor_remove_hook_entry_preserves_others ... ok
[INFO] [stdout] test adapter::integration::tests::test_parse_stdin_malformed_is_err ... ok
[INFO] [stdout] test adapter::integration::tests::test_hook_response_json_omits_notices ... ok
[INFO] [stdout] test adapter::kiro::tests::test_payload_fs_append_is_scanned_not_treated_as_shell ... ok
[INFO] [stdout] test adapter::kiro::tests::test_handle_hook_non_shell_tool_scans_input ... ok
[INFO] [stdout] test adapter::cursor::tests::test_extract_strings_nested_objects ... ok
[INFO] [stdout] test adapter::kiro::tests::test_payload_shell_alias_tool_extracts_command ... ok
[INFO] [stdout] test adapter::kiro::tests::test_payload_shell_tool_extracts_command ... ok
[INFO] [stdout] test adapter::kiro::tests::test_payload_non_shell_tool_serializes_input ... ok
[INFO] [stdout] test adapter::kiro::tests::test_shell_denied_command ... ok
[INFO] [stdout] test adapter::kiro::tests::test_shell_empty_command_allows ... ok
[INFO] [stdout] test adapter::kiro::tests::test_shell_allowed_command ... ok
[INFO] [stdout] test adapter::kiro::tests::test_tool_input_empty_allows ... ok
[INFO] [stdout] test adapter::kiro::tests::test_shell_unclosed_quote_denies_by_default ... ok
[INFO] [stdout] test adapter::kiro::tests::test_tool_input_forbidden_string_denies ... ok
[INFO] [stdout] test adapter::kiro::tests::test_tool_input_unparsed_text_does_not_hide_another_deny ... ok
[INFO] [stdout] test adapter::kiro::tests::test_tool_input_safe_values_allow ... ok
[INFO] [stdout] test adapter::kiro::tests::test_tool_input_invalid_json_denies ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_root_without_policy_file_returns_default ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_no_roots_returns_default ... ok
[INFO] [stdout] test cli::evaluate::tests::test_strip_utf8_bom_removes_prefix ... ok
[INFO] [stdout] test adapter::kiro::tests::test_tool_input_nested_forbidden_denies ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_skips_root_without_policy_uses_next ... ok
[INFO] [stdout] test cli::install::tests::test_get_hooks_path_delegates_to_integration ... ok
[INFO] [stdout] test cli::install::tests::test_install_unsupported_adapter_errors ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_nonexistent_root_returns_default ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_extend_mode_replaces_subcommands_for_same_command ... ok
[INFO] [stdout] test adapter::kiro::tests::test_tool_input_unparsed_text_allows_by_default ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_extend_mode_merges_with_default ... ok
[INFO] [stdout] test cli::policy::tests::test_custom_policy_displays_correct_rules ... ok
[INFO] [stdout] test cli::install::tests::test_uninstall_unsupported_adapter_errors ... ok
[INFO] [stdout] test cli::policy::tests::test_default_policy_displays_correct_rules ... ok
[INFO] [stdout] test cli::policy::tests::test_policy_rule_subcommands_formatting ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_custom_replaces_default_fully ... ok
[INFO] [stdout] test cli::status::tests::test_install_state_display ... ok
[INFO] [stdout] test cli::policy::tests::test_display_policy_custom_header ... ok
[INFO] [stdout] test cli::policy::tests::test_empty_policy_displays_no_rules ... ok
[INFO] [stdout] test cli::status::tests::test_adapter_status_struct ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_uses_first_root_with_policy ... ok
[INFO] [stdout] test cli::evaluate::tests::test_strip_utf8_bom_noop_without_bom ... ok
[INFO] [stdout] test cli::policy::tests::test_policy_from_yaml_displays_correctly ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_finds_custom_policy ... ok
[INFO] [stdout] test cli::policy::tests::test_display_policy_default_header ... ok
[INFO] [stdout] test cli::status::tests::test_get_all_statuses_covers_registered_adapters ... ok
[INFO] [stdout] test cli::install::tests::test_supported_adapters_lists_cursor_and_kiro ... ok
[INFO] [stdout] test cli::test_cmd::tests::test_custom_engine_denies_synthesized_commands ... ok
[INFO] [stdout] test cli::test_cmd::tests::test_custom_engine_multiple_rules_all_pass ... ok
[INFO] [stdout] test cli::test_cmd::tests::test_default_policy_denies_git_commit ... ok
[INFO] [stdout] test cli::test_cmd::tests::test_empty_rules_produces_zero_exit_code ... ok
[INFO] [stdout] test engine::tests::test_default_on_parse_error_is_shell_deny_tool_input_allow ... ok
[INFO] [stdout] test engine::tests::test_evaluate_allowed_git_operations ... ok
[INFO] [stdout] test engine::tests::test_evaluate_compound_all_allowed ... ok
[INFO] [stdout] test cli::evaluate::tests::test_discover_policy_no_mode_field_defaults_to_replace ... ok
[INFO] [stdout] test engine::tests::test_evaluate_compound_command_any_deny ... ok
[INFO] [stdout] test engine::tests::test_evaluate_nested_shell_denied ... ok
[INFO] [stdout] test engine::tests::test_evaluate_normalizes_path ... ok
[INFO] [stdout] test engine::tests::test_evaluate_normalizes_url_encoded ... ok
[INFO] [stdout] test engine::tests::test_evaluate_backtick_substitution_denied ... ok
[INFO] [stdout] test engine::tests::test_evaluate_builtin_prefix_stripped ... ok
[INFO] [stdout] test engine::tests::test_evaluate_denied_git_commit ... ok
[INFO] [stdout] test engine::tests::test_evaluate_comment_stripped_allows ... ok
[INFO] [stdout] test engine::tests::test_default_policy_yaml_is_valid ... ok
[INFO] [stdout] test engine::tests::test_evaluate_or_operator_deny ... ok
[INFO] [stdout] test cli::test_cmd::tests::test_default_policy_denies_git_push ... ok
[INFO] [stdout] test engine::tests::test_evaluate_parse_error_unclosed_quote_denies ... ok
[INFO] [stdout] test engine::tests::test_evaluate_deterministic ... ok
[INFO] [stdout] test engine::tests::test_evaluate_pipe_any_deny ... ok
[INFO] [stdout] test cli::test_cmd::tests::test_default_policy_test_passes ... ok
[INFO] [stdout] test engine::tests::test_evaluate_double_encoded_url ... ok
[INFO] [stdout] test engine::tests::test_evaluate_empty_string_allows ... ok
[INFO] [stdout] test cli::test_cmd::tests::test_synthesized_command_format ... ok
[INFO] [stdout] test engine::tests::test_evaluate_env_prefix_stripped ... ok
[INFO] [stdout] test adapter::kiro::tests::test_tool_matcher_is_shell_tools_plus_scanned_tools ... ok
[INFO] [stdout] test engine::tests::test_evaluate_simple_allowed_command ... ok
[INFO] [stdout] test engine::tests::test_evaluate_substitution_denied ... ok
[INFO] [stdout] test engine::tests::test_evaluate_quoted_forbidden_not_denied ... ok
[INFO] [stdout] test engine::tests::test_load_existing_file_sets_is_default_false ... ok
[INFO] [stdout] test engine::tests::test_load_on_parse_error_explicit_values ... ok
[INFO] [stdout] test engine::tests::test_load_on_parse_error_partial_keeps_other_default ... ok
[INFO] [stdout] test engine::tests::test_evaluate_whitespace_only_allows ... ok
[INFO] [stdout] test engine::tests::test_load_from_str_default_mode_is_replace ... ok
[INFO] [stdout] test engine::tests::test_load_on_parse_error_rejects_unknown_action ... ok
[INFO] [stdout] test engine::tests::test_load_from_str_unknown_mode_defaults_to_replace ... ok
[INFO] [stdout] test engine::tests::test_load_none_returns_default_policy ... ok
[INFO] [stdout] test engine::tests::test_match_command_case_sensitive_command ... ok
[INFO] [stdout] test engine::tests::test_evaluate_returns_raw_input_unchanged ... ok
[INFO] [stdout] test engine::tests::test_match_command_allows_non_matching_command ... ok
[INFO] [stdout] test engine::tests::test_load_from_str_explicit_replace_mode ... ok
[INFO] [stdout] test engine::tests::test_match_command_allows_non_matching_subcommand ... ok
[INFO] [stdout] test engine::tests::test_evaluate_semicolons_deny ... ok
[INFO] [stdout] test engine::tests::test_load_from_str_extend_mode ... ok
[INFO] [stdout] test engine::tests::test_evaluate_returns_normalized_form ... ok
[INFO] [stdout] test engine::tests::test_load_nonexistent_path_returns_default_policy ... ok
[INFO] [stdout] test engine::tests::test_evaluate_simple_denied_command ... ok
[INFO] [stdout] test engine::tests::test_match_command_allows_when_no_subcommand ... ok
[INFO] [stdout] test engine::tests::test_match_command_multiple_rules ... ok
[INFO] [stdout] test engine::tests::test_merge_adds_new_commands_from_extension ... ok
[INFO] [stdout] test engine::tests::test_merge_combined_replace_and_add ... ok
[INFO] [stdout] test engine::tests::test_merge_empty_extension_preserves_base ... ok
[INFO] [stdout] test engine::tests::test_merge_on_parse_error_overlay_and_inherit ... ok
[INFO] [stdout] test engine::tests::test_merge_preserves_base_rules_not_in_extension ... ok
[INFO] [stdout] test engine::tests::test_merge_replaces_subcommands_for_same_command ... ok
[INFO] [stdout] test engine::tests::test_merged_engine_evaluates_correctly ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_multiple_spaces ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_no_extra_whitespace ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_preserves_other_chars ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_single_word ... ok
[INFO] [stdout] test engine::tests::test_tool_input_parse_error_allows_by_default ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_tabs ... ok
[INFO] [stdout] test engine::tests::test_tool_input_parse_error_denies_when_configured ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_empty_input ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_trims_trailing_whitespace ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_whitespace_only ... ok
[INFO] [stdout] test normalizer::tests::test_double_encoded ... ok
[INFO] [stdout] test normalizer::tests::test_empty_input ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_absolute_unix ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_absolute_unix_deep ... ok
[INFO] [stdout] test engine::tests::test_shell_parse_error_allows_when_configured ... ok
[INFO] [stdout] test engine::tests::test_parse_error_log_line_names_kind_context_and_action ... ok
[INFO] [stdout] test engine::tests::test_match_command_case_sensitive_subcommand ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_mixed_spaces_and_tabs ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_empty_input ... ok
[INFO] [stdout] test engine::tests::test_match_command_denies_matching_command_and_subcommand ... ok
[INFO] [stdout] test engine::tests::test_match_command_empty_rules_allows_all ... ok
[INFO] [stdout] test engine::tests::test_match_command_first_matching_rule_wins ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_no_arguments ... ok
[INFO] [stdout] test engine::tests::test_merge_empty_base_uses_extension_only ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_no_separator ... ok
[INFO] [stdout] test engine::tests::test_tool_input_still_denies_parsed_forbidden_command ... ok
[INFO] [stdout] test normalizer::tests::test_case_insensitive_hex ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_trims_both_ends ... ok
[INFO] [stdout] test normalizer::tests::test_collapse_trims_leading_whitespace ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_single_word_no_separator ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_relative_parent ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_windows_full ... ok
[INFO] [stdout] test normalizer::tests::test_invalid_percent_encoding_passes_through ... ok
[INFO] [stdout] test normalizer::tests::test_multiple_encoded_chars ... ok
[INFO] [stdout] test engine::tests::test_self_protection_ignores_parse_error_allow ... ok
[INFO] [stdout] test normalizer::tests::test_no_encoding ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_double_encoded ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_empty_input ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_encoded_backslash_path ... ok
[INFO] [stdout] test normalizer::tests::test_mixed_valid_and_invalid ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_pipeline_order_matters ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_encoded_whitespace_then_collapse ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_pipeline_whitespace_before_path ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_only_affects_first_token ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_url_encoded_path ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_simple_command ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_preserves_rest_of_command ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_url_encoded_space ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_relative_dot_slash ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_trailing_slash ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_windows_backslash ... ok
[INFO] [stdout] test normalizer::tests::test_quadruple_encoded_stops_at_3 ... ok
[INFO] [stdout] test engine::tests::test_match_command_denies_git_commit ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::extracts_from_bash_c ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::extracts_from_zsh_c ... ok
[INFO] [stdout] test normalizer::tests::test_extract_path_mixed_separators ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::handles_three_levels_of_nesting ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::handles_two_levels_of_nesting ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::non_shell_command_returned_as_is ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::rejects_four_levels_of_nesting ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::three_levels_mixed_shells ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::unclosed_quote_returns_error ... ok
[INFO] [stdout] test normalizer::tests::test_simple_percent_decode ... ok
[INFO] [stdout] test normalizer::tests::test_truncated_percent_at_end ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::extracts_from_sh_c_double_quoted ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::extracts_from_sh_c_single_quoted ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::depth_exceeds_max_returns_error ... ok
[INFO] [stdout] test normalizer::tests::test_triple_encoded ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::extracts_unquoted_argument ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::does_not_match_sh_without_c_flag ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::extracts_complex_inner_command ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::handles_backslash_path_qualified_shell ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::does_not_match_unknown_shell ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::handles_path_qualified_shell ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::empty_input_returns_empty_vec ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::does_not_extract_backticks_from_single_quotes ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::leading_trailing_whitespace_trimmed ... ok
[INFO] [stdout] test normalizer::tests::test_normalize_whitespace_only ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::does_not_extract_from_single_quotes ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::empty_backtick_substitution_is_skipped ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::extracts_from_double_quotes ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::no_substitutions_returns_empty_vec ... ok
[INFO] [stdout] test parser::tests::identify_command::command_only_no_subcommand ... ok
[INFO] [stdout] test parser::tests::identify_command::command_with_flags_only ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::extracts_backtick_substitution ... ok
[INFO] [stdout] test parser::tests::identify_command::concatenated_name_not_split ... ok
[INFO] [stdout] test parser::tests::extract_nested_shell::whitespace_only_returns_empty_vec ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::extracts_backticks_from_double_quotes ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::returns_error_for_unclosed_dollar_paren ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::handles_dollar_sign_without_paren ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::extracts_multiple_substitutions ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::handles_nested_parentheses_in_dollar_paren ... ok
[INFO] [stdout] test parser::tests::identify_command::command_with_flag_argument_then_subcommand ... ok
[INFO] [stdout] test parser::tests::identify_command::multiple_flags_before_subcommand ... ok
[INFO] [stdout] test parser::tests::identify_command::filename_containing_forbidden_command_not_matched_as_command ... ok
[INFO] [stdout] test parser::tests::identify_command::preserves_full_segment ... ok
[INFO] [stdout] test parser::tests::identify_command::quoted_subcommand ... ok
[INFO] [stdout] test parser::tests::identify_command::flags_before_subcommand ... ok
[INFO] [stdout] test parser::tests::identify_command::hyphenated_binary_not_split_into_command_and_subcommand ... ok
[INFO] [stdout] test parser::tests::identify_command::subcommand_followed_by_args ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::returns_error_for_unmatched_backtick ... ok
[INFO] [stdout] test parser::tests::identify_command::whitespace_only_segment ... ok
[INFO] [stdout] test parser::tests::identify_command::single_quoted_token ... ok
[INFO] [stdout] test parser::tests::quote_awareness::command_substitution_in_single_quotes_not_extracted ... ok
[INFO] [stdout] test parser::tests::quote_awareness::comment_after_hash_makes_forbidden_command_invisible ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::extracts_dollar_paren_substitution ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::handles_deeply_nested_parens ... ok
[INFO] [stdout] test parser::tests::quote_awareness::single_quoted_forbidden_command_is_not_identified_as_command ... ok
[INFO] [stdout] test parser::tests::identify_command::subcommand_followed_by_flags ... ok
[INFO] [stdout] test parser::tests::quote_awareness::split_compound_does_not_split_on_quoted_operators ... ok
[INFO] [stdout] test parser::tests::identify_command::underscore_joined_name_not_split ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::does_not_strip_prefix_as_substring ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::env_assignment_with_empty_value ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::env_does_not_treat_flags_as_assignments ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::handles_empty_input ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::handles_extra_whitespace ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::handles_prefix_only_no_command ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::no_prefix_returns_unchanged ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::preserves_arguments_after_command ... ok
[INFO] [stdout] test parser::tests::identify_command::filename_as_first_token_not_matched_as_forbidden_command ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::env_assignment_with_underscore_var ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::handles_env_with_only_assignments ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::mixed_dollar_paren_and_backtick ... ok
[INFO] [stdout] test parser::tests::strip_comments::empty_input_returns_empty ... ok
[INFO] [stdout] test parser::tests::identify_command::empty_segment ... ok
[INFO] [stdout] test parser::tests::quote_awareness::forbidden_command_only_in_comment_not_matched ... ok
[INFO] [stdout] test parser::tests::quote_awareness::quoted_forbidden_command_is_not_identified_as_command ... ok
[INFO] [stdout] test parser::tests::strip_comments::forbidden_command_in_quoted_hash_region_not_matched ... ok
[INFO] [stdout] test parser::tests::quote_awareness::hash_in_quotes_preserves_content_for_parsing ... ok
[INFO] [stdout] test parser::tests::strip_comments::hash_after_quoted_region_is_comment ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::strips_exec_prefix ... ok
[INFO] [stdout] test parser::tests::strip_comments::hash_at_beginning_removes_everything ... ok
[INFO] [stdout] test parser::tests::strip_comments::hash_immediately_after_command_no_space ... ok
[INFO] [stdout] test parser::tests::strip_comments::hash_inside_double_quotes_not_treated_as_comment ... ok
[INFO] [stdout] test parser::tests::strip_comments::mixed_quotes_with_hash ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::empty_substitution_is_skipped ... ok
[INFO] [stdout] test parser::tests::strip_comments::hash_inside_single_quotes_not_treated_as_comment ... ok
[INFO] [stdout] test parser::tests::extract_substitutions::empty_input_returns_empty_vec ... ok
[INFO] [stdout] test parser::tests::strip_comments::multiple_hashes_only_first_unquoted_matters ... ok
[INFO] [stdout] test parser::tests::strip_comments::no_hash_returns_input_unchanged ... ok
[INFO] [stdout] test parser::tests::strip_comments::removes_trailing_comment ... ok
[INFO] [stdout] test parser::tests::identify_command::quoted_token_with_spaces ... ok
[INFO] [stdout] test parser::tests::identify_command::simple_command_with_subcommand ... ok
[INFO] [stdout] test parser::tests::identify_command::variable_containing_forbidden_command_not_matched_as_command ... ok
[INFO] [stdout] test parser::tests::strip_comments::removes_comment_with_forbidden_command ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::strips_chained_prefixes ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::strips_env_with_var_assignments ... ok
[INFO] [stdout] test self_protection::tests::test_allows_mr_nope_exe_policy ... ok
[INFO] [stdout] test parser::tests::strip_comments::whitespace_only_input ... ok
[INFO] [stdout] test self_protection::tests::test_allows_mr_nope_evaluate ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::strips_command_prefix ... ok
[INFO] [stdout] test self_protection::tests::test_allows_mr_nope_in_filename_context ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::strips_env_prefix ... ok
[INFO] [stdout] test self_protection::tests::test_blocks_any_mention_of_global_policy ... ok
[INFO] [stdout] test parser::tests::strip_builtin_prefix::strips_env_with_vars_and_chained_prefix ... ok
[INFO] [stdout] test self_protection::tests::test_allows_mr_nope_policy ... ok
[INFO] [stdout] test self_protection::tests::test_allows_mr_nope_status ... ok
[INFO] [stdout] test self_protection::tests::test_allows_mr_nope_test ... ok
[INFO] [stdout] test self_protection::tests::test_allows_unrelated_commands ... ok
[INFO] [stdout] test self_protection::tests::test_blocks_mr_nope_uninstall ... ok
[INFO] [stdout] test self_protection::tests::test_blocks_mr_nope_with_exe_suffix ... ok
[INFO] [stdout] test self_protection::tests::test_blocks_mr_nope_with_full_path ... ok
[INFO] [stdout] test self_protection::tests::test_case_insensitive ... ok
[INFO] [stdout] test self_protection::tests::test_catches_hooks_json_in_any_context ... ok
[INFO] [stdout] test self_protection::tests::test_catches_path_as_redirect_target ... ok
[INFO] [stdout] test self_protection::tests::test_catches_path_inside_command_substitution ... ok
[INFO] [stdout] test self_protection::tests::test_catches_path_inside_nested_shell ... ok
[INFO] [stdout] test self_protection::tests::test_catches_path_inside_python_string ... ok
[INFO] [stdout] test self_protection::tests::test_char_code_with_mr_nope_literal_still_caught ... ok
[INFO] [stdout] test self_protection::tests::test_hex_escape_bypasses ... ok
[INFO] [stdout] test self_protection::tests::test_catches_path_in_pipe_chain ... ok
[INFO] [stdout] test self_protection::tests::test_no_mention_at_all_bypasses ... ok
[INFO] [stdout] test self_protection::tests::test_split_across_two_commands_bypasses ... ok
[INFO] [stdout] test self_protection::tests::test_variable_indirection_still_caught ... ok
[INFO] [stdout] test self_protection::tests::test_blocks_any_mention_of_hooks_json ... ok
[INFO] [stdout] test self_protection::tests::test_blocks_any_mention_of_policy_yml ... ok
[INFO] [stdout] test self_protection::tests::test_blocks_mr_nope_install ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 329 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/mr-nope/5cd0e772c36fbaae/out/mr_nope-5cd0e772c36fbaae)
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running tests/integration/mod.rs (/opt/rustwide/target/release/build/mr-nope/1229456b4f1556d0/out/integration-1229456b4f1556d0)
[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] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test hook_flow::test_kiro_tool_input_deny_nested_forbidden_exits_2 ... ok
[INFO] [stdout] test hook_flow::test_empty_input_denies ... ok
[INFO] [stdout] test hook_flow::test_deny_response_format ... ok
[INFO] [stdout] test hook_flow::test_kiro_shell_allow_git_status_exits_0 ... ok
[INFO] [stdout] test hook_flow::test_kiro_shell_deny_git_push_exits_2 ... ok
[INFO] [stdout] test hook_flow::test_mcp_allow_git_status_in_tool_input ... ok
[INFO] [stdout] test hook_flow::test_kiro_tool_input_allow_safe_exits_0 ... ok
[INFO] [stdout] test hook_flow::test_kiro_malformed_input_denies_exits_2 ... ok
[INFO] [stdout] test cli::test_uninstall_removes_only_mr_nope_entries ... FAILED
[INFO] [stdout] test cli::test_uninstall_with_no_hooks_json_is_graceful ... FAILED
[INFO] [stdout] test cli::test_install_preserves_existing_hooks ... FAILED
[INFO] [stdout] test hook_flow::test_kiro_shell_unclosed_quote_denies_and_logs ... ok
[INFO] [stdout] test cli::test_install_with_unsupported_adapter_fails ... FAILED
[INFO] [stdout] test hook_flow::test_mcp_allow_no_tool_input ... ok
[INFO] [stdout] test hook_flow::test_mcp_deny_forbidden_command_in_tool_input ... ok
[INFO] [stdout] test hook_flow::test_mcp_allow_safe_tool_input ... ok
[INFO] [stdout] test hook_flow::test_kiro_tool_input_unparsed_text_allows_and_logs ... ok
[INFO] [stdout] test hook_flow::test_mcp_deny_git_commit_in_tool_input ... ok
[INFO] [stdout] test cli::test_install_with_project_creates_hooks_json ... FAILED
[INFO] [stdout] test hook_flow::test_allow_response_format ... ok
[INFO] [stdout] test hook_flow::test_shell_allow_safe_command ... ok
[INFO] [stdout] test hook_flow::test_shell_allow_git_diff ... ok
[INFO] [stdout] test hook_flow::test_partial_json_denies ... ok
[INFO] [stdout] test hook_flow::test_unknown_hook_event_denies ... ok
[INFO] [stdout] test hook_flow::test_shell_deny_git_commit ... ok
[INFO] [stdout] test hook_flow::test_shell_allow_git_status ... ok
[INFO] [stdout] test hook_flow::test_unknown_hook_event_after_execution_denies ... ok
[INFO] [stderr] error: test failed, to rerun pass `--test integration`
[INFO] [stdout] test hook_flow::test_shell_deny_git_push ... ok
[INFO] [stdout] test hook_flow::test_malformed_json_input_denies ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- cli::test_uninstall_removes_only_mr_nope_entries stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cli::test_uninstall_removes_only_mr_nope_entries' (1606) panicked at tests/integration/cli.rs:185:10:
[INFO] [stdout] failed to execute mr-nope uninstall: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5677d5f3c355 - <unknown>
[INFO] [stdout]    1:     0x5677d5f19584 - <unknown>
[INFO] [stdout]    2:     0x5677d5f3b9fb - <unknown>
[INFO] [stdout]    3:     0x5677d5f3b5f9 - <unknown>
[INFO] [stdout]    4:     0x5677d5f3b27a - <unknown>
[INFO] [stdout]    5:     0x5677d5f3adab - <unknown>
[INFO] [stdout]    6:     0x5677d5f60c01 - <unknown>
[INFO] [stdout]    7:     0x5677d5f60bb9 - <unknown>
[INFO] [stdout]    8:     0x5677d5f610ac - <unknown>
[INFO] [stdout]    9:     0x5677d5f1941b - <unknown>
[INFO] [stdout]   10:     0x5677d5f1c1e1 - <unknown>
[INFO] [stdout]   11:     0x5677d5f291ab - <unknown>
[INFO] [stdout]   12:     0x5677d5f7a19b - <unknown>
[INFO] [stdout]   13:     0x5677d5f76426 - <unknown>
[INFO] [stdout]   14:     0x5677d5f75c4c - <unknown>
[INFO] [stdout]   15:     0x5677d5f9412c - <unknown>
[INFO] [stdout]   16:     0x5677d5f62868 - <unknown>
[INFO] [stdout]   17:     0x7935178dfdfa - <unknown>
[INFO] [stdout]   18:     0x7935179733d4 - clone
[INFO] [stdout]   19:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- cli::test_uninstall_with_no_hooks_json_is_graceful stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cli::test_uninstall_with_no_hooks_json_is_graceful' (1607) panicked at tests/integration/cli.rs:246:10:
[INFO] [stdout] failed to execute mr-nope uninstall: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5677d5f3c355 - <unknown>
[INFO] [stdout]    1:     0x5677d5f19584 - <unknown>
[INFO] [stdout]    2:     0x5677d5f3b9fb - <unknown>
[INFO] [stdout]    3:     0x5677d5f3b5f9 - <unknown>
[INFO] [stdout]    4:     0x5677d5f3b27a - <unknown>
[INFO] [stdout]    5:     0x5677d5f3adab - <unknown>
[INFO] [stdout]    6:     0x5677d5f60c01 - <unknown>
[INFO] [stdout]    7:     0x5677d5f60bb9 - <unknown>
[INFO] [stdout]    8:     0x5677d5f610ac - <unknown>
[INFO] [stdout]    9:     0x5677d5f1941b - <unknown>
[INFO] [stdout]   10:     0x5677d5f1c1e1 - <unknown>
[INFO] [stdout]   11:     0x5677d5f2a1e5 - <unknown>
[INFO] [stdout]   12:     0x5677d5f7a19b - <unknown>
[INFO] [stdout]   13:     0x5677d5f76426 - <unknown>
[INFO] [stdout]   14:     0x5677d5f75c4c - <unknown>
[INFO] [stdout]   15:     0x5677d5f9412c - <unknown>
[INFO] [stdout]   16:     0x5677d5f62868 - <unknown>
[INFO] [stdout]   17:     0x7935178dfdfa - <unknown>
[INFO] [stdout]   18:     0x7935179733d4 - clone
[INFO] [stdout]   19:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- cli::test_install_preserves_existing_hooks stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cli::test_install_preserves_existing_hooks' (1603) panicked at tests/integration/cli.rs:118:10:
[INFO] [stdout] failed to execute mr-nope install: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5677d5f3c355 - <unknown>
[INFO] [stdout]    1:     0x5677d5f19584 - <unknown>
[INFO] [stdout]    2:     0x5677d5f3b9fb - <unknown>
[INFO] [stdout]    3:     0x5677d5f3b5f9 - <unknown>
[INFO] [stdout]    4:     0x5677d5f3b27a - <unknown>
[INFO] [stdout]    5:     0x5677d5f3adab - <unknown>
[INFO] [stdout]    6:     0x5677d5f60c01 - <unknown>
[INFO] [stdout]    7:     0x5677d5f60bb9 - <unknown>
[INFO] [stdout]    8:     0x5677d5f610ac - <unknown>
[INFO] [stdout]    9:     0x5677d5f1941b - <unknown>
[INFO] [stdout]   10:     0x5677d5f1c1e1 - <unknown>
[INFO] [stdout]   11:     0x5677d5f26c17 - <unknown>
[INFO] [stdout]   12:     0x5677d5f7a19b - <unknown>
[INFO] [stdout]   13:     0x5677d5f76426 - <unknown>
[INFO] [stdout]   14:     0x5677d5f75c4c - <unknown>
[INFO] [stdout]   15:     0x5677d5f9412c - <unknown>
[INFO] [stdout]   16:     0x5677d5f62868 - <unknown>
[INFO] [stdout]   17:     0x7935178dfdfa - <unknown>
[INFO] [stdout]   18:     0x7935179733d4 - clone
[INFO] [stdout]   19:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- cli::test_install_with_unsupported_adapter_fails stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cli::test_install_with_unsupported_adapter_fails' (1605) panicked at tests/integration/cli.rs:215:10:
[INFO] [stdout] failed to execute mr-nope install: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5677d5f3c355 - <unknown>
[INFO] [stdout]    1:     0x5677d5f19584 - <unknown>
[INFO] [stdout]    2:     0x5677d5f3b9fb - <unknown>
[INFO] [stdout]    3:     0x5677d5f3b5f9 - <unknown>
[INFO] [stdout]    4:     0x5677d5f3b27a - <unknown>
[INFO] [stdout]    5:     0x5677d5f3adab - <unknown>
[INFO] [stdout]    6:     0x5677d5f60c01 - <unknown>
[INFO] [stdout]    7:     0x5677d5f60bb9 - <unknown>
[INFO] [stdout]    8:     0x5677d5f610ac - <unknown>
[INFO] [stdout]    9:     0x5677d5f1941b - <unknown>
[INFO] [stdout]   10:     0x5677d5f1c1e1 - <unknown>
[INFO] [stdout]   11:     0x5677d5f28113 - <unknown>
[INFO] [stdout]   12:     0x5677d5f7a19b - <unknown>
[INFO] [stdout]   13:     0x5677d5f76426 - <unknown>
[INFO] [stdout]   14:     0x5677d5f75c4c - <unknown>
[INFO] [stdout]   15:     0x5677d5f9412c - <unknown>
[INFO] [stdout]   16:     0x5677d5f62868 - <unknown>
[INFO] [stdout]   17:     0x7935178dfdfa - <unknown>
[INFO] [stdout]   18:     0x7935179733d4 - clone
[INFO] [stdout]   19:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- cli::test_install_with_project_creates_hooks_json stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cli::test_install_with_project_creates_hooks_json' (1604) panicked at tests/integration/cli.rs:31:10:
[INFO] [stdout] failed to execute mr-nope install: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5677d5f3c355 - <unknown>
[INFO] [stdout]    1:     0x5677d5f19584 - <unknown>
[INFO] [stdout]    2:     0x5677d5f3b9fb - <unknown>
[INFO] [stdout]    3:     0x5677d5f3b5f9 - <unknown>
[INFO] [stdout]    4:     0x5677d5f3b27a - <unknown>
[INFO] [stdout]    5:     0x5677d5f3adab - <unknown>
[INFO] [stdout]    6:     0x5677d5f60c01 - <unknown>
[INFO] [stdout]    7:     0x5677d5f60bb9 - <unknown>
[INFO] [stdout]    8:     0x5677d5f610ac - <unknown>
[INFO] [stdout]    9:     0x5677d5f1941b - <unknown>
[INFO] [stdout]   10:     0x5677d5f1c1e1 - <unknown>
[INFO] [stdout]   11:     0x5677d5f29c5d - <unknown>
[INFO] [stdout]   12:     0x5677d5f7a19b - <unknown>
[INFO] [stdout]   13:     0x5677d5f76426 - <unknown>
[INFO] [stdout]   14:     0x5677d5f75c4c - <unknown>
[INFO] [stdout]   15:     0x5677d5f9412c - <unknown>
[INFO] [stdout]   16:     0x5677d5f62868 - <unknown>
[INFO] [stdout]   17:     0x7935178dfdfa - <unknown>
[INFO] [stdout]   18:     0x7935179733d4 - clone
[INFO] [stdout]   19:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     cli::test_install_preserves_existing_hooks
[INFO] [stdout]     cli::test_install_with_project_creates_hooks_json
[INFO] [stdout]     cli::test_install_with_unsupported_adapter_fails
[INFO] [stdout]     cli::test_uninstall_removes_only_mr_nope_entries
[INFO] [stdout]     cli::test_uninstall_with_no_hooks_json_is_graceful
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 24 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4", kill_on_drop: false }`
[INFO] [stdout] 850a1c73824aecd23c1097909eecc3b5870220380ee8ae5ba264e2fc1060d9c4
