[INFO] fetching crate reinhardt-websockets 0.1.0-rc.21... [INFO] testing reinhardt-websockets-0.1.0-rc.21 against beta-2026-04-21 for beta-1.96-2 [INFO] extracting crate reinhardt-websockets 0.1.0-rc.21 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate reinhardt-websockets 0.1.0-rc.21 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate reinhardt-websockets 0.1.0-rc.21 [INFO] tweaked toml for crates.io crate reinhardt-websockets 0.1.0-rc.21 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate reinhardt-websockets 0.1.0-rc.21 on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate reinhardt-websockets 0.1.0-rc.21 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-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d02e4b0f9892c23f65d2f0897291120942250a6299dac0fcf4289649ce8adab1 [INFO] running `Command { std: "docker" "start" "-a" "d02e4b0f9892c23f65d2f0897291120942250a6299dac0fcf4289649ce8adab1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d02e4b0f9892c23f65d2f0897291120942250a6299dac0fcf4289649ce8adab1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d02e4b0f9892c23f65d2f0897291120942250a6299dac0fcf4289649ce8adab1", kill_on_drop: false }` [INFO] [stdout] d02e4b0f9892c23f65d2f0897291120942250a6299dac0fcf4289649ce8adab1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 90128946021bef04aa744a514d214bc7b2803efe5c817e1d49253242f831d806 [INFO] running `Command { std: "docker" "start" "-a" "90128946021bef04aa744a514d214bc7b2803efe5c817e1d49253242f831d806", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling as-slice v0.2.1 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling av-scenechange v0.14.1 [INFO] [stderr] Compiling built v0.8.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling aligned v0.4.3 [INFO] [stderr] Compiling no_std_io2 v0.9.3 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling y4m v0.8.0 [INFO] [stderr] Compiling winnow v1.0.2 [INFO] [stderr] Compiling pastey v0.1.1 [INFO] [stderr] Compiling quick-error v2.0.1 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling bitstream-io v4.10.0 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling imgref v1.12.0 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling zune-core v0.5.1 [INFO] [stderr] Compiling alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Compiling dtor-proc-macro v0.0.6 [INFO] [stderr] Compiling loop9 v0.1.5 [INFO] [stderr] Compiling alloc-stdlib v0.2.2 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling zune-jpeg v0.5.15 [INFO] [stderr] Compiling avif-serialize v0.8.8 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling dtor v0.3.0 [INFO] [stderr] Compiling include_dir_macros v0.7.4 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Compiling pxfm v0.1.29 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling rgb v0.8.53 [INFO] [stderr] Compiling byteorder-lite v0.1.0 [INFO] [stderr] Compiling lebe v0.5.3 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling bit_field v0.10.3 [INFO] [stderr] Compiling ctor-proc-macro v0.0.7 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Compiling image-webp v0.2.4 [INFO] [stderr] Compiling reinhardt-core v0.1.0-rc.21 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling ctor v0.8.0 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling gif v0.14.2 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling include_dir v0.7.4 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling brotli-decompressor v5.0.0 [INFO] [stderr] Compiling rmp v0.8.15 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling toml_edit v0.25.11+spec-1.1.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling maybe-rayon v0.1.1 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling inventory v0.3.24 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling brotli v8.0.2 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling proc-macro-crate v3.5.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling typed-arena v2.0.2 [INFO] [stderr] Compiling moxcms v0.8.1 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling profiling v1.0.17 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling fax v0.2.6 [INFO] [stderr] Compiling prost-derive v0.14.3 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling equator v0.4.2 [INFO] [stderr] Compiling tokio v1.52.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling reinhardt-macros v0.1.0-rc.21 [INFO] [stderr] Compiling aquamarine v0.6.0 [INFO] [stderr] Compiling aligned-vec v0.6.4 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling v_frame v0.3.9 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling av1-grain v0.2.5 [INFO] [stderr] Compiling prost v0.14.3 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling rmp-serde v1.3.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling exr v1.74.0 [INFO] [stderr] Compiling tiff v0.11.3 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling tungstenite v0.28.0 [INFO] [stderr] Compiling ravif v0.13.0 [INFO] [stderr] Compiling tokio-tungstenite v0.28.0 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling image v0.25.10 [INFO] [stderr] Compiling reinhardt-websockets v0.1.0-rc.21 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 52s [INFO] running `Command { std: "docker" "inspect" "90128946021bef04aa744a514d214bc7b2803efe5c817e1d49253242f831d806", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "90128946021bef04aa744a514d214bc7b2803efe5c817e1d49253242f831d806", kill_on_drop: false }` [INFO] [stdout] 90128946021bef04aa744a514d214bc7b2803efe5c817e1d49253242f831d806 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6d3e9f0e8d3eeeace06887e013f1ea7213585e3bc8a0e921190bf1290cf1f150 [INFO] running `Command { std: "docker" "start" "-a" "6d3e9f0e8d3eeeace06887e013f1ea7213585e3bc8a0e921190bf1290cf1f150", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling winnow v1.0.2 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling tokio v1.52.1 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling semver v1.0.28 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling rstest_macros v0.26.1 [INFO] [stderr] Compiling image v0.25.10 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling toml_edit v0.25.11+spec-1.1.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling proc-macro-crate v3.5.0 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling rmp-serde v1.3.1 [INFO] [stderr] Compiling reinhardt-macros v0.1.0-rc.21 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling insta v1.47.2 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-tungstenite v0.28.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-test v0.4.5 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling rstest v0.26.1 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling reinhardt-core v0.1.0-rc.21 [INFO] [stderr] Compiling reinhardt-websockets v0.1.0-rc.21 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "6d3e9f0e8d3eeeace06887e013f1ea7213585e3bc8a0e921190bf1290cf1f150", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6d3e9f0e8d3eeeace06887e013f1ea7213585e3bc8a0e921190bf1290cf1f150", kill_on_drop: false }` [INFO] [stdout] 6d3e9f0e8d3eeeace06887e013f1ea7213585e3bc8a0e921190bf1290cf1f150 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 628f507686bac66ec898d3ea61da86481d7e729e5edbdefcf82326f88d873a6e [INFO] running `Command { std: "docker" "start" "-a" "628f507686bac66ec898d3ea61da86481d7e729e5edbdefcf82326f88d873a6e", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.63s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/reinhardt_websockets-db57f31384faf2c4) [INFO] [stdout] [INFO] [stdout] running 228 tests [INFO] [stdout] test auth::tests::test_permission_based_policy_authorized ... ok [INFO] [stdout] test auth::tests::test_authenticated_connection_send_with_auth_denied ... ok [INFO] [stdout] test auth::tests::test_simple_auth_user ... ok [INFO] [stdout] test auth::tests::test_authenticated_connection_send_with_auth ... ok [INFO] [stdout] test auth::tests::test_permission_based_policy_denied ... ok [INFO] [stdout] test auth::tests::test_token_authenticator_valid ... ok [INFO] [stdout] test channels::tests::test_channel_layer_wrapper ... ok [INFO] [stdout] test auth::tests::test_token_authenticator_invalid ... ok [INFO] [stdout] test channels::tests::test_channel_message_creation ... ok [INFO] [stdout] test channels::tests::test_channel_message_metadata ... ok [INFO] [stdout] test channels::tests::test_in_memory_channel_layer_group_add ... ok [INFO] [stdout] test channels::tests::test_in_memory_channel_layer_group_discard ... ok [INFO] [stdout] test channels::tests::test_in_memory_channel_layer_clear ... ok [INFO] [stdout] test channels::tests::test_in_memory_channel_layer_send_receive ... ok [INFO] [stdout] test connection::tests::test_connection_config_default ... ok [INFO] [stdout] test connection::tests::test_close_marks_closed_even_when_channel_dropped ... ok [INFO] [stdout] test connection::tests::test_connection_config_permissive ... ok [INFO] [stdout] test connection::tests::test_connection_config_with_custom_ping_config ... ok [INFO] [stdout] test connection::tests::test_close_with_reason ... ok [INFO] [stdout] test connection::tests::test_connection_send ... ok [INFO] [stdout] test channels::tests::test_in_memory_channel_layer_group_send ... ok [INFO] [stdout] test connection::tests::test_connection_config_builder ... ok [INFO] [stdout] test connection::tests::test_close_with_reason_marks_closed_even_when_channel_dropped ... ok [INFO] [stdout] test connection::tests::test_connection_with_config ... ok [INFO] [stdout] test connection::tests::test_connection_config_no_timeout ... ok [INFO] [stdout] test connection::tests::test_heartbeat_config_custom ... ok [INFO] [stdout] test connection::tests::test_force_close_marks_connection_closed ... ok [INFO] [stdout] test connection::tests::test_heartbeat_config_default ... ok [INFO] [stdout] test connection::tests::test_connection_config_strict ... ok [INFO] [stdout] test connection::tests::test_connection_config_has_default_ping_config ... ok [INFO] [stdout] test connection::tests::test_ping_pong_config_builder ... ok [INFO] [stdout] test connection::tests::test_heartbeat_monitor_initial_state ... ok [INFO] [stdout] test connection::tests::test_message_json ... ok [INFO] [stdout] test connection::tests::test_message_text ... ok [INFO] [stdout] test connection::tests::test_permissive_config_has_relaxed_ping ... ok [INFO] [stdout] test connection::tests::test_ping_pong_config_custom ... ok [INFO] [stdout] test connection::tests::test_ping_pong_config_default ... ok [INFO] [stdout] test connection::tests::test_send_after_force_close_returns_error ... ok [INFO] [stdout] test connection::tests::test_heartbeat_monitor_send_ping ... ok [INFO] [stdout] test connection::tests::test_strict_config_has_aggressive_ping ... ok [INFO] [stdout] test connection::tests::test_timeout_monitor_register_and_count ... ok [INFO] [stdout] test connection::tests::test_timeout_monitor_rejects_when_max_connections_reached ... ok [INFO] [stdout] test connection::tests::test_timeout_monitor_removes_already_closed_connections ... ok [INFO] [stdout] test connection::tests::test_timeout_monitor_unregister ... ok [INFO] [stdout] test connection::tests::test_websocket_error_binary_payload_variant ... ok [INFO] [stdout] test connection::tests::test_websocket_error_slow_consumer_variant ... ok [INFO] [stdout] test connection::tests::test_websocket_error_heartbeat_timeout_variant ... ok [INFO] [stdout] test consumers::tests::test_broadcast_consumer_disconnect_tolerates_already_removed ... ok [INFO] [stdout] test consumers::tests::test_broadcast_consumer_disconnect_cleanup ... ok [INFO] [stdout] test consumers::tests::test_consumer_context_cookie_header_missing ... ok [INFO] [stdout] test consumers::tests::test_consumer_chain ... ok [INFO] [stdout] test consumers::tests::test_consumer_context_cookie_header ... ok [INFO] [stdout] test consumers::tests::test_consumer_context_creation ... ok [INFO] [stdout] test consumers::tests::test_consumer_context_headers ... ok [INFO] [stdout] test consumers::tests::test_echo_consumer_handles_close_message ... ok [INFO] [stdout] test consumers::tests::test_echo_consumer_connect ... ok [INFO] [stdout] test consumers::tests::test_echo_consumer_binary_non_utf8_message ... ok [INFO] [stdout] test consumers::tests::test_consumer_context_metadata ... ok [INFO] [stdout] test consumers::tests::test_echo_consumer_binary_utf8_message ... ok [INFO] [stdout] test consumers::tests::test_consumer_context_headers_default_empty ... ok [INFO] [stdout] test consumers::tests::test_json_consumer_connect ... ok [INFO] [stdout] test consumers::tests::test_json_consumer_binary_invalid_utf8_returns_error ... ok [INFO] [stdout] test consumers::tests::test_json_consumer_binary_valid_json ... ok [INFO] [stdout] test metrics::tests::test_disconnection_does_not_underflow ... ok [INFO] [stdout] test metrics::tests::test_metrics_creation ... ok [INFO] [stdout] test metrics::tests::test_record_connection ... ok [INFO] [stdout] test metrics::tests::test_record_bytes ... ok [INFO] [stdout] test metrics::tests::test_bytes_sent_saturates_instead_of_wrapping ... ok [INFO] [stdout] test metrics::tests::test_record_messages ... ok [INFO] [stdout] test metrics::tests::test_record_disconnection ... ok [INFO] [stdout] test metrics::tests::test_reset ... ok [INFO] [stdout] test consumers::tests::test_echo_consumer_message ... ok [INFO] [stdout] test consumers::tests::test_json_consumer_binary_invalid_json_returns_error ... ok [INFO] [stdout] test metrics::tests::test_record_error ... ok [INFO] [stdout] test metrics::tests::test_snapshot_summary ... ok [INFO] [stdout] test middleware::tests::test_ip_filter_blacklist_blocked ... ok [INFO] [stdout] test middleware::tests::test_connection_context ... ok [INFO] [stdout] test middleware::tests::test_ip_filter_whitelist_blocked ... ok [INFO] [stdout] test middleware::tests::test_ip_filter_whitelist_allowed ... ok [INFO] [stdout] test middleware::tests::test_logging_middleware_connect ... ok [INFO] [stdout] test middleware::tests::test_ip_filter_blacklist_allowed ... ok [INFO] [stdout] test middleware::tests::test_logging_middleware_message ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_binary_messages ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_default_accepts_normal_messages ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_control_frames_always_pass ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_custom_configuration ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_default_is_1mb ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_exceeds_limit ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_within_limit ... ok [INFO] [stdout] test middleware::tests::test_middleware_chain_connect ... ok [INFO] [stdout] test middleware::tests::test_middleware_chain_rejection ... ok [INFO] [stdout] test middleware::tests::test_middleware_chain_with_default_size_limit ... ok [INFO] [stdout] test origin::tests::test_allow_all_policy_accepts_any_origin ... ok [INFO] [stdout] test origin::tests::test_allow_list_accepts_valid_origin ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_default_rejects_oversized_messages ... ok [INFO] [stdout] test origin::tests::test_empty_allow_list_rejects_all_origins ... ok [INFO] [stdout] test middleware::tests::test_message_size_limit_sends_close_frame_on_rejection ... ok [INFO] [stdout] test origin::tests::test_case_insensitive_origin_comparison ... ok [INFO] [stdout] test middleware::tests::test_middleware_chain_message ... ok [INFO] [stdout] test origin::tests::test_empty_origin_header_rejected_when_required ... ok [INFO] [stdout] test origin::tests::test_allows_missing_origin_when_configured ... ok [INFO] [stdout] test origin::tests::test_allow_list_rejects_invalid_origin ... ok [INFO] [stdout] test origin::tests::test_multiple_allowed_origins ... ok [INFO] [stdout] test origin::tests::test_validate_origin_function_allow_all ... ok [INFO] [stdout] test origin::tests::test_rejects_missing_origin_by_default ... ok [INFO] [stdout] test origin::tests::test_on_disconnect_always_succeeds ... ok [INFO] [stdout] test origin::tests::test_validate_origin_function_missing_allowed ... ok [INFO] [stdout] test origin::tests::test_trailing_slash_normalization ... ok [INFO] [stdout] test origin::tests::test_validate_origin_function_invalid ... ok [INFO] [stdout] test origin::tests::test_validate_origin_function_missing_rejected ... ok [INFO] [stdout] test protocol::tests::test_custom_limits ... ok [INFO] [stdout] test protocol::tests::test_default_websocket_config_has_frame_size_limit ... ok [INFO] [stdout] test protocol::tests::test_no_limits ... ok [INFO] [stdout] test protocol::tests::test_default_constants ... ok [INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_disabled ... ok [INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_disconnect_and_reconnect ... ok [INFO] [stdout] test protocol::tests::test_default_websocket_config_has_message_size_limit ... ok [INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_exponential_backoff ... ok [INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_exhausted ... ok [INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_new ... ok [INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_on_connected_resets ... ok [INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_with_callback ... ok [INFO] [stdout] test reconnection::tests::test_exponential_backoff ... ok [INFO] [stdout] test reconnection::tests::test_config_builder ... ok [INFO] [stdout] test reconnection::tests::test_backoff_does_not_overflow_at_high_retry_counts ... ok [INFO] [stdout] test reconnection::tests::test_jitter_applied ... ok [INFO] [stdout] test reconnection::tests::test_default_config ... ok [INFO] [stdout] test reconnection::tests::test_max_delay_cap ... ok [INFO] [stdout] test reconnection::tests::test_reconnection_state_variants ... ok [INFO] [stdout] test reconnection::tests::test_reset ... ok [INFO] [stdout] test reconnection::tests::test_reconnection_strategy ... ok [INFO] [stdout] test reconnection::tests::test_strategy_config_accessor ... ok [INFO] [stdout] test reconnection::tests::test_unlimited_attempts ... ok [INFO] [stdout] test room::tests::test_broadcast_complete_failure ... ok [INFO] [stdout] test room::tests::test_broadcast_empty_room ... ok [INFO] [stdout] test room::tests::test_broadcast_partial_failure_reports_failed_clients ... ok [INFO] [stdout] test room::tests::test_broadcast_partial_failure_removes_dead_connections ... ok [INFO] [stdout] test room::tests::test_broadcast_to_room_returns_broadcast_result ... ok [INFO] [stdout] test room::tests::test_broadcast_to_all_aggregates_results ... ok [INFO] [stdout] test room::tests::test_broadcast_with_timeout_removes_dead_connections ... ok [INFO] [stdout] test room::tests::test_room_broadcast ... ok [INFO] [stdout] test room::tests::test_broadcast_to_room_with_timeout ... ok [INFO] [stdout] test room::tests::test_broadcast_with_timeout_succeeds_for_responsive_clients ... ok [INFO] [stdout] test room::tests::test_broadcast_to_room_with_timeout_nonexistent_room ... ok [INFO] [stdout] test room::tests::test_broadcast_with_timeout_empty_room ... ok [INFO] [stdout] test room::tests::test_room_client_ids ... ok [INFO] [stdout] test room::tests::test_room_is_empty ... ok [INFO] [stdout] test room::tests::test_room_join_client ... ok [INFO] [stdout] test room::tests::test_room_join_duplicate_client ... ok [INFO] [stdout] test room::tests::test_room_leave_client ... ok [INFO] [stdout] test room::tests::test_room_leave_nonexistent_client ... ok [INFO] [stdout] test room::tests::test_room_manager_cleanup_empty_rooms ... ok [INFO] [stdout] test room::tests::test_room_manager_create_room ... ok [INFO] [stdout] test room::tests::test_room_manager_delete_nonexistent_room ... ok [INFO] [stdout] test room::tests::test_room_manager_get_or_create_room ... ok [INFO] [stdout] test room::tests::test_room_manager_get_room ... ok [INFO] [stdout] test room::tests::test_room_manager_delete_room ... ok [INFO] [stdout] test room::tests::test_room_manager_new ... ok [INFO] [stdout] test room::tests::test_room_manager_room_ids ... ok [INFO] [stdout] test room::tests::test_room_manager_has_room ... ok [INFO] [stdout] test room::tests::test_room_metadata_clear ... ok [INFO] [stdout] test room::tests::test_room_metadata_get_nonexistent ... ok [INFO] [stdout] test room::tests::test_room_new ... ok [INFO] [stdout] test room::tests::test_room_metadata_set_and_get ... ok [INFO] [stdout] test room::tests::test_room_send_to_nonexistent_client ... ok [INFO] [stdout] test room::tests::test_room_send_to_specific_client ... ok [INFO] [stdout] test tests::test_basic_websocket_communication ... ok [INFO] [stdout] test tests::test_broadcast_to_all_rooms ... ok [INFO] [stdout] test connection::tests::test_heartbeat_monitor_record_pong_resets_timer ... ok [INFO] [stdout] test room::tests::test_room_metadata_remove ... ok [INFO] [stdout] test tests::test_websocket_binary_messages ... ok [INFO] [stdout] test connection::tests::test_heartbeat_monitor_no_timeout_when_pong_received ... ok [INFO] [stdout] test tests::test_websocket_close_with_reason ... ok [INFO] [stdout] test tests::test_websocket_dependency_after_yield ... ok [INFO] [stdout] test tests::test_get_all_rooms ... ok [INFO] [stdout] test tests::test_websocket_handle_disconnection ... ok [INFO] [stdout] test tests::test_websocket_invalid_data ... ok [INFO] [stdout] test tests::test_websocket_json_messages ... ok [INFO] [stdout] test tests::test_websocket_multiple_clients_with_room ... ok [INFO] [stdout] test tests::test_websocket_no_credentials ... ok [INFO] [stdout] test tests::test_websocket_dependency_after_yield_broken ... ok [INFO] [stdout] test tests::test_websocket_with_token_and_query ... ok [INFO] [stdout] test throttling::tests::test_connection_rate_limiter_exceeds_limit ... ok [INFO] [stdout] test throttling::tests::test_connection_rate_limiter_get_current_count ... ok [INFO] [stdout] test throttling::tests::test_connection_rate_limiter_independent_ips ... ok [INFO] [stdout] test tests::test_websocket_with_cookie_auth ... ok [INFO] [stdout] test throttling::tests::test_combined_throttler ... ok [INFO] [stdout] test throttling::tests::test_connection_rate_limiter_within_limit ... ok [INFO] [stdout] test tests::test_websocket_with_query_token ... ok [INFO] [stdout] test throttling::tests::test_connection_throttler_get_count ... ok [INFO] [stdout] test throttling::tests::test_connection_throttler_independent_ips ... ok [INFO] [stdout] test throttling::tests::test_connection_throttler_exceeds_limit ... ok [INFO] [stdout] test throttling::tests::test_connection_rate_limiter_clear_all ... ok [INFO] [stdout] test tests::test_websocket_ping_pong ... ok [INFO] [stdout] test throttling::tests::test_connection_rate_limiter_accessors ... ok [INFO] [stdout] test throttling::tests::test_connection_throttler_release ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_config_presets ... ok [INFO] [stdout] test throttling::tests::test_connection_throttler_within_limit ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_config_new ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_accessors ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_allows_connection ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_allows_message_within_limit ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_in_chain ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_on_disconnect_releases_slot ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_rejects_concurrent_exceeded ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_rejects_connection_rate_exceeded ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_rejects_message_rate_exceeded ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_message_in_chain ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_release_connection ... ok [INFO] [stdout] test throttling::tests::test_rate_limiter_independent_clients ... ok [INFO] [stdout] test throttling::tests::test_rate_limiter_reset ... ok [INFO] [stdout] test throttling::tests::test_websocket_rate_limit_config_builder ... ok [INFO] [stdout] test throttling::tests::test_rate_limiter_exceeds_limit ... ok [INFO] [stdout] test throttling::tests::test_rate_limiter_within_limit ... ok [INFO] [stdout] test throttling::tests::test_websocket_rate_limit_config_default ... ok [INFO] [stdout] test throttling::tests::test_rate_limiter_get_count ... ok [INFO] [stdout] test throttling::tests::test_websocket_rate_limit_config_strict ... ok [INFO] [stdout] test throttling::tests::test_rate_limit_middleware_with_defaults ... ok [INFO] [stdout] test throttling::tests::test_websocket_rate_limit_config_permissive ... ok [INFO] [stdout] test origin::tests::test_validate_origin_function_valid ... ok [INFO] [stdout] test connection::tests::test_heartbeat_monitor_timeout_closes_connection ... ok [INFO] [stdout] test connection::tests::test_heartbeat_monitor_early_pong_skips_full_sleep ... ok [INFO] [stdout] test connection::tests::test_send_resets_activity ... ok [INFO] [stdout] test connection::tests::test_connection_becomes_idle_after_timeout ... ok [INFO] [stdout] test connection::tests::test_connection_record_activity_resets_idle ... ok [INFO] [stdout] test connection::tests::test_timeout_monitor_closes_idle_connections ... ok [INFO] [stdout] test throttling::tests::test_connection_rate_limiter_window_expiry ... ok [INFO] [stdout] test connection::tests::test_timeout_monitor_background_task ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 228 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] Running tests/auth_integration.rs (/opt/rustwide/target/debug/deps/auth_integration-8fd0a7c91b283581) [INFO] [stdout] [INFO] [stdout] running 15 tests [INFO] [stdout] test test_authenticated_connection_send_with_auth_denied ... ok [INFO] [stdout] test test_authenticated_connection_multiple_messages ... ok [INFO] [stdout] test test_authenticated_connection_send_with_auth_success ... ok [INFO] [stdout] test test_authorization_policy_authorized ... ok [INFO] [stdout] test test_authorization_policy_denied ... ok [INFO] [stdout] test test_mock_authenticator_valid_token ... ok [INFO] [stdout] test test_token_authentication_invalid ... ok [INFO] [stdout] test test_token_authentication_multiple_users ... ok [INFO] [stdout] test test_token_authentication_valid ... ok [INFO] [stdout] test test_mock_authenticator_invalid_token ... ok [INFO] [stdout] test test_authorization_policy_unknown_action ... ok [INFO] [stdout] test test_user_permission_checks ... ok [INFO] [stdout] test test_mock_authenticator_admin_token ... ok [INFO] [stdout] test test_multiple_permission_levels ... ok [INFO] [stdout] test test_unauthenticated_user ... ok [INFO] [stderr] Running tests/connection_integration.rs (/opt/rustwide/target/debug/deps/connection_integration-464767a3b49f0779) [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test test_json_message_serialization ... ok [INFO] [stdout] test test_reinhardt_websocket_connection ... ok [INFO] [stdout] test test_connection_close ... ok [INFO] [stdout] test test_binary_message_transmission ... ok [INFO] [stdout] test test_ping_pong_heartbeat ... ok [INFO] [stdout] test test_multiple_concurrent_clients ... ok [INFO] [stdout] test test_connection_establishment ... ok [INFO] [stdout] test test_large_message_transmission ... ok [INFO] [stderr] Running tests/url_resolver_integration.rs (/opt/rustwide/target/debug/deps/url_resolver_integration-bda05a22cdb8d2cb) [INFO] [stdout] test test_reconnection_after_drop ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test test_consumer_builder_registers_route ... ok [INFO] [stdout] test test_endpoint_info_name ... ok [INFO] [stdout] test test_endpoint_info_path ... ok [INFO] [stdout] test test_reverse_no_params ... ok [INFO] [stdout] test test_reverse_unknown_name ... ok [INFO] [stdout] test test_reverse_with_param ... ok [INFO] [stdout] test test_substitute_ws_params_multiple ... ok [INFO] [stderr] Running tests/websocket_macro_e2e.rs (/opt/rustwide/target/debug/deps/websocket_macro_e2e-bb355f431c6dede1) [INFO] [stdout] test test_substitute_ws_params_no_params ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test test_endpoint_info_with_param ... ok [INFO] [stdout] test test_router_finds_all_pending ... ok [INFO] [stdout] test test_endpoint_info_no_params ... ok [INFO] [stdout] test test_e2e_url_with_path_param ... ok [INFO] [stdout] test test_router_reverse_no_params ... ok [INFO] [stdout] test test_router_reverse_with_param ... ok [INFO] [stdout] test test_router_reverse_unknown ... ok [INFO] [stdout] test test_e2e_url_resolution_then_connect ... ok [INFO] [stdout] test test_e2e_multiple_messages ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests reinhardt_websockets [INFO] [stdout] [INFO] [stdout] running 137 tests [INFO] [stdout] test src/auth.rs - auth::SimpleAuthUser (line 49) ... ok [INFO] [stdout] test src/auth.rs - auth::TokenAuthenticator (line 126) ... ok [INFO] [stdout] test src/auth.rs - auth::PermissionBasedPolicy (line 211) ... ok [INFO] [stdout] test src/channels.rs - channels::InMemoryChannelLayer (line 116) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::permissive (line 384) ... ok [INFO] [stdout] test src/channels.rs - channels::ChannelMessage (line 43) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::strict (line 357) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig (line 135) ... ok [INFO] [stdout] test src/channels.rs - channels::ChannelLayerWrapper (line 265) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::no_timeout (line 332) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::new (line 176) ... ok [INFO] [stdout] test src/connection.rs - connection::HeartbeatConfig (line 1229) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_handshake_timeout (line 219) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_cleanup_interval (line 241) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_ping_config (line 304) ... ok [INFO] [stdout] test src/connection.rs - connection::Message::text (line 514) ... ok [INFO] [stdout] test src/connection.rs - connection::Message::binary (line 530) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionTimeoutMonitor (line 1055) ... ok [INFO] [stdout] test src/connection.rs - connection::Message::parse_json (line 580) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_idle_timeout (line 197) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_max_connections (line 278) ... ok [INFO] [stdout] test src/connection.rs - connection::Message::json (line 547) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::close (line 941) ... ok [INFO] [stdout] test src/connection.rs - connection::PingPongConfig (line 15) ... ok [INFO] [stdout] test src/connection.rs - connection::PingPongConfig::with_ping_interval (line 91) ... ok [INFO] [stdout] test src/connection.rs - connection::PingPongConfig::with_pong_timeout (line 108) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::send_binary (line 879) ... ok [INFO] [stdout] test src/connection.rs - connection::PingPongConfig::new (line 59) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::is_closed (line 1031) ... ok [INFO] [stdout] test src/auth.rs - auth::AuthenticatedConnection (line 281) ... ok [INFO] [stdout] test src/connection.rs - connection::HeartbeatMonitor (line 1286) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::send_json (line 904) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::id (line 732) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::close_with_reason (line 973) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::send_text (line 855) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::force_close (line 1011) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::record_activity (line 757) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::idle_duration (line 777) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::send (line 820) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::is_idle (line 798) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::subprotocol (line 712) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::with_config (line 648) ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::new (line 625) ... ok [INFO] [stdout] test src/lib.rs - (line 102) ... ignored [INFO] [stdout] test src/lib.rs - (line 121) ... ignored [INFO] [stdout] test src/lib.rs - consumers (line 167) - compile ... ok [INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::with_subprotocol (line 680) ... ok [INFO] [stdout] test src/handler.rs - handler::WebSocketHandler::reconnection_config (line 28) - compile ... ok [INFO] [stdout] test src/lib.rs - origin (line 179) ... ok [INFO] [stdout] test src/consumers.rs - consumers::BroadcastConsumer (line 405) ... ok [INFO] [stdout] test src/consumers.rs - consumers::ConsumerContext::new (line 91) ... ok [INFO] [stdout] test src/lib.rs - (line 78) ... ok [INFO] [stdout] test src/lib.rs - (line 20) ... ok [INFO] [stdout] test src/connection.rs - connection::ConnectionTimeoutMonitor::start (line 1192) ... ok [INFO] [stdout] test src/consumers.rs - consumers::ConsumerContext (line 61) ... ok [INFO] [stdout] test src/lib.rs - (line 54) ... ok [INFO] [stdout] test src/consumers.rs - consumers::ConsumerChain (line 605) ... ok [INFO] [stdout] test src/consumers.rs - consumers::JsonConsumer (line 492) ... ok [INFO] [stdout] test src/lib.rs - reconnection (line 182) ... ok [INFO] [stdout] test src/lib.rs - metrics (line 174) ... ok [INFO] [stdout] test src/metrics.rs - metrics::PeriodicReporter::start (line 402) - compile ... ok [INFO] [stdout] test src/metrics.rs - metrics::MetricsSnapshot::summary (line 55) ... ok [INFO] [stdout] test src/consumers.rs - consumers::EchoConsumer (line 298) ... ok [INFO] [stdout] test src/metrics.rs - metrics::WebSocketMetrics::new (line 139) ... ok [INFO] [stdout] test src/metrics.rs - metrics::WebSocketMetrics (line 111) ... ok [INFO] [stdout] test src/middleware.rs - middleware::MiddlewareChain (line 375) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::disabled (line 452) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler (line 408) ... ok [INFO] [stdout] test src/protocol.rs - protocol::websocket_config_with_limits (line 42) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::new (line 433) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::on_connected (line 603) ... ok [INFO] [stdout] test src/middleware.rs - middleware::ConnectionContext::new (line 45) ... ok [INFO] [stdout] test src/metrics.rs - metrics::PeriodicReporter (line 340) ... ok [INFO] [stdout] test src/middleware.rs - middleware::IpFilterMiddleware (line 202) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_backoff_multiplier (line 196) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::state (line 487) ... ok [INFO] [stdout] test src/middleware.rs - middleware::MessageSizeLimitMiddleware (line 291) ... ok [INFO] [stdout] test src/metrics.rs - metrics::PeriodicReporter::new (line 376) ... ok [INFO] [stdout] test src/middleware.rs - middleware::LoggingMiddleware (line 123) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_jitter_factor (line 212) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::on_reconnect_success (line 567) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::on_disconnect (line 508) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_initial_delay (line 162) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_max_attempts (line 130) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::default (line 76) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::new (line 237) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_unlimited_attempts (line 146) ... ok [INFO] [stdout] test src/origin.rs - origin::OriginValidationMiddleware (line 82) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::attempt_count (line 257) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_max_delay (line 179) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::reset (line 353) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::can_reconnect (line 374) ... ok [INFO] [stdout] test src/room.rs - room::Room::client_count (line 381) ... ok [INFO] [stdout] test src/room.rs - room::Room::is_empty (line 581) ... ok [INFO] [stdout] test src/room.rs - room::Room::leave (line 176) ... ok [INFO] [stdout] test src/room.rs - room::Room::join (line 142) ... ok [INFO] [stdout] test src/room.rs - room::Room::clear_metadata (line 556) ... ok [INFO] [stdout] test src/room.rs - room::Room::has_client (line 445) ... ok [INFO] [stdout] test src/room.rs - room::Room::remove_metadata (line 533) ... ok [INFO] [stdout] test src/room.rs - room::Room::client_ids (line 412) ... ok [INFO] [stdout] test src/room.rs - room::Room::broadcast_with_timeout (line 276) ... ok [INFO] [stdout] test src/room.rs - room::Room::broadcast (line 212) ... ok [INFO] [stdout] test src/room.rs - room::Room::get_metadata (line 500) ... ok [INFO] [stdout] test src/room.rs - room::Room::new (line 110) ... ok [INFO] [stdout] test src/room.rs - room::Room::set_metadata (line 472) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::broadcast_to_all (line 1040) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::new (line 103) ... ok [INFO] [stdout] test src/room.rs - room::Room::send_to (line 339) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::broadcast_to_room_with_timeout (line 995) ... ok [INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::next_delay (line 276) ... ok [INFO] [stdout] test src/room.rs - room::Room::id (line 128) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::create_room (line 646) ... ok [INFO] [stdout] test src/protocol.rs - protocol::default_websocket_config (line 19) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::cleanup_empty_rooms (line 813) ... ok [INFO] [stdout] test src/room.rs - room::Room (line 83) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager (line 608) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::leave_room (line 890) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::room_count (line 747) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::room_ids (line 769) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::delete_room (line 720) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::get_room_size (line 920) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::get_or_create_room (line 692) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::join_room (line 856) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::has_room (line 793) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::get_all_rooms (line 1084) ... ok [INFO] [stdout] test src/throttling.rs - throttling::ConnectionRateLimiter (line 385) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::get_room (line 668) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::broadcast_to_room (line 953) ... ok [INFO] [stdout] test src/throttling.rs - throttling::RateLimiter (line 163) ... ok [INFO] [stdout] test src/throttling.rs - throttling::RateLimitConfig::permissive (line 94) ... ok [INFO] [stdout] test src/throttling.rs - throttling::RateLimitConfig (line 52) ... ok [INFO] [stdout] test src/throttling.rs - throttling::RateLimitMiddleware (line 653) ... ok [INFO] [stdout] test src/room.rs - room::RoomManager::new (line 628) ... ok [INFO] [stdout] test src/throttling.rs - throttling::WebSocketRateLimitConfig (line 501) ... ok [INFO] [stdout] test src/throttling.rs - throttling::RateLimitConfig::strict (line 108) ... ok [INFO] [stdout] test src/throttling.rs - throttling::ConnectionThrottler (line 237) ... ok [INFO] [stdout] test src/throttling.rs - throttling::CombinedThrottler (line 319) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 135 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stdout] all doctests ran in 8.60s; merged doctests compilation took 8.36s [INFO] running `Command { std: "docker" "inspect" "628f507686bac66ec898d3ea61da86481d7e729e5edbdefcf82326f88d873a6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "628f507686bac66ec898d3ea61da86481d7e729e5edbdefcf82326f88d873a6e", kill_on_drop: false }` [INFO] [stdout] 628f507686bac66ec898d3ea61da86481d7e729e5edbdefcf82326f88d873a6e