[INFO] fetching crate oximedia-net 0.1.3... [INFO] testing oximedia-net-0.1.3 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate oximedia-net 0.1.3 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate oximedia-net 0.1.3 [INFO] finished tweaking crates.io crate oximedia-net 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-net 0.1.3 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-net 0.1.3 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-net 0.1.3 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded hmac v0.13.0 [INFO] [stderr] Downloaded sha1 v0.11.0 [INFO] [stderr] Downloaded flv v0.0.1 [INFO] [stderr] Downloaded md-5 v0.11.0 [INFO] [stderr] Downloaded oximedia-container v0.1.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a0138b41768b4b97202e65cda6d6c37c65dbc2959ba8a09ef637cb4ecbdd90b6 [INFO] running `Command { std: "docker" "start" "-a" "a0138b41768b4b97202e65cda6d6c37c65dbc2959ba8a09ef637cb4ecbdd90b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a0138b41768b4b97202e65cda6d6c37c65dbc2959ba8a09ef637cb4ecbdd90b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a0138b41768b4b97202e65cda6d6c37c65dbc2959ba8a09ef637cb4ecbdd90b6", kill_on_drop: false }` [INFO] [stdout] a0138b41768b4b97202e65cda6d6c37c65dbc2959ba8a09ef637cb4ecbdd90b6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bd367174171cef38477d6ee1f315402b27dc2f58a9b37d4dd263973b194321ce [INFO] running `Command { std: "docker" "start" "-a" "bd367174171cef38477d6ee1f315402b27dc2f58a9b37d4dd263973b194321ce", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling writeable v0.6.3 [INFO] [stderr] Compiling litemap v0.8.2 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling cmov v0.5.3 [INFO] [stderr] Compiling const-oid v0.10.2 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling ctutils v0.4.2 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling rustls-webpki v0.103.12 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling semver v1.0.28 [INFO] [stderr] Compiling der v0.7.10 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling hybrid-array v0.4.10 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling rand_core v0.10.1 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling block-buffer v0.12.0 [INFO] [stderr] Compiling crypto-common v0.2.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling spki v0.7.3 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling pkcs8 v0.10.2 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling digest v0.11.2 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling ed25519 v2.2.3 [INFO] [stderr] Compiling md-5 v0.11.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling hmac v0.13.0 [INFO] [stderr] Compiling sha1 v0.11.0 [INFO] [stderr] Compiling sha2 v0.11.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.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 tokio-macros v2.7.0 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio v1.52.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling flv v0.0.1 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling ed25519-dalek v2.2.0 [INFO] [stderr] Compiling oximedia-core v0.1.3 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling oximedia-io v0.1.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling oximedia-container v0.1.3 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling oximedia-net v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 16s [INFO] running `Command { std: "docker" "inspect" "bd367174171cef38477d6ee1f315402b27dc2f58a9b37d4dd263973b194321ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bd367174171cef38477d6ee1f315402b27dc2f58a9b37d4dd263973b194321ce", kill_on_drop: false }` [INFO] [stdout] bd367174171cef38477d6ee1f315402b27dc2f58a9b37d4dd263973b194321ce [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 951971389e73f3556b91f6e61d5ea5ac896bc6f8ede26bb03ea0c7704fed4a02 [INFO] running `Command { std: "docker" "start" "-a" "951971389e73f3556b91f6e61d5ea5ac896bc6f8ede26bb03ea0c7704fed4a02", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-net v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 26.15s [INFO] running `Command { std: "docker" "inspect" "951971389e73f3556b91f6e61d5ea5ac896bc6f8ede26bb03ea0c7704fed4a02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "951971389e73f3556b91f6e61d5ea5ac896bc6f8ede26bb03ea0c7704fed4a02", kill_on_drop: false }` [INFO] [stdout] 951971389e73f3556b91f6e61d5ea5ac896bc6f8ede26bb03ea0c7704fed4a02 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] e872c72d0c861b7f4b74968b7a00bba8d48748d76f9b591eca23bea79fde1b9c [INFO] running `Command { std: "docker" "start" "-a" "e872c72d0c861b7f4b74968b7a00bba8d48748d76f9b591eca23bea79fde1b9c", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.33s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_net-019d2feccb8c80cc) [INFO] [stdout] [INFO] [stdout] running 1585 tests [INFO] [stdout] test abr::mpc::new_abr_tests::test_bola_emergency_downswitch ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_bola_initial_quality_no_samples ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_bola_low_buffer_downswitches ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_bola_lyapunov_v_getter ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_bola_reset ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_bola_respects_max_quality_constraint ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_dash_abr_emergency_downswitch ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_dash_abr_reports_download_history ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_download_history_window_stats_single_record ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_dash_abr_reset_clears_state ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_dash_abr_vod_upswitch ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_emergency_downswitch ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_estimated_throughput_is_pessimistic ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_horizon_parameter ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_initial_quality ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_all_controllers_implement_trait ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_rebuffer_avoidance ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_reset_clears_state ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_respects_min_quality_constraint ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_selects_high_quality_with_good_conditions ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_mpc_weights_customisation ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_segment_history_add_and_stats ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_segment_history_cv ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_segment_history_empty ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_segment_history_reset ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_segment_history_rolling_stats ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_abr_controller_creation ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_abr_cooldown ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_abr_stay_on_low_buffer ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_abr_switch_up_good_bandwidth ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_bandwidth_estimator_basic ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_bandwidth_estimator_percentile ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_segment_fetcher_buffer_level ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_segment_fetcher_pop ... ok [INFO] [stdout] test abr::streaming::streaming_abr_tests::test_selection_result_accessors ... ok [INFO] [stdout] test abr_buffer::tests::test_abr_default_config ... ok [INFO] [stdout] test abr_buffer::tests::test_abr_high_buffer_highest_quality ... ok [INFO] [stdout] test abr_buffer::tests::test_abr_low_buffer_lowest_quality ... ok [INFO] [stdout] test abr_buffer::tests::test_abr_mid_buffer_ramps ... ok [INFO] [stdout] test abr_buffer::tests::test_abr_reset ... ok [INFO] [stdout] test abr_buffer::tests::test_abr_selected_bitrate ... ok [INFO] [stdout] test abr_buffer::tests::test_abr_stability ... ok [INFO] [stdout] test abr_buffer::tests::test_abr_switch_count ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_estimator_add_sample ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_alert_is_critical ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_alert_not_critical ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_estimate_kbps_mean ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_sample_kbps_basic ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_estimator_starts_empty ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_estimator_eviction ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_sample_kbps_zero_bytes ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_trend_rising ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_trend_falling ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_sample_kbps_zero_duration ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_trend_single_sample ... ok [INFO] [stdout] test bandwidth_estimator::tests::test_trend_stable ... ok [INFO] [stdout] test bandwidth_probe::tests::test_ewma_clamp_max ... ok [INFO] [stdout] test bandwidth_probe::tests::test_ewma_config_bad_bounds ... ok [INFO] [stdout] test bandwidth_probe::tests::test_ewma_config_bad_alpha ... ok [INFO] [stdout] test bandwidth_probe::tests::test_ewma_clamp_min ... ok [INFO] [stdout] test bandwidth_probe::tests::test_ewma_first_update ... ok [INFO] [stdout] test bandwidth_probe::tests::test_ewma_loss_penalty ... ok [INFO] [stdout] test bandwidth_probe::tests::test_probe_result_kbps_zero_duration ... ok [INFO] [stdout] test bandwidth_probe::tests::test_high_loss_shortens_interval ... ok [INFO] [stdout] test bandwidth_probe::tests::test_probe_state_display ... ok [INFO] [stdout] test bandwidth_probe::tests::test_probe_result_kbps ... ok [INFO] [stdout] test bandwidth_probe::tests::test_scheduler_report_wrong_state ... ok [INFO] [stdout] test bandwidth_probe::tests::test_scheduler_end_cooldown ... ok [INFO] [stdout] test bandwidth_probe::tests::test_scheduler_starts_idle ... ok [INFO] [stdout] test bandwidth_probe::tests::test_scheduler_report ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_consume_exceeds_budget ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_can_send ... ok [INFO] [stdout] test bandwidth_probe::tests::test_scheduler_tick_triggers_probe ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_consume_within_budget ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_bola_high_buffer_prefers_quality ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_priority_ordering ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_set_rate ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_fair_share ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_stream_id_round_trip ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_priority_weight ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_stream_priority_lookup ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_dash_abr_initial_quality ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_throttle_config_builder ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_throttle_config_from_mbps ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_throttle_group_add_remove ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_throttle_group_consume ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_wait_time_positive_when_deficit ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_throttle_group_consume_unknown_stream ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_throttle_initial_tokens ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_default_config_validates ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_downgrade_emitted_on_bandwidth_drop ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_ema_smoothing ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_force_tier_out_of_range_errors ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_empty_tiers_rejected ... ok [INFO] [stdout] test bandwidth_throttle::tests::test_wait_time_zero_when_enough ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_ema_initialised_from_first_sample ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_history_records_events ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_hold_before_observations ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_reset_clears_state ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_snapshot_reflects_state ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_trigger_action_is_change ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_invalid_safety_factor_rejected ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_trigger_action_tier_index ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_quality_tier_audio_only ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_stays_at_lowest_tier_on_low_bandwidth ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_tier_label ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_zero_bitrate_tier_rejected ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_upgrade_fires_after_hold ... ok [INFO] [stdout] test bandwidth_trigger::tests::test_upgrade_requires_hold_period ... ok [INFO] [stdout] test buffer_model::tests::test_add_segment_increases_level ... ok [INFO] [stdout] test buffer_model::tests::test_bandwidth_stddev_from_history ... ok [INFO] [stdout] test buffer_model::tests::test_fill_drain_balance_growing ... ok [INFO] [stdout] test buffer_model::tests::test_initial_buffer_empty ... ok [INFO] [stdout] test buffer_model::tests::test_qoe_stall_ratio ... ok [INFO] [stdout] test buffer_model::tests::test_stall_recovery_after_segment_add ... ok [INFO] [stdout] test buffer_model::tests::test_tick_drains_buffer ... ok [INFO] [stdout] test buffer_model::tests::test_rebuffer_probability_increases_low_buffer ... ok [INFO] [stdout] test buffer_model::tests::test_quality_cap_by_phase ... ok [INFO] [stdout] test buffer_model::tests::test_stall_detected_when_buffer_empty ... ok [INFO] [stdout] test cdn::failover::tests::test_backoff_reset ... ok [INFO] [stdout] test cdn::failover::tests::test_backoff_state ... ok [INFO] [stdout] test cdn::failover::tests::test_circuit_breaker_creation ... ok [INFO] [stdout] test cdn::failover::tests::test_circuit_breaker_failure ... ok [INFO] [stdout] test cdn::failover::tests::test_circuit_breaker_reset ... ok [INFO] [stdout] test cdn::failover::tests::test_circuit_breaker_success ... ok [INFO] [stdout] test cdn::failover::tests::test_circuit_state ... ok [INFO] [stdout] test cdn::failover::tests::test_failover_manager_manual_override ... ok [INFO] [stdout] test cdn::failover::tests::test_failover_manager ... ok [INFO] [stdout] test cdn::health::tests::test_health_checker_creation ... ok [INFO] [stdout] test cdn::failover::tests::test_failover_manager_reset ... ok [INFO] [stdout] test cdn::health::tests::test_geo_latency ... ok [INFO] [stdout] test cdn::health::tests::test_health_checker_add_provider ... ok [INFO] [stdout] test cdn::failover::tests::test_fallback_chain ... ok [INFO] [stdout] test cdn::health::tests::test_health_checker_record_latency ... ok [INFO] [stdout] test cdn::health::tests::test_health_status ... ok [INFO] [stdout] test cdn::metrics::tests::test_bandwidth_stats ... ok [INFO] [stdout] test cdn::health::tests::test_provider_health_creation ... ok [INFO] [stdout] test cdn::metrics::tests::test_cache_stats ... ok [INFO] [stdout] test cdn::health::tests::test_provider_health_record_success ... ok [INFO] [stdout] test cdn::health::tests::test_latency_metrics ... ok [INFO] [stdout] test cdn::health::tests::test_provider_health_record_failure ... ok [INFO] [stdout] test cdn::metrics::tests::test_error_category ... ok [INFO] [stdout] test cdn::metrics::tests::test_performance_metrics ... ok [INFO] [stdout] test cdn::metrics::tests::test_metrics_collector ... ok [INFO] [stdout] test cdn::routing::tests::test_connection_tracking ... ok [INFO] [stdout] test cdn::metrics::tests::test_prometheus_export ... ok [INFO] [stdout] test cdn::metrics::tests::test_request_logs ... ok [INFO] [stdout] test cdn::metrics::tests::test_sla_breach ... ok [INFO] [stdout] test cdn::routing::tests::test_ab_test_config ... ok [INFO] [stdout] test cdn::routing::tests::test_routing_strategy_names ... ok [INFO] [stdout] test cdn::routing::tests::test_round_robin_selection ... ok [INFO] [stdout] test cdn::routing::tests::test_router_add_provider ... ok [INFO] [stdout] test cdn::routing::tests::test_router_creation ... ok [INFO] [stdout] test cdn::routing::tests::test_router_remove_provider ... ok [INFO] [stdout] test cdn::routing::tests::test_traffic_shaping ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_segment_history_capacity_eviction ... ok [INFO] [stdout] test cdn::routing::tests::test_session_affinity ... ok [INFO] [stdout] test cdn::routing::tests::test_session_affinity_disabled ... ok [INFO] [stdout] test cdn::tests::test_cdn_manager_add_provider ... ok [INFO] [stdout] test cdn::routing::tests::test_session_affinity_integration ... ok [INFO] [stdout] test cdn::metrics::tests::test_sla_metrics ... ok [INFO] [stdout] test cdn::tests::test_cdn_manager_creation ... ok [INFO] [stdout] test cdn::tests::test_cdn_manager_remove_provider ... ok [INFO] [stdout] test cdn::tests::test_cdn_provider_url_building ... ok [INFO] [stdout] test cdn::tests::test_cdn_provider_creation ... ok [INFO] [stdout] test cdn::tests::test_cdn_provider_with_region ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_active_count_tracking ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_add_and_acquire ... ok [INFO] [stdout] test cdn::tests::test_request_context ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_add_overflow_returns_err ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_drain ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_config_fields ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_defaults ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_is_empty ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_evict_expired_zero_lifetime ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_acquire_empty_returns_none ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_idle_count ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_max_size_respected ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_release_increments_idle ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_total ... ok [INFO] [stdout] test connection_pool::generic_pool_tests::test_generic_pool_release_returns_to_idle ... ok [INFO] [stdout] test connection_pool::tests::test_checkout_empty_returns_none ... ok [INFO] [stdout] test connection_pool::tests::test_connection_health_usable ... ok [INFO] [stdout] test connection_pool::tests::test_connection_id_round_trip ... ok [INFO] [stdout] test connection_pool::tests::test_create_and_checkout_flow ... ok [INFO] [stdout] test connection_pool::tests::test_mark_failed ... ok [INFO] [stdout] test connection_pool::tests::test_pool_stats ... ok [INFO] [stdout] test connection_pool::tests::test_pooled_connection_touch ... ok [INFO] [stdout] test cdn::tests::test_provider_type_names ... ok [INFO] [stdout] test connection_pool::tests::test_reap_expired_with_zero_lifetime ... ok [INFO] [stdout] test cdn::tests::test_region_names ... ok [INFO] [stdout] test connection_pool::tests::test_pooled_connection_idle_duration ... ok [INFO] [stdout] test connection_pool::tests::test_remove_host ... ok [INFO] [stdout] test connection_pool::tests::test_per_host_limit ... ok [INFO] [stdout] test connection_pool::tests::test_pool_config_defaults ... ok [INFO] [stdout] test connection_pool::tests::test_clear_pool ... ok [INFO] [stdout] test connection_pool::tests::test_total_limit ... ok [INFO] [stdout] test dash::client::tests::test_client_creation ... ok [INFO] [stdout] test dash::client::tests::test_fetch_result ... ok [INFO] [stdout] test dash::client::tests::test_representation_selection ... ok [INFO] [stdout] test dash::client::tests::test_session_creation ... ok [INFO] [stdout] test dash::client::tests::test_session_segment_navigation ... ok [INFO] [stdout] test dash::client::tests::test_quality_levels_from_adaptation_set ... ok [INFO] [stdout] test dash::client::tests::test_config_builder ... ok [INFO] [stdout] test dash::client::tests::test_find_adaptation_sets ... ok [INFO] [stdout] test dash::client::tests::test_session_buffer_management ... ok [INFO] [stdout] test abr::mpc::new_abr_tests::test_dash_abr_live_mode_conservative ... ok [INFO] [stdout] test dash::live::chunked::tests::test_chunked_segment_metadata ... ok [INFO] [stdout] test dash::live::chunked::tests::test_chunked_transfer_creation ... ok [INFO] [stdout] test dash::live::chunked::tests::test_chunked_transfer_with_config ... ok [INFO] [stdout] test dash::live::chunked::tests::test_producer_reference_time ... ok [INFO] [stdout] test dash::live::chunked::tests::test_chunk_byte_range ... ok [INFO] [stdout] test dash::live::dvr::tests::test_clear ... ok [INFO] [stdout] test dash::live::dvr::tests::test_dvr_buffer_creation ... ok [INFO] [stdout] test dash::live::chunked::tests::test_chunk_coordinator ... ok [INFO] [stdout] test dash::live::chunked::tests::test_clear ... ok [INFO] [stdout] test dash::live::chunked::tests::test_finalize_segment ... ok [INFO] [stdout] test dash::live::dvr::tests::test_available_window ... ok [INFO] [stdout] test dash::live::dvr::tests::test_dvr_stats ... ok [INFO] [stdout] test dash::live::chunked::tests::test_add_data_creates_chunks ... ok [INFO] [stdout] test dash::live::dvr::tests::test_add_segment ... ok [INFO] [stdout] test dash::live::dvr::tests::test_earliest_latest_time ... ok [INFO] [stdout] test dash::live::dvr::tests::test_get_segment ... ok [INFO] [stdout] test dash::live::dvr::tests::test_get_segments_in_range ... ok [INFO] [stdout] test dash::live::dvr::tests::test_max_size_constraint ... ok [INFO] [stdout] test dash::live::dvr::tests::test_time_based_trimming ... ok [INFO] [stdout] test dash::live::mpd_gen::tests::test_adaptation_set_builder ... ok [INFO] [stdout] test dash::live::mpd_gen::tests::test_add_period ... ok [INFO] [stdout] test dash::live::mpd_gen::tests::test_dynamic_mpd_generator_creation ... ok [INFO] [stdout] test dash::live::mpd_gen::tests::test_generate_xml ... ok [INFO] [stdout] test dash::live::mpd_gen::tests::test_mpd_config_default ... ok [INFO] [stdout] test dash::live::mpd_gen::tests::test_representation_builder ... ok [INFO] [stdout] test dash::live::segment::tests::test_segment_generator_creation ... ok [INFO] [stdout] test dash::live::mpd_gen::tests::test_utc_timing ... ok [INFO] [stdout] test dash::live::segment::tests::test_add_packet ... ok [INFO] [stdout] test dash::live::segment::tests::test_codec_info ... ok [INFO] [stdout] test dash::live::segment::tests::test_init_segment_generation ... ok [INFO] [stdout] test dash::live::segment::tests::test_multi_representation_generator ... ok [INFO] [stdout] test dash::live::timeline::tests::test_earliest_latest_segments ... ok [INFO] [stdout] test dash::live::timeline::tests::test_segment_timeline_generation ... ok [INFO] [stdout] test dash::live::tests::test_low_latency_mode ... ok [INFO] [stdout] test dash::live::tests::test_get_mpd ... ok [INFO] [stdout] test dash::live::tests::test_server_creation ... ok [INFO] [stdout] test dash::live::timeline::tests::test_get_segment_info ... ok [INFO] [stdout] test dash::live::timeline::tests::test_add_segments ... ok [INFO] [stdout] test dash::live::timeline::tests::test_timeline_manager_creation ... ok [INFO] [stdout] test dash::ll_dash::tests::test_chunk_availability_in_progress ... ok [INFO] [stdout] test dash::ll_dash::tests::test_availability_time_offset ... ok [INFO] [stdout] test dash::live::timeline::tests::test_trim_old_segments ... ok [INFO] [stdout] test dash::ll_dash::tests::test_add_chunks_partial ... ok [INFO] [stdout] test dash::ll_dash::tests::test_chunk_availability_completed ... ok [INFO] [stdout] test dash::live::tests::test_add_representation ... ok [INFO] [stdout] test dash::ll_dash::tests::test_content_range_header ... ok [INFO] [stdout] test dash::ll_dash::tests::test_chunks_per_segment ... ok [INFO] [stdout] test dash::ll_dash::tests::test_default_config ... ok [INFO] [stdout] test dash::ll_dash::tests::test_cmaf_chunk_byte_range ... ok [INFO] [stdout] test dash::ll_dash::tests::test_cmaf_chunk_independent ... ok [INFO] [stdout] test dash::ll_dash::tests::test_cmaf_chunk_new ... ok [INFO] [stdout] test dash::ll_dash::tests::test_complete_segment ... ok [INFO] [stdout] test dash::ll_dash::tests::test_resync_point_at_segment ... ok [INFO] [stdout] test dash::ll_dash::tests::test_mpd_xml_generation ... ok [INFO] [stdout] test dash::ll_dash::tests::test_resync_point_xml ... ok [INFO] [stdout] test dash::ll_dash::tests::test_resync_points_tracked ... ok [INFO] [stdout] test dash::ll_dash::tests::test_segment_push_chunk ... ok [INFO] [stdout] test dash::ll_dash::tests::test_segment_complete_flag ... ok [INFO] [stdout] test dash::ll_dash::tests::test_segment_timeline_element ... ok [INFO] [stdout] test dash::ll_dash::tests::test_service_description_from_config ... ok [INFO] [stdout] test dash::ll_dash::tests::test_service_description_xml ... ok [INFO] [stdout] test dash::ll_dash::tests::test_format_system_time ... ok [INFO] [stdout] test dash::ll_dash::tests::test_window_slides ... ok [INFO] [stdout] test dash::ll_dash::tests::test_ll_dash_mpd_new ... ok [INFO] [stdout] test dash::ll_dash::tests::test_set_representation_id ... ok [INFO] [stdout] test dash::ll_dash::tests::test_segment_total_size ... ok [INFO] [stdout] test dash::ll_dash::tests::test_ll_dash_segment_new ... ok [INFO] [stdout] test dash::ll_dash::tests::test_with_chunk_duration ... ok [INFO] [stdout] test dash::ll_dash::tests::test_zero_chunk_duration ... ok [INFO] [stdout] test dash::mpd::tests::test_adaptation_set_type ... ok [INFO] [stdout] test dash::mpd::tests::test_content_protection ... ok [INFO] [stdout] test dash::mpd::tests::test_format_iso8601_duration ... ok [INFO] [stdout] test dash::mpd::tests::test_mpd_parse_live ... ok [INFO] [stdout] test dash::mpd::tests::test_mpd_parse_basic ... ok [INFO] [stdout] test dash::mpd::tests::test_parse_iso8601_duration ... ok [INFO] [stdout] test dash::mpd::tests::test_mpd_type ... ok [INFO] [stdout] test dash::mpd::tests::test_representation ... ok [INFO] [stdout] test dash::mpd::tests::test_segment_template ... ok [INFO] [stdout] test dash::mpd::tests::test_segment_timeline ... ok [INFO] [stdout] test dash::mpd::tests::test_segment_template_with_time ... ok [INFO] [stdout] test dash::mpd::tests::test_url_type ... ok [INFO] [stdout] test dash::segment::tests::test_dash_segment ... ok [INFO] [stdout] test dash::segment::tests::test_dash_segment_init ... ok [INFO] [stdout] test dash::segment::tests::test_segment_at_time ... ok [INFO] [stdout] test dash::segment::tests::test_segment_generator_number_based ... ok [INFO] [stdout] test dash::segment::tests::test_segment_generator_with_base_url ... ok [INFO] [stdout] test dash::segment::tests::test_segment_generator_timeline ... ok [INFO] [stdout] test error::tests::test_eof_error ... ok [INFO] [stdout] test dash::segment::tests::test_segment_info ... ok [INFO] [stdout] test error::tests::test_http_error ... ok [INFO] [stdout] test error::tests::test_parse_error ... ok [INFO] [stdout] test error::tests::test_io_error_from ... ok [INFO] [stdout] test dash::segment::tests::test_segments_for_range ... ok [INFO] [stdout] test error::tests::test_timeout_error ... ok [INFO] [stdout] test error::tests::test_protocol_error ... ok [INFO] [stdout] test fec::xor_fec::tests::test_2d_config_is_2d ... ok [INFO] [stdout] test fec::xor_fec::tests::test_decoder_cannot_recover_two_losses ... ok [INFO] [stdout] test error::tests::test_connection_error ... ok [INFO] [stdout] test fec::xor_fec::tests::test_encoder_produces_fec_after_k_packets ... ok [INFO] [stdout] test fec::xor_fec::tests::test_fec_packet_covered_count ... ok [INFO] [stdout] test fec::xor_fec::tests::test_decoder_no_fec_no_recovery ... ok [INFO] [stdout] test fec::xor_fec::tests::test_fec_payload_is_xor ... ok [INFO] [stdout] test fec::xor_fec::tests::test_decoder_recovers_single_loss ... ok [INFO] [stdout] test fec::xor_fec::tests::test_default_config ... ok [INFO] [stdout] test fec::xor_fec::tests::test_encoder_2d_column_fec ... ok [INFO] [stdout] test fec::xor_fec::tests::test_encoder_second_group ... ok [INFO] [stdout] test fec::xor_fec::tests::test_fec_mask_popcount ... ok [INFO] [stdout] test fec::xor_fec::tests::test_recovered_map_drained_after_try_recover ... ok [INFO] [stdout] test fec::xor_fec::tests::test_xor_into_extends_dst ... ok [INFO] [stdout] test fec_interleave::tests::test_config_display ... ok [INFO] [stdout] test fec_interleave::tests::test_config_rejects_oversized_group ... ok [INFO] [stdout] test fec_interleave::tests::test_matrix_pos_roundtrip ... ok [INFO] [stdout] test fec_interleave::tests::test_large_payload_roundtrip ... ok [INFO] [stdout] test fec::xor_fec::tests::test_one_dimensional_config ... ok [INFO] [stdout] test fec_interleave::tests::test_config_rejects_zero_rows ... ok [INFO] [stdout] test fec_interleave::tests::test_encoder_repair_packet_count ... ok [INFO] [stdout] test fec_interleave::tests::test_encoder_rejects_incomplete_group ... ok [INFO] [stdout] test fec_interleave::tests::test_no_losses_empty_recovery ... ok [INFO] [stdout] test fec_interleave::tests::test_planner_no_losses ... ok [INFO] [stdout] test fec::xor_fec::tests::test_two_dimensional_config ... ok [INFO] [stdout] test fec_interleave::tests::test_single_row_loss_recovery ... ok [INFO] [stdout] test fec_interleave::tests::test_planner_unrecoverable_column_burst ... ok [INFO] [stdout] test fec_interleave::tests::test_single_col_loss_recovery ... ok [INFO] [stdout] test fec_interleave::tests::test_two_loss_recovery_different_rows_cols ... ok [INFO] [stdout] test fec_interleave::tests::test_xor_into_inverse ... ok [INFO] [stdout] test fec_interleave::tests::test_xor_into_mismatched_lengths ... ok [INFO] [stdout] test flow_control::tests::test_controller_ack_transitions_to_open ... ok [INFO] [stdout] test flow_control::tests::test_controller_can_send_in_open ... ok [INFO] [stdout] test flow_control::tests::test_controller_current_window_size ... ok [INFO] [stdout] test flow_control::tests::test_controller_nack_limit_blocks ... ok [INFO] [stdout] test flow_control::tests::test_controller_reset ... ok [INFO] [stdout] test flow_control::tests::test_state_blocked_is_blocked ... ok [INFO] [stdout] test flow_control::tests::test_state_blocked_is_throttled ... ok [INFO] [stdout] test flow_control::tests::test_state_open_not_blocked ... ok [INFO] [stdout] test flow_control::tests::test_state_throttled_is_throttled ... ok [INFO] [stdout] test flow_control::tests::test_window_grows_on_ack ... ok [INFO] [stdout] test flow_control::tests::test_controller_initial_state_slow_start ... ok [INFO] [stdout] test hls::abr::tests::test_abr_decision ... ok [INFO] [stdout] test flow_control::tests::test_window_available_after_send ... ok [INFO] [stdout] test flow_control::tests::test_window_can_send_initial ... ok [INFO] [stdout] test flow_control::tests::test_state_open_not_throttled ... ok [INFO] [stdout] test flow_control::tests::test_window_shrinks_on_loss ... ok [INFO] [stdout] test hls::abr::tests::test_abr_empty_levels ... ok [INFO] [stdout] test flow_control::tests::test_controller_nack_throttles ... ok [INFO] [stdout] test hls::abr::tests::test_buffer_based_abr ... ok [INFO] [stdout] test hls::abr::tests::test_buffer_based_abr_maintain ... ok [INFO] [stdout] test hls::abr::tests::test_throughput_estimator ... ok [INFO] [stdout] test hls::abr::tests::test_throughput_estimator_reset ... ok [INFO] [stdout] test hls::abr::tests::test_throughput_estimator_safety_factor ... ok [INFO] [stdout] test hls::ll_hls::tests::test_add_part_finalises_segment ... ok [INFO] [stdout] test hls::ll_hls::tests::test_blocking_response_for_in_progress_part ... ok [INFO] [stdout] test hls::abr::tests::test_quality_level ... ok [INFO] [stdout] test hls::ll_hls::tests::test_blocking_response_future_msn_returns_none ... ok [INFO] [stdout] test hls::abr::tests::test_throughput_based_abr ... ok [INFO] [stdout] test hls::ll_hls::tests::test_custom_part_duration_hold_back ... ok [INFO] [stdout] test hls::ll_hls::tests::test_default_config_hold_back ... ok [INFO] [stdout] test hls::ll_hls::tests::test_default_config_part_duration ... ok [INFO] [stdout] test hls::ll_hls::tests::test_add_part_no_segment_complete ... ok [INFO] [stdout] test hls::ll_hls::tests::test_blocking_response_returns_some_when_available ... ok [INFO] [stdout] test hls::ll_hls::tests::test_last_msn_tracking ... ok [INFO] [stdout] test hls::ll_hls::tests::test_media_part_byterange ... ok [INFO] [stdout] test hls::ll_hls::tests::test_media_part_to_tag_basic ... ok [INFO] [stdout] test hls::ll_hls::tests::test_preload_hint_part_tag ... ok [INFO] [stdout] test hls::ll_hls::tests::test_rendition_reports_in_m3u8 ... ok [INFO] [stdout] test hls::ll_hls::tests::test_media_part_independent_tag ... ok [INFO] [stdout] test hls::ll_hls::tests::test_m3u8_contains_extinf ... ok [INFO] [stdout] test hls::ll_hls::tests::test_rendition_report_tag ... ok [INFO] [stdout] test hls::playlist::tests::test_parse_byte_range ... ok [INFO] [stdout] test hls::ll_hls::tests::test_segment_duration_accumulates ... ok [INFO] [stdout] test hls::playlist::tests::test_best_variant_for_bandwidth ... ok [INFO] [stdout] test hls::ll_hls::tests::test_server_control_tag ... ok [INFO] [stdout] test hls::ll_hls::tests::test_empty_playlist_to_m3u8 ... ok [INFO] [stdout] test hls::playlist::tests::test_parse_master_playlist ... ok [INFO] [stdout] test hls::ll_hls::tests::test_window_slides ... ok [INFO] [stdout] test hls::playlist::tests::test_parse_media_playlist ... ok [INFO] [stdout] test hls::segment::tests::test_byte_range ... ok [INFO] [stdout] test hls::segment::tests::test_fetch_config_default ... ok [INFO] [stdout] test hls::playlist::tests::test_segment_builder ... ok [INFO] [stdout] test hls::playlist::tests::test_roundtrip_media_playlist ... ok [INFO] [stdout] test hls::segment::tests::test_fetch_result ... ok [INFO] [stdout] test hls::segment::tests::test_byte_range_empty ... ok [INFO] [stdout] test hls::playlist::tests::test_total_duration ... ok [INFO] [stdout] test hls::playlist::tests::test_roundtrip_master_playlist ... ok [INFO] [stdout] test hls::segment::tests::test_partial_segment_cache_key ... ok [INFO] [stdout] test hls::segment::tests::test_prefetch_queue_enqueue_and_pop ... ok [INFO] [stdout] test hls::segment::tests::test_prefetch_queue_failed_entry ... ok [INFO] [stdout] test hls::segment::tests::test_push_hint_parse_ignores_non_preload ... ok [INFO] [stdout] test hls::segment::tests::test_push_hint_parse_with_type ... ok [INFO] [stdout] test hls::segment::tests::test_partial_segment_as_last ... ok [INFO] [stdout] test hls::segment::tests::test_push_hint_round_trip ... ok [INFO] [stdout] test hls::segment::tests::test_prefetch_queue_capacity_eviction ... ok [INFO] [stdout] test hls::segment::tests::test_prefetch_queue_clear ... ok [INFO] [stdout] test hls::segment::tests::test_push_hint_parse_multiple ... ok [INFO] [stdout] test hls::segment::tests::test_push_hint_parse_simple ... ok [INFO] [stdout] test hls::segment::tests::test_push_hint_to_link_header ... ok [INFO] [stdout] test hls::segment::tests::test_resolve_url_absolute_path ... ok [INFO] [stdout] test hls::segment::tests::test_segment_cache_basic ... ok [INFO] [stdout] test hls::segment::tests::test_segment_cache_clear ... ok [INFO] [stdout] test hls::segment::tests::test_segment_cache_push ... ok [INFO] [stdout] test hls::segment::tests::test_resolve_url_relative ... ok [INFO] [stdout] test hls::segment::tests::test_segment_cache_eviction ... ok [INFO] [stdout] test hls::segment::tests::test_resolve_url_absolute ... ok [INFO] [stdout] test http2::tests::test_decode_multiple_frames_in_buffer ... ok [INFO] [stdout] test http2::tests::test_decode_ping_frame ... ok [INFO] [stdout] test http2::tests::test_decode_roundtrip_headers ... ok [INFO] [stdout] test http2::tests::test_decode_error_payload_truncated ... ok [INFO] [stdout] test http2::tests::test_decode_error_buffer_too_short_header ... ok [INFO] [stdout] test http2::tests::test_decode_roundtrip_data ... ok [INFO] [stdout] test http2::tests::test_decode_settings_frame ... ok [INFO] [stdout] test http2::tests::test_encode_data_frame_header ... ok [INFO] [stdout] test http2::tests::test_encode_empty_payload ... ok [INFO] [stdout] test http2::tests::test_frame_type_roundtrip_all_known ... ok [INFO] [stdout] test http2::tests::test_rst_stream_frame ... ok [INFO] [stdout] test http2::tests::test_frame_type_unknown ... ok [INFO] [stdout] test http2::tests::test_goaway_frame ... ok [INFO] [stdout] test http2::tests::test_flag_helpers ... ok [INFO] [stdout] test http2::tests::test_frame_new_too_large ... ok [INFO] [stdout] test http2::tests::test_settings_encode_omits_none ... ok [INFO] [stdout] test http2::tests::test_settings_invalid_payload_length ... ok [INFO] [stdout] test http2::tests::test_settings_empty_payload ... ok [INFO] [stdout] test http2::tests::test_ping_ack_frame ... ok [INFO] [stdout] test http2::tests::test_window_update_frame ... ok [INFO] [stdout] test http2::tests::test_settings_encode_decode_roundtrip ... ok [INFO] [stdout] test http2::tests::test_settings_unknown_identifier_ignored ... ok [INFO] [stdout] test ice::tests::test_candidate_priority_ordering ... ok [INFO] [stdout] test http2::tests::test_stream_id_msb_cleared_on_encode ... ok [INFO] [stdout] test ice::tests::test_candidate_to_sdp ... ok [INFO] [stdout] test http2::tests::test_settings_ack_frame ... ok [INFO] [stdout] test ice::tests::test_candidate_type_sdp_names ... ok [INFO] [stdout] test http2::tests::test_window_update_frame_zero_error ... ok [INFO] [stdout] test ice::tests::test_host_candidate_construction ... ok [INFO] [stdout] test ice::tests::test_candidate_type_preference ... ok [INFO] [stdout] test ice::tests::test_ice_agent_check_success ... ok [INFO] [stdout] test ice::tests::test_ice_agent_check_failure ... ok [INFO] [stdout] test ice::tests::test_ice_agent_controlled_cannot_nominate ... ok [INFO] [stdout] test ice::tests::test_ice_agent_close ... ok [INFO] [stdout] test ice::tests::test_ice_agent_credentials ... ok [INFO] [stdout] test ice::tests::test_ice_agent_initial_state ... ok [INFO] [stdout] test hls::segment::tests::test_segment_cache_ttl_expired ... ok [INFO] [stdout] test ice::tests::test_ice_agent_pair_creation ... ok [INFO] [stdout] test ice::tests::test_ice_agent_start_gathering ... ok [INFO] [stdout] test ice::tests::test_ice_agent_nomination ... ok [INFO] [stdout] test ice::tests::test_ice_agent_start_checks ... ok [INFO] [stdout] test ice::tests::test_ice_config_defaults ... ok [INFO] [stdout] test ice::tests::test_ice_different_components_dont_pair ... ok [INFO] [stdout] test ice::tests::test_relay_candidate ... ok [INFO] [stdout] test ice::tests::test_server_reflexive_candidate ... ok [INFO] [stdout] test ll_dash::tests::test_avc_high_codecs ... ok [INFO] [stdout] test ll_dash::tests::test_default_config_values ... ok [INFO] [stdout] test ll_dash::tests::test_derived_ato ... ok [INFO] [stdout] test ll_dash::tests::test_fragment_duration_secs ... ok [INFO] [stdout] test ll_dash::tests::test_fragments_per_segment ... ok [INFO] [stdout] test ll_dash::tests::test_mpd_xml_atc_false ... ok [INFO] [stdout] test ll_dash::tests::test_mpd_xml_ato ... ok [INFO] [stdout] test ll_dash::tests::test_mpd_xml_closes_mpd_element ... ok [INFO] [stdout] test ll_dash::tests::test_mpd_xml_opening ... ok [INFO] [stdout] test ll_dash::tests::test_mpd_xml_representations ... ok [INFO] [stdout] test ll_dash::tests::test_mpd_xml_service_description ... ok [INFO] [stdout] test ll_dash::tests::test_representation_to_xml ... ok [INFO] [stdout] test ll_dash::tests::test_segment_duration_secs ... ok [INFO] [stdout] test ll_dash::tests::test_ull_config ... ok [INFO] [stdout] test ll_dash::tests::test_validate_default_ok ... ok [INFO] [stdout] test ll_dash::tests::test_validate_fragment_exceeds_segment ... ok [INFO] [stdout] test ll_dash::tests::test_validate_zero_fragment ... ok [INFO] [stdout] test ll_dash::tests::test_validate_non_divisible ... ok [INFO] [stdout] test ll_dash_config::tests::test_add_chunk_completes_on_count ... ok [INFO] [stdout] test ll_dash_config::tests::test_add_chunk_completes_on_final ... ok [INFO] [stdout] test ll_dash_config::tests::test_assembler_expected_chunks ... ok [INFO] [stdout] test ll_dash_config::tests::test_chunk_mark_final ... ok [INFO] [stdout] test ll_dash_config::tests::test_chunks_received ... ok [INFO] [stdout] test ll_dash_config::tests::test_expected_chunks_per_segment ... ok [INFO] [stdout] test ll_dash_config::tests::test_get_segment_data_assembles ... ok [INFO] [stdout] test ll_dash_config::tests::test_is_segment_complete ... ok [INFO] [stdout] test ll_dash_config::tests::test_mpd_contains_ato ... ok [INFO] [stdout] test ll_dash_config::tests::test_mpd_contains_service_description ... ok [INFO] [stdout] test ice::tests::test_ice_config_builder ... ok [INFO] [stdout] test ice::tests::test_ice_role_names ... ok [INFO] [stdout] test ll_dash_config::tests::test_validate_ato_too_large ... ok [INFO] [stdout] test ll_dash_config::tests::test_multiple_segments ... ok [INFO] [stdout] test ll_dash_config::tests::test_ull_chunks_per_segment ... ok [INFO] [stdout] test ll_dash::tests::test_av1_codecs ... ok [INFO] [stdout] test ll_dash_config::tests::test_validate_zero_chunk ... ok [INFO] [stdout] test ll_dash_config::tests::test_validate_bad_ratio ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_config_defaults ... ok [INFO] [stdout] test ll_dash::tests::test_add_representation ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_clear ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_control_header ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_dash_mpd ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_hit_stats ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_invalidate ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_put_get ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_max_entries ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_miss ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_revalidation_fresh ... ok [INFO] [stdout] test manifest_cache::tests::test_cached_manifest_is_fresh ... ok [INFO] [stdout] test manifest_cache::tests::test_etag_match ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_total_bytes ... ok [INFO] [stdout] test manifest_cache::tests::test_manifest_type_label ... ok [INFO] [stdout] test manifest_cache::tests::test_remaining_ttl ... ok [INFO] [stdout] test mdns::tests::test_announce_answer_count_with_ipv4 ... ok [INFO] [stdout] test manifest_cache::tests::test_etag_header_quoted ... ok [INFO] [stdout] test manifest_cache::tests::test_cached_manifest_stale_but_usable ... ok [INFO] [stdout] test manifest_cache::tests::test_manifest_type_content_type ... ok [INFO] [stdout] test manifest_cache::tests::test_etag_mismatch ... ok [INFO] [stdout] test manifest_cache::tests::test_etag_changes_with_content ... ok [INFO] [stdout] test mdns::tests::test_announce_answer_count_without_ipv4 ... ok [INFO] [stdout] test mdns::tests::test_decode_dns_name_empty_label ... ok [INFO] [stdout] test mdns::tests::test_decode_dns_name_pointer_loop_error ... ok [INFO] [stdout] test mdns::tests::test_decode_dns_name_simple ... ok [INFO] [stdout] test mdns::tests::test_build_query_parses_back ... ok [INFO] [stdout] test mdns::tests::test_decode_dns_name_with_pointer ... ok [INFO] [stdout] test mdns::tests::test_build_query_qu_bit_set ... ok [INFO] [stdout] test mdns::tests::test_announce_produces_response_flag ... ok [INFO] [stdout] test mdns::tests::test_encode_dns_name_simple ... ok [INFO] [stdout] test mdns::tests::test_ensure_fqdn ... ok [INFO] [stdout] test mdns::tests::test_encode_decode_txt_roundtrip ... ok [INFO] [stdout] test mdns::tests::test_encode_dns_name_fqdn ... ok [INFO] [stdout] test mdns::tests::test_encode_dns_name_root ... ok [INFO] [stdout] test mdns::tests::test_encode_txt_empty ... ok [INFO] [stdout] test mdns::tests::test_parse_announced_packet ... ok [INFO] [stdout] test multicast::tests::test_igmp_version_variants ... ok [INFO] [stdout] test mdns::tests::test_parse_error_too_short ... ok [INFO] [stdout] test mdns::tests::test_parse_minimal_response_no_records ... ok [INFO] [stdout] test mdns::tests::test_parse_srv_record_fields ... ok [INFO] [stdout] test mdns::tests::test_parse_txt_record_values ... ok [INFO] [stdout] test multicast::tests::test_is_valid_address_invalid ... ok [INFO] [stdout] test multicast::tests::test_is_valid_address_valid ... ok [INFO] [stdout] test multicast::tests::test_multicast_group_new ... ok [INFO] [stdout] test multicast::tests::test_multicast_join_request ... ok [INFO] [stdout] test multicast::tests::test_multicast_group_with_source ... ok [INFO] [stdout] test multicast::tests::test_multicast_manager_double_join ... ok [INFO] [stdout] test multicast::tests::test_multicast_manager_reject_invalid ... ok [INFO] [stdout] test multicast::tests::test_multicast_manager_join_leave ... ok [INFO] [stdout] test multicast::tests::test_multicast_stats_record_packet ... ok [INFO] [stdout] test multicast::tests::test_ssm_channel_invalid_group ... ok [INFO] [stdout] test multicast::tests::test_ssm_channel_valid ... ok [INFO] [stdout] test multicast_manager::tests::test_drain_messages ... ok [INFO] [stdout] test multicast_manager::tests::test_entries_by_scope ... ok [INFO] [stdout] test multicast_manager::tests::test_leave_not_joined ... ok [INFO] [stdout] test multicast_manager::tests::test_join_invalid_addr ... ok [INFO] [stdout] test multicast_manager::tests::test_protocol_helpers ... ok [INFO] [stdout] test multicast_manager::tests::test_leave ... ok [INFO] [stdout] test multicast_manager::tests::test_record_packet ... ok [INFO] [stdout] test multicast_manager::tests::test_join_basic ... ok [INFO] [stdout] test multicast_manager::tests::test_validate_ipv4_invalid ... ok [INFO] [stdout] test multicast_manager::tests::test_scope_from_ttl ... ok [INFO] [stdout] test multicast_manager::tests::test_scope_max_ttl ... ok [INFO] [stdout] test multicast_manager::tests::test_validate_ipv4_valid ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_evict_expired ... ok [INFO] [stdout] test multicast_manager::tests::test_ssm_join_include ... ok [INFO] [stdout] test manifest_cache::tests::test_cache_expired_entry ... ok [INFO] [stdout] test multicast_manager::tests::test_ssm_on_igmpv2_fails ... ok [INFO] [stdout] test multicast_manager::tests::test_validate_ipv6 ... ok [INFO] [stdout] test multipath::tests::test_path_handle_is_usable ... ok [INFO] [stdout] test multipath::tests::test_path_health_quality_decreases_with_loss ... ok [INFO] [stdout] test multipath::tests::test_path_health_rtt_update ... ok [INFO] [stdout] test multipath::tests::test_path_stats_new_active ... ok [INFO] [stdout] test multipath::tests::test_path_health_quality_score_default ... ok [INFO] [stdout] test multipath::tests::test_receiver_path_stats ... ok [INFO] [stdout] test multipath::tests::test_path_health_loss_update ... ok [INFO] [stdout] test multipath::tests::test_sender_active_standby ... ok [INFO] [stdout] test multipath::tests::test_sender_add_path ... ok [INFO] [stdout] test multipath::tests::test_receiver_dedup ... ok [INFO] [stdout] test multipath::tests::test_endpoint_with_interface ... ok [INFO] [stdout] test multipath::tests::test_sender_no_paths ... ok [INFO] [stdout] test multipath::tests::test_sender_redundant_strategy ... ok [INFO] [stdout] test multipath::tests::test_sender_remove_path ... ok [INFO] [stdout] test multipath::tests::test_sender_total_dispatched ... ok [INFO] [stdout] test multipath::tests::test_sender_update_path_rtt ... ok [INFO] [stdout] test multipath::tests::test_sender_usable_path_count ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_active_path_indices ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_deactivate_path ... ok [INFO] [stdout] test multipath::tests::test_strategy_names ... ok [INFO] [stdout] test multipath::tests::test_sender_bandwidth_weighted ... ok [INFO] [stdout] test multipath::tests::test_sender_best_path ... ok [INFO] [stdout] test multipath::tests::test_sender_round_robin ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_high_loss_deactivates_path ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_record_bytes ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_redundant_returns_index ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_starts_active ... ok [INFO] [stdout] test network_path::tests::test_empty_path ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_update_rtt ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_weighted_round_robin ... ok [INFO] [stdout] test network_path::tests::test_has_address_false ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_round_robin_alternates ... ok [INFO] [stdout] test network_path::tests::test_estimated_latency_ms ... ok [INFO] [stdout] test multipath::tests::test_stream_sender_min_latency ... ok [INFO] [stdout] test network_path::tests::test_estimated_latency_skips_none_rtt ... ok [INFO] [stdout] test network_path::tests::test_has_address_true ... ok [INFO] [stdout] test network_path::tests::test_is_gateway_false ... ok [INFO] [stdout] test network_path::tests::test_is_gateway_true ... ok [INFO] [stdout] test network_path::tests::test_probe_auto_complete ... ok [INFO] [stdout] test network_path::tests::test_probe_complete_returns_path ... ok [INFO] [stdout] test network_path::tests::test_probe_initial_status ... ok [INFO] [stdout] test network_path::tests::test_probe_add_hop ... ok [INFO] [stdout] test network_path::tests::test_slowest_hop ... ok [INFO] [stdout] test network_path::tests::test_hop_count ... ok [INFO] [stdout] test network_simulator::tests::test_bandwidth_limits_delivery ... ok [INFO] [stdout] test network_path::tests::test_slowest_hop_empty ... ok [INFO] [stdout] test network_simulator::tests::test_presets_construct ... ok [INFO] [stdout] test network_simulator::tests::test_deterministic_seed ... ok [INFO] [stdout] test network_simulator::tests::test_reset_clears_state ... ok [INFO] [stdout] test network_simulator::tests::test_loss_drops_packets ... ok [INFO] [stdout] test network_simulator::tests::test_send_and_receive ... ok [INFO] [stdout] test network_simulator::tests::test_sinusoidal_bandwidth_profile ... ok [INFO] [stdout] test network_simulator::tests::test_queue_overflow ... ok [INFO] [stdout] test pacing::tests::test_ideal_gap ... ok [INFO] [stdout] test pacing::tests::test_max_bucket_bits ... ok [INFO] [stdout] test network_simulator::tests::test_stats_tracking ... ok [INFO] [stdout] test pacing::tests::test_ideal_gap_zero_bitrate ... ok [INFO] [stdout] test network_simulator::tests::test_simulate_segment_download ... ok [INFO] [stdout] test pacing::tests::test_paced_packet_priority ... ok [INFO] [stdout] test pacing::tests::test_pacer_high_priority_depth ... ok [INFO] [stdout] test pacing::tests::test_paced_packet_queue_latency ... ok [INFO] [stdout] test pacing::tests::test_paced_packet_size ... ok [INFO] [stdout] test pacing::tests::test_pacer_all_priority_queues ... ok [INFO] [stdout] test pacing::tests::test_pacer_enqueue_dequeue ... ok [INFO] [stdout] test pacing::tests::test_pacer_multiple_packets ... ok [INFO] [stdout] test pacing::tests::test_pacer_queue_depth ... ok [INFO] [stdout] test pacing::tests::test_pacer_priority_order ... ok [INFO] [stdout] test pacing::tests::test_pacer_set_bitrate ... ok [INFO] [stdout] test pacing::tests::test_pacer_stats_after_dequeue ... ok [INFO] [stdout] test pacing::tests::test_pacer_zero_length_payload ... ok [INFO] [stdout] test pacing::tests::test_pacing_config_builder ... ok [INFO] [stdout] test pacing::tests::test_pacing_config_default ... ok [INFO] [stdout] test pacing::tests::test_token_bucket_starts_full ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_capacity ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_drop_oldest_low_priority ... ok [INFO] [stdout] test pacing::tests::test_pacer_queue_overflow ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_dequeue_highest_priority ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_dequeue_empty ... ok [INFO] [stdout] test pacing::tests::test_packet_priority_ordering ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_enqueue_within_capacity ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_drop_on_overflow ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_is_empty ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_overflow_same_priority_dropped ... ok [INFO] [stdout] test packet_buffer::tests::test_packet_expired_zero_ttl ... ok [INFO] [stdout] test packet_buffer::tests::test_packet_not_expired_fresh ... ok [INFO] [stdout] test packet_buffer::tests::test_packet_payload_len ... ok [INFO] [stdout] test packet_buffer::tests::test_priority_numeric_value ... ok [INFO] [stdout] test playlist_parser::tests::test_dash_segment_template_expansion ... ok [INFO] [stdout] test playlist_parser::tests::test_detect_dash_mpd ... ok [INFO] [stdout] test playlist_parser::tests::test_detect_hls_master ... ok [INFO] [stdout] test playlist_parser::tests::test_detect_hls_media ... ok [INFO] [stdout] test packet_buffer::tests::test_buffer_purge_expired ... ok [INFO] [stdout] test multipath::tests::test_receiver_drain_after_delay ... ok [INFO] [stdout] test playlist_parser::tests::test_iso8601_duration_parsing ... ok [INFO] [stdout] test packet_buffer::tests::test_priority_is_higher_than ... ok [INFO] [stdout] test playlist_parser::tests::test_parse_hls_media_basic ... ok [INFO] [stdout] test playlist_parser::tests::test_parse_hls_master_basic ... ok [INFO] [stdout] test playlist_parser::tests::test_parse_dash_mpd_static ... ok [INFO] [stdout] test playlist_parser::tests::test_parse_hls_media_with_url_resolution ... ok [INFO] [stdout] test playlist_parser::tests::test_parse_unknown_format_returns_error ... ok [INFO] [stdout] test playlist_parser::tests::test_url_resolver_abs_path ... ok [INFO] [stdout] test playlist_parser::tests::test_url_resolver_absolute ... ok [INFO] [stdout] test playlist_parser::tests::test_url_resolver_relative ... ok [INFO] [stdout] test protocol_detect::tests::test_confidence_clamped ... ok [INFO] [stdout] test protocol_detect::tests::test_default_ports_count ... ok [INFO] [stdout] test playlist_parser::tests::test_detect_unknown ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_uri_dash_path ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_bytes_empty ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_bytes_rtmp ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_bytes_rtp ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_bytes_stun ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_port_rtmp ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_uri_dash_mpd ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_uri_hls_m3u8 ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_uri_hls_path ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_uri_rtmp ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_uri_srt ... ok [INFO] [stdout] test protocol_detect::tests::test_detect_uri_unknown ... ok [INFO] [stdout] test protocol_detect::tests::test_is_confident ... ok [INFO] [stdout] test protocol_detect::tests::test_protocol_display ... ok [INFO] [stdout] test qos_monitor::tests::test_eviction ... ok [INFO] [stdout] test qos_monitor::tests::test_health_rating_display ... ok [INFO] [stdout] test qos_monitor::tests::test_high_loss_poor ... ok [INFO] [stdout] test qos_monitor::tests::test_latest ... ok [INFO] [stdout] test qos_monitor::tests::test_loss_clamped ... ok [INFO] [stdout] test qos_monitor::tests::test_max_jitter ... ok [INFO] [stdout] test qos_monitor::tests::test_mean_jitter ... ok [INFO] [stdout] test qos_monitor::tests::test_mean_rtt_partial ... ok [INFO] [stdout] test qos_monitor::tests::test_monitor_starts_empty ... ok [INFO] [stdout] test qos_monitor::tests::test_perfect_stream ... ok [INFO] [stdout] test qos_monitor::tests::test_push_increases_len ... ok [INFO] [stdout] test qos_monitor::tests::test_rating_boundaries ... ok [INFO] [stdout] test qos_monitor::tests::test_reset ... ok [INFO] [stdout] test qos_monitor::tests::test_summary_empty ... ok [INFO] [stdout] test quic::tests::test_active_streams_count ... ok [INFO] [stdout] test quic::tests::test_close_connection ... ok [INFO] [stdout] test quic::tests::test_close_stream_removes_it ... ok [INFO] [stdout] test quic::tests::test_close_unknown_stream_error ... ok [INFO] [stdout] test quic::tests::test_default_config_max_streams ... ok [INFO] [stdout] test quic::tests::test_extend_flow_credit ... ok [INFO] [stdout] test quic::tests::test_max_streams_limit ... ok [INFO] [stdout] test quic::tests::test_new_connection_is_open ... ok [INFO] [stdout] test quic::tests::test_open_stream_unique_ids ... ok [INFO] [stdout] test quic::tests::test_send_bytes_deducts_flow_credit ... ok [INFO] [stdout] test quic::tests::test_send_bytes_flow_control_violation ... ok [INFO] [stdout] test quic::tests::test_signal_loss_halves_cwnd ... ok [INFO] [stdout] test quic::tests::test_stats_min_rtt_saturates ... ok [INFO] [stdout] test quic::tests::test_stream_direction_semantics ... ok [INFO] [stdout] test quic::tests::test_stats_rtt_duration ... ok [INFO] [stdout] test quic::tests::test_update_rtt_convergence ... ok [INFO] [stdout] test quic_datagram::tests::test_datagrams_sent ... ok [INFO] [stdout] test quic_datagram::tests::test_default_congestion_window ... ok [INFO] [stdout] test quic_datagram::tests::test_default_max_datagram_size ... ok [INFO] [stdout] test quic::tests::test_hls_over_quic_request_part_priority ... ok [INFO] [stdout] test quic::tests::test_update_rtt_first_sample ... ok [INFO] [stdout] test quic::tests::test_hls_over_quic_request_segment ... ok [INFO] [stdout] test quic_datagram::tests::test_fragment_exact_divisor ... ok [INFO] [stdout] test quic_datagram::tests::test_max_datagrams_in_flight ... ok [INFO] [stdout] test quic_datagram::tests::test_fragment_empty_data ... ok [INFO] [stdout] test quic::tests::test_open_stream_on_closed_connection ... ok [INFO] [stdout] test quic_datagram::tests::test_multiple_stream_ids ... ok [INFO] [stdout] test quic_datagram::tests::test_next_datagram_increments_sequence ... ok [INFO] [stdout] test quic_datagram::tests::test_next_datagram_stream_id ... ok [INFO] [stdout] test quic_datagram::tests::test_fragment_splits_into_chunks ... ok [INFO] [stdout] test quic_datagram::tests::test_next_datagram_default_priority ... ok [INFO] [stdout] test quic_datagram::tests::test_quic_datagram_size_is_empty ... ok [INFO] [stdout] test quic_datagram::tests::test_sender_sequence_starts_at_zero ... ok [INFO] [stdout] test quic_datagram::tests::test_reassemble_roundtrip ... ok [INFO] [stdout] test quic_datagram::tests::test_reset_sequence ... ok [INFO] [stdout] test quic_datagram::tests::test_next_datagram_custom_priority ... ok [INFO] [stdout] test quic_datagram::tests::test_should_fragment_empty_is_false ... ok [INFO] [stdout] test quic_datagram::tests::test_should_fragment_large_data ... ok [INFO] [stdout] test quic_datagram::tests::test_should_fragment_exact_max ... ok [INFO] [stdout] test relay::tests::test_protocol_bridge_transcode ... ok [INFO] [stdout] test quic_datagram::tests::test_should_fragment_small_data ... ok [INFO] [stdout] test relay::tests::test_endpoint_to_url ... ok [INFO] [stdout] test quic_datagram::tests::test_validate_valid ... ok [INFO] [stdout] test quic_datagram::tests::test_validate_zero_size ... ok [INFO] [stdout] test quic_datagram::tests::test_with_defaults ... ok [INFO] [stdout] test relay::tests::test_endpoint_key_and_passphrase ... ok [INFO] [stdout] test relay::tests::test_protocol_bridge_passthrough ... ok [INFO] [stdout] test relay::tests::test_relay_protocol_names ... ok [INFO] [stdout] test relay::tests::test_relay_protocol_push_pull ... ok [INFO] [stdout] test relay::tests::test_relay_route_drop_ratio ... ok [INFO] [stdout] test relay::tests::test_relay_route_idle_drops_frames ... ok [INFO] [stdout] test relay::tests::test_relay_route_new ... ok [INFO] [stdout] test relay::tests::test_relay_route_relay_frame ... ok [INFO] [stdout] test relay::tests::test_relay_route_stream_duration ... ok [INFO] [stdout] test relay::tests::test_relay_server_active_count ... ok [INFO] [stdout] test relay::tests::test_relay_server_aggregate_stats ... ok [INFO] [stdout] test relay::tests::test_relay_server_process_frame ... ok [INFO] [stdout] test relay::tests::test_relay_server_max_routes ... ok [INFO] [stdout] test relay::tests::test_stream_relay_drop_when_full ... ok [INFO] [stdout] test relay::tests::test_relay_route_outputs ... ok [INFO] [stdout] test relay::tests::test_relay_server_add_remove ... ok [INFO] [stdout] test relay::tests::test_stream_relay_protocol_bridge ... ok [INFO] [stdout] test retry_policy::tests::test_constant_backoff ... ok [INFO] [stdout] test retry_policy::tests::test_default_policy ... ok [INFO] [stdout] test retry_policy::tests::test_error_class_delay_multiplier ... ok [INFO] [stdout] test retry_policy::tests::test_error_class_should_retry ... ok [INFO] [stdout] test retry_policy::tests::test_jitter_zero_factor ... ok [INFO] [stdout] test relay::tests::test_stream_relay_push_process ... ok [INFO] [stdout] test retry_policy::tests::test_builder_chaining ... ok [INFO] [stdout] test retry_policy::tests::test_linear_backoff_delays ... ok [INFO] [stdout] test retry_policy::tests::test_delay_capped_at_max ... ok [INFO] [stdout] test retry_policy::tests::test_exponential_backoff_delays ... ok [INFO] [stdout] test retry_policy::tests::test_jitter_reduces_delay ... ok [INFO] [stdout] test retry_policy::tests::test_rate_limited_extra_delay ... ok [INFO] [stdout] test retry_policy::tests::test_retry_state_reset ... ok [INFO] [stdout] test retry_policy::tests::test_should_not_retry_permanent ... ok [INFO] [stdout] test rist::tests::test_build_rtp_header_version ... ok [INFO] [stdout] test rist::tests::test_null_packet_deletion ... ok [INFO] [stdout] test rist::tests::test_null_packet_restore ... ok [INFO] [stdout] test rist::tests::test_parse_build_rtp_header_roundtrip ... ok [INFO] [stdout] test retry_policy::tests::test_retry_state_accumulates_wait ... ok [INFO] [stdout] test retry_policy::tests::test_retry_state_give_up ... ok [INFO] [stdout] test rist::tests::test_parse_rtp_header_bad_version ... ok [INFO] [stdout] test retry_policy::tests::test_should_retry_within_limit ... ok [INFO] [stdout] test rist::tests::test_build_rtp_header_marker ... ok [INFO] [stdout] test rist::tests::test_parse_rtp_header_too_short ... ok [INFO] [stdout] test rist::tests::test_reorder_buffer_gap_nack ... ok [INFO] [stdout] test rist::tests::test_rist_config_default ... ok [INFO] [stdout] test rist::tests::test_rist_flow_stats_loss_ratio ... ok [INFO] [stdout] test rist::tests::test_rist_nack_single_encode ... ok [INFO] [stdout] test rist::tests::test_rist_packet_decode_too_short ... ok [INFO] [stdout] test rist::tests::test_reorder_buffer_insert_drain ... ok [INFO] [stdout] test rist::tests::test_rist_packet_decode_invalid_version ... ok [INFO] [stdout] test rist::tests::test_rist_config_builder ... ok [INFO] [stdout] test rist::tests::test_rist_flow_stats_zero_total ... ok [INFO] [stdout] test rist::tests::test_rist_nack_list_new ... ok [INFO] [stdout] test rist::tests::test_rist_nack_range ... ok [INFO] [stdout] test rist::tests::test_rist_packet_encode_decode ... ok [INFO] [stdout] test rist::tests::test_rist_sender_nack_missing ... ok [INFO] [stdout] test rist::tests::test_rist_profile_names ... ok [INFO] [stdout] test rist::tests::test_rist_receiver_receive_datagram ... ok [INFO] [stdout] test rist::tests::test_rist_sender_handle_nack ... ok [INFO] [stdout] test rist::tests::test_rist_sender_send_packet ... ok [INFO] [stdout] test rist::tests::test_rist_sender_sequence_wraps ... ok [INFO] [stdout] test rist::tests::test_rist_simple_config_defaults ... ok [INFO] [stdout] test rist::tests::test_rist_simple_config_into_full ... ok [INFO] [stdout] test rist::tests::test_rist_task_receiver_duplicate ... ok [INFO] [stdout] test rist::tests::test_rist_task_receiver_generate_nacks_gap ... ok [INFO] [stdout] test rist::tests::test_rist_task_receiver_in_order ... ok [INFO] [stdout] test rist::tests::test_rist_task_receiver_missing_count ... ok [INFO] [stdout] test rist::tests::test_rist_task_sender_handle_nack_unknown ... ok [INFO] [stdout] test rist::tests::test_rist_task_sender_packetize_and_handle_nack ... ok [INFO] [stdout] test rist::tests::test_rist_task_sender_prune_buffer ... ok [INFO] [stdout] test rist::tests::test_rist_sender_evict_old_packets ... ok [INFO] [stdout] test rtmp::amf::tests::test_encode_decode_boolean ... ok [INFO] [stdout] test rtmp::amf::tests::test_encode_decode_date ... ok [INFO] [stdout] test rtmp::amf::tests::test_encode_decode_string ... ok [INFO] [stdout] test rist::tests::test_rist_task_sender_prune_buffer_keeps_recent ... ok [INFO] [stdout] test rtmp::amf::tests::test_multiple_values ... ok [INFO] [stdout] test rtmp::amf::tests::test_amf_value_helpers ... ok [INFO] [stdout] test rtmp::amf::tests::test_encode_decode_array ... ok [INFO] [stdout] test rtmp::amf::tests::test_encode_decode_null ... ok [INFO] [stdout] test rtmp::amf::tests::test_encode_decode_number ... ok [INFO] [stdout] test rtmp::amf::tests::test_encode_decode_object ... ok [INFO] [stdout] test rtmp::chunk::tests::test_amf0_null_encoding ... ok [INFO] [stdout] test rtmp::chunk::tests::test_amf0_number_encoding ... ok [INFO] [stdout] test rtmp::chunk::tests::test_amf0_array_encoding ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_decoder_incremental_feed ... ok [INFO] [stdout] test rtmp::chunk::tests::test_amf0_boolean_encoding ... ok [INFO] [stdout] test rtmp::chunk::tests::test_amf0_encode_into_buf ... ok [INFO] [stdout] test rtmp::chunk::tests::test_amf0_object_encoding ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_decoder_large_message ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_decoder_empty_input ... ok [INFO] [stdout] test rtmp::chunk::tests::test_amf0_string_encoding ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_encoder_default_chunk_size ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_encoder_encode_set_chunk_size ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_header_encode_decode ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_decoder_multiple_messages ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_decoder_set_chunk_size ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_decoder_simple_message ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_encoder_encode_small_payload ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_encoder_header_compression ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_encoder_set_chunk_size_capped ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_encoder_with_chunk_size ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_stream_large_message ... ok [INFO] [stdout] test rtmp::chunk::tests::test_extended_timestamp ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_adaptive_update_medium_loss_holds ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_header_large_csid ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_header_type ... ok [INFO] [stdout] test rtmp::chunk::tests::test_chunk_stream_encode_decode ... ok [INFO] [stdout] test rtmp::chunk::tests::test_message_header ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_adaptive_update_high_loss_reduces_size ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_adaptive_update_low_loss_optimizes ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_optimize_chunk_size_high_bandwidth_clamped_to_max ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_optimize_chunk_size_low_bandwidth_clamped_to_min ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_optimize_chunk_size_medium_bandwidth ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_optimize_chunk_size_stored ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_rtmp_session_stats_drop_frame ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_rtmp_session_stats_record_chunk ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_rtmp_session_stats_reset ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_rtmp_session_stats_throughput_bps ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_rtmp_session_stats_throughput_zero_elapsed ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_suggested_chunk_count_exact ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_suggested_chunk_count_zero_bytes ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_with_bounds_custom ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_with_bounds_clamps ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_amf0_number ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_amf0_string ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_build_video_message ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_build_connect_message_not_empty ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_client_simulate_lifecycle ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_publish_mode_str ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_optimize_chunk_size_zero_bandwidth_clamped_to_min ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_record_stats ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_record_sent_delegates ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_rtmp_session_stats_avg_chunk_size ... ok [INFO] [stdout] test rtmp::chunk_optimizer::tests::test_suggested_chunk_count_ceiling ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_client_state_is_active ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_stream_key_from_url ... ok [INFO] [stdout] test rtmp::client::client_spec_tests::test_stream_key_new ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_audio_tag_encode_decode ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_av1_keyframe ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_capabilities_default ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_capabilities_negotiation ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_codec_summary ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_flac_audio_tag ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_fourcc_constants ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_audio_packet_type ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_audio_sequence_start ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_audio_tag_decode_rejects_non_enhanced ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_composition_time ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_fourcc_display ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_fourcc_codec_name ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_fourcc_equality ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_fourcc_from_str ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_fourcc_patent_free ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_frame_type ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_patent_free_capabilities ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_opus_audio_tag ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_sequence_start ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_sequence_end ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_video_packet_type ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_video_tag_decode_rejects_non_enhanced ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_video_tag_decode_too_short ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_video_tag_encode_decode_coded_frames ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_video_tag_encode_decode_sequence_start ... ok [INFO] [stdout] test rtmp::enhanced::tests::test_vp9_keyframe ... ok [INFO] [stdout] test rtmp::handshake::tests::test_client_server_handshake ... ok [INFO] [stdout] test rtmp::handshake::tests::test_create_random_data ... ok [INFO] [stdout] test rtmp::handshake::tests::test_generate_c0c1 ... ok [INFO] [stdout] test rtmp::handshake::tests::test_handshake_new ... ok [INFO] [stdout] test rtmp::handshake::tests::test_handshake_state ... ok [INFO] [stdout] test rtmp::handshake::tests::test_invalid_version ... ok [INFO] [stdout] test rtmp::handshake::tests::test_short_packet ... ok [INFO] [stdout] test rtmp::message::tests::test_command_message_connect ... ok [INFO] [stdout] test rtmp::message::tests::test_command_message_play ... ok [INFO] [stdout] test rtmp::message::tests::test_control_message_encode_decode ... ok [INFO] [stdout] test rtmp::message::tests::test_message_type_classification ... ok [INFO] [stdout] test rtmp::message::tests::test_message_type_from_id ... ok [INFO] [stdout] test rtmp::message::tests::test_peer_bandwidth ... ok [INFO] [stdout] test rtmp::message::tests::test_rtmp_message_type_id ... ok [INFO] [stdout] test rtmp::message::tests::test_user_control_event ... ok [INFO] [stdout] test rtmp::message::tests::test_window_ack_size ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_codec_fourcc ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_codec_from_fourcc ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_codec_names ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_codec_patent_free ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_header_new_sets_ex_bit ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_header_parse_rejects_legacy ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_header_parse_too_short ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_header_parse_unknown_fourcc ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_header_roundtrip_vp9_inter ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_header_serialize_av1_sequence ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_av1_interframe ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_av1_keyframe ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_av1_sequence ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_coded_frames_composition_time_bytes ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_coded_frames_parse_skips_comp_time ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_hevc_sequence_roundtrip ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_parse_coded_frames_too_short ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_roundtrip_av1_coded_frames_x ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_roundtrip_av1_sequence ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_type_bits_roundtrip ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_type_unknown ... ok [INFO] [stdout] test rtmp::rtmp_ext::tests::test_packet_vp9_sequence ... ok [INFO] [stdout] test rtmp::server::tests::test_allow_all_auth_play ... ok [INFO] [stdout] test rtmp::server::tests::test_allow_all_auth_publish ... ok [INFO] [stdout] test rtmp::server::tests::test_publish_type_round_trip ... ok [INFO] [stdout] test rtmp::server::tests::test_allow_all_auth_connect ... ok [INFO] [stdout] test rtmp::server::tests::test_recording_registry_active_count ... ok [INFO] [stdout] test rtmp::server::tests::test_recording_registry_prune ... ok [INFO] [stdout] test rtmp::server::tests::test_recording_registry_sessions_for_stream ... ok [INFO] [stdout] test rtmp::server::tests::test_recording_session_duration ... ok [INFO] [stdout] test rtmp::server::tests::test_recording_session_lifecycle ... ok [INFO] [stdout] test rtmp::server::tests::test_recording_session_pause_resume ... ok [INFO] [stdout] test rtmp::server::tests::test_relay_manager_add_and_stats ... ok [INFO] [stdout] test rtmp::server::tests::test_relay_manager_forward_updates_stats ... ok [INFO] [stdout] test rtmp::server::tests::test_relay_manager_mark_inactive ... ok [INFO] [stdout] test rtmp::server::tests::test_relay_manager_register_unregister ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_validator_empty_rejected ... ok [INFO] [stdout] test rtmp::server::tests::test_rtmp_server_builder ... ok [INFO] [stdout] test rtmp::server::tests::test_server_connection_state_is_active ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_validator_non_ascii_rejected ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_is_valid_convenience ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_validator_allowed_chars ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_validator_allowlist ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_validator_denylist_prefix ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_validator_numeric_only ... ok [INFO] [stdout] test rtp_session::tests::test_has_gap_false_consecutive ... ok [INFO] [stdout] test rtp_session::tests::test_has_gap_true ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_validator_too_long ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_key_validator_too_short ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_registry_duplicate_rejected ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_registry_get_nonexistent ... ok [INFO] [stdout] test rtmp::server::tests::test_stream_registry_register_unregister ... ok [INFO] [stdout] test rtp_session::tests::test_is_dynamic_dynamic_variant ... ok [INFO] [stdout] test rtp_session::tests::test_is_dynamic_opus ... ok [INFO] [stdout] test rtp_session::tests::test_raw_pt_pcma ... ok [INFO] [stdout] test rtp_session::tests::test_raw_pt_pcmu ... ok [INFO] [stdout] test rtp_session::tests::test_session_active_after_first_packet ... ok [INFO] [stdout] test rtp_session::tests::test_is_dynamic_pcmu ... ok [INFO] [stdout] test rtp_session::tests::test_session_bytes_received ... ok [INFO] [stdout] test rtp_session::tests::test_packet_loss_pct_50 ... ok [INFO] [stdout] test rtp_session::tests::test_raw_pt_dynamic ... ok [INFO] [stdout] test rtp_session::tests::test_sequence_gap_consecutive ... ok [INFO] [stdout] test rtp_session::tests::test_sequence_gap_wrap ... ok [INFO] [stdout] test rtp_session::tests::test_packet_loss_pct_zero_expected ... ok [INFO] [stdout] test session_tracker::tests::test_active_count ... ok [INFO] [stdout] test session_tracker::tests::test_label ... ok [INFO] [stdout] test session_tracker::tests::test_purge_dead ... ok [INFO] [stdout] test session_tracker::tests::test_record_received ... ok [INFO] [stdout] test rtp_session::tests::test_session_gap_detection ... ok [INFO] [stdout] test rtp_session::tests::test_session_no_loss_consecutive ... ok [INFO] [stdout] test rtp_session::tests::test_session_initial_not_active ... ok [INFO] [stdout] test session_tracker::tests::test_new_tracker_empty ... ok [INFO] [stdout] test session_tracker::tests::test_open_creates_connecting ... ok [INFO] [stdout] test rtp_session::tests::test_session_next_seq ... ok [INFO] [stdout] test session_tracker::tests::test_session_state_display ... ok [INFO] [stdout] test session_tracker::tests::test_session_state_is_alive ... ok [INFO] [stdout] test session_tracker::tests::test_throughput_zero_duration ... ok [INFO] [stdout] test session_tracker::tests::test_transition ... ok [INFO] [stdout] test session_tracker::tests::test_transition_unknown ... ok [INFO] [stdout] test session_tracker::tests::test_record_sent ... ok [INFO] [stdout] test session_tracker::tests::test_sequential_ids ... ok [INFO] [stdout] test session_tracker::tests::test_session_id_display ... ok [INFO] [stdout] test session_tracker::tests::test_throughput_kbps ... ok [INFO] [stdout] test session_tracker::tests::test_total_bytes ... ok [INFO] [stdout] test smpte2022_7::tests::test_config_builder ... ok [INFO] [stdout] test smpte2022_7::tests::test_config_default ... ok [INFO] [stdout] test smpte2022_7::tests::test_path_stats_default_health ... ok [INFO] [stdout] test smpte2022_7::tests::test_path_stats_health_with_losses ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_config_defaults ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_receiver_duplicate_discarded ... ok [INFO] [stdout] test smpte2022_7::tests::test_dual_path_sender_counts ... ok [INFO] [stdout] test smpte2022_7::tests::test_dual_path_sender_seq ... ok [INFO] [stdout] test smpte2022_7::tests::test_path_id_name ... ok [INFO] [stdout] test smpte2022_7::tests::test_path_index ... ok [INFO] [stdout] test smpte2022_7::tests::test_path_switching_stats_default ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_config_builder ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_receiver_path_a_delivers ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_receiver_stats_ref ... ok [INFO] [stdout] test smpte2022_7::tests::test_switcher_active_path_default ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_receiver_path_b_delivers ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_receiver_payload_preserved ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_receiver_pending_count ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_receiver_recovery_from_path_b ... ok [INFO] [stdout] test smpte2022_7::tests::test_st20227_receiver_sequential_path_a ... ok [INFO] [stdout] test smpte2022_7::tests::test_switcher_buffer_depth ... ok [INFO] [stdout] test smpte2022_7::tests::test_switcher_buffer_eviction ... ok [INFO] [stdout] test smpte2022_7::tests::test_switcher_first_copy_accepted ... ok [INFO] [stdout] test smpte2110::ancillary::tests::test_ancillary_data_type ... ok [INFO] [stdout] test smpte2022_7::tests::test_switcher_different_seqs ... ok [INFO] [stdout] test smpte2022_7::tests::test_switcher_duplicate_discarded ... ok [INFO] [stdout] test smpte2110::ancillary::tests::test_afd ... ok [INFO] [stdout] test smpte2110::ancillary::tests::test_ancillary_encoder ... ok [INFO] [stdout] test smpte2110::ancillary::tests::test_ancillary_data ... ok [INFO] [stdout] test smpte2110::ancillary::tests::test_cea608_data ... ok [INFO] [stdout] test smpte2110::audio::tests::test_aes3_subframe ... ok [INFO] [stdout] test smpte2110::ancillary::tests::test_timecode ... ok [INFO] [stdout] test smpte2110::audio::tests::test_16bit_packing ... ok [INFO] [stdout] test smpte2110::audio::tests::test_24bit_packing ... ok [INFO] [stdout] test smpte2110::audio::tests::test_aes3_frame ... ok [INFO] [stdout] test smpte2110::audio::tests::test_stereo_interleave ... ok [INFO] [stdout] test smpte2110::audio::tests::test_audio_config ... ok [INFO] [stdout] test smpte2110::audio::tests::test_audio_decoder ... ok [INFO] [stdout] test smpte2110::ptp::tests::test_clock_identity ... ok [INFO] [stdout] test smpte2110::audio::tests::test_audio_sample_rate ... ok [INFO] [stdout] test smpte2110::audio::tests::test_audio_encoder ... ok [INFO] [stdout] test smpte2110::ptp::tests::test_ptp_clock ... ok [INFO] [stdout] test smpte2110::ptp::tests::test_ptp_header_parse ... ok [INFO] [stdout] test smpte2110::ptp::tests::test_ptp_timestamp ... ok [INFO] [stdout] test smpte2110::sdp::tests::test_sdp_audio_media ... ok [INFO] [stdout] test smpte2110::rtp::tests::test_jitter_calculator ... ok [INFO] [stdout] test smpte2110::rtp::tests::test_rtp_header_parse_basic ... ok [INFO] [stdout] test smpte2110::sdp::tests::test_sdp_builder ... ok [INFO] [stdout] test smpte2110::rtp::tests::test_sequence_tracker ... ok [INFO] [stdout] test smpte2110::sdp::tests::test_media_type_str ... ok [INFO] [stdout] test smpte2110::sdp::tests::test_sdp_parse ... ok [INFO] [stdout] test smpte2110::sdp::tests::test_sdp_session_creation ... ok [INFO] [stdout] test smpte2110::sdp::tests::test_sdp_to_string ... ok [INFO] [stdout] test smpte2110::sdp::tests::test_sdp_video_media ... ok [INFO] [stdout] test smpte2110::tests::test_audio_source_creation ... ok [INFO] [stdout] test smpte2110::tests::test_sdp_generation ... ok [INFO] [stdout] test smpte2110::tests::test_st2110_config_default ... ok [INFO] [stdout] test smpte2110::tests::test_video_source_creation ... ok [INFO] [stdout] test smpte2110::timing::tests::test_frame_rate ... ok [INFO] [stdout] test smpte2110::timing::tests::test_frame_sync_point ... ok [INFO] [stdout] test smpte2110::timing::tests::test_playout_buffer ... ok [INFO] [stdout] test smpte2110::timing::tests::test_rtp_timestamp_generator ... ok [INFO] [stdout] test smpte2110::timing::tests::test_sync_state ... ok [INFO] [stdout] test smpte2110::timing::tests::test_timing_calculator_narrow ... ok [INFO] [stdout] test smpte2110::video::tests::test_pixel_format_properties ... ok [INFO] [stdout] test smpte2110::video::tests::test_rgb_10bit_packing ... ok [INFO] [stdout] test smpte2110::video::tests::test_trs_detection ... ok [INFO] [stdout] test smpte2110::video::tests::test_video_header_extension ... ok [INFO] [stdout] test smpte2110::video::tests::test_ycbcr422_10bit_packing ... ok [INFO] [stdout] test smpte2110::video::tests::test_video_encoder ... ok [INFO] [stdout] test smpte2110::video::tests::test_video_config ... ok [INFO] [stdout] test smpte2110::video::tests::test_frame_assembler ... ok [INFO] [stdout] test srt::congestion::tests::test_congestion_avoidance ... ok [INFO] [stdout] test srt::congestion::tests::test_congestion_control_new ... ok [INFO] [stdout] test srt::congestion::tests::test_on_loss ... ok [INFO] [stdout] test srt::congestion::tests::test_rto ... ok [INFO] [stdout] test smpte2022_7::tests::test_switcher_drain_after_delay ... ok [INFO] [stdout] test srt::congestion::tests::test_rtt_update ... ok [INFO] [stdout] test smpte2022_7::tests::test_switcher_total_delivered ... ok [INFO] [stdout] test srt::congestion::tests::test_slow_start ... ok [INFO] [stdout] test srt::connection_mode::tests::test_caller_needs_retry ... ok [INFO] [stdout] test srt::connection_mode::tests::test_caller_socket_access ... ok [INFO] [stdout] test srt::connection_mode::tests::test_caller_retry_limit ... ok [INFO] [stdout] test srt::connection_mode::tests::test_listener_cleanup ... ok [INFO] [stdout] test srt::connection_mode::tests::test_listener_cookie ... ok [INFO] [stdout] test srt::connection_mode::tests::test_listener_cookie_different_addrs ... ok [INFO] [stdout] test srt::connection_mode::tests::test_listener_established_addrs ... ok [INFO] [stdout] test srt::connection::tests::test_generate_iv ... ok [INFO] [stdout] test srt::connection_mode::tests::test_caller_elapsed ... ok [INFO] [stdout] test srt::connection_mode::tests::test_ipv6_cookie ... ok [INFO] [stdout] test srt::connection_mode::tests::test_caller_state_new ... ok [INFO] [stdout] test srt::connection_mode::tests::test_caller_initial_handshake ... ok [INFO] [stdout] test srt::connection_mode::tests::test_listener_max_pending ... ok [INFO] [stdout] test srt::connection_mode::tests::test_listener_total_accepted ... ok [INFO] [stdout] test srt::connection_mode::tests::test_connection_mode_display ... ok [INFO] [stdout] test srt::connection_mode::tests::test_listener_process_incoming ... ok [INFO] [stdout] test srt::connection_mode::tests::test_rendezvous_cross_connection ... ok [INFO] [stdout] test srt::connection_mode::tests::test_rendezvous_elapsed ... ok [INFO] [stdout] test srt::connection_mode::tests::test_rendezvous_needs_wave ... ok [INFO] [stdout] test srt::connection_mode::tests::test_rendezvous_phase_names ... ok [INFO] [stdout] test srt::connection_mode::tests::test_listener_state_new ... ok [INFO] [stdout] test srt::connection_mode::tests::test_rendezvous_state_new ... ok [INFO] [stdout] test srt::connection_mode::tests::test_rendezvous_timeout ... ok [INFO] [stdout] test srt::crypto::tests::test_aes_context_invalid_key_size ... ok [INFO] [stdout] test srt::crypto::tests::test_aes_context_from_passphrase ... ok [INFO] [stdout] test srt::crypto::tests::test_derive_key ... ok [INFO] [stdout] test srt::crypto::tests::test_derive_session_key_32_bytes ... ok [INFO] [stdout] test srt::crypto::tests::test_derive_session_key_different_salt ... ok [INFO] [stdout] test srt::crypto::tests::test_encrypt_decrypt ... ok [INFO] [stdout] test srt::crypto::tests::test_key_material ... ok [INFO] [stdout] test srt::connection_mode::tests::test_rendezvous_socket_access ... ok [INFO] [stdout] test srt::crypto::tests::test_key_schedule_invalid_key_size ... ok [INFO] [stdout] test srt::connection_mode::tests::test_rendezvous_wave ... ok [INFO] [stdout] test srt::crypto::tests::test_key_rotation ... ok [INFO] [stdout] test srt::crypto::tests::test_derive_session_key_different_passphrase ... ok [INFO] [stdout] test srt::crypto::tests::test_derive_session_key_deterministic ... ok [INFO] [stdout] test srt::crypto::tests::test_key_unwrap_bad_icv ... ok [INFO] [stdout] test srt::crypto::tests::test_km_packet_decode_too_short ... ok [INFO] [stdout] test srt::crypto::tests::test_key_wrap_unwrap_roundtrip ... ok [INFO] [stdout] test srt::crypto::tests::test_km_packet_encode_decode ... ok [INFO] [stdout] test srt::crypto::tests::test_passphrase_auth_invalid_key_size ... ok [INFO] [stdout] test srt::crypto::tests::test_key_schedule_from_passphrase ... ok [INFO] [stdout] test srt::crypto::tests::test_passphrase_auth_different_passwords_different_kek ... ok [INFO] [stdout] test srt::crypto::tests::test_passphrase_auth_wrap_unwrap_keys ... ok [INFO] [stdout] test srt::crypto::tests::test_passphrase_auth_key_size_32 ... ok [INFO] [stdout] test srt::crypto::tests::test_passphrase_auth_key_size_24 ... ok [INFO] [stdout] test srt::crypto::tests::test_passphrase_auth_same_salt_produces_same_kek ... ok [INFO] [stdout] test srt::crypto::tests::test_passphrase_auth_creation ... ok [INFO] [stdout] test srt::crypto::tests::test_key_schedule_rotate ... ok [INFO] [stdout] test srt::crypto::tests::test_srt_crypto_context_encrypt_empty_error ... ok [INFO] [stdout] test srt::crypto::tests::test_srt_crypto_context_invalid_key_size ... ok [INFO] [stdout] test srt::crypto::tests::test_srt_crypto_context_decrypt_clear_error ... ok [INFO] [stdout] test srt::hsv5::tests::test_encryption_default_is_none ... ok [INFO] [stdout] test srt::hsv5::tests::test_encryption_handshake_field_roundtrip ... ok [INFO] [stdout] test srt::hsv5::tests::test_encryption_is_encrypted ... ok [INFO] [stdout] test srt::hsv5::tests::test_encryption_key_len ... ok [INFO] [stdout] test srt::hsv5::tests::test_extension_block_decode_too_short ... ok [INFO] [stdout] test srt::hsv5::tests::test_extension_block_decode_truncated_payload ... ok [INFO] [stdout] test srt::hsv5::tests::test_extension_block_encode_decode_roundtrip ... ok [INFO] [stdout] test srt::hsv5::tests::test_extension_block_hsreq_factory ... ok [INFO] [stdout] test srt::hsv5::tests::test_extension_block_new_computes_ext_len ... ok [INFO] [stdout] test srt::hsv5::tests::test_extension_block_stream_id_factory ... ok [INFO] [stdout] test srt::hsv5::tests::test_extension_type_constants ... ok [INFO] [stdout] test srt::hsv5::tests::test_handshake_decode_too_short ... ok [INFO] [stdout] test srt::hsv5::tests::test_handshake_decode_wrong_magic ... ok [INFO] [stdout] test srt::hsv5::tests::test_handshake_encode_decode_roundtrip ... ok [INFO] [stdout] test srt::hsv5::tests::test_handshake_is_valid_wrong_magic ... ok [INFO] [stdout] test srt::hsv5::tests::test_handshake_new_defaults ... ok [INFO] [stdout] test srt::hsv5::tests::test_handshake_with_latency_extension ... ok [INFO] [stdout] test srt::hsv5::tests::test_packet_type_control_flags ... ok [INFO] [stdout] test srt::hsv5::tests::test_packet_type_data_flags ... ok [INFO] [stdout] test srt::hsv5::tests::test_packet_type_handshake_flag ... ok [INFO] [stdout] test srt::hsv5::tests::test_packet_type_from_control_type ... ok [INFO] [stdout] test srt::hsv5::tests::test_stream_config_builder_chain ... ok [INFO] [stdout] test srt::hsv5::tests::test_stream_config_defaults ... ok [INFO] [stdout] test srt::key_exchange::tests::test_encryption_rotation ... ok [INFO] [stdout] test srt::crypto::tests::test_srt_crypto_context_creation ... ok [INFO] [stdout] test srt::key_exchange::tests::test_encryption_session_inactive ... ok [INFO] [stdout] test srt::key_exchange::tests::test_encryption_session_initiate ... ok [INFO] [stdout] test srt::key_exchange::tests::test_key_material_new_is_valid ... ok [INFO] [stdout] test srt::key_exchange::tests::test_hs_ext_type_roundtrip ... ok [INFO] [stdout] test srt::key_exchange::tests::test_key_material_roundtrip ... ok [INFO] [stdout] test srt::key_exchange::tests::test_kw_algorithm_key_size ... ok [INFO] [stdout] test srt::loss::tests::test_loss_list_add_remove ... ok [INFO] [stdout] test srt::loss::tests::test_loss_list_range ... ok [INFO] [stdout] test srt::loss::tests::test_loss_list_compressed_ranges ... ok [INFO] [stdout] test srt::crypto::tests::test_srt_crypto_context_key_rotation ... ok [INFO] [stdout] test srt::loss::tests::test_loss_range_count ... ok [INFO] [stdout] test srt::loss::tests::test_loss_list_oldest ... ok [INFO] [stdout] test srt::loss::tests::test_receive_buffer_detect_gaps ... ok [INFO] [stdout] test srt::loss::tests::test_seq_after ... ok [INFO] [stdout] test srt::monitor::tests::test_jitter_calculator ... ok [INFO] [stdout] test srt::monitor::tests::test_connection_monitor ... ok [INFO] [stdout] test srt::monitor::tests::test_loss_rate_estimator ... ok [INFO] [stdout] test srt::monitor::tests::test_quality_metrics_degraded ... ok [INFO] [stdout] test srt::packet::tests::test_control_packet_ack ... ok [INFO] [stdout] test srt::packet::tests::test_control_packet_keepalive ... ok [INFO] [stdout] test srt::packet::tests::test_data_packet_encode_decode ... ok [INFO] [stdout] test srt::packet::tests::test_handshake_info ... ok [INFO] [stdout] test srt::packet::tests::test_packet_flags ... ok [INFO] [stdout] test srt::crypto::tests::test_srt_crypto_context_load_key_material ... ok [INFO] [stdout] test srt::loss::tests::test_receive_buffer_in_order ... ok [INFO] [stdout] test srt::packet::tests::test_packet_position ... ok [INFO] [stdout] test srt::loss::tests::test_receive_buffer_out_of_order ... ok [INFO] [stdout] test srt::monitor::tests::test_bandwidth_estimator ... ok [INFO] [stdout] test srt::packet::tests::test_srt_packet_data ... ok [INFO] [stdout] test srt::packet::tests::test_srt_packet_control ... ok [INFO] [stdout] test srt::socket::tests::test_caller_handshake ... ok [INFO] [stdout] test srt::socket::tests::test_close ... ok [INFO] [stdout] test srt::socket::tests::test_connection_state ... ok [INFO] [stdout] test srt::socket::tests::test_create_data_packet ... ok [INFO] [stdout] test srt::socket::tests::test_seq_after ... ok [INFO] [stdout] test srt::socket::tests::test_srt_socket_new ... ok [INFO] [stdout] test srt::socket::tests::test_srt_config ... ok [INFO] [stdout] test srt::stats::tests::test_buffer_stats_utilization ... ok [INFO] [stdout] test srt::crypto::tests::test_srt_crypto_context_key_material_exchange ... ok [INFO] [stdout] test srt::stats::tests::test_direction_stats_loss_rate ... ok [INFO] [stdout] test srt::stats::tests::test_quality_score_range ... ok [INFO] [stdout] test srt::stats::tests::test_rtt_stats_update ... ok [INFO] [stdout] test srt::monitor::tests::test_quality_metrics_score ... ok [INFO] [stdout] test srt::stream::tests::test_cwnd_does_not_exceed_max ... ok [INFO] [stdout] test srt::stream::tests::test_cwnd_initial_state ... ok [INFO] [stdout] test srt::stream::tests::test_cwnd_reset ... ok [INFO] [stdout] test srt::stats::tests::test_stream_quality_from_stats ... ok [INFO] [stdout] test srt::stats::tests::test_stream_quality_is_usable ... ok [INFO] [stdout] test srt::stats::tests::test_stream_stats_healthy ... ok [INFO] [stdout] test srt::stream::tests::test_multiplexer_new ... ok [INFO] [stdout] test srt::stream::tests::test_cwnd_transitions_to_avoidance ... ok [INFO] [stdout] test srt::stream::tests::test_listener_new ... ok [INFO] [stdout] test srt::stream::tests::test_retransmit_buffer_evict_old ... ok [INFO] [stdout] test srt::stream::tests::test_seq_lt_basic ... ok [INFO] [stdout] test srt::stream::tests::test_retransmit_buffer_get_retransmit ... ok [INFO] [stdout] test srt::stream::tests::test_retransmit_buffer_on_sent_and_ack ... ok [INFO] [stdout] test srt::stream::tests::test_seq_lt_wraparound ... ok [INFO] [stdout] test srt::stream::tests::test_stream_stats_default ... ok [INFO] [stdout] test srt::stream::tests::test_seq_next_normal ... ok [INFO] [stdout] test srt::stream::tests::test_seq_next_wraps ... ok [INFO] [stdout] test srt::stream::tests::test_tsbpd_flush ... ok [INFO] [stdout] test srt::stream::tests::test_cwnd_slow_start_growth ... ok [INFO] [stdout] test srt::stream::tests::test_tsbpd_future_packets_not_ready ... ok [INFO] [stdout] test srt::stream::tests::test_tsbpd_insert_and_poll ... ok [INFO] [stdout] test srt::stream::tests::test_tsbpd_next_deadline_none_when_empty ... ok [INFO] [stdout] test srt::crypto::tests::test_srt_crypto_context_encrypt_decrypt ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_derive_key_empty_passphrase_error ... ok [INFO] [stdout] test srt::stream::tests::test_tsbpd_pending_count ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_derive_key_length ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_derive_key_salt_sensitivity ... ok [INFO] [stdout] test srt::stats::tests::test_rtt_stats_min_max ... ok [INFO] [stdout] test srt::stream::tests::test_cwnd_loss_decreases_window ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_nonce_generator_counter ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_rotation_tracker_fires ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_rotation_tracker_reset ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_derive_key_deterministic ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_nonce_generator_unique ... ok [INFO] [stdout] test srt_config::tests::test_caller_is_outbound ... ok [INFO] [stdout] test srt_config::tests::test_connect_on_closed_errors ... ok [INFO] [stdout] test srt_config::tests::test_connect_transitions ... ok [INFO] [stdout] test srt_config::tests::test_connection_starts_disconnected ... ok [INFO] [stdout] test srt_config::tests::test_connection_string_caller ... ok [INFO] [stdout] test srt_config::tests::test_connection_string_listener ... ok [INFO] [stdout] test srt_config::tests::test_connection_string_no_extras ... ok [INFO] [stdout] test srt_config::tests::test_connection_string_passphrase ... ok [INFO] [stdout] test srt_config::tests::test_connection_string_rendezvous ... ok [INFO] [stdout] test srt_config::tests::test_connection_string_stream_id ... ok [INFO] [stdout] test srt_config::tests::test_disconnect ... ok [INFO] [stdout] test srt_config::tests::test_listener_is_not_outbound ... ok [INFO] [stdout] test srt_config::tests::test_mode_name_caller ... ok [INFO] [stdout] test srt_config::tests::test_mode_name_listener ... ok [INFO] [stdout] test srt_config::tests::test_mode_name_rendezvous ... ok [INFO] [stdout] test srt_config::tests::test_packet_loss_rate ... ok [INFO] [stdout] test srt_config::tests::test_packet_loss_rate_no_traffic ... ok [INFO] [stdout] test srt_config::tests::test_rendezvous_is_outbound ... ok [INFO] [stdout] test srt_config::tests::test_simulate_receive ... ok [INFO] [stdout] test srt_config::tests::test_simulate_send ... ok [INFO] [stdout] test srt_config::tests::test_srt_stream_config_build ... ok [INFO] [stdout] test srt_config::tests::test_srt_stream_config_with_mode_caller ... ok [INFO] [stdout] test srt_config::tests::test_validate_caller_zero_port ... ok [INFO] [stdout] test srt_config::tests::test_validate_listener_zero_backlog ... ok [INFO] [stdout] test srt_config::tests::test_validate_listener_zero_port ... ok [INFO] [stdout] test srt_config::tests::test_validate_rendezvous_zero_local ... ok [INFO] [stdout] test srt_config::tests::test_with_latency ... ok [INFO] [stdout] test srt_config::tests::test_with_passphrase ... ok [INFO] [stdout] test srt_group::tests::test_add_member_and_count ... ok [INFO] [stdout] test srt_group::tests::test_broadcast_targets_all_active ... ok [INFO] [stdout] test srt_group::tests::test_dedup_window_rejects_duplicate_seq ... ok [INFO] [stdout] test srt_group::tests::test_group_mode_display ... ok [INFO] [stdout] test srt_group::tests::test_health_update_and_score ... ok [INFO] [stdout] test srt_group::tests::test_main_backup_fallback_to_standby ... ok [INFO] [stdout] test srt_group::tests::test_main_backup_role_switch_on_unhealthy ... ok [INFO] [stdout] test srt_group::tests::test_main_backup_targets_lowest_priority_active ... ok [INFO] [stdout] test srt_group::tests::test_max_members_enforced ... ok [INFO] [stdout] test srt_group::tests::test_receive_unknown_member_returns_error ... ok [INFO] [stdout] test srt_group::tests::test_remove_member ... ok [INFO] [stdout] test srt_group::tests::test_remove_unknown_member_returns_error ... ok [INFO] [stdout] test srt_group::tests::test_stats_after_successful_receives ... ok [INFO] [stdout] test stream_health_monitor::tests::test_cv_zero_identical_bitrate ... ok [INFO] [stdout] test stream_health_monitor::tests::test_empty_monitor_perfect_score ... ok [INFO] [stdout] test stream_health_monitor::tests::test_high_jitter_lower_score ... ok [INFO] [stdout] test stream_health_monitor::tests::test_high_packet_loss_status ... ok [INFO] [stdout] test stream_health_monitor::tests::test_is_alarm ... ok [INFO] [stdout] test stream_health_monitor::tests::test_latest ... ok [INFO] [stdout] test stream_health_monitor::tests::test_rebuffer_event_end_ms ... ok [INFO] [stdout] test stream_health_monitor::tests::test_rebuffer_ratio ... ok [INFO] [stdout] test stream_health_monitor::tests::test_rebuffer_tracker ... ok [INFO] [stdout] test stream_health_monitor::tests::test_reset ... ok [INFO] [stdout] test stream_health_monitor::tests::test_sample_rebuffer_ratio_zero ... ok [INFO] [stdout] test stream_health_monitor::tests::test_score_floor ... ok [INFO] [stdout] test stream_health_monitor::tests::test_single_perfect_sample ... ok [INFO] [stdout] test stream_health_monitor::tests::test_status_display ... ok [INFO] [stdout] test stream_health_monitor::tests::test_window_eviction ... ok [INFO] [stdout] test stream_mux::tests::test_channel_activate ... ok [INFO] [stdout] test stream_mux::tests::test_channel_deactivate ... ok [INFO] [stdout] test stream_mux::tests::test_channel_is_active_default ... ok [INFO] [stdout] test stream_mux::tests::test_demux_frame_counter ... ok [INFO] [stdout] test stream_mux::tests::test_demux_frame_length_mismatch ... ok [INFO] [stdout] test stream_mux::tests::test_demux_frame_too_short ... ok [INFO] [stdout] test stream_mux::tests::test_mux_add_channel ... ok [INFO] [stdout] test stream_mux::tests::test_mux_add_duplicate_id_error ... ok [INFO] [stdout] test stream_mux::tests::test_mux_config_channel_count ... ok [INFO] [stdout] test stream_mux::tests::test_mux_frame_counter ... ok [INFO] [stdout] test stream_mux::tests::test_mux_frame_roundtrip ... ok [INFO] [stdout] test stream_mux::tests::test_mux_inactive_channel ... ok [INFO] [stdout] test stream_mux::tests::test_mux_payload_too_large ... ok [INFO] [stdout] test stream_mux::tests::test_mux_unknown_channel ... ok [INFO] [stdout] test webrtc::datachannel::tests::test_data_channel_config ... ok [INFO] [stdout] test webrtc::datachannel::tests::test_data_channel_state ... ok [INFO] [stdout] test webrtc::datachannel::tests::test_message_binary ... ok [INFO] [stdout] test webrtc::datachannel::tests::test_message_text ... ok [INFO] [stdout] test webrtc::dtls::tests::test_cipher_suite_key_length ... ok [INFO] [stdout] test webrtc::dtls::tests::test_dtls_fingerprint_typed_sdp ... ok [INFO] [stdout] test webrtc::dtls::tests::test_dtls_handshake_state_variants ... ok [INFO] [stdout] test webrtc::dtls::tests::test_dtls_role ... ok [INFO] [stdout] test webrtc::dtls::tests::test_dtls_session_connect ... ok [INFO] [stdout] test webrtc::dtls::tests::test_dtls_session_new_client ... ok [INFO] [stdout] test webrtc::dtls::tests::test_dtls_session_new_server ... ok [INFO] [stdout] test webrtc::dtls::tests::test_dtls_session_protect_empty ... ok [INFO] [stdout] test webrtc::dtls::tests::test_dtls_session_protect_unprotect ... ok [INFO] [stdout] test webrtc::dtls::tests::test_fingerprint_algorithm_name ... ok [INFO] [stdout] test webrtc::dtls::tests::test_fingerprint_from_cert ... ok [INFO] [stdout] test webrtc::dtls::tests::test_fingerprint_sdp ... ok [INFO] [stdout] test webrtc::ice::tests::test_calculate_priority ... ok [INFO] [stdout] test webrtc::ice::tests::test_candidate_to_sdp ... ok [INFO] [stdout] test webrtc::ice::tests::test_candidate_type ... ok [INFO] [stdout] test webrtc::ice::tests::test_compute_foundation ... ok [INFO] [stdout] test webrtc::ice::tests::test_compute_priority ... ok [INFO] [stdout] test webrtc::ice::tests::test_host_candidate ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_agent_simple_gather ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_candidate_type2_variants ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_candidate_type_preference ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_checklist_form_pairs ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_checklist_next_pair ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_checklist_nominated_pair ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_credentials_generate ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_pair_new ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_pair_nominated ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_server_stun ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_server_turn ... ok [INFO] [stdout] test webrtc::ice::tests::test_ice_transport_variants ... ok [INFO] [stdout] test webrtc::ice::tests::test_is_valid_ip ... ok [INFO] [stdout] test webrtc::ice::tests::test_parse_candidate ... ok [INFO] [stdout] test webrtc::ice::tests::test_parse_srflx_candidate ... ok [INFO] [stdout] test webrtc::ice::tests::test_srflx_candidate_sdp ... ok [INFO] [stdout] test webrtc::ice::tests::test_transport_protocol ... ok [INFO] [stdout] test webrtc::ice_agent::tests::test_candidate_pair_priority ... ok [INFO] [stdout] test webrtc::ice_agent::tests::test_generate_ice_string ... ok [INFO] [stdout] test webrtc::ice_agent::tests::test_ice_config_default ... ok [INFO] [stdout] test webrtc::ice_agent::tests::test_ice_role ... ok [INFO] [stdout] test webrtc::peer_connection::tests::test_media_track ... ok [INFO] [stdout] test webrtc::peer_connection::tests::test_peer_connection_config ... ok [INFO] [stdout] test webrtc::peer_connection::tests::test_peer_connection_new ... ok [INFO] [stdout] test webrtc::peer_connection::tests::test_sdp_type ... ok [INFO] [stdout] test webrtc::peer_connection::tests::test_session_description_init ... ok [INFO] [stdout] test webrtc::rtcp::tests::test_packet_parse_sr ... ok [INFO] [stdout] test webrtc::rtcp::tests::test_packet_type ... ok [INFO] [stdout] test webrtc::rtcp::tests::test_receiver_report ... ok [INFO] [stdout] test webrtc::rtcp::tests::test_receiver_report_encode_decode ... ok [INFO] [stdout] test webrtc::rtcp::tests::test_report_block ... ok [INFO] [stdout] test webrtc::rtcp::tests::test_sender_report ... ok [INFO] [stdout] test webrtc::rtcp::tests::test_sender_report_encode_decode ... ok [INFO] [stdout] test webrtc::rtp::tests::test_packet_encode_decode ... ok [INFO] [stdout] test webrtc::rtp::tests::test_packet_new ... ok [INFO] [stdout] test webrtc::rtp::tests::test_packet_with_marker ... ok [INFO] [stdout] test webrtc::rtp::tests::test_parse_invalid_version ... ok [INFO] [stdout] test webrtc::rtp::tests::test_session ... ok [INFO] [stdout] test webrtc::sctp::tests::test_association_init ... ok [INFO] [stdout] test webrtc::sctp::tests::test_association_new ... ok [INFO] [stdout] test webrtc::sctp::tests::test_chunk_encode_decode ... ok [INFO] [stdout] test webrtc::sctp::tests::test_chunk_type ... ok [INFO] [stdout] test webrtc::sctp::tests::test_packet_new ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_create_answer_reverses_direction ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_is_bundled ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_sdp_codec_av1 ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_sdp_codec_opus ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_sdp_direction_is_sending ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_sdp_direction_reversed ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_sdp_media_video_to_string ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_session_description_add_media ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_session_description_to_string ... ok [INFO] [stdout] test webrtc::sdp::sdp_spec_tests::test_video_audio_accessors ... ok [INFO] [stdout] test webrtc::sdp::tests::test_attribute ... ok [INFO] [stdout] test webrtc::sdp::tests::test_direction ... ok [INFO] [stdout] test webrtc::sdp::tests::test_fingerprint ... ok [INFO] [stdout] test webrtc::sdp::tests::test_media_description ... ok [INFO] [stdout] test webrtc::sdp::tests::test_media_of_type ... ok [INFO] [stdout] test webrtc::sdp::tests::test_media_type ... ok [INFO] [stdout] test webrtc::sdp::tests::test_parse_sdp ... ok [INFO] [stdout] test webrtc::sdp::tests::test_session_description ... ok [INFO] [stdout] test webrtc::srtp::tests::test_profile_key_length ... ok [INFO] [stdout] test webrtc::srtp::tests::test_profile_salt_length ... ok [INFO] [stdout] test webrtc::srtp::tests::test_profile_tag_length ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtcp_index_increments ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtcp_packet_overhead ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtcp_protect_unprotect_roundtrip ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtp_aead_gcm_profiles ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtp_index_increments ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtp_key_zeroed ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtp_protect_rtp ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtp_protect_unprotect_roundtrip ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtp_unprotect_tampered ... ok [INFO] [stdout] test webrtc::srtp::tests::test_srtp_unprotect_too_short ... ok [INFO] [stdout] test webrtc::stun::tests::test_binding_request ... ok [INFO] [stdout] test webrtc::stun::tests::test_encode_decode ... ok [INFO] [stdout] test webrtc::stun::tests::test_message_type ... ok [INFO] [stdout] test webrtc::stun::tests::test_priority_attribute ... ok [INFO] [stdout] test webrtc::stun::tests::test_xor_mapped_address_v4 ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_auth_required ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_auth_with_token ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_cleanup ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_config_default ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_create_whep ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_create_whip ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_delete_whip ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_ice_headers ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_max_sessions ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_not_found ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_session_lookup ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_endpoint_trickle_whip ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_ice_server_link_header ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_ice_server_stun ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_ice_server_turn ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_simple_hash ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_turn_link_header ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whep_answer_sendonly ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whep_layer_selection ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whep_process_offer ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whep_resource_path ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whep_session_new ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whep_stream_key ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whep_svc_layer ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whep_trickle_after_terminate ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_answer_recvonly ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_offer_after_terminate ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_process_offer ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_resource_path ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_session_etag ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_session_new ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_state_names ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_terminate ... ok [INFO] [stdout] test webrtc::whip_whep::tests::test_whip_trickle_candidates ... ok [INFO] [stdout] test websocket::tests::test_close_frame_opcode ... ok [INFO] [stdout] test websocket::tests::test_compute_accept_key_rfc_example ... ok [INFO] [stdout] test websocket::tests::test_empty_payload_frame ... ok [INFO] [stdout] test websocket::tests::test_encode_decode_roundtrip_small ... ok [INFO] [stdout] test websocket::tests::test_encode_decode_roundtrip_unmasked ... ok [INFO] [stdout] test websocket::tests::test_encode_small_text_masked ... ok [INFO] [stdout] test websocket::tests::test_find_header_absent ... ok [INFO] [stdout] test websocket::tests::test_find_header_present ... ok [INFO] [stdout] test websocket::tests::test_frame_decode_16bit_length ... ok [INFO] [stdout] test websocket::tests::test_frame_decode_64bit_length ... ok [INFO] [stdout] test websocket::tests::test_frame_decode_incomplete_payload ... ok [INFO] [stdout] test websocket::tests::test_frame_decode_insufficient_data ... ok [INFO] [stdout] test websocket::tests::test_frame_rsv_bits_error ... ok [INFO] [stdout] test websocket::tests::test_mask_applied_symmetrically ... ok [INFO] [stdout] test websocket::tests::test_masking_xor_correctness ... ok [INFO] [stdout] test websocket::tests::test_nonce_different_seeds_differ ... ok [INFO] [stdout] test websocket::tests::test_nonce_is_16_bytes ... ok [INFO] [stdout] test websocket::tests::test_opcode_is_control ... ok [INFO] [stdout] test websocket::tests::test_opcode_roundtrip ... ok [INFO] [stdout] test websocket::tests::test_opcode_unknown ... ok [INFO] [stdout] test websocket::tests::test_parse_ws_url_invalid_port ... ok [INFO] [stdout] test websocket::tests::test_parse_ws_url_invalid_scheme ... ok [INFO] [stdout] test websocket::tests::test_parse_ws_url_no_path ... ok [INFO] [stdout] test websocket::tests::test_parse_ws_url_simple ... ok [INFO] [stdout] test websocket::tests::test_parse_ws_url_with_port ... ok [INFO] [stdout] test websocket::tests::test_parse_wss_url_default_port ... ok [INFO] [stdout] test websocket::tests::test_ping_pong_frames ... ok [INFO] [stdout] test whep_client::tests::test_create_offer_audio_mline ... ok [INFO] [stdout] test whep_client::tests::test_create_offer_ice_pwd_present ... ok [INFO] [stdout] test whep_client::tests::test_create_offer_ice_ufrag_present ... ok [INFO] [stdout] test whep_client::tests::test_create_offer_recvonly ... ok [INFO] [stdout] test whep_client::tests::test_create_offer_sdp_starts_v0 ... ok [INFO] [stdout] test whep_client::tests::test_create_offer_session_id ... ok [INFO] [stdout] test whep_client::tests::test_create_offer_unique_ids ... ok [INFO] [stdout] test whep_client::tests::test_create_offer_video_mline ... ok [INFO] [stdout] test whep_client::tests::test_format_whep_request_accept ... ok [INFO] [stdout] test whep_client::tests::test_format_whep_request_authenticated_with_token ... ok [INFO] [stdout] test whep_client::tests::test_format_whep_request_body ... ok [INFO] [stdout] test whep_client::tests::test_format_whep_request_content_type ... ok [INFO] [stdout] test whep_client::tests::test_format_whep_request_no_auth_when_no_token ... ok [INFO] [stdout] test whep_client::tests::test_is_answered_transitions ... ok [INFO] [stdout] test whep_client::tests::test_no_answer_initially ... ok [INFO] [stdout] test whep_client::tests::test_process_answer_content ... ok [INFO] [stdout] test whep_client::tests::test_process_answer_stores ... ok [INFO] [stdout] test whep_client::tests::test_whep_client_new ... ok [INFO] [stdout] test whep_client::tests::test_whep_config_bearer_token ... ok [INFO] [stdout] test whep_client::tests::test_whep_config_no_token ... ok [INFO] [stdout] test whip::tests::test_generate_offer_content ... ok [INFO] [stdout] test whip::tests::test_generate_offer_state_transition ... ok [INFO] [stdout] test whip::tests::test_process_answer ... ok [INFO] [stdout] test whip::tests::test_terminate ... ok [INFO] [stdout] test whip::tests::test_unique_session_ids ... ok [INFO] [stdout] test whip::tests::test_whep_is_active ... ok [INFO] [stdout] test whip::tests::test_whep_request_headers ... ok [INFO] [stdout] test whip::tests::test_whep_stop ... ok [INFO] [stdout] test whip::tests::test_whip_is_active ... ok [INFO] [stdout] test whip::tests::test_whip_session_new ... ok [INFO] [stdout] test whip_whep::tests::test_build_sdp_offer_h264 ... ok [INFO] [stdout] test whip_whep::tests::test_build_sdp_offer_multiple_video_codecs ... ok [INFO] [stdout] test whip_whep::tests::test_build_sdp_offer_opus_fmtp ... ok [INFO] [stdout] test whip_whep::tests::test_build_sdp_offer_rtcp_mux ... ok [INFO] [stdout] test whip_whep::tests::test_build_sdp_offer_sendonly ... ok [INFO] [stdout] test whip_whep::tests::test_extract_host_port_custom_port ... ok [INFO] [stdout] test whip_whep::tests::test_extract_host_port_http_default ... ok [INFO] [stdout] test whip_whep::tests::test_extract_host_port_https_default ... ok [INFO] [stdout] test whip_whep::tests::test_extract_host_port_invalid_port ... ok [INFO] [stdout] test whip_whep::tests::test_extract_host_port_invalid_scheme ... ok [INFO] [stdout] test whip_whep::tests::test_extract_path_no_path ... ok [INFO] [stdout] test whip_whep::tests::test_extract_path_with_path ... ok [INFO] [stdout] test whip_whep::tests::test_ice_credentials_deterministic ... ok [INFO] [stdout] test whip_whep::tests::test_ice_credentials_different_seeds ... ok [INFO] [stdout] test whip_whep::tests::test_ice_pwd_length ... ok [INFO] [stdout] test whip_whep::tests::test_ice_ufrag_length ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_201_created ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_204_no_content ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_empty_body ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_headers_lowercase ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_missing_status_line ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_non_201_status ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_with_body ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_with_etag_header ... ok [INFO] [stdout] test whip_whep::tests::test_parse_http_response_with_location_header ... ok [INFO] [stdout] test whip_whep::tests::test_parse_sdp_attribute_empty_sdp ... ok [INFO] [stdout] test whip_whep::tests::test_parse_sdp_attribute_first_match ... ok [INFO] [stdout] test whip_whep::tests::test_parse_sdp_attribute_missing ... ok [INFO] [stdout] test whip_whep::tests::test_parse_sdp_attribute_no_colon ... ok [INFO] [stdout] test whip_whep::tests::test_parse_sdp_attribute_present ... ok [INFO] [stdout] test whip_whep::tests::test_whep_build_offer_audio_only_codecs ... ok [INFO] [stdout] test whip_whep::tests::test_whep_build_offer_splits_codecs ... ok [INFO] [stdout] test whip_whep::tests::test_whep_client_new ... ok [INFO] [stdout] test whip_whep::tests::test_whep_negotiate_builds_correct_request ... ok [INFO] [stdout] test whip_whep::tests::test_whep_parse_answer_valid ... ok [INFO] [stdout] test whip_whep::tests::test_whep_with_bearer_token ... ok [INFO] [stdout] test whip_whep::tests::test_whip_build_offer_no_audio ... ok [INFO] [stdout] test whip_whep::tests::test_whip_build_offer_no_video ... ok [INFO] [stdout] test whip_whep::tests::test_whip_build_offer_sdp_structure ... ok [INFO] [stdout] test whip_whep::tests::test_whip_client_new ... ok [INFO] [stdout] test whip_whep::tests::test_whip_client_with_bearer_token ... ok [INFO] [stdout] test whip_whep::tests::test_whip_negotiate_builds_correct_request ... ok [INFO] [stdout] test whip_whep::tests::test_whip_negotiate_includes_bearer_token ... ok [INFO] [stdout] test whip_whep::tests::test_whip_parse_answer_empty_resource_url ... ok [INFO] [stdout] test whip_whep::tests::test_whip_parse_answer_missing_origin ... ok [INFO] [stdout] test whip_whep::tests::test_whip_parse_answer_missing_v ... ok [INFO] [stdout] test whip_whep::tests::test_whip_parse_answer_valid ... ok [INFO] [stdout] test zero_copy_serve::tests::test_best_available_strategy ... ok [INFO] [stdout] test zero_copy_serve::tests::test_cache_clear ... ok [INFO] [stdout] test zero_copy_serve::tests::test_cache_eviction ... ok [INFO] [stdout] test zero_copy_serve::tests::test_cache_insert_get ... ok [INFO] [stdout] test zero_copy_serve::tests::test_cache_miss ... ok [INFO] [stdout] test zero_copy_serve::tests::test_config_validation_chunk_size ... ok [INFO] [stdout] test zero_copy_serve::tests::test_config_validation_max_bytes_zero ... ok [INFO] [stdout] test zero_copy_serve::tests::test_segment_source_known_length ... ok [INFO] [stdout] test zero_copy_serve::tests::test_serve_file_byte_count ... ok [INFO] [stdout] test zero_copy_serve::tests::test_serve_file_roundtrip ... ok [INFO] [stdout] test zero_copy_serve::tests::test_serve_memory_roundtrip ... ok [INFO] [stdout] test zero_copy_serve::tests::test_serve_memory_size_limit ... ok [INFO] [stdout] test zero_copy_serve::tests::test_serve_memory_strategy ... ok [INFO] [stdout] test zero_copy_serve::tests::test_serve_missing_file ... ok [INFO] [stdout] test zero_copy_serve::tests::test_transfer_stats_throughput ... ok [INFO] [stdout] test zixi::tests::test_frame_serialise_deserialise ... ok [INFO] [stdout] test zixi::tests::test_frame_type_round_trip ... ok [INFO] [stdout] test zixi::tests::test_header_to_bytes_length ... ok [INFO] [stdout] test zixi::tests::test_magic_bytes_checked ... ok [INFO] [stdout] test zixi::tests::test_oversized_payload_rejected ... ok [INFO] [stdout] test zixi::tests::test_receiver_ack_every_n_frames ... ok [INFO] [stdout] test zixi::tests::test_receiver_delivers_payload ... ok [INFO] [stdout] test zixi::tests::test_receiver_emits_nack_on_gap ... ok [INFO] [stdout] test zixi::tests::test_receiver_session_ended_on_bye ... ok [INFO] [stdout] test zixi::tests::test_retransmit_buffer_capacity ... ok [INFO] [stdout] test zixi::tests::test_retransmit_buffer_zero_capacity_error ... ok [INFO] [stdout] test zixi::tests::test_sender_nack_missing_frame ... ok [INFO] [stdout] test zixi::tests::test_sender_nack_retransmits_frame ... ok [INFO] [stdout] test zixi::tests::test_sender_send_increments_seq ... ok [INFO] [stdout] test zixi::tests::test_sender_stats_accumulate ... ok [INFO] [stdout] test zixi::tests::test_seq_after ... ok [INFO] [stdout] test zixi::tests::test_stats_loss_ratio ... ok [INFO] [stdout] test zixi::tests::test_truncated_buffer_errors ... ok [INFO] [stdout] test zixi::tests::test_unknown_frame_type_errors ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_decrypt_short_frame ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_salt_accessor ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_wire_frame_starts_with_salt ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_needs_rotation_packet_limit ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_decrypt_tamper_detection ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_aad_differentiation ... ok [INFO] [stdout] test srt_aes256gcm::tests::test_encrypt_decrypt_roundtrip ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1585 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 18.30s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_net [INFO] [stdout] [INFO] [stdout] running 32 tests [INFO] [stdout] test src/abr/mod.rs - abr (line 18) ... ignored [INFO] [stdout] test src/cdn/mod.rs - cdn (line 16) ... ignored [INFO] [stdout] test src/dash/live/mod.rs - dash::live (line 15) ... ignored [INFO] [stdout] test src/dash/mod.rs - dash (line 19) ... ignored [INFO] [stdout] test src/hls/mod.rs - hls (line 16) ... ignored [INFO] [stdout] test src/lib.rs - (line 39) ... ignored [INFO] [stdout] test src/live/mod.rs - live (line 14) ... ignored [INFO] [stdout] test src/ll_dash.rs - ll_dash (line 20) ... ok [INFO] [stdout] test src/quic/mod.rs - quic (line 19) ... ok [INFO] [stdout] test src/network_simulator.rs - network_simulator (line 38) ... ok [INFO] [stdout] test src/rtmp/mod.rs - rtmp (line 23) ... ignored [INFO] [stdout] test src/playlist_parser.rs - playlist_parser::PlaylistParser (line 590) ... ok [INFO] [stdout] test src/smpte2110/mod.rs - smpte2110 (line 27) ... ignored [INFO] [stdout] test src/srt/mod.rs - srt (line 37) ... ignored [INFO] [stdout] test src/bandwidth_trigger.rs - bandwidth_trigger::BandwidthTrigger (line 262) ... ok [INFO] [stdout] test src/fec/mod.rs - fec (line 10) ... ok [INFO] [stdout] test src/connection_pool.rs - connection_pool::GenericPool (line 614) ... ok [INFO] [stdout] test src/fec_interleave.rs - fec_interleave (line 35) ... ok [INFO] [stdout] test src/webrtc/mod.rs - webrtc (line 20) ... ignored [INFO] [stdout] test src/rtmp/rtmp_ext.rs - rtmp::rtmp_ext (line 24) ... ok [INFO] [stdout] test src/quic_datagram.rs - quic_datagram (line 27) ... ok [INFO] [stdout] test src/srt_config.rs - srt_config (line 13) ... ok [INFO] [stdout] test src/quic_datagram.rs - quic_datagram::QuicDatagramSender (line 150) ... ok [INFO] [stdout] test src/srt_group.rs - srt_group::SrtGroupManager (line 329) ... ok [INFO] [stdout] test src/srt_config.rs - srt_config::SrtStreamConfig (line 375) ... ok [INFO] [stdout] test src/stream_health_monitor.rs - stream_health_monitor::StreamHealthMonitor (line 187) ... ok [INFO] [stdout] test src/whep_client.rs - whep_client (line 19) ... ok [INFO] [stdout] test src/whip.rs - whip (line 16) ... ok [INFO] [stdout] test src/whip_whep.rs - whip_whep::WhepClient (line 291) ... ok [INFO] [stdout] test src/whip_whep.rs - whip_whep::WhipClient (line 95) ... ok [INFO] [stdout] test src/zero_copy_serve.rs - zero_copy_serve::SegmentServer (line 217) ... ok [INFO] [stdout] test src/whip_whep.rs - whip_whep::parse_sdp_attribute (line 587) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 11 ignored; 0 measured; 0 filtered out; finished in 20.99s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "e872c72d0c861b7f4b74968b7a00bba8d48748d76f9b591eca23bea79fde1b9c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e872c72d0c861b7f4b74968b7a00bba8d48748d76f9b591eca23bea79fde1b9c", kill_on_drop: false }` [INFO] [stdout] e872c72d0c861b7f4b74968b7a00bba8d48748d76f9b591eca23bea79fde1b9c