[INFO] fetching crate shellfirm 0.3.9... [INFO] testing shellfirm-0.3.9 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate shellfirm 0.3.9 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate shellfirm 0.3.9 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate shellfirm 0.3.9 [INFO] tweaked toml for crates.io crate shellfirm 0.3.9 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate shellfirm 0.3.9 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 shellfirm 0.3.9 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 serde_regex v1.1.0 [INFO] [stderr] Downloaded security-framework-sys v2.16.0 [INFO] [stderr] Downloaded tree-fs v0.2.1 [INFO] [stderr] Downloaded native-tls v0.2.16 [INFO] [stderr] Downloaded shell-words v1.1.1 [INFO] [stderr] Downloaded filedescriptor v0.8.3 [INFO] [stderr] Downloaded requestty-ui v0.6.3 [INFO] [stderr] Downloaded serial2 v0.2.34 [INFO] [stderr] Downloaded exitcode v1.1.2 [INFO] [stderr] Downloaded shared_library v0.1.9 [INFO] [stderr] Downloaded portable-pty v0.9.0 [INFO] [stderr] Downloaded winsplit v0.1.0 [INFO] [stderr] Downloaded security-framework v3.6.0 [INFO] [stderr] Downloaded requestty v0.6.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 2a2c6d982b32f409172067ea839a9ad41842f538f2e832d3fae04b5f92e205bc [INFO] running `Command { std: "docker" "start" "-a" "2a2c6d982b32f409172067ea839a9ad41842f538f2e832d3fae04b5f92e205bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2a2c6d982b32f409172067ea839a9ad41842f538f2e832d3fae04b5f92e205bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2a2c6d982b32f409172067ea839a9ad41842f538f2e832d3fae04b5f92e205bc", kill_on_drop: false }` [INFO] [stdout] 2a2c6d982b32f409172067ea839a9ad41842f538f2e832d3fae04b5f92e205bc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 4905a805b1e1dbc7c7e207bc225a4191ae02ee0d1a2d87ef7eae4bc4bf50c3c4 [INFO] running `Command { std: "docker" "start" "-a" "4905a805b1e1dbc7c7e207bc225a4191ae02ee0d1a2d87ef7eae4bc4bf50c3c4", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling native-tls v0.2.16 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling syn v2.0.115 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling clap_builder v4.5.58 [INFO] [stderr] Compiling nix v0.31.1 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling textwrap v0.15.2 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling clap v4.5.58 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling clap_complete v4.5.66 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling shellfirm v0.3.9 (/opt/rustwide/workdir) [INFO] [stderr] Compiling console v0.16.2 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling clap_complete_nushell v4.5.10 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling serde_regex v1.1.0 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling uuid v1.21.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling exitcode v1.1.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling requestty-ui v0.6.3 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling requestty v0.6.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 47s [INFO] running `Command { std: "docker" "inspect" "4905a805b1e1dbc7c7e207bc225a4191ae02ee0d1a2d87ef7eae4bc4bf50c3c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4905a805b1e1dbc7c7e207bc225a4191ae02ee0d1a2d87ef7eae4bc4bf50c3c4", kill_on_drop: false }` [INFO] [stdout] 4905a805b1e1dbc7c7e207bc225a4191ae02ee0d1a2d87ef7eae4bc4bf50c3c4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 0c74dac4db8eef1557a239fe96f98737b510efbefac915d68a88cda795bcad42 [INFO] running `Command { std: "docker" "start" "-a" "0c74dac4db8eef1557a239fe96f98737b510efbefac915d68a88cda795bcad42", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling serde_regex v1.1.0 [INFO] [stderr] Compiling insta v1.46.3 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling tree-fs v0.2.1 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling shellfirm v0.3.9 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `checks` is never read [INFO] [stdout] --> tests/decision_matrix.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 49 | struct ScenarioPolicy { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | checks: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScenarioPolicy` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 57.41s [INFO] running `Command { std: "docker" "inspect" "0c74dac4db8eef1557a239fe96f98737b510efbefac915d68a88cda795bcad42", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0c74dac4db8eef1557a239fe96f98737b510efbefac915d68a88cda795bcad42", kill_on_drop: false }` [INFO] [stdout] 0c74dac4db8eef1557a239fe96f98737b510efbefac915d68a88cda795bcad42 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 183f996527fbd63e4f35861cdbba7e2268402f13a2eb061e1627993d36f3f512 [INFO] running `Command { std: "docker" "start" "-a" "183f996527fbd63e4f35861cdbba7e2268402f13a2eb061e1627993d36f3f512", kill_on_drop: false }` [INFO] [stderr] warning: field `checks` is never read [INFO] [stderr] --> tests/decision_matrix.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 49 | struct ScenarioPolicy { [INFO] [stderr] | -------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 55 | checks: Vec, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ScenarioPolicy` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `shellfirm` (test "decision_matrix") generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.45s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shellfirm-48afd63af7d71c9b) [INFO] [stdout] [INFO] [stdout] running 144 tests [INFO] [stdout] test agent::tests::test_agent_prompter_denies_when_denied ... ok [INFO] [stdout] test agent::tests::test_agent_prompter_passes_non_denied ... ok [INFO] [stdout] test agent::tests::test_risk_assessment_serializes_to_json ... ok [INFO] [stdout] test audit::tests::test_clear_log ... ok [INFO] [stdout] test audit::tests::test_log_and_read ... ok [INFO] [stdout] test audit::tests::test_log_command_with_pipe_characters ... ok [INFO] [stdout] test audit::tests::test_now_timestamp_format ... ok [INFO] [stdout] test audit::tests::test_read_nonexistent_log ... ok [INFO] [stdout] test blast_radius::tests::test_blast_scope_ordering ... ok [INFO] [stdout] test blast_radius::tests::test_compute_for_matches_empty ... ok [INFO] [stdout] test blast_radius::tests::test_count_lines ... ok [INFO] [stdout] test blast_radius::tests::test_docker_stop_all ... ok [INFO] [stdout] test blast_radius::tests::test_docker_system_prune ... ok [INFO] [stdout] test blast_radius::tests::test_extract_git_push_branch ... ok [INFO] [stdout] test blast_radius::tests::test_format_count ... ok [INFO] [stdout] test blast_radius::tests::test_format_number ... ok [INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete ... ok [INFO] [stdout] test audit::tests::test_cancelled_outcome_serialization ... ok [INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_hidden_slash ... ok [INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_hidden_slash_middle ... ok [INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_no_false_positive_on_path ... ok [INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_no_match ... ok [INFO] [stdout] test blast_radius::tests::test_git_clean_force ... ok [INFO] [stdout] test blast_radius::tests::test_git_delete_all ... ok [INFO] [stdout] test blast_radius::tests::test_git_filter_branch ... ok [INFO] [stdout] test blast_radius::tests::test_git_force_checkout ... ok [INFO] [stdout] test blast_radius::tests::test_git_force_delete_branch ... ok [INFO] [stdout] test blast_radius::tests::test_git_force_push ... ok [INFO] [stdout] test blast_radius::tests::test_git_force_push_with_branch ... ok [INFO] [stdout] test blast_radius::tests::test_git_reset ... ok [INFO] [stdout] test blast_radius::tests::test_git_reset_no_changes ... ok [INFO] [stdout] test blast_radius::tests::test_git_strict_add_all ... ok [INFO] [stdout] test blast_radius::tests::test_kubernetes_delete_namespace ... ok [INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_project_scope ... ok [INFO] [stdout] test blast_radius::tests::test_parse_du_output ... ok [INFO] [stdout] test blast_radius::tests::test_unsupported_check_returns_none ... ok [INFO] [stdout] test checks::test_checks::can_check_custom_filter_with_contains ... ok [INFO] [stdout] test checks::test_checks::can_check_custom_filter_with_missing_capture_group ... ok [INFO] [stdout] test checks::test_checks::can_check_custom_filter_with_file_exists ... ok [INFO] [stdout] test checks::test_checks::can_check_multiple_filters_all_must_pass ... ok [INFO] [stdout] test checks::test_checks::can_check_custom_filter_with_str_contains ... ok [INFO] [stdout] test checks::test_checks::can_run_check_on_command ... ok [INFO] [stdout] test checks::test_checks::test_all_builtin_checks_pass_validation ... ok [INFO] [stdout] test checks::test_checks::test_split_command_and_and ... ok [INFO] [stdout] test checks::test_checks::test_split_command_double_quoted_operator ... ok [INFO] [stdout] test checks::test_checks::test_split_command_mixed ... ok [INFO] [stdout] test checks::test_checks::test_split_command_pipe ... ok [INFO] [stdout] test checks::test_checks::test_split_command_quoted_then_operator ... ok [INFO] [stdout] test checks::test_checks::test_split_command_single ... ok [INFO] [stdout] test checks::test_checks::test_split_command_single_quoted_pipe ... ok [INFO] [stdout] test checks::test_checks::can_get_all_checks ... ok [INFO] [stdout] test checks::test_checks::test_validate_catches_bad_capture_group ... ok [INFO] [stdout] test config::test_config::get_settings_returns_defaults_without_file ... ok [INFO] [stdout] test config::test_config::new_config_does_not_create_files ... ok [INFO] [stdout] test config::test_config::read_config_as_value_empty_file_returns_empty_mapping ... ok [INFO] [stdout] test config::test_config::can_reset_config ... ok [INFO] [stdout] test config::test_config::sparse_config_on_fresh_install ... ok [INFO] [stdout] test config::test_settings::can_get_active_checks ... ok [INFO] [stdout] test config::test_settings::can_get_settings_from_file ... ok [INFO] [stdout] test config::test_settings::old_includes_field_falls_back_to_default_enabled_groups ... ok [INFO] [stdout] test config::test_settings::default_settings_produce_nonempty_active_checks ... ok [INFO] [stdout] test config::test_settings::settings_yaml_roundtrip_preserves_enabled_groups ... ok [INFO] [stdout] test context::tests::test_detect_normal_context ... ok [INFO] [stdout] test context::tests::test_detect_production_env ... ok [INFO] [stdout] test context::tests::test_detect_production_k8s ... ok [INFO] [stdout] test context::tests::test_detect_protected_branch ... ok [INFO] [stdout] test context::tests::test_detect_root_user ... ok [INFO] [stdout] test context::tests::test_detect_ssh_session ... ok [INFO] [stdout] test context::tests::test_escalate_cannot_lower ... ok [INFO] [stdout] test context::tests::test_escalate_challenge_critical ... ok [INFO] [stdout] test context::tests::test_escalate_challenge_elevated ... ok [INFO] [stdout] test context::tests::test_escalate_challenge_normal ... ok [INFO] [stdout] test context::tests::test_feature_branch_is_normal ... ok [INFO] [stdout] test context::tests::test_filter_compound_git_and_k8s ... ok [INFO] [stdout] test context::tests::test_filter_fs_command_global_only ... ok [INFO] [stdout] test context::tests::test_filter_git_command_hides_k8s ... ok [INFO] [stdout] test context::tests::test_filter_global_signals_never_hidden ... ok [INFO] [stdout] test context::tests::test_filter_k8s_command_hides_branch ... ok [INFO] [stdout] test context::tests::test_filter_risk_level_recomputed ... ok [INFO] [stdout] test context::tests::test_release_wildcard_branch ... ok [INFO] [stdout] test llm::tests::test_create_provider_no_key ... ok [INFO] [stdout] test llm::tests::test_create_provider_unknown_provider ... ok [INFO] [stdout] test llm::tests::test_extract_json_from_markdown ... ok [INFO] [stdout] test llm::tests::test_extract_json_from_plain_fences ... ok [INFO] [stdout] test llm::tests::test_extract_json_plain ... ok [INFO] [stdout] test llm::tests::test_llm_analysis_serialization ... ok [INFO] [stdout] test llm::tests::test_mock_provider_availability ... ok [INFO] [stdout] test llm::tests::test_mock_provider_returns_configured ... ok [INFO] [stdout] test llm::tests::test_noop_provider_returns_safe ... ok [INFO] [stdout] test llm::tests::test_parse_alternatives_response_valid ... ok [INFO] [stdout] test llm::tests::test_parse_analysis_response_invalid_falls_back ... ok [INFO] [stdout] test llm::tests::test_parse_analysis_response_valid ... ok [INFO] [stdout] test mcp::tests::test_check_command_risky ... ok [INFO] [stdout] test agent::tests::test_safe_command_is_allowed ... ok [INFO] [stdout] test agent::tests::test_deny_listed_command_always_denied ... ok [INFO] [stdout] test mcp::tests::test_get_policy ... ok [INFO] [stdout] test mcp::tests::test_explain_risk_safe_command ... ok [INFO] [stdout] test mcp::tests::test_check_command_safe ... ok [INFO] [stdout] test mcp::tests::test_notification_returns_none ... ok [INFO] [stdout] test mcp::tests::test_initialize ... ok [INFO] [stdout] test mcp::tests::test_handle_malformed_json ... ok [INFO] [stdout] test mcp::tests::test_tools_list ... ok [INFO] [stdout] test agent::tests::test_require_human_approval_flag ... ok [INFO] [stdout] test config::test_settings::settings_file_roundtrip_produces_matches ... ok [INFO] [stdout] test agent::tests::test_high_severity_command_denied_by_agent ... ok [INFO] [stdout] test mcp::tests::test_unknown_method ... ok [INFO] [stdout] test policy::tests::test_branch_specific_override ... ok [INFO] [stdout] test mcp::tests::test_unknown_tool ... ok [INFO] [stdout] test policy::tests::test_discover_no_policy ... ok [INFO] [stdout] test policy::tests::test_discover_policy_walks_up ... ok [INFO] [stdout] test policy::tests::test_parse_simple_policy ... ok [INFO] [stdout] test policy::tests::test_effective_challenge_cannot_weaken ... ok [INFO] [stdout] test policy::tests::test_merge_adds_deny ... ok [INFO] [stdout] test policy::tests::test_scaffold_policy ... ok [INFO] [stdout] test policy::tests::test_effective_challenge_escalates ... ok [INFO] [stdout] test policy::tests::test_validate_policy ... ok [INFO] [stdout] test policy::tests::test_validate_policy_bad_version ... ok [INFO] [stdout] test wrap::common::tests::basic_semicolon_delimiter ... ok [INFO] [stdout] test wrap::common::tests::cli_delimiter_overrides_all ... ok [INFO] [stdout] test wrap::common::tests::cr_is_control_passthrough ... ok [INFO] [stdout] test wrap::common::tests::delimiter_from_semicolon ... ok [INFO] [stdout] test wrap::common::tests::delimiter_from_literal_newline ... ok [INFO] [stdout] test wrap::common::tests::delimiter_from_newline_escape ... ok [INFO] [stdout] test wrap::common::tests::delimiter_inside_double_quotes_not_split ... ok [INFO] [stdout] test wrap::common::tests::delimiter_inside_single_quotes_not_split ... ok [INFO] [stdout] test mcp::tests::test_suggest_alternative_for_risky_command ... ok [INFO] [stdout] test wrap::common::tests::empty_statement ... ok [INFO] [stdout] test wrap::common::tests::known_tool_gets_builtin_defaults ... ok [INFO] [stdout] test wrap::common::tests::multi_line_sql ... ok [INFO] [stdout] test wrap::common::tests::multiple_statements ... ok [INFO] [stdout] test wrap::common::tests::path_in_program_name_uses_basename ... ok [INFO] [stdout] test wrap::common::tests::empty_statement_forwards ... ok [INFO] [stdout] test agent::tests::test_risk_assessment_includes_alternatives ... ok [INFO] [stdout] test wrap::common::tests::escaped_quote_handling ... ok [INFO] [stdout] test wrap::common::tests::newline_delimiter ... ok [INFO] [stdout] test wrap::common::tests::reset_clears_buffer ... ok [INFO] [stdout] test wrap::common::tests::redis_cli_gets_newline_delimiter ... ok [INFO] [stdout] test agent::tests::test_low_severity_allowed_by_agent ... ok [INFO] [stdout] test wrap::common::tests::interactive_flushall_triggers_challenge ... ok [INFO] [stdout] test wrap::common::tests::unknown_tool_gets_generic_fallback ... ok [INFO] [stdout] test wrap::common::tests::whitespace_only_statement ... ok [INFO] [stdout] test wrap::common::tests::safe_statement_forwards ... ok [INFO] [stdout] test wrap::common::tests::user_override_takes_precedence ... ok [INFO] [stdout] test wrap::common::tests::drop_table_triggers_challenge ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 144 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/shellfirm.rs (/opt/rustwide/target/debug/deps/shellfirm-2610d31572ab3e5c) [INFO] [stdout] [INFO] [stdout] running 106 tests [INFO] [stdout] test cmd::check_cmd::tests::hook_output_allowed_has_allow_decision ... ok [INFO] [stdout] test cmd::check_cmd::tests::hook_output_denied_has_deny_decision_with_details ... ok [INFO] [stdout] test cmd::check_cmd::tests::hook_output_is_valid_json_for_claude_code ... ok [INFO] [stdout] test cmd::check_cmd::tests::json_output_is_valid_json_with_expected_fields ... ok [INFO] [stdout] test cmd::check_cmd::tests::no_exit_code_flag_always_returns_ok ... ok [INFO] [stdout] test cmd::check_cmd::tests::parse_claude_code_hooks_format ... ok [INFO] [stdout] test cmd::check_cmd::tests::parse_empty_input_returns_error ... ok [INFO] [stdout] test cmd::check_cmd::tests::parse_json_without_command_field_returns_error ... ok [INFO] [stdout] test cmd::check_cmd::tests::parse_plain_text_fallback ... ok [INFO] [stdout] test cmd::check_cmd::tests::parse_plain_text_with_whitespace ... ok [INFO] [stdout] test cmd::check_cmd::tests::parse_simple_json_command ... ok [INFO] [stdout] test cmd::check_cmd::tests::parse_tool_input_takes_precedence_over_command ... ok [INFO] [stdout] test cmd::check_cmd::tests::text_exit_code_risky_command_returns_2 ... ok [INFO] [stdout] test cmd::check_cmd::tests::text_exit_code_safe_command_returns_ok ... ok [INFO] [stdout] test cmd::check_cmd::tests::text_output_allowed_risky_has_no_blocked_line ... ok [INFO] [stdout] test cmd::check_cmd::tests::text_output_risky_command_includes_match_and_blocked ... ok [INFO] [stdout] test cmd::check_cmd::tests::text_output_safe_command ... ok [INFO] [stdout] test cmd::check_cmd::tests::check_safe_command_json_has_allowed_true ... ok [INFO] [stdout] test cmd::check_cmd::tests::check_command_safe_json_exit_code_returns_0_with_allow ... ok [INFO] [stdout] test cmd::command::test_command_cli_command::regex_does_not_strip_mismatched_quotes ... ok [INFO] [stdout] test cmd::command::test_command_cli_command::can_run_pre_command_without_match ... ok [INFO] [stdout] test cmd::command::test_command_cli_command::regex_handles_multiple_quoted_segments ... ok [INFO] [stdout] test cmd::command::test_command_cli_command::regex_strips_matching_double_quotes ... ok [INFO] [stdout] test cmd::command::test_command_cli_command::regex_strips_matching_single_quotes ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::challenge_on_fresh_install ... ok [INFO] [stdout] test cmd::check_cmd::tests::check_command_safe_returns_exit_0 ... ok [INFO] [stdout] test cmd::command::test_command_cli_command::can_run_pre_command ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::challenge_rejects_invalid ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::config_menu_delegates_to_show ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::context_add_branch ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::challenge_set_valid ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::context_remove_branch ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::context_set_escalation ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::deny_add ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::challenge_set_each_variant ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::escalation_group_on_fresh_install ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::deny_remove ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::groups_disable ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::escalation_group_set_fs ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::groups_enable_and_disable ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::escalation_severity_set_high_and_disable ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::groups_rejects_unknown ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::groups_enable ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::groups_idempotent ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::ignore_add ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::ignore_add_duplicate ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::ignore_remove ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::llm_on_fresh_install ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::llm_set_multiple ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::llm_set_model ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::llm_set_provider ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::severity_rejects_invalid ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::escalation_check_set_and_remove ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::severity_set_null ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::show_default_config ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::severity_set_valid ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::show_on_fresh_install ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::reset_config_restores_defaults ... ok [INFO] [stdout] test cmd::connect_cmd::tests::all_providers_are_idempotent ... ok [INFO] [stdout] test cmd::connect_cmd::tests::cline_config_path ... ok [INFO] [stdout] test cmd::connect_cmd::tests::cline_install_mcp ... ok [INFO] [stdout] test cmd::connect_cmd::tests::config_path_resolves ... ok [INFO] [stdout] test cmd::connect_cmd::tests::cursor_config_path_is_project_level ... ok [INFO] [stdout] test cmd::connect_cmd::tests::all_providers_preserve_existing_config ... ok [INFO] [stdout] test cmd::connect_cmd::tests::cursor_does_not_support_hooks ... ok [INFO] [stdout] test cmd::connect_cmd::tests::cursor_install_mcp ... ok [INFO] [stdout] test cmd::connect_cmd::tests::install_hooks_adds_pre_tool_use ... ok [INFO] [stdout] test cmd::connect_cmd::tests::detection_on_empty_config ... ok [INFO] [stdout] test cmd::connect_cmd::tests::install_mcp_adds_server ... ok [INFO] [stdout] test cmd::connect_cmd::tests::install_preserves_existing_config ... ok [INFO] [stdout] test cmd::connect_cmd::tests::provider_registry_resolves_all ... ok [INFO] [stdout] test cmd::connect_cmd::tests::uninstall_noop_when_not_installed ... ok [INFO] [stdout] test cmd::connect_cmd::tests::uninstall_removes_hooks_and_mcp ... ok [INFO] [stdout] test cmd::connect_cmd::tests::windsurf_config_path ... ok [INFO] [stdout] test cmd::connect_cmd::tests::windsurf_install_mcp ... ok [INFO] [stdout] test cmd::connect_cmd::tests::write_and_read_config_roundtrip ... ok [INFO] [stdout] test cmd::connect_cmd::tests::zed_config_path ... ok [INFO] [stdout] test cmd::connect_cmd::tests::zed_install_is_idempotent ... ok [INFO] [stdout] test cmd::connect_cmd::tests::zed_install_uses_context_servers ... ok [INFO] [stdout] test cmd::connect_cmd::tests::zed_uninstall_removes_context_server ... ok [INFO] [stdout] test cmd::init::tests::activate_hint_exec_for_posix_shells ... ok [INFO] [stdout] test cmd::init::tests::activate_hint_restart_for_non_posix_shells ... ok [INFO] [stdout] test cmd::init::tests::activate_hint_returns_non_empty_for_all_shells ... ok [INFO] [stdout] test cmd::init::tests::all_hooks_are_non_empty ... ok [INFO] [stdout] test cmd::connect_cmd::tests::install_hooks_is_idempotent ... ok [INFO] [stdout] test cmd::init::tests::display_matches_name ... ok [INFO] [stdout] test cmd::init::tests::eval_shells_hook_contains_shellfirm_pre_command ... ok [INFO] [stdout] test cmd::init::tests::from_name_round_trip ... ok [INFO] [stdout] test cmd::init::tests::idempotent_install_detection ... ok [INFO] [stdout] test cmd::init::tests::install_to_temp_file ... ok [INFO] [stdout] test cmd::init::tests::rc_paths_resolve_for_known_shells ... ok [INFO] [stdout] test cmd::init::tests::rc_snippet_returns_eval_for_eval_shells ... ok [INFO] [stdout] test cmd::init::tests::rc_snippet_returns_full_hook_for_other_shells ... ok [INFO] [stdout] test cmd::init::tests::uninstall_noop_when_not_installed ... ok [INFO] [stdout] test cmd::init::tests::uninstall_preserves_rest_of_file ... ok [INFO] [stdout] test cmd::init::tests::uninstall_removes_block_with_current_marker ... ok [INFO] [stdout] test cmd::init::tests::uninstall_removes_embedded_hook ... ok [INFO] [stdout] test cmd::init::tests::detect_installed_shells_does_not_panic ... ok [INFO] [stdout] test cmd::init::tests::validate_shell_arg_rejects_unknown ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::reset_then_sparse_setup_round_trip ... ok [INFO] [stdout] test cmd::init::tests::validate_shell_arg_accepts_known ... ok [INFO] [stdout] test cmd::config::test_config_cli_command::show_modified_config ... ok [INFO] [stdout] test cmd::check_cmd::tests::check_command_risky_json_exit_code_returns_0_with_deny ... ok [INFO] [stdout] test cmd::check_cmd::tests::check_command_risky_text_exit_code_returns_2 ... ok [INFO] [stdout] test cmd::check_cmd::tests::backward_compat_text_mode_without_exit_code_returns_ok_for_risky ... ok [INFO] [stdout] test cmd::check_cmd::tests::check_risky_command_json_has_allowed_false ... ok [INFO] [stderr] Running tests/checks.rs (/opt/rustwide/target/debug/deps/checks-9a1d653ae07f39d7) [INFO] [stdout] [INFO] [stdout] test result: ok. 106 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 13.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test test_coverage_completeness ... ok [INFO] [stdout] test test_all_checks ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.32s [INFO] [stdout] [INFO] [stderr] Running tests/decision_matrix.rs (/opt/rustwide/target/debug/deps/decision_matrix-4b6944a9a77406c0) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_decision_matrix ... ok [INFO] [stderr] Running tests/pure_logic.rs (/opt/rustwide/target/debug/deps/pure_logic-11837d6a59336456) [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 35 tests [INFO] [stdout] test test_escalate_normal_does_not_change ... ok [INFO] [stdout] test test_escalate_elevated_raises_to_enter ... ok [INFO] [stdout] test test_escalate_critical_raises_to_yes ... ok [INFO] [stdout] test test_escalate_cannot_lower ... ok [INFO] [stdout] test test_alternatives_present_in_rm_check ... ok [INFO] [stdout] test test_alternatives_present_in_force_push_check ... ok [INFO] [stdout] test test_pattern_matching_safe_command ... ok [INFO] [stdout] test test_policy_branch_specific_override ... ok [INFO] [stdout] test test_policy_cannot_weaken ... ok [INFO] [stdout] test test_policy_merge_adds_deny ... ok [INFO] [stdout] test test_policy_merge_escalates_challenge ... ok [INFO] [stdout] test test_safe_command_has_no_alternative ... ok [INFO] [stdout] test test_settings_yaml_roundtrip_preserves_new_fields ... ok [INFO] [stdout] test test_severity_escalation_custom_values ... ok [INFO] [stdout] test test_severity_escalation_defaults ... ok [INFO] [stdout] test test_severity_escalation_disabled_returns_none ... ok [INFO] [stdout] test test_severity_escalation_yaml_roundtrip ... ok [INFO] [stdout] test test_sparse_config_deserializes_new_fields_with_defaults ... ok [INFO] [stdout] test test_split_command_double_ampersand ... ok [INFO] [stdout] test test_split_command_mixed_operators ... ok [INFO] [stdout] test test_split_command_pipe ... ok [INFO] [stdout] test test_split_command_respects_double_quotes ... ok [INFO] [stdout] test test_split_command_respects_single_quotes ... ok [INFO] [stdout] test test_split_command_semicolon ... ok [INFO] [stdout] test test_split_command_single ... ok [INFO] [stdout] test test_validate_policy_bad_version ... ok [INFO] [stdout] test test_validate_policy_empty_id ... ok [INFO] [stdout] test test_pattern_matching_git_reset ... ok [INFO] [stdout] test test_validate_valid_policy ... ok [INFO] [stdout] test test_pattern_matching_aws_s3_delete ... ok [INFO] [stdout] test test_pattern_matching_docker_prune ... ok [INFO] [stdout] test test_pattern_matching_git_force_push ... ok [INFO] [stdout] test test_pattern_matching_database_drop ... ok [INFO] [stdout] test test_pattern_matching_kubectl_delete_ns ... ok [INFO] [stdout] test test_pattern_matching_terraform_auto_approve ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.91s [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running tests/sandboxed_integration.rs (/opt/rustwide/target/debug/deps/sandboxed_integration-2c88f8630ff50c00) [INFO] [stdout] running 25 tests [INFO] [stdout] test test_context_local_dev_is_normal ... ok [INFO] [stdout] test test_audit_log_written_to_temp_dir ... ok [INFO] [stdout] test test_audit_clear ... ok [INFO] [stdout] test test_context_production_ssh_is_critical ... ok [INFO] [stdout] test test_custom_checks_loaded_from_temp_dir ... ok [INFO] [stdout] test test_multiple_critical_signals ... ok [INFO] [stdout] test test_pipeline_alternative_shown_for_force_push ... ok [INFO] [stdout] test test_pipeline_group_escalation ... ok [INFO] [stdout] test test_pipeline_global_deny_blocks ... ok [INFO] [stdout] test test_pipeline_compound_command_detects_risky_part ... ok [INFO] [stdout] test test_pipeline_all_layers_compose ... ok [INFO] [stdout] test test_policy_discovery_no_file ... ok [INFO] [stdout] test test_policy_discovery_walks_up ... ok [INFO] [stdout] test test_pipeline_local_dev_force_push_passes ... ok [INFO] [stdout] test test_pipeline_check_id_escalation ... ok [INFO] [stdout] test test_pipeline_high_severity_escalates_to_enter ... ok [INFO] [stdout] test test_pipeline_safe_command_no_challenge ... ok [INFO] [stdout] test test_root_escalates_to_critical ... ok [INFO] [stdout] test test_pipeline_severity_disabled_stays_math ... ok [INFO] [stdout] test test_pipeline_project_policy_denies_force_push ... ok [INFO] [stdout] test test_relevant_context_rm_rf_hides_branch_and_k8s ... ok [INFO] [stdout] test test_ssh_only_elevates_to_enter ... ok [INFO] [stdout] test test_relevant_context_git_push_shows_branch_hides_k8s ... ok [INFO] [stdout] test test_relevant_context_kubectl_shows_k8s_hides_branch ... ok [INFO] [stdout] test test_pipeline_production_ssh_force_push_escalates ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.71s [INFO] [stdout] [INFO] [stderr] Doc-tests shellfirm [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "183f996527fbd63e4f35861cdbba7e2268402f13a2eb061e1627993d36f3f512", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "183f996527fbd63e4f35861cdbba7e2268402f13a2eb061e1627993d36f3f512", kill_on_drop: false }` [INFO] [stdout] 183f996527fbd63e4f35861cdbba7e2268402f13a2eb061e1627993d36f3f512