[INFO] cloning repository https://github.com/sofired/composemux
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sofired/composemux" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsofired%2Fcomposemux", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsofired%2Fcomposemux'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 84c242f0a4ba0e2c19434d11db718504f6dba6c7
[INFO] testing sofired/composemux against 1.100.0-beta.1 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsofired%2Fcomposemux" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sofired/composemux
[INFO] finished tweaking git repo https://github.com/sofired/composemux
[INFO] tweaked toml for git repo https://github.com/sofired/composemux written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sofired/composemux on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sofired/composemux 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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c
[INFO] running `Command { std: "docker" "start" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling smallvec v1.16.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling rustversion v1.0.23
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling litemap v0.8.3
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling writeable v0.6.4
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.3
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling futures-io v0.3.34
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling instability v0.3.13
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling lru v0.18.4
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling darling_core v0.24.1
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling line-clipping v0.3.8
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling pxfm v0.1.30
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling darling_macro v0.24.1
[INFO] [stderr]    Compiling darling v0.24.1
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling serde_repr v0.1.21
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling bytemuck v1.25.2
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling arrayvec v0.7.8
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling vte v0.15.0
[INFO] [stderr]    Compiling bollard-stubs v1.53.1-rc.29.3.1
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling hyperlocal v0.9.1
[INFO] [stderr]    Compiling terminal-trx v0.2.6
[INFO] [stderr]    Compiling indexmap v2.14.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling xterm-color v1.0.2
[INFO] [stderr]    Compiling terminal-colorsaurus v1.0.3
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling serde_yaml_ng v0.10.0
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling vt100 v0.16.2
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling bollard v0.21.1
[INFO] [stderr]    Compiling composemux v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 46s
[INFO] running `Command { std: "docker" "inspect" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling hyperlocal v0.9.1
[INFO] [stderr]    Compiling bollard v0.21.1
[INFO] [stderr]    Compiling composemux v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.41s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/composemux/2813224866634267/out/composemux-2813224866634267)
[INFO] [stdout] 
[INFO] [stdout] running 502 tests
[INFO] [stdout] test config::tests::include_and_exclude_filter_services ... ok
[INFO] [stdout] test config::tests::unknown_keys_are_rejected ... ok
[INFO] [stdout] test config::tests::windows_falls_back_to_appdata_then_userprofile ... ok
[INFO] [stdout] test config::tests::no_environment_yields_no_config_dir ... ok
[INFO] [stdout] test config::tests::auto_exit_accepts_bool_or_seconds ... ok
[INFO] [stdout] test config::tests::defaults_apply_to_an_empty_document ... ok
[INFO] [stdout] test config::tests::home_is_used_when_xdg_is_unset_or_empty ... ok
[INFO] [stdout] test config::tests::xdg_config_home_wins_when_set ... ok
[INFO] [stdout] test docker::client::tests::a_container_without_an_id_has_no_key ... ok
[INFO] [stdout] test docker::client::tests::a_container_without_an_id_is_skipped ... ok
[INFO] [stdout] test docker::client::tests::a_key_without_a_container_number_is_the_first_replica ... ok
[INFO] [stdout] test docker::client::tests::a_oneoff_label_that_is_not_true_is_not_transient ... ok
[INFO] [stdout] test docker::client::tests::a_container_without_a_service_label_has_no_key ... ok
[INFO] [stdout] test docker::client::tests::a_container_without_a_service_label_is_not_a_service ... ok
[INFO] [stdout] test docker::client::tests::a_finished_container_keeps_its_exit_code_and_finish_time ... ok
[INFO] [stdout] test docker::client::tests::a_missing_container_number_defaults_to_the_first_replica ... ok
[INFO] [stdout] test docker::client::tests::build_service_reads_the_compose_labels ... ok
[INFO] [stdout] test docker::client::tests::exited_zero_is_success_nonzero_is_failure ... ok
[INFO] [stdout] test docker::client::tests::a_running_container_reports_no_exit_code_even_if_docker_remembers_one ... ok
[INFO] [stdout] test docker::client::tests::container_key_reads_the_service_and_the_replica ... ok
[INFO] [stdout] test docker::client::tests::project_options_without_a_project_match_any_project ... ok
[INFO] [stdout] test docker::client::tests::transient_containers_are_excluded ... ok
[INFO] [stdout] test docker::client::tests::unhealthy_running_container_is_flagged ... ok
[INFO] [stdout] test docker::client::tests::a_transient_container_has_no_key ... ok
[INFO] [stdout] test docker::client::tests::project_options_narrow_to_one_project ... ok
[INFO] [stdout] test docker::client::tests::a_transient_container_is_not_a_service ... ok
[INFO] [stdout] test docker::connection::tests::a_single_failed_poll_is_not_an_outage ... ok
[INFO] [stdout] test docker::connection::tests::a_socket_that_denies_permission_is_not_unreachable ... ok
[INFO] [stdout] test docker::connection::tests::a_socket_that_is_not_there_is_still_unreachable ... ok
[INFO] [stdout] test docker::connection::tests::a_failure_that_is_not_the_daemons_stays_unreachable ... ok
[INFO] [stdout] test docker::connection::tests::an_api_version_the_daemon_refuses_is_not_unreachable ... ok
[INFO] [stdout] test docker::client::tests::zero_timestamps_are_treated_as_absent ... ok
[INFO] [stdout] test docker::connection::tests::a_daemon_that_answers_with_an_error_is_not_unreachable ... ok
[INFO] [stdout] test docker::connection::tests::a_daemon_that_has_not_failed_is_reachable ... ok
[INFO] [stdout] test docker::connection::tests::the_kind_is_found_underneath_the_context_the_callers_add ... ok
[INFO] [stdout] test docker::connection::tests::failures_short_of_the_threshold_stay_silent ... ok
[INFO] [stdout] test docker::connection::tests::one_answered_poll_ends_an_outage ... ok
[INFO] [stdout] test docker::connection::tests::a_success_between_failures_starts_the_count_again ... ok
[INFO] [stdout] test docker::connection::tests::a_very_long_outage_does_not_wrap_back_to_reachable ... ok
[INFO] [stdout] test docker::stream::tests::a_fresh_attach_uses_the_configured_tail ... ok
[INFO] [stdout] test docker::stream::tests::a_live_attachment_is_left_alone ... ok
[INFO] [stdout] test docker::stream::tests::a_new_container_is_attached ... ok
[INFO] [stdout] test docker::stream::tests::a_reattach_resumes_from_where_the_stream_stopped ... ok
[INFO] [stdout] test docker::stream::tests::a_removed_container_is_dropped ... ok
[INFO] [stdout] test docker::connection::tests::the_reported_outage_is_the_most_recent_kind ... ok
[INFO] [stdout] test docker::connection::tests::the_threshold_run_of_failures_reports_an_outage ... ok
[INFO] [stdout] test docker::connection::tests::the_threshold_is_three_failures_exactly ... ok
[INFO] [stdout] test docker::stream::tests::a_cancelled_container_stops_forwarding_into_a_full_channel ... ok
[INFO] [stdout] test docker::stream::tests::a_resume_timestamp_is_clamped_rather_than_wrapped ... ok
[INFO] [stdout] test docker::stream::tests::a_running_container_whose_task_died_is_reattached ... ok
[INFO] [stdout] test docker::stream::tests::a_frame_at_the_bound_is_forwarded_in_one_piece ... ok
[INFO] [stdout] test docker::stream::tests::a_replaced_container_swaps_ids ... ok
[INFO] [stdout] test docker::stream::tests::an_empty_frame_is_not_forwarded ... ok
[INFO] [stdout] test docker::stream::tests::attach_ids_are_distinct_and_never_zero ... ok
[INFO] [stdout] test docker::stream::tests::container_lifecycle_events_trigger_a_resync ... ok
[INFO] [stdout] test docker::stream::tests::a_stopped_container_is_not_reattached_after_its_stream_ends ... ok
[INFO] [stdout] test docker::stream::tests::forward_frame_stamps_the_attach_it_was_given ... ok
[INFO] [stdout] test docker::stream::tests::a_stopped_container_is_still_attached_once_for_its_history ... ok
[INFO] [stdout] test docker::stream::tests::an_already_cancelled_forward_drops_the_piece_rather_than_sending_it ... ok
[INFO] [stdout] test docker::stream::tests::forwarding_reports_a_departed_receiver ... ok
[INFO] [stdout] test docker::stream::tests::unrelated_events_are_ignored ... ok
[INFO] [stdout] test docker::stream::tests::one_byte_past_the_bound_is_split ... ok
[INFO] [stdout] test docker::stream::tests::status_only_events_refresh_without_reattaching ... ok
[INFO] [stdout] test docker::stream::tests::the_supervisor_gives_every_attach_a_fresh_id ... ok
[INFO] [stdout] test fallback::tests::a_chunk_split_mid_line_reassembles_correctly ... ok
[INFO] [stdout] test fallback::tests::a_closed_channel_ends_the_loop_after_printing_what_arrived ... ok
[INFO] [stdout] test fallback::tests::a_crlf_split_across_chunks_is_still_trimmed ... ok
[INFO] [stdout] test docker::stream::tests::an_oversized_frame_is_forwarded_in_bounded_pieces ... ok
[INFO] [stdout] test fallback::tests::a_failed_write_does_not_go_on_to_drain ... ok
[INFO] [stdout] test fallback::tests::a_capped_flush_keeps_a_trailing_byte_that_looks_like_a_terminator ... ok
[INFO] [stdout] test fallback::tests::a_drained_tail_keeps_the_column_the_run_was_written_at ... ok
[INFO] [stdout] test fallback::tests::a_failed_flush_is_propagated ... ok
[INFO] [stdout] test fallback::tests::a_failed_write_is_propagated ... ok
[INFO] [stdout] test fallback::tests::a_departed_containers_held_tail_is_printed_rather_than_discarded ... ok
[INFO] [stdout] test fallback::tests::a_failed_listing_leaves_the_assemblers_alone ... ok
[INFO] [stdout] test fallback::tests::a_held_tail_is_printed_when_the_channel_closes ... ok
[INFO] [stdout] test fallback::tests::a_held_tail_is_printed_when_cancellation_ends_the_loop ... ok
[INFO] [stdout] test fallback::tests::a_recreate_before_the_drain_leaves_two_tails_rather_than_one ... ok
[INFO] [stdout] test fallback::tests::a_recreate_is_still_split_when_the_attach_stamp_does_not_move ... ok
[INFO] [stdout] test fallback::tests::a_reattach_arriving_through_the_loop_still_ends_the_held_line ... ok
[INFO] [stdout] test fallback::tests::a_reattach_does_not_splice_its_replay_onto_the_held_line ... ok
[INFO] [stdout] test fallback::tests::a_prune_with_nothing_to_reclaim_does_not_touch_the_sink ... ok
[INFO] [stdout] test fallback::tests::a_partial_line_is_held_until_its_newline_arrives ... ok
[INFO] [stdout] test fallback::tests::a_reattach_on_a_line_boundary_prints_nothing_extra ... ok
[INFO] [stdout] test fallback::tests::a_single_replica_is_still_named_by_its_container ... ok
[INFO] [stdout] test fallback::tests::a_recreate_on_a_line_boundary_prints_nothing_extra ... ok
[INFO] [stdout] test fallback::tests::a_recreate_the_reclaim_cannot_see_still_splits_the_line ... ok
[INFO] [stdout] test fallback::tests::a_recreated_container_does_not_inherit_the_dead_one_s_held_line ... ok
[INFO] [stdout] test fallback::tests::a_slow_listing_does_not_push_the_next_one_further_out ... ok
[INFO] [stdout] test fallback::tests::a_wide_name_is_padded_by_the_columns_it_occupies ... ok
[INFO] [stdout] test fallback::tests::a_topology_event_reclaims_a_departed_container ... ok
[INFO] [stdout] test fallback::tests::a_topology_event_with_nothing_held_does_not_list_the_daemon ... ok
[INFO] [stdout] test fallback::tests::a_write_failure_in_the_shutdown_drain_is_returned ... ok
[INFO] [stdout] test fallback::tests::a_write_failure_ends_the_loop_and_is_returned ... ok
[INFO] [stdout] test fallback::tests::a_write_failure_while_reclaiming_ends_the_loop ... ok
[INFO] [stdout] test fallback::tests::a_throttled_topology_event_is_answered_when_the_interval_comes_round ... ok
[INFO] [stdout] test fallback::tests::assemblers_for_departed_containers_are_dropped ... ok
[INFO] [stdout] test fallback::tests::cancellation_ends_the_loop_while_a_listing_is_outstanding ... ok
[INFO] [stdout] test fallback::tests::carriage_returns_are_trimmed ... ok
[INFO] [stdout] test fallback::tests::complete_lines_are_emitted_immediately ... ok
[INFO] [stdout] test fallback::tests::every_event_is_flushed ... ok
[INFO] [stdout] test fallback::tests::finish_hands_back_the_held_tail_untrimmed ... ok
[INFO] [stdout] test fallback::tests::finish_holds_nothing_after_a_complete_line ... ok
[INFO] [stdout] test fallback::tests::held_tails_are_drained_in_a_stable_order ... ok
[INFO] [stdout] test fallback::tests::interleaved_partial_writes_from_replicas_and_services_stay_separate ... ok
[INFO] [stdout] test fallback::tests::invalid_utf8_does_not_panic ... ok
[INFO] [stdout] test fallback::tests::cancellation_ends_the_loop_while_a_sender_is_still_open ... ok
[INFO] [stdout] test fallback::tests::one_container_s_line_is_still_joined_across_chunks ... ok
[INFO] [stdout] test fallback::tests::one_push_can_emit_a_line_and_hold_a_tail ... ok
[INFO] [stdout] test fallback::tests::many_small_chunks_crossing_the_cap_lose_no_bytes ... ok
[INFO] [stdout] test fallback::tests::prefixes_line_up_as_services_appear ... ok
[INFO] [stdout] test fallback::tests::output_alone_never_lists_the_daemon ... ok
[INFO] [stdout] test fallback::tests::replicas_of_one_service_are_labelled_apart ... ok
[INFO] [stdout] test fallback::tests::replicas_recreated_together_neither_cross_nor_inherit ... ok
[INFO] [stdout] test fallback::tests::repeated_topology_events_do_not_list_the_daemon_each_time ... ok
[INFO] [stdout] test fallback::tests::the_drain_flushes_even_with_nothing_to_print ... ok
[INFO] [stdout] test fallback::tests::a_line_arriving_in_forwarded_pieces_still_prints_whole ... ok
[INFO] [stdout] test fallback::tests::the_written_prefixes_line_up_as_longer_names_arrive ... ok
[INFO] [stdout] test model::service::tests::a_finished_service_reports_the_span_it_ran_for ... ok
[INFO] [stdout] test model::service::tests::a_running_service_measures_against_now ... ok
[INFO] [stdout] test model::service::tests::health_labels_fit_the_column ... ok
[INFO] [stdout] test model::service::tests::only_exited_services_count_as_finished ... ok
[INFO] [stdout] test fallback::tests::an_unterminated_run_is_emitted_rather_than_buffered_forever ... ok
[INFO] [stdout] test model::service::tests::a_service_that_never_started_has_no_duration ... ok
[INFO] [stdout] test model::store::property_tests::the_carried_pen_reproduces_every_attribute ... ok
[INFO] [stdout] test fallback::tests::the_cap_is_reached_before_it_is_exceeded ... ok
[INFO] [stdout] test model::store::tests::a_bare_newline_starting_a_write_still_returns_to_column_zero ... ok
[INFO] [stdout] test model::store::tests::a_carriage_return_redraw_still_occupies_its_row ... ok
[INFO] [stdout] test fallback::tests::a_terminated_line_survives_until_the_cap_plus_one_piece ... ok
[INFO] [stdout] test fallback::tests::a_terminated_line_longer_than_the_cap_is_emitted_whole ... ok
[INFO] [stdout] test fallback::tests::a_single_oversized_chunk_is_broken_up_rather_than_swallowed_whole ... ok
[INFO] [stdout] test fallback::tests::capped_output_reassembles_to_exactly_what_went_in ... ok
[INFO] [stdout] test model::store::tests::a_crlf_split_across_chunks_is_not_treated_as_a_bare_newline ... ok
[INFO] [stdout] test model::store::tests::a_dropped_prefix_that_cannot_move_the_pen_leaves_it_alone ... ok
[INFO] [stdout] test model::store::tests::a_height_only_change_keeps_the_content ... ok
[INFO] [stdout] test model::store::tests::a_line_split_mid_word_across_chunks_still_reads_correctly ... ok
[INFO] [stdout] test model::store::tests::a_new_store_reports_no_output ... ok
[INFO] [stdout] test model::store::tests::a_reattach_of_the_same_container_does_not_continue_the_held_row ... ok
[INFO] [stdout] test model::store::tests::a_recreate_after_the_buffer_has_been_trimmed_still_breaks_the_row ... ok
[INFO] [stdout] test model::store::tests::a_recreate_brings_a_pane_back_from_the_alternate_screen ... ok
[INFO] [stdout] test model::store::tests::a_recreate_does_not_continue_a_row_left_on_the_alternate_grid ... ok
[INFO] [stdout] test model::store::tests::a_recreate_does_not_leave_the_dead_container_s_pen_where_a_restore_finds_it ... ok
[INFO] [stdout] test model::store::tests::a_recreate_does_not_leave_the_replacement_inside_a_half_written_sequence ... ok
[INFO] [stdout] test model::store::tests::a_recreate_does_not_move_a_scrolled_up_reader ... ok
[INFO] [stdout] test model::store::tests::a_recreate_does_not_render_the_replacement_in_the_dead_container_s_pen ... ok
[INFO] [stdout] test model::store::tests::a_recreate_inside_a_string_sequence_does_not_swallow_the_replacement ... ok
[INFO] [stdout] test model::store::tests::a_recreate_is_not_confined_to_a_region_on_the_alternate_grid ... ok
[INFO] [stdout] test model::store::tests::a_recreate_is_not_confined_to_the_dead_container_s_scroll_region ... ok
[INFO] [stdout] test model::store::tests::a_recreate_leaves_a_scrolled_up_reader_s_offset_where_it_found_it ... ok
[INFO] [stdout] test model::store::tests::a_recreate_on_a_line_boundary_adds_no_blank_row ... ok
[INFO] [stdout] test model::store::tests::a_recreate_part_way_through_a_progress_rewrite_still_breaks_the_row ... ok
[INFO] [stdout] test model::store::tests::a_recreate_while_released_still_breaks_the_row ... ok
[INFO] [stdout] test model::store::tests::a_recreate_while_released_still_resets_the_emulator ... ok
[INFO] [stdout] test model::store::tests::a_recreated_container_does_not_inherit_the_dead_one_s_held_row ... ok
[INFO] [stdout] test model::store::tests::a_release_is_replayed_even_back_to_the_minimum_size ... ok
[INFO] [stdout] test model::store::tests::a_released_store_comes_back_with_the_same_content ... ok
[INFO] [stdout] test model::store::tests::a_released_store_parses_nothing_while_off_screen ... ok
[INFO] [stdout] test model::store::tests::a_released_store_still_rewraps_at_the_width_it_reopens_at ... ok
[INFO] [stdout] test model::store::tests::a_reopened_store_parses_again ... ok
[INFO] [stdout] test model::store::tests::a_resize_never_blanks_a_pane_that_has_content ... ok
[INFO] [stdout] test model::store::tests::a_resize_re_asks_which_row_is_last ... ok
[INFO] [stdout] test model::store::tests::a_row_erased_under_a_colour_is_not_blank ... ok
[INFO] [stdout] test model::store::tests::a_row_overwritten_with_spaces_is_blank ... ok
[INFO] [stdout] test model::store::tests::a_scrolled_view_absorbs_a_burst_of_output ... ok
[INFO] [stdout] test model::store::tests::a_scrolled_view_holds_still_even_once_the_buffer_is_full ... ok
[INFO] [stdout] test model::store::tests::a_scrolled_view_stays_on_the_same_content_as_output_arrives ... ok
[INFO] [stdout] test model::store::tests::a_skipped_replay_is_retried_rather_than_lost ... ok
[INFO] [stdout] test model::store::tests::a_store_that_cannot_be_rebuilt_keeps_its_grid ... ok
[INFO] [stdout] test model::store::tests::a_store_that_has_never_had_output_still_releases ... ok
[INFO] [stdout] test model::store::tests::a_tailing_reader_keeps_tailing_across_a_resize ... ok
[INFO] [stdout] test model::store::tests::a_tailing_view_keeps_tailing_as_output_arrives ... ok
[INFO] [stdout] test model::store::tests::a_trailing_newline_leaves_the_last_row_blank ... ok
[INFO] [stdout] test model::store::property_tests::arbitrary_input_and_geometry_never_panics ... ok
[INFO] [stdout] test model::store::property_tests::the_retained_buffer_stays_bounded ... ok
[INFO] [stdout] test model::store::tests::adopting_a_store_nothing_has_written_to_writes_nothing ... ok
[INFO] [stdout] test model::store::tests::all_text_covers_more_than_the_retained_window ... ok
[INFO] [stdout] test model::store::tests::all_text_does_not_duplicate_lines_at_an_uneven_scrollback_depth ... ok
[INFO] [stdout] test model::store::tests::all_text_includes_scrolled_off_lines ... ok
[INFO] [stdout] test model::store::tests::an_attach_id_that_goes_backwards_still_ends_the_row ... ok
[INFO] [stdout] test model::store::tests::an_empty_write_is_not_output ... ok
[INFO] [stdout] test model::store::tests::a_wide_pane_keeps_its_oldest_row_across_a_width_change ... ok
[INFO] [stdout] test model::store::tests::ansi_colour_is_interpreted_not_printed ... ok
[INFO] [stdout] test model::store::tests::anything_with_an_escape_byte_in_it_still_reaches_the_parse ... ok
[INFO] [stdout] test model::store::tests::bare_line_feeds_start_at_column_zero ... ok
[INFO] [stdout] test model::store::tests::bench_the_pen_carried_across_a_trim ... ignored, measurement, not a threshold
[INFO] [stdout] test model::store::tests::carriage_return_line_feed_is_left_alone ... ok
[INFO] [stdout] test model::store::tests::carriage_returns_rewrite_the_line ... ok
[INFO] [stdout] test model::store::tests::collapsing_to_nothing_does_not_panic_while_replaying ... ok
[INFO] [stdout] test model::store::tests::a_carried_pen_covers_attributes_and_backgrounds ... ok
[INFO] [stdout] test model::store::tests::a_carried_pen_covers_dim ... ok
[INFO] [stdout] test model::store::tests::growing_height_reveals_more_without_losing_the_tail ... ok
[INFO] [stdout] test model::store::tests::losing_height_pulls_a_scrolled_reader_back_by_the_rows_lost ... ok
[INFO] [stdout] test model::store::tests::narrowing_rewraps_existing_output ... ok
[INFO] [stdout] test model::store::tests::newest_lines_are_visible_when_tailing ... ok
[INFO] [stdout] test model::store::tests::no_seven_bit_byte_but_escape_moves_the_pen ... ok
[INFO] [stdout] test model::store::tests::one_container_s_row_is_still_joined_across_chunks ... ok
[INFO] [stdout] test model::store::tests::only_the_attributes_a_frame_shows_on_a_blank_cell_count ... ok
[INFO] [stdout] test model::store::tests::output_arriving_while_released_is_retained_for_the_pane_it_returns_to ... ok
[INFO] [stdout] test model::store::tests::output_arriving_while_released_reopens_identically ... ok
[INFO] [stdout] test model::store::tests::output_renders_the_same_however_it_was_cut_up ... ok
[INFO] [stdout] test model::store::tests::colour_dense_lines_are_not_lost_by_a_rewrap ... ok
[INFO] [stdout] test model::store::tests::processing_marks_output_and_tails ... ok
[INFO] [stdout] test model::store::tests::reading_a_released_store_trips_an_assertion - should panic ... ok
[INFO] [stdout] test model::store::property_tests::widening_never_drops_content_that_was_still_present ... ok
[INFO] [stdout] test model::store::tests::resetting_the_scroll_region_does_not_move_the_cursor ... ok
[INFO] [stdout] test model::store::tests::releasing_shrinks_the_grid_to_nothing ... ok
[INFO] [stdout] test model::store::tests::resizing_is_idempotent_and_clamps_to_a_safe_floor ... ok
[INFO] [stdout] test model::store::tests::scroll_position_survives_a_widen ... ok
[INFO] [stdout] test model::store::tests::scrolling_down_past_the_bottom_clamps ... ok
[INFO] [stdout] test model::store::tests::scrolling_neither_changes_the_answer_nor_is_changed_by_it ... ok
[INFO] [stdout] test model::store::tests::scrolling_a_released_store_trips_an_assertion - should panic ... ok
[INFO] [stdout] test model::store::tests::scrolling_up_past_the_top_clamps_to_retained_rows ... ok
[INFO] [stdout] test model::store::tests::scrolling_up_then_down_returns_to_tailing ... ok
[INFO] [stdout] test model::store::tests::shrinking_height_keeps_the_newest_lines_reachable ... ok
[INFO] [stdout] test model::store::tests::a_ceiling_cut_at_the_very_end_does_not_empty_a_released_buffer ... ok
[INFO] [stdout] test model::store::tests::styling_set_before_the_retained_window_survives_a_resize ... ok
[INFO] [stdout] test model::store::tests::the_break_a_recreate_makes_costs_exactly_one_row ... ok
[INFO] [stdout] test model::store::tests::the_break_a_recreate_makes_survives_a_replay ... ok
[INFO] [stdout] test model::store::tests::the_break_is_the_stream_s_own_newline ... ok
[INFO] [stdout] test model::store::tests::the_carried_pen_survives_a_release ... ok
[INFO] [stdout] test model::store::tests::the_first_container_to_write_gets_no_leading_break ... ok
[INFO] [stdout] test model::store::tests::the_first_output_after_a_release_survives_the_reopen ... ok
[INFO] [stdout] test model::store::tests::the_handover_a_recreate_makes_survives_a_replay ... ok
[INFO] [stdout] test model::store::tests::the_handover_saves_the_cursor_on_the_grid_it_puts_it_back_on ... ok
[INFO] [stdout] test model::store::tests::styling_set_part_way_through_the_dropped_prefix_survives_a_trim ... ok
[INFO] [stdout] test model::store::tests::the_retention_budget_grows_with_the_pane ... ok
[INFO] [stdout] test model::store::tests::the_scroll_region_reset_survives_a_replay ... ok
[INFO] [stdout] test model::store::tests::top_and_bottom_helpers_reach_the_extremes ... ok
[INFO] [stdout] test model::store::tests::crossing_the_byte_ceiling_while_released_reopens_on_the_newest_content ... ok
[INFO] [stdout] test model::store::tests::widening_rewraps_existing_output ... ok
[INFO] [stdout] test project::tests::normalizes_like_compose_does ... ok
[INFO] [stdout] test model::store::tests::styling_that_was_reset_before_the_trim_is_not_resurrected ... ok
[INFO] [stdout] test tests::a_cancelled_refresher_drops_the_poll_in_hand ... ok
[INFO] [stdout] test tests::a_cancelled_refresher_stops_waiting_on_a_full_channel ... ok
[INFO] [stdout] test tests::a_cancelled_token_stops_the_loop_as_an_interrupt ... ok
[INFO] [stdout] test tests::a_daemon_that_goes_quiet_and_then_says_no_is_still_not_answering ... ok
[INFO] [stdout] test tests::a_daemon_that_never_answers_is_reported_as_not_answering ... ok
[INFO] [stdout] test tests::a_failed_poll_says_nothing_until_the_debounce_agrees ... ok
[INFO] [stdout] test model::store::tests::the_retained_buffer_is_bounded_and_cut_at_a_line_boundary ... ok
[INFO] [stdout] test model::store::tests::a_carried_pen_covers_bright_indexed_and_rgb_colours ... ok
[INFO] [stdout] test tests::a_poll_slower_than_the_bound_still_delivers_its_services ... ok
[INFO] [stdout] test tests::a_refresher_that_is_answered_sends_the_configured_services ... ok
[INFO] [stdout] test tests::a_refresher_whose_polls_are_rejected_says_so_rather_than_unreachable ... ok
[INFO] [stdout] test tests::a_refresher_whose_polls_fail_reports_an_outage ... ok
[INFO] [stdout] test tests::a_slow_startup_is_waited_out_rather_than_given_up_on ... ok
[INFO] [stdout] test tests::a_startup_that_answers_before_the_bound_says_nothing ... ok
[INFO] [stdout] test tests::a_startup_that_never_answers_says_that_it_is_waiting ... ok
[INFO] [stdout] test tests::a_sustained_outage_is_reported_as_unreachable ... ok
[INFO] [stdout] test tests::a_topology_event_wakes_the_poller_early_but_no_sooner_than_the_floor ... ok
[INFO] [stdout] test tests::a_wedged_daemon_is_never_reported_as_unreachable ... ok
[INFO] [stdout] test tests::a_wedged_daemon_that_is_then_stopped_is_called_unreachable_again ... ok
[INFO] [stdout] test tests::an_answered_but_empty_poll_still_counts_as_the_daemon_answering ... ok
[INFO] [stdout] test tests::an_answered_poll_resets_the_failure_run ... ok
[INFO] [stdout] test tests::an_input_stream_that_ends_quits_the_loop ... ok
[INFO] [stdout] test tests::an_input_stream_that_fails_is_reported ... ok
[INFO] [stdout] test tests::an_unreachable_poll_marks_the_app_and_brings_no_services ... ok
[INFO] [stdout] test tests::copying_a_pane_with_no_output_reports_nothing_to_copy ... ok
[INFO] [stdout] test tests::output_events_are_routed_into_the_matching_buffer ... ok
[INFO] [stdout] test tests::services_arriving_clear_the_unreachable_mark ... ok
[INFO] [stdout] test tests::startup_waits_five_seconds_before_saying_anything ... ok
[INFO] [stdout] test tests::the_debug_log_records_the_error_under_the_context_not_just_the_context ... ok
[INFO] [stdout] test tests::a_flood_of_logs_does_not_stop_the_clock ... ok
[INFO] [stdout] test tests::a_cancelled_loop_takes_no_further_input ... ok
[INFO] [stdout] test tests::the_event_loop_applies_an_answered_poll_and_clears_the_note ... ok
[INFO] [stdout] test tests::the_event_loop_applies_the_startup_pins_once_a_poll_answers ... ok
[INFO] [stdout] test tests::the_event_loop_carries_out_the_action_a_key_asked_for ... ok
[INFO] [stdout] test tests::a_key_that_is_not_being_pressed_is_not_a_key_press ... ok
[INFO] [stdout] test tests::the_event_loop_carries_the_attach_id_into_the_buffer ... ok
[INFO] [stdout] test tests::the_event_loop_quits_on_a_key_from_its_input_stream ... ok
[INFO] [stdout] test tests::the_event_loop_carries_the_container_id_into_the_buffer ... ok
[INFO] [stdout] test tests::the_event_loop_goes_on_ticking_the_app ... ok
[INFO] [stdout] test tests::the_notice_names_the_docker_host_it_is_waiting_on ... ok
[INFO] [stdout] test tests::the_notice_repeats_while_the_wait_goes_on ... ok
[INFO] [stdout] test tests::the_notice_says_which_socket_when_no_host_is_set ... ok
[INFO] [stdout] test tests::the_poll_waits_ten_seconds_exactly ... ok
[INFO] [stdout] test tests::toggling_the_layout_changes_the_frame_geometry ... ok
[INFO] [stdout] test tests::topology_events_wake_the_refresher ... ok
[INFO] [stdout] test tui::app::tests::a_container_being_replaced_does_not_double_its_row ... ok
[INFO] [stdout] test tui::app::tests::a_failed_service_suppresses_auto_exit ... ok
[INFO] [stdout] test tui::app::tests::a_fresh_pin_silently_replaces_the_pane_contents ... ok
[INFO] [stdout] test tui::app::tests::a_genuinely_finished_stack_still_counts_as_exited ... ok
[INFO] [stdout] test tests::the_event_loop_puts_an_outage_on_the_frame ... ok
[INFO] [stdout] test tui::app::tests::a_genuinely_scaled_service_keeps_every_replica ... ok
[INFO] [stdout] test tui::app::tests::a_key_dismisses_the_countdown_popup_and_still_acts ... ok
[INFO] [stdout] test tui::app::tests::a_keypress_cancels_the_countdown ... ok
[INFO] [stdout] test tui::app::tests::a_pane_pinned_only_to_slot_two_goes_full_screen_as_itself ... ok
[INFO] [stdout] test tui::app::tests::a_pending_replacement_does_not_look_like_a_finished_stack ... ok
[INFO] [stdout] test tui::app::tests::a_recreated_container_neither_splices_nor_discards_the_pane_s_history ... ok
[INFO] [stdout] test tui::app::tests::a_pane_hidden_by_full_screen_keeps_its_emulator ... ok
[INFO] [stdout] test tui::app::tests::a_scaled_service_mid_recreate_keeps_one_row_per_replica ... ok
[INFO] [stdout] test tui::app::tests::a_second_enter_does_not_move_the_restore_point ... ok
[INFO] [stdout] test tui::app::tests::a_second_escape_does_nothing_while_the_list_stays_hidden ... ok
[INFO] [stdout] test tui::app::tests::a_second_escape_hands_focus_back_to_the_list ... ok
[INFO] [stdout] test tui::app::tests::a_reopened_service_still_reports_that_it_has_output ... ok
[INFO] [stdout] test tui::app::tests::a_service_coming_back_up_cancels_the_countdown ... ok
[INFO] [stdout] test tui::app::tests::a_service_that_leaves_every_pane_releases_its_emulator ... ok
[INFO] [stdout] test tui::app::tests::a_service_pinned_to_the_second_pane_keeps_its_emulator ... ok
[INFO] [stdout] test tui::app::tests::a_signal_exit_follows_the_128_plus_signo_convention ... ok
[INFO] [stdout] test tui::app::tests::a_spacebar_pane_can_go_full_screen_and_come_back ... ok
[INFO] [stdout] test tui::app::tests::an_empty_stack_does_not_trigger_auto_exit ... ok
[INFO] [stdout] test tui::app::tests::a_slash_typed_into_the_filter_is_literal ... ok
[INFO] [stdout] test tui::app::tests::arrows_still_navigate_while_filtering ... ok
[INFO] [stdout] test tui::app::tests::an_enter_that_dismisses_the_countdown_still_goes_full_screen ... ok
[INFO] [stdout] test tui::app::tests::auto_exit_can_be_disabled ... ok
[INFO] [stdout] test tui::app::tests::b_does_nothing_without_panes ... ok
[INFO] [stdout] test tui::app::tests::auto_exit_fires_once_the_countdown_elapses ... ok
[INFO] [stdout] test tui::app::tests::b_hides_the_list_and_moves_focus_to_a_pane ... ok
[INFO] [stdout] test tui::app::tests::c_queues_a_copy_only_when_a_pane_has_focus ... ok
[INFO] [stdout] test tui::app::tests::configured_pins_are_applied_once_services_arrive ... ok
[INFO] [stdout] test tui::app::tests::ctrl_c_interrupts_even_while_filtering ... ok
[INFO] [stdout] test tui::app::tests::ctrl_c_quits_with_status_one_hundred_thirty ... ok
[INFO] [stdout] test tui::app::tests::enter_is_inert_when_the_focused_pane_has_lost_its_service ... ok
[INFO] [stdout] test tui::app::tests::enter_on_a_focused_pane_gives_it_the_whole_frame ... ok
[INFO] [stdout] test tui::app::tests::enter_on_an_already_pinned_service_just_focuses_it ... ok
[INFO] [stdout] test tui::app::tests::enter_opens_and_focuses_the_pane ... ok
[INFO] [stdout] test tui::app::tests::enter_persists_the_filter_and_hands_keys_back ... ok
[INFO] [stdout] test tui::app::tests::escape_clears_the_filter ... ok
[INFO] [stdout] test tui::app::tests::escape_dismisses_the_countdown_without_acting ... ok
[INFO] [stdout] test tui::app::tests::escape_from_a_pane_returns_to_the_list ... ok
[INFO] [stdout] test tui::app::tests::enter_does_not_leave_full_screen ... ok
[INFO] [stdout] test tui::app::tests::escape_puts_back_the_arrangement_full_screen_replaced ... ok
[INFO] [stdout] test tui::app::tests::filtering_keeps_the_selection_on_the_same_service_when_pinned ... ok
[INFO] [stdout] test tui::app::tests::focused_output_returns_the_panes_buffer ... ok
[INFO] [stdout] test tui::app::tests::full_screen_ignores_the_keys_that_would_split_the_frame_again ... ok
[INFO] [stdout] test tui::app::tests::full_screen_restores_a_list_that_was_already_hidden ... ok
[INFO] [stdout] test tui::app::tests::full_screen_still_scrolls_copies_and_quits ... ok
[INFO] [stdout] test tui::app::tests::escape_still_only_closes_the_help_popup ... ok
[INFO] [stdout] test tui::app::tests::help_restores_the_pane_that_had_focus ... ok
[INFO] [stdout] test tui::app::tests::help_opens_over_full_screen_and_leaves_it_intact ... ok
[INFO] [stdout] test tui::app::tests::m_queues_a_layout_toggle ... ok
[INFO] [stdout] test tui::app::tests::navigating_an_empty_list_is_safe ... ok
[INFO] [stdout] test tui::app::tests::navigation_keys_scroll_the_pane_rather_than_the_list_when_it_has_focus ... ok
[INFO] [stdout] test tui::app::tests::navigation_wraps_in_both_directions ... ok
[INFO] [stdout] test tui::app::tests::only_the_first_two_configured_pins_are_used ... ok
[INFO] [stdout] test tui::app::tests::output_is_routed_to_the_matching_service ... ok
[INFO] [stdout] test tui::app::tests::home_and_end_jump_to_the_extremes ... ok
[INFO] [stdout] test tui::app::tests::pinning_a_service_already_in_the_other_pane_moves_it ... ok
[INFO] [stdout] test tui::app::tests::pinning_from_spacebar_mode_converts_to_a_real_pin ... ok
[INFO] [stdout] test tui::app::tests::pinning_opens_a_pane_without_stealing_focus ... ok
[INFO] [stdout] test tui::app::tests::pinning_switches_selection_tracking_to_follow_the_service ... ok
[INFO] [stdout] test tui::app::tests::pinning_the_same_service_again_unpins_it ... ok
[INFO] [stdout] test tui::app::tests::pins_survive_the_filter_hiding_the_service ... ok
[INFO] [stdout] test tui::app::tests::q_quits_from_the_help_popup_as_the_popup_says_it_does ... ok
[INFO] [stdout] test tui::app::tests::q_quits_with_status_zero ... ok
[INFO] [stdout] test tui::app::tests::question_mark_toggles_the_help_popup ... ok
[INFO] [stdout] test tui::app::tests::output_that_arrived_while_released_is_there_on_reopen ... ok
[INFO] [stdout] test tui::app::tests::reopening_a_service_comes_back_tailing_rather_than_where_it_was_left ... ok
[INFO] [stdout] test tui::app::tests::replicas_are_listed_separately_with_suffixed_names ... ok
[INFO] [stdout] test tui::app::tests::reopening_a_released_service_puts_its_output_back ... ok
[INFO] [stdout] test tui::app::tests::replicas_recreated_together_neither_cross_nor_inherit ... ok
[INFO] [stdout] test tui::app::tests::scrolling_a_focused_pane_moves_its_buffer ... ok
[INFO] [stdout] test tui::app::tests::slash_does_not_open_the_filter_from_a_focused_pane ... ok
[INFO] [stdout] test tui::app::tests::shift_tab_cycles_the_other_way ... ok
[INFO] [stdout] test tui::app::tests::slash_opens_the_filter_and_typing_narrows_the_list ... ok
[INFO] [stdout] test tui::app::tests::space_opens_a_pane_that_follows_the_selection ... ok
[INFO] [stdout] test tui::app::tests::spacebar_mode_shows_no_pin_indicators ... ok
[INFO] [stdout] test tui::app::tests::tab_cycles_list_to_pane_and_back ... ok
[INFO] [stdout] test tui::app::tests::tab_does_nothing_with_no_panes_open ... ok
[INFO] [stdout] test tui::app::tests::space_again_closes_the_pane ... ok
[INFO] [stdout] test tui::app::tests::tab_visits_both_panes_in_order ... ok
[INFO] [stdout] test tui::app::tests::the_countdown_counts_down ... ok
[INFO] [stdout] test tui::app::tests::the_countdown_starts_once_every_service_has_exited_cleanly ... ok
[INFO] [stdout] test tui::app::tests::the_row_that_survives_a_replacement_is_stable_across_refreshes ... ok
[INFO] [stdout] test tui::app::tests::the_help_popup_swallows_other_keys ... ok
[INFO] [stdout] test tui::app::tests::two_live_containers_sharing_a_replica_stay_visible_as_two_rows ... ok
[INFO] [stdout] test tui::app::tests::two_services_can_be_pinned_at_once ... ok
[INFO] [stdout] test tui::app::tests::unknown_pinned_names_are_ignored ... ok
[INFO] [stdout] test tui::app::tests::unpinning_the_focused_pane_moves_focus_back_to_the_list ... ok
[INFO] [stdout] test tui::app::tests::while_filtering_command_keys_are_literal_text ... ok
[INFO] [stdout] test tui::app::tests::zero_clears_every_pane ... ok
[INFO] [stdout] test tui::components::help_popup::tests::alternative_keys_are_split_on_or ... ok
[INFO] [stdout] test tui::components::help_popup::tests::every_binding_has_a_description ... ok
[INFO] [stdout] test tui::components::help_popup::tests::spacer_entries_render_as_blank_lines ... ok
[INFO] [stdout] test tui::components::help_popup::tests::the_full_screen_binding_and_its_exit_are_both_documented ... ok
[INFO] [stdout] test tui::components::help_popup::tests::the_popup_is_centred ... ok
[INFO] [stdout] test tui::components::log_pane::tests::a_blank_last_row_falls_off_the_bottom_of_the_window ... ok
[INFO] [stdout] test tests::the_event_loop_routes_log_output_into_its_buffer ... ok
[INFO] [stdout] test tui::components::log_pane::tests::a_window_taller_than_the_grid_starts_at_the_top ... ok
[INFO] [stdout] test tui::components::log_pane::tests::emulator_size_never_goes_below_the_minimum ... ok
[INFO] [stdout] test tui::components::log_pane::tests::the_emulator_is_the_pane_plus_the_cursor_row ... ok
[INFO] [stdout] test tui::components::log_pane::tests::the_window_stays_anchored_to_the_bottom_of_a_grid_it_cannot_fill ... ok
[INFO] [stdout] test tui::components::services_list::tests::a_list_that_exactly_fills_the_body_gets_no_scrollbar ... ok
[INFO] [stdout] test tui::components::services_list::tests::a_long_project_name_is_not_clipped_to_the_status_column ... ok
[INFO] [stdout] test tui::components::log_pane::tests::colours_pass_through_by_kind ... ok
[INFO] [stdout] test tui::components::services_list::tests::a_long_service_name_is_capped_when_reserving_space ... ok
[INFO] [stdout] test tui::components::services_list::tests::a_narrow_pane_still_produces_a_usable_badge ... ok
[INFO] [stdout] test tui::components::services_list::tests::the_badge_is_bounded_by_cells_not_characters ... ok
[INFO] [stdout] test tui::components::services_list::tests::a_very_long_project_name_is_elided_rather_than_clipped ... ok
[INFO] [stdout] test tui::app::tests::the_service_a_spacebar_pane_follows_keeps_its_emulator ... ok
[INFO] [stdout] test tui::components::services_list::tests::truncation_counts_a_combining_sequence_as_one_cell ... ok
[INFO] [stdout] test tui::components::services_list::tests::the_scrollbar_does_not_narrow_the_header ... ok
[INFO] [stdout] test tui::components::services_list::tests::uptime_survives_longer_than_health_as_width_shrinks ... ok
[INFO] [stdout] test tui::components::services_list::tests::very_narrow_lists_drop_both_columns ... ok
[INFO] [stdout] test tui::components::status_bar::tests::a_daemon_that_is_merely_not_answering_is_not_called_unreachable ... ok
[INFO] [stdout] test tui::components::status_bar::tests::a_daemon_that_rejected_the_request_is_named_as_that ... ok
[INFO] [stdout] test tui::components::services_list::tests::wide_lists_show_both_optional_columns ... ok
[INFO] [stdout] test tui::components::status_bar::tests::a_full_screen_pane_advertises_the_way_out ... ok
[INFO] [stdout] test tui::components::status_bar::tests::a_focused_pane_advertises_full_screen ... ok
[INFO] [stdout] test tui::components::status_bar::tests::an_empty_stack_shows_no_status ... ok
[INFO] [stdout] test tui::components::status_bar::tests::an_impossibly_narrow_bar_renders_nothing_rather_than_overflowing ... ok
[INFO] [stdout] test tui::components::status_bar::tests::an_unreachable_daemon_is_named_in_the_context_slot ... ok
[INFO] [stdout] test tui::components::status_bar::tests::an_unreachable_daemon_outranks_a_persisted_filter ... ok
[INFO] [stdout] test tui::components::status_bar::tests::a_transient_message_outranks_the_filter ... ok
[INFO] [stdout] test tui::components::status_bar::tests::the_auto_exit_countdown_outranks_the_daemon_note ... ok
[INFO] [stdout] test tui::components::status_bar::tests::the_filter_query_appears_in_the_context_slot ... ok
[INFO] [stdout] test tui::components::status_bar::tests::the_hint_line_drops_items_from_the_left_when_cramped ... ok
[INFO] [stdout] test tui::components::status_bar::tests::the_note_goes_away_when_the_daemon_answers_again ... ok
[INFO] [stdout] test tui::components::status_bar::tests::the_note_says_the_connection_is_being_retried ... ok
[INFO] [stdout] test tui::components::status_bar::tests::pane_focus_shows_pane_specific_hints ... ok
[INFO] [stdout] test tui::components::status_bar::tests::the_status_slot_counts_running_services ... ok
[INFO] [stdout] test tui::filter::tests::a_slash_is_literal_text_so_paths_are_filterable ... ok
[INFO] [stdout] test tui::filter::tests::an_empty_query_is_not_active_even_while_editing ... ok
[INFO] [stdout] test tui::filter::tests::backspace_removes_a_character ... ok
[INFO] [stdout] test tui::filter::tests::clearing_drops_the_query_and_the_state ... ok
[INFO] [stdout] test tui::filter::tests::matching_is_case_insensitive ... ok
[INFO] [stdout] test tui::filter::tests::persisting_keeps_the_filter_but_stops_capturing_keys ... ok
[INFO] [stdout] test tui::filter::tests::starts_off_and_matches_everything ... ok
[INFO] [stdout] test tui::filter::tests::typing_narrows_the_list ... ok
[INFO] [stdout] test tui::focus::tests::a_popup_takes_focus_and_restores_the_base_on_close ... ok
[INFO] [stdout] test tui::focus::tests::pane_index_is_only_reported_for_panes ... ok
[INFO] [stdout] test tui::focus::tests::starts_on_the_service_list ... ok
[INFO] [stdout] test tui::focus::tests::the_base_can_change_underneath_a_popup ... ok
[INFO] [stdout] test tui::filter::tests::reopening_a_persisted_filter_resumes_editing_with_the_query_intact ... ok
[INFO] [stdout] test tui::components::services_list::tests::the_body_is_the_pane_less_the_header ... ok
[INFO] [stdout] test tui::layout_manager::tests::aspect_ratio_decides_the_remaining_cases ... ok
[INFO] [stdout] test tui::layout_manager::tests::hiding_the_list_gives_the_panes_the_whole_frame ... ok
[INFO] [stdout] test tui::layout_manager::tests::horizontal_list_is_one_third_of_the_width_with_a_two_column_gap ... ok
[INFO] [stdout] test tui::layout_manager::tests::list_takes_the_whole_frame_when_no_panes_are_open ... ok
[INFO] [stdout] test tui::layout_manager::tests::narrow_terminals_always_stack ... ok
[INFO] [stdout] test tui::layout_manager::tests::tall_and_narrow_terminals_stack ... ok
[INFO] [stdout] test tui::layout_manager::tests::toggling_from_auto_picks_the_opposite_of_the_resolved_mode ... ok
[INFO] [stdout] test tui::layout_manager::tests::too_small_frames_are_detected ... ok
[INFO] [stdout] test tui::layout_manager::tests::two_panes_split_the_pane_area_evenly ... ok
[INFO] [stdout] test tui::layout_manager::tests::vertical_list_is_one_third_of_the_height_with_a_one_row_gap ... ok
[INFO] [stdout] test tui::layout_manager::tests::wide_and_short_terminals_go_side_by_side ... ok
[INFO] [stdout] test tui::render::tests::a_crashed_stack_shows_no_countdown_popup ... ok
[INFO] [stdout] test tui::render::tests::a_daemon_nothing_has_complained_about_adds_nothing_to_the_frame ... ok
[INFO] [stdout] test tui::render::tests::a_frame_below_the_minimum_shows_only_the_too_small_notice ... ok
[INFO] [stdout] test tui::render::tests::a_full_screen_pane_is_the_only_thing_on_the_frame ... ok
[INFO] [stdout] test tui::render::tests::a_lost_daemon_is_reported_on_the_rendered_frame ... ok
[INFO] [stdout] test tui::render::tests::a_narrow_frame_stacks_the_pane_below_the_list ... ok
[INFO] [stdout] test tui::render::tests::a_pane_hidden_by_full_screen_rewraps_when_it_comes_back ... ok
[INFO] [stdout] test tui::render::tests::a_pane_pads_its_content_symmetrically ... ok
[INFO] [stdout] test tui::render::tests::a_pane_with_no_output_yet_says_so ... ok
[INFO] [stdout] test tests::the_event_loop_sizes_a_pane_before_anything_is_written_to_it ... ok
[INFO] [stdout] test tui::render::tests::a_pinned_pane_keeps_its_header_when_the_filter_hides_the_service ... ok
[INFO] [stdout] test tui::render::tests::a_progress_bar_holds_the_pane_s_last_line_until_its_newline ... ok
[INFO] [stdout] test tui::render::tests::a_sparsely_pinned_pane_gets_its_emulator_sized ... ok
[INFO] [stdout] test tui::render::tests::a_scrollbar_does_not_eat_the_last_column_of_a_value ... ok
[INFO] [stdout] test tui::render::tests::a_wide_frame_places_the_pane_beside_the_list ... ok
[INFO] [stdout] test tui::render::tests::a_tailing_pane_shows_no_scrollbar ... ok
[INFO] [stdout] test tui::render::tests::an_empty_project_renders_without_panicking ... ok
[INFO] [stdout] test tui::render::tests::filtering_removes_non_matching_services_from_the_frame ... ok
[INFO] [stdout] test tui::render::tests::hiding_the_list_leaves_only_the_pane ... ok
[INFO] [stdout] test tui::render::tests::log_output_is_visible_in_a_pane ... ok
[INFO] [stdout] test tui::render::tests::log_output_starts_at_the_left_edge ... ok
[INFO] [stdout] test tui::render::tests::pin_indicators_appear_next_to_pinned_services ... ok
[INFO] [stdout] test tui::render::tests::pinning_only_to_pane_two_renders_that_service ... ok
[INFO] [stdout] test tui::layout_manager::property_tests::layout_never_panics_and_stays_inside_the_frame ... ok
[INFO] [stdout] test tui::render::tests::pinning_opens_a_bordered_pane_titled_with_the_service ... ok
[INFO] [stdout] test tui::render::tests::status_glyphs_reflect_each_services_state ... ok
[INFO] [stdout] test tui::render::tests::the_filter_query_is_shown_while_typing ... ok
[INFO] [stdout] test tui::render::tests::the_countdown_popup_summarises_the_exited_stack ... ok
[INFO] [stdout] test tui::render::tests::the_minimum_supported_frame_still_renders_the_ui ... ok
[INFO] [stdout] test tui::render::tests::the_help_popup_lists_the_bindings ... ok
[INFO] [stdout] test tui::render::tests::the_selected_row_is_marked_with_a_caret ... ok
[INFO] [stdout] test tui::render::tests::the_project_badge_shows_the_whole_name_when_there_is_room ... ok
[INFO] [stdout] test tui::render::tests::rendering_is_stable_across_a_range_of_sizes ... ok
[INFO] [stdout] test tui::render::tests::the_service_list_shows_every_service_and_the_project_badge ... ok
[INFO] [stdout] test tui::render::tests::the_status_bar_shows_key_hints ... ok
[INFO] [stdout] test model::store::tests::under_the_byte_ceiling_a_release_costs_history_a_reopen_used_to_keep ... ok
[INFO] [stdout] test tui::render::tests::widening_the_frame_rewraps_log_output ... ok
[INFO] [stdout] test tui::scroll_momentum::tests::events_inside_the_window_accelerate ... ok
[INFO] [stdout] test tui::scroll_momentum::tests::events_under_fifty_ms_are_dropped ... ok
[INFO] [stdout] test tui::scroll_momentum::tests::changing_direction_resets_momentum ... ok
[INFO] [stdout] test tui::scroll_momentum::tests::first_event_moves_one_line ... ok
[INFO] [stdout] test tui::render::tests::the_status_bar_warns_while_the_countdown_runs ... ok
[INFO] [stdout] test tui::render::tests::two_pinned_services_render_two_panes ... ok
[INFO] [stdout] test tui::scroll_momentum::tests::momentum_is_capped ... ok
[INFO] [stdout] test tui::scroll_momentum::tests::pausing_past_the_window_resets_momentum ... ok
[INFO] [stdout] test tui::utils::tests::a_live_container_is_never_dropped_for_a_dead_one ... ok
[INFO] [stdout] test tui::utils::tests::a_running_container_outlives_the_one_it_replaced ... ok
[INFO] [stdout] test tui::utils::tests::active_sorts_above_failed_above_finished_above_pending ... ok
[INFO] [stdout] test tui::utils::tests::an_empty_list_collapses_to_nothing ... ok
[INFO] [stdout] test tui::utils::tests::distinct_replicas_of_a_scaled_service_are_all_kept ... ok
[INFO] [stdout] test tui::utils::tests::duration_extends_past_an_hour ... ok
[INFO] [stdout] test tui::utils::tests::exited_services_are_ordered_by_name_not_by_when_they_finished ... ok
[INFO] [stdout] test tui::utils::tests::a_replacement_container_collapses_onto_the_one_it_replaces ... ok
[INFO] [stdout] test tui::utils::tests::duration_matches_nx_thresholds ... ok
[INFO] [stdout] test tui::utils::tests::restarting_a_project_does_not_reshuffle_the_sidebar ... ok
[INFO] [stdout] test tui::utils::tests::an_exited_original_outlives_its_created_replacement ... ok
[INFO] [stdout] test tui::utils::tests::running_services_are_ordered_by_name_not_by_when_they_started ... ok
[INFO] [stdout] test tui::utils::tests::the_live_member_of_three_colliding_containers_wins ... ok
[INFO] [stdout] test tui::utils::tests::services_that_never_collide_keep_their_arrival_order ... ok
[INFO] [stdout] test tui::utils::tests::the_survivor_does_not_depend_on_list_order_when_only_one_has_started ... ok
[INFO] [stdout] test tui::utils::tests::replicas_of_one_service_are_ordered_by_index ... ok
[INFO] [stdout] test tui::utils::tests::neither_timestamps_nor_arrival_order_reach_the_screen ... ok
[INFO] [stdout] test tui::utils::tests::two_live_replicas_are_both_kept ... ok
[INFO] [stdout] test tui::layout_manager::property_tests::pane_count_matches_the_arrangement ... ok
[INFO] [stdout] test model::store::tests::output_without_newlines_survives_a_resize ... ok
[INFO] [stdout] test model::store::tests::an_oversized_chunk_does_not_leave_its_allocation_behind ... ok
[INFO] [stdout] test model::store::tests::a_trim_that_orphans_the_handover_s_cursor_restore_changes_nothing ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 501 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 33.60s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/debug/build/composemux/50f610ab0dde2d3f/out/cli-50f610ab0dde2d3f)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test an_unknown_flag_is_rejected ... ok
[INFO] [stdout] test help_and_version_succeed_without_touching_docker ... ok
[INFO] [stdout] test an_unreachable_daemon_fails_with_a_useful_message ... ok
[INFO] [stdout] test signals::terminating_signals_use_the_conventional_status ... ok
[INFO] [stdout] test a_startup_failure_writes_no_escape_sequences ... ok
[INFO] [stdout] test a_malformed_config_file_is_reported_rather_than_ignored ... ok
[INFO] [stdout] test startup::a_startup_the_daemon_never_answers_says_so_on_stderr ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.03s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c", kill_on_drop: false }`
[INFO] [stdout] 596153a7d1d1a39339b7738d242abfd45d317abf18438d371e174e55b3e3770c
