[INFO] fetching crate zeph-tools 0.19.1... [INFO] testing zeph-tools-0.19.1 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate zeph-tools 0.19.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate zeph-tools 0.19.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate zeph-tools 0.19.1 [INFO] tweaked toml for crates.io crate zeph-tools 0.19.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate zeph-tools 0.19.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 zeph-tools 0.19.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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded scrape-core v0.2.5 [INFO] [stderr] Downloaded tree-sitter-rust v0.24.2 [INFO] [stderr] Downloaded deadpool v0.12.3 [INFO] [stderr] Downloaded wiremock v0.6.5 [INFO] [stderr] Downloaded web_atoms v0.2.3 [INFO] [stderr] Downloaded zeph-common v0.19.1 [INFO] [stderr] Downloaded assert-json-diff v2.0.2 [INFO] [stderr] Downloaded html5ever v0.39.0 [INFO] [stderr] Downloaded markup5ever v0.39.0 [INFO] [stderr] Downloaded hyper-rustls v0.27.8 [INFO] [stderr] Downloaded tokio v1.51.1 [INFO] [stderr] Downloaded tree-sitter-md v0.5.3 [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] 2b5504e4b21758b4f19bf8dc4d8c39168f3d1bd0e0d1e0217374162bed0961f0 [INFO] running `Command { std: "docker" "start" "-a" "2b5504e4b21758b4f19bf8dc4d8c39168f3d1bd0e0d1e0217374162bed0961f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2b5504e4b21758b4f19bf8dc4d8c39168f3d1bd0e0d1e0217374162bed0961f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2b5504e4b21758b4f19bf8dc4d8c39168f3d1bd0e0d1e0217374162bed0961f0", kill_on_drop: false }` [INFO] [stdout] 2b5504e4b21758b4f19bf8dc4d8c39168f3d1bd0e0d1e0217374162bed0961f0 [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] 99369e0f4d78fc047926c423615618e8cfb0ff982273b1d163ad6f27e8b774ef [INFO] running `Command { std: "docker" "start" "-a" "99369e0f4d78fc047926c423615618e8cfb0ff982273b1d163ad6f27e8b774ef", kill_on_drop: false }` [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling tree-sitter-language v0.1.7 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling aws-lc-rs v1.16.2 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling cc v1.2.60 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling phf_codegen v0.13.1 [INFO] [stderr] Compiling phf_macros v0.13.1 [INFO] [stderr] Compiling string_cache_codegen v0.6.1 [INFO] [stderr] Compiling string_cache v0.9.0 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling dtoa v1.0.11 [INFO] [stderr] Compiling phf v0.13.1 [INFO] [stderr] Compiling web_atoms v0.2.3 [INFO] [stderr] Compiling selectors v0.36.1 [INFO] [stderr] Compiling dtoa-short v0.3.5 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tendril v0.5.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling aws-lc-sys v0.39.1 [INFO] [stderr] Compiling tree-sitter-typescript v0.23.2 [INFO] [stderr] Compiling tree-sitter-python v0.25.0 [INFO] [stderr] Compiling tree-sitter-go v0.25.0 [INFO] [stderr] Compiling blake3 v1.8.4 [INFO] [stderr] Compiling tree-sitter-javascript v0.25.0 [INFO] [stderr] Compiling tree-sitter-rust v0.24.2 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling cssparser v0.36.0 [INFO] [stderr] Compiling tree-sitter-bash v0.25.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling markup5ever v0.39.0 [INFO] [stderr] Compiling tree-sitter-toml-ng v0.7.0 [INFO] [stderr] Compiling tree-sitter-json v0.24.8 [INFO] [stderr] Compiling tree-sitter-md v0.5.3 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling servo_arc v0.4.3 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling streaming-iterator v0.1.9 [INFO] [stderr] Compiling rustc-hash v2.1.2 [INFO] [stderr] Compiling winnow v1.0.1 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling html5ever v0.39.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling tree-sitter v0.26.8 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling scrape-core v0.2.5 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling zeph-common v0.19.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling rustls-webpki v0.103.12 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.2 [INFO] [stderr] Compiling hyper-rustls v0.27.8 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling zeph-tools v0.19.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s [INFO] running `Command { std: "docker" "inspect" "99369e0f4d78fc047926c423615618e8cfb0ff982273b1d163ad6f27e8b774ef", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "99369e0f4d78fc047926c423615618e8cfb0ff982273b1d163ad6f27e8b774ef", kill_on_drop: false }` [INFO] [stdout] 99369e0f4d78fc047926c423615618e8cfb0ff982273b1d163ad6f27e8b774ef [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] d7a3d2baac08b8106508ae625413c96b2a24dd97d748bc28eff16ae3f76e2770 [INFO] running `Command { std: "docker" "start" "-a" "d7a3d2baac08b8106508ae625413c96b2a24dd97d748bc28eff16ae3f76e2770", kill_on_drop: false }` [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling wait-timeout v0.2.1 [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 console v0.16.3 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling insta v1.47.2 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling proptest v1.11.0 [INFO] [stderr] Compiling tree-sitter v0.26.8 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling zeph-common v0.19.1 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.8 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling zeph-tools v0.19.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 51.28s [INFO] running `Command { std: "docker" "inspect" "d7a3d2baac08b8106508ae625413c96b2a24dd97d748bc28eff16ae3f76e2770", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d7a3d2baac08b8106508ae625413c96b2a24dd97d748bc28eff16ae3f76e2770", kill_on_drop: false }` [INFO] [stdout] d7a3d2baac08b8106508ae625413c96b2a24dd97d748bc28eff16ae3f76e2770 [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] 3e1a92f60a539b0170c2067e1b950e053e79e6f3f0612f8755db10f0a4e624af [INFO] running `Command { std: "docker" "start" "-a" "3e1a92f60a539b0170c2067e1b950e053e79e6f3f0612f8755db10f0a4e624af", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/zeph_tools-a86210733209e690) [INFO] [stdout] running 1013 tests [INFO] [stdout] test adversarial_gate::tests::delegation_set_skill_env ... ok [INFO] [stdout] test adversarial_gate::tests::confirmed_also_enforces_policy ... ok [INFO] [stdout] test adversarial_gate::tests::allow_path_delegates_to_inner ... ok [INFO] [stdout] test adversarial_gate::tests::deny_path_blocks_and_does_not_call_inner ... ok [INFO] [stdout] test adversarial_gate::tests::audit_entry_deny_contains_decision ... ok [INFO] [stdout] test adversarial_gate::tests::delegation_tool_definitions ... ok [INFO] [stdout] test adversarial_gate::tests::delegation_set_effective_trust ... ok [INFO] [stdout] test adversarial_gate::tests::audit_entry_contains_adversarial_decision ... ok [INFO] [stdout] test adversarial_gate::tests::audit_entry_propagates_claim_source ... ok [INFO] [stdout] test adversarial_gate::tests::error_message_is_opaque ... ok [INFO] [stdout] test adversarial_gate::tests::fail_closed_blocks_on_llm_error ... ok [INFO] [stdout] test adversarial_gate::tests::legacy_execute_bypasses_policy ... ok [INFO] [stdout] test adversarial_policy::tests::allow_path ... ok [INFO] [stdout] test adversarial_gate::tests::delegation_is_tool_retryable ... ok [INFO] [stdout] test adversarial_policy::tests::fail_open_flag_accessible ... ok [INFO] [stdout] test adversarial_policy::tests::non_secret_keys_not_redacted ... ok [INFO] [stdout] test adversarial_policy::tests::long_values_truncated ... ok [INFO] [stdout] test adversarial_policy::tests::llm_failure_returns_error ... ok [INFO] [stdout] test adversarial_policy::tests::param_escaping_wraps_in_code_fence ... ok [INFO] [stdout] test adversarial_policy::tests::parse_response_deny_without_colon ... ok [INFO] [stdout] test adversarial_policy::tests::parse_response_injection_attempt_becomes_deny ... ok [INFO] [stdout] test adversarial_policy::tests::parse_policy_lines_strips_comments_and_blanks ... ok [INFO] [stdout] test adversarial_policy::tests::parse_response_deny_with_reason ... ok [INFO] [stdout] test adversarial_policy::tests::secret_password_key_redacted ... ok [INFO] [stdout] test adversarial_policy::tests::secret_keys_are_redacted ... ok [INFO] [stdout] test adversarial_policy::tests::malformed_response_becomes_deny ... ok [INFO] [stdout] test adversarial_policy::tests::validator_is_send_sync ... ok [INFO] [stdout] test anomaly::tests::no_anomaly_on_success ... ok [INFO] [stdout] test anomaly::tests::record_reasoning_quality_failure_increments_error_count ... ok [INFO] [stdout] test adversarial_policy::tests::deny_path ... ok [INFO] [stdout] test anomaly::tests::is_reasoning_model_other_families ... ok [INFO] [stdout] test anomaly::tests::default_thresholds ... ok [INFO] [stdout] test anomaly::tests::is_reasoning_model_openai_o_series ... ok [INFO] [stdout] test anomaly::tests::critical_on_high_errors ... ok [INFO] [stdout] test anomaly::tests::too_few_samples_returns_none ... ok [INFO] [stdout] test adversarial_policy::tests::total_output_capped_at_2000 ... ok [INFO] [stdout] test anomaly::tests::blocked_counts_as_error ... ok [INFO] [stdout] test anomaly::tests::warning_on_half_errors ... ok [INFO] [stdout] test anomaly::tests::window_slides ... ok [INFO] [stdout] test audit::tests::audit_entry_claim_source_none_omitted ... ok [INFO] [stdout] test audit::tests::audit_entry_claim_source_some_present ... ok [INFO] [stdout] test audit::tests::audit_entry_exit_code_none_omitted ... ok [INFO] [stdout] test audit::tests::log_tool_risk_summary_empty_input_does_not_panic ... ok [INFO] [stdout] test audit::tests::claim_source_serde_roundtrip ... ok [INFO] [stdout] test audit::tests::audit_entry_exit_code_serialized ... ok [INFO] [stdout] test audit::tests::audit_entry_serialization ... ok [INFO] [stdout] test audit::tests::log_tool_risk_summary_does_not_panic ... ok [INFO] [stdout] test audit::tests::audit_logger_stdout ... ok [INFO] [stdout] test audit::tests::audit_result_blocked_serialization ... ok [INFO] [stdout] test anomaly::tests::reset_clears_window ... ok [INFO] [stdout] test audit::tests::audit_result_timeout_serialization ... ok [INFO] [stdout] test audit::tests::audit_result_error_serialization ... ok [INFO] [stdout] test cache::tests::different_hash_is_miss ... ok [INFO] [stdout] test cache::tests::counter_increments_correctly ... ok [INFO] [stdout] test audit::tests::audit_logger_file_write_error_logged ... ok [INFO] [stdout] test cache::tests::disabled_cache_always_misses ... ok [INFO] [stdout] test adversarial_gate::tests::fail_open_allows_on_llm_error ... ok [INFO] [stdout] test cache::tests::clear_removes_all_and_resets_counters ... ok [INFO] [stdout] test cache::tests::different_tool_name_is_miss ... ok [INFO] [stdout] test adversarial_policy::tests::parse_response_allow_variants ... ok [INFO] [stdout] test cache::tests::is_cacheable_returns_false_for_mcp_prefix ... ok [INFO] [stdout] test audit::tests::audit_logger_file ... ok [INFO] [stdout] test cache::tests::lru_eviction_at_capacity ... ok [INFO] [stdout] test cache::tests::is_cacheable_returns_false_for_deny_list ... ok [INFO] [stdout] test cache::tests::miss_on_empty_cache ... ok [INFO] [stdout] test cache::tests::put_then_get_returns_cached ... ok [INFO] [stdout] test cache::tests::ttl_none_never_expires ... ok [INFO] [stdout] test composite::tests::first_matches_returns_first ... ok [INFO] [stdout] test cache::tests::ttl_secs_returns_seconds_for_some ... ok [INFO] [stdout] test cache::tests::ttl_secs_returns_zero_for_none ... ok [INFO] [stdout] test composite::tests::tool_call_routes_to_file_executor ... ok [INFO] [stdout] test composite::tests::tool_call_unhandled_returns_none ... ok [INFO] [stdout] test composite::tests::tool_call_routes_to_shell_executor ... ok [INFO] [stdout] test cache::tests::ttl_zero_duration_expires_immediately ... ok [INFO] [stdout] test config::tests::default_audit_config ... ok [INFO] [stdout] test config::tests::default_allowed_commands_empty ... ok [INFO] [stdout] test composite::tests::both_none_returns_none ... ok [INFO] [stdout] test composite::tests::execute_confirmed_first_matches ... ok [INFO] [stdout] test composite::tests::first_error_propagates_without_trying_second ... ok [INFO] [stdout] test config::tests::default_scrape_config ... ok [INFO] [stdout] test config::tests::default_shell_config ... ok [INFO] [stdout] test composite::tests::execute_confirmed_falls_through ... ok [INFO] [stdout] test cache::tests::is_cacheable_returns_true_for_read_only_tools ... ok [INFO] [stdout] test composite::tests::composite_debug ... ok [INFO] [stdout] test config::tests::deserialize_allowed_commands ... ok [INFO] [stdout] test config::tests::deserialize_audit_config ... ok [INFO] [stdout] test config::tests::default_tools_config ... ok [INFO] [stdout] test config::tests::deserialize_default_config ... ok [INFO] [stdout] test config::tests::deserialize_omitted_fields_use_defaults ... ok [INFO] [stdout] test config::tests::deserialize_overflow_config_unknown_dir_field_is_ignored ... ok [INFO] [stdout] test config::tests::deserialize_result_cache_config ... ok [INFO] [stdout] test config::tests::empty_blocked_commands ... ok [INFO] [stdout] test config::tests::deserialize_shell_security_fields ... ok [INFO] [stdout] test config::tests::permission_policy_default_uses_legacy ... ok [INFO] [stdout] test config::tests::permission_policy_from_legacy_fields ... ok [INFO] [stdout] test config::tests::permission_policy_from_explicit_config ... ok [INFO] [stdout] test config::tests::deserialize_overflow_config_omitted_uses_defaults ... ok [INFO] [stdout] test config::tests::deserialize_overflow_config_partial_uses_defaults ... ok [INFO] [stdout] test cache::tests::ttl_expired_returns_none ... ok [INFO] [stdout] test config::tests::deserialize_scrape_config ... ok [INFO] [stdout] test adversarial_policy::tests::timeout_returns_error ... ok [INFO] [stdout] test config::tests::deserialize_overflow_config_full ... ok [INFO] [stdout] test audit::tests::audit_logger_multiple_entries ... ok [INFO] [stdout] test composite::tests::second_error_propagates_when_first_none ... ok [INFO] [stdout] test config::tests::result_cache_config_defaults ... ok [INFO] [stdout] test composite::tests::first_none_falls_through_to_second ... ok [INFO] [stdout] test config::tests::result_cache_omitted_uses_defaults ... ok [INFO] [stdout] test config::tests::tools_config_default_includes_scrape ... ok [INFO] [stdout] test config::tests::result_cache_ttl_zero_is_valid ... ok [INFO] [stdout] test config::tests::tools_summarize_output_parsing ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_clippy_subcmd_string ... ok [INFO] [stdout] test cwd::tests::tool_definitions_contains_set_working_directory ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_level_default_is_check ... ok [INFO] [stdout] test cwd::tests::set_cwd_returns_none_for_unknown_tool ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_check_subcmd_string ... ok [INFO] [stdout] test config::tests::tools_summarize_output_default_true ... ok [INFO] [stdout] test cwd::tests::set_cwd_errors_on_nonexistent_path ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_tool_definition ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_empty_message_skipped ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_unknown_tool_returns_none ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_non_compiler_message_ignored ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_compiler_message_with_span ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_non_primary_span_skipped_for_location ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_no_primary_span_uses_message_only ... ok [INFO] [stdout] test error_taxonomy::tests::classify_http_status_codes ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_empty_input ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_warning_with_span ... ok [INFO] [stdout] test error_taxonomy::tests::classify_io_connection_errors ... ok [INFO] [stdout] test error_taxonomy::tests::classify_io_not_found_is_permanent_not_tool_not_found ... ok [INFO] [stdout] test error_taxonomy::tests::error_kind_backward_compat ... ok [INFO] [stdout] test cwd::tests::set_cwd_changes_process_cwd ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_sandbox_violation ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_max_cap_respected ... ok [INFO] [stdout] test diagnostics::tests::parse_cargo_json_invalid_json_line_skipped ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_level_deserialize_clippy ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_params_path_optional ... ok [INFO] [stdout] test error_taxonomy::tests::needs_parameter_reformat ... ok [INFO] [stdout] test error_taxonomy::tests::phase_param_handling ... ok [INFO] [stdout] test error_taxonomy::tests::quality_failure_categories ... ok [INFO] [stdout] test error_taxonomy::tests::tool_error_feedback_format ... ok [INFO] [stdout] test executor::tests::b4_tool_error_http_429_not_quality_failure ... ok [INFO] [stdout] test executor::tests::b4_tool_error_execution_timed_out_not_quality_failure ... ok [INFO] [stdout] test executor::tests::b4_tool_error_http_503_not_quality_failure ... ok [INFO] [stdout] test executor::tests::deserialize_params_ignores_extra_fields ... ok [INFO] [stdout] test executor::tests::deserialize_params_wrong_type ... ok [INFO] [stdout] test executor::tests::deserialize_params_valid ... ok [INFO] [stdout] test executor::tests::deserialize_params_missing_required_field ... ok [INFO] [stdout] test executor::tests::error_kind_blocked_is_permanent ... ok [INFO] [stdout] test executor::tests::dyn_executor_set_effective_trust_delegates ... ok [INFO] [stdout] test executor::tests::dyn_executor_tool_definitions_delegates ... ok [INFO] [stdout] test executor::tests::dyn_executor_execute_tool_call_delegates ... ok [INFO] [stdout] test executor::tests::error_kind_execution_already_exists_is_permanent ... ok [INFO] [stdout] test executor::tests::error_kind_confirmation_required_is_permanent ... ok [INFO] [stdout] test executor::tests::error_kind_execution_broken_pipe_is_transient ... ok [INFO] [stdout] test executor::tests::error_kind_execution_connection_aborted_is_transient ... ok [INFO] [stdout] test executor::tests::error_kind_display ... ok [INFO] [stdout] test executor::tests::error_kind_execution_connection_reset_is_transient ... ok [INFO] [stdout] test error_taxonomy::tests::phase_setup_for_tool_not_found ... ok [INFO] [stdout] test executor::tests::error_kind_cancelled_is_permanent ... ok [INFO] [stdout] test executor::tests::error_kind_execution_interrupted_is_transient ... ok [INFO] [stdout] test executor::tests::dyn_executor_execute_delegates ... ok [INFO] [stdout] test error_taxonomy::tests::retryable_categories ... ok [INFO] [stdout] test executor::tests::deserialize_params_all_optional_empty ... ok [INFO] [stdout] test executor::tests::dyn_executor_execute_confirmed_delegates ... ok [INFO] [stdout] test executor::tests::error_kind_execution_not_found_is_permanent ... ok [INFO] [stdout] test executor::tests::error_kind_execution_permission_denied_is_permanent ... ok [INFO] [stdout] test executor::tests::error_kind_execution_other_is_permanent ... ok [INFO] [stdout] test executor::tests::error_kind_sandbox_violation_is_permanent ... ok [INFO] [stdout] test executor::tests::error_kind_timeout_is_transient ... ok [INFO] [stdout] test executor::tests::extract_fenced_blocks_no_prefix_match ... ok [INFO] [stdout] test executor::tests::filter_stats_estimated_tokens_saved ... ok [INFO] [stdout] test executor::tests::filter_stats_format_inline ... ok [INFO] [stdout] test executor::tests::filter_stats_savings_pct ... ok [INFO] [stdout] test executor::tests::filter_stats_format_inline_zero ... ok [INFO] [stdout] test executor::tests::tool_error_blocked_category_is_policy_blocked ... ok [INFO] [stdout] test executor::tests::tool_error_blocked_display ... ok [INFO] [stdout] test executor::tests::tool_error_cancelled_category ... ok [INFO] [stdout] test executor::tests::execute_tool_call_default_returns_none ... ok [INFO] [stdout] test executor::tests::error_kind_execution_would_block_is_transient ... ok [INFO] [stdout] test executor::tests::error_kind_execution_timed_out_is_transient ... ok [INFO] [stdout] test executor::tests::tool_error_confirmation_required_display ... ok [INFO] [stdout] test executor::tests::tool_error_execution_display ... ok [INFO] [stdout] test executor::tests::tool_error_execution_not_found_category_is_permanent_failure ... ok [INFO] [stdout] test executor::tests::tool_error_execution_connection_refused_category_is_network_error ... ok [INFO] [stdout] test executor::tests::tool_error_execution_timed_out_category_is_timeout ... ok [INFO] [stdout] test executor::tests::tool_error_http_400_category_is_invalid_parameters ... ok [INFO] [stdout] test executor::tests::tool_error_http_401_category_is_policy_blocked ... ok [INFO] [stdout] test executor::tests::tool_error_http_502_category_is_server_error ... ok [INFO] [stdout] test executor::tests::tool_error_http_429_category_is_rate_limited ... ok [INFO] [stdout] test executor::tests::tool_error_http_500_category_is_server_error ... ok [INFO] [stdout] test executor::tests::tool_error_http_503_category_is_server_error ... ok [INFO] [stdout] test executor::tests::tool_error_http_403_category_is_policy_blocked ... ok [INFO] [stdout] test executor::tests::tool_error_http_404_category_is_permanent_failure ... ok [INFO] [stdout] test executor::tests::filter_stats_savings_pct_zero ... ok [INFO] [stdout] test executor::tests::error_kind_invalid_params_is_permanent ... ok [INFO] [stdout] test executor::tests::tool_error_http_503_is_transient_triggers_phase2_retry ... ok [INFO] [stdout] test executor::tests::tool_error_invalid_params_category ... ok [INFO] [stdout] test executor::tests::tool_error_sandbox_violation_display ... ok [INFO] [stdout] test executor::tests::tool_error_shell_exit126_is_policy_blocked ... ok [INFO] [stdout] test executor::tests::tool_error_timeout_category ... ok [INFO] [stdout] test executor::tests::tool_error_shell_not_quality_failure ... ok [INFO] [stdout] test executor::tests::tool_error_timeout_display ... ok [INFO] [stdout] test executor::tests::tool_output_display ... ok [INFO] [stdout] test executor::tests::truncate_tool_output_exact_limit ... ok [INFO] [stdout] test file::tests::absolute_path_unchanged ... ok [INFO] [stdout] test executor::tests::truncate_tool_output_long_split ... ok [INFO] [stdout] test executor::tests::tool_error_confirmation_required_category ... ok [INFO] [stdout] test executor::tests::truncate_tool_output_notice_contains_count ... ok [INFO] [stdout] test file::tests::copy_dir_skips_symlinks ... ok [INFO] [stdout] test file::tests::copy_path_directory_recursive ... ok [INFO] [stdout] test executor::tests::tool_error_shell_exit127_is_permanent_failure ... ok [INFO] [stdout] test executor::tests::truncate_tool_output_short_passthrough ... ok [INFO] [stdout] test executor::tests::tool_error_invalid_params_display ... ok [INFO] [stdout] test executor::tests::tool_error_sandbox_violation_category_is_policy_blocked ... ok [INFO] [stdout] test file::tests::empty_allowed_paths_uses_cwd ... ok [INFO] [stdout] test file::tests::copy_path_file ... ok [INFO] [stdout] test file::tests::delete_path_file ... ok [INFO] [stdout] test file::tests::delete_path_recursive ... ok [INFO] [stdout] test file::tests::find_path_finds_files ... ok [INFO] [stdout] test file::tests::find_path_invalid_pattern_returns_error ... ok [INFO] [stdout] test file::tests::find_path_filters_outside_sandbox ... ok [INFO] [stdout] test file::tests::find_path_respects_max_results ... ok [INFO] [stdout] test file::tests::delete_path_refuses_sandbox_root ... ok [INFO] [stdout] test file::tests::delete_path_sandbox_violation ... ok [INFO] [stdout] test file::tests::copy_path_source_sandbox_violation ... ok [INFO] [stdout] test file::tests::list_directory_on_file_returns_error ... ok [INFO] [stdout] test file::tests::create_directory_creates_nested ... ok [INFO] [stdout] test file::tests::grep_relative_path_validated ... ok [INFO] [stdout] test file::tests::delete_path_non_empty_dir_without_recursive_fails ... ok [INFO] [stdout] test file::tests::create_directory_idempotent ... ok [INFO] [stdout] test file::tests::create_directory_sandbox_violation ... ok [INFO] [stdout] test file::tests::delete_path_empty_directory ... ok [INFO] [stdout] test file::tests::edit_file ... ok [INFO] [stdout] test file::tests::copy_path_sandbox_violation ... ok [INFO] [stdout] test file::tests::list_directory_empty_dir ... ok [INFO] [stdout] test file::tests::edit_not_found ... ok [INFO] [stdout] test file::tests::list_directory_sandbox_violation ... ok [INFO] [stdout] test file::tests::list_directory_shows_symlinks ... ok [INFO] [stdout] test file::tests::list_directory_nonexistent_returns_error ... ok [INFO] [stdout] test file::tests::missing_required_path_returns_invalid_params ... ok [INFO] [stdout] test file::tests::move_path_renames_file ... ok [INFO] [stdout] test file::tests::normalize_path_collapses_dot ... ok [INFO] [stdout] test file::tests::normalize_path_at_sandbox_boundary ... ok [INFO] [stdout] test file::tests::normalize_path_collapses_dotdot ... ok [INFO] [stdout] test file::tests::normalize_path_normal_path ... ok [INFO] [stdout] test file::tests::normalize_path_nested_dotdot ... ok [INFO] [stdout] test file::tests::read_file ... ok [INFO] [stdout] test file::tests::tilde_only_expands_to_home ... ok [INFO] [stdout] test file::tests::tool_definitions_read_schema_has_params ... ok [INFO] [stdout] test file::tests::read_sandbox_allow_overrides_deny ... ok [INFO] [stdout] test file::tests::tool_definitions_all_use_tool_call ... ok [INFO] [stdout] test file::tests::tilde_path_is_expanded ... ok [INFO] [stdout] test file::tests::read_sandbox_empty_deny_allows_all ... ok [INFO] [stdout] test file::tests::tool_definitions_returns_ten_tools ... ok [INFO] [stdout] test file::tests::tool_executor_execute_tool_call_delegates ... ok [INFO] [stdout] test file::tests::move_path_source_sandbox_violation ... ok [INFO] [stdout] test file::tests::tool_executor_tool_definitions_lists_all ... ok [INFO] [stdout] test file::tests::unknown_tool_returns_none ... ok [INFO] [stdout] test file::tests::validate_path_dot_components_inside_sandbox_passes ... ok [INFO] [stdout] test file::tests::validate_path_inside_sandbox_passes ... ok [INFO] [stdout] test file::tests::write_sandbox_bypass_nonexistent_path ... ok [INFO] [stdout] test file::tests::write_file ... ok [INFO] [stdout] test file::tests::read_with_offset_and_limit ... ok [INFO] [stdout] test file::tests::validate_path_dotdot_bypass_nonexistent_blocked ... ok [INFO] [stdout] test file::tests::sandbox_violation ... ok [INFO] [stdout] test file::tests::validate_path_dotdot_nested_bypass_blocked ... ok [INFO] [stdout] test file::tests::read_sandbox_deny_blocks_file ... ok [INFO] [stdout] test filter::declarative::tests::compile_dedup_rejects_dollar_replacement ... ok [INFO] [stdout] test filter::declarative::tests::compile_match_empty_returns_error ... ok [INFO] [stdout] test filter::declarative::tests::compile_match_exact ... ok [INFO] [stdout] test filter::declarative::tests::compile_keep_matching_empty_patterns_rejected ... ok [INFO] [stdout] test filter::declarative::tests::compile_match_prefix ... ok [INFO] [stdout] test filter::declarative::tests::compile_match_invalid_regex_returns_error ... ok [INFO] [stdout] test filter::declarative::tests::compile_drop_then_recompile ... ok [INFO] [stdout] test filter::declarative::tests::compile_match_regex_over_512_chars_rejected ... ok [INFO] [stdout] test filter::declarative::tests::compile_match_regex_exactly_512_chars_accepted ... ok [INFO] [stdout] test filter::declarative::tests::compile_repeated_truncate_consistent ... ok [INFO] [stdout] test filter::declarative::tests::compile_strategy_change_consistent ... ok [INFO] [stdout] test filter::declarative::tests::compile_strategy_keep_matching_valid ... ok [INFO] [stdout] test filter::declarative::tests::compile_strategy_strip_noise_invalid_pattern ... ok [INFO] [stdout] test filter::declarative::tests::compile_strategy_strip_noise_pattern_over_512_chars_rejected ... ok [INFO] [stdout] test filter::declarative::tests::compile_dedup_rejects_dollar_brace_replacement ... ok [INFO] [stdout] test filter::declarative::tests::compile_repeated_produces_consistent_filters ... ok [INFO] [stdout] test filter::declarative::tests::compile_strategy_truncate_head_tail_exceeds_max ... ok [INFO] [stdout] test filter::declarative::tests::compile_strip_annotated_empty_patterns_rejected ... ok [INFO] [stdout] test filter::declarative::tests::compile_strip_noise_empty_patterns_rejected ... ok [INFO] [stdout] test file::tests::move_path_cross_sandbox_denied ... ok [INFO] [stdout] test filter::declarative::tests::compound_command_prefix_matches_last_segment ... ok [INFO] [stdout] test filter::declarative::tests::compile_strategy_truncate_valid ... ok [INFO] [stdout] test file::tests::read_sandbox_grep_skips_denied_files ... ok [INFO] [stdout] test filter::declarative::tests::compile_strategy_strip_noise_valid ... ok [INFO] [stdout] test filter::declarative::tests::compound_command_regex_match ... ok [INFO] [stdout] test diagnostics::tests::diagnostics_level_deserialize_check ... ok [INFO] [stdout] test file::tests::grep_finds_matches ... ok [INFO] [stdout] test filter::declarative::tests::dedup_cap_hit_reports_capped ... ok [INFO] [stdout] test file::tests::list_directory_returns_entries ... ok [INFO] [stdout] test filter::declarative::tests::compile_match_regex ... ok [INFO] [stdout] test filter::declarative::tests::compile_strategy_group_by_rule_invalid_regex ... ok [INFO] [stdout] test filter::declarative::tests::dedup_cap_respected_does_not_panic_with_large_max_unique ... ok [INFO] [stdout] test filter::declarative::tests::compile_dedup_accepts_plain_text_replacement ... ok [INFO] [stdout] test file::tests::find_path_truncates_at_default_limit ... ok [INFO] [stdout] test filter::declarative::tests::dedup_all_unique_fallback ... ok [INFO] [stdout] test filter::declarative::tests::dedup_deduplicates_log_lines ... ok [INFO] [stdout] test filter::declarative::tests::clippy_grouped_warnings_snapshot ... ok [INFO] [stdout] test filter::declarative::tests::filter_diff_snapshot ... ok [INFO] [stdout] test filter::declarative::tests::filter_status_snapshot ... ok [INFO] [stdout] test filter::declarative::tests::git_diff_compresses ... ok [INFO] [stdout] test filter::declarative::tests::git_diff_empty_fallback ... ok [INFO] [stdout] test filter::declarative::tests::git_diff_truncation_note ... ok [INFO] [stdout] test filter::declarative::tests::dedup_normalize_replaces_patterns ... ok [INFO] [stdout] test filter::declarative::tests::cargo_build_filter_snapshot ... ok [INFO] [stdout] test filter::declarative::tests::git_status_empty_fallback ... ok [INFO] [stdout] test filter::declarative::tests::git_status_summarizes_long_format ... ok [INFO] [stdout] test filter::declarative::tests::git_status_summarizes_short_format ... ok [INFO] [stdout] test filter::declarative::tests::cargo_build_error_snapshot ... ok [INFO] [stdout] test filter::declarative::tests::dedup_short_fallback ... ok [INFO] [stdout] test filter::declarative::tests::group_by_rule_empty_input_returns_fallback ... ok [INFO] [stdout] test filter::declarative::tests::declarative_filter_never_panics_test_summary ... ok [INFO] [stdout] test filter::declarative::tests::group_by_rule_error_passthrough ... ok [INFO] [stdout] test filter::declarative::tests::declarative_filter_never_panics_truncate ... ok [INFO] [stdout] test filter::declarative::tests::group_by_rule_no_warnings_strips_cargo_noise ... ok [INFO] [stdout] test filter::declarative::tests::is_cargo_noise_detects_prefixes ... ok [INFO] [stdout] test filter::declarative::tests::group_by_rule_groups_warnings ... ok [INFO] [stdout] test filter::declarative::tests::keep_matching_fallback_when_nothing_matches ... ok [INFO] [stdout] test filter::declarative::tests::keep_matching_empty_input_returns_fallback ... ok [INFO] [stdout] test filter::declarative::tests::keep_matching_keeps_only_matching_lines ... ok [INFO] [stdout] test filter::declarative::tests::brew_install_filter_strips_download_lines ... ok [INFO] [stdout] test filter::declarative::tests::load_declarative_filters_from_custom_file ... ok [INFO] [stdout] test filter::declarative::tests::curl_wget_filter_strips_noise ... ok [INFO] [stdout] test filter::declarative::tests::docker_compose_filter_strips_container_lines ... ok [INFO] [stdout] test filter::declarative::tests::embedded_defaults_parse_without_error ... ok [INFO] [stdout] test filter::declarative::tests::go_test_filter_truncates_long_output ... ok [INFO] [stdout] test filter::declarative::tests::git_log_filter_truncates_to_head20 ... ok [INFO] [stdout] test filter::declarative::tests::docker_build_filter_strips_step_lines ... ok [INFO] [stdout] test filter::declarative::tests::du_df_ps_filter_matches_and_truncates ... ok [INFO] [stdout] test filter::declarative::tests::load_declarative_filters_skips_disabled_rules ... ok [INFO] [stdout] test filter::declarative::tests::load_declarative_filters_skips_invalid_regex ... ok [INFO] [stdout] test filter::declarative::tests::find_filter_matches_and_truncates ... ok [INFO] [stdout] test filter::declarative::tests::load_declarative_filters_invalid_toml_returns_empty ... ok [INFO] [stdout] test filter::declarative::tests::strip_annotated_empty_input_returns_fallback ... ok [INFO] [stdout] test filter::declarative::tests::strip_annotated_no_panic_single_kept_line_large_head_tail ... ok [INFO] [stdout] test filter::declarative::tests::strip_annotated_no_panic_when_head_tail_exceeds_kept ... ok [INFO] [stdout] test filter::declarative::tests::strip_annotated_passthrough_on_error_no_noise ... ok [INFO] [stdout] test filter::declarative::tests::grep_rg_filter_matches_and_truncates ... ok [INFO] [stdout] test filter::declarative::tests::git_push_filter_keeps_matching_lines ... ok [INFO] [stdout] test filter::declarative::tests::strip_annotated_passthrough_short_no_noise ... ok [INFO] [stdout] test filter::declarative::tests::js_test_filter_matches_and_truncates ... ok [INFO] [stdout] test filter::declarative::tests::strip_annotated_removes_noise_with_count ... ok [INFO] [stdout] test filter::declarative::tests::strip_noise_removes_matching_lines ... ok [INFO] [stdout] test filter::declarative::tests::strip_annotated_with_summary_pattern_but_no_summary_line ... ok [INFO] [stdout] test filter::declarative::tests::strip_noise_returns_fallback_when_nothing_removed ... ok [INFO] [stdout] test filter::declarative::tests::strip_noise_strips_ansi_before_matching ... ok [INFO] [stdout] test filter::declarative::tests::test_summary_empty_input_returns_fallback ... ok [INFO] [stdout] test filter::declarative::tests::test_summary_failures_snapshot ... ok [INFO] [stdout] test filter::declarative::tests::test_summary_no_summary_passthrough ... ok [INFO] [stdout] test filter::declarative::tests::test_summary_success_compresses ... ok [INFO] [stdout] test filter::declarative::tests::toml_parse_dedup_default_patterns ... ok [INFO] [stdout] test filter::declarative::tests::toml_parse_empty_rules ... ok [INFO] [stdout] test filter::declarative::tests::toml_parse_git_status_rule ... ok [INFO] [stdout] test filter::declarative::tests::test_summary_failure_preserves_details ... ok [INFO] [stdout] test filter::declarative::tests::toml_parse_test_summary_rule ... ok [INFO] [stdout] test filter::declarative::tests::toml_parse_truncate_default_head_tail ... ok [INFO] [stdout] test filter::declarative::tests::toml_parse_strip_noise_rule ... ok [INFO] [stdout] test filter::declarative::tests::truncate_empty_input_returns_fallback ... ok [INFO] [stdout] test filter::declarative::tests::truncate_exactly_at_threshold_returns_fallback ... ok [INFO] [stdout] test filter::declarative::tests::kubectl_get_filter_truncates_long_output ... ok [INFO] [stdout] test filter::declarative::tests::toml_parse_truncate_rule ... ok [INFO] [stdout] test filter::declarative::tests::truncate_long_output_applies_head_tail ... ok [INFO] [stdout] test filter::declarative::tests::truncate_short_output_passthrough ... ok [INFO] [stdout] test filter::declarative::tests::truncate_omitted_count_correct ... ok [INFO] [stdout] test filter::security::tests::compile_extra_warns_on_invalid ... ok [INFO] [stdout] test filter::declarative::tests::linter_filter_matches_and_truncates ... ok [INFO] [stdout] test filter::declarative::tests::strip_noise_empty_input_returns_fallback ... ok [INFO] [stdout] test filter::declarative::tests::load_declarative_filters_from_missing_dir_uses_defaults ... ok [INFO] [stdout] test filter::security::tests::detects_panic ... ok [INFO] [stdout] test filter::security::tests::detects_http_status_codes ... ok [INFO] [stdout] test filter::security::tests::append_does_nothing_on_clean_output ... ok [INFO] [stdout] test filter::security::tests::detects_permission_denied ... ok [INFO] [stdout] test filter::security::tests::detects_rustsec ... ok [INFO] [stdout] test filter::security::tests::detects_auth_failure ... ok [INFO] [stdout] test filter::security::tests::detects_sql_injection ... ok [INFO] [stdout] test filter::security::tests::append_adds_security_section ... ok [INFO] [stdout] test filter::declarative::tests::registry_applies_declarative_filter ... ok [INFO] [stdout] test filter::declarative::tests::pytest_filter_truncates_long_output ... ok [INFO] [stdout] test filter::security::tests::detects_vulnerability ... ok [INFO] [stdout] test filter::security::tests::extra_patterns_work ... ok [INFO] [stdout] test filter::tests::command_matcher_compound_no_false_positive ... ok [INFO] [stdout] test filter::security::tests::no_false_positives ... ok [INFO] [stdout] test filter::security::tests::detects_weak_crypto ... ok [INFO] [stdout] test filter::tests::command_matcher_prefix ... ok [INFO] [stdout] test filter::security::tests::integration_filter_removes_security_restored ... ok [INFO] [stdout] test filter::tests::command_matcher_compound_cd_and ... ok [INFO] [stdout] test filter::tests::command_matcher_compound_with_pipe ... ok [INFO] [stdout] test filter::tests::extract_last_command_basic ... ok [INFO] [stdout] test filter::tests::count_lines_helper ... ok [INFO] [stdout] test filter::tests::filter_confidence_derives ... ok [INFO] [stdout] test filter::tests::confidence_aggregation ... ok [INFO] [stdout] test filter::security::tests::detects_unsafe_warnings ... ok [INFO] [stdout] test filter::tests::command_matcher_exact ... ok [INFO] [stdout] test filter::tests::filter_config_deserialize ... ok [INFO] [stdout] test filter::tests::filter_metrics_record ... ok [INFO] [stdout] test filter::tests::filter_metrics_new_zeros ... ok [INFO] [stdout] test filter::tests::filter_config_deserialize_minimal ... ok [INFO] [stdout] test filter::tests::filter_metrics_savings_pct ... ok [INFO] [stdout] test filter::tests::command_matcher_custom ... ok [INFO] [stdout] test filter::tests::filter_config_deserialize_security ... ok [INFO] [stdout] test filter::tests::filter_config_default_enabled ... ok [INFO] [stdout] test filter::tests::pipeline_multi_stage_chains_and_aggregates ... ok [INFO] [stdout] test filter::tests::filter_result_savings_pct ... ok [INFO] [stdout] test filter::tests::make_result_counts_lines ... ok [INFO] [stdout] test filter::tests::registry_no_match_returns_none ... ok [INFO] [stdout] test filter::tests::registry_pipeline_with_two_matching_filters ... ok [INFO] [stdout] test filter::tests::sanitize_collapses_blank_lines ... ok [INFO] [stdout] test filter::tests::sanitize_preserves_crlf_content ... ok [INFO] [stdout] test filter::tests::registry_disabled_returns_none ... ok [INFO] [stdout] test filter::tests::sanitize_strips_ansi ... ok [INFO] [stdout] test filter::tests::sanitize_strips_cr_progress ... ok [INFO] [stdout] test net::tests::broadcast_v4 ... ok [INFO] [stdout] test net::tests::cgnat_boundary_not_blocked ... ok [INFO] [stdout] test net::tests::cgnat_v4 ... ok [INFO] [stdout] test net::tests::ipv4_mapped_private ... ok [INFO] [stdout] test net::tests::ipv4_mapped_unspecified ... ok [INFO] [stdout] test net::tests::link_local_v4 ... ok [INFO] [stdout] test net::tests::link_local_v6 ... ok [INFO] [stdout] test net::tests::loopback_v4 ... ok [INFO] [stdout] test net::tests::loopback_v6 ... ok [INFO] [stdout] test net::tests::private_class_a ... ok [INFO] [stdout] test filter::tests::command_matcher_regex ... ok [INFO] [stdout] test net::tests::public_v4_not_blocked ... ok [INFO] [stdout] test net::tests::private_class_c ... ok [INFO] [stdout] test net::tests::private_class_b ... ok [INFO] [stdout] test net::tests::public_v6_not_blocked ... ok [INFO] [stdout] test net::tests::unspecified_v4 ... ok [INFO] [stdout] test net::tests::ula_v6 ... ok [INFO] [stdout] test net::tests::unspecified_v6 ... ok [INFO] [stdout] test permissions::tests::allow_rule_matches_glob ... ok [INFO] [stdout] test permissions::tests::ask_rule_returns_ask ... ok [INFO] [stdout] test filter::tests::filter_result_savings_pct_zero_raw ... ok [INFO] [stdout] test permissions::tests::case_sensitive_tool_id ... ok [INFO] [stdout] test permissions::tests::deny_rule_blocks ... ok [INFO] [stdout] test permissions::tests::autonomy_level_default_is_supervised ... ok [INFO] [stdout] test permissions::tests::autonomy_level_deserialize ... ok [INFO] [stdout] test permissions::tests::from_legacy_creates_deny_and_ask_rules ... ok [INFO] [stdout] test permissions::tests::full_allows_everything ... ok [INFO] [stdout] test permissions::tests::from_legacy_preserves_supervised_behavior ... ok [INFO] [stdout] test permissions::tests::is_fully_denied_all_deny ... ok [INFO] [stdout] test permissions::tests::is_fully_denied_mixed ... ok [INFO] [stdout] test permissions::tests::is_fully_denied_no_rules ... ok [INFO] [stdout] test permissions::tests::no_matching_rule_falls_through_to_ask ... ok [INFO] [stdout] test permissions::tests::no_rules_returns_default_ask ... ok [INFO] [stdout] test permissions::tests::permissions_config_deserialize ... ok [INFO] [stdout] test permissions::tests::readonly_allows_readonly_tools ... ok [INFO] [stdout] test permissions::tests::readonly_denies_write_tools ... ok [INFO] [stdout] test permissions::tests::supervised_uses_rules ... ok [INFO] [stdout] test permissions::tests::wildcard_pattern ... ok [INFO] [stdout] test policy::tests::alias_bash_rule_matches_bash_tool_id ... ok [INFO] [stdout] test policy::tests::alias_shell_rule_matches_bash_tool_id ... ok [INFO] [stdout] test policy::tests::alias_unknown_tool_unaffected ... ok [INFO] [stdout] test policy::tests::deep_dotdot_traversal_blocked_by_deny_rule ... ok [INFO] [stdout] test policy::tests::deny_wins_deny_first ... ok [INFO] [stdout] test policy::tests::deny_wins_deny_last ... ok [INFO] [stdout] test policy::tests::max_rules_exactly_256_compiles ... ok [INFO] [stdout] test permissions::tests::case_insensitive_input_matching ... ok [INFO] [stdout] test policy::tests::policy_config_toml_round_trip ... ok [INFO] [stdout] test policy::tests::policy_config_default_is_disabled_deny ... ok [INFO] [stdout] test permissions::tests::first_matching_rule_wins ... ok [INFO] [stdout] test policy::tests::alias_sh_rule_matches_bash_tool_id ... ok [INFO] [stdout] test policy::tests::policy_file_loaded_from_cwd_subdir ... ok [INFO] [stdout] test policy::tests::policy_file_symlink_escaping_project_root_is_rejected ... ok [INFO] [stdout] test policy::tests::policy_file_load_error ... ok [INFO] [stdout] test filter::tests::filter_pipeline_run_never_panics ... ok [INFO] [stdout] test policy::tests::test_args_match_matches_param_value ... ok [INFO] [stdout] test policy::tests::test_default_allow ... ok [INFO] [stdout] test policy::tests::test_default_deny ... ok [INFO] [stdout] test policy::tests::test_deny_wins ... ok [INFO] [stdout] test policy::tests::test_path_normalization_dot_segments ... ok [INFO] [stdout] test policy::tests::test_path_normalization ... ok [INFO] [stdout] test policy::tests::test_tool_name_normalization ... ok [INFO] [stdout] test policy::tests::test_trust_level_condition ... ok [INFO] [stdout] test policy_gate::tests::allow_by_default_when_default_allow ... ok [INFO] [stdout] test policy_gate::tests::allow_rule_permits_tool ... ok [INFO] [stdout] test policy::tests::test_too_many_rules_rejected ... ok [INFO] [stdout] test policy_gate::tests::confirmed_allow_delegates_to_inner ... ok [INFO] [stdout] test policy_gate::tests::confirmed_also_enforces_policy ... ok [INFO] [stdout] test policy_gate::tests::deny_rule_blocks_tool ... ok [INFO] [stdout] test policy_gate::tests::error_message_is_generic ... ok [INFO] [stdout] test policy_gate::tests::legacy_execute_blocked_when_policy_enabled ... ok [INFO] [stdout] test policy_gate::tests::set_effective_trust_quarantined_blocks_verified_threshold_rule ... ok [INFO] [stdout] test policy_gate::tests::set_effective_trust_trusted_satisfies_verified_threshold_rule ... ok [INFO] [stdout] test registry::tests::default_registry_is_empty ... ok [INFO] [stdout] test registry::tests::find_existing_tool ... ok [INFO] [stdout] test registry::tests::find_nonexistent_returns_none ... ok [INFO] [stdout] test policy_gate::tests::deny_by_default_when_default_deny ... ok [INFO] [stdout] test registry::tests::format_filtered_excludes_fully_denied ... ok [INFO] [stdout] test registry::tests::format_filtered_includes_mixed_rules ... ok [INFO] [stdout] test registry::tests::format_for_prompt_contains_tools ... ok [INFO] [stdout] test registry::tests::format_for_prompt_shows_invocation_fenced ... ok [INFO] [stdout] test registry::tests::format_filtered_no_rules_includes_all ... ok [INFO] [stdout] test registry::tests::format_for_prompt_shows_optional_params ... ok [INFO] [stdout] test registry::tests::format_for_prompt_shows_param_info ... ok [INFO] [stdout] test registry::tests::from_definitions_stores_tools ... ok [INFO] [stdout] test schema_filter::tests::accessors_return_configured_values ... ok [INFO] [stdout] test schema_filter::tests::always_on_tools_always_included ... ok [INFO] [stdout] test schema_filter::tests::apply_always_on_bypasses_gate ... ok [INFO] [stdout] test schema_filter::tests::apply_deadlock_fallback_when_all_gated ... ok [INFO] [stdout] test schema_filter::tests::apply_excludes_gated_tool ... ok [INFO] [stdout] test schema_filter::tests::apply_includes_gated_tool_when_dep_met ... ok [INFO] [stdout] test schema_filter::tests::cosine_similarity_empty_returns_zero ... ok [INFO] [stdout] test schema_filter::tests::cosine_similarity_identical_vectors ... ok [INFO] [stdout] test schema_filter::tests::cosine_similarity_mismatched_length_returns_zero ... ok [INFO] [stdout] test registry::tests::format_for_prompt_shows_invocation_tool_call ... ok [INFO] [stdout] test schema_filter::tests::cycle_detection_does_not_affect_non_cycle_tools ... ok [INFO] [stdout] test schema_filter::tests::cycle_detection_does_not_clear_ancestor_requires ... ok [INFO] [stdout] test schema_filter::tests::cycle_detection_simple_cycle ... ok [INFO] [stdout] test schema_filter::tests::empty_embeddings_includes_all_via_no_embedding_fallback ... ok [INFO] [stdout] test schema_filter::tests::cosine_similarity_orthogonal_vectors ... ok [INFO] [stdout] test schema_filter::tests::filter_tool_names_deadlock_fallback_passes_all ... ok [INFO] [stdout] test schema_filter::tests::filter_tool_names_multi_turn_unlocks_after_completion ... ok [INFO] [stdout] test schema_filter::tests::find_mentioned_tool_ids_case_insensitive ... ok [INFO] [stdout] test schema_filter::tests::find_mentioned_tool_ids_word_boundary_matches_standalone ... ok [INFO] [stdout] test schema_filter::tests::find_mentioned_tool_ids_word_boundary_no_false_positives ... ok [INFO] [stdout] test schema_filter::tests::multi_turn_chain_three_steps ... ok [INFO] [stdout] test schema_filter::tests::multi_turn_chain_two_steps ... ok [INFO] [stdout] test schema_filter::tests::multi_turn_multi_requires_both_must_complete ... ok [INFO] [stdout] test schema_filter::tests::multi_turn_preference_boost_accumulates ... ok [INFO] [stdout] test schema_filter::tests::name_mention_force_includes ... ok [INFO] [stdout] test schema_filter::tests::inclusion_reason_correctness ... ok [INFO] [stdout] test schema_filter::tests::name_mentioned_does_not_bypass_hard_gate ... ok [INFO] [stdout] test schema_filter::tests::preference_boost_none_met ... ok [INFO] [stdout] test schema_filter::tests::preference_boost_partial ... ok [INFO] [stdout] test schema_filter::tests::requirements_met_all_satisfied ... ok [INFO] [stdout] test schema_filter::tests::requirements_met_no_deps ... ok [INFO] [stdout] test schema_filter::tests::requirements_met_unconfigured_tool ... ok [INFO] [stdout] test schema_filter::tests::requirements_met_unmet ... ok [INFO] [stdout] test schema_filter::tests::preference_boost_capped_at_max ... ok [INFO] [stdout] test schema_filter::tests::short_mcp_description_auto_included ... ok [INFO] [stdout] test schema_filter::tests::top_k_exceeds_filterable_count_includes_all ... ok [INFO] [stdout] test schema_filter::tests::top_k_ranking_selects_most_similar ... ok [INFO] [stdout] test schema_filter::tests::top_k_zero_includes_all_filterable ... ok [INFO] [stdout] test schema_filter::tests::version_counter_incremented_on_recompute ... ok [INFO] [stdout] test scrape::tests::absolute_redirect_overrides_base ... ok [INFO] [stdout] test scrape::tests::attr_missing_returns_empty ... ok [INFO] [stdout] test scrape::tests::broadcast_ipv4_blocked ... ok [INFO] [stdout] test filter::declarative::tests::ls_filter_strips_noise_dirs ... ok [INFO] [stdout] test scrape::tests::check_domain_policy_allowlist_blocks_unknown ... ok [INFO] [stdout] test scrape::tests::check_domain_policy_denylist_blocks ... ok [INFO] [stdout] test scrape::tests::check_domain_policy_allowlist_permits_matching ... ok [INFO] [stdout] test scrape::tests::check_domain_policy_deny_overrides_allow ... ok [INFO] [stdout] test scrape::tests::check_domain_policy_denylist_does_not_block_other_domains ... ok [INFO] [stdout] test scrape::tests::check_domain_policy_empty_lists_allow_all ... ok [INFO] [stdout] test scrape::tests::check_domain_policy_wildcard_in_denylist ... ok [INFO] [stdout] test scrape::tests::default_extract_returns_text ... ok [INFO] [stdout] test scrape::tests::domain_matches_multi_wildcard_treated_as_exact ... ok [INFO] [stdout] test scrape::tests::domain_matches_wildcard_does_not_match_empty_label ... ok [INFO] [stdout] test scrape::tests::domain_matches_wildcard_single_subdomain ... ok [INFO] [stdout] test scrape::tests::empty_html_returns_no_results ... ok [INFO] [stdout] test scrape::tests::empty_text_skipped ... ok [INFO] [stdout] test scrape::tests::executor_blocked_url_errors ... ok [INFO] [stdout] test scrape::tests::executor_empty_text_returns_none ... ok [INFO] [stdout] test scrape::tests::executor_invalid_json_errors ... ok [INFO] [stdout] test scrape::tests::executor_localhost_url_blocked ... ok [INFO] [stdout] test scrape::tests::executor_multiple_blocks_first_blocked ... ok [INFO] [stdout] test scrape::tests::executor_no_blocks_returns_none ... ok [INFO] [stdout] test scrape::tests::executor_private_ip_blocked ... ok [INFO] [stdout] test scrape::tests::extract_attr_href ... ok [INFO] [stdout] test scrape::tests::extract_html_mode ... ok [INFO] [stdout] test scrape::tests::extract_inner_html ... ok [INFO] [stdout] test scrape::tests::domain_matches_exact ... ok [INFO] [stdout] test scrape::tests::extract_mode_attr ... ok [INFO] [stdout] test scrape::tests::extract_mode_attr_empty_name ... ok [INFO] [stdout] test scrape::tests::extract_mode_debug ... ok [INFO] [stdout] test scrape::tests::extract_mode_html ... ok [INFO] [stdout] test scrape::tests::extract_mode_unknown_defaults_to_text ... ok [INFO] [stdout] test scrape::tests::extract_mode_text ... ok [INFO] [stdout] test scrape::tests::extract_multiple_elements ... ok [INFO] [stdout] test scrape::tests::extract_multiple_blocks ... ok [INFO] [stdout] test filter::declarative::tests::terraform_plan_filter_truncates_long_output ... ok [INFO] [stdout] test scrape::tests::extract_scrape_blocks_empty_block_content ... ok [INFO] [stdout] test scrape::tests::extract_scrape_blocks_whitespace_only ... ok [INFO] [stdout] test scrape::tests::extract_text_from_html ... ok [INFO] [stdout] test scrape::tests::extract_with_limit ... ok [INFO] [stdout] test scrape::tests::extract_single_block ... ok [INFO] [stdout] test filter::tests::output_filter_registry_apply_never_panics ... ok [INFO] [stdout] test scrape::tests::fetch_audit_blocked_url_logged ... ok [INFO] [stdout] test filter::declarative::tests::make_filter_truncates_long_output ... ok [INFO] [stdout] test filter::declarative::tests::load_declarative_filters_oversized_file_uses_defaults ... ok [INFO] [stdout] test filter::tests::registry_default_has_filters ... ok [INFO] [stdout] test filter::declarative::tests::npm_install_filter_strips_warn_notice ... ok [INFO] [stdout] test filter::declarative::tests::pip_install_filter_strips_collecting_lines ... ok [INFO] [stdout] test policy::tests::policy_file_happy_path ... FAILED [INFO] [stdout] test scrape::tests::fetch_http_scheme_blocked ... ok [INFO] [stdout] test scrape::tests::fetch_localhost_blocked ... ok [INFO] [stdout] test scrape::tests::fetch_private_ip_blocked ... ok [INFO] [stdout] test policy::tests::policy_file_too_large ... FAILED [INFO] [stdout] test policy::tests::policy_file_parse_error ... FAILED [INFO] [stdout] test scrape::tests::fetch_unknown_tool_returns_none ... ok [INFO] [stdout] test scrape::tests::file_rejected ... ok [INFO] [stdout] test scrape::tests::ftp_rejected ... ok [INFO] [stdout] test scrape::tests::http_rejected ... ok [INFO] [stdout] test scrape::tests::internal_tld_blocked ... ok [INFO] [stdout] test scrape::tests::invalid_selector_errors ... ok [INFO] [stdout] test scrape::tests::invalid_url_rejected ... ok [INFO] [stdout] test scrape::tests::ipv4_mapped_ipv6_link_local_blocked ... ok [INFO] [stdout] test scrape::tests::ipv4_mapped_ipv6_private_blocked ... ok [INFO] [stdout] test scrape::tests::ipv4_mapped_ipv6_public_allowed ... ok [INFO] [stdout] test scrape::tests::ipv6_link_local_blocked ... ok [INFO] [stdout] test scrape::tests::ipv4_mapped_ipv6_loopback_blocked ... ok [INFO] [stdout] test scrape::tests::ipv6_unique_local_blocked ... ok [INFO] [stdout] test scrape::tests::is_private_host_ipv6_unspecified_is_true ... ok [INFO] [stdout] test scrape::tests::ipv6_loopback_blocked ... ok [INFO] [stdout] test scrape::tests::is_private_host_public_domain_is_false ... ok [INFO] [stdout] test scrape::tests::is_private_host_public_ipv6_is_false ... ok [INFO] [stdout] test scrape::tests::limit_zero_returns_no_results ... ok [INFO] [stdout] test scrape::tests::link_local_ip_blocked ... ok [INFO] [stdout] test scrape::tests::local_tld_blocked ... ok [INFO] [stdout] test scrape::tests::localhost_blocked ... ok [INFO] [stdout] test scrape::tests::fetch_html_404_returns_error ... ok [INFO] [stdout] test scrape::tests::log_audit_blocked_writes_to_file ... ok [INFO] [stdout] test scrape::tests::loopback_ip_blocked ... ok [INFO] [stdout] test scrape::tests::max_redirects_constant_is_three ... ok [INFO] [stdout] test scrape::tests::multiline_json_block ... ok [INFO] [stdout] test scrape::tests::nested_selector ... ok [INFO] [stdout] test scrape::tests::is_private_host_localhost_is_true ... ok [INFO] [stdout] test scrape::tests::no_audit_logger_does_not_panic_on_blocked_fetch ... ok [INFO] [stdout] test scrape::tests::no_matches_returns_message ... ok [INFO] [stdout] test scrape::tests::non_2xx_status_error_format ... ok [INFO] [stdout] test scrape::tests::non_scrape_block_ignored ... ok [INFO] [stdout] test scrape::tests::not_found_status_error_format ... ok [INFO] [stdout] test scrape::tests::parse_and_extract_multiple_selectors ... ok [INFO] [stdout] test scrape::tests::parse_attr_extract ... ok [INFO] [stdout] test scrape::tests::parse_invalid_json_errors ... ok [INFO] [stdout] test scrape::tests::parse_minimal_instruction ... ok [INFO] [stdout] test scrape::tests::parse_valid_instruction ... ok [INFO] [stdout] test scrape::tests::private_10_blocked ... ok [INFO] [stdout] test scrape::tests::private_172_blocked ... ok [INFO] [stdout] test scrape::tests::private_192_blocked ... ok [INFO] [stdout] test scrape::tests::public_domain_not_blocked ... ok [INFO] [stdout] test scrape::tests::public_ip_allowed ... ok [INFO] [stdout] test scrape::tests::redirect_chain_three_hops_all_public ... ok [INFO] [stdout] test scrape::tests::redirect_http_downgrade_rejected ... ok [INFO] [stdout] test scrape::tests::redirect_location_internal_domain_blocked ... ok [INFO] [stdout] test scrape::tests::redirect_location_private_ip_blocked ... ok [INFO] [stdout] test scrape::tests::redirect_no_location_error_message ... ok [INFO] [stdout] test scrape::tests::redirect_relative_url_resolves_correctly ... ok [INFO] [stdout] test scrape::tests::redirect_to_http_rejected ... ok [INFO] [stdout] test scrape::tests::redirect_to_private_ip_rejected_by_validate_url ... ok [INFO] [stdout] test scrape::tests::relative_redirect_relative_path ... ok [INFO] [stdout] test scrape::tests::relative_redirect_same_host_path ... ok [INFO] [stdout] test scrape::tests::resolve_ipv6_loopback_rejected ... ok [INFO] [stdout] test scrape::tests::resolve_loopback_rejected ... ok [INFO] [stdout] test scrape::tests::resolve_no_host_returns_ok ... ok [INFO] [stdout] test scrape::tests::resolve_private_10_rejected ... ok [INFO] [stdout] test scrape::tests::resolve_private_192_rejected ... ok [INFO] [stdout] test scrape::tests::scrape_instruction_debug ... ok [INFO] [stdout] test scrape::tests::subdomain_localhost_blocked ... ok [INFO] [stdout] test scrape::tests::too_many_redirects_error_message ... ok [INFO] [stdout] test scrape::tests::log_audit_success_writes_to_file ... ok [INFO] [stdout] test scrape::tests::no_blocks_returns_empty ... ok [INFO] [stdout] test scrape::tests::tool_definitions_schema_has_all_params ... ok [INFO] [stdout] test scrape::tests::tool_error_to_audit_result_blocked_maps_correctly ... ok [INFO] [stdout] test scrape::tests::tool_definitions_returns_web_scrape_and_fetch ... ok [INFO] [stdout] test scrape::tests::tool_error_to_audit_result_execution_error_maps_correctly ... ok [INFO] [stdout] test scrape::tests::tool_error_to_audit_result_timeout_maps_correctly ... ok [INFO] [stdout] test scrape::tests::unspecified_ipv4_blocked ... ok [INFO] [stdout] test scrape::tests::url_no_scheme_rejected ... ok [INFO] [stdout] test scrape::tests::unclosed_block_ignored ... ok [INFO] [stdout] test scrape::tests::url_with_port_allowed ... ok [INFO] [stdout] test scrape::tests::valid_https_url ... ok [INFO] [stdout] test scrape::tests::validate_url_data_scheme_blocked ... ok [INFO] [stdout] test scrape::tests::validate_url_javascript_scheme_blocked ... ok [INFO] [stdout] test scrape::tests::webscrape_executor_debug ... ok [INFO] [stdout] test scrape::tests::validate_url_empty_string ... ok [INFO] [stdout] test scrape::tests::with_audit_sets_logger ... ok [INFO] [stdout] test scrape::tests::web_scrape_audit_blocked_url_logged ... ok [INFO] [stdout] test scrape::tests::fetch_html_success_returns_body ... ok [INFO] [stdout] test scrape::tests::webscrape_executor_new_with_custom_config ... ok [INFO] [stdout] test search_code::tests::format_hits_strips_root_prefix ... ok [INFO] [stdout] test filter::tests::registry_metrics_updated ... ok [INFO] [stdout] test search_code::tests::search_code_requires_query_or_symbol ... ok [INFO] [stdout] test shell::tests::absolute_path_to_blocked_binary_blocked ... ok [INFO] [stdout] test search_code::tests::search_code_description_excludes_user_facts ... ok [INFO] [stdout] test shell::tests::affected_paths_no_scope ... ok [INFO] [stdout] test shell::tests::absolute_path_via_env_wrapper_blocked ... ok [INFO] [stdout] test shell::tests::affected_paths_with_scope ... ok [INFO] [stdout] test scrape::tests::fetch_execute_tool_call_end_to_end ... ok [INFO] [stdout] test shell::tests::allowed_commands_case_insensitive ... ok [INFO] [stdout] test shell::tests::allowed_commands_removes_from_default ... ok [INFO] [stdout] test shell::tests::allowed_does_not_override_explicit_block ... ok [INFO] [stdout] test shell::tests::allowed_unknown_command_ignored ... ok [INFO] [stdout] test shell::tests::allow_network_true_keeps_default_behavior ... ok [INFO] [stdout] test shell::tests::backslash_bypass_blocked ... ok [INFO] [stdout] test search_code::tests::tool_definitions_include_search_code ... ok [INFO] [stdout] test shell::tests::backtick_without_blocked_command_triggers_confirmation ... ok [INFO] [stdout] test scrape::tests::fetch_returns_body_via_mock ... ok [INFO] [stdout] test shell::tests::bash_c_bypass_not_detected_known_limitation ... ok [INFO] [stdout] test shell::tests::blocked_case_insensitive ... ok [INFO] [stdout] test shell::tests::backtick_with_blocked_command_is_blocked ... ok [INFO] [stdout] test shell::tests::blocked_infix_match ... ok [INFO] [stdout] test shell::tests::blocked_command_logged_to_audit ... ok [INFO] [stdout] test shell::tests::blocked_prefix_match ... ok [INFO] [stdout] test shell::tests::blocked_command_rejected ... ok [INFO] [stdout] test scrape::tests::fetch_html_single_redirect_followed ... ok [INFO] [stdout] test shell::tests::allow_network_false_blocks_network_commands ... ok [INFO] [stdout] test scrape::tests::fetch_html_body_too_large_returns_error ... ok [INFO] [stdout] test shell::tests::check_blocklist_allows_safe_commands ... ok [INFO] [stdout] test shell::tests::blocklist_not_bypassed_by_permissive_policy ... ok [INFO] [stdout] test shell::tests::check_blocklist_blocks_mkfs ... ok [INFO] [stdout] test shell::tests::check_blocklist_blocks_rm_rf_root ... ok [INFO] [stdout] test shell::tests::check_blocklist_blocks_process_substitution_gt ... ok [INFO] [stdout] test shell::tests::check_blocklist_blocks_process_substitution_lt ... ok [INFO] [stdout] test shell::tests::check_blocklist_blocks_subshell_backtick ... ok [INFO] [stdout] test shell::tests::auto_rollback_on_failure ... ok [INFO] [stdout] test shell::tests::check_blocklist_blocks_shutdown ... ok [INFO] [stdout] test shell::tests::check_blocklist_blocks_sudo ... ok [INFO] [stdout] test shell::tests::check_blocklist_blocks_subshell_dollar_paren ... ok [INFO] [stdout] test shell::tests::chrono_now_returns_valid_timestamp ... ok [INFO] [stdout] test shell::tests::classify_exit_0_returns_none ... ok [INFO] [stdout] test shell::tests::classify_exit_126_is_policy_blocked ... ok [INFO] [stdout] test shell::tests::classify_exit_127_is_permanent_failure ... ok [INFO] [stdout] test shell::tests::classify_exit_1_generic_returns_none ... ok [INFO] [stdout] test shell::tests::classify_exit_1_no_such_file ... ok [INFO] [stdout] test shell::tests::command_prefix_wrapper_blocked ... ok [INFO] [stdout] test shell::tests::config_deserialization ... ok [INFO] [stdout] test shell::tests::config_deserialization_defaults ... ok [INFO] [stdout] test search_code::tests::search_code_uses_grep_fallback ... ok [INFO] [stdout] test shell::tests::classify_exit_1_permission_denied_stderr ... ok [INFO] [stdout] test shell::tests::confirm_commands_still_work_without_policy ... ok [INFO] [stdout] test shell::tests::confirmation_required_returned ... ok [INFO] [stdout] test shell::tests::cancel_token_none_does_not_cancel ... ok [INFO] [stdout] test shell::tests::dd_pattern_blocks_dd_if ... ok [INFO] [stdout] test shell::tests::default_confirm_patterns_cover_eval ... ok [INFO] [stdout] test shell::tests::default_confirm_patterns_cover_here_string ... ok [INFO] [stdout] test shell::tests::default_confirm_patterns_cover_process_substitution ... ok [INFO] [stdout] test shell::tests::default_blocked_not_bypassed_by_full_autonomy_policy ... ok [INFO] [stdout] test shell::tests::effective_shell_command_full_path_shell ... ok [INFO] [stdout] test shell::tests::effective_shell_command_bash_minus_c ... ok [INFO] [stdout] test shell::tests::effective_shell_command_non_shell_returns_none ... ok [INFO] [stdout] test shell::tests::effective_shell_command_sh_minus_c ... ok [INFO] [stdout] test shell::tests::duplicate_patterns_deduped ... ok [INFO] [stdout] test shell::tests::empty_allowed_commands_changes_nothing ... ok [INFO] [stdout] test shell::tests::empty_command_not_blocked ... ok [INFO] [stdout] test shell::tests::default_confirm_patterns_loaded ... ok [INFO] [stdout] test shell::tests::effective_shell_command_no_minus_c_returns_none ... ok [INFO] [stdout] test shell::tests::empty_env_blocklist_passes_all_vars ... ok [INFO] [stdout] test scrape::tests::fetch_html_non_2xx_returns_error ... ok [INFO] [stdout] test shell::tests::default_blocked_always_active ... ok [INFO] [stdout] test shell::tests::env_prefix_wrapper_blocked ... ok [INFO] [stdout] test shell::tests::env_blocklist_preserves_safe_vars ... ok [INFO] [stdout] test shell::tests::eval_triggers_confirmation ... ok [INFO] [stdout] test shell::tests::exec_prefix_wrapper_blocked ... ok [INFO] [stdout] test shell::tests::eval_bypass_not_detected_known_limitation ... ok [INFO] [stdout] test shell::tests::custom_rollback_exit_codes ... ok [INFO] [stdout] test search_code::tests::search_code_finds_structural_symbol ... ok [INFO] [stdout] test shell::tests::execute_case_insensitive_blocked ... ok [INFO] [stdout] test shell::tests::execute_confirmed_blocked_command_rejected ... ok [INFO] [stdout] test shell::tests::env_blocklist_multiple_prefixes ... ok [INFO] [stdout] test shell::tests::env_blocklist_strips_sensitive_vars ... ok [INFO] [stdout] test shell::tests::execute_default_blocked_returns_error ... ok [INFO] [stdout] test shell::tests::env_blocklist_extra_env_still_injected ... ok [INFO] [stdout] test shell::tests::execute_confirmed_skips_confirmation ... ok [INFO] [stdout] test shell::tests::execute_bash_error_handling ... ok [INFO] [stdout] test shell::tests::execute_no_blocks_returns_none ... ok [INFO] [stdout] test shell::tests::execute_tool_call_empty_command_returns_none ... ok [INFO] [stdout] test shell::tests::execute_bash_injects_extra_env ... ok [INFO] [stdout] test shell::tests::execute_tool_call_missing_command_returns_invalid_params ... ok [INFO] [stdout] test shell::tests::execute_stderr_output ... ok [INFO] [stdout] test shell::tests::execute_empty_output ... ok [INFO] [stdout] test shell::tests::execute_tool_call_valid_command ... ok [INFO] [stdout] test shell::tests::execute_multiple_blocks_counted ... ok [INFO] [stdout] test shell::tests::execute_stdout_and_stderr_combined ... ok [INFO] [stdout] test shell::tests::extract_multiple_bash_blocks ... ok [INFO] [stdout] test shell::tests::execute_simple_command ... ok [INFO] [stdout] test shell::tests::extract_paths_detects_dotdot_standalone ... ok [INFO] [stdout] test shell::tests::extract_paths_detects_relative ... ok [INFO] [stdout] test shell::tests::extract_paths_from_code ... ok [INFO] [stdout] test shell::tests::extract_paths_handles_trailing_chars ... ok [INFO] [stdout] test shell::tests::extract_paths_quoted_path_with_spaces ... ok [INFO] [stdout] test shell::tests::extract_paths_relative_nested ... ok [INFO] [stdout] test shell::tests::extract_single_bash_block ... ok [INFO] [stdout] test shell::tests::false_positive_sudoku_not_blocked ... ok [INFO] [stdout] test shell::tests::find_blocked_backtick_wrapping ... ok [INFO] [stdout] test shell::tests::find_blocked_dollar_paren_wrapping ... ok [INFO] [stdout] test shell::tests::find_blocked_process_substitution_gt ... ok [INFO] [stdout] test shell::tests::extract_paths_does_not_match_urls ... ok [INFO] [stdout] test shell::tests::extract_paths_empty ... ok [INFO] [stdout] test shell::tests::find_confirm_command_case_insensitive ... ok [INFO] [stdout] test shell::tests::find_blocked_process_substitution_lt ... ok [INFO] [stdout] test shell::tests::find_confirm_command_matches_pattern ... ok [INFO] [stdout] test shell::tests::find_confirm_command_no_match ... ok [INFO] [stdout] test shell::tests::extract_paths_relative_without_prefix ... ok [INFO] [stdout] test shell::tests::has_traversal_detects_dotdot ... ok [INFO] [stdout] test shell::tests::extract_redirection_targets_basic ... ok [INFO] [stdout] test shell::tests::extract_paths_does_not_match_env_assignments ... ok [INFO] [stdout] test shell::tests::here_string_triggers_confirmation ... ok [INFO] [stdout] test shell::tests::here_string_with_command_substitution_not_detected_known_limitation ... ok [INFO] [stdout] test shell::tests::is_write_command_negative ... ok [INFO] [stdout] test shell::tests::here_string_with_shell_not_detected_known_limitation ... ok [INFO] [stdout] test shell::tests::hex_escape_bypass_blocked ... ok [INFO] [stdout] test shell::tests::is_write_command_positive ... ok [INFO] [stdout] test shell::tests::mixed_case_user_patterns_deduped ... ok [INFO] [stdout] test shell::tests::nc_trailing_space_avoids_ncp ... ok [INFO] [stdout] test shell::tests::mkfs_pattern_blocks_variants ... ok [INFO] [stdout] test shell::tests::network_exfiltration_blocked ... ok [INFO] [stdout] test shell::tests::no_blocks_returns_none ... ok [INFO] [stdout] test shell::tests::multiline_command_blocked ... ok [INFO] [stdout] test shell::tests::nohup_prefix_wrapper_blocked ... ok [INFO] [stdout] test shell::tests::octal_escape_bypass_blocked ... ok [INFO] [stdout] test shell::tests::output_process_substitution_detected_by_subshell_extraction ... ok [INFO] [stdout] test shell::tests::output_process_substitution_with_blocked_command_is_blocked ... ok [INFO] [stdout] test shell::tests::partial_match_accepted_tradeoff ... ok [INFO] [stdout] test shell::tests::pipe_chain_blocked ... ok [INFO] [stdout] test shell::tests::policy_ask_requires_confirmation ... ok [INFO] [stdout] test shell::tests::policy_deny_blocks_command ... ok [INFO] [stdout] test shell::tests::process_substitution_detected_by_subshell_extraction ... ok [INFO] [stdout] test shell::tests::process_substitution_with_blocked_command_is_blocked ... ok [INFO] [stdout] test shell::tests::quote_split_bypass_blocked ... ok [INFO] [stdout] test shell::tests::no_rollback_on_success ... ok [INFO] [stdout] test shell::tests::sandbox_allows_cwd_by_default ... ok [INFO] [stdout] test shell::tests::safe_command_passes ... ok [INFO] [stdout] test shell::tests::sandbox_no_absolute_paths_passes ... ok [INFO] [stdout] test shell::tests::sandbox_rejects_bare_dotdot ... ok [INFO] [stdout] test shell::tests::sandbox_rejects_dotdot_traversal ... ok [INFO] [stdout] test shell::tests::sandbox_rejects_path_outside_allowed ... ok [INFO] [stdout] test shell::tests::sandbox_rejects_absolute_with_embedded_dotdot ... ok [INFO] [stdout] test shell::tests::sandbox_rejects_relative_dotslash_outside ... ok [INFO] [stdout] test shell::tests::no_rollback_on_exit_code_1 ... ok [INFO] [stdout] test shell::tests::semicolon_chain_blocked ... ok [INFO] [stdout] test shell::tests::policy_allow_skips_checks ... ok [INFO] [stdout] test shell::tests::shell_executor_set_skill_env_injects_vars ... ok [INFO] [stdout] test shell::tests::execute_bash_command_not_found ... ok [INFO] [stdout] test shell::tests::rollback_on_exit_code_2 ... ok [INFO] [stdout] test shell::tests::shell_output_envelope_nonzero_exit_code ... ok [INFO] [stdout] test scrape::tests::fetch_html_redirect_no_location_returns_error ... ok [INFO] [stdout] test shell::tests::shell_output_envelope_truncated_flag_set_when_filter_shortens_output ... ok [INFO] [stdout] test shell::tests::subshell_with_blocked_command_is_blocked ... ok [INFO] [stdout] test shell::tests::system_control_blocked ... ok [INFO] [stdout] test scrape::tests::executor_unreachable_host_returns_error ... ok [INFO] [stdout] test shell::tests::shell_output_envelope_in_tool_output_raw_response ... ok [INFO] [stdout] test shell::tests::tool_definitions_returns_bash ... ok [INFO] [stdout] test shell::tests::tool_definitions_schema_has_command_param ... ok [INFO] [stdout] test shell::tests::stderr_output_logged_as_audit_error ... ok [INFO] [stdout] test shell::tests::transaction_snapshot_empty_paths ... ok [INFO] [stdout] test shell::tests::transaction_snapshot_new_file_rollback ... ok [INFO] [stdout] test shell::tests::shell_output_envelope_separates_streams ... ok [INFO] [stdout] test shell::tests::transaction_snapshot_size_limit_exceeded ... ok [INFO] [stdout] test shell::tests::snapshot_failure_does_not_block ... ok [INFO] [stdout] test shell::tests::transaction_snapshot_size_limit_within_budget ... ok [INFO] [stdout] test shell::tests::transactional_false_skips_snapshot ... ok [INFO] [stdout] test shell::tests::transaction_snapshot_size_limit_zero_unlimited ... ok [INFO] [stdout] test shell::tests::user_blocked_additive ... ok [INFO] [stdout] test shell::tests::user_pattern_stored_lowercase ... ok [INFO] [stdout] test shell::tests::variable_expansion_bypass_not_detected_known_limitation ... ok [INFO] [stdout] test shell::tests::with_audit_attaches_logger ... ok [INFO] [stdout] test tool_filter::tests::allowed_tool_call_passes_through ... ok [INFO] [stdout] test tool_filter::tests::suppressed_tool_call_returns_none ... ok [INFO] [stdout] test tool_filter::tests::suppressed_tools_hidden_from_definitions ... ok [INFO] [stdout] test trust_gate::tests::bash_with_explicit_allow_rule_succeeds ... ok [INFO] [stdout] test trust_gate::tests::blocked_denies_everything ... ok [INFO] [stdout] test trust_gate::tests::bash_with_explicit_deny_rule_blocked ... ok [INFO] [stdout] test trust_gate::tests::blocked_denies_execute ... ok [INFO] [stdout] test trust_gate::tests::blocked_denies_execute_confirmed ... ok [INFO] [stdout] test trust_gate::tests::is_quarantine_denied_exact_match ... ok [INFO] [stdout] test trust_gate::tests::is_quarantine_denied_read_only_tools_allowed ... ok [INFO] [stdout] test trust_gate::tests::is_quarantine_denied_substring_not_suffix ... ok [INFO] [stdout] test trust_gate::tests::is_quarantine_denied_suffix_match_mcp_write ... ok [INFO] [stdout] test trust_gate::tests::is_quarantine_denied_suffix_mcp_bash ... ok [INFO] [stdout] test trust_gate::tests::is_quarantine_denied_suffix_mcp_delete_path ... ok [INFO] [stdout] test trust_gate::tests::is_quarantine_denied_suffix_mcp_fetch ... ok [INFO] [stdout] test trust_gate::tests::is_quarantine_denied_suffix_mcp_memory_save ... ok [INFO] [stdout] test trust_gate::tests::mcp_tool_ids_handle_shared_arc ... ok [INFO] [stdout] test trust_gate::tests::mcp_tool_supervised_no_rules_allows ... ok [INFO] [stdout] test trust_gate::tests::is_tool_retryable_delegated_to_inner ... ok [INFO] [stdout] test trust_gate::tests::policy_deny_overrides_trust ... ok [INFO] [stdout] test trust_gate::tests::quarantined_allows_file_read ... ok [INFO] [stdout] test trust_gate::tests::quarantined_allows_mcp_read_file ... ok [INFO] [stdout] test trust_gate::tests::quarantined_allows_read ... ok [INFO] [stdout] test shell::tests::extract_redirection_targets_append_and_stderr ... ok [INFO] [stdout] test shell::tests::unclosed_block_ignored ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_bash ... ok [INFO] [stdout] test trust_gate::tests::quarantined_allows_unregistered_tool_not_in_denied_list ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_delete_path ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_mcp_confirmed_path ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_edit ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_fetch ... ok [INFO] [stdout] test shell::tests::transaction_snapshot_capture_and_rollback ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_mcp_bash_tool ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_mcp_memory_save ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_mcp_write_tool ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_registered_mcp_tool_novel_name ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_memory_save ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_registered_mcp_tool_execute ... ok [INFO] [stdout] test trust_gate::tests::readonly_denies_mcp_tool_not_in_allowlist ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_web_scrape ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_write ... ok [INFO] [stdout] test trust_gate::tests::set_effective_trust_interior_mutability ... ok [INFO] [stdout] test trust_gate::tests::set_skill_env_forwarded_to_inner ... ok [INFO] [stdout] test trust_gate::tests::trusted_allows_all ... ok [INFO] [stdout] test trust_gate::tests::trusted_allows_registered_mcp_tool ... ok [INFO] [stdout] test trust_gate::tests::trusted_allows_execute ... ok [INFO] [stdout] test trust_gate::tests::verified_with_allow_policy_succeeds ... ok [INFO] [stdout] test utility::tests::cost_increases_with_token_consumption ... ok [INFO] [stdout] test utility::tests::explicit_request_case_insensitive ... ok [INFO] [stdout] test utility::tests::explicit_request_call_the_tool ... ok [INFO] [stdout] test trust_gate::tests::quarantined_denies_mcp_tool_via_confirmed_path ... ok [INFO] [stdout] test utility::tests::explicit_request_no_match_plain_message ... ok [INFO] [stdout] test utility::tests::explicit_request_no_match_tool_mentioned_without_invocation ... ok [INFO] [stdout] test utility::tests::explicit_request_run_the_tool ... ok [INFO] [stdout] test utility::tests::explicit_request_use_the_tool ... ok [INFO] [stdout] test utility::tests::explicit_request_using_a_tool ... ok [INFO] [stdout] test utility::tests::explicit_request_invoke_the_tool ... ok [INFO] [stdout] test shell::tests::ignore_non_bash_blocks ... ok [INFO] [stdout] test utility::tests::is_exempt_empty_list_returns_false ... ok [INFO] [stdout] test utility::tests::is_exempt_matches_case_insensitively ... ok [INFO] [stdout] test utility::tests::memory_tool_has_higher_gain_than_scrape ... ok [INFO] [stdout] test utility::tests::none_score_executes_when_disabled ... ok [INFO] [stdout] test utility::tests::none_score_fail_closed_when_enabled ... ok [INFO] [stdout] test utility::tests::recommend_action_below_threshold_with_prior_calls_verifies ... ok [INFO] [stdout] test utility::tests::recommend_action_budget_exhausted_stops ... ok [INFO] [stdout] test utility::tests::recommend_action_default_responds ... ok [INFO] [stdout] test utility::tests::recommend_action_disabled_scorer_always_tool_call ... ok [INFO] [stdout] test utility::tests::recommend_action_high_gain_above_threshold_tool_call ... ok [INFO] [stdout] test utility::tests::recommend_action_redundant_responds ... ok [INFO] [stdout] test utility::tests::recommend_action_uncertain_retrieves ... ok [INFO] [stdout] test utility::tests::recommend_action_user_requested_always_tool_call ... ok [INFO] [stdout] test utility::tests::explicit_request_execute_the_tool ... ok [INFO] [stdout] test utility::tests::threshold_one_blocks_all_calls ... ok [INFO] [stdout] test utility::tests::redundant_call_penalized ... ok [INFO] [stdout] test utility::tests::threshold_zero_all_calls_pass ... ok [INFO] [stdout] test utility::tests::uncertainty_decreases_with_call_count ... ok [INFO] [stdout] test utility::tests::user_requested_always_executes ... ok [INFO] [stdout] test utility::tests::validate_accepts_default ... ok [INFO] [stdout] test utility::tests::validate_rejects_nan_weights ... ok [INFO] [stdout] test utility::tests::validate_rejects_negative_weights ... ok [INFO] [stdout] test utility::tests::zero_token_budget_zeroes_cost ... ok [INFO] [stdout] test verifier::tests::allow_clean_args ... ok [INFO] [stdout] test verifier::tests::allow_localhost_in_non_url_field ... ok [INFO] [stdout] test verifier::tests::allow_non_shell_tool ... ok [INFO] [stdout] test verifier::tests::allow_normal_command ... ok [INFO] [stdout] test verifier::tests::allow_rm_rf_in_allowed_path ... ok [INFO] [stdout] test verifier::tests::allow_sql_discussion_in_query_field ... ok [INFO] [stdout] test verifier::tests::allow_sql_or_pattern_in_query_field ... ok [INFO] [stdout] test shell::tests::cancel_token_kills_child_process ... ok [INFO] [stdout] test utility::tests::first_call_passes_default_threshold ... ok [INFO] [stdout] test verifier::tests::array_args_normalization ... ok [INFO] [stdout] test verifier::tests::block_dd_dev_zero ... ok [INFO] [stdout] test verifier::tests::allow_union_select_in_query_field ... ok [INFO] [stdout] test verifier::tests::block_extra_pattern ... ok [INFO] [stdout] test verifier::tests::block_mkfs ... ok [INFO] [stdout] test verifier::tests::block_drop_table ... ok [INFO] [stdout] test verifier::tests::block_rm_rf_root ... ok [INFO] [stdout] test verifier::tests::block_path_traversal ... ok [INFO] [stdout] test verifier::tests::block_rm_rf_when_not_in_allowed_path ... ok [INFO] [stdout] test verifier::tests::block_sql_injection_in_non_query_field ... ok [INFO] [stdout] test verifier::tests::block_union_select_in_non_query_field ... ok [INFO] [stdout] test verifier::tests::chain_first_block_wins ... ok [INFO] [stdout] test utility::tests::recommend_action_none_score_enabled_stops ... ok [INFO] [stdout] test verifier::tests::custom_shell_tool_name_blocked ... ok [INFO] [stdout] test verifier::tests::default_shell_tools_contains_bash_shell_terminal ... ok [INFO] [stdout] test verifier::tests::double_nested_bash_c_blocked ... ok [INFO] [stdout] test verifier::tests::env_prefix_stripping_blocked ... ok [INFO] [stdout] test verifier::tests::exec_prefix_stripping_blocked ... ok [INFO] [stdout] test verifier::tests::allow_localhost_when_allowlisted ... ok [INFO] [stdout] test verifier::tests::chain_warn_continues ... ok [INFO] [stdout] test verifier::tests::firewall_blocks_etc_passwd ... ok [INFO] [stdout] test verifier::tests::firewall_blocks_path_traversal ... ok [INFO] [stdout] test verifier::tests::firewall_blocks_aws_env_var ... ok [INFO] [stdout] test verifier::tests::firewall_allows_normal_path ... ok [INFO] [stdout] test verifier::tests::firewall_config_default_deserialization ... ok [INFO] [stdout] test verifier::tests::firewall_custom_blocked_env_var ... ok [INFO] [stdout] test verifier::tests::firewall_custom_blocked_path ... ok [INFO] [stdout] test verifier::tests::firewall_exempt_tool_bypasses_check ... ok [INFO] [stdout] test verifier::tests::firewall_invalid_glob_is_skipped ... ok [INFO] [stdout] test verifier::tests::firewall_blocks_ssh_key ... ok [INFO] [stdout] test verifier::tests::fork_bomb_blocked ... ok [INFO] [stdout] test verifier::tests::path_traversal_not_allowed_via_dotdot ... ok [INFO] [stdout] test verifier::tests::reg_2191_case_insensitive_url_match_allows_fetch ... ok [INFO] [stdout] test verifier::tests::firewall_blocks_zeph_env_var ... ok [INFO] [stdout] test verifier::tests::reg_2191_disabled_verifier_allows_all ... ok [INFO] [stdout] test verifier::tests::reg_2191_empty_url_set_always_blocks_fetch ... ok [INFO] [stdout] test verifier::tests::reg_2191_mcp_fetch_suffix_tool_blocked_with_empty_session ... ok [INFO] [stdout] test verifier::tests::reg_2191_missing_url_field_allows_fetch ... ok [INFO] [stdout] test verifier::tests::reg_2191_hallucinated_api_endpoint_blocked_with_empty_session ... ok [INFO] [stdout] test verifier::tests::reg_2191_reverse_prefix_match_allows_fetch ... ok [INFO] [stdout] test verifier::tests::reg_2191_web_scrape_hallucinated_url_blocked ... ok [INFO] [stdout] test verifier::tests::sh_c_wrapping_normalization ... ok [INFO] [stdout] test verifier::tests::reg_2191_user_provided_url_allows_fetch ... ok [INFO] [stdout] test verifier::tests::reg_2191_different_domain_blocked ... ok [INFO] [stdout] test verifier::tests::allowed_path_with_dotdot_stays_in_allowed ... ok [INFO] [stdout] test verifier::tests::ssrf_triggered_for_bare_localhost_no_port ... ok [INFO] [stdout] test verifier::tests::url_grounding_allows_non_guarded_tool ... ok [INFO] [stdout] test verifier::tests::url_grounding_allows_prefix_match ... ok [INFO] [stdout] test verifier::tests::ssrf_triggered_for_localhost_with_path ... ok [INFO] [stdout] test verifier::tests::terminal_tool_name_blocked_by_default ... ok [INFO] [stdout] test verifier::tests::url_grounding_allows_user_provided_url ... ok [INFO] [stdout] test verifier::tests::url_grounding_blocks_hallucinated_url ... ok [INFO] [stdout] test verifier::tests::url_grounding_blocks_when_no_user_urls_at_all ... ok [INFO] [stdout] test verifier::tests::url_grounding_allows_web_scrape_with_provided_url ... ok [INFO] [stdout] test verifier::tests::url_grounding_guards_fetch_suffix_tool ... ok [INFO] [stdout] test verifier::tests::warn_on_localhost_url_field ... ok [INFO] [stdout] test verifier::tests::warn_on_private_ip_url_field ... ok [INFO] [stdout] test shell::tests::shell_executor_cancel_returns_cancelled_error ... ok [INFO] [stdout] test utility::tests::clear_resets_redundancy ... ok [INFO] [stdout] test utility::tests::disabled_returns_none ... ok [INFO] [stdout] test verifier::tests::ssrf_not_triggered_for_embedded_localhost_in_query_param ... ok [INFO] [stdout] test verifier::tests::block_rm_rf_unicode_homoglyph ... ok [INFO] [stdout] test shell::tests::snapshot_failure_aborts_when_required ... FAILED [INFO] [stdout] test filter::declarative::tests::declarative_filter_never_panics_strip_noise ... ok [INFO] [stdout] test scrape::tests::fetch_html_three_redirects_allowed ... ok [INFO] [stdout] test scrape::tests::fetch_html_four_redirects_rejected ... ok [INFO] [stdout] test shell::tests::cancel_kills_child_process_group ... ok [INFO] [stdout] test shell::tests::timeout_enforced ... ok [INFO] [stdout] test shell::tests::timeout_logged_as_audit_timeout_not_error ... ok [INFO] [stdout] test filter::declarative::tests::declarative_filter_never_panics_dedup ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- policy::tests::policy_file_happy_path stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'policy::tests::policy_file_happy_path' (505) panicked at src/policy.rs:1067:46: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: ReadOnlyFilesystem, error: PathError { path: "/opt/rustwide/workdir/.tmpwBZywL", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x605530db27da - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x605530db27da - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x605530db27da - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x605530db27da - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x605530dccb9a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x605530dccb9a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x605530db7fe2 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x605530db7fe2 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x605530d8a36f - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x605530d8a36f - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x605530da7459 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x6055307fb73c - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x6055307fb73c - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x605530da76d2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x605530da76d2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x605530d8a428 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x605530d7f079 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x605530d8b6cd - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x605530dcd40c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x605530dcd152 - core[fa0eadad68403074]::result::unwrap_failed [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x60552fc6bea0 - >::unwrap [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x60552fc6bea0 - zeph_tools[7f4f9d2cf268e459]::policy::tests::policy_file_happy_path [INFO] [stdout] at /opt/rustwide/workdir/src/policy.rs:1067:46 [INFO] [stdout] 22: 0x60552fc55857 - zeph_tools[7f4f9d2cf268e459]::policy::tests::policy_file_happy_path::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/policy.rs:1065:32 [INFO] [stdout] 23: 0x60552fb68326 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x6055307ef81b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x6055307ef81b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x6055307fc20b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x6055307fc20b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x6055307fc20b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x6055307fc20b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x6055307fc20b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x6055307fc20b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x6055307fc20b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x6055307f6664 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x6055307f6664 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x6055307fee12 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x6055307fee12 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x6055307fee12 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x6055307fee12 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x6055307fee12 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x6055307fee12 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x6055307fee12 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x605530db147f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 43: 0x605530db147f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7f5257052aa4 - [INFO] [stdout] 45: 0x7f52570dfa64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- policy::tests::policy_file_too_large stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'policy::tests::policy_file_too_large' (510) panicked at src/policy.rs:1096:46: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: ReadOnlyFilesystem, error: PathError { path: "/opt/rustwide/workdir/.tmpx8lm2l", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x605530db27da - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x605530db27da - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x605530db27da - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x605530db27da - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x605530dccb9a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x605530dccb9a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x605530db7fe2 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x605530db7fe2 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x605530d8a36f - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x605530d8a36f - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x605530da7459 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x6055307fb73c - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x6055307fb73c - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x605530da76d2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x605530da76d2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x605530d8a428 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x605530d7f079 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x605530d8b6cd - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x605530dcd40c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x605530dcd152 - core[fa0eadad68403074]::result::unwrap_failed [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x60552fc6b850 - >::unwrap [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x60552fc6b850 - zeph_tools[7f4f9d2cf268e459]::policy::tests::policy_file_too_large [INFO] [stdout] at /opt/rustwide/workdir/src/policy.rs:1096:46 [INFO] [stdout] 22: 0x60552fc55827 - zeph_tools[7f4f9d2cf268e459]::policy::tests::policy_file_too_large::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/policy.rs:1094:31 [INFO] [stdout] 23: 0x60552fb682e6 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x6055307ef81b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x6055307ef81b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x6055307fc20b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x6055307fc20b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x6055307fc20b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x6055307fc20b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x6055307fc20b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x6055307fc20b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x6055307fc20b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x6055307f6664 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x6055307f6664 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x6055307fee12 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x6055307fee12 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x6055307fee12 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x6055307fee12 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x6055307fee12 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x6055307fee12 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x6055307fee12 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x605530db147f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 43: 0x605530db147f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7f5257052aa4 - [INFO] [stdout] 45: 0x7f52570dfa64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- policy::tests::policy_file_parse_error stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'policy::tests::policy_file_parse_error' (508) panicked at src/policy.rs:1137:46: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: ReadOnlyFilesystem, error: PathError { path: "/opt/rustwide/workdir/.tmprCJwRS", err: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } } } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x605530db27da - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x605530db27da - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x605530db27da - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x605530db27da - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x605530dccb9a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x605530dccb9a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x605530db7fe2 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x605530db7fe2 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x605530d8a36f - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x605530d8a36f - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x605530da7459 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x6055307fb73c - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x6055307fb73c - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x605530da76d2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x605530da76d2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x605530d8a428 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x605530d7f079 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x605530d8b6cd - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x605530dcd40c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x605530dcd152 - core[fa0eadad68403074]::result::unwrap_failed [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x60552fc6c86d - >::unwrap [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x60552fc6c86d - zeph_tools[7f4f9d2cf268e459]::policy::tests::policy_file_parse_error [INFO] [stdout] at /opt/rustwide/workdir/src/policy.rs:1137:46 [INFO] [stdout] 22: 0x60552fc558b7 - zeph_tools[7f4f9d2cf268e459]::policy::tests::policy_file_parse_error::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/policy.rs:1135:33 [INFO] [stdout] 23: 0x60552fb683a6 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x6055307ef81b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x6055307ef81b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x6055307fc20b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x6055307fc20b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x6055307fc20b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x6055307fc20b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x6055307fc20b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x6055307fc20b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x6055307fc20b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x6055307f6664 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x6055307f6664 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x6055307fee12 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x6055307fee12 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x6055307fee12 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x6055307fee12 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x6055307fee12 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x6055307fee12 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x6055307fee12 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x605530db147f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 43: 0x605530db147f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7f5257052aa4 - [INFO] [stdout] 45: 0x7f52570dfa64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- shell::tests::snapshot_failure_aborts_when_required stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'shell::tests::snapshot_failure_aborts_when_required' (925) panicked at src/shell/tests.rs:2091:5: [INFO] [stdout] expected SnapshotFailed, got Ok(Some(ToolOutput { tool_name: ToolName("bash"), summary: "$ cp /tmp/.tmp2xsVBY/locked.txt /tmp/.tmp2xsVBY/locked.txt.bak\n(no output)", blocks_executed: 1, filter_stats: None, diff: None, streamed: false, terminal_id: None, locations: None, raw_response: Some(Object {"exit_code": Number(0), "stderr": String(""), "stdout": String(""), "truncated": Bool(false)}), claim_source: Some(Shell) })) [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x605530db27da - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x605530db27da - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x605530db27da - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x605530db27da - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x605530dccb9a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x605530dccb9a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x605530db7fe2 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x605530db7fe2 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x605530d8a36f - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x605530d8a36f - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x605530da7459 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x6055307fb73c - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x6055307fb73c - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x605530da76d2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x605530da76d2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x605530d8a428 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x605530d7f079 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x605530d8b6cd - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x605530dcd40c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x60552fcb962f - zeph_tools[7f4f9d2cf268e459]::shell::tests::snapshot_failure_aborts_when_required::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/shell/tests.rs:2091:5 [INFO] [stdout] 20: 0x60552fd55272 - > as core[fa0eadad68403074]::future::future::Future>::poll [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/future/future.rs:133:9 [INFO] [stdout] 21: 0x60552fd5532d - >> as core[fa0eadad68403074]::future::future::Future>::poll [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/future/future.rs:133:9 [INFO] [stdout] 22: 0x60552fd2928d - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:778:70 [INFO] [stdout] 23: 0x60552fd28fab - tokio[9172386f1711fa2]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/task/coop/mod.rs:167:5 [INFO] [stdout] 24: 0x60552fd28fab - tokio[9172386f1711fa2]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/task/coop/mod.rs:133:5 [INFO] [stdout] 25: 0x60552fd28fab - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:778:25 [INFO] [stdout] 26: 0x60552fd0a280 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:451:19 [INFO] [stdout] 27: 0x60552fd237ad - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:777:44 [INFO] [stdout] 28: 0x60552fd21f54 - ::enter::<::block_on>>>::{closure#0}, core[fa0eadad68403074]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:865:68 [INFO] [stdout] 29: 0x60552fbb230b - >::set::<::enter<::block_on>>>::{closure#0}, core[fa0eadad68403074]::option::Option<()>>::{closure#0}, (alloc[49b8922c36ca62de]::boxed::Box, core[fa0eadad68403074]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 30: 0x60552fd69119 - tokio[9172386f1711fa2]::runtime::context::set_scheduler::<(alloc[49b8922c36ca62de]::boxed::Box, core[fa0eadad68403074]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[fa0eadad68403074]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context.rs:181:38 [INFO] [stdout] 31: 0x60552fd58af2 - >::try_with::, core[fa0eadad68403074]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[fa0eadad68403074]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[49b8922c36ca62de]::boxed::Box, core[fa0eadad68403074]::option::Option<()>)> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 32: 0x60552fd582de - >::with::, core[fa0eadad68403074]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[fa0eadad68403074]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[49b8922c36ca62de]::boxed::Box, core[fa0eadad68403074]::option::Option<()>)> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 33: 0x60552fd5ca1d - tokio[9172386f1711fa2]::runtime::context::set_scheduler::<(alloc[49b8922c36ca62de]::boxed::Box, core[fa0eadad68403074]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[fa0eadad68403074]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context.rs:181:17 [INFO] [stdout] 34: 0x60552fd12780 - ::enter::<::block_on>>>::{closure#0}, core[fa0eadad68403074]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:865:27 [INFO] [stdout] 35: 0x60552fd12f16 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:765:24 [INFO] [stdout] 36: 0x60552fd21260 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:205:33 [INFO] [stdout] 37: 0x60552fb57883 - tokio[9172386f1711fa2]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 38: 0x60552fd03e11 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/scheduler/current_thread/mod.rs:193:9 [INFO] [stdout] 39: 0x60552f954294 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/runtime.rs:371:52 [INFO] [stdout] 40: 0x60552f95460f - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/runtime.rs:345:18 [INFO] [stdout] 41: 0x60552fcedf60 - zeph_tools[7f4f9d2cf268e459]::shell::tests::snapshot_failure_aborts_when_required [INFO] [stdout] at /opt/rustwide/workdir/src/shell/tests.rs:2097:6 [INFO] [stdout] 42: 0x60552fca52a7 - zeph_tools[7f4f9d2cf268e459]::shell::tests::snapshot_failure_aborts_when_required::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/shell/tests.rs:2055:49 [INFO] [stdout] 43: 0x60552fb66446 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 44: 0x6055307ef81b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 45: 0x6055307ef81b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 46: 0x6055307fc20b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 47: 0x6055307fc20b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 48: 0x6055307fc20b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 49: 0x6055307fc20b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 50: 0x6055307fc20b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 51: 0x6055307fc20b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 52: 0x6055307fc20b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 53: 0x6055307f6664 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 54: 0x6055307f6664 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 55: 0x6055307fee12 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 56: 0x6055307fee12 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 57: 0x6055307fee12 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 58: 0x6055307fee12 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 59: 0x6055307fee12 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 60: 0x6055307fee12 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 61: 0x6055307fee12 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 62: 0x605530db147f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 63: 0x605530db147f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 64: 0x7f5257052aa4 - [INFO] [stdout] 65: 0x7f52570dfa64 - clone [INFO] [stdout] 66: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] policy::tests::policy_file_happy_path [INFO] [stdout] policy::tests::policy_file_parse_error [INFO] [stdout] policy::tests::policy_file_too_large [INFO] [stdout] shell::tests::snapshot_failure_aborts_when_required [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1009 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.07s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] running `Command { std: "docker" "inspect" "3e1a92f60a539b0170c2067e1b950e053e79e6f3f0612f8755db10f0a4e624af", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3e1a92f60a539b0170c2067e1b950e053e79e6f3f0612f8755db10f0a4e624af", kill_on_drop: false }` [INFO] [stdout] 3e1a92f60a539b0170c2067e1b950e053e79e6f3f0612f8755db10f0a4e624af