[INFO] cloning repository https://github.com/kofany/repartee-app
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kofany/repartee-app" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkofany%2Frepartee-app", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkofany%2Frepartee-app'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0eb6211cba17944d2ed5f1a8da4276a44ab60838
[INFO] testing kofany/repartee-app against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkofany%2Frepartee-app" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kofany/repartee-app
[INFO] finished tweaking git repo https://github.com/kofany/repartee-app
[INFO] tweaked toml for git repo https://github.com/kofany/repartee-app written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kofany/repartee-app on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kofany/repartee-app 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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc
[INFO] running `Command { std: "docker" "start" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc", 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" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc", 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" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling aws-lc-sys v0.40.0
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling aws-lc-rs v1.16.3
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling openssl-sys v0.9.115
[INFO] [stderr]    Compiling as-slice v0.2.1
[INFO] [stderr]    Compiling built v0.8.0
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]    Compiling encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling aligned v0.4.3
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling equator v0.4.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling aligned-vec v0.6.4
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling v_frame v0.3.9
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling no_std_io2 v0.9.4
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling y4m v0.8.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling bitstream-io v4.10.0
[INFO] [stderr]    Compiling av1-grain v0.2.5
[INFO] [stderr]    Compiling profiling v1.0.18
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling maybe-rayon v0.1.1
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]    Compiling weezl v0.1.12
[INFO] [stderr]    Compiling imgref v1.12.1
[INFO] [stderr]    Compiling zune-core v0.5.1
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling loop9 v0.1.5
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling zune-jpeg v0.5.15
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling avif-serialize v0.8.9
[INFO] [stderr]    Compiling which v8.0.2
[INFO] [stderr]    Compiling lebe v0.5.3
[INFO] [stderr]    Compiling rgb v0.8.53
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling by_address v1.2.1
[INFO] [stderr]    Compiling openssl v0.10.79
[INFO] [stderr]    Compiling pxfm v0.1.29
[INFO] [stderr]    Compiling bit_field v0.10.3
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling palette v0.7.6
[INFO] [stderr]    Compiling fax v0.2.7
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling tiff v0.11.3
[INFO] [stderr]    Compiling gif v0.14.2
[INFO] [stderr]    Compiling image-webp v0.2.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling exr v1.74.0
[INFO] [stderr]    Compiling palette_derive v0.7.6
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling luajit-src v210.6.6+707c12b
[INFO] [stderr]    Compiling ravif v0.13.0
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling safe_arch v0.9.3
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling lua-src v550.0.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling fast-srgb8 v1.0.0
[INFO] [stderr]    Compiling data-encoding v2.11.0
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling bitvec v1.0.1
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tungstenite v0.29.0
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling mlua-sys v0.10.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling wide v0.8.3
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling encoding-index-japanese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-korean v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]    Compiling heapless v0.7.17
[INFO] [stderr]    Compiling rand_xoshiro v0.7.0
[INFO] [stderr]    Compiling tikv-jemalloc-sys v0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ordered-float v5.3.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling quantette v0.5.1
[INFO] [stderr]    Compiling hash32 v0.2.1
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling encoding v0.2.33
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling rust-embed-utils v8.11.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.29.0
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.12
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling hex-conservative v0.2.2
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]    Compiling vsimd v0.8.0
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling ratatui-image v10.0.8
[INFO] [stderr]    Compiling outref v0.5.2
[INFO] [stderr]    Compiling indenter v0.3.4
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling rustc-demangle v0.1.27
[INFO] [stderr]    Compiling base64-simd v0.8.0
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling pin-project v1.1.12
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling bitcoin_hashes v0.14.1
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling rust-embed-impl v8.11.0
[INFO] [stderr]    Compiling toml v0.7.8
[INFO] [stderr]    Compiling irc-proto-repartee v1.2.2
[INFO] [stderr]    Compiling icy_sixel v0.5.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling cobs v0.3.0
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling serial2 v0.2.36
[INFO] [stderr]    Compiling vte v0.15.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling jiff v0.2.24
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling portable-pty v0.9.0
[INFO] [stderr]    Compiling mlua v0.11.6
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling rcgen v0.14.7
[INFO] [stderr]    Compiling vt100 v0.16.2
[INFO] [stderr]    Compiling irc-repartee v1.5.1
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling postcard v1.1.3
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling rust-embed v8.11.0
[INFO] [stderr]    Compiling bip39 v2.2.2
[INFO] [stderr]    Compiling axum-extra v0.12.6
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling rusqlite v0.39.0
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling spellbook v0.4.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling reqwest v0.13.3
[INFO] [stderr]    Compiling tikv-jemallocator v0.6.1
[INFO] [stderr]    Compiling repartee v1.4.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10m 43s
[INFO] running `Command { std: "docker" "inspect" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc", 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" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling ratatui-image v10.0.8
[INFO] [stderr]    Compiling repartee v1.4.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 21s
[INFO] running `Command { std: "docker" "inspect" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc", 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" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.09s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/repartee-491eed6000905131)
[INFO] [stdout] 
[INFO] [stdout] running 1273 tests
[INFO] [stdout] test app::emote_anim::tests::single_frame_is_static ... ok
[INFO] [stdout] test app::input::tests::alias_all_args ... ok
[INFO] [stdout] test app::input::tests::alias_auto_append_star ... ok
[INFO] [stdout] test app::input::tests::alias_chaining_template ... ok
[INFO] [stdout] test app::input::tests::alias_context_braced_syntax ... ok
[INFO] [stdout] test app::backlog::tests::separator_event_carries_text_in_event_params ... ok
[INFO] [stdout] test app::emote_anim::tests::empty_frames_is_zero ... ok
[INFO] [stdout] test app::input::tests::alias_empty_args_star ... ok
[INFO] [stdout] test app::input::tests::alias_dollar_t_same_as_c ... ok
[INFO] [stdout] test app::input::tests::alias_positional_args ... ok
[INFO] [stdout] test app::input::tests::alias_missing_positional_replaced_empty ... ok
[INFO] [stdout] test app::input::tests::alias_range_args_at_boundary ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_alt_char ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_alt_ctrl_c ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_arrow_down ... ok
[INFO] [stdout] test app::input::tests::alias_range_args ... ok
[INFO] [stdout] test app::input::tests::alias_range_args_out_of_bounds_returns_empty ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_arrow_up ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_arrow_up_app_cursor_mode ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_backspace ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_char ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_ctrl_d ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_enter ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_ctrl_c ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_esc ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_f1 ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_home ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_tab ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_f5 ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_home_app_cursor_mode ... ok
[INFO] [stdout] test app::input::tests::key_to_bytes_page_up ... ok
[INFO] [stdout] test app::session::tests::same_user_peer_accepts_current_uid ... ok
[INFO] [stdout] test app::tests::match_terminal_foot ... ok
[INFO] [stdout] test app::tests::match_terminal_ghostty ... ok
[INFO] [stdout] test app::tests::match_terminal_iterm2_termtype ... ok
[INFO] [stdout] test app::tests::match_terminal_konsole ... ok
[INFO] [stdout] test app::tests::match_terminal_subterm ... ok
[INFO] [stdout] test app::tests::match_terminal_unknown ... ok
[INFO] [stdout] test app::tests::match_terminal_wezterm ... ok
[INFO] [stdout] test app::tests::resolve_config_override_iterm2 ... ok
[INFO] [stdout] test app::tests::match_terminal_kitty ... ok
[INFO] [stdout] test app::tests::resolve_config_override_kitty ... ok
[INFO] [stdout] test app::tests::resolve_direct_trusts_io_detection ... ok
[INFO] [stdout] test app::tests::resolve_shim_env_overrides_io_detection ... ok
[INFO] [stdout] test app::emote_anim::tests::frame_index_advances_with_time ... ok
[INFO] [stdout] test app::input::tests::alias_context_variables ... ok
[INFO] [stdout] test app::shrink::tests::apply_substitutions_handles_multiple ... ok
[INFO] [stdout] test app::shrink::tests::apply_substitutions_incoming_with_host ... ok
[INFO] [stdout] test app::shrink::tests::apply_substitutions_longest_first_defeats_prefix_overlap ... ok
[INFO] [stdout] test app::shrink::tests::apply_substitutions_outgoing_no_host ... ok
[INFO] [stdout] test app::tests::resolve_env_iterm2_override_over_kitty_io ... ok
[INFO] [stdout] test app::tests::resolve_tmux_iterm2_overrides_kitty_io ... ok
[INFO] [stdout] test app::tests::resolve_tmux_overrides_io_detection ... ok
[INFO] [stdout] test commands::docs::tests::parse_doc_with_subcommands ... ok
[INFO] [stdout] test commands::docs::tests::parse_simple_doc ... ok
[INFO] [stdout] test commands::handlers_admin::server_add_tests::manual_cred_maps_flag_semantics ... ok
[INFO] [stdout] test commands::handlers_admin::server_add_tests::apply_server_config_keep_and_remove_creds ... ok
[INFO] [stdout] test commands::handlers_admin::server_add_tests::parses_all_server_config_fields ... ok
[INFO] [stdout] test commands::handlers_admin::server_add_tests::re_add_without_password_flag_preserves_env_credential ... ok
[INFO] [stdout] test commands::handlers_admin::server_add_tests::rejects_unknown_flags ... ok
[INFO] [stdout] test commands::handlers_admin::server_add_tests::tls_default_port_becomes_6697 ... ok
[INFO] [stdout] test commands::handlers_dcc::tests::format_duration_days ... ok
[INFO] [stdout] test commands::handlers_admin::server_add_tests::apply_server_config_writes_config_and_env_creds ... ok
[INFO] [stdout] test commands::handlers_dcc::tests::format_duration_hours ... ok
[INFO] [stdout] test commands::handlers_dcc::tests::format_duration_minutes ... ok
[INFO] [stdout] test commands::handlers_dcc::tests::format_duration_zero ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_autotrust_op_list ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_autotrust_op_add_requires_both_args ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_autotrust_op_no_op_is_usage ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_e2e_event_builds_message_with_event_key_and_params ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_autotrust_op_remove ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_e2e_event_level_error_highlights ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_e2e_event_level_maps_to_theme_key ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_export_import_optional_path ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_format_peer_line_truncates_fp ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_format_status_line_enabled ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_format_status_line_disabled_explicit ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_format_status_line_no_channel ... ok
[INFO] [stdout] test commands::handlers_dcc::tests::format_duration_seconds_only ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_format_verify_block_renders_both_sides ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_format_status_line_no_config ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_help_entries_nonempty_and_unique_names ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_mode_parse_case_insensitive ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_mode_parse_invalid ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_mode_parse_valid ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_strict_resolve_none_for_multiple_nicks ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_strict_resolve_none_is_error_not_nick_fallback ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_strict_resolve_some_passthrough ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_subcommand_dispatch_case_insensitive ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_subcommand_dispatch_empty_is_none ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_subcommand_dispatch_accept_carries_nick_verbatim ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_subcommand_dispatch_missing_nick_is_usage ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_subcommand_dispatch_unknown ... ok
[INFO] [stdout] test commands::handlers_e2e::tests::test_subcommand_dispatch_forget_all_accepts_both_flag_positions ... ok
[INFO] [stdout] test commands::handlers_irc::tests::list_mode_command_args_batches_reop_removes ... ok
[INFO] [stdout] test commands::handlers_irc::tests::list_mode_command_args_splits_at_server_limit ... ok
[INFO] [stdout] test commands::handlers_irc::tests::list_mode_command_args_batches_reop_except_and_invex_adds ... ok
[INFO] [stdout] test commands::handlers_irc::tests::kick_chunk_sizes_caps_at_six ... ok
[INFO] [stdout] test commands::handlers_irc::tests::parse_kick_args_comma_list_with_reason ... ok
[INFO] [stdout] test commands::handlers_irc::tests::parse_kick_args_comma_list_multiple_nicks ... ok
[INFO] [stdout] test commands::handlers_irc::tests::parse_kick_args_empty_comma_segments_dropped ... ok
[INFO] [stdout] test commands::handlers_irc::tests::parse_kick_args_empty_input ... ok
[INFO] [stdout] test commands::handlers_irc::tests::parse_kick_args_leading_colon_stripped_for_backward_compat ... ok
[INFO] [stdout] test commands::handlers_irc::tests::parse_kick_args_reason_needs_no_colon ... ok
[INFO] [stdout] test commands::handlers_irc::tests::parse_kick_args_single_nick_no_reason ... ok
[INFO] [stdout] test commands::handlers_irc::tests::nick_mode_chunk_sizes_follows_two_then_three_rule ... ok
[INFO] [stdout] test commands::handlers_irc::tests::parse_kick_args_empty_reason_collapses_to_none ... ok
[INFO] [stdout] test commands::parser::tests::connect_address_port_colon ... ok
[INFO] [stdout] test commands::parser::tests::connect_with_flags ... ok
[INFO] [stdout] test commands::parser::tests::connect_with_bind ... ok
[INFO] [stdout] test commands::parser::tests::case_insensitive ... ok
[INFO] [stdout] test commands::parser::tests::join_multiple_channels ... ok
[INFO] [stdout] test commands::parser::tests::join_single_channel ... ok
[INFO] [stdout] test commands::parser::tests::me_greedy_single_arg ... ok
[INFO] [stdout] test commands::parser::tests::non_command_returns_none ... ok
[INFO] [stdout] test commands::parser::tests::msg_greedy_two_args ... ok
[INFO] [stdout] test commands::registry::tests::all_commands_have_description ... ok
[INFO] [stdout] test commands::registry::tests::categories_cover_all_commands ... ok
[INFO] [stdout] test commands::registry::tests::emote_command_registered ... ok
[INFO] [stdout] test commands::registry::tests::no_duplicate_aliases ... ok
[INFO] [stdout] test commands::registry::tests::command_names_includes_aliases ... ok
[INFO] [stdout] test commands::registry::tests::server_query_commands_in_correct_category ... ok
[INFO] [stdout] test commands::registry::tests::resolve_alias_works ... ok
[INFO] [stdout] test commands::registry::tests::server_query_commands_registered ... ok
[INFO] [stdout] test commands::settings::tests::get_display_field ... ok
[INFO] [stdout] test commands::docs::tests::get_subcommand_names_returns_names ... ok
[INFO] [stdout] test commands::docs::tests::get_subcommand_names_empty_for_no_subcommands ... ok
[INFO] [stdout] test commands::docs::tests::help_function_works ... ok
[INFO] [stdout] test commands::docs::tests::dcc_subcommands_loaded ... ok
[INFO] [stdout] test commands::settings::tests::get_general_nick ... ok
[INFO] [stdout] test commands::parser::tests::quit_no_args ... ok
[INFO] [stdout] test commands::settings::tests::get_set_emotes ... ok
[INFO] [stdout] test commands::settings::tests::get_set_nick_colors ... ok
[INFO] [stdout] test commands::settings::tests::get_set_emotes_lang ... ok
[INFO] [stdout] test commands::settings::tests::get_sidepanel_field ... ok
[INFO] [stdout] test commands::settings::tests::set_display_number ... ok
[INFO] [stdout] test commands::settings::tests::search_no_matches ... ok
[INFO] [stdout] test commands::settings::tests::set_alignment ... ok
[INFO] [stdout] test commands::settings::tests::set_bool_field ... ok
[INFO] [stdout] test commands::settings::tests::set_invalid_bool ... ok
[INFO] [stdout] test commands::settings::tests::set_nick_color_saturation_validates_range ... ok
[INFO] [stdout] test config::env::tests::apply_credentials_to_servers ... ok
[INFO] [stdout] test commands::settings::tests::setting_paths_include_base ... ok
[INFO] [stdout] test commands::settings::tests::get_unknown_returns_none ... ok
[INFO] [stdout] test commands::settings::tests::setting_paths_include_servers ... ok
[INFO] [stdout] test config::env::tests::remove_env_value_missing_key_is_ok ... ok
[INFO] [stdout] test config::env::tests::set_env_value_appends_new_key ... ok
[INFO] [stdout] test commands::settings::tests::search_by_substring ... ok
[INFO] [stdout] test commands::settings::tests::set_general_nick ... ok
[INFO] [stdout] test commands::settings::tests::set_invalid_number ... ok
[INFO] [stdout] test config::env::tests::set_env_value_creates_new_file ... ok
[INFO] [stdout] test commands::docs::tests::load_all_docs_finds_embedded_docs ... ok
[INFO] [stdout] test config::tests::default_config_uses_app_name ... ok
[INFO] [stdout] test config::env::tests::remove_env_value_deletes_key ... ok
[INFO] [stdout] test config::tests::emotes_lang_default_and_parse ... ok
[INFO] [stdout] test config::env::tests::load_env_missing_file ... ok
[INFO] [stdout] test config::env::tests::parse_env_file ... ok
[INFO] [stdout] test config::tests::load_config_missing_file ... ok
[INFO] [stdout] test config::env::tests::set_env_value_updates_existing_key ... ok
[INFO] [stdout] test config::tests::parse_minimal_config ... ok
[INFO] [stdout] test config::tests::parse_ignore_entries ... ok
[INFO] [stdout] test config::tests::ignore_level_serialization ... ok
[INFO] [stdout] test config::tests::nick_alignment_serialization ... ok
[INFO] [stdout] test config::tests::emotes_config_defaults_and_roundtrip ... ok
[INFO] [stdout] test config::tests::statusbar_item_serialization ... ok
[INFO] [stdout] test config::tests::save_and_load_roundtrip ... ok
[INFO] [stdout] test config::tests::validate_startup_files_broken_theme_returns_clear_error ... ok
[INFO] [stdout] test config::tests::validate_startup_files_missing_config_uses_defaults ... ok
[INFO] [stdout] test constants::tests::sync_installs_all_themes_on_first_run ... ok
[INFO] [stdout] test config::tests::parse_full_config_roundtrip ... ok
[INFO] [stdout] test constants::tests::sync_leaves_matching_default_theme_untouched ... ok
[INFO] [stdout] test config::tests::validate_startup_files_typo_returns_clear_error ... ok
[INFO] [stdout] test dcc::chat::tests::parse_port_range_dash ... ok
[INFO] [stdout] test dcc::chat::tests::parse_port_range_single ... ok
[INFO] [stdout] test dcc::chat::tests::parse_port_range_space ... ok
[INFO] [stdout] test constants::tests::sync_backs_up_and_overwrites_changed_default_theme ... ok
[INFO] [stdout] test dcc::protocol::tests::build_active_chat ... ok
[INFO] [stdout] test dcc::chat::tests::parse_port_range_empty ... ok
[INFO] [stdout] test dcc::protocol::tests::decode_ipv4_192 ... ok
[INFO] [stdout] test dcc::protocol::tests::decode_invalid ... ok
[INFO] [stdout] test dcc::protocol::tests::build_reject ... ok
[INFO] [stdout] test dcc::chat::tests::chat_session_connect_and_exchange ... ok
[INFO] [stdout] test dcc::protocol::tests::decode_ipv4_localhost ... ok
[INFO] [stdout] test dcc::protocol::tests::decode_ipv6_full ... ok
[INFO] [stdout] test constants::tests::sync_preserves_user_customized_non_default_theme ... ok
[INFO] [stdout] test dcc::protocol::tests::decode_ipv6_short ... ok
[INFO] [stdout] test dcc::protocol::tests::build_passive_chat ... ok
[INFO] [stdout] test dcc::chat::tests::parse_port_range_zero ... ok
[INFO] [stdout] test dcc::protocol::tests::encode_ipv4_localhost ... ok
[INFO] [stdout] test dcc::protocol::tests::encode_ipv4_192_168 ... ok
[INFO] [stdout] test dcc::protocol::tests::encode_ipv6 ... ok
[INFO] [stdout] test dcc::protocol::tests::encode_passive_fake_ip ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_active_chat ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_active_chat_no_token ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_active_chat_port ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_ipv6_chat ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_lowercase_chat ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_not_chat ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_not_dcc ... ok
[INFO] [stdout] test dcc::tests::close_by_id_removes ... ok
[INFO] [stdout] test dcc::tests::close_by_nick_removes ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_passive_chat ... ok
[INFO] [stdout] test dcc::tests::find_latest_pending ... ok
[INFO] [stdout] test dcc::protocol::tests::parse_passive_chat_token ... ok
[INFO] [stdout] test dcc::tests::find_connected_by_nick ... ok
[INFO] [stdout] test dcc::tests::find_pending_by_nick ... ok
[INFO] [stdout] test dcc::tests::find_pending_not_connected ... ok
[INFO] [stdout] test dcc::tests::generate_id_unique ... ok
[INFO] [stdout] test dcc::tests::purge_keeps_fresh ... ok
[INFO] [stdout] test e2e::chunker::tests::empty_plaintext_is_rejected ... ok
[INFO] [stdout] test dcc::tests::update_nick_rekeys_records_and_senders ... ok
[INFO] [stdout] test e2e::chunker::tests::boundary_respects_utf8_chars ... ok
[INFO] [stdout] test e2e::chunker::tests::message_beyond_max_chunks_errors ... ok
[INFO] [stdout] test e2e::chunker::tests::short_message_is_one_chunk ... ok
[INFO] [stdout] test e2e::context_key_tests::channels_pass_through_unchanged ... ok
[INFO] [stdout] test dcc::tests::purge_expired_removes_old ... ok
[INFO] [stdout] test e2e::crypto::aead::tests::aead_roundtrip ... ok
[INFO] [stdout] test e2e::chunker::tests::long_message_is_multi_chunk ... ok
[INFO] [stdout] test e2e::crypto::aead::tests::aead_ciphertext_tamper_fails ... ok
[INFO] [stdout] test config::tests::parse_server_config ... ok
[INFO] [stdout] test e2e::crypto::aead::tests::aead_key_mismatch_fails ... ok
[INFO] [stdout] test e2e::crypto::ecdh::tests::ed25519_to_x25519_roundtrip_via_identity ... ok
[INFO] [stdout] test e2e::context_key_tests::pm_targets_become_pseudochannel ... ok
[INFO] [stdout] test e2e::crypto::aead::tests::aead_aad_mismatch_fails ... ok
[INFO] [stdout] test e2e::crypto::ecdh::tests::ecdh_roundtrip_yields_same_shared ... ok
[INFO] [stdout] test e2e::crypto::fingerprint::tests::fingerprint_deterministic ... ok
[INFO] [stdout] test e2e::crypto::ecdh::tests::ecdh_different_info_yields_different_keys ... ok
[INFO] [stdout] test e2e::crypto::fingerprint::tests::bip39_encoding_produces_six_words ... ok
[INFO] [stdout] test e2e::crypto::fingerprint::tests::fingerprint_domain_separation_prevents_raw_sha256_collision ... ok
[INFO] [stdout] test e2e::crypto::identity::tests::identity_distinct_seeds_produce_distinct_publics ... ok
[INFO] [stdout] test e2e::crypto::identity::tests::identity_from_secret_is_deterministic ... ok
[INFO] [stdout] test e2e::crypto::fingerprint::tests::fingerprint_is_16_bytes ... ok
[INFO] [stdout] test e2e::crypto::identity::tests::identity_generate_produces_32_byte_keys ... ok
[INFO] [stdout] test e2e::crypto::ecdh::tests::ed25519_to_x25519_rfc8032_vectors ... ok
[INFO] [stdout] test e2e::handshake::tests::allow_incoming_backoff_expires_after_window ... ok
[INFO] [stdout] test e2e::handshake::tests::allow_incoming_independent_per_peer ... ok
[INFO] [stdout] test e2e::handshake::tests::allow_incoming_permits_first_three_then_backoffs ... ok
[INFO] [stdout] test e2e::handshake::tests::keyreq_sig_payload_binds_eph_x25519 ... ok
[INFO] [stdout] test e2e::handshake::tests::keyreq_roundtrip ... ok
[INFO] [stdout] test e2e::handshake::tests::keyrekey_roundtrip ... ok
[INFO] [stdout] test e2e::handshake::tests::keyrsp_fits_under_irc_line_limit_with_long_prefix ... ok
[INFO] [stdout] test e2e::handshake::tests::parse_kv_rejects_duplicate_key ... ok
[INFO] [stdout] test e2e::handshake::tests::parse_kv_rejects_duplicate_key_in_keyrsp ... ok
[INFO] [stdout] test e2e::handshake::tests::parse_rejects_unknown_version ... ok
[INFO] [stdout] test e2e::handshake::tests::rate_limiter_blocks_within_window ... ok
[INFO] [stdout] test e2e::handshake::tests::keyrsp_roundtrip ... ok
[INFO] [stdout] test e2e::crypto::fingerprint::tests::bip39_encoding_deterministic ... ok
[INFO] [stdout] test e2e::handshake::tests::parse_non_rpee2e_returns_none ... ok
[INFO] [stdout] test e2e::handshake::tests::keyrekey_sig_payload_binds_eph_and_ct ... ok
[INFO] [stdout] test e2e::crypto::sig::tests::verify_fails_on_tamper ... ok
[INFO] [stdout] test e2e::crypto::sig::tests::sign_and_verify_roundtrip ... ok
[INFO] [stdout] test e2e::integration_tests::context_key_channels_vs_pms ... ok
[INFO] [stdout] test e2e::crypto::sig::tests::verify_fails_with_wrong_key ... ok
[INFO] [stdout] test e2e::integration_tests::autotrust_global_accepts_matching_peer_in_normal_mode ... ok
[INFO] [stdout] test e2e::integration_tests::autotrust_scoped_to_channel_does_not_leak_to_other_channels ... ok
[INFO] [stdout] test e2e::integration_tests::autotrust_wildcard_matching_is_case_insensitive ... ok
[INFO] [stdout] test e2e::integration_tests::import_rejects_bad_status_enum ... ok
[INFO] [stdout] test e2e::integration_tests::import_rejects_bad_version ... ok
[INFO] [stdout] test e2e::integration_tests::import_rejects_truncated_hex ... ok
[INFO] [stdout] test e2e::integration_tests::accept_completes_pending_keyreq_by_sending_keyrsp ... ok
[INFO] [stdout] test e2e::integration_tests::full_handshake_and_encrypted_exchange ... ok
[INFO] [stdout] test e2e::integration_tests::decrypt_respects_configured_ts_tolerance ... ok
[INFO] [stdout] test e2e::integration_tests::load_identity_detects_corrupted_fingerprint ... ok
[INFO] [stdout] test e2e::integration_tests::handshake_with_changed_handle_is_warned ... ok
[INFO] [stdout] test e2e::integration_tests::load_identity_detects_corrupted_pubkey ... ok
[INFO] [stdout] test e2e::integration_tests::normal_mode_stores_pending_keyreq_and_emits_prompt ... ok
[INFO] [stdout] test e2e::integration_tests::autoaccept_keyreq_queues_reciprocal_and_converges ... ok
[INFO] [stdout] test e2e::integration_tests::keyrsp_carries_pubkey_for_self_contained_verification ... ok
[INFO] [stdout] test e2e::integration_tests::handshake_with_changed_fingerprint_is_rejected ... ok
[INFO] [stdout] test e2e::integration_tests::export_import_roundtrip ... ok
[INFO] [stdout] test e2e::integration_tests::import_replaces_existing_keyring_state ... ok
[INFO] [stdout] test e2e::integration_tests::quiet_mode_silently_drops_unknown_peer ... ok
[INFO] [stdout] test e2e::integration_tests::reverify_unknown_handle_is_not_found ... ok
[INFO] [stdout] test e2e::integration_tests::rekey_rejects_unknown_peer ... ok
[INFO] [stdout] test e2e::integration_tests::pm_pseudochannel_round_trip ... ok
[INFO] [stdout] test e2e::integration_tests::pm_pseudochannel_distinguishes_same_nick_different_host ... ok
[INFO] [stdout] test e2e::keyring::tests::autotrust_add_list_remove ... ok
[INFO] [stdout] test e2e::keyring::tests::autotrust_matches_global_and_scoped ... ok
[INFO] [stdout] test e2e::integration_tests::strict_handle_check_rejects_wrong_sender ... ok
[INFO] [stdout] test e2e::integration_tests::reverify_without_pending_notice_purges_handle ... ok
[INFO] [stdout] test e2e::integration_tests::lazy_rotate_distributes_new_key_to_remaining_trusted_peers ... ok
[INFO] [stdout] test e2e::keyring::tests::channel_config_roundtrip ... ok
[INFO] [stdout] test e2e::keyring::tests::identity_none_when_empty ... ok
[INFO] [stdout] test e2e::keyring::tests::identity_roundtrip ... ok
[INFO] [stdout] test e2e::keyring::tests::get_peer_by_handle_returns_most_recent ... ok
[INFO] [stdout] test e2e::keyring::tests::glob_matches_ci_literal_and_wildcards ... ok
[INFO] [stdout] test e2e::keyring::tests::install_incoming_session_strict_accepts_same_fingerprint ... ok
[INFO] [stdout] test e2e::keyring::tests::list_all_channel_configs_returns_every_row ... ok
[INFO] [stdout] test e2e::keyring::tests::identity_roundtrip_encrypted_at_rest ... ok
[INFO] [stdout] test e2e::keyring::tests::install_incoming_session_strict_rejects_fingerprint_change ... ok
[INFO] [stdout] test e2e::keyring::tests::list_all_incoming_sessions_returns_every_row ... ok
[INFO] [stdout] test e2e::keyring::tests::list_all_outgoing_sessions_returns_every_row ... ok
[INFO] [stdout] test e2e::integration_tests::revoked_peer_cannot_re_handshake ... ok
[INFO] [stdout] test e2e::keyring::tests::outgoing_recipients_record_list_remove ... ok
[INFO] [stdout] test e2e::keyring::tests::outgoing_session_pending_rotation_flag ... ok
[INFO] [stdout] test e2e::keyring::tests::peer_upsert_updates_last_handle ... ok
[INFO] [stdout] test e2e::keyring::tests::list_all_peers_returns_every_row ... ok
[INFO] [stdout] test e2e::manager::tests::encrypt_decrypt_requires_session ... ok
[INFO] [stdout] test e2e::keyring::tests::incoming_session_status_transitions ... ok
[INFO] [stdout] test e2e::manager::tests::build_keyreq_allows_multiple_in_flight_per_channel ... ok
[INFO] [stdout] test e2e::manager::tests::forget_peer_everywhere_clears_handle_scoped_pending_state ... ok
[INFO] [stdout] test e2e::manager::tests::load_or_init_persists_identity ... ok
[INFO] [stdout] test e2e::portable::tests::expand_path_absolute_passthrough ... ok
[INFO] [stdout] test e2e::portable::tests::expand_path_tilde ... ok
[INFO] [stdout] test e2e::portable::tests::parse_channel_mode_known_values ... ok
[INFO] [stdout] test e2e::portable::tests::parse_hex_array_rejects_non_hex ... ok
[INFO] [stdout] test e2e::portable::tests::parse_trust_status_rejects_unknown ... ok
[INFO] [stdout] test e2e::wire::tests::build_aad_is_deterministic ... ok
[INFO] [stdout] test e2e::portable::tests::parse_trust_status_known_values ... ok
[INFO] [stdout] test e2e::wire::tests::build_aad_length_prefix_rejects_colon_ambiguity ... ok
[INFO] [stdout] test e2e::wire::tests::encode_roundtrip ... ok
[INFO] [stdout] test e2e::integration_tests::stale_self_keyreq_must_not_block_reciprocal_from_accept ... ok
[INFO] [stdout] test e2e::wire::tests::encode_starts_with_prefix ... ok
[INFO] [stdout] test e2e::wire::tests::fresh_msgid_is_random_ish ... ok
[INFO] [stdout] test e2e::wire::tests::parse_rejects_bad_nonce_length ... ok
[INFO] [stdout] test e2e::wire::tests::build_aad_golden_vector ... ok
[INFO] [stdout] test e2e::wire::tests::parse_cleartext_returns_none ... ok
[INFO] [stdout] test e2e::wire::tests::parse_rejects_invalid_part_total ... ok
[INFO] [stdout] test emotes::parse::tests::adjacent_emotes ... ok
[INFO] [stdout] test emotes::parse::tests::lone_colons ... ok
[INFO] [stdout] test e2e::portable::tests::parse_hex_array_rejects_wrong_length ... ok
[INFO] [stdout] test e2e::wire::tests::build_aad_sensitive_to_every_field ... ok
[INFO] [stdout] test emotes::parse::tests::single_known_emote ... ok
[INFO] [stdout] test emotes::parse::tests::emote_at_start_and_end ... ok
[INFO] [stdout] test emotes::parse::tests::plain_text_has_no_emotes ... ok
[INFO] [stdout] test emotes::parse::tests::names_with_underscores_and_digits ... ok
[INFO] [stdout] test emotes::tests::all_embedded_names_are_valid_tokens ... ok
[INFO] [stdout] test emotes::tests::aliases_cover_every_emote ... ok
[INFO] [stdout] test emotes::tests::bytes_resolves_english_to_gif ... ok
[INFO] [stdout] test emotes::tests::display_name_follows_lang ... ok
[INFO] [stdout] test emotes::parse::tests::smiley_does_not_trigger ... ok
[INFO] [stdout] test emotes::tests::frames_unknown_is_none ... ok
[INFO] [stdout] test emotes::tests::known_emote_resolves_to_gif_bytes ... ok
[INFO] [stdout] test emotes::tests::names_are_sorted_and_nonempty ... ok
[INFO] [stdout] test emotes::parse::tests::unknown_token_stays_text ... ok
[INFO] [stdout] test emotes::tests::tag_names_includes_both_languages ... ok
[INFO] [stdout] test emotes::tests::resolve_both_languages_and_unknown ... ok
[INFO] [stdout] test emotes::tests::unknown_emote_is_absent ... ok
[INFO] [stdout] test emotes::tests::frames_decode_with_delays ... ok
[INFO] [stdout] test fs_secure::tests::create_dir_all_applies_requested_mode ... ok
[INFO] [stdout] test image_preview::cache::tests::cache_dir_ends_with_image_cache ... ok
[INFO] [stdout] test fs_secure::tests::write_file_applies_requested_mode ... ok
[INFO] [stdout] test e2e::manager::tests::build_keyreq_stores_pending_and_is_signed ... ok
[INFO] [stdout] test fs_secure::tests::write_file_creates_parent_and_contents ... ok
[INFO] [stdout] test image_preview::cache::tests::cleanup_removes_old_files ... ok
[INFO] [stdout] test image_preview::cache::tests::clear_removes_all_files ... ok
[INFO] [stdout] test image_preview::cache::tests::content_type_mapping ... ok
[INFO] [stdout] test image_preview::cache::tests::clear_nonexistent_dir ... ok
[INFO] [stdout] test image_preview::cache::tests::clear_empty_cache ... ok
[INFO] [stdout] test image_preview::cache::tests::content_type_with_params ... ok
[INFO] [stdout] test image_preview::cache::tests::different_content_types_different_paths ... ok
[INFO] [stdout] test image_preview::cache::tests::is_cached_returns_none_when_missing ... ok
[INFO] [stdout] test image_preview::cache::tests::magic_bytes_gif ... ok
[INFO] [stdout] test image_preview::cache::tests::magic_bytes_invalid ... ok
[INFO] [stdout] test e2e::integration_tests::reverify_applies_pending_fingerprint_change ... ok
[INFO] [stdout] test image_preview::cache::tests::magic_bytes_riff_not_webp ... ok
[INFO] [stdout] test image_preview::cache::tests::magic_bytes_jpeg ... ok
[INFO] [stdout] test image_preview::cache::tests::magic_bytes_webp ... ok
[INFO] [stdout] test image_preview::cache::tests::cleanup_nonexistent_dir ... ok
[INFO] [stdout] test image_preview::cache::tests::is_cached_returns_none_for_nonexistent_dir ... ok
[INFO] [stdout] test image_preview::cache::tests::magic_bytes_too_short ... ok
[INFO] [stdout] test image_preview::cache::tests::magic_bytes_png ... ok
[INFO] [stdout] test image_preview::cache::tests::store_and_find ... ok
[INFO] [stdout] test image_preview::cache::tests::stats_empty_cache ... ok
[INFO] [stdout] test image_preview::cache::tests::same_url_overwrites ... ok
[INFO] [stdout] test image_preview::cache::tests::store_creates_directory ... ok
[INFO] [stdout] test image_preview::cache::tests::store_unknown_content_type_uses_bin ... ok
[INFO] [stdout] test image_preview::cache::tests::url_hash_is_64_hex_chars ... ok
[INFO] [stdout] test image_preview::cache::tests::stats_nonexistent_dir ... ok
[INFO] [stdout] test image_preview::cache::tests::stats_counts_files ... ok
[INFO] [stdout] test image_preview::detect::tests::decode_hex_pair_invalid ... ok
[INFO] [stdout] test image_preview::cache::tests::url_hash_differs_for_different_urls ... ok
[INFO] [stdout] test image_preview::detect::tests::decode_hex_pair_valid ... ok
[INFO] [stdout] test image_preview::cache::tests::url_hash_is_deterministic ... ok
[INFO] [stdout] test e2e::integration_tests::revoke_then_lazy_rotate_locks_out_revoked_peer ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_by_gif_extension ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_by_bmp_extension ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_by_jpeg_extension ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_by_webp_extension ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_by_jpg_extension ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_by_png_extension ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_extension_case_insensitive ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_i_imgur_host ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_extension_with_query_string ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_i_ibb_host ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_i_imgur_no_extension ... ok
[INFO] [stdout] test image_preview::detect::tests::direct_image_i_imgur_host_case_insensitive ... ok
[INFO] [stdout] test image_preview::detect::tests::extract_no_urls ... ok
[INFO] [stdout] test image_preview::detect::tests::extract_single_url_from_text ... ok
[INFO] [stdout] test image_preview::detect::tests::extract_url_surrounded_by_quotes ... ok
[INFO] [stdout] test image_preview::detect::tests::extract_url_in_angle_brackets ... ok
[INFO] [stdout] test image_preview::detect::tests::extract_url_in_parentheses ... ok
[INFO] [stdout] test image_preview::detect::tests::http_scheme_accepted ... ok
[INFO] [stdout] test image_preview::detect::tests::generic_page_with_path ... ok
[INFO] [stdout] test image_preview::cache::tests::cleanup_keeps_files_within_limit ... ok
[INFO] [stdout] test image_preview::detect::tests::imgur_page_gallery ... ok
[INFO] [stdout] test image_preview::detect::tests::imgbb_page_www ... ok
[INFO] [stdout] test image_preview::detect::tests::imgbb_page ... ok
[INFO] [stdout] test image_preview::detect::tests::generic_page ... ok
[INFO] [stdout] test image_preview::detect::tests::extract_url_at_end_of_sentence ... ok
[INFO] [stdout] test image_preview::detect::tests::imgur_page_single_image ... ok
[INFO] [stdout] test image_preview::detect::tests::non_http_ftp_returns_none ... ok
[INFO] [stdout] test image_preview::detect::tests::non_http_irc_returns_none ... ok
[INFO] [stdout] test image_preview::detect::tests::non_http_mailto_returns_none ... ok
[INFO] [stdout] test image_preview::detect::tests::extract_multiple_urls ... ok
[INFO] [stdout] test image_preview::detect::tests::percent_decode_invalid_sequence_left_as_is ... ok
[INFO] [stdout] test image_preview::detect::tests::imgur_page_www ... ok
[INFO] [stdout] test image_preview::detect::tests::parse_host_lowercases ... ok
[INFO] [stdout] test image_preview::detect::tests::parse_host_no_path ... ok
[INFO] [stdout] test image_preview::detect::tests::percent_decode_multiple ... ok
[INFO] [stdout] test image_preview::detect::tests::parse_host_strips_port ... ok
[INFO] [stdout] test image_preview::detect::tests::percent_decode_space ... ok
[INFO] [stdout] test image_preview::detect::tests::title_from_gallery_path ... ok
[INFO] [stdout] test image_preview::detect::tests::title_none_for_root_path ... ok
[INFO] [stdout] test image_preview::detect::tests::title_from_deep_path ... ok
[INFO] [stdout] test image_preview::detect::tests::percent_decode_truncated_at_end ... ok
[INFO] [stdout] test image_preview::detect::tests::title_from_filename ... ok
[INFO] [stdout] test image_preview::detect::tests::title_none_for_trailing_slash ... ok
[INFO] [stdout] test image_preview::detect::tests::title_percent_decoded ... ok
[INFO] [stdout] test image_preview::detect::tests::title_strips_fragment ... ok
[INFO] [stdout] test image_preview::detect::tests::title_strips_query_string ... ok
[INFO] [stdout] test image_preview::fetch::tests::error_display_network ... ok
[INFO] [stdout] test image_preview::fetch::tests::default_config_values ... ok
[INFO] [stdout] test image_preview::fetch::tests::error_display_invalid_url ... ok
[INFO] [stdout] test image_preview::fetch::tests::error_display_not_an_image ... ok
[INFO] [stdout] test image_preview::fetch::tests::error_display_too_large ... ok
[INFO] [stdout] test image_preview::fetch::tests::error_display_no_og_image ... ok
[INFO] [stdout] test image_preview::fetch::tests::error_display_timeout ... ok
[INFO] [stdout] test image_preview::fetch::tests::extract_og_image_picks_first_match ... ok
[INFO] [stdout] test image_preview::fetch::tests::extract_og_image_none_when_missing ... ok
[INFO] [stdout] test image_preview::fetch::tests::extract_og_image_ignores_og_title ... ok
[INFO] [stdout] test image_preview::fetch::tests::extract_og_image_property_first ... ok
[INFO] [stdout] test image_preview::fetch::tests::extract_og_image_empty_content ... ok
[INFO] [stdout] test image_preview::fetch::tests::extract_og_image_case_insensitive ... ok
[INFO] [stdout] test image_preview::fetch::tests::extract_og_image_with_extra_attributes ... ok
[INFO] [stdout] test image_preview::fetch::tests::extract_og_image_content_first ... ok
[INFO] [stdout] test image_preview::fetch::tests::is_image_jpeg ... ok
[INFO] [stdout] test image_preview::fetch::tests::is_image_png ... ok
[INFO] [stdout] test image_preview::fetch::tests::is_image_webp ... ok
[INFO] [stdout] test image_preview::fetch::tests::is_image_with_charset ... ok
[INFO] [stdout] test image_preview::fetch::tests::is_not_image_text_html ... ok
[INFO] [stdout] test image_preview::fetch::tests::is_not_image_empty ... ok
[INFO] [stdout] test image_preview::fetch::tests::is_not_image_application_json ... ok
[INFO] [stdout] test image_preview::fetch::tests::resolve_absolute_url_unchanged ... ok
[INFO] [stdout] test image_preview::fetch::tests::resolve_protocol_relative ... ok
[INFO] [stdout] test image_preview::cache::tests::cleanup_removes_by_size ... ok
[INFO] [stdout] test irc::batch::tests::add_message_returns_false_for_unbatched ... ok
[INFO] [stdout] test image_preview::fetch::tests::resolve_relative_no_leading_slash ... ok
[INFO] [stdout] test irc::batch::tests::add_message_returns_false_for_unknown_batch ... ok
[INFO] [stdout] test image_preview::fetch::tests::resolve_relative_path ... ok
[INFO] [stdout] test image_preview::fetch::tests::resolve_with_invalid_base_returns_raw ... ok
[INFO] [stdout] test irc::batch::tests::format_nick_list_under_limit ... ok
[INFO] [stdout] test irc::batch::tests::batch_type_case_normalized ... ok
[INFO] [stdout] test irc::batch::tests::is_batched_detects_batch_tag ... ok
[INFO] [stdout] test irc::batch::tests::end_nonexistent_batch_returns_none ... ok
[INFO] [stdout] test irc::batch::tests::format_nick_list_over_limit ... ok
[INFO] [stdout] test irc::batch::tests::purge_expired_keeps_fresh_batches ... ok
[INFO] [stdout] test irc::batch::tests::purge_expired_removes_old_batches ... ok
[INFO] [stdout] test irc::batch::tests::purge_expired_returns_messages_for_replay ... ok
[INFO] [stdout] test irc::batch::tests::start_and_end_batch_collects_messages ... ok
[INFO] [stdout] test irc::cap::tests::case_insensitive_lookup ... ok
[INFO] [stdout] test irc::batch::tests::netsplit_batch_produces_summary ... ok
[INFO] [stdout] test irc::cap::tests::merge_combines_lines ... ok
[INFO] [stdout] test irc::cap::tests::negotiate_filters_to_available ... ok
[INFO] [stdout] test irc::cap::tests::negotiate_with_full_desired_list ... ok
[INFO] [stdout] test irc::cap::tests::parse_caps_with_values ... ok
[INFO] [stdout] test irc::batch::tests::messages_without_batch_tag_are_not_batched ... ok
[INFO] [stdout] test irc::cap::tests::parse_simple_caps ... ok
[INFO] [stdout] test irc::cap::tests::empty_caps ... ok
[INFO] [stdout] test irc::cap::tests::sasl_mechanisms_parsed ... ok
[INFO] [stdout] test irc::batch::tests::multiple_batches_tracked_independently ... ok
[INFO] [stdout] test irc::batch::tests::netsplit_batch_removes_nicks_case_insensitive ... ok
[INFO] [stdout] test irc::cap::tests::sasl_not_advertised_returns_empty ... ok
[INFO] [stdout] test irc::cap::tests::sasl_no_value_means_plain_default ... ok
[INFO] [stdout] test irc::events::tests::account_notify_updates_all_shared_buffers ... ok
[INFO] [stdout] test irc::events::tests::account_notify_logout ... ok
[INFO] [stdout] test irc::events::tests::account_tag_updates_nick_entry_on_privmsg ... ok
[INFO] [stdout] test irc::events::tests::account_notify_login ... ok
[INFO] [stdout] test irc::events::tests::away_notify_updates_all_shared_buffers ... ok
[INFO] [stdout] test irc::events::tests::away_notify_clears_away ... ok
[INFO] [stdout] test irc::events::tests::away_notify_sets_away ... ok
[INFO] [stdout] test irc::events::tests::ban_mode_adds_cached_ban_entry ... ok
[INFO] [stdout] test irc::events::tests::build_whox_who_non_silent_does_not_register ... ok
[INFO] [stdout] test irc::events::tests::build_whox_who_returns_none_without_whox ... ok
[INFO] [stdout] test irc::events::tests::build_whox_who_returns_fields_with_whox ... ok
[INFO] [stdout] test irc::events::tests::build_whox_who_silent_registers_channel ... ok
[INFO] [stdout] test irc::events::tests::cap_ack_adds_to_enabled ... ok
[INFO] [stdout] test irc::events::tests::cap_nak_logs_rejection ... ok
[INFO] [stdout] test irc::events::tests::cap_del_removes_from_enabled ... ok
[INFO] [stdout] test irc::events::tests::cap_del_for_non_enabled_caps_is_noop ... ok
[INFO] [stdout] test irc::events::tests::cap_new_full_roundtrip_with_ack ... ok
[INFO] [stdout] test irc::events::tests::cap_new_non_desired_caps_ignored ... ok
[INFO] [stdout] test irc::events::tests::cap_new_with_values_strips_value_part ... ok
[INFO] [stdout] test irc::events::tests::chghost_adds_event_message ... ok
[INFO] [stdout] test irc::events::tests::banlist_response_upserts_cached_ban_entry ... ok
[INFO] [stdout] test irc::events::tests::chghost_updates_all_shared_buffers ... ok
[INFO] [stdout] test irc::events::tests::chghost_updates_ident_and_host ... ok
[INFO] [stdout] test irc::events::tests::connected_updates_status ... ok
[INFO] [stdout] test irc::events::tests::disconnect_does_not_touch_other_connections ... ok
[INFO] [stdout] test irc::events::tests::disconnect_wipes_channel_nicklists_for_connection ... ok
[INFO] [stdout] test irc::events::tests::disconnected_clean ... ok
[INFO] [stdout] test irc::events::tests::echo_message_own_action_displayed ... ok
[INFO] [stdout] test irc::events::tests::disconnected_with_error ... ok
[INFO] [stdout] test irc::events::tests::echo_message_own_notice_routes_to_recipient ... ok
[INFO] [stdout] test irc::events::tests::echo_message_own_privmsg_displayed_when_cap_enabled ... ok
[INFO] [stdout] test irc::events::tests::echo_message_own_pm_routes_to_recipient_buffer ... ok
[INFO] [stdout] test irc::events::tests::echo_message_own_privmsg_no_cap_unchanged ... ok
[INFO] [stdout] test irc::events::tests::error_command_creates_event_in_status_buffer ... ok
[INFO] [stdout] test irc::events::tests::extended_join_account_on_own_join ... ok
[INFO] [stdout] test irc::events::tests::extended_join_with_account ... ok
[INFO] [stdout] test irc::events::tests::extract_cap_string_continuation ... ok
[INFO] [stdout] test irc::events::tests::extended_join_without_account ... ok
[INFO] [stdout] test irc::events::tests::extract_cap_string_field3_primary ... ok
[INFO] [stdout] test irc::events::tests::extract_cap_string_field4_preferred_when_present ... ok
[INFO] [stdout] test irc::events::tests::error_command_marks_connection_as_errored ... ok
[INFO] [stdout] test irc::events::tests::invite_notify_other_user_shows_in_channel ... ok
[INFO] [stdout] test irc::events::tests::join_failure_bad_key ... ok
[INFO] [stdout] test irc::events::tests::invite_target_is_us_shows_in_active_buffer ... ok
[INFO] [stdout] test irc::events::tests::join_failure_channel_full ... ok
[INFO] [stdout] test irc::events::tests::join_failure_invite_only ... ok
[INFO] [stdout] test irc::events::tests::join_failure_removes_empty_buffer ... ok
[INFO] [stdout] test irc::events::tests::join_our_own_creates_buffer ... ok
[INFO] [stdout] test irc::events::tests::kick_other_user_removes_nick ... ok
[INFO] [stdout] test irc::events::tests::join_failure_keeps_active_buffer ... ok
[INFO] [stdout] test irc::events::tests::cap_new_desired_caps_returns_request_list ... ok
[INFO] [stdout] test irc::events::tests::malformed_time_tag_falls_back_to_now ... ok
[INFO] [stdout] test irc::events::tests::manual_who_end_displays_message ... ok
[INFO] [stdout] test irc::events::tests::missing_time_tag_falls_back_to_now ... ok
[INFO] [stdout] test irc::events::tests::list_mode_batches_preserve_parameters_in_display ... ok
[INFO] [stdout] test irc::events::tests::nick_change_other_user ... ok
[INFO] [stdout] test irc::events::tests::nick_change_updates_our_nick ... ok
[INFO] [stdout] test irc::events::tests::notice_from_server_goes_to_status ... ok
[INFO] [stdout] test irc::events::tests::parse_names_multi_prefix_five_modes ... ok
[INFO] [stdout] test irc::events::tests::parse_names_multi_prefix_two_modes ... ok
[INFO] [stdout] test irc::events::tests::parse_names_no_prefix ... ok
[INFO] [stdout] test irc::events::tests::parse_names_standard_single_prefix ... ok
[INFO] [stdout] test irc::events::tests::parse_names_userhost_in_names ... ok
[INFO] [stdout] test irc::events::tests::join_other_user_adds_nick ... ok
[INFO] [stdout] test irc::events::tests::kick_our_own_removes_buffer_and_notifies ... ok
[INFO] [stdout] test irc::events::tests::parse_names_userhost_not_enabled_preserves_raw_nick ... ok
[INFO] [stdout] test irc::events::tests::next_who_token_increments ... ok
[INFO] [stdout] test irc::events::tests::parse_names_userhost_no_prefix ... ok
[INFO] [stdout] test irc::events::tests::part_our_own_removes_buffer ... ok
[INFO] [stdout] test irc::events::tests::privmsg_ctcp_action_mention ... ok
[INFO] [stdout] test irc::events::tests::privmsg_ctcp_action ... ok
[INFO] [stdout] test irc::events::tests::privmsg_flood_exemption_bypasses_duplicate_flood ... ok
[INFO] [stdout] test irc::events::tests::part_other_user_removes_nick ... ok
[INFO] [stdout] test irc::events::tests::privmsg_mention_sets_highlight ... ok
[INFO] [stdout] test irc::events::tests::privmsg_pm_creates_query_buffer ... ok
[INFO] [stdout] test irc::events::tests::registered_only_and_reop_render_distinct_mode_letters ... ok
[INFO] [stdout] test irc::events::tests::privmsg_own_message_no_activity ... ok
[INFO] [stdout] test irc::events::tests::rpl_namreply_multi_prefix ... ok
[INFO] [stdout] test irc::events::tests::privmsg_to_channel ... ok
[INFO] [stdout] test irc::events::tests::quit_removes_from_all_buffers ... ok
[INFO] [stdout] test irc::events::tests::rpl_topic_sets_topic ... ok
[INFO] [stdout] test irc::events::tests::self_join_creates_buffer_when_missing ... ok
[INFO] [stdout] test irc::events::tests::self_join_to_empty_existing_buffer_resets_stale_state ... ok
[INFO] [stdout] test irc::events::tests::rpl_namreply_userhost_in_names ... ok
[INFO] [stdout] test irc::events::tests::self_join_to_existing_buffer_with_users_is_ignored ... ok
[INFO] [stdout] test irc::events::tests::reop_mode_is_list_mode_not_channel_mode ... ok
[INFO] [stdout] test irc::events::tests::server_time_tag_used_as_timestamp ... ok
[INFO] [stdout] test irc::batch::tests::batch_message_cap_discards_excess ... ok
[INFO] [stdout] test irc::events::tests::silent_banlist_sync_updates_state_without_display ... ok
[INFO] [stdout] test irc::events::tests::silent_banlist_sync_suppresses_case_variant_channel ... ok
[INFO] [stdout] test irc::events::tests::silent_who_end_cleans_up_case_variant_channel ... ok
[INFO] [stdout] test irc::events::tests::silent_who_end_cleans_up_and_suppresses_display ... ok
[INFO] [stdout] test irc::events::tests::rpl_namreply_adds_nicks ... ok
[INFO] [stdout] test irc::events::tests::silent_mode_sync_suppresses_channel_creation_notice ... ok
[INFO] [stdout] test irc::events::tests::server_time_helper_unit ... ok
[INFO] [stdout] test irc::events::tests::topic_change_updates_buffer ... ok
[INFO] [stdout] test irc::events::tests::standard_join_no_account ... ok
[INFO] [stdout] test irc::events::tests::silent_whox_reply_updates_state_without_display ... ok
[INFO] [stdout] test irc::events::tests::stale_cleanup_contract_silent_flags_suppress_late_replies ... ok
[INFO] [stdout] test irc::events::tests::silent_whox_reply_suppresses_case_variant_channel ... ok
[INFO] [stdout] test irc::events::tests::unban_mode_removes_cached_ban_entry_case_insensitively ... ok
[INFO] [stdout] test irc::events::tests::whois_detail_responses_emit_theme_keys ... ok
[INFO] [stdout] test irc::events::tests::whois_idle_without_signon_uses_idle_theme_key ... ok
[INFO] [stdout] test irc::events::tests::whox_account_zero_means_not_logged_in ... ok
[INFO] [stdout] test irc::events::tests::standard_who_reply_still_works ... ok
[INFO] [stdout] test irc::events::tests::whois_raw_account_and_secure_are_themeable ... ok
[INFO] [stdout] test irc::events::tests::whois_user_and_server_emit_theme_params ... ok
[INFO] [stdout] test irc::events::tests::whox_here_flag_clears_away ... ok
[INFO] [stdout] test irc::events::tests::whox_gone_flag_sets_away ... ok
[INFO] [stdout] test irc::extban::tests::compose_account_ban_custom_prefix ... ok
[INFO] [stdout] test irc::extban::tests::format_ban_mask_extban ... ok
[INFO] [stdout] test irc::extban::tests::display_format ... ok
[INFO] [stdout] test irc::extban::tests::display_format_no_param ... ok
[INFO] [stdout] test irc::extban::tests::friendly_display_unknown_type ... ok
[INFO] [stdout] test irc::extban::tests::friendly_display_no_param ... ok
[INFO] [stdout] test irc::extban::tests::format_ban_mask_normal ... ok
[INFO] [stdout] test irc::extban::tests::friendly_display_with_param ... ok
[INFO] [stdout] test irc::extban::tests::non_extban_returns_none ... ok
[INFO] [stdout] test irc::extban::tests::parse_specific_userhost ... ok
[INFO] [stdout] test irc::events::tests::whox_reply_updates_nick_entry ... ok
[INFO] [stdout] test irc::extban::tests::compose_account_ban_default_prefix ... ok
[INFO] [stdout] test irc::extban::tests::parse_with_tilde_prefix ... ok
[INFO] [stdout] test irc::extban::tests::parse_account_no_parameter ... ok
[INFO] [stdout] test irc::extban::tests::parse_account_with_parameter ... ok
[INFO] [stdout] test irc::extban::tests::parse_wildcard_parameter ... ok
[INFO] [stdout] test irc::extban::tests::roundtrip_parse_display ... ok
[INFO] [stdout] test irc::flood::tests::ctcp_at_threshold_triggers ... ok
[INFO] [stdout] test irc::extban::tests::roundtrip_no_param ... ok
[INFO] [stdout] test irc::flood::tests::ctcp_block_expires ... ok
[INFO] [stdout] test irc::flood::tests::ctcp_outside_window_does_not_trigger ... ok
[INFO] [stdout] test irc::flood::tests::duplicate_at_threshold_triggers ... ok
[INFO] [stdout] test irc::flood::tests::default_impl_matches_new ... ok
[INFO] [stdout] test irc::flood::tests::duplicate_blocked_text_stays_blocked ... ok
[INFO] [stdout] test irc::flood::tests::duplicate_different_texts_pass ... ok
[INFO] [stdout] test irc::flood::tests::ctcp_block_extends_on_continued_flood ... ok
[INFO] [stdout] test irc::flood::tests::ctcp_under_threshold_passes ... ok
[INFO] [stdout] test irc::flood::tests::duplicate_non_channel_ignored ... ok
[INFO] [stdout] test irc::flood::tests::duplicate_empty_text_ignored ... ok
[INFO] [stdout] test irc::flood::tests::nick_at_threshold_triggers ... ok
[INFO] [stdout] test irc::flood::tests::nick_different_buffers_independent ... ok
[INFO] [stdout] test irc::flood::tests::nick_block_expires ... ok
[INFO] [stdout] test irc::flood::tests::nick_under_threshold_passes ... ok
[INFO] [stdout] test irc::flood::tests::pm_storm_block_expires ... ok
[INFO] [stdout] test irc::flood::tests::pm_storm_outside_window_does_not_trigger ... ok
[INFO] [stdout] test irc::flood::tests::pm_storm_at_threshold_triggers ... ok
[INFO] [stdout] test irc::flood::tests::nick_outside_window_does_not_trigger ... ok
[INFO] [stdout] test irc::flood::tests::pm_storm_same_nick_does_not_inflate_count ... ok
[INFO] [stdout] test irc::flood::tests::nick_block_extends_on_continued_flood ... ok
[INFO] [stdout] test irc::flood::tests::pm_storm_under_threshold_passes ... ok
[INFO] [stdout] test irc::flood::tests::prune_window_all_expired ... ok
[INFO] [stdout] test irc::flood::tests::prune_window_all_recent ... ok
[INFO] [stdout] test irc::flood::tests::remove_buffer_cleans_nick_tracking ... ok
[INFO] [stdout] test irc::flood::tests::tilde_nick_at_threshold_blocks_only_that_nick ... ok
[INFO] [stdout] test irc::flood::tests::tilde_nick_block_expires ... ok
[INFO] [stdout] test irc::flood::tests::prune_window_removes_old_entries ... ok
[INFO] [stdout] test irc::flood::tests::prune_window_empty_vec ... ok
[INFO] [stdout] test irc::flood::tests::tilde_nick_outside_window_does_not_trigger ... ok
[INFO] [stdout] test irc::flood::tests::unique_count_deduplicates ... ok
[INFO] [stdout] test irc::flood::tests::tilde_nick_different_nicks_independent ... ok
[INFO] [stdout] test irc::formatting::tests::extract_nick_server_name ... ok
[INFO] [stdout] test irc::flood::tests::tilde_nick_under_threshold_passes ... ok
[INFO] [stdout] test irc::formatting::tests::extract_nick_none ... ok
[INFO] [stdout] test irc::formatting::tests::extract_nick_with_host ... ok
[INFO] [stdout] test irc::formatting::tests::is_channel_ampersand ... ok
[INFO] [stdout] test irc::formatting::tests::is_channel_nick ... ok
[INFO] [stdout] test irc::formatting::tests::is_channel_bang ... ok
[INFO] [stdout] test irc::formatting::tests::is_channel_plus ... ok
[INFO] [stdout] test irc::formatting::tests::is_server_prefix_false_for_nick ... ok
[INFO] [stdout] test irc::formatting::tests::is_server_prefix_true_for_none ... ok
[INFO] [stdout] test irc::formatting::tests::is_server_prefix_true_for_server ... ok
[INFO] [stdout] test irc::formatting::tests::modes_to_prefix_none ... ok
[INFO] [stdout] test irc::formatting::tests::modes_to_prefix_owner_op_voice ... ok
[INFO] [stdout] test irc::formatting::tests::modes_to_prefix_op_voice ... ok
[INFO] [stdout] test irc::formatting::tests::modes_to_prefix_all ... ok
[INFO] [stdout] test irc::formatting::tests::modes_to_prefix_voice_only ... ok
[INFO] [stdout] test irc::formatting::tests::prefix_to_mode_empty ... ok
[INFO] [stdout] test irc::formatting::tests::prefix_to_mode_op ... ok
[INFO] [stdout] test irc::formatting::tests::prefix_to_mode_multiple ... ok
[INFO] [stdout] test irc::formatting::tests::split_halfop_prefix ... ok
[INFO] [stdout] test irc::flood::tests::duplicate_below_window_size_passes ... ok
[INFO] [stdout] test irc::formatting::tests::split_no_prefix ... ok
[INFO] [stdout] test irc::formatting::tests::is_channel_hash ... ok
[INFO] [stdout] test irc::formatting::tests::prefix_to_mode_voice ... ok
[INFO] [stdout] test irc::formatting::tests::split_multiple_prefixes ... ok
[INFO] [stdout] test irc::formatting::tests::strip_bold ... ok
[INFO] [stdout] test irc::formatting::tests::strip_comma_not_followed_by_digit ... ok
[INFO] [stdout] test irc::formatting::tests::strip_color_without_digits_is_reset ... ok
[INFO] [stdout] test irc::formatting::tests::strip_hex_fg_bg_color ... ok
[INFO] [stdout] test irc::formatting::tests::strip_hex_color ... ok
[INFO] [stdout] test irc::formatting::tests::strip_mirc_fg_bg_color ... ok
[INFO] [stdout] test irc::formatting::tests::split_op_prefix ... ok
[INFO] [stdout] test irc::formatting::tests::strip_mirc_fg_bg_two_digit ... ok
[INFO] [stdout] test irc::formatting::tests::strip_combined_formatting ... ok
[INFO] [stdout] test irc::formatting::tests::strip_mirc_fg_color ... ok
[INFO] [stdout] test irc::formatting::tests::strip_plain_text_unchanged ... ok
[INFO] [stdout] test irc::formatting::tests::strip_mirc_two_digit_color ... ok
[INFO] [stdout] test irc::formatting::tests::strip_reverse ... ok
[INFO] [stdout] test irc::formatting::tests::strip_reset ... ok
[INFO] [stdout] test irc::formatting::tests::strip_strikethrough ... ok
[INFO] [stdout] test irc::formatting::tests::strip_underline ... ok
[INFO] [stdout] test irc::ignore::tests::build_mask_all_parts ... ok
[INFO] [stdout] test irc::ignore::tests::build_mask_missing_both ... ok
[INFO] [stdout] test irc::ignore::tests::build_mask_missing_hostname ... ok
[INFO] [stdout] test irc::formatting::tests::split_voice_prefix ... ok
[INFO] [stdout] test irc::ignore::tests::build_mask_missing_ident ... ok
[INFO] [stdout] test irc::formatting::tests::strip_italic ... ok
[INFO] [stdout] test irc::ignore::tests::does_not_ignore_wrong_level ... ok
[INFO] [stdout] test irc::ignore::tests::all_level_matches_everything ... ok
[INFO] [stdout] test irc::ignore::tests::channel_restriction_matches ... ok
[INFO] [stdout] test irc::ignore::tests::channel_restriction_no_match ... ok
[INFO] [stdout] test irc::ignore::tests::channel_restriction_none_channel ... ok
[INFO] [stdout] test irc::ignore::tests::ignores_full_mask_pattern ... ok
[INFO] [stdout] test irc::ignore::tests::empty_ignores_returns_false ... ok
[INFO] [stdout] test irc::ignore::tests::full_mask_pattern_requires_matching_host ... ok
[INFO] [stdout] test irc::ignore::tests::channel_restriction_case_insensitive ... ok
[INFO] [stdout] test irc::ignore::tests::mask_patterns_do_not_match_full_mask_against_bare_nick ... ok
[INFO] [stdout] test irc::ignore::tests::nick_pattern_does_not_match_full_mask ... ok
[INFO] [stdout] test irc::ignore::tests::mask_patterns_match_bare_nick ... ok
[INFO] [stdout] test irc::ignore::tests::ignores_matching_nick_pattern ... ok
[INFO] [stdout] test irc::ignore::tests::mask_patterns_match_full_hostmask ... ok
[INFO] [stdout] test irc::ignore::tests::wildcard_case_insensitive ... ok
[INFO] [stdout] test irc::ignore::tests::wildcard_complex_pattern ... ok
[INFO] [stdout] test image_preview::fetch::tests::fetch_url_short_circuits_on_validator_reject ... ok
[INFO] [stdout] test irc::ignore::tests::empty_channels_list_treated_as_no_restriction ... ok
[INFO] [stdout] test irc::ignore::tests::no_channel_restriction_matches_anywhere ... ok
[INFO] [stdout] test irc::ignore::tests::pattern_does_not_match ... ok
[INFO] [stdout] test irc::ignore::tests::wildcard_question_matches_single_char ... ok
[INFO] [stdout] test irc::isupport::tests::chanmodes_default_when_absent ... ok
[INFO] [stdout] test irc::isupport::tests::casemapping_values ... ok
[INFO] [stdout] test irc::isupport::tests::defaults_for_missing_tokens ... ok
[INFO] [stdout] test irc::isupport::tests::extban_missing ... ok
[INFO] [stdout] test irc::isupport::tests::extban_parsing ... ok
[INFO] [stdout] test irc::ignore::tests::wildcard_exact_match ... ok
[INFO] [stdout] test irc::isupport::tests::full_real_world_isupport ... ok
[INFO] [stdout] test irc::ignore::tests::wildcard_in_mask_components ... ok
[INFO] [stdout] test irc::ignore::tests::multiple_entries_first_match_wins ... ok
[INFO] [stdout] test irc::isupport::tests::multi_target_mode_targmax_mode_limited_to_one ... ok
[INFO] [stdout] test irc::isupport::tests::chanmodes_parsing ... ok
[INFO] [stdout] test irc::isupport::tests::multi_target_mode_with_targmax_no_mode ... ok
[INFO] [stdout] test irc::isupport::tests::multi_target_mode_targmax_mode_unlimited ... ok
[INFO] [stdout] test irc::isupport::tests::multi_target_mode_without_targmax ... ok
[INFO] [stdout] test irc::isupport::tests::multi_target_mode_with_targmax_mode_listed ... ok
[INFO] [stdout] test irc::isupport::tests::multiple_parse_calls_merge ... ok
[INFO] [stdout] test irc::isupport::tests::negated_token ... ok
[INFO] [stdout] test irc::ignore::tests::wildcard_escapes_metacharacters ... ok
[INFO] [stdout] test irc::isupport::tests::parse_key_value_tokens ... ok
[INFO] [stdout] test irc::isupport::tests::prefix_parsing_extended ... ok
[INFO] [stdout] test irc::isupport::tests::prefix_default_when_absent ... ok
[INFO] [stdout] test irc::isupport::tests::prefix_parsing_standard ... ok
[INFO] [stdout] test irc::isupport::tests::statusmsg_parsing ... ok
[INFO] [stdout] test irc::netsplit::tests::format_netjoin_messages_per_channel ... ok
[INFO] [stdout] test irc::netsplit::tests::format_nick_list_under_limit ... ok
[INFO] [stdout] test irc::netsplit::tests::format_nick_list_over_limit ... ok
[INFO] [stdout] test irc::netsplit::tests::format_split_messages_per_channel ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_join_deduplicates_nicks ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_join_removes_from_nick_index ... ok
[INFO] [stdout] test irc::isupport::tests::length_tokens ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_join_returns_false_for_unknown_nick ... ok
[INFO] [stdout] test irc::isupport::tests::parse_bare_token ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_join_returns_true_for_split_nick ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_quit_batches_same_server_pair ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_quit_returns_false_for_normal_quit ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_quit_returns_true_for_netsplit ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_quit_separates_different_server_pairs ... ok
[INFO] [stdout] test irc::netsplit::tests::invalid_split_host_examples ... ok
[INFO] [stdout] test irc::netsplit::tests::is_expired_split_nick_recent ... ok
[INFO] [stdout] test irc::netsplit::tests::default_impl_matches_new ... ok
[INFO] [stdout] test irc::netsplit::tests::handle_join_matches_quit_with_different_case ... ok
[INFO] [stdout] test irc::netsplit::tests::is_expired_split_nick_unknown_nick ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_double_dot ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_leading_dot ... ok
[INFO] [stdout] test irc::ignore::tests::wildcard_star_matches_anything ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_colon ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_no_dot ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_numeric_tld ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_no_space ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_empty ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_multiple_spaces ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_slash ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_same_host ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_short_host ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_space_at_end ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_trailing_dot ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_space_at_start ... ok
[INFO] [stdout] test irc::netsplit::tests::rejects_single_char_tld ... ok
[INFO] [stdout] test irc::netsplit::tests::tick_returns_empty_before_batch_wait ... ok
[INFO] [stdout] test irc::netsplit::tests::valid_netsplit_message ... ok
[INFO] [stdout] test irc::netsplit::tests::valid_split_host_examples ... ok
[INFO] [stdout] test irc::sasl_scram::tests::chunk_authenticate_empty ... ok
[INFO] [stdout] test irc::sasl_scram::tests::chunk_authenticate_short ... ok
[INFO] [stdout] test irc::sasl_scram::tests::client_final_rejects_excessive_iterations ... ok
[INFO] [stdout] test irc::sasl_scram::tests::client_final_rejects_bad_nonce ... ok
[INFO] [stdout] test irc::sasl_scram::tests::chunk_authenticate_exact_400 ... ok
[INFO] [stdout] test irc::sasl_scram::tests::client_first_format ... ok
[INFO] [stdout] test irc::sasl_scram::tests::client_final_rejects_missing_fields ... ok
[INFO] [stdout] test irc::sasl_scram::tests::client_first_escapes_special_chars ... ok
[INFO] [stdout] test irc::sasl_scram::tests::client_final_rejects_zero_iterations ... ok
[INFO] [stdout] test irc::sasl_scram::tests::chunk_authenticate_long ... ok
[INFO] [stdout] test irc::sasl_scram::tests::verify_server_malformed ... ok
[INFO] [stdout] test irc::tests::case_insensitive_override ... ok
[INFO] [stdout] test irc::sasl_scram::tests::verify_server_wrong_signature ... ok
[INFO] [stdout] test irc::tests::empty_message ... ok
[INFO] [stdout] test irc::tests::explicit_override_external ... ok
[INFO] [stdout] test irc::tests::explicit_override_plain ... ok
[INFO] [stdout] test irc::tests::explicit_override_unavailable_mechanism ... ok
[INFO] [stdout] test irc::tests::external_still_preferred_over_scram ... ok
[INFO] [stdout] test irc::tests::external_only_when_server_supports ... ok
[INFO] [stdout] test irc::tests::no_credentials_no_cert ... ok
[INFO] [stdout] test irc::tests::resolve_bind_ip_empty_string_treated_as_value ... ok
[INFO] [stdout] test irc::tests::lorem_ipsum_long_split ... ok
[INFO] [stdout] test irc::tests::resolve_bind_ip_falls_back_to_cli ... ok
[INFO] [stdout] test irc::tests::lorem_ipsum_split ... ok
[INFO] [stdout] test irc::tests::resolve_bind_ip_falls_back_to_default ... ok
[INFO] [stdout] test irc::tests::resolve_bind_ip_prefers_per_server ... ok
[INFO] [stdout] test irc::tests::resolve_bind_ip_returns_none_when_nothing_set ... ok
[INFO] [stdout] test irc::tests::explicit_override_scram ... ok
[INFO] [stdout] test irc::tests::scram_preferred_over_plain ... ok
[INFO] [stdout] test irc::tests::sasl_mechanism_display ... ok
[INFO] [stdout] test irc::tests::scram_falls_back_to_plain ... ok
[INFO] [stdout] test irc::tests::scram_override_unavailable ... ok
[INFO] [stdout] test irc::tests::server_no_mechanisms ... ok
[INFO] [stdout] test irc::tests::select_plain_when_only_credentials ... ok
[INFO] [stdout] test irc::tests::select_external_when_cert_configured ... ok
[INFO] [stdout] test irc::tests::short_message_not_split ... ok
[INFO] [stdout] test irc::tests::very_long_word_split_at_chars ... ok
[INFO] [stdout] test irc::tests::split_at_word_boundary ... ok
[INFO] [stdout] test nick_color::tests::hash_distribution_reasonable ... ok
[INFO] [stdout] test nick_color::tests::hsl_to_rgb_blue ... ok
[INFO] [stdout] test irc::tests::split_long_text_multiple_chunks ... ok
[INFO] [stdout] test irc::tests::unicode_message_split ... ok
[INFO] [stdout] test nick_color::tests::empty_nick_does_not_panic ... ok
[INFO] [stdout] test nick_color::tests::hsl_to_rgb_red ... ok
[INFO] [stdout] test nick_color::tests::lightness_extremes ... ok
[INFO] [stdout] test nick_color::tests::known_truecolor_terminals ... ok
[INFO] [stdout] test nick_color::tests::hsl_to_rgb_green ... ok
[INFO] [stdout] test nick_color::tests::nick_color_256_deterministic ... ok
[INFO] [stdout] test nick_color::tests::nick_color_basic_is_named_color ... ok
[INFO] [stdout] test nick_color::tests::nick_color_256_in_valid_range ... ok
[INFO] [stdout] test nick_color::tests::nick_color_deterministic ... ok
[INFO] [stdout] test nick_color::tests::nick_color_different_nicks_differ ... ok
[INFO] [stdout] test nick_color::tests::nick_color_returns_indexed_for_256 ... ok
[INFO] [stdout] test nick_color::tests::nick_color_case_insensitive ... ok
[INFO] [stdout] test nick_color::tests::saturation_zero_produces_gray ... ok
[INFO] [stdout] test nick_color::tests::unicode_nick_works ... ok
[INFO] [stdout] test nick_color::tests::nick_color_returns_rgb_for_truecolor ... ok
[INFO] [stdout] test nick_color::tests::unknown_terminal_defaults ... ok
[INFO] [stdout] test image_preview::fetch::tests::fetch_url_runs_validator_with_actual_url ... ok
[INFO] [stdout] test nick_color::tests::very_long_nick_works ... ok
[INFO] [stdout] test scripting::event_bus::tests::emit_suppress_handler_returns_true ... ok
[INFO] [stdout] test scripting::event_bus::tests::higher_priority_runs_first ... ok
[INFO] [stdout] test scripting::event_bus::tests::clear_removes_all_handlers ... ok
[INFO] [stdout] test scripting::event_bus::tests::emit_continue_handler_returns_false ... ok
[INFO] [stdout] test scripting::event_bus::tests::emit_no_handlers_returns_false ... ok
[INFO] [stdout] test scripting::event_bus::tests::once_handler_fires_once ... ok
[INFO] [stdout] test scripting::event_bus::tests::remove_by_id ... ok
[INFO] [stdout] test scripting::event_bus::tests::off_removes_handlers ... ok
[INFO] [stdout] test scripting::event_bus::tests::wrong_event_name_not_triggered ... ok
[INFO] [stdout] test scripting::event_bus::tests::multiple_handlers_first_suppress_wins ... ok
[INFO] [stdout] test scripting::lua::tests::cleanup_called_on_unload ... ok
[INFO] [stdout] test scripting::event_bus::tests::remove_all_by_owner ... ok
[INFO] [stdout] test scripting::lua::tests::event_handler_fires ... ok
[INFO] [stdout] test scripting::lua::tests::duplicate_load_rejected ... ok
[INFO] [stdout] test scripting::lua::tests::event_params_visible_in_lua ... ok
[INFO] [stdout] test scripting::lua::tests::command_registration_and_dispatch ... ok
[INFO] [stdout] test scripting::lua::tests::irc_say_calls_api ... ok
[INFO] [stdout] test scripting::lua::tests::handler_error_does_not_crash ... ok
[INFO] [stdout] test scripting::lua::tests::load_and_unload_script ... ok
[INFO] [stdout] test scripting::lua::tests::missing_setup_rejected ... ok
[INFO] [stdout] test scripting::lua::tests::missing_meta_rejected ... ok
[INFO] [stdout] test scripting::lua::tests::no_matching_event_returns_continue ... ok
[INFO] [stdout] test scripting::lua::tests::sandbox_blocks_dangerous_globals ... ok
[INFO] [stdout] test scripting::lua::tests::once_handler_fires_once ... ok
[INFO] [stdout] test scripting::lua::tests::off_removes_handler ... ok
[INFO] [stdout] test scripting::lua::tests::script_env_isolation_prevents_global_pollution ... ok
[INFO] [stdout] test scripting::lua::tests::priority_ordering ... ok
[INFO] [stdout] test scripting::lua::tests::store_our_nick_works ... ok
[INFO] [stdout] test scripting::lua::tests::suppress_event ... ok
[INFO] [stdout] test scripting::lua::tests::unload_removes_commands ... ok
[INFO] [stdout] test scripting::lua::tests::script_isolation_between_loads ... ok
[INFO] [stdout] test scripting::lua::tests::script_env_rawset_rawget_are_nil ... ok
[INFO] [stdout] test session::writer::tests::flush_tracks_queued_output_bytes ... ok
[INFO] [stdout] test session::writer::tests::write_rejects_output_above_queue_limit ... ok
[INFO] [stdout] test shell::tests::hvp_rewrite_does_not_touch_sgr_with_f_in_params ... ok
[INFO] [stdout] test shell::tests::hvp_rewrite_handles_bare_csi_f ... ok
[INFO] [stdout] test shell::tests::hvp_rewrite_multiple_hvp_in_sequence ... ok
[INFO] [stdout] test shell::tests::hvp_rewrite_preserves_other_csi_sequences ... ok
[INFO] [stdout] test shell::tests::hvp_rewrite_preserves_plain_text_with_f ... ok
[INFO] [stdout] test shell::tests::hvp_rewrite_handles_mixed_content ... ok
[INFO] [stdout] test scripting::lua::tests::unload_removes_handlers ... ok
[INFO] [stdout] test shell::tests::hvp_rewrite_converts_csi_f_to_csi_h ... ok
[INFO] [stdout] test shell::tests::shell_manager_buffer_id_and_label ... ok
[INFO] [stdout] test shell::tests::shell_manager_close_removes_session ... ok
[INFO] [stdout] test irc::sasl_scram::tests::client_final_known_values ... ok
[INFO] [stdout] test shell::tests::shell_manager_new_has_no_sessions ... ok
[INFO] [stdout] test shell::tests::shell_manager_list_sessions ... ok
[INFO] [stdout] test shell::tests::hvp_process_output_applies_cursor_position ... ok
[INFO] [stdout] test irc::sasl_scram::tests::verify_server_correct_signature ... ok
[INFO] [stdout] test shell::tests::shell_manager_screen_returns_none_for_unknown_id ... ok
[INFO] [stdout] test shell::tests::shell_manager_process_output_updates_screen ... ok
[INFO] [stdout] test shell::tests::shell_manager_resize_updates_parser ... ok
[INFO] [stdout] test shell::tests::shell_manager_open_returns_label_from_command ... ok
[INFO] [stdout] test shell::tests::shell_manager_open_creates_session ... ok
[INFO] [stdout] test shrink::tests::cache_cap_zero_treated_as_one ... ok
[INFO] [stdout] test shell::tests::shell_manager_session_id_for_buffer ... ok
[INFO] [stdout] test shell::tests::shell_manager_kill_all_clears_sessions ... ok
[INFO] [stdout] test shrink::tests::cache_get_promotes_preserves_other_entries_order_at_cap3 ... ok
[INFO] [stdout] test shrink::client::tests::slug_conflict_matcher ... ok
[INFO] [stdout] test shrink::tests::cache_evicts_oldest_when_full ... ok
[INFO] [stdout] test shrink::tests::cache_returns_none_on_miss ... ok
[INFO] [stdout] test shrink::tests::cache_update_does_not_evict ... ok
[INFO] [stdout] test shrink::tests::cache_returns_value_on_hit ... ok
[INFO] [stdout] test shrink::tests::cache_get_promotes_to_most_recent ... ok
[INFO] [stdout] test shrink::tests::cache_update_preserves_other_entries_at_cap3 ... ok
[INFO] [stdout] test shrink::tests::find_long_urls_excludes_non_http ... ok
[INFO] [stdout] test shrink::tests::find_long_urls_dedupes_in_appearance_order ... ok
[INFO] [stdout] test shrink::tests::find_long_urls_excludes_balanced_parens_url_entirely ... ok
[INFO] [stdout] test shrink::tests::find_long_urls_keeps_question_mark ... ok
[INFO] [stdout] test shrink::tests::find_long_urls_includes_scheme_in_length ... ok
[INFO] [stdout] test shrink::tests::find_long_urls_filters_by_length ... ok
[INFO] [stdout] test shrink::tests::find_long_urls_trims_trailing_punctuation ... ok
[INFO] [stdout] test shrink::tests::host_of_extracts_basics ... ok
[INFO] [stdout] test shrink::tests::find_long_urls_trims_trailing_brackets ... ok
[INFO] [stdout] test shrink::tests::host_of_handles_malformed ... ok
[INFO] [stdout] test shrink::tests::host_of_keeps_ipv6_literal_intact ... ok
[INFO] [stdout] test shell::tests::shell_manager_multiple_opens_get_unique_ids ... ok
[INFO] [stdout] test spellcheck::tests::computing_dict_check ... ok
[INFO] [stdout] test spellcheck::tests::empty_checker_accepts_everything ... ok
[INFO] [stdout] test shrink::tests::host_of_strips_userinfo_phishing ... ok
[INFO] [stdout] test spellcheck::tests::has_computing_false_when_none ... ok
[INFO] [stdout] test spellcheck::tests::computing_dict_is_active ... ok
[INFO] [stdout] test spellcheck::tests::is_active_empty ... ok
[INFO] [stdout] test spellcheck::tests::has_computing_true_when_loaded ... ok
[INFO] [stdout] test spellcheck::tests::nicks_skipped ... ok
[INFO] [stdout] test spellcheck::tests::load_nonexistent_directory ... ok
[INFO] [stdout] test spellcheck::tests::number_like_detection ... ok
[INFO] [stdout] test spellcheck::tests::manifest_deserialize ... ok
[INFO] [stdout] test spellcheck::tests::short_words_always_accepted ... ok
[INFO] [stdout] test spellcheck::tests::manifest_empty_dictionaries ... ok
[INFO] [stdout] test spellcheck::tests::strip_punctuation_clean_word ... ok
[INFO] [stdout] test spellcheck::tests::strip_punctuation_empty ... ok
[INFO] [stdout] test spellcheck::tests::resolve_dict_dir_custom ... ok
[INFO] [stdout] test spellcheck::tests::resolve_dict_dir_default ... ok
[INFO] [stdout] test spellcheck::tests::strip_punctuation_question ... ok
[INFO] [stdout] test spellcheck::tests::strip_punctuation_apostrophe_inside ... ok
[INFO] [stdout] test spellcheck::tests::strip_punctuation_quotes ... ok
[INFO] [stdout] test spellcheck::tests::strip_punctuation_trailing ... ok
[INFO] [stdout] test spellcheck::tests::urls_skipped ... ok
[INFO] [stdout] test spellcheck::tests::suggest_empty_checker ... ok
[INFO] [stdout] test spellcheck::tests::words_with_digits_skipped ... ok
[INFO] [stdout] test spellcheck::tests::words_with_underscore_skipped ... ok
[INFO] [stdout] test spellcheck::tests::strip_punctuation_hyphen_inside ... ok
[INFO] [stdout] test spellcheck::tests::url_detection ... ok
[INFO] [stdout] test state::buffer::tests::log_buffer_sorts_with_channels ... ok
[INFO] [stdout] test state::buffer::tests::buffer_type_sort_group ... ok
[INFO] [stdout] test state::buffer::tests::make_buffer_id_lowercases ... ok
[INFO] [stdout] test state::buffer::tests::activity_level_ordering ... ok
[INFO] [stdout] test state::buffer::tests::touch_speaker_adds_to_front ... ok
[INFO] [stdout] test state::buffer::tests::touch_speaker_case_insensitive_dedup ... ok
[INFO] [stdout] test state::buffer::tests::touch_speaker_respects_cap ... ok
[INFO] [stdout] test state::events::tests::activation_resets_activity ... ok
[INFO] [stdout] test state::events::tests::activity_only_escalates ... ok
[INFO] [stdout] test state::events::tests::add_buffer_and_set_active ... ok
[INFO] [stdout] test state::events::tests::add_local_message_does_not_log_to_storage ... ok
[INFO] [stdout] test state::events::tests::add_message_does_log_to_storage ... ok
[INFO] [stdout] test state::events::tests::maybe_log_sends_ref_id_with_empty_text ... ok
[INFO] [stdout] test state::events::tests::add_message_to_buffer ... ok
[INFO] [stdout] test state::events::tests::add_message_with_activity_skips_active_buffer ... ok
[INFO] [stdout] test state::events::tests::nick_management ... ok
[INFO] [stdout] test state::events::tests::remove_buffer_falls_back_to_previous ... ok
[INFO] [stdout] test state::events::tests::scrollback_limit_with_activity ... ok
[INFO] [stdout] test state::events::tests::scrollback_limit_evicts_oldest ... ok
[INFO] [stdout] test state::events::tests::suppress_event_display_drops_event_messages_only ... ok
[INFO] [stdout] test state::sorting::tests::sort_buffers_by_connection_label ... ok
[INFO] [stdout] test state::events::tests::scrollback_limit_zero_means_unlimited ... ok
[INFO] [stdout] test state::sorting::tests::sort_buffers_by_type_then_name ... ok
[INFO] [stdout] test state::sorting::tests::sort_nicks_multi_prefix_uses_highest ... ok
[INFO] [stdout] test state::sorting::tests::sort_nicks_ops_before_voice_before_normal ... ok
[INFO] [stdout] test storage::crypto::tests::different_ivs_produce_different_ciphertext ... ok
[INFO] [stdout] test state::sorting::tests::sort_nicks_alphabetical_same_prefix ... ok
[INFO] [stdout] test storage::crypto::tests::encrypt_decrypt_bytes_roundtrip ... ok
[INFO] [stdout] test storage::crypto::tests::generate_key_is_32_bytes_hex ... ok
[INFO] [stdout] test storage::crypto::tests::encrypt_decrypt_roundtrip ... ok
[INFO] [stdout] test storage::crypto::tests::load_existing_key_errors_when_key_line_missing ... ok
[INFO] [stdout] test storage::crypto::tests::load_existing_key_errors_when_env_missing ... ok
[INFO] [stdout] test state::events::tests::next_prev_buffer_cycles ... ok
[INFO] [stdout] test storage::crypto::tests::load_existing_key_returns_value_when_present ... ok
[INFO] [stdout] test storage::crypto::tests::wrong_key_fails_decrypt ... ok
[INFO] [stdout] test storage::db::tests::encode_sqlite_uri_path_handles_special_chars ... ok
[INFO] [stdout] test storage::crypto::tests::load_or_create_key_roundtrip ... ok
[INFO] [stdout] test storage::db::tests::open_creates_fts_when_not_encrypted ... ok
[INFO] [stdout] test storage::db::tests::open_creates_e2e_tables ... ok
[INFO] [stdout] test storage::db::tests::open_creates_e2e_tables_when_encrypted ... ok
[INFO] [stdout] test storage::db::tests::open_creates_read_markers_table ... ok
[INFO] [stdout] test storage::db::tests::open_creates_tables ... ok
[INFO] [stdout] test storage::db::tests::open_readonly_rejects_writes ... ok
[INFO] [stdout] test storage::db::tests::purge_events_leaves_chat_messages_untouched ... ok
[INFO] [stdout] test storage::db::tests::open_skips_fts_when_encrypted ... ok
[INFO] [stdout] test storage::query::tests::buffer_stats_returns_count_and_range ... ok
[INFO] [stdout] test storage::db::tests::purge_events_removes_only_old_events ... ok
[INFO] [stdout] test storage::db::tests::purge_removes_old_messages ... ok
[INFO] [stdout] test storage::query::tests::fanout_reference_rows_resolve_text_from_primary ... ok
[INFO] [stdout] test storage::query::tests::get_messages_cursor_pagination ... ok
[INFO] [stdout] test storage::db::tests::open_readonly_handles_path_with_spaces ... ok
[INFO] [stdout] test storage::query::tests::get_buffers_lists_distinct ... ok
[INFO] [stdout] test spellcheck::tests::load_real_computing_dict ... ok
[INFO] [stdout] test storage::query::tests::get_stats_works ... ok
[INFO] [stdout] test storage::query::tests::list_buffers_for_network_filters_correctly ... ok
[INFO] [stdout] test storage::query::tests::insert_and_query_mentions ... ok
[INFO] [stdout] test storage::query::tests::get_messages_returns_chronological ... ok
[INFO] [stdout] test storage::query::tests::get_messages_paginated_does_not_lose_same_timestamp_rows ... ok
[INFO] [stdout] test irc::sasl_scram::tests::scram_roundtrip_consistency ... ok
[INFO] [stdout] test storage::query::tests::load_recent_mentions_respects_limit ... ok
[INFO] [stdout] test storage::query::tests::load_recent_mentions_returns_within_window_oldest_first ... ok
[INFO] [stdout] test storage::query::tests::list_networks_returns_distinct_sorted ... ok
[INFO] [stdout] test storage::query::tests::mark_mentions_read_clears_unread ... ok
[INFO] [stdout] test storage::query::tests::orphan_reference_row_keeps_empty_text ... ok
[INFO] [stdout] test storage::query::tests::purge_old_mentions_deletes_expired ... ok
[INFO] [stdout] test storage::query::tests::read_marker_crud ... ok
[INFO] [stdout] test storage::query::tests::search_messages_fts ... ok
[INFO] [stdout] test storage::writer::tests::writer_encrypts_when_configured ... ok
[INFO] [stdout] test storage::query::tests::unread_count ... ok
[INFO] [stdout] test storage::query::tests::truncate_mentions_deletes_all ... ok
[INFO] [stdout] test shrink::client::tests::api_url_trailing_slash_stripped ... ok
[INFO] [stdout] test storage::query::tests::unread_mention_count ... ok
[INFO] [stdout] test storage::writer::tests::writer_flushes_on_shutdown ... ok
[INFO] [stdout] test storage::writer::tests::writer_populates_fts ... ok
[INFO] [stdout] test tests::flag_value_rejected ... ok
[INFO] [stdout] test tests::first_occurrence_wins ... ok
[INFO] [stdout] test tests::long_flag_equals ... ok
[INFO] [stdout] test tests::missing_value_errors ... ok
[INFO] [stdout] test tests::long_flag_separate ... ok
[INFO] [stdout] test tests::no_flag_returns_none ... ok
[INFO] [stdout] test tests::short_flag_with_value ... ok
[INFO] [stdout] test theme::loader::tests::default_theme_has_nightfall_colors ... ok
[INFO] [stdout] test tests::combined_with_other_flags ... ok
[INFO] [stdout] test theme::loader::tests::load_theme_missing_file_returns_default ... ok
[INFO] [stdout] test theme::loader::tests::load_kokoirc_default_theme ... ok
[INFO] [stdout] test theme::parser::tests::full_kokoirc_pubmsg_format ... ok
[INFO] [stdout] test theme::parser::tests::parse_empty_input ... ok
[INFO] [stdout] test theme::parser::tests::parse_hex_bg_color ... ok
[INFO] [stdout] test theme::parser::tests::full_kokoirc_timestamp_format ... ok
[INFO] [stdout] test theme::parser::tests::parse_dim_toggle ... ok
[INFO] [stdout] test theme::parser::tests::parse_bold_toggle ... ok
[INFO] [stdout] test theme::parser::tests::parse_italic_toggle ... ok
[INFO] [stdout] test theme::parser::tests::parse_mirc_bold_underline_italic ... ok
[INFO] [stdout] test theme::parser::tests::parse_hex_fg_color ... ok
[INFO] [stdout] test theme::parser::tests::parse_irssi_letter_colors ... ok
[INFO] [stdout] test theme::parser::tests::parse_mirc_color_reset ... ok
[INFO] [stdout] test theme::parser::tests::parse_literal_percent ... ok
[INFO] [stdout] test theme::parser::tests::parse_mirc_hex_color ... ok
[INFO] [stdout] test theme::parser::tests::parse_mirc_fg_bg_colors ... ok
[INFO] [stdout] test theme::parser::tests::parse_mirc_hex_fg_bg ... ok
[INFO] [stdout] test theme::parser::tests::parse_mirc_color_codes ... ok
[INFO] [stdout] test theme::parser::tests::parse_monospace_noop ... ok
[INFO] [stdout] test theme::parser::tests::parse_reset ... ok
[INFO] [stdout] test theme::parser::tests::parse_underline_toggle ... ok
[INFO] [stdout] test theme::parser::tests::parse_plain_text ... ok
[INFO] [stdout] test theme::parser::tests::parse_strikethrough_as_dim ... ok
[INFO] [stdout] test theme::parser::tests::parse_reset_all_0f ... ok
[INFO] [stdout] test theme::parser::tests::resolve_simple_abstract ... ok
[INFO] [stdout] test theme::parser::tests::resolve_max_depth_terminates ... ok
[INFO] [stdout] test theme::parser::tests::substitute_missing_param_empty ... ok
[INFO] [stdout] test theme::parser::tests::resolve_nested_abstractions ... ok
[INFO] [stdout] test theme::parser::tests::parse_reverse ... ok
[INFO] [stdout] test theme::parser::tests::resolve_unknown_abstract_kept ... ok
[INFO] [stdout] test theme::parser::tests::substitute_padded_right ... ok
[INFO] [stdout] test theme::parser::tests::substitute_padded_left ... ok
[INFO] [stdout] test theme::parser::tests::substitute_positional ... ok
[INFO] [stdout] test theme::parser::tests::substitute_star ... ok
[INFO] [stdout] test theme::parser::tests::substitute_trailing_dollar ... ok
[INFO] [stdout] test theme::tests::hex_to_color_invalid ... ok
[INFO] [stdout] test theme::tests::hex_to_color_valid ... ok
[INFO] [stdout] test ui::chat_view::tests::compute_render_budget::caps_at_buffer_cap_for_small_buffer_with_large_scroll ... ok
[INFO] [stdout] test ui::chat_view::tests::compute_render_budget::caps_at_buffer_times_max_wraps_for_pathological_scroll ... ok
[INFO] [stdout] test ui::chat_view::tests::compute_render_budget::is_overflow_safe_for_usize_max_scroll ... ok
[INFO] [stdout] test theme::tests::hex_to_color_with_hash ... ok
[INFO] [stdout] test ui::chat_view::tests::compute_render_budget::returns_visible_height_for_empty_buffer ... ok
[INFO] [stdout] test ui::chat_view::tests::compute_render_budget::returns_visible_height_when_scroll_is_zero ... ok
[INFO] [stdout] test ui::chat_view::tests::compute_render_budget::returns_visible_plus_offset_for_normal_scroll ... ok
[INFO] [stdout] test ui::emote_layout::tests::adjacent_distinct_emotes_split ... ok
[INFO] [stdout] test ui::emote_layout::tests::adjacent_identical_emotes_split ... ok
[INFO] [stdout] test ui::emote_layout::tests::encode_then_decode_roundtrips_index ... ok
[INFO] [stdout] test ui::emote_layout::tests::non_placeholder_char_decodes_none ... ok
[INFO] [stdout] test ui::emote_layout::tests::rows_beyond_area_height_dropped ... ok
[INFO] [stdout] test ui::emote_layout::tests::placeholder_width_is_emote_cols ... ok
[INFO] [stdout] test ui::emote_layout::tests::placement_x_uses_grapheme_width_of_preceding_emoji ... ok
[INFO] [stdout] test ui::emote_layout::tests::two_emotes_on_consecutive_rows ... ok
[INFO] [stdout] test ui::emote_layout::tests::resolves_placement_after_text ... ok
[INFO] [stdout] test ui::emote_picker::tests::empty_filter_returns_all ... ok
[INFO] [stdout] test ui::emote_picker::tests::picker_filters_by_substring ... ok
[INFO] [stdout] test ui::emote_picker::tests::filter_matches_english_alias ... ok
[INFO] [stdout] test ui::input::tests::clear_returns_value ... ok
[INFO] [stdout] test ui::input::tests::clear_to_end_at_end ... ok
[INFO] [stdout] test ui::input::tests::byte_at_char_handles_multibyte_text ... ok
[INFO] [stdout] test ui::input::tests::clear_to_end ... ok
[INFO] [stdout] test ui::input::tests::clear_to_start ... ok
[INFO] [stdout] test ui::input::tests::delete_word_back_at_start ... ok
[INFO] [stdout] test ui::input::tests::delete_at_cursor ... ok
[INFO] [stdout] test ui::input::tests::command_completion ... ok
[INFO] [stdout] test ui::input::tests::delete_word_back_mid_line ... ok
[INFO] [stdout] test ui::input::tests::clear_to_start_at_beginning ... ok
[INFO] [stdout] test ui::input::tests::help_subcommand_completion ... ok
[INFO] [stdout] test ui::input::tests::delete_word_back_single_word ... ok
[INFO] [stdout] test ui::input::tests::delete_word_back_with_trailing_spaces ... ok
[INFO] [stdout] test ui::input::tests::highlight_mode_dismiss_does_not_revert ... ok
[INFO] [stdout] test ui::input::tests::help_subcommand_cycling ... ok
[INFO] [stdout] test ui::input::tests::highlight_mode_insert_char_clears_spell ... ok
[INFO] [stdout] test ui::input::tests::delete_word_back_multiple_words ... ok
[INFO] [stdout] test ui::input::tests::history_empty_input_not_pushed ... ok
[INFO] [stdout] test ui::input::tests::history_oversized_entry_not_pushed ... ok
[INFO] [stdout] test ui::input::tests::history_push_and_navigate ... ok
[INFO] [stdout] test ui::input::tests::insert_and_backspace ... ok
[INFO] [stdout] test ui::input::tests::history_saved_input_restoration ... ok
[INFO] [stdout] test ui::input::tests::is_command_detects_slash ... ok
[INFO] [stdout] test ui::input::tests::home_and_end ... ok
[INFO] [stdout] test ui::input::tests::last_completed_word_basic ... ok
[INFO] [stdout] test storage::writer::tests::writer_flushes_at_batch_size ... ok
[INFO] [stdout] test ui::input::tests::last_completed_word_empty ... ok
[INFO] [stdout] test ui::input::tests::nick_completion_at_start_of_line ... ok
[INFO] [stdout] test ui::input::tests::last_completed_word_single ... ok
[INFO] [stdout] test ui::input::tests::nick_completion_cycling ... ok
[INFO] [stdout] test ui::input::tests::move_cursor ... ok
[INFO] [stdout] test ui::input::tests::nick_completion_empty_speakers_falls_back_to_alphabetical ... ok
[INFO] [stdout] test ui::input::tests::nick_completion_mid_line ... ok
[INFO] [stdout] test ui::input::tests::nick_completion_recent_speakers_case_insensitive ... ok
[INFO] [stdout] test ui::input::tests::nick_completion_recent_speakers_first ... ok
[INFO] [stdout] test ui::input::tests::set_path_completion_section ... ok
[INFO] [stdout] test ui::input::tests::spell_cycle_wraps_around ... ok
[INFO] [stdout] test ui::input::tests::set_path_completion ... ok
[INFO] [stdout] test ui::input::tests::nick_completion_no_duplicates ... ok
[INFO] [stdout] test ui::input::tests::spell_cycle_advances_to_next ... ok
[INFO] [stdout] test ui::input::tests::spell_different_length_replacement ... ok
[INFO] [stdout] test ui::input::tests::spell_dismiss_reverts_to_original ... ok
[INFO] [stdout] test ui::input::tests::spell_insert_char_accepts_current ... ok
[INFO] [stdout] test ui::input::tests::spell_first_suggestion_pre_applied ... ok
[INFO] [stdout] test ui::input::tests::spell_multibyte_dismiss_reverts_correctly ... ok
[INFO] [stdout] test ui::input::tests::spell_no_suggestions_returns_false ... ok
[INFO] [stdout] test ui::input::tests::spell_multibyte_cycle_preserves_boundaries ... ok
[INFO] [stdout] test ui::input::tests::spell_punctuation_question_mark ... ok
[INFO] [stdout] test ui::input::tests::spell_space_accepts_no_extra_space ... ok
[INFO] [stdout] test ui::input::tests::spell_punctuation_replaces_separator ... ok
[INFO] [stdout] test ui::input::tests::tab_completes_emote_prefix ... ok
[INFO] [stdout] test ui::input::tests::tab_completes_english_alias ... ok
[INFO] [stdout] test ui::input::tests::tab_completes_nick_after_comma_keeps_prior_nicks ... ok
[INFO] [stdout] test ui::input::tests::tab_completes_first_nick_without_comma_split ... ok
[INFO] [stdout] test ui::input::tests::tab_emote_does_not_fire_for_unknown_prefix ... ok
[INFO] [stdout] test ui::input::tests::tab_state_reset_on_other_key ... ok
[INFO] [stdout] test ui::input::tests::tab_no_emote_completion_when_disabled ... ok
[INFO] [stdout] test ui::layout::tests::compute_chat_area_both_sidebars ... ok
[INFO] [stdout] test ui::layout::tests::compute_chat_area_left_sidebar_only ... ok
[INFO] [stdout] test ui::message_line::emote_tests::known_token_becomes_placeholder_when_graphical ... ok
[INFO] [stdout] test ui::layout::tests::compute_chat_area_no_sidebars ... ok
[INFO] [stdout] test ui::layout::tests::compute_chat_area_tiny_terminal ... ok
[INFO] [stdout] test ui::message_line::emote_tests::english_alias_becomes_placeholder ... ok
[INFO] [stdout] test ui::message_line::emote_tests::no_colon_fast_path ... ok
[INFO] [stdout] test ui::message_line::emote_tests::unchanged_when_not_graphical ... ok
[INFO] [stdout] test ui::message_line::tests::render_event_message ... ok
[INFO] [stdout] test ui::message_line::tests::render_nick_truncation_accounts_for_mode_prefix ... ok
[INFO] [stdout] test ui::message_line::emote_tests::unknown_token_unchanged ... ok
[INFO] [stdout] test ui::message_line::tests::render_message_with_nick_color_override ... ok
[INFO] [stdout] test ui::message_line::tests::render_long_ascii_nick_truncation ... ok
[INFO] [stdout] test ui::message_line::tests::render_non_ascii_nick_does_not_panic ... ok
[INFO] [stdout] test ui::message_line::tests::render_public_message ... ok
[INFO] [stdout] test ui::shell_view::tests::vt100_color_default_maps_to_reset ... ok
[INFO] [stdout] test ui::message_line::tests::render_own_message_contains_nick_and_text ... ok
[INFO] [stdout] test ui::message_line::tests::render_non_ascii_nick_truncation ... ok
[INFO] [stdout] test ui::shell_view::tests::vt100_color_indexed_maps_correctly ... ok
[INFO] [stdout] test ui::styled_text::tests::converts_bold_colored_span ... ok
[INFO] [stdout] test ui::shell_view::tests::vt100_color_rgb_maps_correctly ... ok
[INFO] [stdout] test ui::styled_text::tests::converts_multiple_spans ... ok
[INFO] [stdout] test ui::styled_text::tests::converts_plain_span ... ok
[INFO] [stdout] test ui::wizard::server::tests::add_build_invalid_port_errors ... ok
[INFO] [stdout] test ui::wizard::server::tests::add_build_password_sets_credupdate_and_memory ... ok
[INFO] [stdout] test ui::wizard::server::tests::add_build_requires_network_and_address ... ok
[INFO] [stdout] test ui::wizard::server::tests::build_from_web_add_and_edit ... ok
[INFO] [stdout] test ui::wizard::server::tests::build_from_web_requires_network ... ok
[INFO] [stdout] test ui::wizard::server::tests::edit_prefill_round_trips_every_field ... ok
[INFO] [stdout] test ui::wizard::server::tests::edit_untouched_password_is_kept ... ok
[INFO] [stdout] test ui::wizard::server::tests::edit_prefill_round_trips_core_fields ... ok
[INFO] [stdout] test ui::wizard::server::tests::slugify_basics ... ok
[INFO] [stdout] test ui::wizard::server::tests::unique_id_suffixes ... ok
[INFO] [stdout] test ui::wizard::tests::focus_ring_wraps_through_buttons ... ok
[INFO] [stdout] test ui::wizard::tests::focus_predicates ... ok
[INFO] [stdout] test ui::wizard::tests::readonly_field_is_not_editable_even_if_focused ... ok
[INFO] [stdout] test ui::wizard::server::tests::add_build_happy_path_tls_bumps_port ... ok
[INFO] [stdout] test ui::wizard::tests::readonly_field_is_not_focusable ... ok
[INFO] [stdout] test ui::wizard::server::tests::add_build_channels_and_mechanism ... ok
[INFO] [stdout] test ui::input::tests::spell_multibyte_utf8_replacement ... ok
[INFO] [stdout] test ui::wizard::tests::typing_edits_focused_text_and_marks_touched ... ok
[INFO] [stdout] test ui::wrap_tests::cjk_characters_are_double_width ... ok
[INFO] [stdout] test ui::wizard::tests::toggle_and_select_mutate_and_wrap ... ok
[INFO] [stdout] test ui::wrap_tests::oversized_grapheme_at_width_one_terminates ... ok
[INFO] [stdout] test ui::wrap_tests::preserves_styles_across_wrap ... ok
[INFO] [stdout] test ui::wrap_tests::multi_codepoint_emoji_measured_and_kept_whole ... ok
[INFO] [stdout] test ui::wrap_tests::short_line_not_wrapped ... ok
[INFO] [stdout] test ui::wrap_tests::truncate_with_plus_respects_wide_char_width ... ok
[INFO] [stdout] test ui::wrap_tests::short_line_with_wide_emoji_fits ... ok
[INFO] [stdout] test ui::wrap_tests::emote_placeholder_not_split_across_wrap ... ok
[INFO] [stdout] test ui::wrap_tests::empty_line_returns_unchanged ... ok
[INFO] [stdout] test ui::wrap_tests::wide_emoji_counted_as_double_width ... ok
[INFO] [stdout] test ui::wrap_tests::continuation_indented ... ok
[INFO] [stdout] test ui::wrap_tests::variation_selector_emoji_counts_as_two_columns ... ok
[INFO] [stdout] test ui::wrap_tests::wraps_at_word_boundary ... ok
[INFO] [stdout] test ui::wrap_tests::zero_width_returns_unchanged ... ok
[INFO] [stdout] test web::auth::tests::create_returns_unique_raw_tokens ... ok
[INFO] [stdout] test web::auth::tests::load_creates_empty_store_when_file_missing ... ok
[INFO] [stdout] test web::auth::tests::rate_limiter_blocks_after_failure ... ok
[INFO] [stdout] test web::auth::tests::purge_expired_removes_old_entries ... ok
[INFO] [stdout] test web::auth::tests::rate_limiter_allows_first_attempt ... ok
[INFO] [stdout] test web::auth::tests::raw_token_never_appears_in_persisted_session ... ok
[INFO] [stdout] test web::auth::tests::load_drops_expired_sessions_silently ... ok
[INFO] [stdout] test web::auth::tests::revoke_all_clears_everything ... ok
[INFO] [stdout] test web::auth::tests::revoke_removes_session ... ok
[INFO] [stdout] test web::auth::tests::validate_accepts_correct_token ... ok
[INFO] [stdout] test web::auth::tests::rotating_secret_invalidates_existing_sessions ... ok
[INFO] [stdout] test web::auth::tests::save_and_load_roundtrip ... ok
[INFO] [stdout] test web::auth::tests::validate_rejects_wrong_token ... ok
[INFO] [stdout] test web::auth::tests::verify_password_constant_time ... ok
[INFO] [stdout] test web::broadcast::tests::broadcast_no_receivers_does_not_panic ... ok
[INFO] [stdout] test web::broadcast::tests::broadcast_to_multiple_receivers ... ok
[INFO] [stdout] test web::auth::tests::rate_limiter_resets_on_success ... ok
[INFO] [stdout] test web::broadcast::tests::dropped_receiver_does_not_block ... ok
[INFO] [stdout] test web::auth::tests::rate_limiter_exponential_backoff ... ok
[INFO] [stdout] test web::preview::tests::encode_thumbnail_does_not_upscale_small_input ... ok
[INFO] [stdout] test web::auth::tests::debounced_save_does_not_write_on_every_validate ... ok
[INFO] [stdout] test storage::writer::tests::cap_pending_rows_drops_oldest_rows ... ok
[INFO] [stdout] test shrink::client::tests::disabled_when_key_empty ... ok
[INFO] [stdout] test web::preview::tests::cap_limits_previews_per_message ... ok
[INFO] [stdout] test web::preview::tests::duplicate_urls_collapse ... ok
[INFO] [stdout] test web::preview::tests::host_of_extracts_lowercase_no_port ... ok
[INFO] [stdout] test web::preview::tests::host_of_handles_no_path ... ok
[INFO] [stdout] test web::preview::tests::host_of_rejects_non_http ... ok
[INFO] [stdout] test web::preview::tests::generic_page_is_server_proxied ... ok
[INFO] [stdout] test web::preview::tests::extractor_registry_is_populated_for_server_proxy ... ok
[INFO] [stdout] test web::preview::tests::imgbb_page_is_server_proxied ... ok
[INFO] [stdout] test web::preview::tests::imgur_direct_image_is_client_direct ... ok
[INFO] [stdout] test web::preview::tests::imgur_gallery_page_is_skipped ... ok
[INFO] [stdout] test web::auth::tests::validate_bumps_last_used ... ok
[INFO] [stdout] test web::preview::tests::redirect_policy_caps_chain_at_five_hops ... ok
[INFO] [stdout] test web::preview::tests::redirect_validation_allows_public_ipv4_literal ... ok
[INFO] [stdout] test web::preview::tests::redirect_validation_blocks_cloud_metadata_literal ... ok
[INFO] [stdout] test web::preview::tests::redirect_validation_blocks_loopback_ipv4_literal ... ok
[INFO] [stdout] test web::preview::tests::redirect_validation_blocks_loopback_ipv6_literal ... ok
[INFO] [stdout] test web::preview::tests::redirect_validation_blocks_non_http_scheme ... ok
[INFO] [stdout] test web::preview::tests::redirect_validation_blocks_rfc1918_literal ... ok
[INFO] [stdout] test web::preview::tests::redirect_validation_lets_hostnames_through ... ok
[INFO] [stdout] test web::preview::tests::ssrf_allows_public_ipv4 ... ok
[INFO] [stdout] test web::preview::tests::ssrf_allows_public_ipv6 ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv4_cgnat ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv4_link_local_and_metadata ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv4_loopback ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv4_mapped_loopback ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv4_multicast_and_documentation ... ok
[INFO] [stdout] test web::preview::tests::hash_changes_when_secret_changes ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv4_rfc1918 ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv4_unspecified_and_broadcast ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv6_loopback_link_local_ula ... ok
[INFO] [stdout] test web::preview::tests::ssrf_blocks_ipv6_documentation ... ok
[INFO] [stdout] test web::preview::tests::ssrf_rejects_malformed_url ... ok
[INFO] [stdout] test web::preview::tests::ssrf_rejects_literal_loopback_ip_in_url ... ok
[INFO] [stdout] test web::preview::tests::ssrf_rejects_non_http_scheme ... ok
[INFO] [stdout] test web::preview::tests::validate_url_shape_str_wraps_typed_validator ... ok
[INFO] [stdout] test web::protocol::tests::fetch_messages_with_null_before ... ok
[INFO] [stdout] test web::protocol::tests::web_command_deserializes_from_json ... ok
[INFO] [stdout] test web::protocol::tests::web_event_serializes_with_type_tag ... ok
[INFO] [stdout] test web::protocol::tests::wire_message_roundtrip ... ok
[INFO] [stdout] test web::server::tests::emote_route_serves_gif_bytes ... ok
[INFO] [stdout] test web::server::tests::emote_route_unknown_is_404 ... ok
[INFO] [stdout] test web::server::tests::health_endpoint_returns_ok ... ok
[INFO] [stdout] test web::server::tests::index_serves_html ... ok
[INFO] [stdout] test web::server::tests::is_hashed_asset_recognises_trunk_filenames ... ok
[INFO] [stdout] test web::server::tests::is_hashed_asset_rejects_unhashed_paths ... ok
[INFO] [stdout] test web::preview::tests::imgur_no_extension_still_client_direct ... ok
[INFO] [stdout] test web::preview::tests::hash_is_deterministic_for_same_secret_and_url ... ok
[INFO] [stdout] test web::server::tests::login_accepts_correct_password ... ok
[INFO] [stdout] test web::server::tests::login_ignores_username_field ... ok
[INFO] [stdout] test web::server::tests::login_rejects_wrong_password ... ok
[INFO] [stdout] test web::server::tests::missing_asset_returns_404 ... ok
[INFO] [stdout] test web::server::tests::rate_limiter_blocks_after_failure ... ok
[INFO] [stdout] test web::snapshot::tests::message_to_wire_converts_correctly ... ok
[INFO] [stdout] test web::server::tests::login_info_returns_configured_username ... ok
[INFO] [stdout] test web::snapshot::tests::message_to_wire_preserves_event_key ... ok
[INFO] [stdout] test web::snapshot::tests::nick_list_returns_none_for_unknown_buffer ... ok
[INFO] [stdout] test web::snapshot::tests::split_buffer_id_works ... ok
[INFO] [stdout] test web::snapshot::tests::stored_to_wire_preserves_event_key ... ok
[INFO] [stdout] test web::snapshot::tests::sync_init_includes_buffers ... ok
[INFO] [stdout] test web::tls::tests::generate_self_signed_creates_valid_pem_files ... ok
[INFO] [stdout] test web::tls::tests::generate_self_signed_reuses_existing ... ok
[INFO] [stdout] test web::tls::tests::load_tls_config_from_generated_cert ... ok
[INFO] [stdout] test web::ws::tests::shell_screen_is_filtered_for_other_sessions ... ok
[INFO] [stdout] test web::server::tests::login_works_without_username_field ... ok
[INFO] [stdout] test web::ws::tests::targeted_error_is_filtered_for_other_sessions ... ok
[INFO] [stdout] test web::ws::tests::untargeted_error_broadcasts_to_all_sessions ... ok
[INFO] [stdout] test web::preview::tests::lookalike_host_is_not_treated_as_imgur ... ok
[INFO] [stdout] test web::preview::tests::other_direct_image_is_server_proxied ... ok
[INFO] [stdout] test web::preview::tests::unknown_hash_lookup_returns_none ... ok
[INFO] [stdout] test web::snapshot::tests::message_to_wire_populates_previews_when_extractor_provided ... ok
[INFO] [stdout] test web::preview::tests::encode_thumbnail_produces_jpeg ... ok
[INFO] [stdout] test web::preview::tests::encode_thumbnail_downscales_large_input ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1273 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.90s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc", kill_on_drop: false }`
[INFO] [stdout] e2e309bc2be0311f2c563115da7c573690211b6568b01433f5812fe29b4454cc
