[INFO] fetching crate soulseek-rs 19.1.0...
[INFO] testing soulseek-rs-19.1.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate soulseek-rs 19.1.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate soulseek-rs 19.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate soulseek-rs 19.1.0
[INFO] tweaked toml for crates.io crate soulseek-rs 19.1.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate soulseek-rs 19.1.0 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 crates.io crate soulseek-rs 19.1.0 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-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee
[INFO] running `Command { std: "docker" "start" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee", 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" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee" "/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" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee", 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" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling futures-io v0.3.33
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling syn v3.0.2
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling toml_edit v0.25.13+spec-1.1.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling zerocopy v0.8.55
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling cfg_aliases v0.2.2
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling piper v0.2.5
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling lru v0.18.1
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling endi v1.1.1
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling num-bigint v0.4.8
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling futures-sink v0.3.33
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling terminal_size v0.4.4
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling clap_builder v4.6.7
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling rand v0.8.7
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling time v0.3.53
[INFO] [stderr]    Compiling zvariant v4.2.0
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]    Compiling async-fs v2.2.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling async-trait v0.1.91
[INFO] [stderr]    Compiling clap_derive v4.6.7
[INFO] [stderr]    Compiling serde_repr v0.1.21
[INFO] [stderr]    Compiling async-executor v1.14.0
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling num-iter v0.1.46
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling zbus_names v3.0.0
[INFO] [stderr]    Compiling xdg-home v1.3.0
[INFO] [stderr]    Compiling async-broadcast v0.7.2
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling ordered-stream v0.2.0
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling chacha20 v0.10.1
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling zbus v4.4.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling clap v4.6.7
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling indenter v0.3.4
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling attohttpc v0.30.1
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling xmltree v0.10.3
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling roff v1.1.1
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling clap_mangen v0.3.3
[INFO] [stderr]    Compiling igd-next v0.17.1
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling clap_complete v4.6.7
[INFO] [stderr]    Compiling soulseek-rs-lib v19.1.0
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling toml v0.9.12+spec-1.1.0
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling secret-service v4.0.0
[INFO] [stderr]    Compiling keyring v3.6.3
[INFO] [stderr]    Compiling soulseek-rs v19.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 59s
[INFO] running `Command { std: "docker" "inspect" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee", 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" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee" "/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 serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling zvariant v4.2.0
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling zbus_names v3.0.0
[INFO] [stderr]    Compiling zbus v4.4.0
[INFO] [stderr]    Compiling secret-service v4.0.0
[INFO] [stderr]    Compiling keyring v3.6.3
[INFO] [stderr]    Compiling soulseek-rs v19.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 14s
[INFO] running `Command { std: "docker" "inspect" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee", 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" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee" "/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.51s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/soulseek-rs/0c0b6a504f9464d0/out/soulseek_rs_tui-0c0b6a504f9464d0)
[INFO] [stdout] 
[INFO] [stdout] running 415 tests
[INFO] [stdout] test cli::tests::global_flags_parse_after_the_subcommand ... ok
[INFO] [stdout] test cli::tests::get_defaults_to_picking_the_best_result ... ok
[INFO] [stdout] test cli::tests::download_stdin_conflicts_with_positionals ... ok
[INFO] [stdout] test cli::tests::no_subcommand_means_tui ... ok
[INFO] [stdout] test cli::tests::download_stdin_needs_no_positionals ... ok
[INFO] [stdout] test cli::tests::shared_dir_repeats_into_a_list ... ok
[INFO] [stdout] test cli::tests::server_address_splits_host_and_port ... ok
[INFO] [stdout] test cli::tests::skills_dir_repeats_into_a_list ... ok
[INFO] [stdout] test cli::tests::room_and_message_groups_parse ... ok
[INFO] [stdout] test commands::completions::tests::bash_falls_back_to_the_login_file_when_that_is_all_there_is ... ok
[INFO] [stdout] test commands::completions::tests::installing_twice_adds_one_line_and_uninstalling_takes_only_that ... ok
[INFO] [stdout] test cli::tests::global_flags_parse_before_the_subcommand ... ok
[INFO] [stdout] uploading	bob	42/100	@@x\track.mp3
[INFO] [stdout] test commands::peer::tests::an_unchanged_upload_is_reported_once ... ok
[INFO] [stdout] test commands::peer::tests::an_upload_maps_to_its_wire_status ... ok
[INFO] [stdout] test commands::completions::tests::only_shells_this_machine_uses_become_targets ... ok
[INFO] [stdout] uploading	bob	10/100	@@x\track.mp3
[INFO] [stdout] uploading	bob	60/100	@@x\track.mp3
[INFO] [stdout] completed	bob	100/100	@@x\track.mp3
[INFO] [stdout] test commands::peer::tests::progress_and_status_changes_are_both_reported ... ok
[INFO] [stdout] test commands::peer::tests::the_upload_line_leads_with_status_and_progress ... ok
[INFO] [stdout] test commands::completions::tests::each_shell_lands_where_it_already_looks ... ok
[INFO] [stdout] test commands::skills::tests::only_agents_that_are_installed_become_targets ... ok
[INFO] [stdout] test commands::skills::tests::a_file_we_did_not_write_is_never_ours_to_delete ... ok
[INFO] [stdout] test cli::tests::download_requires_user_and_path_without_stdin ... ok
[INFO] [stdout] test commands::skills::tests::the_skill_tells_agents_to_ask_for_json ... ok
[INFO] [stdout] test commands::social::tests::full_path_does_not_double_a_trailing_separator ... ok
[INFO] [stdout] test cli::tests::an_absurd_wait_is_rejected_rather_than_overflowing_a_deadline ... ok
[INFO] [stdout] test commands::skills::tests::the_skill_documents_every_command ... ok
[INFO] [stdout] test cli::tests::clap_definitions_are_valid ... ok
[INFO] [stdout] test commands::social::tests::full_path_joins_a_directory_and_basename_with_a_backslash ... ok
[INFO] [stdout] test commands::tests::follow_listens_without_a_deadline ... ok
[INFO] [stdout] test commands::social::tests::full_path_of_a_rootless_listing_is_the_basename ... ok
[INFO] [stdout] test commands::social::tests::joins_and_leaves_are_labelled ... ok
[INFO] [stderr] warning: stdin line 2: expected tab-separated USER…PATH or a JSON record
[INFO] [stdout] test commands::transfer::tests::a_bad_line_does_not_discard_the_good_ones ... ok
[INFO] [stderr] warning: skipping same.mp3 from b: same remote path already queued from a
[INFO] [stdout] test commands::social::tests::our_own_join_confirmation_is_not_a_record ... ok
[INFO] [stdout] test commands::transfer::tests::a_filter_that_rejects_everything_is_the_no_results_verdict ... ok
[INFO] [stdout] test commands::transfer::tests::best_prefers_a_free_slot_over_a_higher_bitrate ... ok
[INFO] [stdout] test commands::transfer::tests::candidates_flatten_every_file_of_every_peer ... ok
[INFO] [stdout] test commands::transfer::tests::duplicate_remote_paths_are_dropped_because_the_store_keys_by_path ... ok
[INFO] [stdout] test commands::transfer::tests::exclude_drops_a_path_containing_the_term_whatever_its_case ... ok
[INFO] [stdout] test commands::transfer::tests::exclude_matches_any_term_not_all_of_them ... ok
[INFO] [stdout] test commands::transfer::tests::candidates_carry_bitrate_duration_and_slot_state ... ok
[INFO] [stdout] test commands::social::tests::only_events_for_the_listened_room_become_records ... ok
[INFO] [stdout] test commands::transfer::tests::an_extensionless_file_never_satisfies_an_extension_filter ... ok
[INFO] [stdout] test commands::transfer::tests::filters_combine_as_an_and ... ok
[INFO] [stderr] warning: skipping @@two\other\track.mp3 from b: would overwrite the file already queued from a
[INFO] [stdout] test commands::transfer::tests::local_path_uses_the_last_segment_of_a_windows_style_path ... ok
[INFO] [stdout] test commands::transfer::tests::min_bitrate_drops_lower_and_unknown_bitrates ... ok
[INFO] [stdout] test commands::transfer::tests::ranking_is_deterministic_for_equivalent_results ... ok
[INFO] [stdout] test commands::transfer::tests::requests_that_would_overwrite_the_same_local_file_are_dropped ... ok
[INFO] [stdout] test commands::transfer::tests::a_dot_in_a_folder_name_is_not_the_files_extension ... ok
[INFO] [stdout] test commands::transfer::tests::several_extensions_are_a_union ... ok
[INFO] [stdout] test commands::transfer::tests::size_bounds_are_inclusive_on_both_ends ... ok
[INFO] [stdout] test commands::transfer::tests::stdin_accepts_the_json_records_search_emits ... ok
[INFO] [stdout] test commands::transfer::tests::sort_modes_lead_with_their_own_key ... ok
[INFO] [stdout] test commands::transfer::tests::stdin_accepts_the_text_records_search_emits ... ok
[INFO] [stdout] test commands::transfer::tests::stdin_accepts_a_bare_user_and_path_pair ... ok
[INFO] [stdout] test commands::transfer::tests::each_size_bound_works_without_the_other ... ok
[INFO] [stdout] test commands::transfer::tests::stdin_rejects_a_json_record_with_empty_fields ... ok
[INFO] [stdout] test commands::transfer::tests::stdin_skips_blank_lines_and_rejects_junk ... ok
[INFO] [stdout] test commands::transfer::tests::extension_keeps_only_that_type_however_it_is_written ... ok
[INFO] [stdout] test commands::transfer::tests::stdin_ignores_extra_json_fields_a_filter_may_have_added ... ok
[INFO] [stdout] test commands::wish::tests::a_sweeper_needs_something_to_look_for ... ok
[INFO] [stdout] test daemon::hub::tests::a_browse_is_only_awaited_once ... ok
[INFO] [stdout] test commands::wish::tests::only_naming_something_unstored_is_a_usage_error ... ok
[INFO] [stdout] test commands::wish::tests::without_only_every_stored_wish_runs ... ok
[INFO] [stdout] test commands::wish::tests::an_empty_wishlist_is_the_no_results_verdict ... ok
[INFO] [stdout] test daemon::hub::tests::a_browse_that_is_never_answered_stops_being_polled ... ok
[INFO] [stdout] test commands::wish::tests::only_selects_one_stored_wish_ignoring_case_and_space ... ok
[INFO] [stdout] test daemon::hub::tests::history_carries_both_directions_of_a_conversation ... ok
[INFO] [stdout] test daemon::hub::tests::every_subscriber_receives_the_same_event ... ok
[INFO] [stdout] test daemon::hub::tests::a_client_that_stops_reading_is_dropped_and_the_others_keep_up ... ok
[INFO] [stdout] test daemon::hub::tests::history_keeps_the_newest_messages_within_the_cap ... ok
[INFO] [stdout] test daemon::hub::tests::unsubscribing_stops_delivery ... ok
[INFO] [stdout] test daemon::openrpc::a_wire_name_round_trips_through_its_enum ... ok
[INFO] [stdout] test daemon::proto::tests::a_complete_user_survives_the_round_trip ... ok
[INFO] [stdout] test commands::transfer::tests::free_slots_only_keeps_peers_advertising_a_slot ... ok
[INFO] [stdout] test daemon::proto::tests::a_notification_carries_no_id_so_no_reply_is_expected ... ok
[INFO] [stdout] test daemon::proto::tests::a_private_message_survives_the_round_trip ... ok
[INFO] [stdout] test daemon::proto::tests::a_request_parses_without_optional_fields ... ok
[INFO] [stdout] test daemon::hub::tests::a_dropped_receiver_removes_its_subscriber ... ok
[INFO] [stdout] test daemon::proto::tests::a_partly_answered_user_stays_partly_answered ... ok
[INFO] [stdout] test daemon::proto::tests::a_response_serializes_exactly_one_of_result_and_error ... ok
[INFO] [stdout] test daemon::openrpc::every_method_and_event_is_published ... ok
[INFO] [stdout] test daemon::openrpc::published_parameters_are_the_keys_the_daemon_reads ... ok
[INFO] [stdout] test daemon::proto::tests::a_search_result_survives_the_round_trip ... ok
[INFO] [stdout] test daemon::proto::tests::a_shared_listing_survives_the_round_trip ... ok
[INFO] [stdout] test daemon::proto::tests::an_error_always_carries_an_id_even_when_there_was_none ... ok
[INFO] [stdout] test daemon::proto::tests::an_error_without_an_exit_code_is_a_generic_failure ... ok
[INFO] [stdout] test daemon::proto::tests::an_error_carries_the_exit_code_a_local_run_would_have_produced ... ok
[INFO] [stdout] test daemon::proto::tests::every_room_event_survives_the_round_trip ... ok
[INFO] [stdout] test daemon::server::tests::a_room_that_was_never_joined_has_no_member_stats ... ok
[INFO] [stdout] test daemon::proto::tests::every_download_status_survives_the_round_trip ... ok
[INFO] [stdout] test daemon::server::tests::a_notification_gets_no_reply_even_when_it_fails ... ok
[INFO] [stdout] test daemon::proto::tests::every_upload_status_survives_the_round_trip ... ok
[INFO] [stdout] test daemon::server::tests::a_unix_socket_needs_no_token_but_tcp_does ... ok
[INFO] [stdout] test daemon::openrpc::document_is_current ... ok
[INFO] [stdout] test daemon::server::tests::a_wrong_token_is_refused_on_every_transport ... ok
[INFO] [stdout] test daemon::server::tests::an_unknown_method_is_reported_rather_than_ignored ... ok
[INFO] [stdout] test daemon::server::tests::a_watch_is_readable_back_and_survives_until_unwatched ... ok
[INFO] [stdout] test daemon::server::tests::a_password_change_reaches_the_session_and_this_hosts_store ... ok
[INFO] [stdout] test daemon::server::tests::bad_params_are_reported_as_such ... ok
[INFO] [stdout] test daemon::server::tests::stop_is_recorded_so_the_daemon_can_wind_down ... ok
[INFO] [stdout] test daemon::server::tests::token_comparison_does_not_short_circuit_on_length_or_content ... ok
[INFO] [stdout] test daemon::server::tests::unparseable_input_is_a_parse_error_not_a_dropped_connection ... ok
[INFO] [stdout] test daemon::tests::a_second_daemon_refuses_to_steal_a_live_socket ... ok
[INFO] [stdout] test daemon::tests::a_token_file_is_readable_by_nobody_else ... ok
[INFO] [stdout] test daemon::server::tests::watching_the_same_user_twice_lists_them_once ... ok
[INFO] [stdout] test daemon::tests::a_blank_token_file_is_replaced_rather_than_trusted ... ok
[INFO] [stdout] test daemon::tests::the_backoff_doubles_and_then_holds_at_the_cap ... ok
[INFO] [stdout] test daemon::server::tests::member_stats_are_published_for_a_joined_room ... ok
[INFO] [stdout] test daemon::tests::a_token_is_minted_once_and_then_reused ... ok
[INFO] [stdout] test daemon::tests::only_an_owned_dropped_session_reconnects ... ok
[INFO] [stdout] test directories::tests::a_file_is_not_a_valid_shared_directory ... ok
[INFO] [stdout] test directories::tests::existing_directory_is_accepted ... ok
[INFO] [stdout] test directories::tests::missing_directory_is_rejected ... ok
[INFO] [stdout] test directories::tests::unset_or_blank_shares_nothing ... ok
[INFO] [stdout] test daemon::tests::a_socket_left_by_a_dead_daemon_is_replaced_not_refused ... ok
[INFO] [stdout] test models::app_state::tests::a_log_shorter_than_its_window_is_never_held ... ok
[INFO] [stdout] test models::app_state::tests::a_wrapped_log_only_wraps_what_arrived_and_starts_over_on_a_change ... ok
[INFO] [stdout] test daemon::tests::two_tokens_are_not_the_same ... ok
[INFO] [stdout] test models::app_state::tests::cycling_to_the_same_chat_keeps_the_place ... ok
[INFO] [stdout] test daemon::server::tests::discover_serves_the_published_contract ... ok
[INFO] [stdout] test models::app_state::tests::a_log_view_follows_the_tail_until_held_and_holds_against_new_rows ... ok
[INFO] [stdout] test models::app_state::tests::every_pane_starts_visible_and_unzoomed ... ok
[INFO] [stdout] test models::app_state::tests::focusing_a_hidden_pane_by_number_brings_it_back ... ok
[INFO] [stdout] test models::app_state::tests::hiding_the_focused_pane_moves_the_focus_past_it ... ok
[INFO] [stdout] test models::app_state::tests::tab_cycles_the_focus_through_the_visible_panes_and_wraps ... ok
[INFO] [stdout] test models::app_state::tests::zoom_toggles_and_leaves_hidden_panes_alone ... ok
[INFO] [stdout] test models::browse::tests::a_filter_opens_every_folder_with_a_match_and_folds_still_work ... ok
[INFO] [stdout] test models::app_state::tests::the_last_visible_pane_cannot_be_hidden ... ok
[INFO] [stdout] test models::browse::tests::browse_state_load_auto_expands_top_level ... ok
[INFO] [stdout] test models::app_state::tests::opening_a_chat_pins_a_peer_with_no_messages_yet ... ok
[INFO] [stdout] test models::app_state::tests::hiding_wraps_the_focus_to_the_first_pane ... ok
[INFO] [stdout] test models::app_state::tests::chat_defaults_to_the_newest_conversation_and_cycles ... ok
[INFO] [stdout] test models::browse::tests::files_under_collects_all_descendant_leaves ... ok
[INFO] [stdout] test models::browse::tests::browse_tabs_retry_active_only_when_timed_out ... ok
[INFO] [stdout] test models::browse::tests::expanding_and_collapsing_refresh_the_rows_and_keep_the_selection ... ok
[INFO] [stdout] test models::browse::tests::intermediate_folders_are_synthesized ... ok
[INFO] [stdout] test models::browse::tests::browse_tabs_open_focus_close_and_cycle ... ok
[INFO] [stdout] test models::browse::tests::browse_tabs_reopen_after_timeout_requests_again ... ok
[INFO] [stdout] test models::browse::tests::file_paths_are_byte_exact_from_original_name ... ok
[INFO] [stdout] test models::rooms::tests::closing_active_tab_returns_name_and_adjusts_index ... ok
[INFO] [stdout] test models::rooms::tests::filter_matches_case_insensitively ... ok
[INFO] [stdout] test models::rooms::tests::focus_or_open_is_idempotent_and_marks_read ... ok
[INFO] [stdout] test models::browse::tests::flatten_only_descends_into_expanded_folders ... ok
[INFO] [stdout] test models::browse::tests::same_named_dirs_merge_regardless_of_order ... ok
[INFO] [stdout] test models::rooms::tests::list_refresh_keeps_highlight_on_the_same_room ... ok
[INFO] [stdout] test models::rooms::tests::joining_creates_a_tab_with_members ... ok
[INFO] [stdout] test models::rooms::tests::message_to_unviewed_room_increments_unread ... ok
[INFO] [stdout] test models::rooms::tests::message_does_not_resurrect_a_closed_room ... ok
[INFO] [stdout] test models::rooms::tests::message_to_viewed_room_does_not_increment_unread ... ok
[INFO] [stdout] test models::rooms::tests::message_for_unopened_room_is_dropped ... ok
[INFO] [stdout] test models::rooms::tests::tab_cycling_wraps_and_marks_read ... ok
[INFO] [stdout] test models::rooms::tests::user_selection_stays_in_range_when_members_leave ... ok
[INFO] [stdout] test models::rooms::tests::filtered_rooms_sorts_busiest_first_then_name ... ok
[INFO] [stdout] test models::settings::tests::a_daemons_session_offers_no_logout_row ... ok
[INFO] [stdout] test models::settings::tests::a_mistyped_repeat_changes_nothing_and_says_so ... ok
[INFO] [stdout] test models::settings::tests::adding_a_duplicate_share_is_a_no_op ... ok
[INFO] [stdout] test models::settings::tests::adding_a_share_path_applies ... ok
[INFO] [stdout] test models::settings::tests::an_empty_password_is_not_asked_for_twice ... ok
[INFO] [stdout] test models::settings::tests::anything_but_yes_cancels_the_logout ... ok
[INFO] [stdout] test models::settings::tests::delete_on_a_row_that_is_not_a_share_does_nothing ... ok
[INFO] [stdout] test models::settings::tests::deleting_the_selected_share_applies ... ok
[INFO] [stdout] test models::browse::tests::the_own_tab_is_opened_once_and_is_not_a_peer_of_the_same_name ... ok
[INFO] [stdout] test models::rooms::tests::closing_a_tab_clears_unread_on_the_newly_active_room ... ok
[INFO] [stdout] test models::settings::tests::a_password_typed_twice_the_same_way_is_changed ... ok
[INFO] [stdout] test models::settings::tests::editing_the_download_dir_applies ... ok
[INFO] [stdout] test models::settings::tests::escape_during_the_repeat_forgets_the_first_entry ... ok
[INFO] [stdout] test models::settings::tests::logging_out_is_confirmed_first ... ok
[INFO] [stdout] test models::settings::tests::selection_is_clamped_to_the_row_count ... ok
[INFO] [stdout] test models::rooms::tests::user_joined_and_left_update_membership ... ok
[INFO] [stdout] test models::rooms::tests::user_selection_navigates_and_resets_across_tabs ... ok
[INFO] [stdout] test output::tests::browse_text_is_user_size_path ... ok
[INFO] [stdout] test output::tests::download_text_is_just_the_local_path ... ok
[INFO] [stdout] test output::tests::a_tab_in_a_filename_cannot_forge_a_column ... ok
[INFO] [stdout] test output::tests::exit_codes_are_stable ... ok
[INFO] [stdout] test output::tests::portmap_text_reports_status_backend_and_address ... ok
[INFO] [stdout] test models::settings::tests::escape_cancels_an_edit_without_applying ... ok
[INFO] [stdout] test models::settings::tests::escape_closes_from_navigation ... ok
[INFO] [stdout] test models::settings::tests::r_requests_a_reindex ... ok
[INFO] [stdout] test output::tests::room_event_type_is_first_and_serializes_as_type ... ok
[INFO] [stdout] test output::tests::room_text_leads_with_the_user_count ... ok
[INFO] [stdout] test output::tests::sanitize_keeps_records_on_one_line_with_stable_columns ... ok
[INFO] [stdout] test persist::config::tests::a_set_value_survives_a_save_and_load ... ok
[INFO] [stdout] test persist::config::tests::a_wish_is_added_once_however_it_is_spelled ... ok
[INFO] [stdout] test output::tests::unknown_bitrate_renders_as_a_dash ... ok
[INFO] [stdout] test persist::config::tests::a_wishlist_survives_a_save_and_load ... ok
[INFO] [stdout] test persist::config::tests::accept_children_round_trips_through_get_and_set ... ok
[INFO] [stdout] test persist::config::tests::an_empty_cli_shared_dir_disables_sharing ... ok
[INFO] [stdout] test persist::config::tests::an_empty_value_clears_a_setting ... ok
[INFO] [stdout] test persist::config::tests::an_empty_wish_is_refused ... ok
[INFO] [stdout] test persist::config::tests::cli_shared_dir_combines_with_file_list_and_dedupes ... ok
[INFO] [stdout] test persist::config::tests::cli_values_override_file_values ... ok
[INFO] [stdout] test persist::config::tests::default_download_dir_is_a_soulseek_folder_under_downloads ... ok
[INFO] [stdout] test persist::config::tests::defaults_apply_when_cli_and_file_are_empty ... ok
[INFO] [stdout] test persist::config::tests::empty_shared_dir_disables_sharing ... ok
[INFO] [stdout] test output::tests::search_json_carries_every_field ... ok
[INFO] [stdout] test persist::config::tests::accepting_children_needs_a_listener ... ok
[INFO] [stdout] test persist::config::tests::file_values_override_defaults ... ok
[INFO] [stdout] test persist::config::tests::listener_flag_overrides_the_config_file ... ok
[INFO] [stdout] test persist::config::tests::listener_flag_wins_over_no_listener ... ok
[INFO] [stdout] test commands::completions::tests::a_script_is_written_once_and_removed_once ... ok
[INFO] [stdout] test persist::config::tests::malformed_file_is_an_error ... ok
[INFO] [stdout] test persist::config::tests::no_listener_flag_disables_the_listener ... ok
[INFO] [stdout] test persist::config::tests::removing_a_wish_ignores_case_and_reports_whether_it_was_there ... ok
[INFO] [stdout] test persist::config::tests::an_unknown_key_lists_the_ones_that_exist ... ok
[INFO] [stdout] test persist::config::tests::missing_file_loads_as_empty_config ... ok
[INFO] [stdout] test persist::config::tests::a_value_of_the_wrong_type_is_rejected_by_name ... ok
[INFO] [stdout] test output::tests::search_text_is_user_size_bitrate_path ... ok
[INFO] [stdout] test persist::config::tests::empty_shared_dirs_list_disables_sharing ... ok
[INFO] [stdout] test persist::config::tests::every_advertised_key_round_trips_through_get_and_set ... ok
[INFO] [stdout] test persist::config::tests::shared_dirs_list_replaces_the_default_share ... ok
[INFO] [stdout] test persist::config::tests::sharing_defaults_to_the_download_dir ... ok
[INFO] [stdout] test persist::config::tests::wishes_keep_the_order_they_were_added_in ... ok
[INFO] [stdout] test persist::secret::tests::a_deleted_password_is_no_longer_resolved ... ok
[INFO] [stdout] test persist::secret::tests::cli_password_wins_over_everything ... ok
[INFO] [stdout] test persist::config::tests::unknown_keys_and_partial_files_are_tolerated ... ok
[INFO] [stdout] test persist::secret::tests::keyring_used_when_no_cli_password ... ok
[INFO] [stdout] test persist::config::tests::save_then_load_round_trips ... ok
[INFO] [stdout] test persist::config::tests::setting_the_share_list_drops_the_single_folder_spelling ... ok
[INFO] [stdout] test persist::secret::tests::no_username_means_no_keyring_lookup ... ok
[INFO] [stdout] test persist::snapshot::tests::a_cancelled_download_is_not_captured ... ok
[INFO] [stdout] test persist::snapshot::tests::capture_carries_the_unread_count ... ok
[INFO] [stdout] test persist::secret::tests::failing_password_cmd_yields_none ... ok
[INFO] [stdout] test persist::snapshot::tests::capture_maps_download_status_to_completed_flag ... ok
[INFO] [stdout] test persist::snapshot::tests::capture_of_restored_searches_round_trips ... ok
[INFO] [stdout] test persist::snapshot::tests::capture_takes_open_room_names ... ok
[INFO] [stdout] test persist::snapshot::tests::capture_takes_queries_in_order_without_duplicates ... ok
[INFO] [stdout] test persist::snapshot::tests::messages_round_trip_through_a_snapshot ... ok
[INFO] [stdout] test persist::snapshot::tests::restore_searches_creates_inert_completed_entries ... ok
[INFO] [stdout] test persist::snapshot::tests::capture_keeps_only_the_newest_messages ... ok
[INFO] [stdout] test persist::config::tests::repeated_cli_shared_dirs_are_all_kept ... ok
[INFO] [stdout] test persist::state::tests::corrupt_file_loads_as_empty_and_is_kept_as_bak ... ok
[INFO] [stdout] test persist::state::tests::a_second_corrupt_file_replaces_the_previous_bak ... ok
[INFO] [stdout] test persist::config::tests::sharing_follows_a_customized_download_dir ... ok
[INFO] [stdout] test persist::state::tests::downloads_round_trip ... ok
[INFO] [stdout] test persist::secret::tests::password_cmd_used_when_keyring_has_nothing ... ok
[INFO] [stdout] test persist::secret::tests::keyring_failure_falls_through_to_password_cmd ... ok
[INFO] [stdout] test persist::state::tests::file_from_a_newer_build_loads_as_empty_and_is_kept_as_bak ... ok
[INFO] [stdout] test persist::state::tests::messages_round_trip_including_the_timestamp ... ok
[INFO] [stdout] test persist::secret::tests::none_when_no_source_has_a_password ... ok
[INFO] [stdout] test persist::state::tests::missing_files_load_as_empty ... ok
[INFO] [stdout] test persist::state::tests::save_is_atomic_no_tmp_file_left_behind ... ok
[INFO] [stdout] test persist::state::tests::searches_and_rooms_round_trip ... ok
[INFO] [stdout] test port_mapping::nat_pmp::tests::map_tcp_sends_correct_request_and_parses_response ... ok
[INFO] [stdout] test port_mapping::nat_pmp::tests::map_tcp_times_out_when_gateway_is_silent ... ok
[INFO] [stdout] test persist::state::tests::unread_count_round_trips_and_defaults_to_zero ... ok
[INFO] [stdout] test port_mapping::nat_pmp::tests::parses_macos_default_gateway ... ok
[INFO] [stdout] test port_mapping::nat_pmp::tests::unmap_sends_zero_lifetime_and_port ... ok
[INFO] [stdout] test port_mapping::nat_pmp::tests::map_tcp_surfaces_gateway_result_code ... ok
[INFO] [stdout] test remote::mirror::tests::a_browse_result_is_keyed_by_peer ... ok
[INFO] [stdout] test remote::mirror::tests::a_room_event_is_delivered_once_and_then_gone ... ok
[INFO] [stdout] test remote::mirror::tests::a_transfer_update_reaches_the_caller_waiting_on_it ... ok
[INFO] [stdout] test remote::mirror::tests::abandoning_transfers_wakes_whoever_is_waiting_on_them ... ok
[INFO] [stdout] test remote::mirror::tests::an_unreadable_event_is_ignored_rather_than_fatal ... ok
[INFO] [stdout] test remote::mirror::tests::an_update_for_an_unknown_transfer_is_harmless ... ok
[INFO] [stdout] test remote::mirror::tests::the_first_session_loss_is_the_one_reported ... ok
[INFO] [stdout] test remote::tests::a_closed_connection_fails_every_waiting_call ... ok
[INFO] [stdout] test remote::tests::a_junk_line_does_not_stop_the_reader ... ok
[INFO] [stdout] test remote::tests::a_reply_for_an_abandoned_call_is_dropped_quietly ... ok
[INFO] [stdout] test remote::mirror::tests::a_finished_transfer_stops_being_tracked ... ok
[INFO] [stdout] test remote::tests::a_reply_settles_the_call_that_is_waiting_for_it ... ok
[INFO] [stdout] test remote::tests::an_endpoint_tells_a_socket_path_from_a_host_and_port ... ok
[INFO] [stdout] test port_mapping::tests::service_maps_on_start_and_unmaps_on_drop ... ok
[INFO] [stdout] test remote::tests::the_reader_routes_replies_to_calls_and_events_to_the_mirror ... ok
[INFO] [stdout] test remote::tests::an_error_reply_reaches_the_caller_as_an_error ... ok
[INFO] [stdout] test ui::downloads::tests::only_running_downloads_count_towards_the_bar ... ok
[INFO] [stdout] test remote::tests::only_a_socket_authenticates_itself ... ok
[INFO] [stdout] test port_mapping::tests::upnp_maps_a_port_against_a_mock_igd ... ok
[INFO] [stdout] test ui::login::tests::a_result_that_lands_after_a_stop_is_let_go_on_the_attempts_thread ... ok
[INFO] [stdout] test ui::login::tests::a_wrong_password_is_rejected_and_an_unanswered_login_failed ... ok
[INFO] [stdout] test ui::login::tests::an_attempt_superseded_before_it_began_never_runs ... ok
[INFO] [stdout] test ui::login::tests::backspace_deletes_from_focused_field ... ok
[INFO] [stdout] test ui::login::tests::ctrl_c_quits_from_every_phase_without_typing ... ok
[INFO] [stdout] test ui::login::tests::empty_form_focuses_username ... ok
[INFO] [stdout] test ui::login::tests::a_finished_attempt_is_let_go_before_its_replacement_starts ... ok
[INFO] [stdout] test ui::login::tests::enter_on_username_moves_to_password ... ok
[INFO] [stdout] test ui::login::tests::enter_or_r_after_a_failed_connection_retries_with_the_same_password ... ok
[INFO] [stdout] test ui::login::tests::enter_or_r_while_connecting_restarts ... ok
[INFO] [stdout] test ui::login::tests::enter_submits_when_both_fields_filled ... ok
[INFO] [stdout] test ui::login::tests::enter_with_empty_password_does_not_submit ... ok
[INFO] [stdout] test ui::login::tests::escape_after_a_failed_connection_quits ... ok
[INFO] [stdout] test ui::login::tests::escape_cancels ... ok
[INFO] [stdout] test ui::login::tests::escape_while_connecting_stops_and_keeps_the_credentials ... ok
[INFO] [stdout] test ui::login::tests::key_after_rejection_returns_to_editing_and_clears_password ... ok
[INFO] [stdout] test ui::login::tests::other_key_after_a_failed_connection_edits_with_the_password_kept ... ok
[INFO] [stdout] test ui::login::tests::prefilled_username_focuses_password ... ok
[INFO] [stdout] test ui::login::tests::q_while_connecting_quits ... ok
[INFO] [stdout] test ui::login::tests::typing_fills_the_focused_field_and_tab_switches ... ok
[INFO] [stdout] test ui::login::tests::typing_is_ignored_while_connecting ... ok
[INFO] [stdout] test remote::mirror::tests::an_undrained_buffer_stops_growing_at_its_limit ... ok
[INFO] [stdout] test ui::main_tui::render::shortcuts::tests::unread_indicator_is_empty_when_nothing_is_unread ... ok
[INFO] [stdout] test ui::main_tui::search::tests::empty_query_returns_identity_mapping ... ok
[INFO] [stdout] test ui::main_tui::search::tests::query_is_case_insensitive ... ok
[INFO] [stdout] test ui::main_tui::search::tests::query_matches_filename_and_username_and_maps_indices ... ok
[INFO] [stdout] test ui::main_tui::render::shortcuts::tests::unread_indicator_shows_each_source_and_both_together ... ok
[INFO] [stdout] test ui::downloads::tests::nothing_running_hides_the_bar ... ok
[INFO] [stdout] test port_mapping::nat_pmp::tests::parses_linux_default_gateway_and_skips_unspecified ... ok
[INFO] [stdout] test ui::main_tui::tests::browse::o_leaves_the_share_view_for_the_folders_that_feed_it ... ok
[INFO] [stdout] test ui::main_tui::render::shortcuts::tests::blink_phases_share_text_but_differ_in_style ... ok
[INFO] [stdout] test ui::login::tests::a_restart_builds_nothing_until_the_attempt_it_replaces_has_let_go ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::a_search_brings_a_hidden_results_pane_back ... ok
[INFO] [stdout] test ui::main_tui::tests::browse::page_keys_walk_the_browse_tree_and_ctrl_d_does_not_download ... ok
[INFO] [stdout] test commands::completions::tests::a_sourced_script_registers_the_command ... ok
[INFO] [stdout] test ui::main_tui::tests::browse::folder_keys_and_the_filter_move_through_a_browsed_tree ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::a_listener_that_fell_back_says_so_in_the_status_bar ... ok
[INFO] [stdout] test ui::main_tui::tests::browse::shift_b_shows_what_this_session_shares_and_r_re_indexes_it ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::a_click_where_a_pane_just_hid_does_not_focus_it ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::hiding_the_results_gives_the_row_the_whole_height ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::tab_and_shift_tab_walk_the_panes_in_legend_order ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::clicking_where_a_hidden_pane_was_focuses_whatever_is_there_now ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::dragging_a_row_panes_right_edge_gives_it_width ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::the_info_pane_describes_the_highlighted_result ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::dragging_the_border_under_results_resizes_its_row ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::question_mark_opens_the_keys_list_and_closes_it_again ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::the_last_pane_standing_cannot_be_hidden ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::shift_w_brings_every_pane_back_and_leaves_zoom ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::the_results_pane_has_the_whole_width_to_itself ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::ctrl_d_and_ctrl_u_move_half_a_pane ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::ctrl_keys_are_ignored_outside_the_results_pane ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::ctrl_keys_page_while_a_filter_is_being_typed ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::end_and_home_jump_to_the_last_and_first_result ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::on_a_small_terminal_the_keys_list_stacks_and_scrolls ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::l_and_h_scroll_the_highlighted_name_up_to_its_end ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::the_downloads_pane_lists_its_clear_everything_key ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::navigation_keys_do_nothing_without_results ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::page_keys_move_a_pane_of_rows_and_stop_at_the_edges ... ok
[INFO] [stdout] test port_mapping::tests::drop_does_not_hang_when_gateway_is_unresponsive ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::picking_another_search_starts_its_results_unscrolled ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::space_after_a_filter_that_matches_nothing_does_not_panic ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::scrolling_follows_the_highlighted_row_not_the_longest_one ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::w_hides_the_focused_pane_and_its_number_brings_it_back ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::the_shortcut_bar_wraps_instead_of_cutting_keys_off ... ok
[INFO] [stdout] test ui::main_tui::tests::rooms::page_keys_move_through_the_room_list ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::page_keys_work_in_the_transfers_and_searches_lists_too ... ok
[INFO] [stdout] test ui::main_tui::tests::searches::a_held_shift_s_is_one_search_not_one_per_repeat ... ok
[INFO] [stdout] test ui::main_tui::tests::navigation::l_and_h_scroll_a_transfer_name_and_a_query_too ... ok
[INFO] [stdout] test ui::main_tui::tests::searches::shift_s_runs_the_highlighted_search_again_in_its_place ... ok
[INFO] [stdout] test ui::main_tui::tests::searches::shift_s_stops_a_run_still_collecting_before_starting_over ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_local_session_starts_from_its_own_snapshot_instead ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_local_window_fetches_results_without_counting_on_the_session ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_search_another_window_is_still_running_shows_as_active ... ok
[INFO] [stdout] test ui::main_tui::tests::rooms::slash_filters_the_open_conversation ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_search_dismissed_in_another_window_leaves_this_one ... ok
[INFO] [stdout] test ui::main_tui::tests::searches::shift_s_is_only_a_key_over_the_searches_list ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_selected_search_with_nothing_new_is_not_pulled_across_again ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_tick_asks_the_session_for_its_searches_once ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::z_zooms_the_focused_pane_and_esc_or_z_leaves_it ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_transfer_the_session_forgets_leaves_every_window ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_window_shows_transfers_it_did_not_start ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_search_that_has_run_its_window_shows_as_done ... ok
[INFO] [stdout] test ui::main_tui::tests::session::clearing_every_search_clears_them_in_the_session_too ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_window_shows_searches_run_in_another ... ok
[INFO] [stdout] test ui::main_tui::tests::session::a_window_with_its_own_session_is_left_alone ... ok
[INFO] [stdout] test ui::main_tui::tests::layout::the_searches_pane_lists_its_clear_all_and_rerun_keys ... ok
[INFO] [stdout] test ui::main_tui::tests::settings::a_password_typed_twice_reaches_the_session ... ok
[INFO] [stdout] test ui::main_tui::tests::rooms::page_up_scrolls_a_room_log_back_and_end_returns_to_the_newest ... ok
[INFO] [stdout] test ui::main_tui::tests::settings::a_password_typed_two_different_ways_is_not_sent ... ok
[INFO] [stdout] test ui::main_tui::tests::settings::applying_settings_attached_pushes_both_folders_to_the_daemon ... ok
[INFO] [stdout] test ui::main_tui::tests::session::an_attached_session_opens_with_the_conversation_already_in_it ... ok
[INFO] [stdout] test ui::main_tui::tests::settings::applying_settings_locally_stays_on_this_machine ... ok
[INFO] [stdout] test ui::main_tui::tests::settings::logging_out_asks_first_and_then_closes_the_window ... ok
[INFO] [stdout] test ui::main_tui::tests::session::fresh_results_still_reach_a_window_that_skipped_a_fetch ... ok
[INFO] [stdout] test ui::main_tui::tests::session::removing_a_search_removes_it_from_the_session ... ok
[INFO] [stdout] test ui::main_tui::tests::settings::an_attached_window_offers_no_logout ... ok
[INFO] [stdout] test ui::main_tui::tests::rooms::page_up_scrolls_a_conversation_and_switching_chats_resets_it ... ok
[INFO] [stdout] test ui::main_tui::tests::transfers::shift_c_clears_the_whole_transfer_list ... ok
[INFO] [stdout] test ui::main_tui::tests::transfers::x_cancels_the_highlighted_download ... ok
[INFO] [stdout] test ui::main_tui::tests::transfers::x_on_a_finished_download_asks_nothing ... ok
[INFO] [stdout] test ui::main_tui::tests::transfers::d_clears_a_cancelled_row ... ok
[INFO] [stdout] test ui::main_tui::tests::transfers::d_clears_a_finished_row_but_not_a_running_one ... ok
[INFO] [stdout] test ui::main_tui::tests::transfers::b_browses_the_user_of_the_highlighted_download ... ok
[INFO] [stdout] test ui::main_tui::tests::transfers::b_on_an_upload_row_browses_that_user ... ok
[INFO] [stdout] test ui::main_tui::tests::transfers::x_on_an_upload_row_still_cancels_the_upload ... ok
[INFO] [stdout] test ui::paging::tests::a_window_pulls_a_selection_past_the_end_onto_the_last_row ... ok
[INFO] [stdout] test ui::paging::tests::the_page_follows_the_selection_and_is_never_longer_than_the_pane ... ok
[INFO] [stdout] test ui::panes::browse_pane::tests::sharing_nothing_says_how_to_start ... ok
[INFO] [stdout] test ui::panes::browse_pane::tests::the_own_tab_names_itself_and_offers_no_download ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::a_search_result_lists_its_path_owner_and_attributes ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::failed_download_renders_its_error_reason ... ok
[INFO] [stdout] test ui::panes::browse_pane::tests::a_folder_is_done_when_every_file_is ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::failed_download_without_reason_shows_no_error_line ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::format_duration_hours_minutes_seconds ... ok
[INFO] [stdout] test ui::panes::browse_pane::tests::another_user_s_transfers_mark_nothing ... ok
[INFO] [stdout] test ui::panes::browse_pane::tests::a_downloading_file_carries_its_transfer_glyph ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::format_duration_minutes_and_seconds ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::format_duration_seconds_only ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::split_filename_with_backslash_path ... ok
[INFO] [stdout] test ui::panes::browse_pane::tests::a_folder_marks_with_its_files_download ... ok
[INFO] [stdout] test ui::main_tui::tests::settings::the_settings_popup_names_the_account_and_its_shares ... ok
[INFO] [stdout] test ui::panes::name_scroll::tests::scrolling_past_the_end_shows_the_tail ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::split_filename_with_no_separator ... ok
[INFO] [stdout] test ui::panes::name_scroll::tests::the_end_offset_leaves_room_for_the_ellipsis ... ok
[INFO] [stdout] test ui::panes::name_scroll::tests::a_text_that_fits_never_scrolls ... ok
[INFO] [stdout] test ui::panes::download_info_pane::tests::split_filename_with_forward_slash_path ... ok
[INFO] [stdout] test ui::main_tui::tests::rooms::slash_and_u_filter_a_rooms_log_and_its_members ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::filtered_rows_resolve_through_original_indices ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::identity_mapping_used_when_no_filter ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::out_of_range_display_index_is_not_selected ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::the_end_offset_is_the_longer_columns ... ok
[INFO] [stdout] test ui::styles::tests::an_entry_wider_than_the_bar_still_gets_a_row ... ok
[INFO] [stdout] test ui::styles::tests::download_status_glyphs_carry_their_semantic_color ... ok
[INFO] [stdout] test ui::styles::tests::pane_title_tags_in_signal_and_tracks_focus ... ok
[INFO] [stdout] test ui::styles::tests::progress_bar_splits_fill_and_track ... ok
[INFO] [stdout] test ui::styles::tests::shortcuts_stay_on_one_row_when_they_fit ... ok
[INFO] [stdout] test ui::styles::tests::shortcuts_wrap_between_entries_never_inside_one ... ok
[INFO] [stdout] test ui::styles::tests::table_cursor_row_tints_the_background_without_recolouring_cells ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::a_scrolled_name_never_starts_with_a_combining_mark ... ok
[INFO] [stdout] test ui::styles::tests::the_bar_never_grows_past_its_cap ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::a_wide_glyph_name_scrolls_by_cells_not_chars ... ok
[INFO] [stdout] test ui::styles::tests::titles_are_inset_from_the_border ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::an_unscrolled_name_starts_at_its_beginning ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::a_scrolled_name_shows_its_tail_up_to_the_column_edge ... ok
[INFO] [stdout] test ui::utils::tests::wrap_chat_line_short_message_is_one_line ... ok
[INFO] [stdout] test ui::utils::tests::wrap_chat_line_wraps_and_indents ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::a_path_shows_its_name_before_its_folder ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::one_offset_scrolls_the_name_and_the_folder_together ... ok
[INFO] [stdout] test ui::panes::results_pane::tests::a_far_selection_is_drawn_from_its_own_page ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 415 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/soulseek-rs/57eb08d2af0c7246/out/soulseek_rs-57eb08d2af0c7246)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_e2e.rs (/opt/rustwide/target/debug/build/soulseek-rs/9aae006c907a247f/out/cli_e2e-9aae006c907a247f)
[INFO] [stdout] 
[INFO] [stdout] running 99 tests
[INFO] [stdout] test a_daemon_reports_its_session_and_stops_on_request ... ok
[INFO] [stdout] test a_download_lands_in_the_folder_the_config_names ... ok
[INFO] [stdout] test a_bitrate_floor_keeps_only_files_that_advertise_at_least_that_much ... ok
[INFO] [stdout] test a_filter_that_matches_nothing_is_the_no_results_code ... ok
[INFO] [stdout] test a_private_message_reaches_its_recipient ... ok
[INFO] [stdout] test a_session_taken_over_mid_search_is_not_reported_as_no_results ... ok
[INFO] [stdout] test a_log_file_captures_what_verbose_would_print ... ok
[INFO] [stdout] test a_search_with_no_matches_exits_with_the_no_results_code ... ok
[INFO] [stdout] test a_wrong_password_is_a_connection_error ... ok
[INFO] [stdout] test adding_a_share_takes_effect_on_a_running_daemon ... ok
[INFO] [stdout] test a_failing_command_writes_nothing_at_all_to_stdout ... ok
[INFO] [stdout] test a_malformed_server_address_is_a_usage_error ... ok
[INFO] [stdout] test an_empty_wish_query_is_a_usage_error ... ok
[INFO] [stdout] test an_unreachable_server_is_a_connection_error ... ok
[INFO] [stdout] test asking_about_an_unknown_user_succeeds_with_an_offline_record ... ok
[INFO] [stdout] test browse_lists_shares_as_paths_download_understands ... ok
[INFO] [stdout] test a_wish_holding_a_comma_survives_the_config_file ... ok
[INFO] [stdout] test concurrent_downloads_sharing_a_listener_port_all_land ... ok
[INFO] [stdout] test concurrent_searches_sharing_a_listener_port_all_find_the_file ... ok
[INFO] [stdout] test a_wish_is_added_listed_and_removed_through_the_config_file ... ok
[INFO] [stdout] test config_path_reports_the_file_in_use ... ok
[INFO] [stdout] test an_unknown_flag_is_a_usage_error ... ok
[INFO] [stdout] test a_wait_longer_than_a_day_is_rejected_rather_than_accepted ... ok
[INFO] [stdout] test download_fetches_a_file_and_prints_where_it_landed ... ok
[INFO] [stdout] test download_reads_the_records_search_emits_from_stdin ... ok
[INFO] [stdout] test config_rejects_an_unknown_key_and_a_bad_value ... ok
[INFO] [stdout] test download_without_a_size_looks_it_up_in_the_peers_shares ... ok
[INFO] [stdout] test daemon_status_and_stop_without_a_daemon_are_connection_errors ... ok
[INFO] [stdout] test adding_the_same_wish_twice_is_not_an_error_and_stores_it_once ... ok
[INFO] [stdout] test exclude_drops_the_results_whose_path_contains_the_term ... ok
[INFO] [stdout] test extension_keeps_one_type_and_repeats_into_a_union ... ok
[INFO] [stdout] test get_honours_the_same_filters_search_does ... ok
[INFO] [stdout] test get_pick_first_downloads_the_first_arrival ... ok
[INFO] [stdout] test get_searches_picks_and_downloads_in_one_command ... ok
[INFO] [stdout] test get_without_matches_exits_no_results_and_downloads_nothing ... ok
[INFO] [stdout] test filters_given_together_all_have_to_be_satisfied ... ok
[INFO] [stdout] test config_get_of_an_unset_key_is_the_no_results_code ... ok
[INFO] [stdout] test global_flags_are_accepted_after_the_subcommand ... ok
[INFO] [stdout] test help_documents_the_exit_codes_a_script_branches_on ... ok
[INFO] [stdout] test download_stdin_cannot_be_combined_with_positional_arguments ... ok
[INFO] [stdout] test json_mode_keeps_stdout_pure_for_every_command ... ok
[INFO] [stdout] test config_set_writes_a_value_that_get_reads_back ... ok
[INFO] [stdout] test json_records_carry_every_extra_field_the_readme_names ... ok
[INFO] [stdout] test message_read_streams_incoming_private_messages ... ok
[INFO] [stdout] test help_lists_every_scriptable_command ... ok
[INFO] [stdout] test missing_credentials_are_a_usage_error_with_a_pointer_to_the_fix ... ok
[INFO] [stdout] test listing_skills_reports_without_writing_anything ... ok
[INFO] [stdout] test portmap_emits_a_record_whose_verdict_matches_the_exit_code ... ok
[INFO] [stdout] test download_without_a_target_is_a_usage_error ... ok
[INFO] [stdout] test room_say_reaches_a_listener_and_room_list_shows_the_room ... ok
[INFO] [stdout] test room_users_lists_who_is_in_the_room ... ok
[INFO] [stdout] test room_listen_streams_what_is_said_in_the_room ... ok
[INFO] [stdout] test search_json_records_carry_the_fields_a_filter_needs ... ok
[INFO] [stdout] test search_filters_drop_what_they_advertise_dropping ... ok
[INFO] [stdout] test search_prints_a_record_that_download_can_consume ... ok
[INFO] [stdout] test search_sorted_by_size_leads_with_the_largest_file ... ok
[INFO] [stdout] test serve_refuses_to_run_with_nothing_to_share ... ok
[INFO] [stdout] test a_falsey_boolean_environment_variable_is_accepted ... ok
[INFO] [stdout] test serve_reports_a_queued_upload_once_the_slots_are_full ... ok
[INFO] [stdout] test serve_stays_online_and_reports_an_upload_a_peer_pulls ... ok
[INFO] [stdout] test serve_with_the_wishlist_sweeps_on_the_interval_the_server_announced ... ok
[INFO] [stdout] test setting_the_download_folder_takes_effect_on_a_running_daemon ... ok
[INFO] [stdout] test serve_wishlist_with_nothing_wished_for_still_serves ... ok
[INFO] [stdout] test removing_a_wish_that_is_not_there_is_the_no_results_code ... ok
[INFO] [stdout] test shares_files_lists_the_index_as_a_peer_would_receive_it ... ok
[INFO] [stdout] test shares_reindex_picks_up_a_file_added_after_startup ... ok
[INFO] [stdout] test shares_status_reports_what_the_network_will_see ... ok
[INFO] [stdout] test size_bounds_narrow_the_result_set_from_either_end ... ok
[INFO] [stdout] test the_action_commands_answer_with_their_exit_code_alone ... ok
[INFO] [stdout] test quiet_keeps_progress_off_stderr ... ok
[INFO] [stdout] test serve_refuses_to_run_without_a_listener ... ok
[INFO] [stdout] test shares_add_refuses_a_folder_that_is_not_there ... ok
[INFO] [stdout] test the_daemon_token_is_stable_across_reads ... ok
[INFO] [stdout] test the_password_can_arrive_on_stdin_instead_of_in_argv ... ok
[INFO] [stdout] test the_password_can_come_from_a_command ... ok
[INFO] [stdout] test installing_the_skill_is_repeatable_and_reversible ... ok
[INFO] [stdout] test transfer_cancel_stops_a_download_another_client_is_waiting_on ... ok
[INFO] [stdout] test transfer_cancel_without_a_matching_transfer_is_the_no_results_verdict ... ok
[INFO] [stdout] test two_clients_share_one_daemon_session_at_once ... ok
[INFO] [stdout] test the_config_directory_can_be_relocated_wholesale ... ok
[INFO] [stdout] test user_reports_a_peers_status_and_share_counts ... ok
[INFO] [stdout] test whoami_confirms_the_login_and_reports_what_we_offer ... ok
[INFO] [stdout] test whoami_fails_with_the_connection_code_on_a_bad_password ... ok
[INFO] [stdout] test whoami_reports_how_much_privilege_time_the_account_has ... ok
[INFO] [stdout] test the_password_environment_value_is_not_echoed_in_help ... ok
[INFO] [stdout] test wish_run_filters_apply_to_a_wishlist_search_too ... ok
[INFO] [stdout] test wish_run_finds_a_shared_file_through_a_wishlist_search ... ok
[INFO] [stdout] test wish_run_only_must_name_a_stored_wish ... ok
[INFO] [stdout] test wish_run_only_narrows_the_sweep_to_that_wish ... ok
[INFO] [stdout] test wish_run_output_feeds_download_stdin ... ok
[INFO] [stdout] test wish_run_with_an_empty_wishlist_is_the_no_results_code ... ok
[INFO] [stdout] test without_a_terminal_the_tui_reports_instead_of_panicking ... ok
[INFO] [stdout] test wish_add_without_a_config_file_to_write_to_is_a_usage_error ... ok
[INFO] [stdout] test shares_add_and_remove_persist_to_the_config_file ... ok
[INFO] [stdout] test uninstall_leaves_a_skill_it_did_not_write ... ok
[INFO] [stdout] test the_offline_json_records_carry_the_keys_the_skill_file_names ... ok
[INFO] [stdout] test a_package_build_reads_completions_and_the_man_page_from_stdout ... ok
[INFO] [stdout] test installing_completions_is_repeatable_and_reversible ... ok
[INFO] [stdout] test the_commands_advertised_as_credential_free_run_without_an_account ... ok
[INFO] [stderr]      Running tests/daemon_protocol_e2e.rs (/opt/rustwide/target/debug/build/soulseek-rs/f799a227649c711f/out/daemon_protocol_e2e-f799a227649c711f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 99 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test an_oversized_line_cannot_make_the_daemon_allocate ... ok
[INFO] [stdout] test a_wishlist_search_is_reported_as_just_started ... ok
[INFO] [stdout] test cancelling_an_unknown_download_is_answered_with_a_plain_no ... ok
[INFO] [stdout] test discover_serves_a_contract_whose_parameters_match_what_is_accepted ... ok
[INFO] [stdout] test many_clients_share_one_session_and_agree_about_it ... ok
[INFO] [stdout] test nothing_can_be_asked_before_authenticating ... ok
[INFO] [stdout] test one_clients_work_shows_up_in_another ... ok
[INFO] [stdout] test rapid_connect_and_drop_does_not_wear_the_daemon_out ... ok
[INFO] [stdout] test tcp_needs_the_token_and_the_socket_does_not ... ok
[INFO] [stdout] test the_cli_reports_a_bad_token_as_a_connection_error ... ok
[INFO] [stdout] test a_notification_is_answered_with_silence ... ok
[INFO] [stdout] test a_queued_download_is_cancelled_and_listed_as_such ... ok
[INFO] [stdout] test the_download_folder_moves_when_asked_and_status_says_so ... ok
[INFO] [stdout] test the_upload_slot_limit_can_be_retuned_live ... ok
[INFO] [stdout] test the_daemon_logs_back_in_after_the_server_drops_it ... ok
[INFO] [stdout] test a_client_that_attaches_later_sees_what_is_already_there ... ok
[INFO] [stdout] test a_config_driven_remote_client_reports_the_daemons_world ... ok
[INFO] [stdout] test an_error_carries_an_id_so_a_client_can_match_it ... ok
[INFO] [stderr]      Running tests/persist_e2e.rs (/opt/rustwide/target/debug/build/soulseek-rs/d5ac2229b584a5ca/out/persist_e2e-d5ac2229b584a5ca)
[INFO] [stdout] test a_silent_connection_is_closed_rather_than_held_open ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test state_survives_a_restart ... ok
[INFO] [stdout] test config_survives_a_restart ... ok
[INFO] [stderr]      Running tests/tui_e2e.rs (/opt/rustwide/target/debug/build/soulseek-rs/461def0437cf7c52/out/tui_e2e-461def0437cf7c52)
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests soulseek_rs_tui
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test shift_b_shows_the_scanned_index_the_way_a_peer_would_get_it ... ok
[INFO] [stdout] test shift_s_runs_a_restored_query_again_and_the_answers_land_on_screen ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee", kill_on_drop: false }`
[INFO] [stdout] 9d1fb3cbdc7b39ef247cfa57da66ac631c7387dc801de618df6574fd7c3732ee
