[INFO] fetching crate nexo-retailer-protocol 0.1.0...
[INFO] testing nexo-retailer-protocol-0.1.0 against beta-2026-03-05 for beta-1.95-1
[INFO] extracting crate nexo-retailer-protocol 0.1.0 into /workspace/builds/worker-4-tc2/source
[INFO] removed /workspace/builds/worker-4-tc2/source/.cargo/config.toml
[INFO] started tweaking crates.io crate nexo-retailer-protocol 0.1.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate nexo-retailer-protocol 0.1.0
[INFO] tweaked toml for crates.io crate nexo-retailer-protocol 0.1.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate nexo-retailer-protocol 0.1.0 on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate nexo-retailer-protocol 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8fc8f6a60a226ec7de4df4e8acfddf02a9d96a99ed6389f3d1d2688b6232efa3
[INFO] running `Command { std: "docker" "start" "-a" "8fc8f6a60a226ec7de4df4e8acfddf02a9d96a99ed6389f3d1d2688b6232efa3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8fc8f6a60a226ec7de4df4e8acfddf02a9d96a99ed6389f3d1d2688b6232efa3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8fc8f6a60a226ec7de4df4e8acfddf02a9d96a99ed6389f3d1d2688b6232efa3", kill_on_drop: false }`
[INFO] [stdout] 8fc8f6a60a226ec7de4df4e8acfddf02a9d96a99ed6389f3d1d2688b6232efa3
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5d61948e60d8075765929a7bce443f5aa6156344114a59e9c06a5968fb61abd4
[INFO] running `Command { std: "docker" "start" "-a" "5d61948e60d8075765929a7bce443f5aa6156344114a59e9c06a5968fb61abd4", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling prost-types v0.14.3
[INFO] [stderr]    Compiling prost-build v0.14.3
[INFO] [stderr]    Compiling nexo-retailer-protocol v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]   --> src/client/timeout.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 | use core::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]    |                                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::string::String`
[INFO] [stdout]   --> src/error/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use alloc::string::String;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time::Duration`
[INFO] [stdout]   --> src/transport/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | use core::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MESSAGE_ID_COUNTER` is never used
[INFO] [stdout]   --> src/client/timeout.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | static MESSAGE_ID_COUNTER: AtomicU64 = AtomicU64::new(0);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `complete` is never used
[INFO] [stdout]   --> src/client/std.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl PendingRequests {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn complete(&mut self, id: String, response: Vec<u8>) -> Result<(), Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_DEDUP_TTL` is never used
[INFO] [stdout]   --> src/server/connection.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DEFAULT_DEDUP_TTL: Duration = Duration::from_secs(5 * 60);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shutdown_flag` is never read
[INFO] [stdout]   --> src/server/std_impl.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct NexoServer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     shutdown_flag: Arc<tokio::sync::Notify>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 150 -     async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>;
[INFO] [stdout] 150 +     fn read(&mut self, buf: &mut [u8]) -> impl std::future::Future<Output = Result<usize, Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 168 -     async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>;
[INFO] [stdout] 168 +     fn write(&mut self, buf: &[u8]) -> impl std::future::Future<Output = Result<usize, Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 182 |     async fn connect(&mut self, addr: &str) -> Result<(), Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 182 -     async fn connect(&mut self, addr: &str) -> Result<(), Self::Error>;
[INFO] [stdout] 182 +     fn connect(&mut self, addr: &str) -> impl std::future::Future<Output = Result<(), Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "5d61948e60d8075765929a7bce443f5aa6156344114a59e9c06a5968fb61abd4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d61948e60d8075765929a7bce443f5aa6156344114a59e9c06a5968fb61abd4", kill_on_drop: false }`
[INFO] [stdout] 5d61948e60d8075765929a7bce443f5aa6156344114a59e9c06a5968fb61abd4
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 109e14a661ab015dd2c3f9447ca0e5158dbffcb33674b782e5c5a4aa98a9dafb
[INFO] running `Command { std: "docker" "start" "-a" "109e14a661ab015dd2c3f9447ca0e5158dbffcb33674b782e5c5a4aa98a9dafb", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling jiff v0.2.22
[INFO] [stderr]    Compiling prost-types v0.14.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling prost-build v0.14.3
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling nexo-retailer-protocol v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling proptest-derive v0.4.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling env_filter v1.0.0
[INFO] [stderr]    Compiling env_logger v0.11.9
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]   --> src/client/timeout.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 | use core::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]    |                                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::string::String`
[INFO] [stdout]   --> src/error/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use alloc::string::String;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time::Duration`
[INFO] [stdout]   --> src/transport/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | use core::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prost::alloc::string::ToString`
[INFO] [stdout]    --> src/client/builder.rs:706:13
[INFO] [stdout]     |
[INFO] [stdout] 706 |         use prost::alloc::string::ToString;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]   --> src/client/timeout.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 | use core::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]    |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::string::String`
[INFO] [stdout]   --> src/error/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use alloc::string::String;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time::Duration`
[INFO] [stdout]   --> src/transport/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | use core::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MESSAGE_ID_COUNTER` is never used
[INFO] [stdout]   --> src/client/timeout.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | static MESSAGE_ID_COUNTER: AtomicU64 = AtomicU64::new(0);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `complete` is never used
[INFO] [stdout]   --> src/client/std.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl PendingRequests {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn complete(&mut self, id: String, response: Vec<u8>) -> Result<(), Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_DEDUP_TTL` is never used
[INFO] [stdout]   --> src/server/connection.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DEFAULT_DEDUP_TTL: Duration = Duration::from_secs(5 * 60);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shutdown_flag` is never read
[INFO] [stdout]   --> src/server/std_impl.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct NexoServer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     shutdown_flag: Arc<tokio::sync::Notify>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 150 -     async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>;
[INFO] [stdout] 150 +     fn read(&mut self, buf: &mut [u8]) -> impl std::future::Future<Output = Result<usize, Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 168 -     async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>;
[INFO] [stdout] 168 +     fn write(&mut self, buf: &[u8]) -> impl std::future::Future<Output = Result<usize, Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 182 |     async fn connect(&mut self, addr: &str) -> Result<(), Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 182 -     async fn connect(&mut self, addr: &str) -> Result<(), Self::Error>;
[INFO] [stdout] 182 +     fn connect(&mut self, addr: &str) -> impl std::future::Future<Output = Result<(), Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/std.rs:808:13
[INFO] [stdout]     |
[INFO] [stdout] 808 |         let mut client = NexoClient::with_transport(mock);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/heartbeat.rs:573:13
[INFO] [stdout]     |
[INFO] [stdout] 573 |         let mut monitor = HeartbeatMonitor::new(config);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/heartbeat.rs:652:13
[INFO] [stdout]     |
[INFO] [stdout] 652 |         let mut monitor = HeartbeatMonitor::new(config);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let mut transport = MockTransport::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:379:13
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let mut framed = FramedTransport::new(transport);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut transport = MockTransport::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framed`
[INFO] [stdout]    --> src/transport/framing.rs:379:13
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let mut framed = FramedTransport::new(transport);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framed`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let mut transport = MockTransport::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:456:13
[INFO] [stdout]     |
[INFO] [stdout] 456 |         let mut transport = MockTransport::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:482:13
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let mut transport = MockTransport::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:508:13
[INFO] [stdout]     |
[INFO] [stdout] 508 |         let mut transport = MockTransport::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:534:13
[INFO] [stdout]     |
[INFO] [stdout] 534 |         let mut transport = MockTransport::new().with_partial_reads(2);
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:560:13
[INFO] [stdout]     |
[INFO] [stdout] 560 |         let mut transport = MockTransport::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transport/framing.rs:596:13
[INFO] [stdout]     |
[INFO] [stdout] 596 |         let mut transport = MockTransport::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MESSAGE_ID_COUNTER` is never used
[INFO] [stdout]   --> src/client/timeout.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | static MESSAGE_ID_COUNTER: AtomicU64 = AtomicU64::new(0);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_sent_data` is never used
[INFO] [stdout]    --> src/client/std.rs:759:12
[INFO] [stdout]     |
[INFO] [stdout] 746 |     impl MockFramedTransport {
[INFO] [stdout]     |     ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 759 |         fn get_sent_data(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_DEDUP_TTL` is never used
[INFO] [stdout]   --> src/server/connection.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DEFAULT_DEDUP_TTL: Duration = Duration::from_secs(5 * 60);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/server/handler.rs:321:16
[INFO] [stdout]     |
[INFO] [stdout] 309 |     impl MockRequestHandler {
[INFO] [stdout]     |     ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 321 |         pub fn reset(&self) {
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shutdown_flag` is never read
[INFO] [stdout]   --> src/server/std_impl.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct NexoServer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     shutdown_flag: Arc<tokio::sync::Notify>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_available_port` is never used
[INFO] [stdout]    --> src/transport/tokio.rs:515:8
[INFO] [stdout]     |
[INFO] [stdout] 515 |     fn get_available_port() -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 150 -     async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>;
[INFO] [stdout] 150 +     fn read(&mut self, buf: &mut [u8]) -> impl std::future::Future<Output = Result<usize, Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 168 -     async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>;
[INFO] [stdout] 168 +     fn write(&mut self, buf: &[u8]) -> impl std::future::Future<Output = Result<usize, Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/transport/mod.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 182 |     async fn connect(&mut self, addr: &str) -> Result<(), Self::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 182 -     async fn connect(&mut self, addr: &str) -> Result<(), Self::Error>;
[INFO] [stdout] 182 +     fn connect(&mut self, addr: &str) -> impl std::future::Future<Output = Result<(), Self::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time::Duration`
[INFO] [stdout]   --> examples/echo_server.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | use core::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> examples/echo_server.rs:208:5
[INFO] [stdout]     |
[INFO] [stdout] 162 | /     loop {
[INFO] [stdout] 163 | |         // Accept a new connection
[INFO] [stdout] 164 | |         match listener.accept().await {
[INFO] [stdout] 165 | |             Ok((tcp_stream, peer_addr)) => {
[INFO] [stdout] ...   |
[INFO] [stdout] 184 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 208 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]   --> tests/tokio_timeout_test.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_close_on_connect`, `set_reject_attempts`, and `connection_count` are never used
[INFO] [stdout]   --> tests/mock_server.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl MockNexoServer {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub async fn set_close_on_connect(&self, close: bool) {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub async fn set_reject_attempts(&self, count: u32) {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub async fn connection_count(&self) -> u32 {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nexo_retailer_protocol::Casp001Document`
[INFO] [stdout]    --> tests/cross_runtime_test.rs:476:9
[INFO] [stdout]     |
[INFO] [stdout] 476 |     use nexo_retailer_protocol::Casp001Document;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prost::Message`
[INFO] [stdout]    --> tests/cross_runtime_test.rs:477:9
[INFO] [stdout]     |
[INFO] [stdout] 477 |     use prost::Message;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TokioTransport`
[INFO] [stdout]    --> tests/cross_runtime_test.rs:555:45
[INFO] [stdout]     |
[INFO] [stdout] 555 |     use nexo_retailer_protocol::transport::{TokioTransport, TimeoutConfig};
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]   --> tests/cross_runtime_test.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |         async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error> {
[INFO] [stdout]    |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total` is assigned to, but never used
[INFO] [stdout]   --> tests/transport/connection_lifecycle.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let mut total = 0;
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_total` instead
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total` is never read
[INFO] [stdout]   --> tests/transport/connection_lifecycle.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |             total += n;
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Transport`
[INFO] [stdout]   --> tests/framing_test.rs:10:58
[INFO] [stdout]    |
[INFO] [stdout] 10 | use nexo_retailer_protocol::transport::{FramedTransport, Transport, TokioTransport};
[INFO] [stdout]    |                                                          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoded`
[INFO] [stdout]    --> tests/framing_test.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let encoded = normal_msg.encode_to_vec();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoded`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `oversized_len`
[INFO] [stdout]    --> tests/framing_test.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let oversized_len = 4 * 1024 * 1024 + 1; // 4MB + 1 byte
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_oversized_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> tests/framing_test.rs:541:13
[INFO] [stdout]     |
[INFO] [stdout] 541 |         for i in 0..5u8 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/unit/serialization_edge_cases.rs:308:1
[INFO] [stdout]     |
[INFO] [stdout] 308 | /// Low-case-count proptest block for oversized message tests
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/unit/serialization_edge_cases.rs:561:1
[INFO] [stdout]     |
[INFO] [stdout] 561 | /// Additional proptest block for advanced property tests with higher case counts
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/unit/serialization_edge_cases.rs:650:1
[INFO] [stdout]     |
[INFO] [stdout] 650 | /// High-case-count proptest block for extensive fuzzing
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/unit/serialization_edge_cases.rs:753:1
[INFO] [stdout]     |
[INFO] [stdout] 753 | /// Round-trip property tests with custom strategies for realistic field values
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Transport`
[INFO] [stdout]    --> tests/unit/serialization_edge_cases.rs:574:66
[INFO] [stdout]     |
[INFO] [stdout] 574 |         use nexo_retailer_protocol::transport::{FramedTransport, Transport, framing::MAX_FRAME_SIZE};
[INFO] [stdout]     |                                                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nexo_retailer_protocol::error::NexoError`
[INFO] [stdout]    --> tests/unit/serialization_edge_cases.rs:575:13
[INFO] [stdout]     |
[INFO] [stdout] 575 |         use nexo_retailer_protocol::error::NexoError;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/server_heartbeat_integration.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |     let mut monitor = HeartbeatMonitor::new(config);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicUsize`
[INFO] [stdout]   --> tests/server_integration.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prost::Message`
[INFO] [stdout]   --> tests/server_integration.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use prost::Message;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server`
[INFO] [stdout]    --> tests/server_integration.rs:387:10
[INFO] [stdout]     |
[INFO] [stdout] 387 |     let (server, addr) = start_test_server().await;
[INFO] [stdout]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total_sent` is assigned to, but never used
[INFO] [stdout]    --> tests/server_integration.rs:810:9
[INFO] [stdout]     |
[INFO] [stdout] 810 |     let mut total_sent = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_total_sent` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_sent` is never read
[INFO] [stdout]    --> tests/server_integration.rs:813:13
[INFO] [stdout]     |
[INFO] [stdout] 813 |             total_sent += count;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 54s
[INFO] running `Command { std: "docker" "inspect" "109e14a661ab015dd2c3f9447ca0e5158dbffcb33674b782e5c5a4aa98a9dafb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "109e14a661ab015dd2c3f9447ca0e5158dbffcb33674b782e5c5a4aa98a9dafb", kill_on_drop: false }`
[INFO] [stdout] 109e14a661ab015dd2c3f9447ca0e5158dbffcb33674b782e5c5a4aa98a9dafb
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 96cda0c24819b7df4a1d06da4dc1933ef670046714353478a60ea61e9297266c
[INFO] running `Command { std: "docker" "start" "-a" "96cda0c24819b7df4a1d06da4dc1933ef670046714353478a60ea61e9297266c", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Ordering`
[INFO] [stderr]   --> src/client/timeout.rs:23:37
[INFO] [stderr]    |
[INFO] [stderr] 23 | use core::sync::atomic::{AtomicU64, Ordering};
[INFO] [stderr]    |                                     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `alloc::string::String`
[INFO] [stderr]   --> src/error/mod.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | use alloc::string::String;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `core::time::Duration`
[INFO] [stderr]   --> src/transport/mod.rs:66:5
[INFO] [stderr]    |
[INFO] [stderr] 66 | use core::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `MESSAGE_ID_COUNTER` is never used
[INFO] [stderr]   --> src/client/timeout.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | static MESSAGE_ID_COUNTER: AtomicU64 = AtomicU64::new(0);
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `complete` is never used
[INFO] [stderr]   --> src/client/std.rs:69:8
[INFO] [stderr]    |
[INFO] [stderr] 36 | impl PendingRequests {
[INFO] [stderr]    | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 69 |     fn complete(&mut self, id: String, response: Vec<u8>) -> Result<(), Vec<u8>> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_DEDUP_TTL` is never used
[INFO] [stderr]   --> src/server/connection.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const DEFAULT_DEDUP_TTL: Duration = Duration::from_secs(5 * 60);
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `shutdown_flag` is never read
[INFO] [stderr]   --> src/server/std_impl.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct NexoServer {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 59 |     shutdown_flag: Arc<tokio::sync::Notify>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/transport/mod.rs:150:5
[INFO] [stderr]     |
[INFO] [stderr] 150 |     async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>;
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 150 -     async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>;
[INFO] [stderr] 150 +     fn read(&mut self, buf: &mut [u8]) -> impl std::future::Future<Output = Result<usize, Self::Error>> + Send;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/transport/mod.rs:168:5
[INFO] [stderr]     |
[INFO] [stderr] 168 |     async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>;
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 168 -     async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>;
[INFO] [stderr] 168 +     fn write(&mut self, buf: &[u8]) -> impl std::future::Future<Output = Result<usize, Self::Error>> + Send;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/transport/mod.rs:182:5
[INFO] [stderr]     |
[INFO] [stderr] 182 |     async fn connect(&mut self, addr: &str) -> Result<(), Self::Error>;
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 182 -     async fn connect(&mut self, addr: &str) -> Result<(), Self::Error>;
[INFO] [stderr] 182 +     fn connect(&mut self, addr: &str) -> impl std::future::Future<Output = Result<(), Self::Error>> + Send;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `nexo-retailer-protocol` (lib) generated 10 warnings (run `cargo fix --lib -p nexo-retailer-protocol` to apply 3 suggestions)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/server_heartbeat_integration.rs:171:9
[INFO] [stderr]     |
[INFO] [stderr] 171 |     let mut monitor = HeartbeatMonitor::new(config);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `total` is assigned to, but never used
[INFO] [stderr]   --> tests/transport/connection_lifecycle.rs:82:13
[INFO] [stderr]    |
[INFO] [stderr] 82 |         let mut total = 0;
[INFO] [stderr]    |             ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_total` instead
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `total` is never read
[INFO] [stderr]   --> tests/transport/connection_lifecycle.rs:87:13
[INFO] [stderr]    |
[INFO] [stderr] 87 |             total += n;
[INFO] [stderr]    |             ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AsyncReadExt`
[INFO] [stderr]   --> tests/tokio_timeout_test.rs:11:17
[INFO] [stderr]    |
[INFO] [stderr] 11 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stderr]    |                 ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Transport`
[INFO] [stderr]   --> tests/framing_test.rs:10:58
[INFO] [stderr]    |
[INFO] [stderr] 10 | use nexo_retailer_protocol::transport::{FramedTransport, Transport, TokioTransport};
[INFO] [stderr]    |                                                          ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `encoded`
[INFO] [stderr]    --> tests/framing_test.rs:131:9
[INFO] [stderr]     |
[INFO] [stderr] 131 |     let encoded = normal_msg.encode_to_vec();
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoded`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `oversized_len`
[INFO] [stderr]    --> tests/framing_test.rs:134:9
[INFO] [stderr]     |
[INFO] [stderr] 134 |     let oversized_len = 4 * 1024 * 1024 + 1; // 4MB + 1 byte
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_oversized_len`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> tests/framing_test.rs:541:13
[INFO] [stderr]     |
[INFO] [stderr] 541 |         for i in 0..5u8 {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: `nexo-retailer-protocol` (test "server_heartbeat_integration") generated 1 warning (run `cargo fix --test "server_heartbeat_integration" -p nexo-retailer-protocol` to apply 1 suggestion)
[INFO] [stderr] warning: `nexo-retailer-protocol` (test "transport_connection_lifecycle") generated 2 warnings
[INFO] [stderr] warning: `nexo-retailer-protocol` (test "tokio_timeout_test") generated 1 warning
[INFO] [stderr] warning: `nexo-retailer-protocol` (test "framing_test") generated 4 warnings (run `cargo fix --test "framing_test" -p nexo-retailer-protocol` to apply 3 suggestions)
[INFO] [stderr] warning: unused import: `nexo_retailer_protocol::Casp001Document`
[INFO] [stderr]    --> tests/cross_runtime_test.rs:476:9
[INFO] [stderr]     |
[INFO] [stderr] 476 |     use nexo_retailer_protocol::Casp001Document;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `prost::Message`
[INFO] [stderr]    --> tests/cross_runtime_test.rs:477:9
[INFO] [stderr]     |
[INFO] [stderr] 477 |     use prost::Message;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TokioTransport`
[INFO] [stderr]    --> tests/cross_runtime_test.rs:555:45
[INFO] [stderr]     |
[INFO] [stderr] 555 |     use nexo_retailer_protocol::transport::{TokioTransport, TimeoutConfig};
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `buf`
[INFO] [stderr]   --> tests/cross_runtime_test.rs:58:34
[INFO] [stderr]    |
[INFO] [stderr] 58 |         async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error> {
[INFO] [stderr]    |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_close_on_connect`, `set_reject_attempts`, and `connection_count` are never used
[INFO] [stderr]   --> tests/mock_server.rs:65:18
[INFO] [stderr]    |
[INFO] [stderr] 37 | impl MockNexoServer {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub async fn set_close_on_connect(&self, close: bool) {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 81 |     pub async fn set_reject_attempts(&self, count: u32) {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 87 |     pub async fn connection_count(&self) -> u32 {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AtomicUsize`
[INFO] [stderr]   --> tests/server_integration.rs:23:37
[INFO] [stderr]    |
[INFO] [stderr] 23 | use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
[INFO] [stderr]    |                                     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `prost::Message`
[INFO] [stderr]   --> tests/server_integration.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | use prost::Message;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `server`
[INFO] [stderr]    --> tests/server_integration.rs:387:10
[INFO] [stderr]     |
[INFO] [stderr] 387 |     let (server, addr) = start_test_server().await;
[INFO] [stderr]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `total_sent` is assigned to, but never used
[INFO] [stderr]    --> tests/server_integration.rs:810:9
[INFO] [stderr]     |
[INFO] [stderr] 810 |     let mut total_sent = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_total_sent` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `total_sent` is never read
[INFO] [stderr]    --> tests/server_integration.rs:813:13
[INFO] [stderr]     |
[INFO] [stderr] 813 |             total_sent += count;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `core::time::Duration`
[INFO] [stderr]   --> examples/echo_server.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 42 | use core::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> examples/echo_server.rs:208:5
[INFO] [stderr]     |
[INFO] [stderr] 162 | /     loop {
[INFO] [stderr] 163 | |         // Accept a new connection
[INFO] [stderr] 164 | |         match listener.accept().await {
[INFO] [stderr] 165 | |             Ok((tcp_stream, peer_addr)) => {
[INFO] [stderr] ...   |
[INFO] [stderr] 184 | |     }
[INFO] [stderr]     | |_____- any code following this expression is unreachable
[INFO] [stderr] ...
[INFO] [stderr] 208 |       Ok(())
[INFO] [stderr]     |       ^^^^^^ unreachable expression
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `nexo-retailer-protocol` (test "cross_runtime_test") generated 4 warnings (run `cargo fix --test "cross_runtime_test" -p nexo-retailer-protocol` to apply 4 suggestions)
[INFO] [stderr] warning: `nexo-retailer-protocol` (test "client_integration") generated 1 warning
[INFO] [stderr] warning: `nexo-retailer-protocol` (test "server_integration") generated 5 warnings (run `cargo fix --test "server_integration" -p nexo-retailer-protocol` to apply 3 suggestions)
[INFO] [stderr] warning: `nexo-retailer-protocol` (example "echo_server") generated 2 warnings (run `cargo fix --example "echo_server" -p nexo-retailer-protocol` to apply 1 suggestion)
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/unit/serialization_edge_cases.rs:308:1
[INFO] [stderr]     |
[INFO] [stderr] 308 | /// Low-case-count proptest block for oversized message tests
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]     |
[INFO] [stderr]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/unit/serialization_edge_cases.rs:561:1
[INFO] [stderr]     |
[INFO] [stderr] 561 | /// Additional proptest block for advanced property tests with higher case counts
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]     |
[INFO] [stderr]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/unit/serialization_edge_cases.rs:650:1
[INFO] [stderr]     |
[INFO] [stderr] 650 | /// High-case-count proptest block for extensive fuzzing
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]     |
[INFO] [stderr]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/unit/serialization_edge_cases.rs:753:1
[INFO] [stderr]     |
[INFO] [stderr] 753 | /// Round-trip property tests with custom strategies for realistic field values
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stderr]     |
[INFO] [stderr]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Transport`
[INFO] [stderr]    --> tests/unit/serialization_edge_cases.rs:574:66
[INFO] [stderr]     |
[INFO] [stderr] 574 |         use nexo_retailer_protocol::transport::{FramedTransport, Transport, framing::MAX_FRAME_SIZE};
[INFO] [stderr]     |                                                                  ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nexo_retailer_protocol::error::NexoError`
[INFO] [stderr]    --> tests/unit/serialization_edge_cases.rs:575:13
[INFO] [stderr]     |
[INFO] [stderr] 575 |         use nexo_retailer_protocol::error::NexoError;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `prost::alloc::string::ToString`
[INFO] [stderr]    --> src/client/builder.rs:706:13
[INFO] [stderr]     |
[INFO] [stderr] 706 |         use prost::alloc::string::ToString;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Ordering`
[INFO] [stderr]   --> src/client/timeout.rs:23:37
[INFO] [stderr]    |
[INFO] [stderr] 23 | use core::sync::atomic::{AtomicU64, Ordering};
[INFO] [stderr]    |                                     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/client/std.rs:808:13
[INFO] [stderr]     |
[INFO] [stderr] 808 |         let mut client = NexoClient::with_transport(mock);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/server/heartbeat.rs:573:13
[INFO] [stderr]     |
[INFO] [stderr] 573 |         let mut monitor = HeartbeatMonitor::new(config);
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/server/heartbeat.rs:652:13
[INFO] [stderr]     |
[INFO] [stderr] 652 |         let mut monitor = HeartbeatMonitor::new(config);
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:378:13
[INFO] [stderr]     |
[INFO] [stderr] 378 |         let mut transport = MockTransport::new();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:379:13
[INFO] [stderr]     |
[INFO] [stderr] 379 |         let mut framed = FramedTransport::new(transport);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:381:13
[INFO] [stderr]     |
[INFO] [stderr] 381 |         let mut transport = MockTransport::new();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `framed`
[INFO] [stderr]    --> src/transport/framing.rs:379:13
[INFO] [stderr]     |
[INFO] [stderr] 379 |         let mut framed = FramedTransport::new(transport);
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framed`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:426:13
[INFO] [stderr]     |
[INFO] [stderr] 426 |         let mut transport = MockTransport::new();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:456:13
[INFO] [stderr]     |
[INFO] [stderr] 456 |         let mut transport = MockTransport::new();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:482:13
[INFO] [stderr]     |
[INFO] [stderr] 482 |         let mut transport = MockTransport::new();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:508:13
[INFO] [stderr]     |
[INFO] [stderr] 508 |         let mut transport = MockTransport::new();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:534:13
[INFO] [stderr]     |
[INFO] [stderr] 534 |         let mut transport = MockTransport::new().with_partial_reads(2);
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:560:13
[INFO] [stderr]     |
[INFO] [stderr] 560 |         let mut transport = MockTransport::new();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/transport/framing.rs:596:13
[INFO] [stderr]     |
[INFO] [stderr] 596 |         let mut transport = MockTransport::new();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_sent_data` is never used
[INFO] [stderr]    --> src/client/std.rs:759:12
[INFO] [stderr]     |
[INFO] [stderr] 746 |     impl MockFramedTransport {
[INFO] [stderr]     |     ------------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 759 |         fn get_sent_data(&self) -> &[u8] {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `reset` is never used
[INFO] [stderr]    --> src/server/handler.rs:321:16
[INFO] [stderr]     |
[INFO] [stderr] 309 |     impl MockRequestHandler {
[INFO] [stderr]     |     ----------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 321 |         pub fn reset(&self) {
[INFO] [stderr]     |                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_available_port` is never used
[INFO] [stderr]    --> src/transport/tokio.rs:515:8
[INFO] [stderr]     |
[INFO] [stderr] 515 |     fn get_available_port() -> u16 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `nexo-retailer-protocol` (test "serialization_edge_cases") generated 6 warnings (run `cargo fix --test "serialization_edge_cases" -p nexo-retailer-protocol` to apply 2 suggestions)
[INFO] [stderr] warning: `nexo-retailer-protocol` (lib test) generated 27 warnings (8 duplicates) (run `cargo fix --lib -p nexo-retailer-protocol --tests` to apply 16 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nexo_retailer_protocol-c9304064a7c01ed6)
[INFO] [stdout] 
[INFO] [stdout] running 252 tests
[INFO] [stdout] test client::builder::tests::test_header_builder_missing_message_function ... ok
[INFO] [stdout] test client::builder::tests::test_header_builder_missing_protocol_version ... ok
[INFO] [stdout] test client::builder::tests::test_header_builder_fluent_api ... ok
[INFO] [stdout] test client::builder::tests::test_header_builder_valid_construction ... ok
[INFO] [stdout] test client::builder::tests::test_message_builder_trait_exists ... ok
[INFO] [stdout] test client::builder::tests::test_payment_builder_fluent_api ... ok
[INFO] [stdout] test client::builder::tests::test_header_builder_missing_transaction_id ... ok
[INFO] [stdout] test client::builder::tests::test_payment_builder_missing_transaction_id ... ok
[INFO] [stdout] test client::builder::tests::test_payment_builder_valid_construction ... ok
[INFO] [stdout] test client::builder::tests::test_sale_to_poi_service_request_builder_missing_header ... ok
[INFO] [stdout] test client::builder::tests::test_sale_to_poi_service_response_builder_missing_header ... ok
[INFO] [stdout] test client::builder::tests::test_sale_to_poi_service_response_builder_valid_construction ... ok
[INFO] [stdout] test client::reconnect::tests::test_backoff_reset ... ok
[INFO] [stdout] test client::reconnect::tests::test_backoff_calculation ... ok
[INFO] [stdout] test client::reconnect::tests::test_reconnect_config_builder ... ok
[INFO] [stdout] test client::reconnect::tests::test_backoff_max_delay_cap ... ok
[INFO] [stdout] test client::reconnect::tests::test_backoff_should_continue ... ok
[INFO] [stdout] test client::std::tests::test_late_response_rejection ... ok
[INFO] [stdout] test client::reconnect::tests::test_reconnect_config_defaults ... ok
[INFO] [stdout] test client::reconnect::tests::test_jitter_range ... ok
[INFO] [stdout] test client::std::tests::test_new_client_is_disconnected ... ok
[INFO] [stdout] test client::std::tests::test_pending_requests_cleanup ... ok
[INFO] [stdout] test client::std::tests::test_pending_requests_complete_unknown_id ... ok
[INFO] [stdout] test client::std::tests::test_pending_requests_cleanup_then_complete ... ok
[INFO] [stdout] test client::std::tests::test_connection_state_transitions ... ok
[INFO] [stdout] test client::std::tests::test_pending_requests_register_and_complete ... ok
[INFO] [stdout] test client::std::tests::test_receive_response_when_not_connected ... ok
[INFO] [stdout] test client::std::tests::test_pending_requests_register_replaces_existing ... ok
[INFO] [stdout] test client::std::tests::test_reconnect_without_config ... ok
[INFO] [stdout] test client::std::tests::test_send_and_receive_combined ... ok
[INFO] [stdout] test client::std::tests::test_send_request_with_connected_transport ... ok
[INFO] [stdout] test client::std::tests::test_reconnect_with_config ... ok
[INFO] [stdout] test client::std::tests::test_send_and_receive_with_mock_transport ... ok
[INFO] [stdout] test client::std::tests::test_default_client_is_disconnected ... ok
[INFO] [stdout] test client::std::tests::test_send_request_when_not_connected ... ok
[INFO] [stdout] test client::std::tests::test_send_with_timeout_when_not_connected ... ok
[INFO] [stdout] test client::builder::tests::test_sale_to_poi_service_request_builder_valid_construction ... ok
[INFO] [stdout] test client::timeout::tests::test_generate_message_id_unique ... ok
[INFO] [stdout] test client::timeout::tests::test_timeout_config_default ... ok
[INFO] [stdout] test codec::limits::tests::test_max_message_size_in_bytes ... ok
[INFO] [stdout] test codec::limits::tests::test_security_trailer_limit_is_64kb ... ok
[INFO] [stdout] test client::timeout::tests::test_timeout_config_custom ... ok
[INFO] [stdout] test codec::limits::tests::test_max_message_size_is_4mb ... ok
[INFO] [stdout] test client::timeout::tests::test_generate_message_id_format ... ok
[INFO] [stdout] test codec::tests::test_convenience_decode_function ... ok
[INFO] [stdout] test codec::tests::test_codec_trait_can_be_mocked ... ok
[INFO] [stdout] test client::timeout::tests::test_timeout_config_default_trait ... ok
[INFO] [stdout] test codec::tests::test_convenience_encode_function ... ok
[INFO] [stdout] test codec::limits::tests::test_batch_limit_matches_default ... ok
[INFO] [stdout] test codec::tests::test_decode_valid_bytes ... ok
[INFO] [stdout] test codec::tests::test_encode_normal_message ... ok
[INFO] [stdout] test codec::tests::test_decode_malformed_protobuf ... ok
[INFO] [stdout] test codec::tests::test_round_trip_with_convenience_functions ... ok
[INFO] [stdout] test error::codes::tests::test_error_code_ranges ... ok
[INFO] [stdout] test codec::tests::test_encode_oversized_message ... ok
[INFO] [stdout] test error::tests::test_error_display ... ok
[INFO] [stdout] test error::tests::test_error_source_returns_none ... ok
[INFO] [stdout] test error::tests::test_from_prost_errors_compile ... ok
[INFO] [stdout] test error::tests::test_validation_error_display ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_dedup_cache_insertion_and_retrieval ... ok
[INFO] [stdout] test codec::tests::test_round_trip_encoding ... ok
[INFO] [stdout] test codec::tests::test_decode_oversized_buffer ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_clear_heartbeat_config ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_different_message_ids_accepted ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_field_accessors ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_heartbeat_config_initially_none ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_increment_message_count ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_new ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_new_has_empty_dedup_cache ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_set_heartbeat_config ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_new_has_recent_activity ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_with_custom_ttl ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_with_ttl_creates_valid_state ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_check_and_insert_first_occurrence ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_check_and_insert_duplicate_rejected ... ok
[INFO] [stdout] test error::codes::tests::test_error_code_values ... ok
[INFO] [stdout] test codec::limits::tests::test_card_data_limit_is_16kb ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_contains ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_default ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_clear ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_empty_string_id ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_long_message_id ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_different_ids_accepted ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_multiple_inserts_same_id ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_new ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatch_document_with_decoded_struct ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatch_document_no_double_encoding ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_empty_response_for_none_ack ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_encode_decode_round_trip ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_malformed_protobuf ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_new ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_routes_casp001_to_payment_handler ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_routes_casp002_to_payment_response_handler ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_routes_casp003_to_admin_handler ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_routes_casp004_to_admin_response_handler ... ok
[INFO] [stdout] test server::handler::tests::test_default_handler_returns_unsupported_error ... ok
[INFO] [stdout] test server::dispatcher::tests::test_dispatcher_unsupported_message_type ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_activity_increases_over_time ... ok
[INFO] [stdout] test server::handler::tests::test_mock_handler_payment_request ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_build_timeout_equals_interval ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_update_activity_resets_timestamp ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_build_valid ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_builder_chain ... ok
[INFO] [stdout] test server::handler::tests::test_handler_is_send_sync ... ok
[INFO] [stdout] test server::handler::tests::test_mock_handler_admin_request ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_duration_increases ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_new_has_defaults ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_with_enabled ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_with_timeout ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_default ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_build_timeout_less_than_interval ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_config_with_interval ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_config_accessor ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_disabled_never_times_out ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_disabled_never_sends_heartbeat ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_new ... ok
[INFO] [stdout] test server::connection::tests::test_connection_state_expired_message_ids_accepted ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_lazy_cleanup_on_insert ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_should_send_heartbeat_initially_false ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_check_timeout_expired ... ok
[INFO] [stdout] test server::dedup::tests::test_dedup_cache_cleanup_expired ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_time_since_activity_increases ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_bind_invalid_address ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_update_activity ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_connection_count_starts_at_zero ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_bind_address_in_use ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_get_connections_starts_empty ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_is_connected_returns_false_for_unknown ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_handle_connection_echo ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_check_timeout_reset_on_activity ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_accept_single_connection ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_bind_localhost ... ok
[INFO] [stdout] test tests::test_validation_integration_alloc_feature ... ok
[INFO] [stdout] test tests::test_validation_integration_header_long_field ... ok
[INFO] [stdout] test tests::test_validation_integration_header_validation ... ok
[INFO] [stdout] test server::std_impl::tests::test_server_local_addr ... ok
[INFO] [stdout] test tests::test_validation_integration_invalid_currency ... ok
[INFO] [stdout] test tests::test_validation_integration_invalid_nanos ... ok
[INFO] [stdout] test tests::test_client_exported_at_crate_root ... ok
[INFO] [stdout] test tests::test_library_builds ... ok
[INFO] [stdout] test tests::test_validation_integration_standalone_validators ... ok
[INFO] [stdout] test tests::test_validation_integration_valid_message ... ok
[INFO] [stdout] test transport::framing::tests::test_empty_message ... ok
[INFO] [stdout] test transport::framing::tests::test_encode_decode_normal_message ... ok
[INFO] [stdout] test transport::framing::tests::test_framing_module_exists ... ok
[INFO] [stdout] test transport::framing::tests::test_length_prefix_big_endian ... ok
[INFO] [stdout] test transport::framing::tests::test_multiple_messages_sequential ... ok
[INFO] [stdout] test transport::framing::tests::test_oversized_length_prefix_rejected ... ok
[INFO] [stdout] test transport::framing::tests::test_partial_read_handling ... ok
[INFO] [stdout] test transport::framing::tests::test_oversized_message_rejected ... ok
[INFO] [stdout] test transport::tests::test_transport_trait_defined ... ok
[INFO] [stdout] test transport::framing::tests::test_zero_length_prefix ... ok
[INFO] [stdout] test transport::tokio::tests::test_tokio_transport_connect_to_echo_server ... ok
[INFO] [stdout] test transport::tokio::tests::test_tokio_transport_is_connected ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_boundary_at_max ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_boundary_one_over_max ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_empty ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_error_message_includes_field_name ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_large ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_with_single_item ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_with_vec_i64 ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_with_vec_protobuf_messages ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_with_vec_string ... ok
[INFO] [stdout] test validate::constraints::alloc_tests::test_validate_repeated_field_with_zero_max ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_active_currency_and_amount ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_active_currency_and_amount_invalid ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_card_data8 ... ok
[INFO] [stdout] test tests::test_builders_exported_at_crate_root ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_card_data8_invalid_pan_length ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_enum_value_boundary_cases ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_enum_value_error_message_includes_field_name ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_enum_value_invalid ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_enum_value_valid ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_enum_value_with_u32 ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_header4 ... ok
[INFO] [stdout] test transport::tokio::tests::test_tokio_transport_write_timeout ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_header4_empty ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_header4_with_long_field ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_identification1 ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_nested_structures ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_non_negative_i32_error_message_includes_field_name ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_non_negative_i32_boundary_cases ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_option_validate_trait ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_non_negative_i32_invalid ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_non_negative_i32_valid ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_positive_i64_invalid ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_positive_i64_boundary_cases ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_positive_i64_error_message_includes_field_name ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_positive_i64_valid ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_required_missing ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_required_error_message_includes_field_name ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_required_present ... ok
[INFO] [stdout] test validate::constraints::tests::test_validate_required_with_int ... ok
[INFO] [stdout] test validate::currency::tests::test_i32_max_and_min ... ok
[INFO] [stdout] test validate::currency::tests::test_invalid_currency_code_in_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_invalid_format_numbers ... ok
[INFO] [stdout] test validate::currency::tests::test_invalid_format_lowercase ... ok
[INFO] [stdout] test validate::currency::tests::test_invalid_format_special_chars ... ok
[INFO] [stdout] test validate::currency::tests::test_invalid_length_too_long ... ok
[INFO] [stdout] test validate::currency::tests::test_nanos_boundary_999999999 ... ok
[INFO] [stdout] test validate::currency::tests::test_invalid_length_too_short ... ok
[INFO] [stdout] test validate::currency::tests::test_nanos_out_of_range_positive ... ok
[INFO] [stdout] test validate::currency::tests::test_nanos_boundary_negative_999999999 ... ok
[INFO] [stdout] test validate::currency::tests::test_nanos_out_of_range_negative ... ok
[INFO] [stdout] test validate::currency::tests::test_realistic_cad_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_realistic_eur_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_realistic_fractional_cents ... ok
[INFO] [stdout] test validate::currency::tests::test_realistic_gbp_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_realistic_jpy_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_realistic_large_transaction ... ok
[INFO] [stdout] test validate::currency::tests::test_realistic_usd_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_sign_mismatch_positive_units_negative_nanos ... ok
[INFO] [stdout] test validate::currency::tests::test_realistic_negative_refund ... ok
[INFO] [stdout] test validate::currency::tests::test_valid_currency_codes ... ok
[INFO] [stdout] test validate::currency::tests::test_valid_monetary_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_valid_nanos_at_boundaries ... ok
[INFO] [stdout] test validate::currency::tests::test_valid_negative_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_sign_mismatch_negative_units_positive_nanos ... ok
[INFO] [stdout] test validate::currency::tests::test_valid_zero_amount ... ok
[INFO] [stdout] test validate::currency::tests::test_zero_units_with_nonzero_nanos ... ok
[INFO] [stdout] test validate::strings::tests::test_empty_string_always_valid ... ok
[INFO] [stdout] test validate::strings::tests::test_string_with_newlines ... ok
[INFO] [stdout] test validate::strings::tests::test_utf8_mixed_script ... ok
[INFO] [stdout] test validate::strings::tests::test_utf8_emoji ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max20000_text_exactly_at_boundary ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max20000_text_invalid ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max20000_text_large_string ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max20000_text_valid ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max256_text_exactly_at_boundary ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max256_text_invalid ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max256_text_multibyte ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max256_text_one_over_boundary ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max20000_text_one_over_boundary ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max256_text_valid ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max70_text_exactly_at_boundary ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max70_text_id_fields ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max70_text_invalid ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max70_text_one_over_boundary ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max70_text_valid ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max_text_at_limit ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max_text_custom_limits ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max_text_error_message_content ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max_text_multibyte_utf8 ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max_text_over_limit ... ok
[INFO] [stdout] test validate::strings::tests::test_validate_max_text_under_limit ... ok
[INFO] [stdout] test validate::strings::tests::test_zero_max_length ... ok
[INFO] [stdout] test transport::tokio::tests::test_tokio_transport_partial_read ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_mark_heartbeat_sent ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_should_send_heartbeat_after_interval ... ok
[INFO] [stdout] test transport::tokio::tests::test_tokio_transport_read_timeout ... ok
[INFO] [stdout] test server::heartbeat::tests::test_heartbeat_monitor_check_timeout_not_expired ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 252 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/client_integration.rs (/opt/rustwide/target/debug/deps/client_integration-63532012f057b5ad)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test test_builder_rejects_invalid_message ... ok
[INFO] [stdout] test test_client_connection_failure_handling ... ok
[INFO] [stdout] test test_client_message_id_generation ... ok
[INFO] [stdout] test test_client_reconnection_backoff ... ok
[INFO] [stdout] test test_client_connects_to_server ... ok
[INFO] [stdout] test test_client_sends_built_message ... ok
[INFO] [stdout] test mock_server_starts ... ok
[INFO] [stdout] test test_client_receives_response ... ok
[INFO] [stdout] test test_client_late_response_rejected ... ok
[INFO] [stdout] test test_client_sends_payment_request ... ok
[INFO] [stdout] test test_client_concurrent_requests ... ok
[INFO] [stdout] test test_client_all_17_casp_types ... ok
[INFO] [stdout] test test_client_times_out_on_slow_response ... ok
[INFO] [stdout] test test_client_reconnects_on_connection_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.42s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/client_server_e2e_integration.rs (/opt/rustwide/target/debug/deps/client_server_e2e_integration-d238c4c50665e321)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_e2e_malformed_message_handling ... ok
[INFO] [stdout] test test_e2e_heartbeat_with_framed_transport ... ok
[INFO] [stdout] test test_e2e_framed_transport_integration ... ok
[INFO] [stdout] test test_e2e_client_server_payment_request ... ok
[INFO] [stdout] test test_e2e_oversized_message_rejection ... ok
[INFO] [stdout] test test_e2e_all_17_casp_message_types ... ok
[INFO] [stdout] test test_e2e_concurrent_clients ... ok
[INFO] [stdout] test test_e2e_length_prefix_framing_on_wire ... ok
[INFO] [stdout] test test_e2e_raw_framed_transport_communication ... ok
[INFO] [stdout] test test_e2e_reconciliation_flow ... ok
[INFO] [stdout] test test_e2e_reversal_transaction_flow ... ok
[INFO] [stdout] test test_e2e_server_to_client_response_flow ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_e2e_server_to_client_response_flow stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_e2e_server_to_client_response_flow' (296) panicked at tests/client_server_e2e_integration.rs:229:14:
[INFO] [stdout] Request 1 receive should succeed: Connection { details: "Connection reset by peer (os error 104)" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b6d66d64fea - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b6d66d64fea - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b6d66d64fea - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b6d66d64fea - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b6d66d79cea - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b6d66d79cea - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x5b6d66d69d32 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5b6d66d69d32 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5b6d66d435ff - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b6d66d435ff - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b6d66d5d069 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b6d66b7102c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x5b6d66b7102c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5b6d66d5d2e2 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x5b6d66d5d2e2 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b6d66d436b8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b6d66d3afa9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b6d66d4458d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b6d66d7a5cc - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b6d66d7a342 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5b6d66ad7b5e - core::result::Result<T,E>::expect::h732c0ad15772290f
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x5b6d66ace63e - client_server_e2e_integration::test_e2e_server_to_client_response_flow::{{closure}}::h5f0fc78c55907b66
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/client_server_e2e_integration.rs:229:14
[INFO] [stdout]   22:     0x5b6d66ae7202 - <core::pin::Pin<P> as core::future::future::Future>::poll::hb72cfa8009d159cd
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   23:     0x5b6d66ae72bd - <core::pin::Pin<P> as core::future::future::Future>::poll::hef6bc46dbfc96f62
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   24:     0x5b6d66b1a41d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h70e8ad4cdb90f3fa
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:753:70
[INFO] [stdout]   25:     0x5b6d66b1a35b - tokio::task::coop::with_budget::h1b908eface76fae7
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   26:     0x5b6d66b1a35b - tokio::task::coop::budget::h37c69406f369d769
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   27:     0x5b6d66b1a35b - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::hc6fd264c139e9266
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:753:25
[INFO] [stdout]   28:     0x5b6d66b171b0 - tokio::runtime::scheduler::current_thread::Context::enter::h4ba06247d3c020bb
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:442:19
[INFO] [stdout]   29:     0x5b6d66b1988d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::heef152c005da5ddc
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:752:44
[INFO] [stdout]   30:     0x5b6d66b18a64 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::h24b82a99db59a477
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:840:68
[INFO] [stdout]   31:     0x5b6d66adbeeb - tokio::runtime::context::scoped::Scoped<T>::set::hfce6675e6ab72521
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   32:     0x5b6d66afeeb9 - tokio::runtime::context::set_scheduler::{{closure}}::h1fa6038611f16491
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:38
[INFO] [stdout]   33:     0x5b6d66b00a32 - std::thread::local::LocalKey<T>::try_with::h17c813147cda5c1b
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:513:12
[INFO] [stdout]   34:     0x5b6d66b0045e - std::thread::local::LocalKey<T>::with::haaa1a27322006653
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:477:20
[INFO] [stdout]   35:     0x5b6d66afee2d - tokio::runtime::context::set_scheduler::h3d57f5d314d90fbb
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:17
[INFO] [stdout]   36:     0x5b6d66b18810 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::ha7935b2b4c764043
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:840:27
[INFO] [stdout]   37:     0x5b6d66b18b46 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h652345a9ce9bec1b
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:740:24
[INFO] [stdout]   38:     0x5b6d66b12a30 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h8514331c1cb237ba
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   39:     0x5b6d66b089b3 - tokio::runtime::context::runtime::enter_runtime::h8030bb4602f8dd37
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   40:     0x5b6d66b123f1 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::h4cdec1aa1ea052cf
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   41:     0x5b6d66b22904 - tokio::runtime::runtime::Runtime::block_on_inner::hb3242e05777416fc
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/runtime.rs:368:52
[INFO] [stdout]   42:     0x5b6d66b22acf - tokio::runtime::runtime::Runtime::block_on::ha74df4ef08f6efa4
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/runtime.rs:342:18
[INFO] [stdout]   43:     0x5b6d66acd953 - client_server_e2e_integration::test_e2e_server_to_client_response_flow::hbffe2a7372a1c643
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/client_server_e2e_integration.rs:238:66
[INFO] [stdout]   44:     0x5b6d66acd9e7 - client_server_e2e_integration::test_e2e_server_to_client_response_flow::{{closure}}::h34fcfa0cc88abecd
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/client_server_e2e_integration.rs:187:51
[INFO] [stdout]   45:     0x5b6d66aa2366 - core::ops::function::FnOnce::call_once::h5d5f41afcb264ff4
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   46:     0x5b6d66b6510b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   47:     0x5b6d66b6510b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   48:     0x5b6d66b71afb - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   49:     0x5b6d66b71afb - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   50:     0x5b6d66b71afb - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   51:     0x5b6d66b71afb - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   52:     0x5b6d66b71afb - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   53:     0x5b6d66b71afb - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   54:     0x5b6d66b71afb - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   55:     0x5b6d66b6d214 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   56:     0x5b6d66b6d214 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   57:     0x5b6d66b74702 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   58:     0x5b6d66b74702 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   59:     0x5b6d66b74702 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   60:     0x5b6d66b74702 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   61:     0x5b6d66b74702 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   62:     0x5b6d66b74702 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   63:     0x5b6d66b74702 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   64:     0x5b6d66d648bf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   65:     0x5b6d66d648bf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   66:     0x76409c872aa4 - <unknown>
[INFO] [stdout]   67:     0x76409c8ffa64 - clone
[INFO] [stdout]   68:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_e2e_server_to_client_response_flow
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 11 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test client_server_e2e_integration`
[INFO] running `Command { std: "docker" "inspect" "96cda0c24819b7df4a1d06da4dc1933ef670046714353478a60ea61e9297266c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "96cda0c24819b7df4a1d06da4dc1933ef670046714353478a60ea61e9297266c", kill_on_drop: false }`
[INFO] [stdout] 96cda0c24819b7df4a1d06da4dc1933ef670046714353478a60ea61e9297266c
