[INFO] fetching crate run 0.5.1... [INFO] testing run-0.5.1 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate run 0.5.1 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate run 0.5.1 [INFO] finished tweaking crates.io crate run 0.5.1 [INFO] tweaked toml for crates.io crate run 0.5.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate run 0.5.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 run 0.5.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serial_test_derive v3.3.1 [INFO] [stderr] Downloaded serial_test v3.3.1 [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] 7d139c6011a03da88d4a79c0b9e0d45f958f5ce9761586588f30614b76957d9c [INFO] running `Command { std: "docker" "start" "-a" "7d139c6011a03da88d4a79c0b9e0d45f958f5ce9761586588f30614b76957d9c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7d139c6011a03da88d4a79c0b9e0d45f958f5ce9761586588f30614b76957d9c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d139c6011a03da88d4a79c0b9e0d45f958f5ce9761586588f30614b76957d9c", kill_on_drop: false }` [INFO] [stdout] 7d139c6011a03da88d4a79c0b9e0d45f958f5ce9761586588f30614b76957d9c [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] afeb3afa13bc0b0134c24df852746139a1866e21b19ecc1bfb47a33d32d5c8b0 [INFO] running `Command { std: "docker" "start" "-a" "afeb3afa13bc0b0134c24df852746139a1866e21b19ecc1bfb47a33d32d5c8b0", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling env_home v0.1.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_builder v4.5.54 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling which v8.0.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling clap v4.5.54 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling run v0.5.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.76s [INFO] running `Command { std: "docker" "inspect" "afeb3afa13bc0b0134c24df852746139a1866e21b19ecc1bfb47a33d32d5c8b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "afeb3afa13bc0b0134c24df852746139a1866e21b19ecc1bfb47a33d32d5c8b0", kill_on_drop: false }` [INFO] [stdout] afeb3afa13bc0b0134c24df852746139a1866e21b19ecc1bfb47a33d32d5c8b0 [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] 916b8980bdfb989a99ce74973a93a8b847299005ad98b91dbc140ee6b3d57395 [INFO] running `Command { std: "docker" "start" "-a" "916b8980bdfb989a99ce74973a93a8b847299005ad98b91dbc140ee6b3d57395", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling cargo-husky v1.5.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling serial_test_derive v3.3.1 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling serial_test v3.3.1 [INFO] [stderr] Compiling which v8.0.0 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling run v0.5.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 6.87s [INFO] running `Command { std: "docker" "inspect" "916b8980bdfb989a99ce74973a93a8b847299005ad98b91dbc140ee6b3d57395", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "916b8980bdfb989a99ce74973a93a8b847299005ad98b91dbc140ee6b3d57395", kill_on_drop: false }` [INFO] [stdout] 916b8980bdfb989a99ce74973a93a8b847299005ad98b91dbc140ee6b3d57395 [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] 0dec5fa189d07514de74b401c838b2306737d65480a617b70f9aef2722396127 [INFO] running `Command { std: "docker" "start" "-a" "0dec5fa189d07514de74b401c838b2306737d65480a617b70f9aef2722396127", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/run-553f81d5c478a313) [INFO] [stdout] [INFO] [stdout] running 344 tests [INFO] [stdout] test ast::tests::test_output_mode_default ... ok [INFO] [stdout] test ast::tests::test_structured_result_to_markdown_no_host ... ok [INFO] [stdout] test ast::tests::test_structured_result_to_json ... ok [INFO] [stdout] test ast::tests::test_structured_result_to_mcp_format_failed ... ok [INFO] [stdout] test cli::tests::test_format_result_markdown_returns_markdown ... ok [INFO] [stdout] test cli::tests::test_format_result_stream_returns_none ... ok [INFO] [stdout] test ast::tests::test_structured_result_to_markdown_failed_with_exit_code ... ok [INFO] [stdout] test ast::tests::test_structured_result_to_markdown ... ok [INFO] [stdout] test ast::tests::test_structured_result_to_mcp_format ... ok [INFO] [stdout] test cli::tests::test_format_result_json_returns_json ... ok [INFO] [stdout] test cli::tests::test_output_format_markdown_mode ... ok [INFO] [stdout] test completion::tests::test_shell_completion_script_not_empty ... ok [INFO] [stdout] test completion::tests::test_shell_detect_returns_option ... ok [INFO] [stdout] test completion::tests::test_shell_completion_scripts_are_different ... ok [INFO] [stdout] test completion::tests::test_shell_name_zsh ... ok [INFO] [stdout] test config::tests::test_collect_mcp_instructions_ignores_empty_directives ... ok [INFO] [stdout] test cli::tests::test_output_format_json_mode ... ok [INFO] [stdout] test completion::tests::test_shell_name_fish ... ok [INFO] [stdout] test completion::tests::test_shell_name_bash ... ok [INFO] [stdout] test completion::tests::test_shell_name_powershell ... ok [INFO] [stdout] test config::tests::test_collect_mcp_instructions_top_level_only ... ok [INFO] [stdout] test cli::tests::test_output_format_stream_mode ... ok [INFO] [stdout] test config::tests::test_count_unquoted_braces_simple ... ok [INFO] [stdout] test config::tests::test_collect_mcp_instructions_source_expansion_order ... ok [INFO] [stdout] test completion::tests::test_write_completion_file ... ok [INFO] [stdout] test config::tests::test_count_unquoted_braces_in_strings ... ok [INFO] [stdout] test config::tests::test_expand_source_directives_no_directives ... ok [INFO] [stdout] test config::tests::test_expand_source_directives_skips_inside_block ... ok [INFO] [stdout] test config::tests::test_expand_source_directives_circular ... ok [INFO] [stdout] test config::tests::test_get_home_dir_returns_some ... ok [INFO] [stdout] test config::tests::test_load_from_path_dir_without_runfile ... ok [INFO] [stdout] test config::tests::test_expand_source_directives_with_source ... ok [INFO] [stdout] test config::tests::test_count_unquoted_braces_after_comment ... ok [INFO] [stdout] test config::tests::test_expand_source_directives_missing_file_skipped ... ok [INFO] [stdout] test config::tests::test_ensure_mcp_output_dir_fallback ... ok [INFO] [stdout] test config::tests::test_load_from_path_nonexistent ... ok [INFO] [stdout] test config::tests::test_load_from_path_directory ... ok [INFO] [stdout] test config::tests::test_find_runfile_path_custom_nonexistent ... ok [INFO] [stdout] test config::tests::test_no_runfile_error_message ... ok [INFO] [stdout] test config::tests::test_set_and_get_custom_runfile_path ... ok [INFO] [stdout] test executor::tests::test_parse_error_display_has_location_arrow ... ok [INFO] [stdout] test executor::tests::test_parse_error_display_has_caret ... ok [INFO] [stdout] test config::tests::test_set_and_get_mcp_output_dir ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_both_preambles ... ok [INFO] [stdout] test executor::tests::test_parse_error_display_has_source_line ... ok [INFO] [stdout] test executor::tests::test_parse_error_no_raw_rule_names ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_func_preamble_only ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_no_preambles ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_with_errexit ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_var_preamble_only ... ok [INFO] [stdout] test config::tests::test_load_config_with_custom_path ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_no_wrap_for_polyglot ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_errexit_before_preambles ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_with_param_locals_and_preambles ... ok [INFO] [stdout] test config::tests::test_load_merged_config_custom_path ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_with_param_locals ... ok [INFO] [stdout] test interpreter::execution::tests::test_collect_rewritable_siblings_empty ... ok [INFO] [stdout] test interpreter::execution::tests::test_errexit_prefix_bash ... ok [INFO] [stdout] test interpreter::execution::tests::test_build_combined_script_wraps_body_with_return ... ok [INFO] [stdout] test interpreter::execution::tests::test_collect_rewritable_siblings_with_compatible ... ok [INFO] [stdout] test interpreter::execution::tests::test_errexit_prefix_node ... ok [INFO] [stdout] test interpreter::execution::tests::test_errexit_prefix_python ... ok [INFO] [stdout] test interpreter::execution::tests::test_errexit_prefix_noerrexit_attribute ... ok [INFO] [stdout] test interpreter::execution::tests::test_errexit_prefix_sh ... ok [INFO] [stdout] test config::tests::test_find_runfile_path_with_custom_path ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_function_preamble_empty ... ok [INFO] [stdout] test interpreter::execution::tests::test_errexit_prefix_noerrexit_with_other_attrs ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_function_preamble_with_simple_sibling ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_function_preamble_pwsh ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_runfile_dir_preamble_bash ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_function_preamble_with_block_sibling ... ok [INFO] [stdout] test config::tests::test_load_from_path_file_exists ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_function_preamble_excludes_self ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_runfile_dir_preamble_node ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_runfile_dir_preamble_pwsh ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_runfile_dir_preamble_python ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_runfile_dir_preamble_ruby ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_runfile_dir_preamble_sh ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_variable_preamble_empty ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_runfile_dir_preamble_path_with_special_chars ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_variable_preamble_pwsh ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_variable_preamble_pwsh_with_special_chars ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_variable_preamble_shell ... ok [INFO] [stdout] test interpreter::preamble::tests::test_build_variable_preamble_shell_with_special_chars ... ok [INFO] [stdout] test interpreter::preamble::tests::test_collect_compatible_siblings_empty ... ok [INFO] [stdout] test interpreter::preamble::tests::test_collect_compatible_siblings_same_interpreter ... ok [INFO] [stdout] test interpreter::preamble::tests::test_collect_compatible_siblings_with_blocks ... ok [INFO] [stdout] test interpreter::preamble::tests::test_collect_incompatible_colon_siblings_empty ... ok [INFO] [stdout] test ast::tests::test_structured_result_from_outputs_success ... ok [INFO] [stdout] test ast::tests::test_extract_ssh_context_no_match ... ok [INFO] [stdout] test ast::tests::test_structured_result_from_outputs_failure ... ok [INFO] [stdout] test ast::tests::test_structured_result_from_outputs_multiple ... ok [INFO] [stdout] test interpreter::preamble::tests::test_combine_with_builtin_both_empty ... ok [INFO] [stdout] test interpreter::preamble::tests::test_collect_incompatible_colon_siblings_finds_colon_functions ... ok [INFO] [stdout] test interpreter::preamble::tests::test_combine_with_builtin_both_present ... ok [INFO] [stdout] test ast::tests::test_extract_ssh_context_basic ... ok [INFO] [stdout] test ast::tests::test_extract_ssh_context_with_key ... ok [INFO] [stdout] test interpreter::preamble::tests::test_combine_with_builtin_no_builtin ... ok [INFO] [stdout] test interpreter::preamble::tests::test_node_preamble_boolean_default ... ok [INFO] [stdout] test interpreter::preamble::tests::test_node_preamble_float_default ... ok [INFO] [stdout] test interpreter::preamble::tests::test_node_preamble_float_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_node_preamble_integer_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_node_preamble_required_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_node_preamble_rest_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_polyglot_preamble_empty_params ... ok [INFO] [stdout] test interpreter::preamble::tests::test_polyglot_preamble_non_polyglot ... ok [INFO] [stdout] test interpreter::preamble::tests::test_combine_with_builtin_no_user_vars ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_boolean_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_float_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_integer_default ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python3_preamble_works ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_object_no_json_import_without_object ... ok [INFO] [stdout] test interpreter::preamble::tests::test_node_preamble_default_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_object_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_default_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_node_preamble_object_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_ruby_preamble_default_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_rest_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_required_param ... ok [INFO] [stdout] test ast::tests::test_extract_ssh_context_multiple_options ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_integer_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_python_preamble_float_default ... ok [INFO] [stdout] test interpreter::preamble::tests::test_ruby_preamble_float_default ... ok [INFO] [stdout] test interpreter::preamble::tests::test_ruby_preamble_float_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_ruby_preamble_no_json_require_without_object ... ok [INFO] [stdout] test interpreter::preamble::tests::test_ruby_preamble_object_type ... ok [INFO] [stdout] test interpreter::preamble::tests::test_ruby_preamble_required_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_ruby_preamble_rest_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_shell_param_locals_empty ... ok [INFO] [stdout] test interpreter::preamble::tests::test_shell_param_locals_escapes_default ... ok [INFO] [stdout] test interpreter::preamble::tests::test_shell_param_locals_required_param ... ok [INFO] [stdout] test interpreter::preamble::tests::test_shell_param_locals_rest_only ... ok [INFO] [stdout] test interpreter::preamble::tests::test_shell_param_locals_multiple_params ... ok [INFO] [stdout] test interpreter::preamble::tests::test_shell_param_locals_rest_param ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_pwsh_value_backtick ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_pwsh_value_dollar ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_pwsh_value_double_quotes ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_pwsh_value_plain ... ok [INFO] [stdout] test interpreter::preamble::tests::test_shell_param_locals_with_default ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_shell_value_backtick ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_shell_value_backslash ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_shell_value_bang ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_shell_value_dollar ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_shell_value_double_quotes ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_shell_value_plain ... ok [INFO] [stdout] test interpreter::shell::tests::test_interpreter_to_shell_args_bash ... ok [INFO] [stdout] test interpreter::shell::tests::test_get_python_executable_returns_valid ... ok [INFO] [stdout] test interpreter::shell::tests::test_interpreter_to_shell_args_node ... ok [INFO] [stdout] test interpreter::shell::tests::test_interpreter_to_shell_args_pwsh ... ok [INFO] [stdout] test interpreter::shell::tests::test_interpreter_to_shell_args_python3 ... ok [INFO] [stdout] test interpreter::shell::tests::test_interpreter_to_shell_args_ruby ... ok [INFO] [stdout] test interpreter::shell::tests::test_escape_shell_value_combined ... ok [INFO] [stdout] test interpreter::shell::tests::test_interpreter_to_shell_args_sh ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_node ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_direct_path_python3 ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_powershell ... ok [INFO] [stdout] test ast::tests::test_structured_result_from_outputs_with_ssh ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_bash_direct ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_python ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_ruby ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_pwsh ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_sh_direct ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_python3 ... ok [INFO] [stdout] test interpreter::shell::tests::test_resolve_shebang_unknown ... ok [INFO] [stdout] test interpreter::shell::tests::test_strip_shebang_basic ... ok [INFO] [stdout] test interpreter::shell::tests::test_strip_shebang_no_shebang ... ok [INFO] [stdout] test interpreter::tests::test_call_function_not_found ... ok [INFO] [stdout] test interpreter::shell::tests::test_strip_shebang_with_comment_before ... ok [INFO] [stdout] test interpreter::tests::test_call_function_with_args_not_found ... ok [INFO] [stdout] test interpreter::tests::test_execute_assignment ... ok [INFO] [stdout] test interpreter::shell::tests::test_strip_shebang_only_shebang ... ok [INFO] [stdout] test interpreter::tests::test_execute_block_function_def ... ok [INFO] [stdout] test interpreter::tests::test_execute_os_filtered_function ... ok [INFO] [stdout] test interpreter::tests::test_get_block_function_metadata ... ok [INFO] [stdout] test interpreter::tests::test_get_simple_function_attributes ... ok [INFO] [stdout] test interpreter::tests::test_execute_simple_function_def ... ok [INFO] [stdout] nested [INFO] [stdout] test interpreter::tests::test_interpreter_new_default ... ok [INFO] [stdout] hello [INFO] [stdout] test interpreter::tests::test_list_available_functions_sorted ... ok [INFO] [stdout] shell [INFO] [stdout] building [INFO] [stdout] test interpreter::tests::test_replace_var_word_boundary_basic ... ok [INFO] [stdout] test interpreter::tests::test_replace_var_word_boundary_both_present ... ok [INFO] [stdout] test interpreter::tests::test_list_available_functions_empty ... ok [INFO] [stdout] test interpreter::tests::test_replace_var_word_boundary_end_of_string ... ok [INFO] [stdout] test interpreter::tests::test_replace_var_word_boundary_followed_by_punctuation ... ok [INFO] [stdout] test interpreter::tests::test_replace_var_word_boundary_prevents_substring ... ok [INFO] [stdout] test interpreter::tests::test_resolve_function_interpreter_attribute_overrides_shebang ... ok [INFO] [stdout] test interpreter::tests::test_resolve_function_interpreter_shebang ... ok [INFO] [stdout] test interpreter::tests::test_resolve_function_interpreter_shell_attribute ... ok [INFO] [stdout] test interpreter::tests::test_call_function_double_underscore_resolution ... ok [INFO] [stdout] test interpreter::tests::test_set_output_mode ... ok [INFO] [stdout] test interpreter::tests::test_execute_simple_function_call ... ok [INFO] [stdout] test interpreter::tests::test_call_function_subcommand_resolution ... ok [INFO] [stdout] test interpreter::tests::test_resolve_function_interpreter_default ... ok [INFO] [stdout] test interpreter::tests::test_shell_quote_args_empty_arg ... ok [INFO] [stdout] test interpreter::tests::test_call_function_underscore_to_colon_resolution ... ok [INFO] [stdout] test interpreter::tests::test_shell_quote_args_empty_slice ... ok [INFO] [stdout] test interpreter::tests::test_shell_quote_args_safe_chars ... ok [INFO] [stdout] test interpreter::tests::test_shell_quote_args_mixed ... ok [INFO] [stdout] test interpreter::tests::test_shell_quote_args_single_quote ... ok [INFO] [stdout] test interpreter::tests::test_shell_quote_args_special_chars ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_all_args ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_braced ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_braced_missing ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_default_value_with_arg ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_positional ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_with_params_named ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_with_params_fallback_positional ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_with_variables ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_initialize ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_initialize_with_params ... ok [INFO] [stdout] test interpreter::tests::test_take_captured_outputs ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_initialize_appends_runfile_instructions ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_get_cwd ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_with_params_rest ... ok [INFO] [stdout] test interpreter::tests::test_substitute_args_default_value ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_initialize_without_runfile_instructions_section ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_set_cwd_invalid_path ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_set_cwd ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_set_cwd_missing_path ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_tools_call_get_cwd_value ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_tools_call_missing_params ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_tools_call_missing_tool_name ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_tools_call_set_cwd_nonexistent ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_tools_list_includes_builtin ... ok [INFO] [stdout] test mcp::handlers::tests::test_handle_tools_call_unknown_tool ... ok [INFO] [stdout] test mcp::mapping::tests::test_value_to_string_array ... ok [INFO] [stdout] test mcp::mapping::tests::test_value_to_string_bool_false ... ok [INFO] [stdout] test mcp::mapping::tests::test_value_to_string_bool_true ... ok [INFO] [stdout] test mcp::mapping::tests::test_value_to_string_float ... ok [INFO] [stdout] test mcp::mapping::tests::test_value_to_string_null ... ok [INFO] [stdout] test mcp::mapping::tests::test_value_to_string_number ... ok [INFO] [stdout] test mcp::mapping::tests::test_value_to_string_object ... ok [INFO] [stdout] test mcp::mapping::tests::test_value_to_string_string ... ok [INFO] [stdout] test mcp::tests::test_extract_function_metadata_params_with_arg_descriptions ... ok [INFO] [stdout] test mcp::tests::test_extract_function_metadata_with_desc ... ok [INFO] [stdout] test mcp::tests::test_extract_function_metadata_with_params ... ok [INFO] [stdout] test mcp::tests::test_extract_function_metadata_with_rest_param ... ok [INFO] [stdout] test mcp::mapping::tests::test_map_arguments_legacy_arg_mapping ... ok [INFO] [stdout] test mcp::handlers::tests::test_run_command_with_timeout_no_timeout_succeeds ... ok [INFO] [stdout] test mcp::tests::test_extract_function_metadata_without_desc ... ok [INFO] [stdout] test mcp::tests::test_extract_function_metadata_with_args ... ok [INFO] [stdout] test mcp::tests::test_process_request_invalid_jsonrpc_version ... ok [INFO] [stdout] test mcp::tools::tests::test_extract_function_metadata_mixed_optional_required ... ok [INFO] [stdout] test mcp::tests::test_process_request_valid_jsonrpc_version ... ok [INFO] [stdout] test mcp::tools::tests::test_extract_function_metadata_optional_arg ... ok [INFO] [stdout] test mcp::tools::tests::test_extract_function_metadata_optional_arg_description_in_hybrid_mode ... ok [INFO] [stdout] test mcp::mapping::tests::test_map_arguments_named_params_in_order ... ok [INFO] [stdout] test mcp::tools::tests::test_get_builtin_tools ... ok [INFO] [stdout] test mcp::tools::tests::test_sanitise_property_key_invalid_chars_replaced ... ok [INFO] [stdout] test mcp::tools::tests::test_sanitise_property_key_invalid_chars_with_question_mark ... ok [INFO] [stdout] test mcp::tools::tests::test_sanitise_property_key_valid ... ok [INFO] [stdout] test mcp::tools::tests::test_sanitise_property_key_question_mark_optional ... ok [INFO] [stdout] test mcp::tools::tests::test_sanitise_property_key_truncated_to_64 ... ok [INFO] [stdout] test mcp::tools::tests::test_sanitise_property_key_valid_chars ... ok [INFO] [stdout] test output_file::tests::test_exactly_threshold_unchanged ... ok [INFO] [stdout] test output_file::tests::test_long_output_truncated ... ok [INFO] [stdout] test output_file::tests::test_short_output_unchanged ... ok [INFO] [stdout] test output_file::tests::test_single_long_line_truncated ... ok [INFO] [stdout] test parser::error::tests::test_no_raw_rule_names_in_message ... ok [INFO] [stdout] test parser::error::tests::test_multiline_error_points_to_correct_line ... ok [INFO] [stdout] test parser::error::tests::test_display_includes_filename_and_location ... ok [INFO] [stdout] test parser::error::tests::test_display_without_filename ... ok [INFO] [stdout] test parser::error::tests::test_pos_location_extracted ... ok [INFO] [stdout] test parser::error::tests::test_source_line_and_caret_present ... ok [INFO] [stdout] test parser::error::tests::test_hint_is_clean_when_present ... ok [INFO] [stdout] test mcp::mapping::tests::test_map_arguments_no_params_returns_empty ... ok [INFO] [stdout] test parser::tests::test_arg_without_position_hybrid_mode ... ok [INFO] [stdout] test parser::tests::test_block_function_single_quotes_in_double_quoted_string ... ok [INFO] [stdout] test parser::tests::test_block_function_with_multiple_apostrophes_in_comments ... ok [INFO] [stdout] test mcp::mapping::tests::test_map_arguments_non_object_returns_error ... ok [INFO] [stdout] test parser::tests::test_block_function_with_apostrophe_in_comment ... ok [INFO] [stdout] test mcp::handlers::tests::test_run_command_with_timeout_generous_timeout_succeeds ... ok [INFO] [stdout] test parser::tests::test_block_function_with_params ... ok [INFO] [stdout] test mcp::mapping::tests::test_map_arguments_rest_param_expands_array ... ok [INFO] [stdout] test parser::tests::test_all_param_types ... ok [INFO] [stdout] test parser::tests::test_function_with_rest_param ... ok [INFO] [stdout] test parser::tests::test_function_with_params ... ok [INFO] [stdout] test parser::tests::test_empty_parens_still_works ... ok [INFO] [stdout] test parser::tests::test_function_with_mixed_params_and_rest ... ok [INFO] [stdout] test parser::tests::test_function_after_comment_with_apostrophe ... ok [INFO] [stdout] test parser::tests::test_function_with_default_values ... ok [INFO] [stdout] test mcp::mapping::tests::test_resolve_tool_name_colon_sanitised ... ok [INFO] [stdout] test mcp::mapping::tests::test_resolve_tool_name_no_runfile ... ok [INFO] [stdout] test parser::tests::test_function_with_typed_params ... ok [INFO] [stdout] test parser::tests::test_parse_arg_attribute_boolean_type ... ok [INFO] [stdout] test mcp::mapping::tests::test_resolve_tool_name_not_found ... ok [INFO] [stdout] test parser::tests::test_parse_arg_attribute_integer_type ... ok [INFO] [stdout] test parser::tests::test_function_keyword_with_params ... ok [INFO] [stdout] test parser::tests::test_quoted_default_with_comma ... ok [INFO] [stdout] test parser::tests::test_strip_quotes_from_desc ... ok [INFO] [stdout] test parser::tests::test_unquoted_default ... ok [INFO] [stdout] test parser::tests::test_parse_arg_attribute_with_type ... ok [INFO] [stdout] test mcp::mapping::tests::test_resolve_tool_name_only_functions_with_desc_are_found ... ok [INFO] [stdout] test parser::tests::test_parse_command_with_variable_after_equals ... ok [INFO] [stdout] test mcp::mapping::tests::test_resolve_tool_name_simple ... ok [INFO] [stdout] test parser::tests::test_parse_arg_without_explicit_type ... ok [INFO] [stdout] test transpiler::tests::test_indent_ignores_heredoc_marker_in_quotes ... ok [INFO] [stdout] test parser::tests::test_parse_desc_attribute ... ok [INFO] [stdout] test parser::tests::test_single_quoted_default ... ok [INFO] [stdout] test transpiler::tests::test_indent_multiple_heredocs ... ok [INFO] [stdout] test parser::tests::test_short_type_names ... ok [INFO] [stdout] test parser::tests::test_parse_multiple_attributes ... ok [INFO] [stdout] test transpiler::tests::test_indent ... ok [INFO] [stdout] test transpiler::tests::test_indent_skips_heredoc_dash ... ok [INFO] [stdout] test parser::tests::test_strip_quotes_from_arg ... ok [INFO] [stdout] test transpiler::tests::test_indent_with_empty_lines ... ok [INFO] [stdout] test transpiler::tests::test_interpreter_compatibility_pwsh ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_after_command_separators ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_command_position_vs_argument ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_no_colons ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_pnpm_wrapper_pattern ... ok [INFO] [stdout] test transpiler::tests::test_interpreter_compatibility_polyglot ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_simple ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_no_partial_match ... ok [INFO] [stdout] test transpiler::tests::test_interpreter_compatibility_sh_bash ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_should_not_rewrite_arguments ... ok [INFO] [stdout] test transpiler::tests::test_transpile_block_shell_function ... ok [INFO] [stdout] test transpiler::tests::test_transpile_block_pwsh_function ... ok [INFO] [stdout] test transpiler::tests::test_sanitise_name ... ok [INFO] [stdout] test transpiler::tests::test_indent_skips_heredoc_content ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_indented ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_sibling_name_as_argument_to_echo ... ok [INFO] [stdout] test transpiler::tests::test_indent_skips_quoted_heredoc_delimiter ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_call_sites_with_args ... ok [INFO] [stdout] test transpiler::tests::test_transpile_block_with_heredoc ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_no_partial_match ... ok [INFO] [stdout] test transpiler::tests::test_rewrite_word_boundaries ... ok [INFO] [stdout] test transpiler::tests::test_transpile_colon_name ... ok [INFO] [stdout] test transpiler::tests::test_transpile_simple_pwsh_function ... ok [INFO] [stdout] test transpiler::tests::test_transpile_simple_shell_function ... ok [INFO] [stdout] test utils::tests::test_arg_type_to_json_type ... ok [INFO] [stdout] test utils::tests::test_build_heredoc_mask_basic ... ok [INFO] [stdout] test utils::tests::test_build_heredoc_mask_multiple ... ok [INFO] [stdout] test utils::tests::test_extract_heredoc_delimiters_basic ... ok [INFO] [stdout] test utils::tests::test_extract_heredoc_case_sensitive ... ok [INFO] [stdout] test utils::tests::test_extract_heredoc_inside_quotes ... ok [INFO] [stdout] test utils::tests::test_extract_heredoc_with_dot_in_delimiter ... ok [INFO] [stdout] test utils::tests::test_extract_heredoc_with_hyphen_in_delimiter ... ok [INFO] [stdout] test utils::tests::test_matches_current_platform_multiple_os ... ok [INFO] [stdout] test utils::tests::test_matches_current_platform_windows ... ok [INFO] [stdout] test utils::tests::test_extract_heredoc_skips_herestring ... ok [INFO] [stdout] test utils::tests::test_extract_heredoc_escaped_quotes_in_string ... ok [INFO] [stdout] test utils::tests::test_matches_current_platform_unix ... ok [INFO] [stdout] test utils::tests::test_matches_current_platform_no_os_attrs ... ok [INFO] [stdout] test mcp::handlers::tests::test_run_command_with_timeout_expires ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 344 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.08s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/run-f796912ea5fea545) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests run [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" "0dec5fa189d07514de74b401c838b2306737d65480a617b70f9aef2722396127", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0dec5fa189d07514de74b401c838b2306737d65480a617b70f9aef2722396127", kill_on_drop: false }` [INFO] [stdout] 0dec5fa189d07514de74b401c838b2306737d65480a617b70f9aef2722396127