[INFO] fetching crate runex-core 0.1.10... [INFO] testing runex-core-0.1.10 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate runex-core 0.1.10 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate runex-core 0.1.10 [INFO] finished tweaking crates.io crate runex-core 0.1.10 [INFO] tweaked toml for crates.io crate runex-core 0.1.10 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate runex-core 0.1.10 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 runex-core 0.1.10 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 serial_test_derive v3.4.0 [INFO] [stderr] Downloaded which v7.0.3 [INFO] [stderr] Downloaded sdd v3.0.10 [INFO] [stderr] Downloaded env_home v0.1.0 [INFO] [stderr] Downloaded serial_test v3.4.0 [INFO] [stderr] Downloaded scc v2.4.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 452121b7dcc6a0b62be69b8d9021d7883275f67ca698d2fc7ae091419045ca2c [INFO] running `Command { std: "docker" "start" "-a" "452121b7dcc6a0b62be69b8d9021d7883275f67ca698d2fc7ae091419045ca2c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "452121b7dcc6a0b62be69b8d9021d7883275f67ca698d2fc7ae091419045ca2c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "452121b7dcc6a0b62be69b8d9021d7883275f67ca698d2fc7ae091419045ca2c", kill_on_drop: false }` [INFO] [stdout] 452121b7dcc6a0b62be69b8d9021d7883275f67ca698d2fc7ae091419045ca2c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] fa23ad63d31367db891353cd607f518beb54e762f30ab1b5e7115e5fac2b14aa [INFO] running `Command { std: "docker" "start" "-a" "fa23ad63d31367db891353cd607f518beb54e762f30ab1b5e7115e5fac2b14aa", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling env_home v0.1.0 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling which v7.0.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling runex-core v0.1.10 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.78s [INFO] running `Command { std: "docker" "inspect" "fa23ad63d31367db891353cd607f518beb54e762f30ab1b5e7115e5fac2b14aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa23ad63d31367db891353cd607f518beb54e762f30ab1b5e7115e5fac2b14aa", kill_on_drop: false }` [INFO] [stdout] fa23ad63d31367db891353cd607f518beb54e762f30ab1b5e7115e5fac2b14aa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 9ab8f39388fca0aea156038382356c52ccbaeb4a2136760399ddbd0c5022997f [INFO] running `Command { std: "docker" "start" "-a" "9ab8f39388fca0aea156038382356c52ccbaeb4a2136760399ddbd0c5022997f", kill_on_drop: false }` [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling which v7.0.3 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling serial_test_derive v3.4.0 [INFO] [stderr] Compiling serial_test v3.4.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling runex-core v0.1.10 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 19.16s [INFO] running `Command { std: "docker" "inspect" "9ab8f39388fca0aea156038382356c52ccbaeb4a2136760399ddbd0c5022997f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9ab8f39388fca0aea156038382356c52ccbaeb4a2136760399ddbd0c5022997f", kill_on_drop: false }` [INFO] [stdout] 9ab8f39388fca0aea156038382356c52ccbaeb4a2136760399ddbd0c5022997f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] af06d41ca9f96fa102cbcebfda0da2a3d32523d84e96edaa3532419f36a69079 [INFO] running `Command { std: "docker" "start" "-a" "af06d41ca9f96fa102cbcebfda0da2a3d32523d84e96edaa3532419f36a69079", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/runex_core-9e745d70c8d5483e) [INFO] [stdout] [INFO] [stdout] running 291 tests [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_control_char_in_expand ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_accepts_key_without_control_chars ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_whitespace_only_key ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_del_in_key ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_control_char_in_when_command_exists ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_del_in_when_command_exists ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_empty_key ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_del_in_expand ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_bom_in_when_command_exists ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_backslash_in_when_command_exists ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_control_char_in_key ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_empty_when_command_exists_entry ... ok [INFO] [stdout] test config::tests::control_char_rejection::parse_config_rejects_whitespace_only_when_command_exists_entry ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_accepts_bare_command_name_in_when_command_exists ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_bom_in_key ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_bom_in_expand ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_rlo_in_key ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_zwsp_in_key ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_rlo_in_expand ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_path_separator_in_when_command_exists ... ok [INFO] [stdout] test config::tests::expand_validation::parse_config_rejects_empty_expand ... ok [INFO] [stdout] test config::tests::expand_validation::parse_config_rejects_whitespace_only_expand ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_accepts_max_when_command_exists_entry ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_rejects_nul_byte_in_when_command_exists ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_rejects_nul_byte_in_expand ... ok [INFO] [stdout] test config::tests::expand_validation::parse_config_accepts_normal_expand ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_accepts_max_expand_length ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_accepts_max_key_length ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_rejects_nul_byte_in_key ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_rejects_oversized_when_command_exists_entry ... ok [INFO] [stdout] test config::tests::parsing::default_config_path_env_override ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_rejects_oversized_expand ... ok [INFO] [stdout] test config::tests::field_validation::parse_config_rejects_oversized_key ... ok [INFO] [stdout] test config::tests::parsing::default_config_path_ignores_empty_runex_config ... ok [INFO] [stdout] test config::tests::parsing::parse_config_keybind_absent_gives_all_none ... ok [INFO] [stdout] test config::tests::parsing::parse_config_rejects_invalid_trigger_key ... ok [INFO] [stdout] test config::tests::parsing::default_config_path_uses_xdg_config_home ... ok [INFO] [stdout] test config::tests::parsing::parse_config_with_subtable_trigger ... ok [INFO] [stdout] test config::tests::parsing::parse_empty_abbr_list ... ok [INFO] [stdout] test config::tests::parsing::parse_minimal_toml ... ok [INFO] [stdout] test config::tests::parsing::parse_config_rejects_invalid_per_shell_keybind ... ok [INFO] [stdout] test config::tests::parsing::parse_missing_version_is_err ... ok [INFO] [stdout] test config::tests::parsing::parse_with_keybind ... ok [INFO] [stdout] test config::tests::parsing::parse_with_when_command_exists ... ok [INFO] [stdout] test config::tests::deceptive_unicode::parse_config_rejects_colon_in_when_command_exists ... ok [INFO] [stdout] test config::tests::parsing::xdg_config_home_empty_env_falls_back_to_home ... ok [INFO] [stdout] test config::tests::version_validation::parse_config_rejects_version_0 ... ok [INFO] [stdout] test config::tests::version_validation::parse_config_rejects_version_2 ... ok [INFO] [stdout] test config::tests::version_validation::parse_config_rejects_version_99 ... ok [INFO] [stdout] test config::tests::when_command_exists_limit::parse_config_accepts_max_when_command_exists_entries ... ok [INFO] [stdout] test config::tests::when_command_exists_limit::parse_config_rejects_too_many_when_command_exists_entries ... ok [INFO] [stdout] test config::tests::version_validation::parse_config_accepts_version_1 ... ok [INFO] [stdout] test config::tests::parsing::xdg_config_home_uses_env_var ... ok [INFO] [stdout] test config::tests::add_remove::append_abbr_preserves_existing ... ok [INFO] [stdout] test config::tests::add_remove::append_abbr_rejects_invalid_key ... ok [INFO] [stdout] test config::tests::add_remove::remove_abbr_returns_zero_for_missing_key ... ok [INFO] [stdout] test config::tests::add_remove::append_abbr_with_when_command_exists ... ok [INFO] [stdout] test config::tests::add_remove::append_abbr_creates_valid_config ... ok [INFO] [stdout] test config::tests::add_remove::remove_abbr_deletes_matching_key ... ok [INFO] [stdout] test doctor::tests::diagnostics::config_parse_error_detail_shown ... ok [INFO] [stdout] test doctor::tests::diagnostics::config_parse_multiline_error_splits_detail_and_verbose ... ok [INFO] [stdout] test doctor::tests::diagnostics::diag_result_is_healthy_with_error ... ok [INFO] [stdout] test doctor::tests::diagnostics::doctor_ok_alt_space_self_insert ... ok [INFO] [stdout] test doctor::tests::diagnostics::doctor_warns_empty_key ... ok [INFO] [stdout] test doctor::tests::diagnostics::doctor_warns_shift_space_self_insert ... ok [INFO] [stdout] test doctor::tests::sanitization::doctor_command_check_detail_strips_control_chars_from_cmd ... ok [INFO] [stdout] test doctor::tests::diagnostics::config_file_missing ... ok [INFO] [stdout] test doctor::tests::diagnostics::doctor_warns_when_default_self_insert_is_shift_space ... ok [INFO] [stdout] test doctor::tests::sanitization::doctor_command_check_name_strips_control_chars ... ok [INFO] [stdout] test doctor::tests::sanitization::doctor_self_loop_detail_strips_control_chars_from_key ... ok [INFO] [stdout] test doctor::tests::diagnostics::doctor_ok_when_only_pwsh_self_insert_is_shift_space ... ok [INFO] [stdout] test doctor::tests::strict::check_no_warnings_for_valid_config ... ok [INFO] [stdout] test doctor::tests::strict::check_unknown_abbr_field ... ok [INFO] [stdout] test doctor::tests::strict::check_unknown_keybind_field ... ok [INFO] [stdout] test doctor::tests::diagnostics::doctor_warns_self_loop ... ok [INFO] [stdout] test doctor::tests::strict::check_unknown_top_level_field ... ok [INFO] [stdout] test doctor::tests::strict::suggest_similar_field_name ... ok [INFO] [stdout] test expand::tests::duplicate_key_self_loop_then_real_expands ... ok [INFO] [stdout] test expand::tests::duplicate_key_failed_condition_then_real_expands ... ok [INFO] [stdout] test expand::tests::expand_per_shell_pwsh_uses_pwsh_expand ... ok [INFO] [stdout] test config::tests::parsing::load_config_from_file ... ok [INFO] [stdout] test doctor::tests::sanitization::doctor_config_file_detail_strips_control_chars_from_path ... ok [INFO] [stdout] test config::tests::parsing::load_config_rejects_symlink_to_dev_zero ... ok [INFO] [stdout] test config::tests::parsing::load_config_follows_symlink_to_regular_file ... ok [INFO] [stdout] test config::tests::parsing::load_config_rejects_named_pipe ... ok [INFO] [stdout] test expand::tests::expand_per_shell_skips_when_no_shell_entry ... ok [INFO] [stdout] test doctor::tests::strict::levenshtein_basic ... ok [INFO] [stdout] test expand::tests::expand_timed_records_expand_phase ... ok [INFO] [stdout] test expand::tests::expand_without_cursor_placeholder ... ok [INFO] [stdout] test expand::tests::expand_with_cursor_placeholder ... ok [INFO] [stdout] test doctor::tests::diagnostics::all_healthy ... ok [INFO] [stdout] test doctor::tests::diagnostics::command_not_found_is_warn ... ok [INFO] [stdout] test expand::tests::expand_timed_same_result_as_expand ... ok [INFO] [stdout] test doctor::tests::diagnostics::config_parse_single_line_error_has_no_verbose ... ok [INFO] [stdout] test expand::tests::extract_cursor_placeholder_found ... ok [INFO] [stdout] test expand::tests::extract_cursor_placeholder_not_found ... ok [INFO] [stdout] test expand::tests::key_eq_expand_passes_through ... ok [INFO] [stdout] test expand::tests::expand_timed_records_command_exists_calls ... ok [INFO] [stdout] test expand::tests::list_returns_all_pairs ... ok [INFO] [stdout] test expand::tests::list_with_shell_filters_per_shell ... ok [INFO] [stdout] test expand::tests::selects_correct_abbr ... ok [INFO] [stdout] test expand::tests::extract_cursor_placeholder_at_end ... ok [INFO] [stdout] test expand::tests::match_expands ... ok [INFO] [stdout] test expand::tests::which_abbr_duplicate_self_loop_then_expanded ... ok [INFO] [stdout] test expand::tests::which_abbr_no_match ... ok [INFO] [stdout] test expand::tests::which_abbr_no_shell_entry_is_skipped ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_bash ... ok [INFO] [stdout] test expand::tests::no_match_passes_through ... ok [INFO] [stdout] test expand::tests::when_command_exists_present ... ok [INFO] [stdout] test expand::tests::which_abbr_all_skipped_returns_all_skipped ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_pwsh ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_pwsh_escapes_single_quote_in_bin ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_pwsh_semicolon_does_not_inject ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_zsh_escapes_single_quote_in_bin ... ok [INFO] [stdout] test init::tests::nu_quote_path_deceptive::nu_quote_path_drops_rlo ... ok [INFO] [stdout] test init::tests::nu_quote_path_deceptive::nu_quote_path_drops_zwsp ... ok [INFO] [stdout] test init::tests::nu_quote_path_deceptive::nu_quote_path_escapes_dollar_sign ... ok [INFO] [stdout] test init::tests::nu_quote_path_deceptive::nu_quote_path_preserves_non_deceptive_unicode ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::integration_line_nu_newline_in_xdg_does_not_inject ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::nu_quote_path_drops_del ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::nu_quote_path_drops_remaining_c0_control_chars ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::nu_quote_path_drops_unicode_line_separators ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::nu_quote_path_escapes_carriage_return ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::nu_quote_path_escapes_newline ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::nu_quote_path_escapes_nul ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::nu_quote_path_escapes_tab ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_bash_semicolon_does_not_inject ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_clink_single_quote_in_bin_is_lua_quoted ... ok [INFO] [stdout] test model::tests::abbr_fields ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_bash_escapes_single_quote_in_bin ... ok [INFO] [stdout] test model::tests::abbr_with_when_command_exists ... ok [INFO] [stdout] test model::tests::keybind_config_fields ... ok [INFO] [stdout] test model::tests::parse_config_accepts_self_insert_shift_space ... ok [INFO] [stdout] test model::tests::config_fields ... ok [INFO] [stdout] test model::tests::expand_result_variants ... ok [INFO] [stdout] test model::tests::per_shell_cmds_all_always_returns_value ... ok [INFO] [stdout] test model::tests::parse_config_keybind_entirely_absent ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_clink_newline_in_bin_does_not_inject ... ok [INFO] [stdout] test init::tests::nu_quote_path_escaping::rc_file_for_bash_ends_with_bashrc ... ok [INFO] [stdout] test model::tests::per_shell_string_clink_uses_default ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_nu_escapes_special_chars_in_bin ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_nu_quotes_cfg_dir_with_backslash ... ok [INFO] [stdout] test model::tests::per_shell_string_all_always_returns_value ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_nu_quotes_cfg_dir_with_spaces ... ok [INFO] [stdout] test model::tests::per_shell_cmds_none_when_no_entry ... ok [INFO] [stdout] test precache::tests::collect_unique_commands_empty_config ... ok [INFO] [stdout] test model::tests::per_shell_cmds_for_shell_returns_shell_specific ... ok [INFO] [stdout] test precache::tests::export_statement_pwsh ... ok [INFO] [stdout] test model::tests::per_shell_string_for_shell_returns_shell_specific ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_nu_uses_caret_external_command_syntax ... ok [INFO] [stdout] test precache::tests::collect_unique_commands_deduplicates ... ok [INFO] [stdout] test precache::tests::cache_roundtrip ... ok [INFO] [stdout] test init::tests::integration_line::integration_line_nu_save_path_is_quoted ... ok [INFO] [stdout] test init::tests::nu_quote_path_deceptive::nu_quote_path_drops_bom ... ok [INFO] [stdout] test expand::tests::when_command_exists_absent ... ok [INFO] [stdout] test precache::tests::export_statement_bash ... ok [INFO] [stdout] test model::tests::per_shell_string_none_when_no_entry ... ok [INFO] [stdout] test precache::tests::parse_invalid_json_returns_none ... ok [INFO] [stdout] test precache::tests::parse_rejects_bad_fingerprint_format ... ok [INFO] [stdout] test sanitize::tests::double_quote_escape_escapes_double_quote ... ok [INFO] [stdout] test precache::tests::fingerprint_changes_on_path_change ... ok [INFO] [stdout] test precache::tests::fingerprint_changes_on_mtime_change ... ok [INFO] [stdout] test sanitize::tests::double_quote_escape_ignores_dollar ... ok [INFO] [stdout] test sanitize::tests::double_quote_escape_ignores_letter ... ok [INFO] [stdout] test precache::tests::parse_wrong_version_returns_none ... ok [INFO] [stdout] test sanitize::tests::double_quote_escape_escapes_carriage_return ... ok [INFO] [stdout] test sanitize::tests::double_quote_escape_escapes_tab ... ok [INFO] [stdout] test precache::tests::fingerprint_changes_on_shell_change ... ok [INFO] [stdout] test sanitize::tests::double_quote_escape_escapes_backslash ... ok [INFO] [stdout] test sanitize::tests::double_quote_escape_escapes_newline ... ok [INFO] [stdout] test precache::tests::parse_rejects_oversized_json ... ok [INFO] [stdout] test sanitize::tests::double_quote_escape_ignores_nul ... ok [INFO] [stdout] test sanitize::tests::is_deceptive_unicode_allows_normal_chars ... ok [INFO] [stdout] test sanitize::tests::is_deceptive_unicode_detects_zwsp ... ok [INFO] [stdout] test sanitize::tests::is_deceptive_unicode_detects_bom ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_drops_bom ... ok [INFO] [stdout] test sanitize::tests::is_deceptive_unicode_detects_rlo ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_drops_nel ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_drops_paragraph_separator ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_drops_rlo ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_drops_all_ascii_control ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_drops_line_separator ... ok [INFO] [stdout] test init::tests::integration_line::default_config_content_has_version ... ok [INFO] [stdout] test config::tests::parsing::load_config_rejects_oversized_file ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_preserves_carriage_return ... ok [INFO] [stdout] test sanitize::tests::is_unsafe_for_display_detects_bom ... ok [INFO] [stdout] test sanitize::tests::is_unsafe_for_display_detects_bel ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_preserves_tab ... ok [INFO] [stdout] test sanitize::tests::is_unsafe_for_display_detects_del ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_preserves_newline ... ok [INFO] [stdout] test sanitize::tests::is_nu_drop_char_drops_zwsp ... ok [INFO] [stdout] test sanitize::tests::is_unsafe_for_display_detects_esc ... ok [INFO] [stdout] test sanitize::tests::is_unsafe_for_display_detects_rlo ... ok [INFO] [stdout] test sanitize::tests::sanitize_for_display_preserves_normal_text ... ok [INFO] [stdout] test sanitize::tests::is_unsafe_for_display_detects_zwsp ... ok [INFO] [stdout] test sanitize::tests::is_unsafe_for_display_allows_normal_chars ... ok [INFO] [stdout] test sanitize::tests::sanitize_for_display_strips_control_chars ... ok [INFO] [stdout] test sanitize::tests::sanitize_for_display_strips_rlo ... ok [INFO] [stdout] test shell::tests::case_pattern_globs::bash_case_pattern_bracket_key_is_literal ... ok [INFO] [stdout] test shell::tests::case_pattern_globs::bash_case_pattern_question_key_is_literal ... ok [INFO] [stdout] test shell::tests::case_pattern_globs::bash_case_pattern_star_key_matches_only_literal_star ... ok [INFO] [stdout] test shell::tests::quote_functions::bash_quote_pattern_escapes_carriage_return ... ok [INFO] [stdout] test shell::tests::case_pattern_globs::zsh_case_pattern_star_key_matches_only_literal_star ... ok [INFO] [stdout] test shell::tests::quote_functions::bash_quote_pattern_escapes_newline ... ok [INFO] [stdout] test shell::tests::case_pattern_globs::pwsh_script_has_single_default_clause ... ok [INFO] [stdout] test shell::tests::quote_functions::bash_quote_string_cr_safe_in_eval_context ... ok [INFO] [stdout] test shell::tests::quote_functions::bash_quote_string_drops_carriage_return ... ok [INFO] [stdout] test shell::tests::quote_functions::bash_quote_string_drops_newline ... ok [INFO] [stdout] test shell::tests::quote_functions::bash_quote_string_newline_safe_in_eval_context ... ok [INFO] [stdout] test shell::tests::quote_functions::bash_quote_string_escapes_nul ... ok [INFO] [stdout] test shell::tests::quote_functions::lua_quote_string_escapes_tab ... ok [INFO] [stdout] test shell::tests::quote_functions::nu_quote_string_embedded_preserves_non_ascii_unicode ... ok [INFO] [stdout] test shell::tests::quote_functions::nu_bin_newline_does_not_inject_into_cmd_block ... ok [INFO] [stdout] test shell::tests::quote_functions::nu_quote_string_escapes_carriage_return ... ok [INFO] [stdout] test shell::tests::quote_functions::nu_quote_string_escapes_newline ... ok [INFO] [stdout] test shell::tests::quote_functions::nu_quote_string_escapes_nul ... ok [INFO] [stdout] test shell::tests::quote_functions::nu_quote_string_nul_is_dropped_not_embedded ... ok [INFO] [stdout] test shell::tests::quote_functions::pwsh_quote_string_drops_carriage_return ... ok [INFO] [stdout] test shell::tests::quote_functions::nu_token_uses_equals_form_to_prevent_argument_injection ... ok [INFO] [stdout] test shell::tests::quote_functions::pwsh_quote_string_drops_newline ... ok [INFO] [stdout] test shell::tests::quote_functions::lua_quote_string_escapes_nul ... ok [INFO] [stdout] test shell::tests::quote_functions::pwsh_quote_string_escapes_nul ... ok [INFO] [stdout] test shell::tests::quote_functions::pwsh_quote_string_newline_not_using_backtick_concat ... ok [INFO] [stdout] test shell::tests::regression_issues::bash_quote_string_drops_unicode_line_separator ... ok [INFO] [stdout] test shell::tests::regression_issues::bash_no_self_insert_when_not_configured ... ok [INFO] [stdout] test shell::tests::regression_issues::bash_self_insert_alt_space_when_configured ... ok [INFO] [stdout] test shell::tests::regression_issues::clink_ignores_shell_specific_trigger_fields ... ok [INFO] [stdout] test shell::tests::regression_issues::clink_script_bin_with_double_quote_uses_single_quote_shell_wrapping ... ok [INFO] [stdout] test shell::tests::regression_issues::clink_script_double_quote_in_bin_does_not_inject_into_popen ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_no_self_insert_when_not_configured ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_quote_string_drops_del ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_quote_string_drops_remaining_c0_control_chars ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_quote_string_drops_unicode_line_separator ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_quote_string_embedded_escapes_dollar_sign ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_quote_string_escapes_dollar_sign ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_quote_string_escapes_tab ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_self_insert_alt_space_when_configured ... ok [INFO] [stdout] test shell::tests::regression_issues::nu_self_insert_shift_space_when_configured ... ok [INFO] [stdout] test precache::tests::parse_rejects_too_many_commands ... ok [INFO] [stdout] test shell::tests::regression_issues::trigger_for_falls_back_to_default ... ok [INFO] [stdout] test shell::tests::regression_issues::pwsh_self_insert_shift_space_when_configured ... ok [INFO] [stdout] test shell::tests::regression_issues::pwsh_self_insert_alt_space_when_configured ... ok [INFO] [stdout] test shell::tests::regression_issues::trigger_for_shell_override_takes_precedence_over_default ... ok [INFO] [stdout] test shell::tests::script_generation::bash_script_uses_keybind_override ... ok [INFO] [stdout] test shell::tests::script_generation::bin_double_quote_is_escaped_in_clink ... ok [INFO] [stdout] test shell::tests::script_generation::bin_with_special_chars_is_safe_in_nu ... ok [INFO] [stdout] test shell::tests::script_generation::bin_single_quote_is_escaped_in_bash ... ok [INFO] [stdout] test shell::tests::script_generation::bash_script_has_bind ... ok [INFO] [stdout] test shell::tests::script_generation::clink_script_uses_alt_space_sequence ... ok [INFO] [stdout] test shell::tests::script_generation::bin_single_quote_is_escaped_in_pwsh ... ok [INFO] [stdout] test shell::tests::script_generation::clink_script_has_clink ... ok [INFO] [stdout] test shell::tests::script_generation::export_script_contains_bin ... ok [INFO] [stdout] test shell::tests::regression_issues::pwsh_no_self_insert_when_not_configured ... ok [INFO] [stdout] test shell::tests::regression_issues::pwsh_quote_string_drops_unicode_line_separator ... ok [INFO] [stdout] test shell::tests::regression_issues::zsh_self_insert_alt_space_when_configured ... ok [INFO] [stdout] test shell::tests::script_generation::bash_script_does_not_eval_debug_trap ... ok [INFO] [stdout] test shell::tests::script_generation::export_script_placeholder_bin_does_not_cause_second_order_substitution ... ok [INFO] [stdout] test shell::tests::regression_issues::zsh_no_self_insert_when_not_configured ... ok [INFO] [stdout] test shell::tests::script_generation::bash_script_embeds_known_tokens ... ok [INFO] [stdout] test shell::tests::script_generation::bin_single_quote_is_escaped_in_zsh ... ok [INFO] [stdout] test shell::tests::script_generation::nu_script_has_keybindings ... ok [INFO] [stdout] test shell::tests::script_generation::nu_bin_uses_caret_external_command_syntax ... ok [INFO] [stdout] test shell::tests::shell_parse::parse_case_insensitive ... ok [INFO] [stdout] test shell::tests::script_generation::pwsh_script_embeds_known_tokens ... ok [INFO] [stdout] test shell::tests::script_generation::zsh_script_has_zle_widget ... ok [INFO] [stdout] test shell::tests::script_generation::pwsh_script_uses_global_keybind ... ok [INFO] [stdout] test shell::tests::script_generation::pwsh_script_has_psreadline ... ok [INFO] [stdout] test shell::tests::shell_parse::shell_parse_error_display_strips_bel ... ok [INFO] [stdout] test shell::tests::script_generation::pwsh_script_short_circuits_non_candidates ... ok [INFO] [stdout] test shell::tests::script_generation::nu_bin_with_special_chars_uses_caret_syntax ... ok [INFO] [stdout] test shell::tests::script_generation::nu_bin_in_cmd_string_does_not_break_outer_quotes ... ok [INFO] [stdout] test shell::tests::shell_parse::parse_unknown_errors ... ok [INFO] [stdout] test shell::tests::script_generation::pwsh_script_uses_spacebar_name_for_alt_space ... ok [INFO] [stdout] test shell::tests::shell_parse::shell_parse_error_display_strips_bom ... ok [INFO] [stdout] test shell::tests::shell_parse::shell_parse_error_display_strips_del ... ok [INFO] [stdout] test shell::tests::shell_parse::shell_parse_error_display_strips_zwsp ... ok [INFO] [stdout] test shell::tests::unicode_edge_cases::bash_quote_pattern_drops_unicode_line_separators ... ok [INFO] [stdout] test shell::tests::unicode_edge_cases::lua_quote_string_decimal_escape_not_ambiguous_with_following_digit ... ok [INFO] [stdout] test shell::tests::unicode_edge_cases::lua_quote_string_drops_del ... ok [INFO] [stdout] test shell::tests::unicode_edge_cases::lua_quote_string_drops_unicode_line_separators ... ok [INFO] [stdout] test timings::tests::timings_new_is_empty ... ok [INFO] [stdout] test timings::tests::timings_record_command_exists_call ... ok [INFO] [stdout] test timings::tests::timings_record_phase ... ok [INFO] [stdout] test timings::tests::phase_timer_elapsed_is_positive ... ok [INFO] [stdout] test shell::tests::shell_parse::shell_parse_error_display_strips_esc_sequences ... ok [INFO] [stdout] test shell::tests::shell_parse::parse_bash ... ok [INFO] [stdout] test shell::tests::shell_parse::shell_parse_error_display_strips_rlo ... ok [INFO] [stdout] test timings::tests::timings_total_duration ... ok [INFO] [stdout] test shell::tests::script_generation::no_keybinds_means_no_handlers ... ok [INFO] [stdout] test config::tests::parsing::parse_config_rejects_too_many_abbr ... ok [INFO] [stdout] test config::tests::parsing::parse_config_accepts_max_abbr ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 291 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.16s [INFO] [stdout] [INFO] [stderr] Doc-tests runex_core [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" "af06d41ca9f96fa102cbcebfda0da2a3d32523d84e96edaa3532419f36a69079", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "af06d41ca9f96fa102cbcebfda0da2a3d32523d84e96edaa3532419f36a69079", kill_on_drop: false }` [INFO] [stdout] af06d41ca9f96fa102cbcebfda0da2a3d32523d84e96edaa3532419f36a69079