[INFO] fetching crate chatd 0.2.0...
[INFO] testing chatd-0.2.0 against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759
[INFO] extracting crate chatd 0.2.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate chatd 0.2.0
[INFO] finished tweaking crates.io crate chatd 0.2.0
[INFO] tweaked toml for crates.io crate chatd 0.2.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate chatd 0.2.0 on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate chatd 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 41b27e846ce3a77f47b680fafc8a6f1bf28fe6a555e4193397c6452db77f5484
[INFO] running `Command { std: "docker" "start" "-a" "41b27e846ce3a77f47b680fafc8a6f1bf28fe6a555e4193397c6452db77f5484", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "41b27e846ce3a77f47b680fafc8a6f1bf28fe6a555e4193397c6452db77f5484", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "41b27e846ce3a77f47b680fafc8a6f1bf28fe6a555e4193397c6452db77f5484", kill_on_drop: false }`
[INFO] [stdout] 41b27e846ce3a77f47b680fafc8a6f1bf28fe6a555e4193397c6452db77f5484
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7c387a404850077177703788130f732fe44ccf1905df5e350e2f04b3d04826d0
[INFO] running `Command { std: "docker" "start" "-a" "7c387a404850077177703788130f732fe44ccf1905df5e350e2f04b3d04826d0", kill_on_drop: false }`
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling cpufeatures v0.2.12
[INFO] [stderr]    Compiling base64ct v1.6.0
[INFO] [stderr]    Compiling libm v0.2.8
[INFO] [stderr]    Compiling serde v1.0.205
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling semver v1.0.23
[INFO] [stderr]    Compiling base16ct v0.2.0
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling futures-sink v0.3.30
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]    Compiling ff v0.13.0
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling futures-io v0.3.30
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling group v0.13.0
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling num-bigint-dig v0.8.4
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling socket2 v0.5.7
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling rustversion v1.0.17
[INFO] [stderr]    Compiling bytes v1.7.1
[INFO] [stderr]    Compiling der v0.7.9
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling anstyle-parse v0.2.5
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling password-hash v0.4.2
[INFO] [stderr]    Compiling destructure_traitobject v0.2.0
[INFO] [stderr]    Compiling serde_json v1.0.122
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]    Compiling anstyle-query v1.1.1
[INFO] [stderr]    Compiling colorchoice v1.0.2
[INFO] [stderr]    Compiling portable-atomic v1.7.0
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling inout v0.1.3
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling crypto-bigint v0.5.5
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling rfc6979 v0.4.0
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling salsa20 v0.10.2
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling scrypt v0.11.0
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling ssh-encoding v0.2.0
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling blowfish v0.9.1
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling bcrypt-pbkdf v0.10.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling anstyle v1.0.8
[INFO] [stderr]    Compiling indexmap v2.3.0
[INFO] [stderr]    Compiling pbkdf2 v0.11.0
[INFO] [stderr]    Compiling ordered-float v2.10.1
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling anstream v0.6.15
[INFO] [stderr]    Compiling unsafe-any-ors v1.0.0
[INFO] [stderr]    Compiling miniz_oxide v0.7.4
[INFO] [stderr]    Compiling pkcs5 v0.7.1
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling ssh-cipher v0.2.0
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling raw-cpuid v11.1.0
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling sec1 v0.7.3
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling elliptic-curve v0.13.8
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling ecdsa v0.16.9
[INFO] [stderr]    Compiling primeorder v0.13.6
[INFO] [stderr]    Compiling russh-cryptovec v0.7.3
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling md5 v0.7.0
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling data-encoding v2.6.0
[INFO] [stderr]    Compiling p521 v0.13.3
[INFO] [stderr]    Compiling p384 v0.13.0
[INFO] [stderr]    Compiling p256 v0.13.2
[INFO] [stderr]    Compiling clap_lex v0.7.2
[INFO] [stderr]    Compiling clap_builder v4.5.13
[INFO] [stderr]    Compiling quanta v0.12.3
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling flate2 v1.0.31
[INFO] [stderr]    Compiling typemap-ors v1.0.0
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling spinning_top v0.3.0
[INFO] [stderr]    Compiling thread-id v4.2.2
[INFO] [stderr]    Compiling nonzero_ext v0.3.0
[INFO] [stderr]    Compiling arc-swap v1.7.1
[INFO] [stderr]    Compiling hex-literal v0.4.1
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling regex-automata v0.4.7
[INFO] [stderr]    Compiling no-std-compat v0.4.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling log-mdc v0.1.0
[INFO] [stderr]    Compiling circular-buffer v0.1.7
[INFO] [stderr]    Compiling terminal-keycode v1.1.1
[INFO] [stderr]    Compiling unicode-width v0.1.13
[INFO] [stderr]    Compiling unicode-segmentation v1.11.0
[INFO] [stderr]    Compiling regex v1.10.6
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.205
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.5.13
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling ed25519-dalek v2.1.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling rsa v0.9.6
[INFO] [stderr]    Compiling futures-executor v0.3.30
[INFO] [stderr]    Compiling futures v0.3.30
[INFO] [stderr]    Compiling ssh-key v0.6.6
[INFO] [stderr]    Compiling governor v0.6.3
[INFO] [stderr]    Compiling clap v4.5.13
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling serde-value v0.7.0
[INFO] [stderr]    Compiling mio v1.0.1
[INFO] [stderr]    Compiling tokio v1.39.2
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling log4rs v1.3.0
[INFO] [stderr]    Compiling tokio-stream v0.1.15
[INFO] [stderr]    Compiling russh-keys v0.44.0
[INFO] [stderr]    Compiling russh v0.44.0
[INFO] [stderr]    Compiling chatd v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/auth/set.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn iter(&self) -> TimedHashSetIter<T> {
[INFO] [stdout]    |                 ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn iter(&self) -> TimedHashSetIter<'_, T> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/chat/room/room.rs:74:29
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn members_iter_mut(&mut self) -> IterMut<UserName, RoomMember> {
[INFO] [stdout]    |                             ^^^^^^^^^     ----------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn members_iter_mut(&mut self) -> IterMut<'_, UserName, RoomMember> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/chat/room/room.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn members_iter(&self) -> Iter<UserName, RoomMember> {
[INFO] [stdout]    |                         ^^^^^     -------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn members_iter(&self) -> Iter<'_, UserName, RoomMember> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/chat/user/theme.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | #[derive(Clone, Debug, PartialEq)]
[INFO] [stdout]     |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 117 |     username_fg: fn(String) -> Color,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/chat/message/message_history.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn iter(&self) -> circular_buffer::Iter<Message> {
[INFO] [stdout]    |                 ^^^^^     ------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn iter(&self) -> circular_buffer::Iter<'_, Message> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 30s
[INFO] running `Command { std: "docker" "inspect" "7c387a404850077177703788130f732fe44ccf1905df5e350e2f04b3d04826d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7c387a404850077177703788130f732fe44ccf1905df5e350e2f04b3d04826d0", kill_on_drop: false }`
[INFO] [stdout] 7c387a404850077177703788130f732fe44ccf1905df5e350e2f04b3d04826d0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d0e7c2cc078f0b0a91b4ca588edeab7028926b0d55f9e139c46ae952358a6845
[INFO] running `Command { std: "docker" "start" "-a" "d0e7c2cc078f0b0a91b4ca588edeab7028926b0d55f9e139c46ae952358a6845", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]    Compiling bstr v1.10.0
[INFO] [stderr]    Compiling predicates-core v1.0.8
[INFO] [stderr]    Compiling doc-comment v0.3.3
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling mockall_derive v0.13.0
[INFO] [stderr]    Compiling termtree v0.4.1
[INFO] [stderr]    Compiling unic-char-range v0.9.0
[INFO] [stderr]    Compiling unic-common v0.9.0
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling fragile v2.0.0
[INFO] [stderr]    Compiling unic-ucd-version v0.9.0
[INFO] [stderr]    Compiling unic-char-property v0.9.0
[INFO] [stderr]    Compiling unic-emoji-char v0.9.0
[INFO] [stderr]    Compiling predicates-tree v1.0.11
[INFO] [stderr]    Compiling predicates v3.1.2
[INFO] [stderr]    Compiling regex-automata v0.4.7
[INFO] [stderr]    Compiling tempfile v3.12.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling globset v0.4.14
[INFO] [stderr]    Compiling regex v1.10.6
[INFO] [stderr]    Compiling ignore v0.4.22
[INFO] [stderr]    Compiling globwalk v0.9.1
[INFO] [stderr]    Compiling assert_fs v1.1.2
[INFO] [stderr]    Compiling mockall v0.13.0
[INFO] [stderr]    Compiling chatd v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/auth/set.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn iter(&self) -> TimedHashSetIter<T> {
[INFO] [stdout]    |                 ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn iter(&self) -> TimedHashSetIter<'_, T> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/chat/room/room.rs:74:29
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn members_iter_mut(&mut self) -> IterMut<UserName, RoomMember> {
[INFO] [stdout]    |                             ^^^^^^^^^     ----------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn members_iter_mut(&mut self) -> IterMut<'_, UserName, RoomMember> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/chat/room/room.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn members_iter(&self) -> Iter<UserName, RoomMember> {
[INFO] [stdout]    |                         ^^^^^     -------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn members_iter(&self) -> Iter<'_, UserName, RoomMember> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/chat/user/theme.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | #[derive(Clone, Debug, PartialEq)]
[INFO] [stdout]     |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 117 |     username_fg: fn(String) -> Color,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/chat/message/message_history.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn iter(&self) -> circular_buffer::Iter<Message> {
[INFO] [stdout]    |                 ^^^^^     ------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn iter(&self) -> circular_buffer::Iter<'_, Message> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 57s
[INFO] running `Command { std: "docker" "inspect" "d0e7c2cc078f0b0a91b4ca588edeab7028926b0d55f9e139c46ae952358a6845", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d0e7c2cc078f0b0a91b4ca588edeab7028926b0d55f9e139c46ae952358a6845", kill_on_drop: false }`
[INFO] [stdout] d0e7c2cc078f0b0a91b4ca588edeab7028926b0d55f9e139c46ae952358a6845
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 56dda4cbdc478e85aa301594be0edb485557185865daf99e1bf17b19eda11b9b
[INFO] running `Command { std: "docker" "start" "-a" "56dda4cbdc478e85aa301594be0edb485557185865daf99e1bf17b19eda11b9b", kill_on_drop: false }`
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/auth/set.rs:35:17
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn iter(&self) -> TimedHashSetIter<T> {
[INFO] [stderr]    |                 ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn iter(&self) -> TimedHashSetIter<'_, T> {
[INFO] [stderr]    |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/chat/room/room.rs:74:29
[INFO] [stderr]    |
[INFO] [stderr] 74 |     pub fn members_iter_mut(&mut self) -> IterMut<UserName, RoomMember> {
[INFO] [stderr]    |                             ^^^^^^^^^     ----------------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 74 |     pub fn members_iter_mut(&mut self) -> IterMut<'_, UserName, RoomMember> {
[INFO] [stderr]    |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/chat/room/room.rs:78:25
[INFO] [stderr]    |
[INFO] [stderr] 78 |     pub fn members_iter(&self) -> Iter<UserName, RoomMember> {
[INFO] [stderr]    |                         ^^^^^     -------------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 78 |     pub fn members_iter(&self) -> Iter<'_, UserName, RoomMember> {
[INFO] [stderr]    |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]    --> src/chat/user/theme.rs:117:5
[INFO] [stderr]     |
[INFO] [stderr] 113 | #[derive(Clone, Debug, PartialEq)]
[INFO] [stderr]     |                        --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 117 |     username_fg: fn(String) -> Color,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: the address of the same function can vary between different codegen units
[INFO] [stderr]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/chat/message/message_history.rs:21:17
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn iter(&self) -> circular_buffer::Iter<Message> {
[INFO] [stderr]    |                 ^^^^^     ------------------------------ the lifetime gets resolved as `'_`
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn iter(&self) -> circular_buffer::Iter<'_, Message> {
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: `chatd` (bin "chatd" test) generated 5 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/chatd-1859e26b196a81a0)
[INFO] [stdout] 
[INFO] [stdout] running 314 tests
[INFO] [stdout] test auth::auth::tests::test_add_remove_operator ... ok
[INFO] [stdout] test auth::auth::tests::test_check_bans ... ok
[INFO] [stdout] test auth::auth::tests::test_banned ... ok
[INFO] [stdout] test auth::auth::tests::test_add_remove_trusted_keys ... ok
[INFO] [stdout] test auth::auth::tests::test_clear_operators ... ok
[INFO] [stdout] test auth::auth::tests::test_display_no_whitelist ... ok
[INFO] [stdout] test auth::auth::tests::test_display_save_keys_error ... ok
[INFO] [stdout] test auth::auth::tests::test_enable_disable_whitelist_mode ... ok
[INFO] [stdout] test auth::auth::tests::test_get_operators ... ok
[INFO] [stdout] test auth::auth::tests::test_get_trusted_keys ... ok
[INFO] [stdout] test auth::auth::tests::test_is_op ... ok
[INFO] [stdout] test auth::auth::tests::test_load_operators_no_oplist ... ok
[INFO] [stdout] test auth::auth::tests::test_save_operators_no_oplist ... ok
[INFO] [stdout] test auth::auth::tests::test_load_trusted_keys_no_whitelist ... ok
[INFO] [stdout] test auth::auth::tests::test_set_oplist ... ok
[INFO] [stdout] test auth::auth::tests::test_save_trusted_keys_no_whitelist ... ok
[INFO] [stdout] test auth::auth::tests::test_set_whitelist ... ok
[INFO] [stdout] test auth::ban::tests::test_attribute_valid_name_attribute ... ok
[INFO] [stdout] test auth::ban::tests::test_attribute_invalid_attribute_format ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_duration_invalid_duration_string ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_duration_empty_duration_string ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_duration_valid_duration_minutes ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_duration_valid_duration_hours ... ok
[INFO] [stdout] test auth::ban::tests::test_attribute_valid_ip_attribute ... ok
[INFO] [stdout] test auth::ban::tests::test_attribute_valid_fingerprint_attribute ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_query_single ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_query_unknown_attribute_format ... ok
[INFO] [stdout] test auth::ban::tests::test_attribute_unknown_attribute ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_query_invalid_duration_format ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_load_error_display_io_error ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_query_missing_attribute_duration_for_multiple ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_query_multiple ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_save_error_display_encode_error ... ok
[INFO] [stdout] test auth::auth::tests::test_clear_trusted_keys ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_load_error_display_no_keys_error ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_load_keys_io_error ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_save_error_display_io_error ... ok
[INFO] [stdout] test auth::auth::tests::test_load_operators_success ... ok
[INFO] [stdout] test auth::auth::tests::test_display_load_keys_error ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_save_error_display_no_keys_error ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_save_keys_encode_error ... ok
[INFO] [stdout] test auth::auth::tests::test_load_trusted_keys_success ... ok
[INFO] [stdout] test auth::auth::tests::test_is_trusted ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_duration_valid_duration_seconds ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_load_keys_success ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_save_keys_no_keys_error ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_save_keys_io_error ... ok
[INFO] [stdout] test auth::auth::tests::test_display_no_oplist ... ok
[INFO] [stdout] test auth::set::tests::test_insert_and_iterate_within_expiration ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_msg_command_without_args ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_save_keys_content_truncate ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_msg_command_without_body ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_mute_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_name_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_reply_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_theme_command_with_invalid_theme ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_timestamp_command_with_invalid_mode ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_unignore_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_whois_command_without_args ... ok
[INFO] [stdout] test auth::auth::tests::test_save_operators_success ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_load_keys_no_keys_error ... ok
[INFO] [stdout] test chat::command::command::should::parse_away_command_with_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_ban_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_back_command ... ok
[INFO] [stdout] test auth::pubkey_file_manager::tests::test_save_keys_success ... ok
[INFO] [stdout] test chat::command::command::should::parse_focus_command_with_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_banned_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_help_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_exit_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_focus_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_ignore_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_me_command_with_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_me_command_without_args ... ok
[INFO] [stdout] test auth::set::tests::test_insert_and_contains_within_expiration ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_away_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_motd_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_name_command ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_ban_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_kick_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_motd_command_with_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_mute_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_reply_command ... ok
[INFO] [stdout] test chat::command::command::should::fail_to_parse_invalid_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_oplist_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_quiet_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_ignore_command_with_args ... ok
[INFO] [stdout] test auth::auth::tests::test_save_trusted_keys_success ... ok
[INFO] [stdout] test chat::command::command::should::parse_timestamp_command_with_valid_mode ... ok
[INFO] [stdout] test chat::command::command::should::parse_unignore_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_uptime_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_kick_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_slap_command_without_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_msg_command_with_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_slap_command_with_args ... ok
[INFO] [stdout] test chat::command::command::should::parse_themes_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_whitelist_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_version_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_shrug_command ... ok
[INFO] [stdout] test chat::command::command::should::parse_whois_command ... ok
[INFO] [stdout] test chat::command::command_props::should::has_prefix_return_true_when_cmd_starts_with_prefix ... ok
[INFO] [stdout] test chat::command::command::should::parse_users_command ... ok
[INFO] [stdout] test chat::command::commands_list::should::filter_noop_commands ... ok
[INFO] [stdout] test chat::command::command_props::should::has_prefix_return_false_when_cmd_does_not_start_with_prefix ... ok
[INFO] [stdout] test chat::command::command_props::should::is_visible_return_true_when_help_is_not_empty ... ok
[INFO] [stdout] test chat::command::commands_list::should::filter_visible_commands ... ok
[INFO] [stdout] test chat::command::commands_list::should::format_commands_correctly ... ok
[INFO] [stdout] test chat::command::commands_list::should::filter_op_commands ... ok
[INFO] [stdout] test chat::command::commands_list::should::sort_by_command_length ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::fail_for_add_command_without_args ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::fail_for_remove_command_without_args ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::fail_for_load_command_with_invalid_mode ... ok
[INFO] [stdout] test chat::command::command_props::should::is_visible_return_false_when_help_is_empty ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::parse_add_command ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::parse_help_command ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::fail_for_unknown_command ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::parse_remove_command ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_load_mode_should::display_modes ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::parse_load_command_with_replace ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_load_mode_should::recognize_merge ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_load_mode_should::recognize_replace ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::parse_save_command ... ok
[INFO] [stdout] test chat::command::parse_error::should::display_argument_expected_error ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::parse_status_command ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_load_mode_should::return_list_of_modes ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_command_should::parse_load_command_with_merge ... ok
[INFO] [stdout] test chat::command::oplist_command::oplist_load_mode_should::return_none_for_unknown_prefix ... ok
[INFO] [stdout] test chat::command::parse_error::should::display_not_recognized_as_command_error ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_help_command ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_add_command ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_load_command_with_merge ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_load_command_with_replace ... ok
[INFO] [stdout] test chat::command::parse_error::should::display_other_error ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_on_off_commands ... ok
[INFO] [stdout] test chat::command::parse_error::should::display_unknown_command_error ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::fail_for_add_command_without_args ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::fail_for_load_command_with_invalid_mode ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_reverify_command ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_save_command ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_status_command ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_load_mode_should::display_modes ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_load_mode_should::return_list_of_modes ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_load_mode_should::recognize_merge ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_load_mode_should::return_none_for_unknown_prefix ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::parse_remove_command ... ok
[INFO] [stdout] test chat::message::author::should::convert_user_ref_to_author ... ok
[INFO] [stdout] test chat::message::message::should::format_command_message_correctly ... ok
[INFO] [stdout] test chat::message::message::should::format_error_message_correctly ... ok
[INFO] [stdout] test chat::message::message::should::format_announce_message_correctly ... ok
[INFO] [stdout] test chat::message::author::should::convert_user_to_author ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_load_mode_should::recognize_replace ... ok
[INFO] [stdout] test chat::message::message::should::format_emote_message_correctly ... ok
[INFO] [stdout] test chat::message::message::should::format_private_message_correctly ... ok
[INFO] [stdout] test chat::message::message::should::format_public_message_with_highlight_correctly ... ok
[INFO] [stdout] test chat::message::message::should::format_public_message_correctly ... ok
[INFO] [stdout] test chat::message::message::should::format_system_message_correctly ... ok
[INFO] [stdout] test chat::message::message_history::tests::test_iterate_empty ... ok
[INFO] [stdout] test chat::message::message_history::tests::test_iterate_messages ... ok
[INFO] [stdout] test chat::room::member::should::exit ... ok
[INFO] [stdout] test chat::room::member::should::create_room_member ... ok
[INFO] [stdout] test chat::ratelimit::should::check_rate_limit_not_exceeded ... ok
[INFO] [stdout] test chat::room::member::should::send_message ... ok
[INFO] [stdout] test chat::room::member::should::send_message_with_timestamp ... ok
[INFO] [stdout] test chat::message::message_history::tests::test_push_message_overflow ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::fail_for_remove_command_without_args ... ok
[INFO] [stdout] test auth::ban::tests::test_ban_query_missing_duration_for_single ... ok
[INFO] [stdout] test chat::command::command::should::parse_theme_command_with_valid_theme ... ok
[INFO] [stdout] test chat::command::whitelist_command::whitelist_command_should::fail_for_unknown_command ... ok
[INFO] [stdout] test chat::room::room::should::create_chat_room ... ok
[INFO] [stdout] test chat::message::message_history::tests::test_push_message ... ok
[INFO] [stdout] test chat::message::message_history::tests::test_new_message_history ... ok
[INFO] [stdout] test chat::room::room::should::add_and_remove_member ... ok
[INFO] [stdout] test chat::room::room::should::join_chat_room ... ok
[INFO] [stdout] test chat::room::room::should::find_name_by_prefix ... ok
[INFO] [stdout] test chat::room::room::should::leave_chat_room ... ok
[INFO] [stdout] test chat::room::room::should::not_send_announce_message_if_author_is_ignored_by_recipient ... ok
[INFO] [stdout] test chat::room::member::should::send_user_is_muted_message ... ok
[INFO] [stdout] test chat::room::member::should::update_last_sent_time ... ok
[INFO] [stdout] test chat::room::room::should::not_send_announce_message_if_author_is_muted ... ok
[INFO] [stdout] test chat::room::room::should::not_send_emote_message_if_author_is_ignored_by_recipient ... ok
[INFO] [stdout] test chat::room::room::should::not_send_emote_message_if_author_is_muted ... ok
[INFO] [stdout] test chat::ratelimit::should::check_rate_limit_exceeded ... ok
[INFO] [stdout] test chat::message::message::should::format_message_with_timestamp ... ok
[INFO] [stdout] test chat::room::room::should::send_announce_message ... ok
[INFO] [stdout] test chat::room::room::should::not_send_public_message_if_author_is_muted ... ok
[INFO] [stdout] test chat::room::room::should::send_system_messages ... ok
[INFO] [stdout] test chat::room::room::should::not_send_public_message_if_author_is_not_in_focus_by_recipient ... ok
[INFO] [stdout] test chat::room::room::should::not_send_private_message_from_muted_author ... ok
[INFO] [stdout] test chat::room::room::should::send_public_message ... ok
[INFO] [stdout] test chat::room::room::should::send_emote_message ... ok
[INFO] [stdout] test chat::room::room::should::not_send_public_message_if_author_is_ignored_by_recipient ... ok
[INFO] [stdout] test chat::user::display_name::should::compare_display_name_with_str ... ok
[INFO] [stdout] test chat::user::display_name::should::convert_str_to_display_name ... ok
[INFO] [stdout] test chat::user::display_name::should::convert_display_name_into_string ... ok
[INFO] [stdout] test chat::user::display_name::should::convert_display_name_to_str_ref ... ok
[INFO] [stdout] test chat::room::room::should::send_private_message ... ok
[INFO] [stdout] test chat::user::display_name::should::convert_string_to_display_name ... ok
[INFO] [stdout] test chat::user::display_name::should::dereference_display_name ... ok
[INFO] [stdout] test chat::user::user::should::display_format_away_user ... ok
[INFO] [stdout] test chat::user::user::should::focus_unfocus ... ok
[INFO] [stdout] test chat::user::display_name::should::display_display_name ... ok
[INFO] [stdout] test chat::user::user::should::set_reply_to ... ok
[INFO] [stdout] test chat::user::user::should::joined_duration ... ok
[INFO] [stdout] test chat::user::display_name::should::hash_display_name_correctly ... ok
[INFO] [stdout] test chat::user::user::should::set_theme ... ok
[INFO] [stdout] test chat::user::user::should::switch_mute_mode ... ok
[INFO] [stdout] test chat::user::user::should::display_format ... ok
[INFO] [stdout] test chat::user::user::should::unfocus_all ... ok
[INFO] [stdout] test chat::user::user::should::set_username ... ok
[INFO] [stdout] test chat::user::username::should::generate_unique_usernames ... ok
[INFO] [stdout] test pubkey::tests::test_pubkey_into_publickey ... ok
[INFO] [stdout] test chat::room::room::should::set_and_get_motd ... ok
[INFO] [stdout] test chat::user::user::should::return_active_status ... ok
[INFO] [stdout] test chat::room::room::should::try_get_name ... ok
[INFO] [stdout] test chat::user::username::should::generate_username_with_correct_format ... ok
[INFO] [stdout] test pubkey::tests::test_pubkey_display ... ok
[INFO] [stdout] test pubkey::tests::test_pubkey_from_publickey ... ok
[INFO] [stdout] test pubkey::tests::test_pubkey_fingerprint ... ok
[INFO] [stdout] test chat::user::user::should::ignore_unignore ... ok
[INFO] [stdout] test pubkey::tests::test_pubkey_hash ... ok
[INFO] [stdout] test server::env::tests::test_unknown_env_var_type ... ok
[INFO] [stdout] test server::env::tests::test_valid_theme_env_var ... ok
[INFO] [stdout] test server::env::tests::test_valid_timestamp_env_var ... ok
[INFO] [stdout] test server::session::handler::tests::test_auth_keyboard_interactive ... ok
[INFO] [stdout] test server::session::handler::tests::test_auth_publickey_offered_when_whitelist_disabled ... ok
[INFO] [stdout] test server::session::handler::tests::test_auth_password ... ok
[INFO] [stdout] test pubkey::tests::test_pubkey_partial_eq_publickey ... ok
[INFO] [stdout] test server::env::tests::test_malformed_env_var ... ok
[INFO] [stdout] test server::env::tests::test_empty_value ... ok
[INFO] [stdout] test server::session::handler::tests::test_auth_publickey_offered_when_whitelist_enabled ... ok
[INFO] [stdout] test server::session::handler::tests::test_auth_publickey ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_all_op_commands ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_oplist_subcommand ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_hidden_commands ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_all_noop_commands ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_theme_argument ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_oplist_add_command_arguments ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_whiltelist_load_command_arguments ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_username_argument ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_oplist_load_command_arguments ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_timestamp_argument ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::return_ok ... ok
[INFO] [stdout] test server::session_workflow::env_parse::should::add_theme_command_to_context ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_whitelist_add_command_arguments ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::not_complete_op_commands_when_user_is_not_operator ... ok
[INFO] [stdout] test server::session_workflow::autocomplete::should::complete_whitelist_subcommand ... ok
[INFO] [stdout] test server::session_workflow::env_parse::should::add_timestamp_command_to_context ... ok
[INFO] [stdout] test server::session_workflow::env_parse::should::return_next_handler ... ok
[INFO] [stdout] test server::session_workflow::env_parse::should::return_ok ... ok
[INFO] [stdout] test server::session_workflow::input_validator::should::return_next_handler ... ok
[INFO] [stdout] test server::session_workflow::input_validator::should::unset_next_handler_when_input_is_empty ... ok
[INFO] [stdout] test server::session_workflow::input_validator::should::unset_next_handler_when_input_is_too_long ... ok
[INFO] [stdout] test server::session_workflow::input_validator::should::unset_next_handler_when_input_is_whitespace_only ... ok
[INFO] [stdout] test terminal::input::should::clear_input ... ok
[INFO] [stdout] test server::session_workflow::input_validator::should::return_ok ... ok
[INFO] [stdout] test server::session_workflow::env_parse::should::not_add_command_to_context_when_env_is_not_recognized ... ok
[INFO] [stdout] test terminal::input::should::delete_emoji_after_cursor ... ok
[INFO] [stdout] test terminal::input::should::delete_emoji_before_cursor ... ok
[INFO] [stdout] test terminal::input::should::delete_next_character ... ok
[INFO] [stdout] test terminal::input::should::go_forward_one_character ... ok
[INFO] [stdout] test terminal::input::should::go_to_beginning ... ok
[INFO] [stdout] test terminal::input::should::go_to_end ... ok
[INFO] [stdout] test terminal::input::should::have_initial_state ... ok
[INFO] [stdout] test terminal::input::should::insert_text_before_cursor ... ok
[INFO] [stdout] test terminal::input::should::kill_line_to_end ... ok
[INFO] [stdout] test terminal::input::should::kill_prev_word ... ok
[INFO] [stdout] test terminal::input::should::move_cursor_to_given_position ... ok
[INFO] [stdout] test terminal::input::should::push_to_history ... ok
[INFO] [stdout] test terminal::input::should::set_history_next ... ok
[INFO] [stdout] test terminal::input::should::delete_prev_character ... ok
[INFO] [stdout] test terminal::input_history::should::handle_circular_buffer_behavior ... ok
[INFO] [stdout] test terminal::input::should::go_backwards_one_character ... ok
[INFO] [stdout] test server::session::handler::tests::test_pty_request ... ok
[INFO] [stdout] test terminal::input_history::should::navigate_to_next_items ... ok
[INFO] [stdout] test terminal::input_history::should::modify_item_at_current_navigation_index ... ok
[INFO] [stdout] test terminal::input_history::should::push_item_and_reset_navigation_index ... ok
[INFO] [stdout] test server::session_workflow::input_validator::should::add_command_to_context_when_input_is_valid ... ok
[INFO] [stdout] test terminal::keyboard_decoder::should::decode_mixed_input ... ok
[INFO] [stdout] test terminal::input_history::should::navigate_to_previous_items ... ok
[INFO] [stdout] test terminal::input::should::set_history_prev ... ok
[INFO] [stdout] test terminal::keyboard_decoder::should::decode_single_byte ... ok
[INFO] [stdout] test terminal::terminal::should::clear_input ... ok
[INFO] [stdout] test terminal::keyboard_decoder::should::decode_multiple_bytes ... ok
[INFO] [stdout] test server::session::handler::tests::test_channel_open_session ... ok
[INFO] [stdout] test terminal::terminal::should::close_handle_on_exit ... ok
[INFO] [stdout] test server::session::handler::tests::test_window_change_request ... ok
[INFO] [stdout] test terminal::unicode::tests::test_skip_ansi_escape_sequence ... ok
[INFO] [stdout] test utils::fs::tests::test_expand_tilde_no_tilde_in_path ... ok
[INFO] [stdout] test server::session::handler::tests::test_env_request ... ok
[INFO] [stdout] test terminal::terminal::should::print_message_and_then_input_line ... ok
[INFO] [stdout] test terminal::terminal::should::refresh_cursor_coordinates_on_resize ... ok
[INFO] [stdout] test terminal::unicode::tests::test_display_width ... ok
[INFO] [stdout] test utils::fs::tests::test_read_file_to_string_existing_file ... ok
[INFO] [stdout] test utils::sanitize::tests::test_name_empty_string ... ok
[INFO] [stdout] test utils::fs::tests::test_expand_tilde_with_home_dir ... ok
[INFO] [stdout] test utils::sanitize::tests::test_name_truncation ... ok
[INFO] [stdout] test utils::fs::tests::test_read_file_to_string_unreadable_file ... ok
[INFO] [stdout] test utils::sanitize::tests::test_name_whitespace_only ... ok
[INFO] [stdout] test utils::ssh::tests::test_split_ssh_key_invalid_format ... ok
[INFO] [stdout] test utils::ssh::tests::test_split_ssh_key_invalid_utf8 ... ok
[INFO] [stdout] test utils::fs::tests::test_read_file_lines_existing_file ... ok
[INFO] [stdout] test utils::ssh::tests::test_split_ssh_key_valid ... ok
[INFO] [stdout] test terminal::terminal::should::print_input_line ... ok
[INFO] [stdout] test utils::fs::tests::test_read_file_to_string_nonexistent_file ... ok
[INFO] [stdout] test utils::fs::tests::test_read_file_lines_nonexistent_file ... ok
[INFO] [stdout] test utils::sanitize::tests::test_name_sanitization ... ok
[INFO] [stdout] test server::session::handler::tests::test_data_request ... ok
[INFO] [stdout] test terminal::terminal::should::set_prompt ... ok
[INFO] [stdout] test server::server::should::check_if_server_runs_and_port_is_in_use ... ok
[INFO] [stdout] test terminal::unicode::tests::test_emojis_have_correct_width ... ok
[INFO] [stdout] test auth::set::tests::test_insert_and_contains_after_expiration ... ok
[INFO] [stdout] test auth::set::tests::test_iter_mixed_expiration_times ... ok
[INFO] [stdout] test auth::set::tests::test_insert_and_iterate_after_expiration ... ok
[INFO] [stdout] test auth::set::tests::test_insert_multiple_items_with_different_expiration_times ... ok
[INFO] [stdout] test chat::user::username::should::distribute_generated_usernames_uniformly ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 314 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "56dda4cbdc478e85aa301594be0edb485557185865daf99e1bf17b19eda11b9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "56dda4cbdc478e85aa301594be0edb485557185865daf99e1bf17b19eda11b9b", kill_on_drop: false }`
[INFO] [stdout] 56dda4cbdc478e85aa301594be0edb485557185865daf99e1bf17b19eda11b9b
