[INFO] cloning repository https://github.com/Norbi0801/mcp-audit [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Norbi0801/mcp-audit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbi0801%2Fmcp-audit", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbi0801%2Fmcp-audit'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 03350c05494117ab3d9d919837a3a9a283408d47 [INFO] testing Norbi0801/mcp-audit against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbi0801%2Fmcp-audit" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Norbi0801/mcp-audit [INFO] finished tweaking git repo https://github.com/Norbi0801/mcp-audit [INFO] tweaked toml for git repo https://github.com/Norbi0801/mcp-audit written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Norbi0801/mcp-audit on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Norbi0801/mcp-audit already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wiremock v0.6.5 [INFO] [stderr] Downloaded iri-string v0.7.11 [INFO] [stderr] Downloaded governor v0.8.1 [INFO] [stderr] Downloaded comfy-table v7.2.2 [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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2 [INFO] running `Command { std: "docker" "start" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2", 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" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2", 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" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling iri-string v0.7.11 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling spinning_top v0.3.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling web-time v1.1.0 [INFO] [stderr] Compiling number_prefix v0.4.0 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling nonzero_ext v0.3.0 [INFO] [stderr] Compiling no-std-compat v0.4.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling indicatif v0.17.11 [INFO] [stderr] Compiling comfy-table v7.2.2 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling colored v3.1.1 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling governor v0.8.1 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling mcp-audit v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.57s [INFO] running `Command { std: "docker" "inspect" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2", 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" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling governor v0.8.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling comfy-table v7.2.2 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-test v0.4.5 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling mcp-audit v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 44.97s [INFO] running `Command { std: "docker" "inspect" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2", 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" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mcp_audit-72ec46d3aaeef9bb) [INFO] [stdout] [INFO] [stdout] running 669 tests [INFO] [stdout] test connection::protocol::tests::deserialize_initialize_result_minimal ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_jsonrpc_response_error ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_jsonrpc_response_error_with_data ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_jsonrpc_response_success ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_minimal_tool_defaults ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_prompt_no_arguments ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_prompts_list_result ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_tools_list_result ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_tools_list_with_cursor ... ok [INFO] [stdout] test connection::protocol::tests::roundtrip_server_capabilities ... ok [INFO] [stdout] test connection::protocol::tests::serialize_initialize_params_camel_case ... ok [INFO] [stdout] test connection::protocol::tests::serialize_jsonrpc_request_with_params ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_resources_list_result ... ok [INFO] [stdout] test connection::protocol::tests::serialize_jsonrpc_request_without_params ... ok [INFO] [stdout] test connection::protocol::tests::server_capabilities_default_all_none ... ok [INFO] [stdout] test connection::tests::client_handles_tools_fetch_failure_gracefully ... ok [INFO] [stdout] test connection::tests::client_no_server_info ... ok [INFO] [stdout] test connection::tests::client_no_capabilities ... ok [INFO] [stdout] test connection::tests::config_detection_stdio ... ok [INFO] [stdout] test connection::tests::client_full_initialization ... ok [INFO] [stdout] test connection::protocol::tests::serialize_jsonrpc_notification ... ok [INFO] [stdout] test connection::tests::client_tools_only ... ok [INFO] [stdout] test connection::tests::config_detection_http ... ok [INFO] [stdout] test connection::transport::tests::extract_result_error ... ok [INFO] [stdout] test connection::tests::http_transport_type_equality ... ok [INFO] [stdout] test connection::tests::config_detection_sse ... ok [INFO] [stdout] test connection::tests::client_paginated_tools ... ok [INFO] [stdout] test connection::tests::disconnect_does_not_panic ... ok [INFO] [stdout] test connection::transport::tests::extract_result_success ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_data_with_no_space_after_colon ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_crlf_line_endings ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_incremental_feed ... ok [INFO] [stdout] test connection::tests::from_server_config_no_command_or_url_fails ... ok [INFO] [stdout] test connection::transport::tests::mock_transport_records_notifications ... ok [INFO] [stdout] test connection::transport::tests::mock_transport_error_when_empty ... ok [INFO] [stdout] test connection::transport::tests::mock_transport_returns_responses_in_order ... ok [INFO] [stdout] test connection::transport::tests::sse_event_without_type ... ok [INFO] [stdout] test connection::transport::tests::extract_result_neither ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_empty_data ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_endpoint_event ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_large_chunked_json ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_simple_event ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_with_comments ... ok [INFO] [stdout] test connection::transport::tests::sse_skip_event_without_data ... ok [INFO] [stdout] test digest::tests::test_digest_period_from_iso_week ... ok [INFO] [stdout] test digest::tests::test_build_digest ... ok [INFO] [stdout] test digest::tests::test_digest_period_iso_week_label ... ok [INFO] [stdout] test digest::tests::test_digest_period_last_week ... ok [INFO] [stdout] test digest::tests::test_build_digest_with_seo ... ok [INFO] [stdout] test digest::tests::test_empty_digest ... ok [INFO] [stdout] test digest::tests::test_statistics_severity_breakdown ... ok [INFO] [stdout] test digest::tests::test_statistics_top_languages ... ok [INFO] [stdout] test http::client::tests::parse_retry_after_header ... ok [INFO] [stdout] test init::tests::format_string_array_empty ... ok [INFO] [stdout] test init::tests::format_string_array_long_goes_multiline ... ok [INFO] [stdout] test init::tests::all_rule_ids_returns_all ... ok [INFO] [stdout] test init::tests::format_string_array_short ... ok [INFO] [stdout] test init::tests::from_file_returns_error_for_missing_file ... ok [INFO] [stdout] test init::tests::normalize_path_returns_absolute_outside_cwd ... ok [INFO] [stdout] test init::tests::normalize_path_returns_relative_under_cwd ... ok [INFO] [stdout] test init::tests::generate_interactive_config_has_all_rules ... ok [INFO] [stdout] test init::tests::generate_ci_config_has_strict_defaults ... ok [INFO] [stdout] test init::tests::render_toml_contains_comments ... ok [INFO] [stdout] test init::tests::from_file_returns_error_for_invalid_toml ... ok [INFO] [stdout] test init::tests::write_config_creates_parent_directories ... ok [INFO] [stdout] test init::tests::render_toml_ci_is_parseable ... ok [INFO] [stdout] test init::tests::render_toml_is_parseable ... ok [INFO] [stdout] test init::tests::render_toml_contains_rule_name_comments ... ok [INFO] [stdout] test http::client::tests::client_builds_with_tokens ... ok [INFO] [stdout] test monitors::adoption::tests::test_downloads_to_severity ... ok [INFO] [stdout] test monitors::adoption::tests::test_format_number ... ok [INFO] [stdout] test monitors::adoption::tests::test_slug ... ok [INFO] [stdout] test monitors::adoption::tests::test_stars_to_severity ... ok [INFO] [stdout] test monitors::cve::tests::test_extract_cvss_empty_metrics ... ok [INFO] [stdout] test monitors::cve::tests::test_severity_from_score ... ok [INFO] [stdout] test monitors::github::tests::test_advisory_to_event ... ok [INFO] [stdout] test http::client::tests::get_invalid_url_returns_config_error ... ok [INFO] [stdout] test http::client::tests::client_builds_without_tokens ... ok [INFO] [stdout] test monitors::cve::tests::test_cve_to_event_basic ... ok [INFO] [stdout] test init::tests::write_config_refuses_overwrite_without_force ... ok [INFO] [stdout] test http::client::tests::get_json_connection_refused ... ok [INFO] [stdout] test init::tests::from_file_parses_valid_toml ... ok [INFO] [stdout] test monitors::cve::tests::test_truncate ... ok [INFO] [stdout] test monitors::github::tests::test_repo_to_event_basic ... ok [INFO] [stdout] test monitors::github::tests::test_star_severity_mapping ... ok [INFO] [stdout] test monitors::github::tests::test_urlencoding ... ok [INFO] [stdout] test monitors::owasp::tests::test_parse_date ... ok [INFO] [stdout] test monitors::owasp::tests::test_slug ... ok [INFO] [stdout] test monitors::owasp::tests::test_truncate ... ok [INFO] [stdout] test output::json::tests::test_format_events_empty ... ok [INFO] [stdout] test output::markdown::tests::test_digest_no_seo_keywords ... ok [INFO] [stdout] test output::markdown::tests::test_format_events_markdown ... ok [INFO] [stdout] test output::json::tests::test_format_events_json ... ok [INFO] [stdout] test output::markdown::tests::test_format_digest_markdown ... ok [INFO] [stdout] test output::json::tests::test_format_digest_json ... ok [INFO] [stdout] test output::markdown::tests::test_severity_badge ... ok [INFO] [stdout] test output::json::tests::test_format_scan_report_json ... ok [INFO] [stdout] test output::markdown::tests::test_format_events_empty ... ok [INFO] [stdout] test output::markdown::tests::test_format_scan_report_markdown ... ok [INFO] [stdout] test output::sarif::tests::test_events_empty_produces_valid_sarif ... ok [INFO] [stdout] test output::sarif::tests::test_empty_findings_produce_valid_sarif ... ok [INFO] [stdout] test output::sarif::tests::test_event_url_appears_in_location ... ok [INFO] [stdout] test output::sarif::tests::test_extract_server_name_from_title ... ok [INFO] [stdout] test output::markdown::tests::test_format_scan_report_no_findings ... ok [INFO] [stdout] test output::sarif::tests::test_format_digest_returns_empty_json_object ... ok [INFO] [stdout] test init::tests::write_config_force_overwrites ... ok [INFO] [stdout] test output::sarif::tests::test_no_location_when_both_absent ... ok [INFO] [stdout] test output::sarif::tests::test_events_rule_ids_use_source_name ... ok [INFO] [stdout] test output::sarif::tests::test_invocation_present ... ok [INFO] [stdout] test output::sarif::tests::test_events_to_sarif_conversion ... ok [INFO] [stdout] test output::sarif::tests::test_finding_without_remediation_omits_help ... ok [INFO] [stdout] test output::sarif::tests::test_finding_explicit_location_overrides_source_path ... ok [INFO] [stdout] test output::sarif::tests::test_rules_deduplicated ... ok [INFO] [stdout] test output::sarif::tests::test_remediation_in_rule_help ... ok [INFO] [stdout] test output::sarif::tests::test_findings_map_to_correct_severity_levels ... ok [INFO] [stdout] test output::sarif::tests::test_scan_report_to_sarif ... ok [INFO] [stdout] test output::table::tests::test_format_events_empty ... ok [INFO] [stdout] test output::sarif::tests::test_source_path_appears_in_location ... ok [INFO] [stdout] test output::sarif::tests::test_sarif_output_is_valid_json ... ok [INFO] [stdout] test output::table::tests::test_format_scan_report_no_issues ... ok [INFO] [stdout] test output::sarif::tests::test_server_name_in_message ... ok [INFO] [stdout] test output::table::tests::test_format_scan_report_table ... ok [INFO] [stdout] test output::sarif::tests::test_tool_metadata ... ok [INFO] [stdout] test output::table::tests::test_colorize_severity ... ok [INFO] [stdout] test output::table::tests::test_no_color_mode ... ok [INFO] [stdout] test output::table::tests::test_format_events_with_rows ... ok [INFO] [stdout] test output::table::tests::test_format_digest ... ok [INFO] [stdout] test output::table::tests::test_severity_to_color ... ok [INFO] [stdout] test output::tests::test_create_formatter_markdown ... ok [INFO] [stdout] test output::tests::test_create_formatter_json ... ok [INFO] [stdout] test output::tests::test_render_summary ... ok [INFO] [stdout] test output::tests::test_truncate ... ok [INFO] [stdout] test output::tests::test_render_events_convenience ... ok [INFO] [stdout] test parser::tests::from_server_command_bare_command ... ok [INFO] [stdout] test parser::tests::from_server_command_python ... ok [INFO] [stdout] test parser::tests::from_server_command_npx_package ... ok [INFO] [stdout] test parser::tests::from_url_invalid_fails ... ok [INFO] [stdout] test output::tests::test_create_formatter_table ... ok [INFO] [stdout] test output::tests::test_render_summary_empty ... ok [INFO] [stdout] test parser::tests::command_line_no_args ... ok [INFO] [stdout] test parser::tests::command_line_with_args ... ok [INFO] [stdout] test parser::tests::command_line_http_server ... ok [INFO] [stdout] test parser::tests::from_server_command_empty_fails ... ok [INFO] [stdout] test parser::tests::from_url_sse_endpoint ... ok [INFO] [stdout] test parser::tests::from_url_streamable_http ... ok [INFO] [stdout] test parser::tests::parse_basic_config ... ok [INFO] [stdout] test rules::mcp01_tool_poisoning::tests::detects_typosquatting ... ok [INFO] [stdout] test parser::tests::parse_http_server ... ok [INFO] [stdout] test parser::tests::parse_config_missing_mcp_servers ... ok [INFO] [stdout] test parser::tests::parse_multiple_servers ... ok [INFO] [stdout] test parser::tests::parse_config_with_env ... ok [INFO] [stdout] test parser::tests::parse_empty_config ... ok [INFO] [stdout] test rules::mcp01_tool_poisoning::tests::non_npx_not_checked_for_packages ... ok [INFO] [stdout] test rules::mcp01_tool_poisoning::tests::git_install_flagged ... ok [INFO] [stdout] test rules::mcp01_tool_poisoning::tests::unknown_package_flagged ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::detects_aws_directory ... ok [INFO] [stdout] test rules::mcp01_tool_poisoning::tests::trusted_scope_passes ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::detects_home_tilde ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::detects_home_dir ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::detects_root_path ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::detects_wildcard ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::safe_path_passes ... ok [INFO] [stdout] test rules::mcp03_prompt_injection::tests::detects_dynamic_input_env ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::windows_root_detected ... ok [INFO] [stdout] test rules::mcp02_excessive_permissions::tests::detects_ssh_directory ... ok [INFO] [stdout] test rules::mcp03_prompt_injection::tests::detects_stdin_arg ... ok [INFO] [stdout] test rules::mcp03_prompt_injection::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp03_prompt_injection::tests::detects_shell_interpolation ... ok [INFO] [stdout] test rules::mcp01_tool_poisoning::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::detects_aws_key ... ok [INFO] [stdout] test rules::mcp03_prompt_injection::tests::safe_config_passes ... ok [INFO] [stdout] test rules::mcp03_prompt_injection::tests::detects_template_syntax ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::detects_generic_secret_by_name ... ok [INFO] [stdout] test rules::mcp05_server_spoofing::tests::detects_ngrok_tunnel ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::detects_github_token ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::detects_openai_key ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::detects_secret_in_args ... ok [INFO] [stdout] test rules::mcp05_server_spoofing::tests::detects_unencrypted_http ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::detects_slack_token ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::ignores_placeholder_values ... ok [INFO] [stdout] test rules::mcp04_insecure_credentials::tests::safe_env_passes ... ok [INFO] [stdout] test rules::mcp05_server_spoofing::tests::allows_http_localhost ... ok [INFO] [stdout] test rules::mcp05_server_spoofing::tests::detects_domain_typosquat ... ok [INFO] [stdout] test rules::mcp05_server_spoofing::tests::detects_spoofed_name_with_custom_package ... ok [INFO] [stdout] test rules::mcp05_server_spoofing::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::contains_package_scoped_package ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::contains_package_no_false_positive_substring ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::detects_deprecated_package ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::contains_package_exact_match ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::detects_unpinned_npm ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::no_false_positive_for_official_brave_search ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::pinned_npm_passes ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::pinned_pip_passes ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::detects_risky_flags ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::detects_unpinned_pip ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::detects_eval_in_shell ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::detects_command_substitution ... ok [INFO] [stdout] test rules::mcp06_insecure_dependencies::tests::has_npm_version_check ... ok [INFO] [stdout] test rules::mcp05_server_spoofing::tests::official_package_with_known_name_passes ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::detects_powershell ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::detects_shell_metacharacters_in_args ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::detects_variable_expansion_in_shell ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::safe_command_passes ... ok [INFO] [stdout] test rules::mcp08_data_exfiltration::tests::detects_database_connection_string ... ok [INFO] [stdout] test rules::mcp08_data_exfiltration::tests::detects_db_connection_without_creds ... ok [INFO] [stdout] test rules::mcp08_data_exfiltration::tests::detects_env_file_access ... ok [INFO] [stdout] test rules::mcp08_data_exfiltration::tests::detects_sensitive_file_access ... ok [INFO] [stdout] test rules::mcp08_data_exfiltration::tests::detects_ssh_directory_access ... ok [INFO] [stdout] test rules::mcp08_data_exfiltration::tests::detects_unrestricted_db_server ... ok [INFO] [stdout] test rules::mcp08_data_exfiltration::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp08_data_exfiltration::tests::safe_paths_pass ... ok [INFO] [stdout] test rules::mcp09_insufficient_logging::tests::detects_disabled_logging_env ... ok [INFO] [stdout] test rules::mcp09_insufficient_logging::tests::detects_no_logging_config ... ok [INFO] [stdout] test rules::mcp09_insufficient_logging::tests::detects_disabled_logging_flag ... ok [INFO] [stdout] test rules::mcp09_insufficient_logging::tests::logging_arg_passes ... ok [INFO] [stdout] test rules::mcp09_insufficient_logging::tests::monitoring_service_passes ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::detects_dev_mode ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::detects_no_auth_flag ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::detects_http_without_auth ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::detects_privileged_flag ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::detects_sudo ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::http_with_auth_env_passes ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::production_config_passes ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_missing_size_limit ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_missing_timeout ... ok [INFO] [stdout] test rules::mcp09_insufficient_logging::tests::logging_env_var_passes ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::all_findings_have_medium_severity ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::bare_server_has_timeout_and_size_findings ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_streaming_by_arg ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_streaming_by_url_path ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_subscription_without_unsubscribe ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_streaming_by_transport_env ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_unbounded_sse_stream ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_subscribe_env_without_unsubscribe ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::detects_watch_without_unsubscribe ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::max_tokens_env_passes ... ok [INFO] [stdout] test connection::protocol::tests::deserialize_initialize_result_full ... ok [INFO] [stdout] test connection::tests::server_info_default_values ... ok [INFO] [stdout] test connection::tests::server_info_serializable ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_multiline_data ... ok [INFO] [stdout] test connection::transport::tests::sse_parse_multiple_events ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::detects_backtick_substitution ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::detects_bash_command ... ok [INFO] [stdout] test rules::mcp07_command_injection::tests::detects_shell_command ... ok [INFO] [stdout] test rules::mcp09_insufficient_logging::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp10_unauthorized_access::tests::detects_auth_disabled_env ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::fully_configured_server_has_no_findings ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::http_server_without_streaming_only_gets_basic_findings ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::no_subscription_no_warning ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::non_streaming_server_no_stream_warning ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::partial_timeout_env_var_matches ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::size_limit_arg_passes ... ok [INFO] [stdout] test init::tests::write_config_creates_file ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::size_limit_env_var_passes ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::streaming_server_with_all_protections ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::streaming_with_cancellation_passes ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::streamable_http_detected ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::streaming_with_cancel_arg_passes ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::timeout_env_var_passes ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::websocket_transport_detected ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::builtin_shadow_produces_critical_finding ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::streaming_with_stream_timeout_passes ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_bash_shadow ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_code_interpreter_shadow ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::streaming_with_generic_timeout_passes ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_better_read_replacement ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_grep_shadow ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::subscription_with_ttl_passes ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_glob_shadow ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::timeout_arg_passes ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::subscription_with_unsubscribe_passes ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::config_with_no_servers_no_panic ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_read_shadow ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_edit_shadow ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_search_shadow ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_websearch_shadow ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_shell_shadow ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_dash_underscore_near_duplicate ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_builtin_write_shadow_case_insensitive ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_hijack_keyword_in_args ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_filesystem_shadow_wrong_package ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_fake_write_replacement ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_case_insensitive_duplicate_names ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_impersonate_keyword ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_intercept_fetch_replacement ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_intercept_keyword_in_env ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_memory_shadow_http_server ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_override_bash_replacement ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_mitm_keyword_in_env_key ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_github_shadow_wrong_package ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_hook_edit_replacement ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_proxy_github_replacement ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_separator_removal_near_duplicate ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_slack_shadow ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_custom_filesystem_replacement ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::detects_shadow_keyword_in_args ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::no_conflict_for_distinct_names ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::normalize_name_removes_separators ... ok [INFO] [stdout] test rules::mcp11_denial_of_service::tests::subscription_with_max_subscriptions_passes ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::official_filesystem_passes ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::official_github_passes ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::http_server_with_no_command_no_panic ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::empty_server_name_no_panic ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::multiple_checks_can_fire_for_same_server ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::no_conflict_for_single_server ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::safe_args_no_shadowing_keywords ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::safe_name_no_builtin_finding ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::server_with_no_args_no_panic ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::safe_prefix_no_known_tool ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::clean_path_no_traversal_finding ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::acl_env_passes_acl_check ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_backslash_traversal ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::allowed_paths_arg_passes_acl_check ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_credentials_json_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_docker_directory_exposure ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::unique_name_no_wellknown_finding ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_env_file_in_resource_dir_env ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_double_encoded_traversal ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_kube_config_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_env_file_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_missing_access_control ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_git_directory_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_path_traversal_in_args ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_env_production_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_node_modules_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_pem_file_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_proc_filesystem_exposure ... ok [INFO] [stdout] test rules::mcp12_tool_shadowing::tests::wellknown_shadow_with_wrong_package_is_critical ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_aws_directory_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_root_file_uri ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_semicolon_traversal_bypass ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_traversal_in_url ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_traversal_in_env ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_sensitive_path_in_env ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::empty_server_no_findings ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_ssh_directory_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_wildcard_resource_uri ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_ssh_key_exposure ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::no_false_positive_on_substring ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::is_resource_server_detects_filesystem_packages ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::is_resource_server_rejects_non_resource_server ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::non_resource_server_skips_file_check ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::non_resource_env_key_skipped ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::matches_sensitive_pattern_directory ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_url_encoded_traversal ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::matches_sensitive_pattern_exact_filename ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::matches_sensitive_pattern_with_prefix ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::detects_star_resource_uri ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::non_resource_server_no_acl_finding ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::all_high_severity_findings_for_critical_issues ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::server_with_only_url_no_crash ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::sandbox_env_passes_acl_check ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::read_only_arg_passes_acl_check ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::sandbox_arg_passes_acl_check ... ok [INFO] [stdout] test rules::mcp13_resource_exposure::tests::safe_resource_server_with_acl ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::allows_http_0_0_0_0 ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::allows_http_127_0_0_1 ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_curl_k_flag ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_http_with_port ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::allows_http_ipv6_loopback ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::allows_http_localhost ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::allows_https_remote ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::cors_specific_origin_arg_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::cors_specific_origin_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::cors_wildcard_with_tls_disabled ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_access_control_allow_origin_wildcard ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_cors_allowed_origins_wildcard ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_cors_env_on_http_server ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_cors_wildcard_env ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_cors_wildcard_inline_arg ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_http_without_auth ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_cors_wildcard_separate_arg ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_insecure_skip_verify ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_no_ssl_verify_arg ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_no_tls_verify_arg ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_plain_http_remote ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_insecure_skip_tls_verify_arg ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::rate_limit_env_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_node_tls_reject_unauthorized ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_python_https_verify_disabled ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::rate_limiting_finding_is_medium_severity ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::secure_http_server_minimal_findings ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::ssl_verify_true_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_ssl_false_arg ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_ssl_verify_false ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::stdio_server_no_auth_not_flagged ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::http_with_api_key_env_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::tls_disabled_env_on_https_server ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::http_with_bearer_arg_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::http_with_url_basic_auth_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::detects_missing_rate_limiting ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::max_requests_env_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::http_with_auth_arg_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::http_with_auth_token_env_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::rate_limit_arg_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::insecure_http_server_multiple_findings ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::max_rps_arg_passes ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::stdio_server_no_rate_limit_not_flagged ... ok [INFO] [stdout] test rules::mcp14_insecure_transport::tests::throttle_env_passes ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::boolean_query_param_ignored ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::case_insensitive_tool_name_detection ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::case_insensitive_description_detection ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::command_param_with_enum_is_medium ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::command_param_with_max_length_is_medium ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::compound_scenario_all_checks_fire ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_dangerous_name_in_compound_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::command_param_with_pattern_is_medium ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_database_query_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_eval_expression_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_eval_code_tool_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_code_param_without_validation ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_cmd_param_without_validation ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_command_param_without_validation ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_exec_code_tool_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_execute_command_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_execute_code_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_expression_param_without_validation ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_multiple_dangerous_tools ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_raw_query_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_python_code_param ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_run_command_tool_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_param_description_sql_to_execute ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_run_shell_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_query_param_without_validation ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_run_sql_tool_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_shell_exec_tool_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_script_param_without_validation ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_raw_query_tool_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_sql_param_without_validation ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_spawn_process_tool_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_param_description_code_to_evaluate ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_param_description_shell_command ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_run_python_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_sql_query_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_subprocess_tool_name ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_subprocess_description ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::detects_where_clause_param ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::no_tools_no_findings ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::param_description_with_constraints_no_hint_finding ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::query_param_with_pattern_is_medium ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::safe_tool_name_no_findings ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::tool_with_no_description_no_panic ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::safe_tool_with_enum_no_findings ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::tool_with_empty_schema_no_panic ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::tool_with_no_properties_no_panic ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_empty_schema_object ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::tool_with_null_schema_no_panic ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::safe_tool_no_findings ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_empty_required_array ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_explicit_additional_properties_true ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_missing_enum_for_format ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::all_url_like_params_detected ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_multiple_tools_without_schema ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_null_schema ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_nested_open_object ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_path_parameter_as_high_severity ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_schema_without_required ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_tool_without_input_schema ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_invalid_schema_type ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_missing_enum_for_action ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::all_path_like_params_detected ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_missing_enum_for_mode ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_file_path_parameter ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_unconstrained_string ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_url_parameter_as_high_severity ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::enum_candidate_names_coverage ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::flags_string_with_zero_min_length ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::no_findings_for_empty_tools_list ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::multiple_issues_on_single_tool ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::detects_top_level_open_object ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::no_findings_for_server_without_tools ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::empty_tools_list_no_findings ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::non_string_types_not_flagged_for_string_constraints ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_additional_properties_false ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_additional_properties_schema ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::non_enum_param_name_not_flagged ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_enum_parameter_with_const ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_enum_parameter_with_enum ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_open_object_with_max_properties ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_schema_with_required ... ok [INFO] [stdout] test rules::mcp15_tool_injection::tests::integer_command_param_ignored ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_string_with_max_length ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_string_with_pattern ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::schema_with_only_type_no_properties ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::well_defined_tool_has_minimal_findings ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::arg_exposes_resource_exact_match ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::arg_exposes_resource_no_false_positives ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::arg_exposes_resource_windows_paths ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::arg_exposes_resource_path_suffix ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_aws_credentials_in_args ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_string_with_positive_min_length ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_string_with_const ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_string_with_enum ... ok [INFO] [stdout] test rules::mcp16_missing_input_validation::tests::passes_string_with_format ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_credentials_json_in_args ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_debug_flag ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_description_no_redaction ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_debug_tools_with_secrets ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_description_pii ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_description_returning_env_vars ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_description_credit_card ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_dump_secrets_tool ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_debug_env_var ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_export_users_tool ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_env_file_in_args ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_description_returning_secrets ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_get_credentials_tool ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_git_config_in_args ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::is_safe_value_rejects_real_secrets ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_ssh_key_in_args ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_sensitive_uri_in_tool_description ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_verbose_flag ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::ignores_safe_env_values ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_log_level_debug_env ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_no_redact_flag ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::safe_tools_pass ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::safe_server_passes ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::collects_anyof_strings ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::server_without_tools_passes ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::normal_env_vars_pass ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::is_safe_value_detects_placeholders ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_multiple_secrets_passthrough ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::collects_nested_schema_strings ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_get_env_tool ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::checks_all_tools_in_server ... ok [INFO] [stdout] test rules::mcp17_data_leakage::tests::detects_trace_log_level ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_authority_in_schema ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_bom_in_name ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_auto_approval ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_case_variations ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_data_uri ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_cyrillic_homoglyph_in_name ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_coercion_directive ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_directive_in_schema_description ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_confirmation_bypass ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_invisible_char_in_description ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_escaped_zero_width_space ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_bidi_override_in_description ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_long_base64_payload ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_output_manipulation ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_root_access_claim ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_markdown_comment ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_html_comment ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_identity_manipulation ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_security_bypass ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_greek_homoglyph_in_name ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_secrecy_directive ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::empty_description_passes ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::empty_tools_list_passes ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_ignore_previous_instructions ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::rule_metadata ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_zero_width_joiner_in_name ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_zero_width_space_in_name ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::safe_schema_passes ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::safe_tool_description_passes ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_url_encoded_null_byte ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::safe_tool_with_schema_passes ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_rtl_override_in_name ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::no_tools_no_findings ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_broad_schema_additional_props_no_required ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_full_filesystem_access ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::detects_system_prompt_markers ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::pure_cyrillic_name_not_flagged ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_bypass_security ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_maximally_permissive_schema_no_properties ... ok [INFO] [stdout] test rules::mcp18_prompt_injection_vectors::tests::short_base64_not_flagged ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_mega_tool_description ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_maximally_permissive_schema_empty_properties ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_admin_access ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_mega_tool_name ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_open_proxy ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_shell_access_description ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_read_any_file ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_swiss_army_name ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::no_tools_no_findings ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_unrestricted_network_access ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::non_object_schema_not_flagged_for_permissive ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::schema_additional_properties_false_passes ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::normal_tool_name_not_flagged ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::single_domain_tool_not_flagged_as_multi ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::tool_with_schema_not_flagged_as_schemaless ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_tool_without_schema ... ok [INFO] [stdout] test rules::tests::category_all_returns_all_variants ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::strict_schema_not_flagged ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::well_scoped_tool_produces_no_findings ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_multi_domain_tool ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::detects_unrestricted_shell_description ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::only_problematic_tools_flagged ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::rule_metadata ... ok [INFO] [stdout] test rules::tests::all_rules_are_registered ... ok [INFO] [stdout] test rules::tests::engine_builtin_category_filter_reduces_rules ... ok [INFO] [stdout] test rules::tests::engine_category_filter ... ok [INFO] [stdout] test rules::tests::category_display ... ok [INFO] [stdout] test rules::mcp19_excessive_tool_permissions::tests::empty_tools_no_findings ... ok [INFO] [stdout] test rules::tests::engine_scan_empty_config ... ok [INFO] [stdout] test rules::tests::engine_rule_id_exclude_filter ... ok [INFO] [stdout] test rules::tests::engine_multiple_servers_per_server_results ... ok [INFO] [stdout] test rules::tests::engine_rule_id_include_filter ... ok [INFO] [stdout] test rules::tests::engine_severity_filter ... ok [INFO] [stdout] test rules::tests::failing_rule_evaluate_returns_fail ... ok [INFO] [stdout] test rules::tests::engine_with_mock_registry ... ok [INFO] [stdout] test rules::tests::engine_skipping_rule_produces_no_findings ... ok [INFO] [stdout] test rules::tests::passing_rule_evaluate_returns_pass ... ok [INFO] [stdout] test rules::tests::registry_by_category_groups_correctly ... ok [INFO] [stdout] test rules::tests::category_from_owasp_id ... ok [INFO] [stdout] test rules::tests::registry_filter_by_category ... ok [INFO] [stdout] test rules::tests::registry_empty_has_no_rules ... ok [INFO] [stdout] test rules::tests::category_unknown_defaults_to_configuration ... ok [INFO] [stdout] test rules::tests::registry_new_has_all_builtin_rules ... ok [INFO] [stdout] test rules::tests::registry_register_adds_rule ... ok [INFO] [stdout] test rules::tests::engine_builtin_scan_detects_insecure_server ... ok [INFO] [stdout] test rules::tests::exit_code_one_for_any_findings ... ok [INFO] [stdout] test rules::tests::exit_code_zero_when_clean ... ok [INFO] [stdout] test rules::tests::registry_filter_combined ... ok [INFO] [stdout] test rules::tests::registry_filter_by_severity ... ok [INFO] [stdout] test rules::tests::registry_get_by_id ... ok [INFO] [stdout] test rules::tests::registry_rule_ids_are_unique ... ok [INFO] [stdout] test rules::tests::rule_ids_are_unique ... ok [INFO] [stdout] test rules::tests::rule_default_category_from_owasp_id ... ok [INFO] [stdout] test rules::tests::registry_list_info_includes_category ... ok [INFO] [stdout] test rules::tests::rule_result_fail ... ok [INFO] [stdout] test rules::tests::rule_result_pass ... ok [INFO] [stdout] test rules::tests::rule_result_skip ... ok [INFO] [stdout] test rules::tests::skipping_rule_evaluate_returns_skip ... ok [INFO] [stdout] test scanner::tests::test_classify_http_endpoint ... ok [INFO] [stdout] test scanner::tests::test_classify_default_repository ... ok [INFO] [stdout] test rules::tests::scan_findings_sorted_by_severity ... ok [INFO] [stdout] test rules::tests::scan_report_severity_counts ... ok [INFO] [stdout] test rules::tests::scan_with_severity_filter ... ok [INFO] [stdout] test scanner::tests::test_extract_server_name_fallback ... ok [INFO] [stdout] test scanner::tests::test_discover_servers_mixed_events ... ok [INFO] [stdout] test scanner::tests::test_extract_server_name_from_url ... ok [INFO] [stdout] test scanner::tests::test_discover_skips_advisories ... ok [INFO] [stdout] test scanner::tests::test_classify_stdio_config ... ok [INFO] [stdout] test scanner::tests::test_scan_result_has_critical_findings ... ok [INFO] [stdout] test scanner::tests::test_discover_servers_from_github_repos ... ok [INFO] [stdout] test scanner::tests::test_server_type_display ... ok [INFO] [stdout] test scanner::tests::test_scan_result_severity_counts ... ok [INFO] [stdout] test scanner::tests::test_discover_skips_empty_url ... ok [INFO] [stdout] test rules::tests::rule_result_fail_empty_is_not_fail ... ok [INFO] [stdout] test storage::tests::in_memory_checkpoint_roundtrip ... ok [INFO] [stdout] test storage::tests::in_memory_filter_by_since ... ok [INFO] [stdout] test storage::tests::in_memory_combined_filter ... ok [INFO] [stdout] test storage::tests::in_memory_store_and_query_events ... ok [INFO] [stdout] test storage::tests::in_memory_checkpoint_overwrite ... ok [INFO] [stdout] test storage::file_store::tests::checkpoint_persists_across_instances ... ok [INFO] [stdout] test storage::file_store::tests::store_empty_events_is_noop ... ok [INFO] [stdout] test storage::file_store::tests::filter_events_by_since ... ok [INFO] [stdout] test storage::file_store::tests::store_and_retrieve_events ... ok [INFO] [stdout] test storage::file_store::tests::filter_events_by_source ... ok [INFO] [stdout] test rules::tests::list_rules_returns_metadata ... ok [INFO] [stdout] test storage::file_store::tests::atomic_write_no_corruption ... ok [INFO] [stdout] test storage::file_store::tests::checkpoint_roundtrip ... ok [INFO] [stdout] test storage::file_store::tests::events_persist_across_instances ... ok [INFO] [stdout] test storage::file_store::tests::checkpoint_overwrite ... ok [INFO] [stdout] test storage::file_store::tests::events_grouped_by_date ... ok [INFO] [stdout] test scanner::tests::test_discover_skips_non_github_events ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 669 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mcp_audit-9e8a4534aa257172) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/connection_integration.rs (/opt/rustwide/target/debug/deps/connection_integration-745b0fcf2b1e779c) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test http_connect_unreachable_server ... ok [INFO] [stdout] test http_connect_jsonrpc_error_response ... ok [INFO] [stdout] test server_info_is_serializable ... ok [INFO] [stdout] test http_connect_full_server ... ok [INFO] [stdout] test http_connect_server_error ... ok [INFO] [stdout] test http_connect_tools_only_server ... ok [INFO] [stdout] test http_connect_minimal_server ... ok [INFO] [stdout] test http_connect_timeout ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s [INFO] [stdout] [INFO] [stderr] Running tests/monitor_integration.rs (/opt/rustwide/target/debug/deps/monitor_integration-431a27928ef651bb) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test in_memory_store_integration ... ok [INFO] [stdout] test output_markdown_format ... ok [INFO] [stdout] test output_json_format_roundtrip ... ok [INFO] [stdout] test output_table_format ... ok [INFO] [stdout] test render_summary_with_mixed_severities ... ok [INFO] [stdout] test digest_end_to_end ... ok [INFO] [stdout] test file_store_full_pipeline ... ok [INFO] [stdout] test poll_options_defaults ... ok [INFO] [stdout] test nvd_mock_api_response ... ok [INFO] [stdout] test github_monitor_with_mock_server ... ok [INFO] [stdout] test npm_mock_api_response ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] Running tests/scan_integration.rs (/opt/rustwide/target/debug/deps/scan_integration-98a09f2841ca670c) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test from_server_command_preserves_complex_args ... ok [INFO] [stdout] test scan_single_server_shell_command_detected ... ok [INFO] [stdout] test scan_single_server_from_command_line ... ok [INFO] [stdout] test scan_report_renders_markdown ... ok [INFO] [stdout] test scan_report_renders_table ... ok [INFO] [stdout] test scan_single_url_http_unencrypted_detected ... ok [INFO] [stdout] test from_url_with_port ... ok [INFO] [stdout] test scan_single_url_sse_server ... ok [INFO] [stdout] test scan_empty_config_produces_clean_report ... ok [INFO] [stdout] test per_server_results_are_deterministically_sorted ... ok [INFO] [stdout] test scan_summary_clean_scan ... ok [INFO] [stdout] test scan_config_file_with_safe_server ... ok [INFO] [stdout] test scan_config_file_with_vulnerable_server ... ok [INFO] [stdout] test scan_report_renders_json ... ok [INFO] [stdout] test scan_summary_shows_passed_and_failed_counts ... ok [INFO] [stdout] test scan_report_renders_sarif ... ok [INFO] [stdout] test severity_filter_high_only_shows_high_and_above ... ok [INFO] [stdout] test scan_multiple_servers_per_server_tracking ... ok [INFO] [stdout] test scan_report_can_be_written_to_file ... ok [INFO] [stdout] test severity_filter_critical_only ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.73s [INFO] [stdout] [INFO] [stderr] Doc-tests mcp_audit [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/connection/mod.rs - connection (line 18) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2", kill_on_drop: false }` [INFO] [stdout] 8a976d501e5e9c83eefca62f12d13b7bf3f52f39868722cf4caabf871436cac2