[INFO] cloning repository https://github.com/wbbradley/procman
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wbbradley/procman" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwbbradley%2Fprocman", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwbbradley%2Fprocman'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 704ab575ce3b328bca846b622fbf96055ebac168
[INFO] testing wbbradley/procman against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwbbradley%2Fprocman" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/wbbradley/procman
[INFO] finished tweaking git repo https://github.com/wbbradley/procman
[INFO] tweaked toml for git repo https://github.com/wbbradley/procman written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/wbbradley/procman on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/wbbradley/procman 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_json_path v0.7.2
[INFO] [stderr]   Downloaded serde_json_path_macros v0.1.6
[INFO] [stderr]   Downloaded signal-hook v0.4.3
[INFO] [stderr]   Downloaded strip-ansi-escapes v0.2.1
[INFO] [stderr]   Downloaded vte v0.14.1
[INFO] [stderr]   Downloaded serde_json_path_macros_internal v0.1.2
[INFO] [stderr]   Downloaded serde_json_path_core v0.2.2
[INFO] [stderr]   Downloaded nix v0.31.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6244b6a4d3d7ce1047206c52133072d69c751af75083ffcff3462c4541daa377
[INFO] running `Command { std: "docker" "start" "-a" "6244b6a4d3d7ce1047206c52133072d69c751af75083ffcff3462c4541daa377", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6244b6a4d3d7ce1047206c52133072d69c751af75083ffcff3462c4541daa377", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6244b6a4d3d7ce1047206c52133072d69c751af75083ffcff3462c4541daa377", kill_on_drop: false }`
[INFO] [stdout] 6244b6a4d3d7ce1047206c52133072d69c751af75083ffcff3462c4541daa377
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 05b07901746200e9271f1063ed937644f6fce79d031268d68a90f0ae7ac90b80
[INFO] running `Command { std: "docker" "start" "-a" "05b07901746200e9271f1063ed937644f6fce79d031268d68a90f0ae7ac90b80", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling inventory v0.3.22
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_json_path_macros_internal v0.1.2
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling signal-hook v0.4.3
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling vte v0.14.1
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling strip-ansi-escapes v0.2.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ureq-proto v0.5.3
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json_path_core v0.2.2
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde_json_path_macros v0.1.6
[INFO] [stderr]    Compiling serde_json_path v0.7.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling ureq v3.2.0
[INFO] [stderr]    Compiling procman v0.23.8 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.20s
[INFO] running `Command { std: "docker" "inspect" "05b07901746200e9271f1063ed937644f6fce79d031268d68a90f0ae7ac90b80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05b07901746200e9271f1063ed937644f6fce79d031268d68a90f0ae7ac90b80", kill_on_drop: false }`
[INFO] [stdout] 05b07901746200e9271f1063ed937644f6fce79d031268d68a90f0ae7ac90b80
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62077f34f645c1acfd321e6104c2a72a4c40033c2a1d1b1ae619d7edc395b3e6
[INFO] running `Command { std: "docker" "start" "-a" "62077f34f645c1acfd321e6104c2a72a4c40033c2a1d1b1ae619d7edc395b3e6", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling procman v0.23.8 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.21s
[INFO] running `Command { std: "docker" "inspect" "62077f34f645c1acfd321e6104c2a72a4c40033c2a1d1b1ae619d7edc395b3e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62077f34f645c1acfd321e6104c2a72a4c40033c2a1d1b1ae619d7edc395b3e6", kill_on_drop: false }`
[INFO] [stdout] 62077f34f645c1acfd321e6104c2a72a4c40033c2a1d1b1ae619d7edc395b3e6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a9053040c0f4c08674b88a6e2fd7f1c0fc8cddd3ec96b15e27bdffc121a21193
[INFO] running `Command { std: "docker" "start" "-a" "a9053040c0f4c08674b88a6e2fd7f1c0fc8cddd3ec96b15e27bdffc121a21193", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/procman-0857423df7780dae)
[INFO] [stdout] 
[INFO] [stdout] running 389 tests
[INFO] [stdout] test args::tests::parse_missing_required_arg_errors ... ok
[INFO] [stdout] test args::tests::parse_missing_value_for_string_errors ... ok
[INFO] [stdout] test args::tests::parse_mixed_root_and_namespaced ... ok
[INFO] [stdout] test args::tests::parse_bool_arg_present ... ok
[INFO] [stdout] test args::tests::parse_bool_arg_absent_with_default ... ok
[INFO] [stdout] test args::tests::parse_default_applied ... ok
[INFO] [stdout] test args::tests::parse_namespaced_string_arg ... ok
[INFO] [stdout] test args::tests::parse_namespaced_required_missing ... ok
[INFO] [stdout] test args::tests::parse_root_args_applies_defaults ... ok
[INFO] [stdout] test args::tests::parse_empty_args_no_defs ... ok
[INFO] [stdout] test args::tests::parse_root_args_extracts_known_flags ... ok
[INFO] [stdout] test args::tests::parse_root_args_lenient_skips_missing_required ... ok
[INFO] [stdout] test args::tests::parse_root_args_missing_required_errors ... ok
[INFO] [stdout] test args::tests::parse_root_args_no_defs_passes_all_through ... ok
[INFO] [stdout] test args::tests::parse_string_arg_long ... ok
[INFO] [stdout] test args::tests::parse_string_arg_short ... ok
[INFO] [stdout] test args::tests::parse_unknown_flag_errors ... ok
[INFO] [stdout] test args::tests::parse_unexpected_args_no_defs_errors ... ok
[INFO] [stdout] test args::tests::parse_multiple_args ... ok
[INFO] [stdout] test checks::tests::process_exited_check_returns_false_then_true ... ok
[INFO] [stdout] test args::tests::parse_root_args_lenient_still_parses_provided ... ok
[INFO] [stdout] test args::tests::parse_user_args_with_defs_all_defaulted ... ok
[INFO] [stdout] test checks::tests::tcp_not_listening_check_returns_false_for_bound_port ... ok
[INFO] [stdout] test args::tests::parse_root_args_lenient_with_remaining_namespaced ... ok
[INFO] [stdout] test checks::tests::file_contains_array_filter ... ok
[INFO] [stdout] test checks::tests::tcp_connect_check_returns_false_for_closed_port ... ok
[INFO] [stdout] test checks::tests::file_contains_check_returns_true_for_json ... ok
[INFO] [stdout] test checks::tests::collect_dependency_env_skips_no_env_deps ... ok
[INFO] [stdout] test checks::tests::file_contains_check_dot_path_navigation ... ok
[INFO] [stdout] test config::tests::expand_braced_var ... ok
[INFO] [stdout] test checks::tests::file_not_exists_check_returns_true_for_missing_file ... ok
[INFO] [stdout] test config::tests::expand_braced_var_rejects_dots ... ok
[INFO] [stdout] test checks::tests::tcp_not_listening_check_returns_true_for_free_port ... ok
[INFO] [stdout] test config::tests::expand_mixed_text ... ok
[INFO] [stdout] test checks::tests::file_contains_check_returns_false_for_missing_file ... ok
[INFO] [stdout] test config::tests::expand_multiple_vars ... ok
[INFO] [stdout] test config::tests::expand_empty_env ... ok
[INFO] [stdout] test config::tests::expand_partial_unknown_errors ... ok
[INFO] [stdout] test config::tests::expand_simple_var ... ok
[INFO] [stdout] test config::tests::expand_braced_var_rejects_hyphens ... ok
[INFO] [stdout] test checks::tests::file_not_exists_check_returns_false_for_existing_file ... ok
[INFO] [stdout] test config::tests::expand_braced_var_rejects_invalid_chars ... ok
[INFO] [stdout] test config::tests::expand_unknown_var_errors ... ok
[INFO] [stdout] test config::tests::expand_trailing_dollar ... ok
[INFO] [stdout] test config::tests::expand_dollar_dollar_escape ... ok
[INFO] [stdout] test config::tests::expand_underscore_var ... ok
[INFO] [stdout] test config::tests::expand_var_adjacent_to_dot ... ok
[INFO] [stdout] test config::tests::substitute_var_file_exists ... ok
[INFO] [stdout] test checks::tests::file_exists_check_returns_false_then_true ... ok
[INFO] [stdout] test checks::tests::file_contains_check_returns_true_for_yaml ... ok
[INFO] [stdout] test checks::tests::file_contains_check_returns_false_for_missing_key ... ok
[INFO] [stdout] test config::tests::substitute_var_http_health_check ... ok
[INFO] [stdout] test config::tests::substitute_var_tcp_connect ... ok
[INFO] [stdout] test dependency::tests::retry_false_fails_immediately ... ok
[INFO] [stdout] test dependency::tests::output_matches_retroactive_release ... ok
[INFO] [stdout] test dependency::tests::wait_for_tcp_connect_dependency ... ok
[INFO] [stdout] test dependency::tests::waiter_respects_shutdown ... ok
[INFO] [stdout] test log::tests::apply_lightness_floor_brightens_black_to_gray ... ok
[INFO] [stdout] test log::tests::apply_lightness_floor_noop_when_already_bright ... ok
[INFO] [stdout] test log::tests::color_for_name_is_deterministic ... ok
[INFO] [stdout] test log::tests::color_for_name_meets_lightness_floor ... ok
[INFO] [stdout] test log::tests::log_line_strips_ansi_from_disk_file ... ok
[INFO] [stdout] test output::tests::extract_refs_empty ... ok
[INFO] [stdout] test output::tests::extract_refs_finds_all ... ok
[INFO] [stdout] test output::tests::parse_empty_file ... ok
[INFO] [stdout] test output::tests::parse_heredoc ... ok
[INFO] [stdout] test checks::tests::process_not_running_check_returns_true_for_no_match ... ok
[INFO] [stdout] test checks::tests::process_not_running_check_returns_false_for_running_process ... ok
[INFO] [stdout] test output::tests::parse_mixed ... ok
[INFO] [stdout] test output::tests::resolve_missing_key_errors ... ok
[INFO] [stdout] test output::tests::parse_simple_key_value ... ok
[INFO] [stdout] test output::tests::resolve_no_templates ... ok
[INFO] [stdout] test output::tests::validate_non_once_process ... ok
[INFO] [stdout] test output::tests::validate_missing_dep_chain ... ok
[INFO] [stdout] test output::tests::resolve_substitutes_values ... ok
[INFO] [stdout] test output::tests::validate_transitive_dep ... ok
[INFO] [stdout] test output::tests::validate_template_in_env ... ok
[INFO] [stdout] test output::tests::validate_unknown_process ... ok
[INFO] [stdout] test output::tests::validate_valid_config ... ok
[INFO] [stdout] test output_match::tests::fire_is_idempotent ... ok
[INFO] [stdout] test output_match::tests::multiple_subscribers_fire_independently ... ok
[INFO] [stdout] test output_match::tests::pattern_is_substring_and_case_sensitive ... ok
[INFO] [stdout] test output_match::tests::reader_tap_simulation_matches_and_releases_waiter ... ok
[INFO] [stdout] test output_match::tests::reader_tap_simulation_eof_fires_upstream_exited ... ok
[INFO] [stdout] test output_match::tests::reader_tap_simulation_strips_ansi ... ok
[INFO] [stdout] test output_match::tests::registry_copy_no_op_for_unknown_template ... ok
[INFO] [stdout] test output_match::tests::registry_for_upstream_returns_empty_for_unknown ... ok
[INFO] [stdout] test output_match::tests::registry_multiple_subscribers_per_upstream ... ok
[INFO] [stdout] test output_match::tests::registry_register_and_for_upstream ... ok
[INFO] [stdout] test output_match::tests::retroactive_match_wakes_immediately ... ok
[INFO] [stdout] test output_match::tests::registry_copy_template_to_instances ... ok
[INFO] [stdout] test dependency::tests::output_matches_upstream_exit_triggers_shutdown ... ok
[INFO] [stdout] test dependency::tests::output_matches_matched_releases_waiter ... ok
[INFO] [stdout] test pman::expr::tests::args_ref ... ok
[INFO] [stdout] test pman::expr::tests::bool_literal ... ok
[INFO] [stdout] test pman::expr::tests::comparison ... ok
[INFO] [stdout] test pman::expr::tests::concat_precedence ... ok
[INFO] [stdout] test pman::expr::tests::concat_two_strings ... ok
[INFO] [stdout] test pman::expr::tests::concat_with_ref ... ok
[INFO] [stdout] test pman::expr::tests::duration_literal ... ok
[INFO] [stdout] test pman::expr::tests::grouped_expression ... ok
[INFO] [stdout] test checks::tests::collect_dependency_env_extracts_values ... ok
[INFO] [stdout] test pman::expr::tests::job_output_ref_local_unchanged ... ok
[INFO] [stdout] test pman::expr::tests::job_output_ref ... ok
[INFO] [stdout] test pman::expr::tests::job_output_ref_namespaced ... ok
[INFO] [stdout] test pman::expr::tests::logical_and ... ok
[INFO] [stdout] test pman::expr::tests::module_dir_ref ... ok
[INFO] [stdout] test pman::expr::tests::module_unknown_field_rejected ... ok
[INFO] [stdout] test pman::expr::tests::namespaced_args_ref ... ok
[INFO] [stdout] test pman::expr::tests::namespaced_args_ref_multi_char ... ok
[INFO] [stdout] test pman::expr::tests::local_var ... ok
[INFO] [stdout] test pman::expr::tests::none_literal ... ok
[INFO] [stdout] test pman::expr::tests::number_literal ... ok
[INFO] [stdout] test pman::expr::tests::procman_dir_ref ... ok
[INFO] [stdout] test pman::expr::tests::procman_unknown_field_rejected ... ok
[INFO] [stdout] test pman::expr::tests::namespaced_module_dir_ref ... ok
[INFO] [stdout] test pman::expr::tests::string_literal ... ok
[INFO] [stdout] test pman::lexer::tests::lex_args_keyword ... ok
[INFO] [stdout] test pman::expr::tests::unary_not ... ok
[INFO] [stdout] test pman::lexer::tests::lex_at_and_dot ... ok
[INFO] [stdout] test pman::lexer::tests::lex_colon_colon ... ok
[INFO] [stdout] test pman::lexer::tests::lex_duration ... ok
[INFO] [stdout] test pman::lexer::tests::lex_error_includes_line_col ... ok
[INFO] [stdout] test pman::lexer::tests::lex_fenced_string ... ok
[INFO] [stdout] test pman::lexer::tests::lex_identifier_with_hyphens ... ok
[INFO] [stdout] test pman::lexer::tests::lex_import_as_keywords ... ok
[INFO] [stdout] test pman::lexer::tests::lex_keywords ... ok
[INFO] [stdout] test pman::lexer::tests::lex_logical ... ok
[INFO] [stdout] test pman::lexer::tests::lex_comment_skipped ... ok
[INFO] [stdout] test pman::lexer::tests::lex_not_vs_ne ... ok
[INFO] [stdout] test pman::lexer::tests::lex_number ... ok
[INFO] [stdout] test pman::lexer::tests::lex_operators ... ok
[INFO] [stdout] test pman::lexer::tests::lex_plus_operator ... ok
[INFO] [stdout] test pman::lexer::tests::lex_procman_keyword ... ok
[INFO] [stdout] test pman::lexer::tests::lex_punctuation ... ok
[INFO] [stdout] test pman::lexer::tests::lex_span_tracks_line_and_col ... ok
[INFO] [stdout] test pman::lexer::tests::lex_start_offset ... ok
[INFO] [stdout] test pman::lexer::tests::lex_string ... ok
[INFO] [stdout] test pman::lexer::tests::lex_module_keyword ... ok
[INFO] [stdout] test pman::lexer::tests::lex_task_keyword ... ok
[INFO] [stdout] test output_match::tests::matched_outcome_returns_true ... ok
[INFO] [stdout] test pman::lexer::tests::lex_unterminated_string_errors ... ok
[INFO] [stdout] test pman::lexer::tests::lex_unterminated_fenced_errors ... ok
[INFO] [stdout] test pman::loader::tests::load_alias_derivation ... ok
[INFO] [stdout] test pman::lexer::tests::lex_string_escapes ... ok
[INFO] [stdout] test pman::loader::tests::load_check_mode_parameterized_resolves_when_arg_provided ... ok
[INFO] [stdout] test pman::loader::tests::load_check_mode_mixed_literal_and_parameterized ... ok
[INFO] [stdout] test pman::loader::tests::load_check_mode_skips_unresolvable_parameterized_import ... ok
[INFO] [stdout] test pman::loader::tests::load_config_block_rejected ... ok
[INFO] [stdout] test pman::loader::tests::load_cycle_detected ... ok
[INFO] [stdout] test pman::loader::tests::load_check_mode_still_errors_on_literal_path_failure ... ok
[INFO] [stdout] test dependency::tests::failed_process_exited_triggers_shutdown ... ok
[INFO] [stdout] test pman::loader::tests::load_diamond_import_via_relative_path ... ok
[INFO] [stdout] test output_match::tests::upstream_exited_outcome_returns_false ... ok
[INFO] [stdout] test pman::loader::tests::load_import_auto_alias_with_args_prefix ... ok
[INFO] [stdout] test pman::loader::tests::load_duplicate_alias ... ok
[INFO] [stdout] test pman::loader::tests::load_import_unknown_arg_in_path_errors ... ok
[INFO] [stdout] test pman::loader::tests::load_import_with_args_in_path ... ok
[INFO] [stdout] test pman::loader::tests::load_diamond_import_rejected ... ok
[INFO] [stdout] test dependency::tests::wait_for_process_exited_dependency ... ok
[INFO] [stdout] test pman::loader::tests::load_import_with_bindings ... ok
[INFO] [stdout] test pman::loader::tests::load_no_imports ... ok
[INFO] [stdout] test pman::loader::tests::load_relative_path_resolution ... ok
[INFO] [stdout] test pman::loader::tests::load_non_check_mode_errors_on_unresolvable_parameterized_import ... ok
[INFO] [stdout] test pman::loader::tests::load_single_import ... ok
[INFO] [stdout] test pman::loader::tests::load_same_file_different_parents_ok ... ok
[INFO] [stdout] test pman::loader::tests::load_nested_import_succeeds ... ok
[INFO] [stdout] test pman::lower::tests::eval_string_lit_args_in_connect ... ok
[INFO] [stdout] test pman::loader::tests::load_transitive_cycle_detected ... ok
[INFO] [stdout] test pman::lower::tests::eval_string_lit_args_in_exists ... ok
[INFO] [stdout] test pman::lower::tests::eval_string_lit_args_with_spaces ... ok
[INFO] [stdout] test pman::lower::tests::eval_string_lit_unknown_ref_errors ... ok
[INFO] [stdout] test pman::lower::tests::eval_string_lit_module_dir ... ok
[INFO] [stdout] test pman::lower::tests::eval_string_lit_plain_string_unchanged ... ok
[INFO] [stdout] test pman::lower::tests::eval_string_lit_args_in_http ... ok
[INFO] [stdout] test pman::lower::tests::eval_string_lit_unterminated_ref_errors ... ok
[INFO] [stdout] test pman::lower::tests::full_example_from_spec ... ok
[INFO] [stdout] test pman::lower::tests::lower_arg_default_cycle_detected ... ok
[INFO] [stdout] test pman::lower::tests::lower_arg_default_cli_overrides ... ok
[INFO] [stdout] test dependency::tests::sequential_timeout_starts_per_dep ... ok
[INFO] [stdout] test pman::lower::tests::lower_concat_strings ... ok
[INFO] [stdout] test pman::lower::tests::lower_concat_with_args_ref ... ok
[INFO] [stdout] test pman::lower::tests::lower_arg_default_references_other_arg ... ok
[INFO] [stdout] test pman::lower::tests::lower_contains_var_binding_to_env ... ok
[INFO] [stdout] test pman::lower::tests::lower_cli_override_unbound_arg ... ok
[INFO] [stdout] test pman::lower::tests::lower_default_used_when_no_binding ... ok
[INFO] [stdout] test pman::lower::tests::lower_env_scoping ... ok
[INFO] [stdout] test pman::lower::tests::lower_env_with_job_output_ref ... ok
[INFO] [stdout] test pman::lower::tests::lower_event_is_not_autostart ... ok
[INFO] [stdout] test pman::lower::tests::lower_for_array_defers_expansion ... ok
[INFO] [stdout] test pman::lower::tests::lower_for_env_inheritance ... ok
[INFO] [stdout] test pman::lower::tests::lower_env_with_args_ref ... ok
[INFO] [stdout] test pman::lower::tests::lower_for_range_defers_expansion ... ok
[INFO] [stdout] test pman::lower::tests::lower_global_env_applies_to_all_jobs ... ok
[INFO] [stdout] test pman::lower::tests::lower_import_binding_overrides_default ... ok
[INFO] [stdout] test pman::lower::tests::lower_import_binding_literal ... ok
[INFO] [stdout] test pman::lower::tests::lower_imported_job_prefixed ... ok
[INFO] [stdout] test pman::lower::tests::lower_job_is_once ... ok
[INFO] [stdout] test pman::loader::tests::load_nested_diamond_rejected ... ok
[INFO] [stdout] test pman::lower::tests::lower_logs_dir ... ok
[INFO] [stdout] test pman::lower::tests::lower_cli_override_beats_binding ... ok
[INFO] [stdout] test pman::lower::tests::lower_conditional_job_false_skipped ... ok
[INFO] [stdout] test pman::lower::tests::lower_conditional_job_true_emitted ... ok
[INFO] [stdout] test pman::lower::tests::lower_import_multiple_bindings ... ok
[INFO] [stdout] test pman::lower::tests::lower_module_dir_in_arg_default ... ok
[INFO] [stdout] test pman::lower::tests::lower_import_binding_from_root_arg ... ok
[INFO] [stdout] test pman::lower::tests::lower_module_dir_in_root ... ok
[INFO] [stdout] test pman::lower::tests::lower_module_dir_in_import ... ok
[INFO] [stdout] test pman::lower::tests::lower_multiple_imports_separate_args ... ok
[INFO] [stdout] test pman::lower::tests::lower_namespaced_args_ref_in_condition ... ok
[INFO] [stdout] test pman::lower::tests::lower_namespaced_module_dir ... ok
[INFO] [stdout] test pman::lower::tests::lower_namespaced_args_ref_in_env ... ok
[INFO] [stdout] test pman::lower::tests::lower_negated_connect ... ok
[INFO] [stdout] test pman::lower::tests::lower_nested_import_arg_resolution ... ok
[INFO] [stdout] test pman::lower::tests::lower_output_matches_interpolates_pattern ... ok
[INFO] [stdout] test pman::lower::tests::lower_output_matches_basic ... ok
[INFO] [stdout] test pman::lower::tests::lower_nested_import_entities ... ok
[INFO] [stdout] test pman::lower::tests::lower_procman_dir_in_root ... ok
[INFO] [stdout] test pman::lower::tests::lower_retry_false ... ok
[INFO] [stdout] test pman::lower::tests::lower_output_matches_with_timeout ... ok
[INFO] [stdout] test pman::lower::tests::lower_per_job_env_overrides_global ... ok
[INFO] [stdout] test pman::lower::tests::lower_service_is_not_once ... ok
[INFO] [stdout] test output_match::tests::shutdown_returns_false_promptly ... ok
[INFO] [stdout] test pman::lower::tests::lower_task_sets_flags ... ok
[INFO] [stdout] test pman::lower::tests::lower_simple_job ... ok
[INFO] [stdout] test pman::lower::tests::lower_timeout_none_is_infinite ... ok
[INFO] [stdout] test pman::lower::tests::lower_skipped_imported_job ... ok
[INFO] [stdout] test pman::lower::tests::lower_procman_dir_in_arg_default ... ok
[INFO] [stdout] test pman::lower::tests::lower_skipped_job_still_allows_after ... ok
[INFO] [stdout] test pman::lower::tests::lower_wait_after ... ok
[INFO] [stdout] test pman::lower::tests::lower_unbound_imported_arg_errors ... ok
[INFO] [stdout] test dependency::tests::output_matches_timeout_triggers_shutdown ... ok
[INFO] [stdout] test pman::lower::tests::lower_namespaced_after_dep ... ok
[INFO] [stdout] test pman::lower::tests::lower_wait_http ... ok
[INFO] [stdout] test pman::parser::tests::arg_named_procman_rejected ... ok
[INFO] [stdout] test pman::lower::tests::lower_namespaced_output_ref ... ok
[INFO] [stdout] test pman::parser::tests::arg_named_module_rejected ... ok
[INFO] [stdout] test pman::lower::tests::nested_import_transitive_namespace_rejected ... ok
[INFO] [stdout] test pman::parser::tests::job_named_module_rejected ... ok
[INFO] [stdout] test pman::parser::tests::job_named_procman_rejected ... ok
[INFO] [stdout] test pman::parser::tests::parse_arg_inside_config_fails ... ok
[INFO] [stdout] test pman::parser::tests::parse_config_log_time_default ... ok
[INFO] [stdout] test pman::parser::tests::once_in_job_body_is_error ... ok
[INFO] [stdout] test pman::parser::tests::parse_config_log_time_true ... ok
[INFO] [stdout] test pman::parser::tests::parse_config_log_time_false ... ok
[INFO] [stdout] test pman::parser::tests::parse_config_log_time_with_logs ... ok
[INFO] [stdout] test pman::parser::tests::parse_config_logs ... ok
[INFO] [stdout] test pman::parser::tests::parse_empty_config ... ok
[INFO] [stdout] test pman::parser::tests::parse_env_rejected_in_config ... ok
[INFO] [stdout] test pman::parser::tests::parse_event ... ok
[INFO] [stdout] test pman::parser::tests::parse_fenced_run ... ok
[INFO] [stdout] test pman::parser::tests::parse_for_array ... ok
[INFO] [stdout] test pman::parser::tests::parse_for_glob ... ok
[INFO] [stdout] test pman::parser::tests::parse_for_range ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_derived_alias_with_path ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_derived_alias_with_bindings ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_bad_basename_requires_as ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_with_empty_bindings ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_derived_alias ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_with_alias ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_with_multiple_bindings ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_with_single_binding ... ok
[INFO] [stdout] test pman::parser::tests::parse_import_without_bindings ... ok
[INFO] [stdout] test pman::parser::tests::parse_job_with_condition ... ok
[INFO] [stdout] test pman::parser::tests::parse_job_with_env ... ok
[INFO] [stdout] test pman::parser::tests::parse_multiple_top_level_args ... ok
[INFO] [stdout] test pman::parser::tests::parse_local_after_unchanged ... ok
[INFO] [stdout] test pman::parser::tests::parse_multiple_imports ... ok
[INFO] [stdout] test pman::parser::tests::parse_namespaced_after ... ok
[INFO] [stdout] test pman::parser::tests::parse_local_spawn_unchanged ... ok
[INFO] [stdout] test pman::parser::tests::parse_namespaced_spawn ... ok
[INFO] [stdout] test pman::parser::tests::parse_output_matches_basic ... ok
[INFO] [stdout] test pman::parser::tests::parse_simple_job ... ok
[INFO] [stdout] test pman::parser::tests::parse_output_matches_with_timeout ... ok
[INFO] [stdout] test pman::parser::tests::parse_output_matches_with_namespace ... ok
[INFO] [stdout] test pman::parser::tests::parse_service ... ok
[INFO] [stdout] test pman::parser::tests::parse_output_matches_poll_rejected ... ok
[INFO] [stdout] test pman::parser::tests::parse_output_matches_retry_rejected ... ok
[INFO] [stdout] test pman::parser::tests::parse_output_matches_negated_rejected ... ok
[INFO] [stdout] test pman::parser::tests::parse_top_level_bool_arg ... ok
[INFO] [stdout] test pman::parser::tests::parse_top_level_env_single ... ok
[INFO] [stdout] test pman::parser::tests::parse_wait_after ... ok
[INFO] [stdout] test pman::parser::tests::parse_simple_task ... ok
[INFO] [stdout] test pman::parser::tests::parse_top_level_env_block ... ok
[INFO] [stdout] test pman::parser::tests::parse_task_with_wait ... ok
[INFO] [stdout] test pman::parser::tests::parse_top_level_arg ... ok
[INFO] [stdout] test pman::parser::tests::parse_wait_contains_with_var ... ok
[INFO] [stdout] test pman::parser::tests::parse_wait_retry_false ... ok
[INFO] [stdout] test pman::parser::tests::parse_watch_spawn ... ok
[INFO] [stdout] test pman::parser::tests::parse_watch ... ok
[INFO] [stdout] test pman::parser::tests::parse_wait_negated ... ok
[INFO] [stdout] test pman::parser::tests::parse_wait_timeout_none ... ok
[INFO] [stdout] test pman::validate::tests::after_unknown_job_errors ... ok
[INFO] [stdout] test pman::parser::tests::parse_wait_http_with_options ... ok
[INFO] [stdout] test pman::validate::tests::circular_dependency_detected ... ok
[INFO] [stdout] test pman::validate::tests::after_must_target_job ... ok
[INFO] [stdout] test pman::validate::tests::duplicate_env_key_detected ... ok
[INFO] [stdout] test pman::lower::tests::lower_output_matches_skipped_target_stripped ... ok
[INFO] [stdout] test pman::validate::tests::duplicate_arg_name_detected ... ok
[INFO] [stdout] test pman::lower::tests::lower_watch ... ok
[INFO] [stdout] test pman::validate::tests::job_output_ref_requires_job_target ... ok
[INFO] [stdout] test pman::validate::tests::duplicate_task_name_errors ... ok
[INFO] [stdout] test pman::validate::tests::job_output_ref_requires_after ... ok
[INFO] [stdout] test pman::validate::tests::duplicate_watch_names_detected ... ok
[INFO] [stdout] test pman::validate::tests::empty_run_rejected ... ok
[INFO] [stdout] test pman::validate::tests::namespaced_after_ref_unknown_alias ... ok
[INFO] [stdout] test pman::validate::tests::import_binding_valid_arg_ok ... ok
[INFO] [stdout] test pman::validate::tests::import_binding_unknown_arg_errors ... ok
[INFO] [stdout] test pman::validate::tests::error_includes_file_location ... ok
[INFO] [stdout] test pman::validate::tests::namespaced_after_ref_valid ... ok
[INFO] [stdout] test pman::validate::tests::output_matches_cycle_detected ... ok
[INFO] [stdout] test pman::validate::tests::namespaced_after_ref_unknown_entity ... ok
[INFO] [stdout] test pman::validate::tests::output_matches_targets_job_ok ... ok
[INFO] [stdout] test pman::validate::tests::output_matches_task_target_errors ... ok
[INFO] [stdout] test pman::validate::tests::namespaced_args_ref_valid ... ok
[INFO] [stdout] test pman::validate::tests::output_matches_self_reference_errors ... ok
[INFO] [stdout] test pman::validate::tests::output_matches_event_target_errors ... ok
[INFO] [stdout] test pman::validate::tests::output_matches_targets_service_ok ... ok
[INFO] [stdout] test pman::validate::tests::output_matches_unknown_target_errors ... ok
[INFO] [stdout] test pman::validate::tests::namespaced_spawn_ref_valid ... ok
[INFO] [stdout] test pman::validate::tests::spawn_must_target_event ... ok
[INFO] [stdout] test pman::validate::tests::valid_simple_job ... ok
[INFO] [stdout] test pman::validate::tests::spawn_target_exists ... ok
[INFO] [stdout] test pman::validate::tests::transitive_after_satisfies_output_ref ... ok
[INFO] [stdout] test pman::validate::tests::task_name_collides_with_job ... ok
[INFO] [stdout] test process::tests::build_command_multiline_uses_bash ... ok
[INFO] [stdout] test pman::validate::tests::valid_simple_task ... ok
[INFO] [stdout] test pman::validate::tests::task_with_after_valid ... ok
[INFO] [stdout] test process::tests::build_command_single_line ... ok
[INFO] [stdout] test process::tests::build_command_trailing_newline_only ... ok
[INFO] [stdout] test pman::validate::tests::var_shadowing_detected ... ok
[INFO] [stdout] test process::tests::debug_pause_sets_debug_and_shutdown ... ok
[INFO] [stdout] test pman::validate::tests::namespaced_args_ref_unknown_alias ... ok
[INFO] [stdout] test pman::validate::tests::namespaced_args_ref_unknown_arg ... ok
[INFO] [stdout] test output_match::tests::timeout_returns_false ... ok
[INFO] [stdout] test dependency::tests::output_matches_after_after_in_sequential_wait ... ok
[INFO] [stdout] test dependency::tests::dependency_timeout_sets_shutdown ... ok
[INFO] [stdout] test process::tests::all_once_processes_exit_cleanly ... ok
[INFO] [stdout] test process::tests::condition_false_skips_once_process_and_registers_exit ... ok
[INFO] [stdout] test dependency::tests::sequential_timeout_on_blocked_dep ... ok
[INFO] [stdout] test process::tests::expand_fan_out_zero_matches_errors ... ok
[INFO] [stdout] test process::tests::condition_true_allows_spawn ... ok
[INFO] [stdout] test process::tests::fan_out_group_completion ... ok
[INFO] [stdout] test process::tests::debug_mode_excludes_completed_once_processes ... ok
[INFO] [stdout] test process::tests::evaluate_condition_true_returns_true ... ok
[INFO] [stdout] test process::tests::evaluate_condition_uses_process_env ... ok
[INFO] [stdout] test process::tests::output_matches_pre_spawn_registration ... ok
[INFO] [stdout] test dependency::tests::sequential_deps_block_on_first ... ok
[INFO] [stdout] test process::tests::service_exit_code_0_is_failure ... ok
[INFO] [stdout] test process::tests::try_accept_new_merges_env_into_dormant ... ok
[INFO] [stdout] test process::tests::try_accept_new_skips_already_running ... ok
[INFO] [stdout] test tests::check_flag_invalid_pman ... ok
[INFO] [stdout] test tests::check_flag_valid_pman ... ok
[INFO] [stdout] test tests::check_flag_with_args_in_import_path ... ok
[INFO] [stdout] test process::tests::expand_fan_out_array_creates_instances ... ok
[INFO] [stdout] test tests::check_flag_with_imports ... ok
[INFO] [stdout] test tests::check_flag_with_parameterized_import_no_args ... ok
[INFO] [stdout] test tests::check_flag_with_parameterized_imports ... ok
[INFO] [stdout] test tests::check_flag_with_task ... ok
[INFO] [stdout] test tests::check_flag_with_unbound_import_arg_from_cli ... ok
[INFO] [stdout] test tests::parse_env_args_empty_key ... ok
[INFO] [stdout] test tests::parse_env_args_empty_value ... ok
[INFO] [stdout] test tests::parse_env_args_equals_in_value ... ok
[INFO] [stdout] test tests::check_flag_with_unbound_import_arg_missing ... ok
[INFO] [stdout] test tests::parse_env_args_missing_equals ... ok
[INFO] [stdout] test process::tests::expand_fan_out_creates_instances ... ok
[INFO] [stdout] test tests::parse_env_args_valid ... ok
[INFO] [stdout] test tests::unknown_task_name_errors ... ok
[INFO] [stdout] test process::tests::expand_fan_out_expands_env_in_glob ... ok
[INFO] [stdout] test process::tests::expand_fan_out_glob_env_binding_is_applied ... ok
[INFO] [stdout] test process::tests::expand_fan_out_range_creates_instances ... ok
[INFO] [stdout] test watch::tests::watcher_stops_on_process_exit ... ok
[INFO] [stdout] test watch::tests::watcher_stops_on_shutdown_flag ... ok
[INFO] [stdout] test process::tests::expand_fan_out_sets_env_var ... ok
[INFO] [stdout] test process::tests::job_only_exits_cleanly ... ok
[INFO] [stdout] test watch::tests::watcher_multiple_watches_independent ... ok
[INFO] [stdout] test watch::tests::watcher_spawn_sends_correct_env ... ok
[INFO] [stdout] test process::tests::once_process_exits_cleanly ... ok
[INFO] [stdout] test watch::tests::watcher_triggers_shutdown_on_threshold ... ok
[INFO] [stdout] test watch::tests::watcher_log_does_not_send_command ... ok
[INFO] [stdout] test watch::tests::watcher_respects_initial_delay ... ok
[INFO] [stdout] test watch::tests::watcher_recovery_resets_counter ... ok
[INFO] [stdout] test dependency::tests::retry_true_retries_as_before ... ok
[INFO] [stdout] test dependency::tests::wait_for_file_dependency ... ok
[INFO] [stdout] test process::tests::once_with_long_running_does_not_auto_exit ... ok
[INFO] [stdout] test process::tests::evaluate_condition_false_returns_false ... ok
[INFO] [stdout] test process::tests::output_matches_fan_out_copies_matchers ... ok
[INFO] [stdout] test process::tests::spawned_child_has_stdin_redirected_to_dev_null ... ok
[INFO] [stdout] test process::tests::condition_false_non_once_process_not_in_exit_registry ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 389 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a9053040c0f4c08674b88a6e2fd7f1c0fc8cddd3ec96b15e27bdffc121a21193", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a9053040c0f4c08674b88a6e2fd7f1c0fc8cddd3ec96b15e27bdffc121a21193", kill_on_drop: false }`
[INFO] [stdout] a9053040c0f4c08674b88a6e2fd7f1c0fc8cddd3ec96b15e27bdffc121a21193
