[INFO] fetching crate rush-sh 0.5.8... [INFO] testing rush-sh-0.5.8 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7 [INFO] extracting crate rush-sh 0.5.8 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate rush-sh 0.5.8 [INFO] finished tweaking crates.io crate rush-sh 0.5.8 [INFO] tweaked toml for crates.io crate rush-sh 0.5.8 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate rush-sh 0.5.8 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate rush-sh 0.5.8 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rustyline v17.0.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d22537a7444d8a99984511883b8a0ea65ad109180e14346f2e34101432767d78 [INFO] running `Command { std: "docker" "start" "-a" "d22537a7444d8a99984511883b8a0ea65ad109180e14346f2e34101432767d78", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d22537a7444d8a99984511883b8a0ea65ad109180e14346f2e34101432767d78", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d22537a7444d8a99984511883b8a0ea65ad109180e14346f2e34101432767d78", kill_on_drop: false }` [INFO] [stdout] d22537a7444d8a99984511883b8a0ea65ad109180e14346f2e34101432767d78 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ed34ef59368862369ee90f555029d2839df082b76ec7788aa7af6d75802373c5 [INFO] running `Command { std: "docker" "start" "-a" "ed34ef59368862369ee90f555029d2839df082b76ec7788aa7af6d75802373c5", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.9.4 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling nibble_vec v0.1.0 [INFO] [stderr] Compiling endian-type v0.1.2 [INFO] [stderr] Compiling home v0.5.11 [INFO] [stderr] Compiling unicode-width v0.2.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling anstream v0.6.20 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling radix_trie v0.2.1 [INFO] [stderr] Compiling clap_builder v4.5.48 [INFO] [stderr] Compiling fd-lock v4.0.4 [INFO] [stderr] Compiling rustyline v17.0.2 [INFO] [stderr] Compiling clap_derive v4.5.47 [INFO] [stderr] Compiling clap v4.5.48 [INFO] [stderr] Compiling rush-sh v0.5.8 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.30s [INFO] running `Command { std: "docker" "inspect" "ed34ef59368862369ee90f555029d2839df082b76ec7788aa7af6d75802373c5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ed34ef59368862369ee90f555029d2839df082b76ec7788aa7af6d75802373c5", kill_on_drop: false }` [INFO] [stdout] ed34ef59368862369ee90f555029d2839df082b76ec7788aa7af6d75802373c5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3be91e455b51469d5ce49123a6ac8624ad47e22a58681de1659acb46916717ee [INFO] running `Command { std: "docker" "start" "-a" "3be91e455b51469d5ce49123a6ac8624ad47e22a58681de1659acb46916717ee", kill_on_drop: false }` [INFO] [stderr] Compiling rush-sh v0.5.8 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.24s [INFO] running `Command { std: "docker" "inspect" "3be91e455b51469d5ce49123a6ac8624ad47e22a58681de1659acb46916717ee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3be91e455b51469d5ce49123a6ac8624ad47e22a58681de1659acb46916717ee", kill_on_drop: false }` [INFO] [stdout] 3be91e455b51469d5ce49123a6ac8624ad47e22a58681de1659acb46916717ee [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 76fa18389831700b0d4b565402e51c73af494ad53696d6254374d91fb69e00c2 [INFO] running `Command { std: "docker" "start" "-a" "76fa18389831700b0d4b565402e51c73af494ad53696d6254374d91fb69e00c2", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rush_sh-c425ffff09cf27ba) [INFO] [stdout] [INFO] [stdout] running 301 tests [INFO] [stdout] test arithmetic::tests::test_evaluate_addition ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_simple ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_comparison ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_division_by_zero ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_undefined_variable ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_variable ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_with_parentheses ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_with_precedence ... ok [INFO] [stdout] test arithmetic::tests::test_tokenize_parentheses ... ok [INFO] [stdout] test arithmetic::tests::test_tokenize_operators ... ok [INFO] [stdout] test arithmetic::tests::test_tokenize_simple_numbers ... ok [INFO] [stdout] test arithmetic::tests::test_tokenize_variables ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_empty ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_in_word_mixed ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_in_word_nested ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_in_word_simple ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_in_word_with_ranges ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_no_braces ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_word_without_braces ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_char_range ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_numeric_range ... ok [INFO] [stdout] test brace_expansion::tests::test_parse_brace_content_nested ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_mixed_tokens ... ok [INFO] [stdout] test brace_expansion::tests::test_parse_brace_content_simple_nested ... ok [INFO] [stdout] test brace_expansion::tests::test_split_top_level_nested_braces ... ok [INFO] [stdout] test builtins::builtin_alias::tests::test_execute_builtin_alias_set ... ok [INFO] [stdout] test builtins::builtin_alias::tests::test_execute_builtin_alias_show ... ok [INFO] [stdout] test brace_expansion::tests::test_split_top_level_simple ... ok [INFO] [stdout] test builtins::builtin_alias::tests::test_execute_builtin_alias_show_not_found ... ok [INFO] [stdout] test brace_expansion::tests::test_split_top_level_with_braces ... ok [INFO] [stdout] test builtins::builtin_cd::tests::test_cd_to_invalid_directory ... ok [INFO] [stdout] test builtins::builtin_cd::tests::test_cd_no_arguments ... ok [INFO] [stdout] test builtins::builtin_declare::tests::test_declare_builtin_run_invalid_option ... ok [INFO] [stdout] test builtins::builtin_alias::tests::test_execute_builtin_alias_list ... ok [INFO] [stdout] test builtins::builtin_declare::tests::test_declare_builtin_run_list_functions ... ok [INFO] [stdout] test builtins::builtin_cd::tests::test_cd_to_valid_directory ... ok [INFO] [stdout] test builtins::builtin_dirs::tests::test_execute_builtin_dirs ... ok [INFO] [stdout] test builtins::builtin_declare::tests::test_declare_builtin_run_show_function ... ok [INFO] [stdout] test builtins::builtin_exit::tests::test_exit_builtin_run ... ok [INFO] [stdout] test builtins::builtin_export::tests::test_export_builtin_export_existing ... ok [INFO] [stdout] test builtins::builtin_export::tests::test_export_builtin_list ... ok [INFO] [stdout] test builtins::builtin_help::tests::test_help_builtin_run ... ok [INFO] [stdout] test builtins::builtin_pwd::tests::test_pwd_builtin_run ... ok [INFO] [stdout] test builtins::builtin_set_color_scheme::tests::test_set_color_scheme_builtin_dark ... ok [INFO] [stdout] test builtins::builtin_declare::tests::test_declare_builtin_run_nonexistent_function ... ok [INFO] [stdout] test builtins::builtin_export::tests::test_export_builtin_set ... ok [INFO] [stdout] test builtins::builtin_popd::tests::test_execute_builtin_popd ... ok [INFO] [stdout] test builtins::builtin_pushd::tests::test_execute_builtin_pushd ... ok [INFO] [stdout] test builtins::builtin_set_color_scheme::tests::test_set_color_scheme_builtin_default ... ok [INFO] [stdout] test builtins::builtin_env::tests::test_env_builtin_run ... ok [INFO] [stdout] test builtins::builtin_set_colors::tests::test_set_colors_builtin_disable ... ok [INFO] [stdout] test builtins::builtin_set_colors::tests::test_set_colors_builtin_enable ... ok [INFO] [stdout] test builtins::builtin_set_condensed::tests::test_set_condensed_builtin_enable ... ok [INFO] [stdout] test builtins::builtin_set_condensed::tests::test_set_condensed_builtin_status ... ok [INFO] [stdout] test builtins::builtin_shift::tests::test_shift_builtin_no_args ... ok [INFO] [stdout] test builtins::builtin_set_condensed::tests::test_set_condensed_builtin_disable ... ok [INFO] [stdout] test builtins::builtin_shift::tests::test_shift_builtin_custom_count ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_f_option_directory ... ok [INFO] [stdout] test builtins::builtin_shift::tests::test_shift_builtin_invalid_number ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_d_option_directory ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_eq_equal ... ok [INFO] [stdout] test builtins::builtin_shift::tests::test_shift_builtin_default ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ge_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ge_greater ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ge_less ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_gt_greater ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_gt_less ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_invalid_option ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_le_greater ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_le_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_le_less ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_lt_less ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ne_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ne_not_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_lt_greater ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_no_arguments ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_n_option_non_empty_string ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_n_option_empty_string ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_eq_not_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_numeric_invalid_right_operand ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_test_builtin_description ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_n_option_missing_argument ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_test_builtin_name ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_d_option_regular_file ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_z_option_empty_string ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_e_option_existing_file ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_z_option_missing_argument ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_z_option_non_empty_string ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_is_trappable ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_normalize_signal_name ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_signal_to_name ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_f_option_regular_file ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_display_all ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_numeric_invalid_left_operand ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_numeric_invalid_operator ... ok [INFO] [stdout] test builtins::builtin_source::tests::test_execute_builtin_source_variable_sharing ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_e_option_non_existing_file ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_list_signals ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_empty_action ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_invalid_signal ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_reset_handler ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_set_handler ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_multiple_signals ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_signal_numbers ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_uncatchable_signal ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_all ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_all_no_aliases ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_all_too_many_args ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_no_args ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_not_found ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_too_many_args ... ok [INFO] [stdout] test builtins::builtin_unset::tests::test_unset_builtin_no_args ... ok [INFO] [stdout] test builtins::builtin_unset::tests::test_unset_builtin_unset_variable ... ok [INFO] [stdout] test builtins::tests::test_execute_builtin_unknown ... ok [INFO] [stdout] test builtins::tests::test_get_builtin_commands ... ok [INFO] [stdout] test builtins::tests::test_is_builtin ... ok [INFO] [stdout] test completion::tests::test_builtin_commands ... ok [INFO] [stdout] test completion::tests::test_completion_context_update ... ok [INFO] [stdout] test completion::tests::test_directory_completion_formatting ... ok [INFO] [stdout] test completion::tests::test_first_word_file_completion_precedence ... ok [INFO] [stdout] test completion::tests::test_is_first_word ... ok [INFO] [stdout] test completion::tests::test_multi_match_completion_single_candidate ... ok [INFO] [stdout] test completion::tests::test_multi_match_completion_empty_candidates ... ok [INFO] [stdout] test completion::tests::test_parse_path_for_completion_current_dir ... ok [INFO] [stdout] test completion::tests::test_parse_path_for_completion_home ... ok [INFO] [stdout] test completion::tests::test_multi_match_completion_cycling ... ok [INFO] [stdout] test completion::tests::test_parse_path_for_completion_with_directory ... ok [INFO] [stdout] test completion::tests::test_repeated_completion_detection ... ok [INFO] [stdout] hello [INFO] [stdout] test completion::tests::test_parse_path_for_completion_absolute ... ok [INFO] [stdout] test completion::tests::test_rush_candidate_display ... ok [INFO] [stdout] test completion::tests::test_get_file_candidates_with_directory ... ok [INFO] [stdout] test completion::tests::test_get_file_candidates_basic ... ok [INFO] [stdout] test executor::tests::test_execute_empty_pipeline ... ok [INFO] [stdout] test executor::tests::test_execute_function_definition ... ok [INFO] [stdout] test executor::tests::test_execute_function_call ... ok [INFO] [stdout] test executor::tests::test_execute_nonexistent_function ... ok [INFO] [stdout] test executor::tests::test_here_document_with_variable_expansion ... ok [INFO] [stdout] test executor::tests::test_here_document_with_command_substitution_builtin ... ok [INFO] [stdout] test executor::tests::test_here_string_execution ... ok [INFO] [stdout] test lexer::tests::test_append_redirection ... ok [INFO] [stdout] test executor::tests::test_here_document_execution ... Hello from functionok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_division_by_zero ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_simple ... ok [INFO] [stdout] test lexer::tests::test_basic_word ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_with_variables ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_unmatched_parentheses ... ok [INFO] [stdout] inner_donetest executor::tests::test_execute_single_command ... ok [INFO] [stdout] test executor::tests::test_execute_function_integration ... ok [INFO] [stdout] hellosuccesstest lexer::tests::test_command_substitution_backticks ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_comparison ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_complex ... ok [INFO] [stdout] test executor::tests::test_execute_single_command_external ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_backticks_failure_fallback ... ok [INFO] [stdout] arg1 [INFO] [stdout] test executor::tests::test_execute_pipeline ... ok [INFO] [stdout] outer_donetest executor::tests::test_execute_single_command_external_nonexistent ... ok [INFO] [stdout] test executor::tests::test_execute_single_command_builtin ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_in_pipeline ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_failure_fallback ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_backticks_in_assignment ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_backticks_with_arguments ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_special_characters ... ok [INFO] [stdout] test executor::tests::test_execute_function_call_with_args ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_dollar_paren ... ok [INFO] [stdout] test executor::tests::test_execute_function_with_local_variables ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_multiple_spaces ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_redirection ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_in_assignment ... ok [INFO] [stdout] test lexer::tests::test_complex_pipeline ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_arguments ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_empty_output ... ok [INFO] [stdout] test lexer::tests::test_double_quotes ... ok [INFO] [stdout] test executor::tests::test_execute_nested_function_calls ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_quotes ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_newlines ... ok [INFO] [stdout] test lexer::tests::test_empty_input ... ok [INFO] [stdout] test lexer::tests::test_double_quotes_with_semicolons ... ok [INFO] [stdout] test lexer::tests::test_expand_aliases_chained ... ok [INFO] [stdout] test lexer::tests::test_expand_aliases_no_alias ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_backticks_with_quotes ... ok [INFO] [stdout] test lexer::tests::test_empty_variable ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_variables ... ok [INFO] [stdout] test lexer::tests::test_expand_aliases_simple ... ok [INFO] [stdout] test lexer::tests::test_expand_aliases_with_args ... ok [INFO] [stdout] test lexer::tests::test_here_document_redirection ... ok [INFO] [stdout] test lexer::tests::test_here_document_with_quoted_delimiter ... ok [INFO] [stdout] test lexer::tests::test_here_string_redirection ... ok [INFO] [stdout] test lexer::tests::test_local_keyword ... ok [INFO] [stdout] test lexer::tests::test_multiple_words ... ok [INFO] [stdout] test lexer::tests::test_local_keyword_in_function ... ok [INFO] [stdout] test lexer::tests::test_nested_command_substitution ... ok [INFO] [stdout] test lexer::tests::test_only_spaces ... ok [INFO] [stdout] test lexer::tests::test_here_string_without_quotes ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_alternative ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_alternative_unset ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_complex_expression ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_default ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_default_set_variable ... ok [INFO] [stdout] test lexer::tests::test_mixed_quotes_and_variables ... ok [INFO] [stdout] test lexer::tests::test_if_tokens ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_assign_default ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_error_unset ... ok [INFO] [stdout] test lexer::tests::test_input_redirection ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_in_double_quotes ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_mixed_with_regular_variables ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_remove_shortest_prefix ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_remove_longest_suffix ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_simple ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_substitute ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_remove_longest_prefix ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_substring ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_substring_with_length ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_remove_shortest_suffix ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_substitute_all ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_length ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_unset_variable ... ok [INFO] [stdout] test lexer::tests::test_pipe ... ok [INFO] [stdout] test lexer::tests::test_redirections ... ok [INFO] [stdout] test lexer::tests::test_redirections_mixed ... ok [INFO] [stdout] test lexer::tests::test_semicolons_outside_quotes ... ok [INFO] [stdout] test lexer::tests::test_single_quotes ... ok [INFO] [stdout] test lexer::tests::test_variable_expansion ... ok [INFO] [stdout] test lexer::tests::test_single_quotes_with_semicolons ... ok [INFO] [stdout] test lexer::tests::test_variable_in_quotes_with_pipe ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_default_modifier ... ok [INFO] [stdout] test lexer::tests::test_unclosed_double_quote ... ok [INFO] [stdout] test lexer::tests::test_variable_expansion_nonexistent ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_basic ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_basic_unset_intermediate ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_default_modifier_unset ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_at ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_basic ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_empty_prefix ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_basic_with_local_scope ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_simple_variable ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_no_matches ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_basic_unset_target ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_alternative_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_assign_default_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_default_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_indirect_prefix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_indirect_basic ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_invalid_character ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_remove_longest_prefix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_error_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_with_locals ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_substring ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_special_characters ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_mixed_scopes ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_empty ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_remove_longest_suffix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_remove_shortest_prefix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_remove_shortest_suffix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_simple_variable ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_substitute ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_substitute_all ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_substring ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_substring_with_length ... ok [INFO] [stdout] test parser::tests::test_append_redirection ... ok [INFO] [stdout] test parser::tests::test_command_with_args ... ok [INFO] [stdout] test parser::tests::test_complex_pipeline_with_redirections ... ok [INFO] [stdout] test parser::tests::test_empty_tokens ... ok [INFO] [stdout] test parser::tests::test_input_redirection ... ok [INFO] [stdout] test parser::tests::test_multiple_redirections ... ok [INFO] [stdout] test parser::tests::test_only_pipe ... ok [INFO] [stdout] test parser::tests::test_output_redirection ... ok [INFO] [stdout] test parser::tests::test_parse_assignment ... ok [INFO] [stdout] test parser::tests::test_parse_assignment_invalid ... ok [INFO] [stdout] test parser::tests::test_parse_function_definition ... ok [INFO] [stdout] test parser::tests::test_parse_assignment_quoted ... ok [INFO] [stdout] test parser::tests::test_parse_function_definition_empty ... ok [INFO] [stdout] test parser::tests::test_parse_function_definition_legacy_format ... ok [INFO] [stdout] test parser::tests::test_parse_here_document_redirection ... ok [INFO] [stdout] test parser::tests::test_parse_if_elif ... ok [INFO] [stdout] test parser::tests::test_parse_here_string_redirection ... ok [INFO] [stdout] test parser::tests::test_parse_local_assignment_invalid_var_name ... ok [INFO] [stdout] test parser::tests::test_parse_local_assignment ... ok [INFO] [stdout] test parser::tests::test_parse_local_assignment_separate_tokens ... ok [INFO] [stdout] test parser::tests::test_parse_mixed_redirections ... ok [INFO] [stdout] test parser::tests::test_pipeline ... ok [INFO] [stdout] test parser::tests::test_redirection_without_file ... ok [INFO] [stdout] test parser::tests::test_parse_if ... ok [INFO] [stdout] test state::tests::test_nested_local_scopes ... ok [INFO] [stdout] test state::tests::test_condensed_cwd_environment_variable ... ok [INFO] [stdout] test parser::tests::test_single_command ... ok [INFO] [stdout] test state::tests::test_positional_parameters ... ok [INFO] [stdout] test state::tests::test_positional_parameters_empty ... ok [INFO] [stdout] test state::tests::test_get_full_cwd ... ok [INFO] [stdout] test state::tests::test_get_prompt ... ok [INFO] [stdout] test state::tests::test_get_user_hostname ... ok [INFO] [stdout] test state::tests::test_export_variable ... ok [INFO] [stdout] test state::tests::test_shell_state_basic ... ok [INFO] [stdout] test state::tests::test_local_variable_scoping ... ok [INFO] [stdout] test state::tests::test_special_variables ... ok [INFO] [stdout] test state::tests::test_shift_positional_params ... ok [INFO] [stdout] test state::tests::test_prompt_with_condensed_setting ... ok [INFO] [stdout] test state::tests::test_variable_set_in_local_scope ... ok [INFO] [stdout] test state::tests::test_push_positional_param ... ok [INFO] [stdout] test state::tests::test_unset_variable ... ok [INFO] [stdout] test completion::tests::test_get_command_candidates ... ok [INFO] [stdout] test completion::tests::test_get_command_candidates_exact ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 301 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rush_sh-d76c4d37f3a6989c) [INFO] [stdout] [INFO] [stdout] running 325 tests [INFO] [stdout] test arithmetic::tests::test_evaluate_addition ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_comparison ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_simple ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_variable ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_division_by_zero ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_undefined_variable ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_with_parentheses ... ok [INFO] [stdout] test arithmetic::tests::test_evaluate_with_precedence ... ok [INFO] [stdout] test arithmetic::tests::test_tokenize_operators ... ok [INFO] [stdout] test arithmetic::tests::test_tokenize_parentheses ... ok [INFO] [stdout] test arithmetic::tests::test_tokenize_simple_numbers ... ok [INFO] [stdout] test arithmetic::tests::test_tokenize_variables ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_empty ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_in_word_mixed ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_in_word_nested ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_in_word_simple ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_in_word_with_ranges ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_no_braces ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_mixed_tokens ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_braces_word_without_braces ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_char_range ... ok [INFO] [stdout] test brace_expansion::tests::test_expand_numeric_range ... ok [INFO] [stdout] test brace_expansion::tests::test_parse_brace_content_nested ... ok [INFO] [stdout] test brace_expansion::tests::test_split_top_level_nested_braces ... ok [INFO] [stdout] test brace_expansion::tests::test_parse_brace_content_simple_nested ... ok [INFO] [stdout] test brace_expansion::tests::test_split_top_level_simple ... ok [INFO] [stdout] test brace_expansion::tests::test_split_top_level_with_braces ... ok [INFO] [stdout] test builtins::builtin_alias::tests::test_execute_builtin_alias_list ... ok [INFO] [stdout] test builtins::builtin_alias::tests::test_execute_builtin_alias_show ... ok [INFO] [stdout] test builtins::builtin_alias::tests::test_execute_builtin_alias_show_not_found ... ok [INFO] [stdout] test builtins::builtin_cd::tests::test_cd_to_valid_directory ... ok [INFO] [stdout] test builtins::builtin_declare::tests::test_declare_builtin_run_invalid_option ... ok [INFO] [stdout] test builtins::builtin_cd::tests::test_cd_to_invalid_directory ... ok [INFO] [stdout] test builtins::builtin_declare::tests::test_declare_builtin_run_list_functions ... ok [INFO] [stdout] test builtins::builtin_exit::tests::test_exit_builtin_run ... ok [INFO] [stdout] test builtins::builtin_cd::tests::test_cd_no_arguments ... ok [INFO] [stdout] test builtins::builtin_export::tests::test_export_builtin_export_existing ... ok [INFO] [stdout] test builtins::builtin_alias::tests::test_execute_builtin_alias_set ... ok [INFO] [stdout] test builtins::builtin_export::tests::test_export_builtin_list ... ok [INFO] [stdout] test builtins::builtin_popd::tests::test_execute_builtin_popd ... ok [INFO] [stdout] test builtins::builtin_declare::tests::test_declare_builtin_run_nonexistent_function ... ok [INFO] [stdout] test builtins::builtin_declare::tests::test_declare_builtin_run_show_function ... ok [INFO] [stdout] test builtins::builtin_set_color_scheme::tests::test_set_color_scheme_builtin_dark ... ok [INFO] [stdout] test builtins::builtin_dirs::tests::test_execute_builtin_dirs ... ok [INFO] [stdout] test builtins::builtin_export::tests::test_export_builtin_set ... ok [INFO] [stdout] test builtins::builtin_help::tests::test_help_builtin_run ... ok [INFO] [stdout] test builtins::builtin_set_colors::tests::test_set_colors_builtin_disable ... ok [INFO] [stdout] test builtins::builtin_pushd::tests::test_execute_builtin_pushd ... ok [INFO] [stdout] test builtins::builtin_pwd::tests::test_pwd_builtin_run ... ok [INFO] [stdout] test builtins::builtin_set_color_scheme::tests::test_set_color_scheme_builtin_default ... ok [INFO] [stdout] test builtins::builtin_env::tests::test_env_builtin_run ... ok [INFO] [stdout] test builtins::builtin_set_condensed::tests::test_set_condensed_builtin_disable ... ok [INFO] [stdout] test builtins::builtin_set_condensed::tests::test_set_condensed_builtin_status ... ok [INFO] [stdout] test builtins::builtin_shift::tests::test_shift_builtin_custom_count ... ok [INFO] [stdout] test builtins::builtin_set_condensed::tests::test_set_condensed_builtin_enable ... ok [INFO] [stdout] test builtins::builtin_set_colors::tests::test_set_colors_builtin_enable ... ok [INFO] [stdout] test builtins::builtin_shift::tests::test_shift_builtin_default ... ok [INFO] [stdout] test builtins::builtin_shift::tests::test_shift_builtin_invalid_number ... ok [INFO] [stdout] test builtins::builtin_shift::tests::test_shift_builtin_no_args ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_d_option_directory ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_e_option_non_existing_file ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_eq_not_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_f_option_directory ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_eq_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ge_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ge_greater ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ge_less ... ok [INFO] [stdout] test builtins::builtin_source::tests::test_execute_builtin_source_variable_sharing ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_d_option_regular_file ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_gt_greater ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_e_option_existing_file ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_le_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_le_greater ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_invalid_option ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_f_option_regular_file ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_le_less ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_gt_less ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_lt_greater ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ne_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_ne_not_equal ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_lt_less ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_n_option_empty_string ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_numeric_invalid_operator ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_numeric_invalid_left_operand ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_test_builtin_description ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_n_option_non_empty_string ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_no_arguments ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_z_option_empty_string ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_is_trappable ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_numeric_invalid_right_operand ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_normalize_signal_name ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_z_option_missing_argument ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_n_option_missing_argument ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_signal_to_name ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_empty_action ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_invalid_signal ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_display_all ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_test_builtin_name ... ok [INFO] [stdout] test builtins::builtin_test::tests::test_z_option_non_empty_string ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_list_signals ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_multiple_signals ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_reset_handler ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_set_handler ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_signal_numbers ... ok [INFO] [stdout] test builtins::builtin_trap::tests::test_trap_uncatchable_signal ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_all ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_all_no_aliases ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_all_too_many_args ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_no_args ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_too_many_args ... ok [INFO] [stdout] test builtins::builtin_unset::tests::test_unset_builtin_no_args ... ok [INFO] [stdout] test builtins::builtin_unalias::tests::test_execute_builtin_unalias_not_found ... ok [INFO] [stdout] test builtins::tests::test_execute_builtin_unknown ... ok [INFO] [stdout] test builtins::tests::test_get_builtin_commands ... ok [INFO] [stdout] test builtins::tests::test_is_builtin ... ok [INFO] [stdout] test completion::tests::test_builtin_commands ... ok [INFO] [stdout] test builtins::builtin_unset::tests::test_unset_builtin_unset_variable ... ok [INFO] [stdout] test completion::tests::test_first_word_file_completion_precedence ... ok [INFO] [stdout] test completion::tests::test_completion_context_update ... ok [INFO] [stdout] test completion::tests::test_get_file_candidates_basic ... ok [INFO] [stdout] test completion::tests::test_get_file_candidates_with_directory ... ok [INFO] [stdout] test completion::tests::test_is_first_word ... ok [INFO] [stdout] test completion::tests::test_multi_match_completion_cycling ... ok [INFO] [stdout] test completion::tests::test_multi_match_completion_empty_candidates ... ok [INFO] [stdout] test completion::tests::test_multi_match_completion_single_candidate ... ok [INFO] [stdout] test completion::tests::test_directory_completion_formatting ... ok [INFO] [stdout] test completion::tests::test_parse_path_for_completion_absolute ... ok [INFO] [stdout] arg1 [INFO] [stdout] test completion::tests::test_parse_path_for_completion_current_dir ... ok [INFO] [stdout] test completion::tests::test_parse_path_for_completion_home ... inner_doneok [INFO] [stdout] test completion::tests::test_rush_candidate_display ... ok [INFO] [stdout] test executor::tests::test_execute_empty_pipeline ... ok [INFO] [stdout] test completion::tests::test_repeated_completion_detection ... ok [INFO] [stdout] test completion::tests::test_parse_path_for_completion_with_directory ... ok [INFO] [stdout] test executor::tests::test_execute_function_call_with_args ... ok [INFO] [stdout] hello [INFO] [stdout] test executor::tests::test_execute_nonexistent_function ... ok [INFO] [stdout] outer_donetest executor::tests::test_execute_function_definition ... ok [INFO] [stdout] test executor::tests::test_execute_function_call ... ok [INFO] [stdout] test executor::tests::test_here_document_with_command_substitution_builtin ... ok [INFO] [stdout] test executor::tests::test_here_document_execution ... ok [INFO] [stdout] successtest executor::tests::test_execute_single_command_external ... ok [INFO] [stdout] test executor::tests::test_here_document_with_variable_expansion ... ok [INFO] [stdout] test executor::tests::test_execute_single_command ... ok [INFO] [stdout] test executor::tests::test_execute_nested_function_calls ... Hello from functionok [INFO] [stdout] test executor::tests::test_execute_single_command_builtin ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_complex ... ok [INFO] [stdout] test lexer::tests::test_append_redirection ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_comparison ... ok [INFO] [stdout] test executor::tests::test_execute_function_with_local_variables ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_simple ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_unmatched_parentheses ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_division_by_zero ... ok [INFO] [stdout] test executor::tests::test_here_string_execution ... ok [INFO] [stdout] hellotest lexer::tests::test_command_substitution_backticks ... ok [INFO] [stdout] test lexer::tests::test_arithmetic_expansion_with_variables ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_backticks_failure_fallback ... ok [INFO] [stdout] test executor::tests::test_execute_single_command_external_nonexistent ... ok [INFO] [stdout] test lexer::tests::test_basic_word ... ok [INFO] [stdout] test executor::tests::test_execute_function_integration ... ok [INFO] [stdout] test executor::tests::test_execute_pipeline ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_backticks_in_assignment ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_failure_fallback ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_in_pipeline ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_special_characters ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_backticks_with_arguments ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_in_assignment ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_dollar_paren ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_empty_output ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_redirection ... ok [INFO] [stdout] test lexer::tests::test_complex_pipeline ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_multiple_spaces ... ok [INFO] [stdout] test lexer::tests::test_double_quotes ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_backticks_with_quotes ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_quotes ... ok [INFO] [stdout] test lexer::tests::test_double_quotes_with_semicolons ... ok [INFO] [stdout] test lexer::tests::test_empty_input ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_arguments ... ok [INFO] [stdout] test lexer::tests::test_expand_aliases_no_alias ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_newlines ... ok [INFO] [stdout] test lexer::tests::test_empty_variable ... ok [INFO] [stdout] test lexer::tests::test_expand_aliases_simple ... ok [INFO] [stdout] test lexer::tests::test_expand_aliases_with_args ... ok [INFO] [stdout] test lexer::tests::test_here_document_redirection ... ok [INFO] [stdout] test lexer::tests::test_here_string_redirection ... ok [INFO] [stdout] test lexer::tests::test_here_string_without_quotes ... ok [INFO] [stdout] test lexer::tests::test_here_document_with_quoted_delimiter ... ok [INFO] [stdout] test lexer::tests::test_if_tokens ... ok [INFO] [stdout] test lexer::tests::test_local_keyword ... ok [INFO] [stdout] test lexer::tests::test_local_keyword_in_function ... ok [INFO] [stdout] test lexer::tests::test_multiple_words ... ok [INFO] [stdout] test lexer::tests::test_nested_command_substitution ... ok [INFO] [stdout] test lexer::tests::test_input_redirection ... ok [INFO] [stdout] test lexer::tests::test_command_substitution_with_variables ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_alternative ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_alternative_unset ... ok [INFO] [stdout] test lexer::tests::test_only_spaces ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_assign_default ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_complex_expression ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_default ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_default_set_variable ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_error_unset ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_in_double_quotes ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_length ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_mixed_with_regular_variables ... ok [INFO] [stdout] test lexer::tests::test_expand_aliases_chained ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_remove_longest_suffix ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_remove_shortest_suffix ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_remove_shortest_prefix ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_remove_longest_prefix ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_simple ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_substring_with_length ... ok [INFO] [stdout] test lexer::tests::test_pipe ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_substitute_all ... ok [INFO] [stdout] test lexer::tests::test_redirections ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_substring ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_unset_variable ... ok [INFO] [stdout] test lexer::tests::test_mixed_quotes_and_variables ... ok [INFO] [stdout] test lexer::tests::test_semicolons_outside_quotes ... ok [INFO] [stdout] test lexer::tests::test_redirections_mixed ... ok [INFO] [stdout] test lexer::tests::test_single_quotes_with_semicolons ... ok [INFO] [stdout] test lexer::tests::test_unclosed_double_quote ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_default_modifier_unset ... ok [INFO] [stdout] test lexer::tests::test_single_quotes ... ok [INFO] [stdout] test lexer::tests::test_variable_expansion ... ok [INFO] [stdout] test lexer::tests::test_variable_expansion_nonexistent ... ok [INFO] [stdout] test lexer::tests::test_variable_in_quotes_with_pipe ... ok [INFO] [stdout] test lexer::tests::test_parameter_expansion_substitute ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_default_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_basic ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_basic_unset_intermediate ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_basic_unset_target ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_at ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_basic_with_local_scope ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_empty_prefix ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_mixed_scopes ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_special_characters ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_no_matches ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_substring ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_default_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_indirect_basic ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_simple_variable ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_indirect_prefix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_remove_longest_prefix ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_basic ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_remove_longest_suffix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_error_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_alternative_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_empty ... ok [INFO] [stdout] test parameter_expansion::tests::test_expand_indirect_prefix_with_locals ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_invalid_character ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_assign_default_modifier ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_remove_shortest_prefix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_simple_variable ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_remove_shortest_suffix ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_substitute ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_substitute_all ... ok [INFO] [stdout] test parser::tests::test_append_redirection ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_substring ... ok [INFO] [stdout] test parser::tests::test_empty_tokens ... ok [INFO] [stdout] test parser::tests::test_command_with_args ... ok [INFO] [stdout] test parameter_expansion::tests::test_parse_substring_with_length ... ok [INFO] [stdout] test parser::tests::test_multiple_redirections ... ok [INFO] [stdout] test parser::tests::test_parse_assignment ... ok [INFO] [stdout] test parser::tests::test_input_redirection ... ok [INFO] [stdout] test parser::tests::test_complex_pipeline_with_redirections ... ok [INFO] [stdout] test parser::tests::test_only_pipe ... ok [INFO] [stdout] test parser::tests::test_parse_function_definition_empty ... ok [INFO] [stdout] test parser::tests::test_parse_function_definition_legacy_format ... ok [INFO] [stdout] test parser::tests::test_parse_here_string_redirection ... ok [INFO] [stdout] test parser::tests::test_parse_if_elif ... ok [INFO] [stdout] test parser::tests::test_parse_if ... ok [INFO] [stdout] test parser::tests::test_parse_here_document_redirection ... ok [INFO] [stdout] test parser::tests::test_output_redirection ... ok [INFO] [stdout] test parser::tests::test_parse_assignment_invalid ... ok [INFO] [stdout] test parser::tests::test_parse_assignment_quoted ... ok [INFO] [stdout] test parser::tests::test_parse_function_definition ... ok [INFO] [stdout] test parser::tests::test_parse_local_assignment_separate_tokens ... ok [INFO] [stdout] test parser::tests::test_parse_mixed_redirections ... ok [INFO] [stdout] test parser::tests::test_redirection_without_file ... ok [INFO] [stdout] test parser::tests::test_parse_local_assignment_invalid_var_name ... ok [INFO] [stdout] test parser::tests::test_single_command ... ok [INFO] [stdout] test parser::tests::test_pipeline ... ok [INFO] [stdout] test state::tests::test_condensed_cwd_environment_variable ... ok [INFO] [stdout] test state::tests::test_export_variable ... ok [INFO] [stdout] test parser::tests::test_parse_local_assignment ... ok [INFO] [stdout] test state::tests::test_get_full_cwd ... ok [INFO] [stdout] test state::tests::test_get_user_hostname ... ok [INFO] [stdout] test state::tests::test_get_prompt ... ok [INFO] [stdout] test state::tests::test_local_variable_scoping ... ok [INFO] [stdout] test state::tests::test_positional_parameters_empty ... ok [INFO] [stdout] test state::tests::test_prompt_with_condensed_setting ... ok [INFO] [stdout] test state::tests::test_push_positional_param ... ok [INFO] [stdout] a b c d [INFO] [stdout] 1 2 3 [INFO] [stdout] test state::tests::test_positional_parameters ... ok [INFO] [stdout] a b c [INFO] [stdout] test state::tests::test_nested_local_scopes ... ok [INFO] [stdout] test state::tests::test_special_variables ... ok [INFO] [stdout] test tests::test_integration_builtin_cd ... ok [INFO] [stdout] test state::tests::test_shell_state_basic ... ok [INFO] [stdout] test state::tests::test_variable_set_in_local_scope ... ok [INFO] [stdout] test state::tests::test_unset_variable ... ok [INFO] [stdout] test tests::test_integration_brace_expansion_nested ... ok [INFO] [stdout] test state::tests::test_shift_positional_params ... ok [INFO] [stdout] test completion::tests::test_get_command_candidates_exact ... ok [INFO] [stdout] test tests::test_integration_false ... ok [INFO] [stdout] test tests::test_integration_brace_expansion_with_ranges ... ok [INFO] [stdout] filea.txt fileb.txt [INFO] [stdout] test tests::test_integration_brace_expansion_mixed ... ok [INFO] [stdout] trap -- 'echo int handler' INT [INFO] [stdout] trap -- 'echo term handler' TERM [INFO] [stdout] INT [INFO] [stdout] test tests::test_integration_brace_expansion_simple ... ok [INFO] [stdout] test tests::test_trap_display_integration ... ok [INFO] [stdout] TERM [INFO] [stdout] a b [INFO] [stdout] test tests::test_trap_builtin_integration ... ok [INFO] [stdout] test tests::test_integration_true ... ok [INFO] [stdout] expandedtest completion::tests::test_get_command_candidates ... ok [INFO] [stdout] test tests::test_integration_brace_expansion_with_pipes ... ok [INFO] [stdout] EXIT trap executed [INFO] [stdout] input contenttest tests::test_trap_exit_execution ... ok [INFO] [stdout] test tests::test_integration_redirection_output ... ok [INFO] [stdout] test tests::test_integration_variable_expansion ... ok [INFO] [stdout] test tests::test_trap_multiple_signals ... ok [INFO] [stdout] test tests::test_trap_reset_integration ... ok [INFO] [stdout] test tests::test_integration_redirection_input ... ok [INFO] [stdout] test tests::test_source_rushrc_functionality ... ok [INFO] [stdout] hellotest tests::test_integration_pipeline ... ok [INFO] [stdout] HUP [INFO] [stdout] test tests::test_multiple_signals_in_sequence ... ok [INFO] [stdout] test tests::test_signal_queue_overflow ... ok [INFO] [stdout] INT trapped [INFO] [stdout] test tests::test_process_pending_signals_with_trap ... ok [INFO] [stdout] test tests::test_signal_queue_enqueue_dequeue ... ok [INFO] [stdout] Caught SIGINT [INFO] [stdout] test tests::test_trap_execution_during_repl ... ok [INFO] [stdout] test tests::test_source_rushrc_condensed_setting ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 325 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Doc-tests rush_sh [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" "76fa18389831700b0d4b565402e51c73af494ad53696d6254374d91fb69e00c2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "76fa18389831700b0d4b565402e51c73af494ad53696d6254374d91fb69e00c2", kill_on_drop: false }` [INFO] [stdout] 76fa18389831700b0d4b565402e51c73af494ad53696d6254374d91fb69e00c2