[INFO] fetching crate openclaw-scan 0.1.1... [INFO] testing openclaw-scan-0.1.1 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate openclaw-scan 0.1.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate openclaw-scan 0.1.1 [INFO] finished tweaking crates.io crate openclaw-scan 0.1.1 [INFO] tweaked toml for crates.io crate openclaw-scan 0.1.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate openclaw-scan 0.1.1 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate openclaw-scan 0.1.1 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded predicates-tree v1.0.13 [INFO] [stderr] Downloaded predicates-core v1.0.10 [INFO] [stderr] Downloaded predicates v3.1.4 [INFO] [stderr] Downloaded tempfile v3.26.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b1be2bdc7c28026d0a84eb5eaf37e3f5d7011151abb2d832b70528b588ac0caa [INFO] running `Command { std: "docker" "start" "-a" "b1be2bdc7c28026d0a84eb5eaf37e3f5d7011151abb2d832b70528b588ac0caa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b1be2bdc7c28026d0a84eb5eaf37e3f5d7011151abb2d832b70528b588ac0caa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b1be2bdc7c28026d0a84eb5eaf37e3f5d7011151abb2d832b70528b588ac0caa", kill_on_drop: false }` [INFO] [stdout] b1be2bdc7c28026d0a84eb5eaf37e3f5d7011151abb2d832b70528b588ac0caa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 410507fbd1e5cc3901a60afc4a62978fd4b1ce9e1b16aa056f1389d5dbb26a30 [INFO] running `Command { std: "docker" "start" "-a" "410507fbd1e5cc3901a60afc4a62978fd4b1ce9e1b16aa056f1389d5dbb26a30", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling owo-colors v4.3.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling openclaw-scan v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.23s [INFO] running `Command { std: "docker" "inspect" "410507fbd1e5cc3901a60afc4a62978fd4b1ce9e1b16aa056f1389d5dbb26a30", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "410507fbd1e5cc3901a60afc4a62978fd4b1ce9e1b16aa056f1389d5dbb26a30", kill_on_drop: false }` [INFO] [stdout] 410507fbd1e5cc3901a60afc4a62978fd4b1ce9e1b16aa056f1389d5dbb26a30 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f919740030fd09b342b665e79e046dcab709e1e7118ad84d0d74317bda43f760 [INFO] running `Command { std: "docker" "start" "-a" "f919740030fd09b342b665e79e046dcab709e1e7118ad84d0d74317bda43f760", kill_on_drop: false }` [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling openclaw-scan v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 11.87s [INFO] running `Command { std: "docker" "inspect" "f919740030fd09b342b665e79e046dcab709e1e7118ad84d0d74317bda43f760", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f919740030fd09b342b665e79e046dcab709e1e7118ad84d0d74317bda43f760", kill_on_drop: false }` [INFO] [stdout] f919740030fd09b342b665e79e046dcab709e1e7118ad84d0d74317bda43f760 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] cc2028e24f985a13526d15b4fc393b8a0dcd13d366ed4045f9ac0d9aa266f5e2 [INFO] running `Command { std: "docker" "start" "-a" "cc2028e24f985a13526d15b4fc393b8a0dcd13d366ed4045f9ac0d9aa266f5e2", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/openclaw_scan-c2b467ff10ab01bb) [INFO] [stdout] [INFO] [stdout] running 110 tests [INFO] [stdout] test cli::tests::category_filter_to_category ... ok [INFO] [stdout] test cli::tests::multiple_paths_parsed ... ok [INFO] [stdout] test cli::tests::min_severity_medium_parsed ... ok [INFO] [stdout] test cli::tests::cli_debug_assert ... ok [INFO] [stdout] test cli::tests::ignore_path_repeatable ... ok [INFO] [stdout] test cli::tests::json_flag_parsed ... ok [INFO] [stdout] test cli::tests::severity_filter_default_is_low ... ok [INFO] [stdout] test cli::tests::severity_filter_to_severity_roundtrip ... ok [INFO] [stdout] test finding::tests::category_all_complete ... ok [INFO] [stdout] test cli::tests::verbose_flag_parsed ... ok [INFO] [stdout] test cli::tests::no_color_flag_parsed ... ok [INFO] [stdout] test finding::tests::finding_builder_chain ... ok [INFO] [stdout] test finding::tests::finding_serialises_to_json ... ok [INFO] [stdout] test finding::tests::redact_short_value ... ok [INFO] [stdout] test finding::tests::redact_minimum_masking_guarantee ... ok [INFO] [stdout] test finding::tests::severity_ordering ... ok [INFO] [stdout] test finding::tests::severity_penalty_values ... ok [INFO] [stdout] test output::terminal::tests::format_totals_empty_report ... ok [INFO] [stdout] test output::json::tests::report_json_contains_severity_labels ... ok [INFO] [stdout] test output::json::tests::report_serialises_to_valid_json ... ok [INFO] [stdout] test output::json::tests::report_json_severity_sorted_most_severe_first ... ok [INFO] [stdout] test output::terminal::tests::print_does_not_panic_on_full_report ... ok [INFO] [stdout] test paths::tests::detect_framework_claude ... ok [INFO] [stdout] test paths::tests::detect_framework_openclaw ... ok [INFO] [stdout] test output::terminal::tests::truncate_long_string_gets_ellipsis ... ok [INFO] [stdout] test output::terminal::tests::format_totals_mixed ... ok [INFO] [stdout] test output::terminal::tests::score_bar_full ... ok [INFO] [stdout] test output::terminal::tests::print_does_not_panic_on_empty_report ... ok [INFO] [stdout] test output::terminal::tests::score_bar_67 ... ok [INFO] [stdout] test output::terminal::tests::score_bar_half ... ok [INFO] [stdout] test paths::tests::explicit_path_nonexistent ... ok [INFO] [stdout] test paths::tests::framework_hint_display ... ok [INFO] [stdout] test output::terminal::tests::truncate_short_string_unchanged ... ok [INFO] [stdout] test output::terminal::tests::score_bar_empty ... ok [INFO] [stdout] test report::tests::score_does_not_go_below_zero ... ok [INFO] [stdout] test report::tests::score_no_findings ... ok [INFO] [stdout] test report::tests::score_single_critical ... ok [INFO] [stdout] test scanner::config::tests::detects_bash_with_metachar ... ok [INFO] [stdout] test report::tests::score_info_findings_not_penalised ... ok [INFO] [stdout] test scanner::config::tests::detects_dangerous_skip_permissions ... ok [INFO] [stdout] test report::tests::grade_boundaries ... ok [INFO] [stdout] test finding::tests::redact_keeps_prefix ... ok [INFO] [stdout] test report::tests::report_sorts_by_severity ... ok [INFO] [stdout] test report::tests::report_counts_by_severity ... ok [INFO] [stdout] test report::tests::report_has_findings_at ... ok [INFO] [stdout] test scanner::config::tests::detects_bare_bash_allow ... ok [INFO] [stdout] test scanner::dependencies::tests::deceptive_url_is_unofficial ... ok [INFO] [stdout] test scanner::config::tests::no_finding_for_false_skip_permissions ... ok [INFO] [stdout] test paths::tests::explicit_path_must_be_directory ... ok [INFO] [stdout] test paths::tests::explicit_path_valid_dir ... ok [INFO] [stdout] test paths::tests::looks_like_install_empty_dir ... ok [INFO] [stdout] test paths::tests::resolve_returns_error_when_nothing_found ... ok [INFO] [stdout] test paths::tests::looks_like_install_with_marker ... ok [INFO] [stdout] test scanner::config::tests::detects_wildcard_write ... ok [INFO] [stdout] test output::terminal::tests::format_category_counts_all_zero_shows_dash ... ok [INFO] [stdout] test scanner::config::tests::detects_mcp_always_allow ... ok [INFO] [stdout] test scanner::config::tests::detects_wildcard_bash ... ok [INFO] [stdout] test scanner::config::tests::no_finding_for_safe_bash_rule ... ok [INFO] [stdout] test scanner::config::tests::warns_no_deny_rules ... ok [INFO] [stdout] test scanner::config::tests::invalid_json_produces_low_finding ... ok [INFO] [stdout] test scanner::dependencies::tests::detects_unofficial_source ... ok [INFO] [stdout] test scanner::dependencies::tests::is_blocklisted_case_insensitive ... ok [INFO] [stdout] test scanner::dependencies::tests::no_finding_for_clean_plugin ... ok [INFO] [stdout] test scanner::dependencies::tests::no_finding_for_official_source ... ok [INFO] [stdout] test scanner::dependencies::tests::detects_blocklisted_plugin ... ok [INFO] [stdout] test scanner::dependencies::tests::official_github_org_is_trusted ... ok [INFO] [stdout] test scanner::dependencies::tests::unofficial_github_org_is_flagged ... ok [INFO] [stdout] test scanner::history::tests::detects_excessive_backups ... ok [INFO] [stdout] test scanner::history::tests::no_finding_for_small_history ... ok [INFO] [stdout] test scanner::history::tests::no_findings_on_empty_dir ... ok [INFO] [stdout] test scanner::hooks::tests::contains_shell_expansion_false ... ok [INFO] [stdout] test scanner::hooks::tests::contains_shell_expansion_true ... ok [INFO] [stdout] test scanner::hooks::tests::detects_shell_expansion ... ok [INFO] [stdout] test scanner::hooks::tests::no_finding_for_localhost_curl ... ok [INFO] [stdout] test scanner::hooks::tests::no_hooks_key_produces_no_findings ... ok [INFO] [stdout] test scanner::network::tests::detects_bare_ip_url ... ok [INFO] [stdout] test scanner::network::tests::detects_http_external_url ... ok [INFO] [stdout] test scanner::network::tests::is_bare_ip_address_true ... ok [INFO] [stdout] test scanner::network::tests::no_finding_for_http_localhost ... ok [INFO] [stdout] test scanner::network::tests::no_finding_for_localhost_ip ... ok [INFO] [stdout] test scanner::network::tests::no_finding_for_https_url ... ok [INFO] [stdout] test scanner::network::tests::sanitize_url_no_credentials_unchanged ... ok [INFO] [stdout] test scanner::network::tests::sanitize_url_strips_credentials ... ok [INFO] [stdout] test scanner::hooks::tests::no_finding_for_safe_hook ... ok [INFO] [stdout] test scanner::hooks::tests::detects_dangerously_skip_permissions ... ok [INFO] [stdout] test scanner::permissions::tests::scanner_returns_ok ... ok [INFO] [stdout] test scanner::hooks::tests::detects_outbound_curl ... ok [INFO] [stdout] test scanner::network::tests::is_bare_ip_address_false ... ok [INFO] [stdout] test scanner::permissions::tests::unix_tests::detects_world_readable_credentials ... ok [INFO] [stdout] test scanner::permissions::tests::unix_tests::detects_world_readable_history ... ok [INFO] [stdout] test scanner::permissions::tests::unix_tests::no_finding_when_files_absent ... ok [INFO] [stdout] test scanner::permissions::tests::unix_tests::no_finding_for_secure_credentials ... ok [INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_empty_line ... ok [INFO] [stdout] test scanner::tests::scan_context_subpath_existing ... ok [INFO] [stdout] test scanner::tests::scan_context_subpath_nonexistent ... ok [INFO] [stdout] test scanner::history::tests::detects_large_history ... ok [INFO] [stdout] test scanner::secrets::tests::detects_openai_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_aws_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_xai_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_anthropic_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_gitlab_token ... ok [INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_env_variable_reference ... ok [INFO] [stdout] test scanner::secrets::tests::evidence_is_redacted ... ok [INFO] [stdout] test scanner::secrets::tests::detects_openrouter_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_private_key_header ... ok [INFO] [stdout] test scanner::secrets::tests::detects_github_pat ... ok [INFO] [stdout] test scanner::secrets::tests::finding_has_correct_line_number ... ok [INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_safe_json ... ok [INFO] [stdout] test scanner::secrets::tests::detects_database_url_with_credentials ... ok [INFO] [stdout] test scanner::secrets::tests::detects_google_ai_key ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 110 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ocls-b8932ffd1dc4bab1) [INFO] [stdout] [INFO] [stdout] running 114 tests [INFO] [stdout] test cli::tests::category_filter_to_category ... ok [INFO] [stdout] test cli::tests::cli_debug_assert ... ok [INFO] [stdout] test cli::tests::ignore_path_repeatable ... ok [INFO] [stdout] test cli::tests::json_flag_parsed ... ok [INFO] [stdout] test cli::tests::severity_filter_to_severity_roundtrip ... ok [INFO] [stdout] test cli::tests::multiple_paths_parsed ... ok [INFO] [stdout] test cli::tests::no_color_flag_parsed ... ok [INFO] [stdout] test finding::tests::category_all_complete ... ok [INFO] [stdout] test cli::tests::verbose_flag_parsed ... ok [INFO] [stdout] test cli::tests::min_severity_medium_parsed ... ok [INFO] [stdout] test cli::tests::severity_filter_default_is_low ... ok [INFO] [stdout] test finding::tests::finding_builder_chain ... ok [INFO] [stdout] test finding::tests::finding_serialises_to_json ... ok [INFO] [stdout] test finding::tests::redact_keeps_prefix ... ok [INFO] [stdout] test finding::tests::redact_minimum_masking_guarantee ... ok [INFO] [stdout] test finding::tests::redact_short_value ... ok [INFO] [stdout] test finding::tests::severity_ordering ... ok [INFO] [stdout] test finding::tests::severity_penalty_values ... ok [INFO] [stdout] test output::terminal::tests::format_totals_empty_report ... ok [INFO] [stdout] test output::json::tests::report_json_contains_severity_labels ... ok [INFO] [stdout] test output::json::tests::report_json_severity_sorted_most_severe_first ... ok [INFO] [stdout] test output::json::tests::report_serialises_to_valid_json ... ok [INFO] [stdout] test output::terminal::tests::format_category_counts_all_zero_shows_dash ... ok [INFO] [stdout] test output::terminal::tests::print_does_not_panic_on_empty_report ... ok [INFO] [stdout] test output::terminal::tests::score_bar_67 ... ok [INFO] [stdout] test output::terminal::tests::score_bar_empty ... ok [INFO] [stdout] test output::terminal::tests::print_does_not_panic_on_full_report ... ok [INFO] [stdout] test output::terminal::tests::score_bar_full ... ok [INFO] [stdout] test output::terminal::tests::score_bar_half ... ok [INFO] [stdout] test output::terminal::tests::truncate_long_string_gets_ellipsis ... ok [INFO] [stdout] test output::terminal::tests::truncate_short_string_unchanged ... ok [INFO] [stdout] test paths::tests::detect_framework_claude ... ok [INFO] [stdout] test paths::tests::detect_framework_openclaw ... ok [INFO] [stdout] test paths::tests::explicit_path_must_be_directory ... ok [INFO] [stdout] test paths::tests::framework_hint_display ... ok [INFO] [stdout] test paths::tests::explicit_path_valid_dir ... ok [INFO] [stdout] test paths::tests::looks_like_install_empty_dir ... ok [INFO] [stdout] test paths::tests::resolve_returns_error_when_nothing_found ... ok [INFO] [stdout] test paths::tests::looks_like_install_with_marker ... ok [INFO] [stdout] test paths::tests::explicit_path_nonexistent ... ok [INFO] [stdout] test report::tests::grade_boundaries ... ok [INFO] [stdout] test report::tests::report_counts_by_severity ... ok [INFO] [stdout] test report::tests::report_has_findings_at ... ok [INFO] [stdout] test report::tests::report_sorts_by_severity ... ok [INFO] [stdout] test report::tests::score_does_not_go_below_zero ... ok [INFO] [stdout] test report::tests::score_no_findings ... ok [INFO] [stdout] test report::tests::score_info_findings_not_penalised ... ok [INFO] [stdout] test report::tests::score_single_critical ... ok [INFO] [stdout] test scanner::config::tests::detects_bare_bash_allow ... ok [INFO] [stdout] test scanner::config::tests::detects_bash_with_metachar ... ok [INFO] [stdout] test scanner::config::tests::detects_dangerous_skip_permissions ... ok [INFO] [stdout] test scanner::config::tests::detects_wildcard_bash ... ok [INFO] [stdout] test scanner::config::tests::detects_wildcard_write ... ok [INFO] [stdout] test scanner::config::tests::invalid_json_produces_low_finding ... ok [INFO] [stdout] test scanner::config::tests::detects_mcp_always_allow ... ok [INFO] [stdout] test scanner::config::tests::no_finding_for_false_skip_permissions ... ok [INFO] [stdout] test scanner::config::tests::no_finding_for_safe_bash_rule ... ok [INFO] [stdout] test scanner::config::tests::warns_no_deny_rules ... ok [INFO] [stdout] test scanner::dependencies::tests::deceptive_url_is_unofficial ... ok [INFO] [stdout] test scanner::dependencies::tests::detects_blocklisted_plugin ... ok [INFO] [stdout] test scanner::dependencies::tests::detects_unofficial_source ... ok [INFO] [stdout] test scanner::dependencies::tests::is_blocklisted_case_insensitive ... ok [INFO] [stdout] test scanner::dependencies::tests::no_finding_for_clean_plugin ... ok [INFO] [stdout] test scanner::dependencies::tests::no_finding_for_official_source ... ok [INFO] [stdout] test scanner::dependencies::tests::official_github_org_is_trusted ... ok [INFO] [stdout] test scanner::dependencies::tests::unofficial_github_org_is_flagged ... ok [INFO] [stdout] test scanner::history::tests::no_finding_for_small_history ... ok [INFO] [stdout] test scanner::hooks::tests::contains_shell_expansion_false ... ok [INFO] [stdout] test scanner::hooks::tests::contains_shell_expansion_true ... ok [INFO] [stdout] test scanner::hooks::tests::detects_dangerously_skip_permissions ... ok [INFO] [stdout] test scanner::history::tests::no_findings_on_empty_dir ... ok [INFO] [stdout] test scanner::history::tests::detects_excessive_backups ... ok [INFO] [stdout] test scanner::hooks::tests::detects_outbound_curl ... ok [INFO] [stdout] test scanner::hooks::tests::no_finding_for_localhost_curl ... ok [INFO] [stdout] test scanner::hooks::tests::detects_shell_expansion ... ok [INFO] [stdout] test scanner::hooks::tests::no_finding_for_safe_hook ... ok [INFO] [stdout] test scanner::hooks::tests::no_hooks_key_produces_no_findings ... ok [INFO] [stdout] test scanner::network::tests::detects_bare_ip_url ... ok [INFO] [stdout] test scanner::network::tests::detects_http_external_url ... ok [INFO] [stdout] test scanner::network::tests::is_bare_ip_address_false ... ok [INFO] [stdout] test scanner::network::tests::is_bare_ip_address_true ... ok [INFO] [stdout] test scanner::network::tests::no_finding_for_https_url ... ok [INFO] [stdout] test scanner::network::tests::no_finding_for_localhost_ip ... ok [INFO] [stdout] test scanner::network::tests::no_finding_for_http_localhost ... ok [INFO] [stdout] test scanner::network::tests::sanitize_url_no_credentials_unchanged ... ok [INFO] [stdout] test scanner::network::tests::sanitize_url_strips_credentials ... ok [INFO] [stdout] test scanner::permissions::tests::scanner_returns_ok ... ok [INFO] [stdout] test scanner::permissions::tests::unix_tests::detects_world_readable_credentials ... ok [INFO] [stdout] test scanner::permissions::tests::unix_tests::no_finding_for_secure_credentials ... ok [INFO] [stdout] test scanner::permissions::tests::unix_tests::no_finding_when_files_absent ... ok [INFO] [stdout] test scanner::permissions::tests::unix_tests::detects_world_readable_history ... ok [INFO] [stdout] test output::terminal::tests::format_totals_mixed ... ok [INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_empty_line ... ok [INFO] [stdout] test scanner::tests::scan_context_subpath_existing ... ok [INFO] [stdout] test scanner::tests::scan_context_subpath_nonexistent ... ok [INFO] [stdout] test tests::filter_report_keeps_all_when_threshold_is_info ... ok [INFO] [stdout] test tests::filter_report_recomputes_totals ... ok [INFO] [stdout] test tests::filter_report_removes_everything_when_threshold_is_critical_and_no_criticals ... ok [INFO] [stdout] test tests::filter_report_removes_low_when_threshold_is_medium ... ok [INFO] [stdout] test scanner::history::tests::detects_large_history ... ok [INFO] [stdout] test scanner::secrets::tests::evidence_is_redacted ... ok [INFO] [stdout] test scanner::secrets::tests::detects_xai_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_openrouter_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_private_key_header ... ok [INFO] [stdout] test scanner::secrets::tests::finding_has_correct_line_number ... ok [INFO] [stdout] test scanner::secrets::tests::detects_openai_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_google_ai_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_anthropic_key ... ok [INFO] [stdout] test scanner::secrets::tests::detects_gitlab_token ... ok [INFO] [stdout] test scanner::secrets::tests::detects_github_pat ... ok [INFO] [stdout] test scanner::secrets::tests::detects_aws_key ... ok [INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_env_variable_reference ... ok [INFO] [stdout] test scanner::secrets::tests::detects_database_url_with_credentials ... ok [INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_safe_json ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 114 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Doc-tests openclaw_scan [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/finding.rs - finding::redact (line 189) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "cc2028e24f985a13526d15b4fc393b8a0dcd13d366ed4045f9ac0d9aa266f5e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cc2028e24f985a13526d15b4fc393b8a0dcd13d366ed4045f9ac0d9aa266f5e2", kill_on_drop: false }` [INFO] [stdout] cc2028e24f985a13526d15b4fc393b8a0dcd13d366ed4045f9ac0d9aa266f5e2