[INFO] fetching crate oximedia-routing 0.1.5...
[INFO] testing oximedia-routing-0.1.5 against 1.95.0 for beta-1.96-2
[INFO] extracting crate oximedia-routing 0.1.5 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate oximedia-routing 0.1.5
[INFO] finished tweaking crates.io crate oximedia-routing 0.1.5
[INFO] tweaked toml for crates.io crate oximedia-routing 0.1.5 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate oximedia-routing 0.1.5 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oximedia-routing 0.1.5 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded socket-pktinfo v0.3.2
[INFO] [stderr]   Downloaded if-addrs v0.15.0
[INFO] [stderr]   Downloaded mdns-sd v0.19.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c75e375c7a49215b8c7dccb22278857ac2dfe47b40fcde40b4684e97bed1f601
[INFO] running `Command { std: "docker" "start" "-a" "c75e375c7a49215b8c7dccb22278857ac2dfe47b40fcde40b4684e97bed1f601", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c75e375c7a49215b8c7dccb22278857ac2dfe47b40fcde40b4684e97bed1f601", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c75e375c7a49215b8c7dccb22278857ac2dfe47b40fcde40b4684e97bed1f601", kill_on_drop: false }`
[INFO] [stdout] c75e375c7a49215b8c7dccb22278857ac2dfe47b40fcde40b4684e97bed1f601
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 64fd787de1f0c55d78b1dd249b666a6b5d8233629d440c9708d42dd0ac4d0fb1
[INFO] running `Command { std: "docker" "start" "-a" "64fd787de1f0c55d78b1dd249b666a6b5d8233629d440c9708d42dd0ac4d0fb1", kill_on_drop: false }`
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling strength_reduce v0.2.4
[INFO] [stderr]    Compiling audio-core v0.2.1
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling oxifft v0.2.0
[INFO] [stderr]    Compiling oxifft-codegen v0.2.0
[INFO] [stderr]    Compiling visibility v0.1.1
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling seahash v4.1.0
[INFO] [stderr]    Compiling spin v0.10.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling oximedia-core v0.1.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling audioadapter-sample v3.0.0
[INFO] [stderr]    Compiling audioadapter v3.0.0
[INFO] [stderr]    Compiling windowfunctions v0.1.1
[INFO] [stderr]    Compiling audioadapter-buffers v3.0.0
[INFO] [stderr]    Compiling primal-check v0.3.4
[INFO] [stderr]    Compiling transpose v0.2.3
[INFO] [stderr]    Compiling rustfft v6.4.1
[INFO] [stderr]    Compiling realfft v3.5.0
[INFO] [stderr]    Compiling rubato v2.0.0
[INFO] [stderr]    Compiling oximedia-audio v0.1.5
[INFO] [stderr]    Compiling oximedia-routing v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 29s
[INFO] running `Command { std: "docker" "inspect" "64fd787de1f0c55d78b1dd249b666a6b5d8233629d440c9708d42dd0ac4d0fb1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "64fd787de1f0c55d78b1dd249b666a6b5d8233629d440c9708d42dd0ac4d0fb1", kill_on_drop: false }`
[INFO] [stdout] 64fd787de1f0c55d78b1dd249b666a6b5d8233629d440c9708d42dd0ac4d0fb1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 76d8fb7a2aec16338cc49c067a790cfecbf658f24721de83a39697b7c84fc74c
[INFO] running `Command { std: "docker" "start" "-a" "76d8fb7a2aec16338cc49c067a790cfecbf658f24721de83a39697b7c84fc74c", kill_on_drop: false }`
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling oximedia-routing v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 22.37s
[INFO] running `Command { std: "docker" "inspect" "76d8fb7a2aec16338cc49c067a790cfecbf658f24721de83a39697b7c84fc74c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "76d8fb7a2aec16338cc49c067a790cfecbf658f24721de83a39697b7c84fc74c", kill_on_drop: false }`
[INFO] [stdout] 76d8fb7a2aec16338cc49c067a790cfecbf658f24721de83a39697b7c84fc74c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7aa4210796bfc2337f36de75de6fc82b84a09e72fca7fc8079f67f41f6586a34
[INFO] running `Command { std: "docker" "start" "-a" "7aa4210796bfc2337f36de75de6fc82b84a09e72fca7fc8079f67f41f6586a34", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_routing-2d0c19efb41cbb1e)
[INFO] [stdout] 
[INFO] [stdout] running 1089 tests
[INFO] [stdout] test aes67::tests::test_config_bytes_per_sample ... ok
[INFO] [stdout] test aes67::tests::test_config_invalid_sample_rate ... ok
[INFO] [stdout] test aes67::tests::test_depacketizer_sequence_error ... ok
[INFO] [stdout] test aes67::tests::test_header_parse_short_buffer ... ok
[INFO] [stdout] test aes67::tests::test_config_payload_size ... ok
[INFO] [stdout] test aes67::tests::test_header_invalid_version ... ok
[INFO] [stdout] test aes67::tests::test_config_valid_rates ... ok
[INFO] [stdout] test aes67::tests::test_packet_time_from_us_valid ... ok
[INFO] [stdout] test aes67::tests::test_packet_time_samples_per_packet ... ok
[INFO] [stdout] test aes67::tests::test_packet_time_from_us_invalid ... ok
[INFO] [stdout] test aes67::tests::test_packet_time_us_values ... ok
[INFO] [stdout] test aes67::tests::test_packet_time_sdp_ptime ... ok
[INFO] [stdout] test aes67::tests::test_header_round_trip ... ok
[INFO] [stdout] test aes67::tests::test_header_marker_bit ... ok
[INFO] [stdout] test aes67::tests::test_packetizer_sequence_increments ... ok
[INFO] [stdout] test aes67::tests::test_session_manager_register_and_count ... ok
[INFO] [stdout] test automation::curves::tests::test_add_crossfade ... ok
[INFO] [stdout] test aes67::tests::test_packetize_depacketize_round_trip ... ok
[INFO] [stdout] test aes67::tests::test_session_manager_remove_stream ... ok
[INFO] [stdout] test aes67::tests::test_session_manager_stats_update ... ok
[INFO] [stdout] test aes67::tests::test_sdp_contains_required_fields ... ok
[INFO] [stdout] test aes67::tests::test_sdp_stream_name ... ok
[INFO] [stdout] test automation::curves::tests::test_curve_clamping ... ok
[INFO] [stdout] test automation::curves::tests::test_exponential_in_slow_start ... ok
[INFO] [stdout] test automation::curves::tests::test_exponential_out_fast_start ... ok
[INFO] [stdout] test automation::curves::tests::test_gain_automation_channel_filter ... ok
[INFO] [stdout] test automation::curves::tests::test_gain_automation_evaluate ... ok
[INFO] [stdout] test automation::curves::tests::test_gain_automation_clear ... ok
[INFO] [stdout] test automation::curves::tests::test_gain_automation_evaluate_no_match ... ok
[INFO] [stdout] test automation::curves::tests::test_linear_curve_endpoints ... ok
[INFO] [stdout] test automation::curves::tests::test_linear_curve_midpoint ... ok
[INFO] [stdout] test automation::curves::tests::test_add_fade_in ... ok
[INFO] [stdout] test automation::curves::tests::test_add_fade_out ... ok
[INFO] [stdout] test automation::curves::tests::test_gain_automation_add_segment ... ok
[INFO] [stdout] test automation::curves::tests::test_gain_automation_prune ... ok
[INFO] [stdout] test automation::curves::tests::test_scurve_fade_smooth ... ok
[INFO] [stdout] test automation::curves::tests::test_scurve_midpoint ... ok
[INFO] [stdout] test automation::curves::tests::test_segment_contains_frame ... ok
[INFO] [stdout] test automation::curves::tests::test_scurve_endpoints ... ok
[INFO] [stdout] test automation::curves::tests::test_segment_duration ... ok
[INFO] [stdout] test automation::curves::tests::test_segment_evaluate_after_end ... ok
[INFO] [stdout] test automation::curves::tests::test_segment_with_channel ... ok
[INFO] [stdout] test automation::curves::tests::test_step_curve ... ok
[INFO] [stdout] test automation::timeline::tests::test_add_fade_in_creates_segment ... ok
[INFO] [stdout] test automation::timeline::tests::test_add_event ... ok
[INFO] [stdout] test automation::curves::tests::test_zero_duration_segment ... ok
[INFO] [stdout] test automation::curves::tests::test_segment_evaluate_midpoint ... ok
[INFO] [stdout] test automation::curves::tests::test_segment_evaluate_before_start ... ok
[INFO] [stdout] test automation::timeline::tests::test_add_fade_out_creates_segment ... ok
[INFO] [stdout] test automation::timeline::tests::test_add_linear_fade_via_timecode ... ok
[INFO] [stdout] test automation::timeline::tests::test_channel_specific_gain_fade ... ok
[INFO] [stdout] test aes67::tests::test_session_manager_unknown_ssrc ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_first_and_last_frame_various_fps ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_frame_midpoint_24fps_linear ... ok
[INFO] [stdout] test automation::timeline::tests::test_enabled_events ... ok
[INFO] [stdout] test automation::timeline::tests::test_add_gain_segment_increases_count ... ok
[INFO] [stdout] test automation::timeline::tests::test_add_scurve_fade_via_timecode ... ok
[INFO] [stdout] test automation::timeline::tests::test_frame_rate_as_u8_all_variants ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_frame_midpoint_60fps_linear ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_frame_midpoint_30fps_linear ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_frame_midpoint_linear ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_frame_returns_none_outside_segment ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_timecode_evaluates_correctly ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_automation_independent_of_events ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_segment_count_starts_zero ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_timecode_50fps_midpoint ... ok
[INFO] [stdout] test automation::timeline::tests::test_get_events_at ... ok
[INFO] [stdout] test automation::timeline::tests::test_multiple_segments_sorted_order ... ok
[INFO] [stdout] test automation::timeline::tests::test_get_events_in_range ... ok
[INFO] [stdout] test automation::timeline::tests::test_gain_at_timecode_24fps_midpoint ... ok
[INFO] [stdout] test automation::timeline::tests::test_timecode_creation ... ok
[INFO] [stdout] test automation::timeline::tests::test_remove_events ... ok
[INFO] [stdout] test automation::timeline::tests::test_prune_gain_before ... ok
[INFO] [stdout] test automation::timeline::tests::test_timecode_to_frames ... ok
[INFO] [stdout] test automation::timeline::tests::test_timecode_round_trip_all_frame_rates ... ok
[INFO] [stdout] test automation::timeline::tests::test_timeline_creation ... ok
[INFO] [stdout] test automation::timeline::tests::test_timecode_from_frames ... ok
[INFO] [stdout] test automation::timeline::tests::test_timecode_ordering_across_hour_boundary_24fps ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_bandwidth_unit_from_bps ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_allocate_denied ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_bandwidth_unit_to_bps ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_allocate_duplicate ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_budget_allocator_get_budget ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_allocate_success ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_available_bps ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_no_alert_without_thresholds ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_preempt_lowest_priority ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_budget_allocator_multi_link ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_budget_allocator_per_link_thresholds ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_is_allocated ... ok
[INFO] [stdout] test automation::curves::tests::test_logarithmic_endpoints ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_new_budget_capacity ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_release ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_release_all ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_threshold_cleared_fires_on_release_below_warning ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_threshold_critical_fires_on_crossing ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_threshold_warning_fires_on_crossing ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_threshold_warning_to_critical_transition ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_utilization ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_release_nonexistent ... ok
[INFO] [stdout] test bulk_ops::tests::test_activate_all_returns_one_result_per_connection ... ok
[INFO] [stdout] test bulk_ops::tests::test_activate_all_clears_queue ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_threshold_critical_to_warning_to_normal ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_threshold_hysteresis_no_repeated_alerts ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_utilization_pct_method ... ok
[INFO] [stdout] test bulk_ops::tests::test_add_increments_pending ... ok
[INFO] [stdout] test bandwidth_budget::tests::test_utilization_zero_capacity ... ok
[INFO] [stdout] test bulk_ops::tests::test_empty_receiver_returns_err ... ok
[INFO] [stdout] test bulk_ops::tests::test_clear_removes_pending ... ok
[INFO] [stdout] test bulk_ops::tests::test_empty_sender_returns_err ... ok
[INFO] [stdout] test bulk_ops::tests::test_mixed_results ... ok
[INFO] [stdout] test bulk_ops::tests::test_new_has_no_pending ... ok
[INFO] [stdout] test channel::extract::tests::test_add_channel ... ok
[INFO] [stdout] test channel::extract::tests::test_channel_selector ... ok
[INFO] [stdout] test channel::extract::tests::test_duplicate_channel ... ok
[INFO] [stdout] test channel::extract::tests::test_extractor_creation ... ok
[INFO] [stdout] test bulk_ops::tests::test_identical_ids_returns_err ... ok
[INFO] [stdout] test bulk_ops::tests::test_valid_connections_succeed ... ok
[INFO] [stdout] test channel::extract::tests::test_channel_labels ... ok
[INFO] [stdout] test channel::extract::tests::test_invalid_channel ... ok
[INFO] [stdout] test channel::extract::tests::test_left_only ... ok
[INFO] [stdout] test bulk_ops::tests::test_pending_connection_equality ... ok
[INFO] [stdout] test channel::extract::tests::test_output_index ... ok
[INFO] [stdout] test channel::map::tests::test_add_custom_remapper ... ok
[INFO] [stdout] test channel::extract::tests::test_stereo_pair ... ok
[INFO] [stdout] test channel::map::tests::test_atmos_714_channel_count ... ok
[INFO] [stdout] test channel::extract::tests::test_surround_51 ... ok
[INFO] [stdout] test channel::map::tests::test_51_to_stereo_downmix ... ok
[INFO] [stdout] test channel::map::tests::test_channel_layout ... ok
[INFO] [stdout] test channel::map::tests::test_downmix_714_to_51_layout ... ok
[INFO] [stdout] test channel::map::tests::test_downmix_714_to_51_surround_fold ... ok
[INFO] [stdout] test channel::map::tests::test_channel_map ... ok
[INFO] [stdout] test channel::map::tests::test_channel_map_manager ... ok
[INFO] [stdout] test channel::map::tests::test_direct_mapping ... ok
[INFO] [stdout] test channel::map::tests::test_downmix_714_to_71_direct_channels ... ok
[INFO] [stdout] test channel::map::tests::test_downmix_714_to_71_height_fold ... ok
[INFO] [stdout] test channel::map::tests::test_identity_remapper ... ok
[INFO] [stdout] test channel::map::tests::test_downmix_714_to_71_layout ... ok
[INFO] [stdout] test channel::map::tests::test_downmix_714_to_stereo_layout ... ok
[INFO] [stdout] test channel::map::tests::test_downmix_714_to_stereo_left_channel_sources ... ok
[INFO] [stdout] test channel::map::tests::test_mono_to_stereo_upmix ... ok
[INFO] [stdout] test channel::map::tests::test_remapper_validation ... ok
[INFO] [stdout] test channel::map::tests::test_stereo_to_mono_downmix ... ok
[INFO] [stdout] test channel::map::tests::test_upmix_71_to_714_direct_ear_level ... ok
[INFO] [stdout] test channel::map::tests::test_upmix_51_to_714_height_derived ... ok
[INFO] [stdout] test channel::map::tests::test_upmix_51_to_714_layout ... ok
[INFO] [stdout] test channel::map::tests::test_upmix_51_to_714_rear_derived ... ok
[INFO] [stdout] test channel::map::tests::test_upmix_51_to_714_direct_channels ... ok
[INFO] [stdout] test channel::split::tests::test_combiner ... ok
[INFO] [stdout] test channel::map::tests::test_upmix_71_to_714_height_from_rears ... ok
[INFO] [stdout] test channel::map::tests::test_upmix_71_to_714_layout ... ok
[INFO] [stdout] test channel::split::tests::test_combine_creation ... ok
[INFO] [stdout] test channel::split::tests::test_invalid_split ... ok
[INFO] [stdout] test channel::split::tests::test_invalid_combine ... ok
[INFO] [stdout] test channel_strip::tests::test_aux_send_add_and_get ... ok
[INFO] [stdout] test channel::split::tests::test_multi_split ... ok
[INFO] [stdout] test channel::split::tests::test_split_creation ... ok
[INFO] [stdout] test channel::split::tests::test_splitter ... ok
[INFO] [stdout] test channel_strip::tests::test_aux_send_out_of_range ... ok
[INFO] [stdout] test channel_strip::tests::test_combined_gain_linear ... ok
[INFO] [stdout] test channel_strip::tests::test_compressor_params_access ... ok
[INFO] [stdout] test channel_strip::tests::test_fader_set_and_get ... ok
[INFO] [stdout] test channel_strip::tests::test_filter_params_access ... ok
[INFO] [stdout] test channel_strip::tests::test_gate_params_access ... ok
[INFO] [stdout] test channel_strip::tests::test_input_gain_out_of_range ... ok
[INFO] [stdout] test channel_strip::tests::test_input_gain_set_and_get ... ok
[INFO] [stdout] test channel_strip::tests::test_mute_and_unmute ... ok
[INFO] [stdout] test channel_strip::tests::test_muted_process_zeroes_output ... ok
[INFO] [stdout] test channel_strip::tests::test_polarity_invert ... ok
[INFO] [stdout] test channel_strip::tests::test_process_gain_applies_combined_gain ... ok
[INFO] [stdout] test channel_strip::tests::test_remove_aux_send ... ok
[INFO] [stdout] test channel_strip::tests::test_solo_and_solo_safe ... ok
[INFO] [stdout] test channel_strip::tests::test_strip_bus_add_and_count ... ok
[INFO] [stdout] test channel_strip::tests::test_strip_bus_duplicate_error ... ok
[INFO] [stdout] test channel_strip::tests::test_strip_bus_mute_all ... ok
[INFO] [stdout] test channel_strip::tests::test_strip_bus_remove ... ok
[INFO] [stdout] test channel_strip::tests::test_strip_bus_soloed_strips ... ok
[INFO] [stdout] test channel_strip::tests::test_strip_default_values ... ok
[INFO] [stdout] test connection_log::tests::test_change_reason_fault_related ... ok
[INFO] [stdout] test connection_log::tests::test_entry_display ... ok
[INFO] [stdout] test connection_log::tests::test_log_append_and_len ... ok
[INFO] [stdout] test connection_log::tests::test_log_capacity_evicts_oldest ... ok
[INFO] [stdout] test connection_log::tests::test_log_get_by_seq ... ok
[INFO] [stdout] test connection_log::tests::test_query_by_reason ... ok
[INFO] [stdout] test connection_log::tests::test_query_by_sender ... ok
[INFO] [stdout] test connection_log::tests::test_query_time_range ... ok
[INFO] [stdout] test connection_log::tests::test_query_with_limit ... ok
[INFO] [stdout] test connection_log::tests::test_reason_counts ... ok
[INFO] [stdout] test connection_log::tests::test_rollback_counter ... ok
[INFO] [stdout] test connection_log::tests::test_rollback_targets_only_query ... ok
[INFO] [stdout] test connection_log::tests::test_rollback_tracker_build_entry ... ok
[INFO] [stdout] test connection_log::tests::test_rollback_tracker_checkpoint ... ok
[INFO] [stdout] test connection_log::tests::test_rollback_tracker_clear ... ok
[INFO] [stdout] test constraint::tests::test_both_restrictions_must_match ... ok
[INFO] [stdout] test constraint::tests::test_empty_constraint_is_permissive ... ok
[INFO] [stdout] test constraint::tests::test_builder_and_mutating_api_equivalent ... ok
[INFO] [stdout] test constraint::tests::test_case_insensitive_codec ... ok
[INFO] [stdout] test constraint::tests::test_case_insensitive_format ... ok
[INFO] [stdout] test constraint::tests::test_codec_restriction_blocks_unknown ... ok
[INFO] [stdout] test constraint::tests::test_format_restriction_blocks_unknown ... ok
[INFO] [stdout] test constraint::tests::test_is_permissive_false_with_restrictions ... ok
[INFO] [stdout] test constraint_sets::tests::test_constraint_engine_evaluate_all ... ok
[INFO] [stdout] test constraint::tests::test_multiple_allowed_formats ... ok
[INFO] [stdout] test constraint_sets::tests::test_constrained_params_deduplication ... ok
[INFO] [stdout] test constraint_sets::tests::test_constraint_engine_compatible_first_set_matches ... ok
[INFO] [stdout] test constraint_sets::tests::test_constraint_engine_empty_set_always_matches ... ok
[INFO] [stdout] test constraint_sets::tests::test_param_constraint_exact_string_match ... ok
[INFO] [stdout] test constraint_sets::tests::test_constraint_engine_incompatible_no_sets_match ... ok
[INFO] [stdout] test constraint_sets::tests::test_format_negotiator_audio ... ok
[INFO] [stdout] test constraint_sets::tests::test_negotiation_result_display_compatible ... ok
[INFO] [stdout] test constraint_sets::tests::test_negotiation_result_display_incompatible ... ok
[INFO] [stdout] test constraint_sets::tests::test_param_constraint_enum_match ... ok
[INFO] [stdout] test convert::bit_depth::tests::test_converter_creation ... ok
[INFO] [stdout] test constraint_sets::tests::test_param_constraint_maximum_match ... ok
[INFO] [stdout] test constraint_sets::tests::test_param_constraint_minimum_match ... ok
[INFO] [stdout] test constraint_sets::tests::test_param_constraint_range_match ... ok
[INFO] [stdout] test constraint_sets::tests::test_sender_fails_set_when_param_missing ... ok
[INFO] [stdout] test constraint_sets::tests::test_sender_satisfies_set_all_match ... ok
[INFO] [stdout] test convert::bit_depth::tests::test_depth_change ... ok
[INFO] [stdout] test convert::bit_depth::tests::test_should_dither ... ok
[INFO] [stdout] test convert::bit_depth::tests::test_dither_types ... ok
[INFO] [stdout] test convert::bit_depth::tests::test_is_reduction ... ok
[INFO] [stdout] test convert::bit_depth::tests::test_no_conversion_needed ... ok
[INFO] [stdout] test convert::bit_depth::tests::test_preset_converters ... ok
[INFO] [stdout] test convert::channels::tests::test_channel_difference ... ok
[INFO] [stdout] test convert::channels::tests::test_converter_creation ... ok
[INFO] [stdout] test convert::sample_rate::tests::test_conversion_ratio ... ok
[INFO] [stdout] test convert::channels::tests::test_mode_setting ... ok
[INFO] [stdout] test convert::channels::tests::test_no_conversion_needed ... ok
[INFO] [stdout] test convert::channels::tests::test_preset_converters ... ok
[INFO] [stdout] test convert::channels::tests::test_downmix_upmix ... ok
[INFO] [stdout] test convert::sample_rate::tests::test_converter_creation ... ok
[INFO] [stdout] test convert::sample_rate::tests::test_no_conversion_needed ... ok
[INFO] [stdout] test convert::sample_rate::tests::test_preset_converters ... ok
[INFO] [stdout] test convert::sample_rate::tests::test_quality_settings ... ok
[INFO] [stdout] test convert::sample_rate::tests::test_validation ... ok
[INFO] [stdout] test convert::sample_rate::tests::test_upsample_downsample ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_crosspoint_is_routed ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_crosspoint_not_routed_when_open ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_crosspoint_state_allows_routing_closed ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_crosspoint_state_allows_routing_open ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_crosspoint_state_allows_routing_protected ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_active_connections ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_connect_out_of_range ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_connect_success ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_disconnect ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_inputs_for ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_new_all_open ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_outputs_for ... ok
[INFO] [stdout] test channel::extract::tests::test_select_deselect_all ... ok
[INFO] [stdout] test channel::extract::tests::test_selector_deselect ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_protected_cannot_connect ... ok
[INFO] [stdout] test crosspoint_matrix::tests::test_matrix_protected_cannot_disconnect ... ok
[INFO] [stdout] test dante::discovery::tests::test_calculate_latency_with_hops ... ok
[INFO] [stdout] test dante::discovery::tests::test_calculate_latency_zero_hops ... ok
[INFO] [stdout] test dante::discovery::tests::test_dante_channel ... ok
[INFO] [stdout] test dante::discovery::tests::test_dante_device_creation ... ok
[INFO] [stdout] test dante::discovery::tests::test_dante_device_ip_string ... ok
[INFO] [stdout] test dante::discovery::tests::test_discovery_add_find_device ... ok
[INFO] [stdout] test dante::discovery::tests::test_discovery_remove_device ... ok
[INFO] [stdout] test dante::discovery::tests::test_mdns_record_service_types ... ok
[INFO] [stdout] test dante::discovery::tests::test_router_list_subscriptions ... ok
[INFO] [stdout] test dante::discovery::tests::test_router_subscribe ... ok
[INFO] [stdout] test dante::discovery::tests::test_router_subscribe_duplicate_ignored ... ok
[INFO] [stdout] test dante::discovery::tests::test_router_unsubscribe ... ok
[INFO] [stdout] test dante::metadata::tests::test_active_flows ... ok
[INFO] [stdout] test dante::metadata::tests::test_add_device ... ok
[INFO] [stdout] test embed::audio::tests::test_channel_conflict ... ok
[INFO] [stdout] test embed::audio::tests::test_eight_channel_preset ... ok
[INFO] [stdout] test dante::metadata::tests::test_add_flow ... ok
[INFO] [stdout] test dante::metadata::tests::test_dante_routing_creation ... ok
[INFO] [stdout] test embed::audio::tests::test_add_channel ... ok
[INFO] [stdout] test embed::audio::tests::test_channel_with_gain ... ok
[INFO] [stdout] test embed::audio::tests::test_embedder_creation ... ok
[INFO] [stdout] test embed::audio::tests::test_invalid_group ... ok
[INFO] [stdout] test embed::audio::tests::test_remove_channel ... ok
[INFO] [stdout] test embed::audio::tests::test_stereo_preset ... ok
[INFO] [stdout] test embed::audio::tests::test_surround_51_preset ... ok
[INFO] [stdout] test embed::deembed::tests::test_add_channel ... ok
[INFO] [stdout] test embed::deembed::tests::test_deembedder_creation ... ok
[INFO] [stdout] test embed::deembed::tests::test_get_mapping ... ok
[INFO] [stdout] test failover_route::tests::test_failover_route_deactivate ... ok
[INFO] [stdout] test embed::deembed::tests::test_stereo_preset ... ok
[INFO] [stdout] test embed::deembed::tests::test_remove_channel ... ok
[INFO] [stdout] test embed::deembed::tests::test_surround_51_preset ... ok
[INFO] [stdout] test embed::deembed::tests::test_target_conflict ... ok
[INFO] [stdout] test failover_route::tests::test_manager_active_path ... ok
[INFO] [stdout] test failover_route::tests::test_failover_config_default ... ok
[INFO] [stdout] test failover_route::tests::test_manager_fails_over_when_max_fail_count_exceeded ... ok
[INFO] [stdout] test failover_route::tests::test_manager_add_route_increments_count ... ok
[INFO] [stdout] test failover_route::tests::test_manager_failover_picks_lowest_priority_value ... ok
[INFO] [stdout] test failover_route::tests::test_manager_failover_no_routes_returns_none ... ok
[INFO] [stdout] test failover_route::tests::test_manager_sequential_failover ... ok
[INFO] [stdout] test failover_route::tests::test_route_health_failed_not_usable ... ok
[INFO] [stdout] test failover_route::tests::test_failover_route_mark_failed_increments ... ok
[INFO] [stdout] test failover_route::tests::test_failover_route_activate ... ok
[INFO] [stdout] test failover_route::tests::test_route_health_primary_usable ... ok
[INFO] [stdout] test failover_route::tests::test_route_health_standby_usable ... ok
[INFO] [stdout] test failover_route::tests::test_route_health_recovering_not_usable ... ok
[INFO] [stdout] test flow::graph::tests::test_add_nodes ... ok
[INFO] [stdout] test flow::graph::tests::test_clear_graph ... ok
[INFO] [stdout] test flow::graph::tests::test_disconnect_nodes ... ok
[INFO] [stdout] test flow::graph::tests::test_get_by_label ... ok
[INFO] [stdout] test flow::graph::tests::test_get_inputs_outputs ... ok
[INFO] [stdout] test flow::graph::tests::test_graph_creation ... ok
[INFO] [stdout] test flow::graph::tests::test_processor_node ... ok
[INFO] [stdout] test flow::validate::tests::test_channel_mismatch ... ok
[INFO] [stdout] test flow::graph::tests::test_remove_node ... ok
[INFO] [stdout] test flow::validate::tests::test_excessive_gain_warning ... ok
[INFO] [stdout] test flow::graph::tests::test_connect_nodes ... ok
[INFO] [stdout] test flow::validate::tests::test_disconnected_input ... ok
[INFO] [stdout] test flow::validate::tests::test_disconnected_output ... ok
[INFO] [stdout] test flow::validate::tests::test_validation_result ... ok
[INFO] [stdout] test flow::validate::tests::test_unreachable_nodes ... ok
[INFO] [stdout] test flow::visualize::tests::test_direction_options ... ok
[INFO] [stdout] test flow::visualize::tests::test_ascii_export ... ok
[INFO] [stdout] test flow::validate::tests::test_would_create_loop ... ok
[INFO] [stdout] test flow::validate::tests::test_feedback_loop_detection ... ok
[INFO] [stdout] test flow::validate::tests::test_valid_graph ... ok
[INFO] [stdout] test flow::visualize::tests::test_dot_export_inactive ... ok
[INFO] [stdout] test flow::validate::tests::test_inactive_warning ... ok
[INFO] [stdout] test flow_registry::tests::test_flow_grain_rate ... ok
[INFO] [stdout] test flow::visualize::tests::test_dot_export_simple ... ok
[INFO] [stdout] test flow::visualize::tests::test_dot_export_with_gain ... ok
[INFO] [stdout] test flow_registry::tests::test_active_flows_filter ... ok
[INFO] [stdout] test flow::visualize::tests::test_processor_in_visualization ... ok
[INFO] [stdout] test flow_registry::tests::test_flow_display ... ok
[INFO] [stdout] test flow_registry::tests::test_flows_by_format_kind ... ok
[INFO] [stdout] test flow_registry::tests::test_flow_format_kind_from_format ... ok
[INFO] [stdout] test flow_registry::tests::test_flows_for_source ... ok
[INFO] [stdout] test flow_registry::tests::test_register_and_retrieve_flow ... ok
[INFO] [stdout] test flow_registry::tests::test_register_empty_source_id_returns_error ... ok
[INFO] [stdout] test flow_registry::tests::test_remove_flow ... ok
[INFO] [stdout] test flow_registry::tests::test_set_flow_state ... ok
[INFO] [stdout] test flow_registry::tests::test_subscribe_to_nonexistent_flow_returns_error ... ok
[INFO] [stdout] test flow_registry::tests::test_subscribe_and_unsubscribe ... ok
[INFO] [stdout] test flow_registry::tests::test_register_duplicate_id_returns_error ... ok
[INFO] [stdout] test gain::stage::tests::test_gain_clamping ... ok
[INFO] [stdout] test gain::stage::tests::test_has_signal ... ok
[INFO] [stdout] test gain::stage::tests::test_linear_gain ... ok
[INFO] [stdout] test gain::stage::tests::test_linked_channels ... ok
[INFO] [stdout] test gain::stage::tests::test_master_gain ... ok
[INFO] [stdout] test gain::stage::tests::test_metering ... ok
[INFO] [stdout] test flow_registry::tests::test_remove_nonexistent_flow_returns_error ... ok
[INFO] [stdout] test flow_registry::tests::test_subscriptions_removed_on_flow_removal ... ok
[INFO] [stdout] test gain::stage::tests::test_multi_channel_gain_stage ... ok
[INFO] [stdout] test gain::stage::tests::test_clipping ... ok
[INFO] [stdout] test gain::stage::tests::test_set_gain ... ok
[INFO] [stdout] test gain::trim::tests::test_adjust_trim ... ok
[INFO] [stdout] test gain::stage::tests::test_mute ... ok
[INFO] [stdout] test gain::stage::tests::test_gain_stage_creation ... ok
[INFO] [stdout] test gain::stage::tests::test_peak_hold ... ok
[INFO] [stdout] test gain::trim::tests::test_custom_range ... ok
[INFO] [stdout] test gain::trim::tests::test_fine_trim ... ok
[INFO] [stdout] test gain::trim::tests::test_reset ... ok
[INFO] [stdout] test gain::trim::tests::test_set_trim ... ok
[INFO] [stdout] test gain::trim::tests::test_trim_clamping ... ok
[INFO] [stdout] test gain::trim::tests::test_trim_creation ... ok
[INFO] [stdout] test gpio_trigger::tests::test_bind_conflict_replace ... ok
[INFO] [stdout] test gpio_trigger::tests::test_custom_routing_action ... ok
[INFO] [stdout] test gpio_trigger::tests::test_disabled_binding_does_not_fire ... ok
[INFO] [stdout] test gpio_trigger::tests::test_both_edge_binding ... ok
[INFO] [stdout] test gain::trim::tests::test_total_trim ... ok
[INFO] [stdout] test gpio_trigger::tests::test_falling_edge_fires_action ... ok
[INFO] [stdout] test gpio_trigger::tests::test_bind_conflict_rejected ... ok
[INFO] [stdout] test gpio_trigger::tests::test_gpo_hold_timer_expires ... ok
[INFO] [stdout] test gpio_trigger::tests::test_gpo_binding_assert ... ok
[INFO] [stdout] test gpio_trigger::tests::test_line_out_of_range ... ok
[INFO] [stdout] test gpio_trigger::tests::test_bind_gpi_and_count ... ok
[INFO] [stdout] test gpio_trigger::tests::test_no_event_when_no_change ... ok
[INFO] [stdout] test gpio_trigger::tests::test_rising_edge_fires_action ... ok
[INFO] [stdout] test gpio_trigger::tests::test_simulated_backend_gpi_count ... ok
[INFO] [stdout] test heartbeat::tests::test_new_is_not_alive ... ok
[INFO] [stdout] test gpio_trigger::tests::test_line_state_tracking ... ok
[INFO] [stdout] test gpio_trigger::tests::test_total_events_counter ... ok
[INFO] [stdout] test gpio_trigger::tests::test_unbind_gpi ... ok
[INFO] [stdout] test gpio_trigger::tests::test_routing_action_display ... ok
[INFO] [stdout] test heartbeat::tests::test_out_of_order_update_ignored ... ok
[INFO] [stdout] test heartbeat::tests::test_node_id_stored ... ok
[INFO] [stdout] test heartbeat::tests::test_reset_clears_state ... ok
[INFO] [stdout] test heartbeat::tests::test_saturating_sub_no_overflow ... ok
[INFO] [stdout] test intercom::tests::test_active_calls_filter ... ok
[INFO] [stdout] test heartbeat::tests::test_expired_heartbeat ... ok
[INFO] [stdout] test intercom::tests::test_answer_already_connected_call_returns_error ... ok
[INFO] [stdout] test heartbeat::tests::test_update_advances_timestamp ... ok
[INFO] [stdout] test heartbeat::tests::test_update_same_timestamp_accepted ... ok
[INFO] [stdout] test intercom::tests::test_all_ports_returns_all ... ok
[INFO] [stdout] test heartbeat::tests::test_zero_timeout_alive_only_at_exact_timestamp ... ok
[INFO] [stdout] test heartbeat::tests::test_update_then_alive ... ok
[INFO] [stdout] test intercom::tests::test_call_involves ... ok
[INFO] [stdout] test intercom::tests::test_call_peer_of ... ok
[INFO] [stdout] test intercom::tests::test_display_implementations ... ok
[INFO] [stdout] test intercom::tests::test_duplicate_party_line_returns_error ... ok
[INFO] [stdout] test intercom::tests::test_duplicate_port_returns_error ... ok
[INFO] [stdout] test intercom::tests::test_can_hear_after_call_connected ... ok
[INFO] [stdout] test intercom::tests::test_cross_line_isolation ... ok
[INFO] [stdout] test intercom::tests::test_get_port_mut_allows_modification ... ok
[INFO] [stdout] test intercom::tests::test_party_line_inactive_hides_from_listeners ... ok
[INFO] [stdout] test intercom::tests::test_intercom_error_display ... ok
[INFO] [stdout] test intercom::tests::test_listeners_of_via_party_line ... ok
[INFO] [stdout] test intercom::tests::test_point_to_point_call_flow ... ok
[INFO] [stdout] test intercom::tests::test_port_busy_blocks_second_call ... ok
[INFO] [stdout] test intercom::tests::test_party_lines_for_port ... ok
[INFO] [stdout] test intercom::tests::test_port_count_and_party_line_count ... ok
[INFO] [stdout] test intercom::tests::test_port_transmitting_state ... ok
[INFO] [stdout] test intercom::tests::test_remove_party_line_cleans_index ... ok
[INFO] [stdout] test intercom::tests::test_register_port_and_retrieve ... ok
[INFO] [stdout] test intercom::tests::test_port_not_found_for_call_initiation ... ok
[INFO] [stdout] test intercom::tests::test_remove_port_terminates_calls ... ok
[INFO] [stdout] test intercom::tests::test_party_line_member_count ... ok
[INFO] [stdout] test intercom::tests::test_party_line_membership ... ok
[INFO] [stdout] test intercom::tests::test_remove_port_from_party_line ... ok
[INFO] [stdout] test intercom::tests::test_remove_port_cleans_party_lines ... ok
[INFO] [stdout] test intercom::tests::test_terminate_already_terminated_returns_error ... ok
[INFO] [stdout] test ip_router::tests::test_add_flow ... ok
[INFO] [stdout] test intercom::tests::test_terminate_call ... ok
[INFO] [stdout] test ip_router::tests::test_add_flow_replaces_existing ... ok
[INFO] [stdout] test ip_router::tests::test_is_multicast_false_unicast ... ok
[INFO] [stdout] test intercom::tests::test_ringing_call_does_not_block_new_call_to_same_callee ... ok
[INFO] [stdout] test ip_router::tests::test_flows_for_subscriber_empty_when_no_subs ... ok
[INFO] [stdout] test ip_router::tests::test_subscribe_duplicate_returns_false ... ok
[INFO] [stdout] test intercom::tests::test_self_call_returns_error ... ok
[INFO] [stdout] test ip_router::tests::test_flows_for_subscriber ... ok
[INFO] [stdout] test ip_router::tests::test_is_multicast_true ... ok
[INFO] [stdout] test ip_router::tests::test_subscribe_success ... ok
[INFO] [stdout] test ip_router::tests::test_ip_flow_type_default_ports ... ok
[INFO] [stdout] test ip_router::tests::test_subscribers_of ... ok
[INFO] [stdout] test ip_router::tests::test_subscribe_nonexistent_flow ... ok
[INFO] [stdout] test ip_router::tests::test_unsubscribe_success ... ok
[INFO] [stdout] test latency_calc::tests::test_calc_ms_totals ... ok
[INFO] [stdout] test ip_router::tests::test_unsubscribe_nonexistent_returns_false ... ok
[INFO] [stdout] test latency_calc::tests::test_calc_totals ... ok
[INFO] [stdout] test latency_calc::tests::test_check_budget_fail ... ok
[INFO] [stdout] test latency_calc::tests::test_bottleneck ... ok
[INFO] [stdout] test latency_calc::tests::test_breakdown_by_kind ... ok
[INFO] [stdout] test latency_calc::tests::test_check_budget_pass ... ok
[INFO] [stdout] test latency_calc::tests::test_frames_of_latency ... ok
[INFO] [stdout] test latency_calc::tests::test_clear ... ok
[INFO] [stdout] test latency_calc::tests::test_latency_kind_display ... ok
[INFO] [stdout] test latency_calc::tests::test_report ... ok
[INFO] [stdout] test latency_calc::tests::test_stage_fixed ... ok
[INFO] [stdout] test latency_calc::tests::test_stage_ms_conversion ... ok
[INFO] [stdout] test latency_calc::tests::test_stage_new ... ok
[INFO] [stdout] test link_aggregation::tests::test_active_backup_failover ... ok
[INFO] [stdout] test link_aggregation::tests::test_active_backup_uses_first ... ok
[INFO] [stdout] test link_aggregation::tests::test_aggregate_capacity ... ok
[INFO] [stdout] test link_aggregation::tests::test_aggregator_get_group ... ok
[INFO] [stdout] test link_aggregation::tests::test_group_link_count ... ok
[INFO] [stdout] test link_aggregation::tests::test_link_down_not_active ... ok
[INFO] [stdout] test latency_calc::tests::test_rss_jitter ... ok
[INFO] [stdout] test latency_calc::tests::test_stage_display ... ok
[INFO] [stdout] test link_aggregation::tests::test_aggregator_add_and_count ... ok
[INFO] [stdout] test link_aggregation::tests::test_no_active_links ... ok
[INFO] [stdout] test link_aggregation::tests::test_aggregator_total_capacity ... ok
[INFO] [stdout] test link_aggregation::tests::test_link_is_active ... ok
[INFO] [stdout] test link_aggregation::tests::test_link_with_weight_builder ... ok
[INFO] [stdout] test link_aggregation::tests::test_reset_counters ... ok
[INFO] [stdout] test link_aggregation::tests::test_round_robin_alternates ... ok
[INFO] [stdout] test lock_free_router::tests::test_clear ... ok
[INFO] [stdout] test link_aggregation::tests::test_set_link_state ... ok
[INFO] [stdout] test link_aggregation::tests::test_weighted_prefers_higher_weight ... ok
[INFO] [stdout] test lock_free_router::tests::test_concurrent_readers_never_block_longer_than_1ms ... ok
[INFO] [stdout] test lock_free_router::tests::test_discard_staged ... ok
[INFO] [stdout] test lock_free_router::tests::test_disconnect ... ok
[INFO] [stdout] test lock_free_router::tests::test_gain_db_none_when_out_of_bounds ... ok
[INFO] [stdout] test lock_free_router::tests::test_concurrent_writes_do_not_corrupt_state ... ok
[INFO] [stdout] test lock_free_router::tests::test_inputs_for_output ... ok
[INFO] [stdout] test lock_free_router::tests::test_inputs_for_output_out_of_bounds ... ok
[INFO] [stdout] test lock_free_router::tests::test_out_of_bounds_connect ... ok
[INFO] [stdout] test lock_free_router::tests::test_gain_tracking ... ok
[INFO] [stdout] test lock_free_router::tests::test_outputs_for_input ... ok
[INFO] [stdout] test lock_free_router::tests::test_hot_path_snapshot_is_wait_free ... ok
[INFO] [stdout] test lock_free_router::tests::test_multiple_publish_sequence ... ok
[INFO] [stdout] test lock_free_router::tests::test_new_router_empty ... ok
[INFO] [stdout] test lock_free_router::tests::test_reader_before_and_after_publish ... ok
[INFO] [stdout] test lock_free_router::tests::test_reader_sees_latest_published_version ... ok
[INFO] [stdout] test lock_free_router::tests::test_snapshot_is_arc_clone_cheap ... ok
[INFO] [stdout] test lock_free_router::tests::test_outputs_for_input_out_of_bounds ... ok
[INFO] [stdout] test lock_free_router::tests::test_publish_count ... ok
[INFO] [stdout] test lock_free_router::tests::test_routing_state_dimensions ... ok
[INFO] [stdout] test lock_free_router::tests::test_gain_db_none_when_disconnected ... ok
[INFO] [stdout] test lock_free_router::tests::test_set_gain_on_connected ... ok
[INFO] [stdout] test lock_free_router::tests::test_stage_and_publish ... ok
[INFO] [stdout] test lock_free_router::tests::test_version_increments ... ok
[INFO] [stdout] test madi::interface::tests::test_add_channel ... ok
[INFO] [stdout] test madi::interface::tests::test_initialize_channels ... ok
[INFO] [stdout] test madi::interface::tests::test_active_channels ... ok
[INFO] [stdout] test madi::interface::tests::test_invalid_channel ... ok
[INFO] [stdout] test madi::interface::tests::test_madi_interface_creation ... ok
[INFO] [stdout] test madi::interface::tests::test_madi_96k ... ok
[INFO] [stdout] test madi::interface::tests::test_frame_mode_change ... ok
[INFO] [stdout] test madi::interface::tests::test_remove_channel ... ok
[INFO] [stdout] test matrix::connection::tests::test_connection_creation ... ok
[INFO] [stdout] test matrix::connection::tests::test_connection_manager ... ok
[INFO] [stdout] test matrix::connection::tests::test_active_connections ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_connect_disconnect ... ok
[INFO] [stdout] test matrix::connection::tests::test_connection_builder ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_connect_disconnect_roundtrip_mix_bus ... ok
[INFO] [stdout] test matrix::connection::tests::test_connection_type_filter ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_crosspoint_id ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_invalid_indices ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_labels ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_all_matches_per_output ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_out_of_bounds_output ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_sum_multiple_inputs ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_with_gain ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_zero_output ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_new_sparse_same_as_new ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_routing_queries ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_all_excluded ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_basic ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_compute_excludes_self ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_gain_control ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_matrix_creation ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_single_connection_at_0db ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_input_gain_default ... ok
[INFO] [stdout] test lock_free_router::tests::test_concurrent_readers_see_consistent_state ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_remove_exclusion ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_master_gain ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_active_outputs ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_add_bus ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_add_bus_invalid_input ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_compute_all ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_creation ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_256x256_with_5pct_fill ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_with_input_gain ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_empty_samples ... ok
[INFO] [stdout] test matrix::crosspoint::tests::test_256x256_mix_bus_diagonal ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_get_bus_mut ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_has_bus_false ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_remove_bus ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_standard_ifb ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_standard_ifb_exceeds_inputs ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_router_get_bus_none ... ok
[INFO] [stdout] test matrix::solver::tests::test_find_shortest_path ... ok
[INFO] [stdout] test matrix::solver::tests::test_find_all_paths ... ok
[INFO] [stdout] test matrix::solver::tests::test_loop_detection ... ok
[INFO] [stdout] test matrix::solver::tests::test_no_path ... ok
[INFO] [stdout] test matrix_router::tests::test_all_outputs_for_input ... ok
[INFO] [stdout] test matrix::solver::tests::test_would_create_loop ... ok
[INFO] [stdout] test matrix::solver::tests::test_routing_path ... ok
[INFO] [stdout] test matrix_router::tests::test_connect_out_of_range_returns_false ... ok
[INFO] [stdout] test matrix_router::tests::test_get_source_disconnected ... ok
[INFO] [stdout] test matrix_router::tests::test_connect_and_get_source ... ok
[INFO] [stdout] test matrix_router::tests::test_lock_prevents_connect ... ok
[INFO] [stdout] test matrix_router::tests::test_lock_prevents_disconnect ... ok
[INFO] [stdout] test matrix_router::tests::test_router_size_is_valid ... ok
[INFO] [stdout] test matrix_router::tests::test_disconnect ... ok
[INFO] [stdout] test matrix_router::tests::test_is_locked ... ok
[INFO] [stdout] test matrix_router::tests::test_salvo_execute ... ok
[INFO] [stdout] test matrix_router::tests::test_salvo_skips_locked ... ok
[INFO] [stdout] test metering_bridge::tests::test_all_readings ... ok
[INFO] [stdout] test matrix_router::tests::test_total_crosspoints ... ok
[INFO] [stdout] test metering_bridge::tests::test_clip_detection ... ok
[INFO] [stdout] test matrix_router::tests::test_unlock_allows_connect ... ok
[INFO] [stdout] test metering_bridge::tests::test_clipped_meters ... ok
[INFO] [stdout] test metering_bridge::tests::test_crest_factor ... ok
[INFO] [stdout] test metering_bridge::tests::test_custom_clip_threshold ... ok
[INFO] [stdout] test metering_bridge::tests::test_feed_unregistered ... ok
[INFO] [stdout] test metering_bridge::tests::test_empty_reading ... ok
[INFO] [stdout] test metering_bridge::tests::test_incremental_feed ... ok
[INFO] [stdout] test metering_bridge::tests::test_insert_and_remove_meter ... ok
[INFO] [stdout] test metering_bridge::tests::test_new_bridge ... ok
[INFO] [stdout] test metering_bridge::tests::test_peak_detection ... ok
[INFO] [stdout] test metering_bridge::tests::test_remove_nonexistent ... ok
[INFO] [stdout] test metering_bridge::tests::test_meter_names ... ok
[INFO] [stdout] test metering_bridge::tests::test_reading_unregistered ... ok
[INFO] [stdout] test metering_bridge::tests::test_reset_all ... ok
[INFO] [stdout] test metering_bridge::tests::test_reset_meter ... ok
[INFO] [stdout] test metering_bridge::tests::test_silence_reading ... ok
[INFO] [stdout] test mix_minus::tests::test_active_exclusions_count ... ok
[INFO] [stdout] test mix_minus::tests::test_clear_exclusions ... ok
[INFO] [stdout] test metering_bridge::tests::test_rms_calculation ... ok
[INFO] [stdout] test mix_minus::tests::test_error_display ... ok
[INFO] [stdout] test mix_minus::tests::test_is_excluded_true_and_false ... ok
[INFO] [stdout] test mix_minus::tests::test_mix_sample_length_mismatch ... ok
[INFO] [stdout] test mix_minus::tests::test_gain_accumulation_known_values ... ok
[INFO] [stdout] test mix_minus::tests::test_mix_input_count_mismatch ... ok
[INFO] [stdout] test mix_minus::tests::test_n_minus_1_three_inputs ... ok
[INFO] [stdout] test mix_minus::tests::test_n_minus_1_asymmetric_values ... ok
[INFO] [stdout] test mix_minus::tests::test_multiple_outputs_exclude_same_input ... ok
[INFO] [stdout] test mix_minus::tests::test_route_input_out_of_bounds ... ok
[INFO] [stdout] test mix_minus::tests::test_route_output_out_of_bounds ... ok
[INFO] [stdout] test mix_minus::tests::test_no_exclusions_full_sum ... ok
[INFO] [stdout] test mix_minus::tests::test_silence_passthrough ... ok
[INFO] [stdout] test mix_minus::tests::test_single_exclusion_only_one_output_affected ... ok
[INFO] [stdout] test monitor::afl::tests::test_afl_creation ... ok
[INFO] [stdout] test monitor::afl::tests::test_clear_all ... ok
[INFO] [stdout] test monitor::afl::tests::test_disable_afl ... ok
[INFO] [stdout] test monitor::afl::tests::test_enable_afl ... ok
[INFO] [stdout] test mix_minus::tests::test_single_input_not_excluded_passes_through ... ok
[INFO] [stdout] test mix_minus::tests::test_single_input_excluded_produces_silence ... ok
[INFO] [stdout] test monitor::afl::tests::test_toggle_afl ... ok
[INFO] [stdout] test monitor::afl::tests::test_multiple_channels ... ok
[INFO] [stdout] test monitor::pfl::tests::test_clear_all ... ok
[INFO] [stdout] test monitor::pfl::tests::test_dim_main ... ok
[INFO] [stdout] test monitor::pfl::tests::test_enable_pfl ... ok
[INFO] [stdout] test monitor::pfl::tests::test_pfl_creation ... ok
[INFO] [stdout] test monitor::pfl::tests::test_toggle_pfl ... ok
[INFO] [stdout] test monitor::pfl::tests::test_disable_pfl ... ok
[INFO] [stdout] test monitor::solo::tests::test_clear_all ... ok
[INFO] [stdout] test monitor::solo::tests::test_effective_level ... ok
[INFO] [stdout] test monitor::solo::tests::test_is_audible ... ok
[INFO] [stdout] test monitor::solo::tests::test_multiple_solos ... ok
[INFO] [stdout] test monitor::solo::tests::test_solo_modes ... ok
[INFO] [stdout] test monitor::solo::tests::test_toggle_solo ... ok
[INFO] [stdout] test monitor::solo::tests::test_solo_channel ... ok
[INFO] [stdout] test monitor::solo::tests::test_solo_manager_creation ... ok
[INFO] [stdout] test monitor::solo::tests::test_unsolo_channel ... ok
[INFO] [stdout] test nmos::tests::test_all_senders_and_receivers_enumeration ... ok
[INFO] [stdout] test nmos::tests::test_connection_manager_connect ... ok
[INFO] [stdout] test nmos::tests::test_connection_manager_disconnect ... ok
[INFO] [stdout] test nmos::tests::test_find_compatible_receivers_returns_video_only ... ok
[INFO] [stdout] test nmos::tests::test_connection_manager_reconnect ... ok
[INFO] [stdout] test nmos::tests::test_find_compatible_receivers_unknown_sender_is_empty ... ok
[INFO] [stdout] test nmos::tests::test_find_compatible_receivers_unknown_sender ... ok
[INFO] [stdout] test nmos::tests::test_find_compatible_receivers_video ... ok
[INFO] [stdout] test nmos::tests::test_is07_event_bus_drain_clears ... ok
[INFO] [stdout] test nmos::tests::test_is05_connection_lifecycle ... ok
[INFO] [stdout] test nmos::tests::test_is07_source_boolean ... ok
[INFO] [stdout] test nmos::tests::test_is07_event_bus_emit_boolean ... ok
[INFO] [stdout] test nmos::tests::test_is05_disconnect_nonexistent_pair_is_noop ... ok
[INFO] [stdout] test nmos::tests::test_is07_event_bus_sequence_increments ... ok
[INFO] [stdout] test nmos::tests::test_full_is04_hierarchy_registration ... ok
[INFO] [stdout] test nmos::tests::test_is07_source_number ... ok
[INFO] [stdout] test nmos::tests::test_lookup_unknown_id_returns_none ... ok
[INFO] [stdout] test nmos::tests::test_multiple_connections ... ok
[INFO] [stdout] test nmos::tests::test_nmos_device_types ... ok
[INFO] [stdout] test nmos::tests::test_nmos_flow_frame_rate ... ok
[INFO] [stdout] test nmos::tests::test_nmos_transport_variants ... ok
[INFO] [stdout] test nmos::tests::test_receiver_subscription_default_none ... ok
[INFO] [stdout] test nmos::tests::test_multiple_devices_under_one_node ... ok
[INFO] [stdout] test nmos::tests::test_nmos_format_media_type ... ok
[INFO] [stdout] test nmos::tests::test_nmos_node_creation ... ok
[INFO] [stdout] test nmos::tests::test_registry_add_and_get_node ... ok
[INFO] [stdout] test nmos::tests::test_registry_add_sender_receiver ... ok
[INFO] [stdout] test nmos::tests::test_tally_clear_all ... ok
[INFO] [stdout] test nmos::tests::test_registry_overwrite_same_id ... ok
[INFO] [stdout] test nmos::tests::test_registry_audio_sender_compatible_receivers ... ok
[INFO] [stdout] test nmos::tests::test_tally_on_air_sources ... ok
[INFO] [stdout] test nmos::tests::test_tally_controller_set_get ... ok
[INFO] [stdout] test nmos::tests::test_tally_set_preview_while_on_program ... ok
[INFO] [stdout] test nmos::tests::test_tally_state_on_air ... ok
[INFO] [stdout] test nmos::tests::test_tally_take_to_program ... ok
[INFO] [stdout] test nmos_activation::tests::test_absolute_fires_at_scheduled_time ... ok
[INFO] [stdout] test nmos::tests::test_tally_state_preview ... ok
[INFO] [stdout] test nmos_activation::tests::test_cancel_already_fired_returns_error ... ok
[INFO] [stdout] test nmos_activation::tests::test_default_constructor ... ok
[INFO] [stdout] test nmos_activation::tests::test_label_propagates_to_fired ... ok
[INFO] [stdout] test nmos_activation::tests::test_cancel_pending ... ok
[INFO] [stdout] test nmos_activation::tests::test_multiple_activations_in_one_tick ... ok
[INFO] [stdout] test nmos_activation::tests::test_history_recording ... ok
[INFO] [stdout] test nmos_activation::tests::test_fire_time_query ... ok
[INFO] [stdout] test nmos_activation::tests::test_pending_count ... ok
[INFO] [stdout] test nmos_activation::tests::test_prune_removes_non_pending ... ok
[INFO] [stdout] test nmos_activation::tests::test_not_found_cancel ... ok
[INFO] [stdout] test nmos_activation::tests::test_relative_fires_after_offset ... ok
[INFO] [stdout] test nmos_activation::tests::test_immediate_activation_fires_at_now ... ok
[INFO] [stdout] test patch::bay::tests::test_basic_patching ... ok
[INFO] [stdout] test nmos_activation::tests::test_scheduled_in_past_error ... ok
[INFO] [stdout] test patch::bay::tests::test_invalid_patch ... ok
[INFO] [stdout] test patch::bay::tests::test_multiple_patches ... ok
[INFO] [stdout] test patch::bay::tests::test_patch_bay_creation ... ok
[INFO] [stdout] test patch::bay::tests::test_patch_with_gain ... ok
[INFO] [stdout] test patch::input::tests::test_find_by_label ... ok
[INFO] [stdout] test patch::bay::tests::test_unpatch ... ok
[INFO] [stdout] test nmos_activation::tests::test_zero_relative_offset_error ... ok
[INFO] [stdout] test patch::bay::tests::test_validation ... ok
[INFO] [stdout] test patch::input::tests::test_input_creation ... ok
[INFO] [stdout] test patch::input::tests::test_phantom_power ... ok
[INFO] [stdout] test patch::output::tests::test_effective_level ... ok
[INFO] [stdout] test patch::input::tests::test_input_builder ... ok
[INFO] [stdout] test patch::input::tests::test_input_manager ... ok
[INFO] [stdout] test patch::output::tests::test_mute_operations ... ok
[INFO] [stdout] test patch::output::tests::test_find_by_label ... ok
[INFO] [stdout] test patch::output::tests::test_output_creation ... ok
[INFO] [stdout] test patch::output::tests::test_output_manager ... ok
[INFO] [stdout] test path_selector::tests::test_is_direct_zero_hops ... ok
[INFO] [stdout] test patch::output::tests::test_output_builder ... ok
[INFO] [stdout] test path_selector::tests::test_is_direct_one_hop ... ok
[INFO] [stdout] test path_selector::tests::test_is_healthy_false_jitter ... ok
[INFO] [stdout] test path_selector::tests::test_is_healthy_false_loss ... ok
[INFO] [stdout] test path_selector::tests::test_is_healthy_true ... ok
[INFO] [stdout] test path_selector::tests::test_quality_score_clamped ... ok
[INFO] [stdout] test path_selector::tests::test_quality_score_perfect ... ok
[INFO] [stdout] test path_selector::tests::test_selector_best_path_empty ... ok
[INFO] [stdout] test path_selector::tests::test_is_not_direct_two_hops ... ok
[INFO] [stdout] test path_selector::tests::test_selector_add_and_count ... ok
[INFO] [stdout] test path_selector::tests::test_selector_best_path_picks_highest_score ... ok
[INFO] [stdout] test path_selector::tests::test_selector_paths_above_quality ... ok
[INFO] [stdout] test path_selector::tests::test_selector_remove_unhealthy ... ok
[INFO] [stdout] test preset::manager::tests::test_active_preset ... ok
[INFO] [stdout] test preset::manager::tests::test_duplicate_preset ... ok
[INFO] [stdout] test preset::manager::tests::test_add_preset ... ok
[INFO] [stdout] test preset::manager::tests::test_find_by_name ... ok
[INFO] [stdout] test preset::manager::tests::test_find_by_tag ... ok
[INFO] [stdout] test preset::manager::tests::test_clear_active ... ok
[INFO] [stdout] test preset::manager::tests::test_manager_creation ... ok
[INFO] [stdout] test preset::manager::tests::test_remove_preset ... ok
[INFO] [stdout] test preset::save::tests::test_preset_creation ... ok
[INFO] [stdout] test preset::save::tests::test_remove_tag ... ok
[INFO] [stdout] test preset::save::tests::test_tags ... ok
[INFO] [stdout] test preset::manager::tests::test_set_invalid_active ... ok
[INFO] [stdout] test preset::save::tests::test_duplicate_tags ... ok
[INFO] [stdout] test preset::save::tests::test_update_data ... ok
[INFO] [stdout] test redundancy_group::tests::test_automatic_failover ... ok
[INFO] [stdout] test redundancy_group::tests::test_failover_event_log_cap ... ok
[INFO] [stdout] test redundancy_group::tests::test_group_add_member ... ok
[INFO] [stdout] test redundancy_group::tests::test_group_activate ... ok
[INFO] [stdout] test redundancy_group::tests::test_available_count ... ok
[INFO] [stdout] test redundancy_group::tests::test_group_activate_invalid ... ok
[INFO] [stdout] test redundancy_group::tests::test_manager_add_group ... ok
[INFO] [stdout] test redundancy_group::tests::test_member_availability ... ok
[INFO] [stdout] test redundancy_group::tests::test_member_creation ... ok
[INFO] [stdout] test route_audit::tests::test_audit_action_display ... ok
[INFO] [stdout] test route_audit::tests::test_action_counts ... ok
[INFO] [stdout] test route_audit::tests::test_clear ... ok
[INFO] [stdout] test route_audit::tests::test_diff_added_connection ... ok
[INFO] [stdout] test route_audit::tests::test_diff_all_removed_when_after_empty ... ok
[INFO] [stdout] test route_audit::tests::test_diff_all_added_when_before_empty ... ok
[INFO] [stdout] test route_audit::tests::test_diff_change_count ... ok
[INFO] [stdout] test route_audit::tests::test_diff_empty_snapshots_identical ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_compute_inactive ... ok
[INFO] [stdout] test route_audit::tests::test_diff_gain_changed ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_multiple_exclusions ... ok
[INFO] [stdout] test route_audit::tests::test_diff_identical_snapshots ... ok
[INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_full_broadcast_scenario ... ok
[INFO] [stdout] test route_audit::tests::test_diff_removed_connection ... ok
[INFO] [stdout] test route_audit::tests::test_diff_report_contains_keywords ... ok
[INFO] [stdout] test route_audit::tests::test_diff_record_to_log ... ok
[INFO] [stdout] test route_audit::tests::test_entry_display ... ok
[INFO] [stdout] test route_audit::tests::test_entry_new ... ok
[INFO] [stdout] test route_audit::tests::test_entry_timestamp_ms ... ok
[INFO] [stdout] test route_audit::tests::test_entry_with_route ... ok
[INFO] [stdout] test route_audit::tests::test_gain_changed_delta_db ... ok
[INFO] [stdout] test route_audit::tests::test_last_entry ... ok
[INFO] [stdout] test route_audit::tests::test_log_record ... ok
[INFO] [stdout] test route_audit::tests::test_query_all ... ok
[INFO] [stdout] test route_audit::tests::test_log_capacity_eviction ... ok
[INFO] [stdout] test route_audit::tests::test_log_record_route ... ok
[INFO] [stdout] test route_audit::tests::test_query_with_limit ... ok
[INFO] [stdout] test route_audit::tests::test_query_by_action ... ok
[INFO] [stdout] test route_audit::tests::test_report ... ok
[INFO] [stdout] test route_audit::tests::test_query_by_time_range ... ok
[INFO] [stdout] test route_audit::tests::test_snapshot_connections_sorted ... ok
[INFO] [stdout] test route_audit::tests::test_snapshot_add_and_find ... ok
[INFO] [stdout] test route_audit::tests::test_snapshot_connection_gain_db_x100 ... ok
[INFO] [stdout] test route_audit::tests::test_snapshot_insert_replaces_existing ... ok
[INFO] [stdout] test route_audit::tests::test_snapshot_find_missing ... ok
[INFO] [stdout] test route_audit::tests::test_snapshot_new_empty ... ok
[INFO] [stdout] test route_optimizer::tests::test_all_filtered_returns_none ... ok
[INFO] [stdout] test route_optimizer::tests::test_candidate_builder ... ok
[INFO] [stdout] test route_optimizer::tests::test_balanced_returns_result ... ok
[INFO] [stdout] test route_optimizer::tests::test_custom_weights ... ok
[INFO] [stdout] test route_optimizer::tests::test_bidirectional_edge ... ok
[INFO] [stdout] test route_optimizer::tests::test_empty_candidates ... ok
[INFO] [stdout] test route_optimizer::tests::test_goal_accessor ... ok
[INFO] [stdout] test route_optimizer::tests::test_graph_edge_effective_cost ... ok
[INFO] [stdout] test route_optimizer::tests::test_graph_node_available_capacity ... ok
[INFO] [stdout] test redundancy_group::tests::test_manager_failed_groups ... ok
[INFO] [stdout] test route_optimizer::tests::test_k_shortest_paths ... ok
[INFO] [stdout] test redundancy_group::tests::test_manual_no_auto_failover ... ok
[INFO] [stdout] test redundancy_group::tests::test_total_failure ... ok
[INFO] [stdout] test route_optimizer::tests::test_latency_constraint_filters ... ok
[INFO] [stdout] test route_optimizer::tests::test_least_congested_path ... ok
[INFO] [stdout] test route_optimizer::tests::test_max_reliability_picks_most_reliable ... ok
[INFO] [stdout] test route_optimizer::tests::test_min_latency_picks_fastest ... ok
[INFO] [stdout] test route_optimizer::tests::test_reliability_constraint_filters ... ok
[INFO] [stdout] test route_optimizer::tests::test_ranked_ordering ... ok
[INFO] [stdout] test route_optimizer::tests::test_routing_graph_counts ... ok
[INFO] [stdout] test route_optimizer::tests::test_same_source_destination ... ok
[INFO] [stdout] test route_optimizer::tests::test_shortest_path_direct ... ok
[INFO] [stdout] test route_optimizer::tests::test_shortest_path_unknown_node ... ok
[INFO] [stdout] test route_optimizer::tests::test_single_candidate_always_chosen ... ok
[INFO] [stdout] test route_optimizer::tests::test_shortest_path_no_path ... ok
[INFO] [stdout] test route_optimizer::tests::test_zero_latency_route_scores_high ... ok
[INFO] [stdout] test route_preset::tests::test_bank_search ... ok
[INFO] [stdout] test route_preset::tests::test_bank_add_recall ... ok
[INFO] [stdout] test route_preset::tests::test_bank_remove ... ok
[INFO] [stdout] test route_optimizer::tests::test_min_cost_picks_cheapest ... ok
[INFO] [stdout] test route_preset::tests::test_preset_add_mapping ... ok
[INFO] [stdout] test route_preset::tests::test_mapping_display ... ok
[INFO] [stdout] test route_preset::tests::test_mapping_with_gain ... ok
[INFO] [stdout] test route_preset::tests::test_preset_diff_added ... ok
[INFO] [stdout] test route_preset::tests::test_preset_diff_removed ... ok
[INFO] [stdout] test route_preset::tests::test_preset_diff_gain_change ... ok
[INFO] [stdout] test route_preset::tests::test_preset_merge ... ok
[INFO] [stdout] test route_preset::tests::test_preset_new ... ok
[INFO] [stdout] test route_preset::tests::test_preset_display ... ok
[INFO] [stdout] test route_preset::tests::test_mapping_new ... ok
[INFO] [stdout] test route_table::tests::test_clear ... ok
[INFO] [stdout] test route_optimizer::tests::test_optimization_result_score_positive ... ok
[INFO] [stdout] test route_optimizer::tests::test_reliability_clamped ... ok
[INFO] [stdout] test route_preset::tests::test_preset_source_ids ... ok
[INFO] [stdout] test route_table::tests::test_insert_and_len ... ok
[INFO] [stdout] test route_preset::tests::test_preset_tags ... ok
[INFO] [stdout] test route_preset::tests::test_preset_remove_destination ... ok
[INFO] [stdout] test route_table::tests::test_longest_prefix_match_default_route ... ok
[INFO] [stdout] test route_table::tests::test_longest_prefix_match_no_match ... ok
[INFO] [stdout] test route_table::tests::test_all_matching_returns_multiple ... ok
[INFO] [stdout] test route_table::tests::test_longest_prefix_match_selects_most_specific ... ok
[INFO] [stdout] test route_table::tests::test_route_entry_contains_false ... ok
[INFO] [stdout] test route_table::tests::test_remove_existing ... ok
[INFO] [stdout] test route_table::tests::test_insert_replaces_existing ... ok
[INFO] [stdout] test route_table::tests::test_route_entry_contains_true ... ok
[INFO] [stdout] test route_table::tests::test_route_entry_mask_slash24 ... ok
[INFO] [stdout] test route_table::tests::test_remove_nonexistent_returns_false ... ok
[INFO] [stdout] test route_table::tests::test_route_entry_mask_slash32 ... ok
[INFO] [stdout] test routing_macro::tests::test_bidirectional_ports ... ok
[INFO] [stdout] test routing_macro::tests::test_duplicate_port_error ... ok
[INFO] [stdout] test routing_macro::tests::test_connections_from ... ok
[INFO] [stdout] test routing_macro::tests::test_basic_build ... ok
[INFO] [stdout] test route_table::tests::test_route_entry_mask_slash0 ... ok
[INFO] [stdout] test route_table::tests::test_route_entry_with_metric ... ok
[INFO] [stdout] test routing_macro::tests::test_gain_connection ... ok
[INFO] [stdout] test routing_macro::tests::test_group_and_connections_from ... ok
[INFO] [stdout] test routing_macro::tests::test_muted_connection ... ok
[INFO] [stdout] test routing_macro::tests::test_empty_name_error ... ok
[INFO] [stdout] test routing_macro::tests::test_port_lookup ... ok
[INFO] [stdout] test routing_macro::tests::test_invalid_direction_output_to_output ... ok
[INFO] [stdout] test routing_macro::tests::test_port_descriptor_builder ... ok
[INFO] [stdout] test routing_macro::tests::test_gain_out_of_range ... ok
[INFO] [stdout] test routing_macro::tests::test_ports_slice ... ok
[INFO] [stdout] test routing_policy::tests::test_all_interfaces_down_returns_none ... ok
[INFO] [stdout] test routing_macro::tests::test_unknown_port_error ... ok
[INFO] [stdout] test routing_policy::tests::test_clear_policies ... ok
[INFO] [stdout] test routing_policy::tests::test_failover_primary_preferred ... ok
[INFO] [stdout] test routing_policy::tests::test_lowest_metric_selects_min ... ok
[INFO] [stdout] test routing_policy::tests::test_policy_enable_disable ... ok
[INFO] [stdout] test routing_policy::tests::test_policy_names_iterator ... ok
[INFO] [stdout] test routing_policy::tests::test_prefer_interface_fallback_to_lowest ... ok
[INFO] [stdout] test routing_policy::tests::test_failover_uses_backup_when_primary_down ... ok
[INFO] [stdout] test routing_policy::tests::test_disabled_policy_skipped ... ok
[INFO] [stdout] test routing_policy::tests::test_no_candidates_returns_none ... ok
[INFO] [stdout] test routing_policy::tests::test_policy_count ... ok
[INFO] [stdout] test routing_policy::tests::test_prefer_interface_found ... ok
[INFO] [stdout] test routing_policy::tests::test_round_robin_cycles ... ok
[INFO] [stdout] test routing_policy::tests::test_weighted_selects_highest_weight ... ok
[INFO] [stdout] test routing_snapshot::tests::test_active_crosspoints_list ... ok
[INFO] [stdout] test routing_snapshot::tests::test_atomic_rollback_on_dimension_mismatch ... ok
[INFO] [stdout] test routing_policy::tests::test_route_candidate_with_interface_down ... ok
[INFO] [stdout] test routing_snapshot::tests::test_atomic_rollback_on_not_found ... ok
[INFO] [stdout] test routing_snapshot::tests::test_capture_and_count ... ok
[INFO] [stdout] test routing_policy::tests::test_weighted_unknown_interface_treated_as_zero ... ok
[INFO] [stdout] test routing_snapshot::tests::test_atomic_restore_gain_roundtrip ... ok
[INFO] [stdout] test routing_snapshot::tests::test_atomic_restore_full_replace ... ok
[INFO] [stdout] test routing_snapshot::tests::test_compare_added_crosspoints ... ok
[INFO] [stdout] test routing_snapshot::tests::test_compare_identical ... ok
[INFO] [stdout] test routing_snapshot::tests::test_delete_snapshot ... ok
[INFO] [stdout] test routing_snapshot::tests::test_compare_gain_changed ... ok
[INFO] [stdout] test routing_snapshot::tests::test_diff_not_found ... ok
[INFO] [stdout] test routing_snapshot::tests::test_diff_identical ... ok
[INFO] [stdout] test routing_snapshot::tests::test_clear ... ok
[INFO] [stdout] test routing_snapshot::tests::test_diff_added_removed ... ok
[INFO] [stdout] test routing_snapshot::tests::test_empty_snapshot ... ok
[INFO] [stdout] test routing_snapshot::tests::test_diff_gain_changed ... ok
[INFO] [stdout] test routing_snapshot::tests::test_list_snapshots_metadata ... ok
[INFO] [stdout] test routing_snapshot::tests::test_latest ... ok
[INFO] [stdout] test routing_snapshot::tests::test_list ... ok
[INFO] [stdout] test routing_snapshot::tests::test_compare_removed_crosspoints ... ok
[INFO] [stdout] test routing_snapshot::tests::test_restore_is_idempotent ... ok
[INFO] [stdout] test routing_snapshot::tests::test_max_snapshots_eviction ... ok
[INFO] [stdout] test routing_snapshot::tests::test_restore_dimension_mismatch ... ok
[INFO] [stdout] test routing_snapshot::tests::test_restore_not_found ... ok
[INFO] [stdout] test routing_snapshot::tests::test_snapshot_labels_preserved ... ok
[INFO] [stdout] test routing_snapshot::tests::test_restore_sequence ... ok
[INFO] [stdout] test routing_snapshot::tests::test_snapshot_get_gain ... ok
[INFO] [stdout] test routing_snapshot::tests::test_restore_preserves_labels ... ok
[INFO] [stdout] test signal_generator::tests::test_amplitude_clamped ... ok
[INFO] [stdout] test signal_generator::tests::test_config_access ... ok
[INFO] [stdout] test signal_generator::tests::test_default_config ... ok
[INFO] [stdout] test routing_snapshot::tests::test_restore_roundtrip ... ok
[INFO] [stdout] test routing_snapshot::tests::test_snapshot_active_count ... ok
[INFO] [stdout] test signal_generator::tests::test_fill_buffer ... ok
[INFO] [stdout] test signal_generator::tests::test_pink_noise_not_silent ... ok
[INFO] [stdout] test signal_generator::tests::test_reset ... ok
[INFO] [stdout] test signal_generator::tests::test_sample_index_advances ... ok
[INFO] [stdout] test signal_generator::tests::test_set_frequency ... ok
[INFO] [stdout] test signal_generator::tests::test_silence_generator ... ok
[INFO] [stdout] test signal_generator::tests::test_generate_block_f32 ... ok
[INFO] [stdout] test signal_generator::tests::test_polarity_pulse ... ok
[INFO] [stdout] test routing_snapshot::tests::test_snapshot_restore_256x256_diagonal ... ok
[INFO] [stdout] test signal_generator::tests::test_sine_quarter_period ... ok
[INFO] [stdout] test signal_generator::tests::test_sweep_monotonic_phase ... ok
[INFO] [stdout] test signal_monitor::tests::test_alert_severity_labels ... ok
[INFO] [stdout] test signal_monitor::tests::test_crosspoint_active_count ... ok
[INFO] [stdout] test signal_monitor::tests::test_crosspoint_register_and_process ... ok
[INFO] [stdout] test signal_monitor::tests::test_crosspoint_registered_count ... ok
[INFO] [stdout] test signal_monitor::tests::test_crosspoint_unregistered_returns_none ... ok
[INFO] [stdout] test signal_monitor::tests::test_detector_absent_after_holdoff ... ok
[INFO] [stdout] test route_audit::tests::test_query_by_user ... ok
[INFO] [stdout] test signal_monitor::tests::test_detector_hysteresis ... ok
[INFO] [stdout] test signal_monitor::tests::test_detector_is_present_initial_false ... ok
[INFO] [stdout] test signal_monitor::tests::test_detector_present_after_holdoff ... ok
[INFO] [stdout] test signal_monitor::tests::test_detector_no_event_below_holdoff ... ok
[INFO] [stdout] test signal_monitor::tests::test_detector_reset ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_alert_count_increments ... ok
[INFO] [stdout] test signal_monitor::tests::test_detector_threshold_getter ... ok
[INFO] [stdout] test signal_generator::tests::test_white_noise_not_silent ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_hysteresis_zone_no_state_change ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_new_empty ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_no_alert_before_holdoff ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_overmod_resets_after_normal_level ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_overmodulation_alert ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_alert_count_zero_for_unregistered ... ok
[INFO] [stdout] test signal_monitor::tests::test_alert_kind_labels ... ok
[INFO] [stdout] test signal_monitor::tests::test_crosspoint_monitor_new ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_signal_lost_after_holdoff ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_evaluate_unregistered_returns_empty ... ok
[INFO] [stdout] test signal_generator::tests::test_sine_generator_basic ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_alert_severity_ordering ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_reset_clears_state ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_signal_present_port_name_in_alert ... ok
[INFO] [stdout] test signal_monitor::tests::test_fault_count_increments_on_loss ... ok
[INFO] [stdout] test signal_monitor::tests::test_fault_count_zero_on_ok ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_register_port ... ok
[INFO] [stdout] test signal_monitor::tests::test_initial_status_unknown ... ok
[INFO] [stdout] test signal_monitor::tests::test_report_all_ok ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_signal_present_after_holdoff ... ok
[INFO] [stdout] test signal_monitor::tests::test_engine_two_ports_independent ... ok
[INFO] [stdout] test signal_monitor::tests::test_last_sample_stored ... ok
[INFO] [stdout] test signal_monitor::tests::test_report_unknown_before_submission ... ok
[INFO] [stdout] test signal_monitor::tests::test_signal_status_is_operational ... ok
[INFO] [stdout] test signal_monitor::tests::test_report_has_alerts_on_loss ... ok
[INFO] [stdout] test signal_generator::tests::test_sine_amplitude ... ok
[INFO] [stdout] test signal_monitor::tests::test_signal_event_enum_variants ... ok
[INFO] [stdout] test signal_monitor::tests::test_signal_presence_detector_new ... ok
[INFO] [stdout] test signal_monitor::tests::test_signal_status_label ... ok
[INFO] [stdout] test signal_monitor::tests::test_port_count ... ok
[INFO] [stdout] test signal_monitor::tests::test_signal_status_needs_attention ... ok
[INFO] [stdout] test signal_monitor::tests::test_submit_unregistered_returns_none ... ok
[INFO] [stdout] test signal_monitor::tests::test_submit_warning_snr_exceeded ... ok
[INFO] [stdout] test signal_monitor::tests::test_threshold_config_default ... ok
[INFO] [stdout] test signal_monitor::tests::test_unregistered_port_unknown ... ok
[INFO] [stdout] test signal_path::tests::test_signal_format_bandwidth ... ok
[INFO] [stdout] test signal_path::tests::test_bandwidth_bottleneck_min_selected ... ok
[INFO] [stdout] test signal_path::tests::test_signal_node_counts ... ok
[INFO] [stdout] test signal_monitor::tests::test_submit_lost_below_min_level ... ok
[INFO] [stdout] test signal_monitor::tests::test_submit_ok_sample ... ok
[INFO] [stdout] test signal_path::tests::test_bandwidth_bottleneck_empty ... ok
[INFO] [stdout] test signal_path::tests::test_signal_format_supports_4k ... ok
[INFO] [stdout] test signal_path::tests::test_signal_path_connect_returns_false_for_missing_node ... ok
[INFO] [stdout] test signal_path::tests::test_trace_path_direct ... ok
[INFO] [stdout] test signal_path::tests::test_trace_path_multi_hop ... ok
[INFO] [stdout] test signal_path::tests::test_signal_path_connect_success ... ok
[INFO] [stdout] test signal_path::tests::test_signal_path_no_duplicate_connections ... ok
[INFO] [stdout] test signal_path::tests::test_trace_path_no_path ... ok
[INFO] [stdout] test sparse_matrix::tests::test_clear ... ok
[INFO] [stdout] test signal_path::tests::test_trace_path_same_node ... ok
[INFO] [stdout] test sparse_matrix::tests::test_capacity_256x256 ... ok
[INFO] [stdout] test sparse_matrix::tests::test_capacity_4x4 ... ok
[INFO] [stdout] test sparse_matrix::tests::test_connect_out_of_bounds_output ... ok
[INFO] [stdout] test sparse_matrix::tests::test_connect_success ... ok
[INFO] [stdout] test sparse_matrix::tests::test_disconnect_nonexistent_ok ... ok
[INFO] [stdout] test sparse_matrix::tests::test_connect_idempotent ... ok
[INFO] [stdout] test sparse_matrix::tests::test_connect_out_of_bounds_input ... ok
[INFO] [stdout] test sparse_matrix::tests::test_disconnect_out_of_bounds ... ok
[INFO] [stdout] test sparse_matrix::tests::test_256x256_performance ... ok
[INFO] [stdout] test sparse_matrix::tests::test_active_count_decrements_on_disconnect ... ok
[INFO] [stdout] test sparse_matrix::tests::test_active_count_increments ... ok
[INFO] [stdout] test sparse_matrix::tests::test_is_connected_false ... ok
[INFO] [stdout] test sparse_matrix::tests::test_new_empty ... ok
[INFO] [stdout] test sparse_matrix::tests::test_outputs_for ... ok
[INFO] [stdout] test sparse_matrix::tests::test_sparse_vs_dense_equivalence ... ok
[INFO] [stdout] test tally_system::tests::test_all_destinations_returns_all ... ok
[INFO] [stdout] test sparse_matrix::tests::test_disconnect_removes_connection ... ok
[INFO] [stdout] test tally_system::tests::test_assign_unknown_destination_returns_error ... ok
[INFO] [stdout] test sparse_matrix::tests::test_to_dense_correct ... ok
[INFO] [stdout] test tally_system::tests::test_all_sources_returns_all ... ok
[INFO] [stdout] test sparse_matrix::tests::test_inputs_for ... ok
[INFO] [stdout] test tally_system::tests::test_clear_events ... ok
[INFO] [stdout] test sparse_matrix::tests::test_is_connected_true ... ok
[INFO] [stdout] test tally_system::tests::test_assign_destination_to_unknown_source_returns_error ... ok
[INFO] [stdout] test tally_system::tests::test_destination_count_after_register_and_remove ... ok
[INFO] [stdout] test tally_system::tests::test_destination_gets_current_state_on_assign ... ok
[INFO] [stdout] test tally_system::tests::test_display_and_event_formatting ... ok
[INFO] [stdout] test tally_system::tests::test_duplicate_source_returns_error ... ok
[INFO] [stdout] test tally_system::tests::test_duplicate_destination_returns_error ... ok
[INFO] [stdout] test tally_system::tests::test_no_duplicate_event_for_same_state ... ok
[INFO] [stdout] test tally_system::tests::test_event_sequence_increments ... ok
[INFO] [stdout] test tally_system::tests::test_colour_name_mapping ... ok
[INFO] [stdout] test tally_system::tests::test_remove_nonexistent_source_returns_error ... ok
[INFO] [stdout] test tally_system::tests::test_register_source_and_retrieve ... ok
[INFO] [stdout] test tally_system::tests::test_multiple_destinations_follow_same_source ... ok
[INFO] [stdout] test tally_system::tests::test_destination_receives_state_update ... ok
[INFO] [stdout] test tally_system::tests::test_remove_nonexistent_destination_returns_error ... ok
[INFO] [stdout] test tally_system::tests::test_source_count_after_register_and_remove ... ok
[INFO] [stdout] test tally_system::tests::test_source_with_bus_number ... ok
[INFO] [stdout] test tally_system::tests::test_sources_in_state_filter ... ok
[INFO] [stdout] test tally_system::tests::test_tally_protocol_display ... ok
[INFO] [stdout] test tally_system::tests::test_remove_source_drives_destinations_idle ... ok
[INFO] [stdout] test tally_system::tests::test_set_state_to_programme ... ok
[INFO] [stdout] test tally_system::tests::test_state_change_appends_event ... ok
[INFO] [stdout] test tally_system::tests::test_set_state_unknown_source_returns_error ... ok
[INFO] [stdout] test tally_system::tests::test_tally_error_display ... ok
[INFO] [stdout] test tests::test_channel_mapping ... ok
[INFO] [stdout] test tally_system::tests::test_tally_state_ordering ... ok
[INFO] [stdout] test tally_system::tests::test_tally_state_display ... ok
[INFO] [stdout] test tally_system::tests::test_unassign_destination_goes_idle ... ok
[INFO] [stdout] test tally_system::tests::test_unassign_unknown_destination_returns_error ... ok
[INFO] [stdout] test tests::test_automation ... ok
[INFO] [stdout] test tests::test_channel_remapper_51_to_stereo ... ok
[INFO] [stdout] test tests::test_basic_routing ... ok
[INFO] [stdout] test tests::test_channel_remapper_71_to_stereo_via_714 ... ok
[INFO] [stdout] test tests::test_channel_remapper_mono_to_stereo ... ok
[INFO] [stdout] test tests::test_channel_remapper_stereo_to_mono ... ok
[INFO] [stdout] test tests::test_madi_interface ... ok
[INFO] [stdout] test tests::test_monitoring ... ok
[INFO] [stdout] test tests::test_preset_management ... ok
[INFO] [stdout] test tests::test_signal_flow ... ok
[INFO] [stdout] test topology_map::tests::test_link_available_bandwidth ... ok
[INFO] [stdout] test topology_map::tests::test_link_usability ... ok
[INFO] [stdout] test topology_map::tests::test_map_add_link_invalid_node ... ok
[INFO] [stdout] test topology_map::tests::test_map_links_between ... ok
[INFO] [stdout] test topology_map::tests::test_map_add_node ... ok
[INFO] [stdout] test topology_map::tests::test_map_nodes_of_type ... ok
[INFO] [stdout] test topology_map::tests::test_map_outgoing_incoming_links ... ok
[INFO] [stdout] test topology_map::tests::test_map_remove_node_cascades ... ok
[INFO] [stdout] test topology_map::tests::test_node_creation ... ok
[INFO] [stdout] test topology_map::tests::test_topology_path_direct ... ok
[INFO] [stdout] test topology_map::tests::test_node_with_ports ... ok
[INFO] [stdout] test topology_map::tests::test_topology_path_hop_count ... ok
[INFO] [stdout] test traffic_shaper::tests::test_qos_policy_basics ... ok
[INFO] [stdout] test traffic_shaper::tests::test_qos_policy_oversubscribed ... ok
[INFO] [stdout] test traffic_shaper::tests::test_shaper_advance_clock_refills ... ok
[INFO] [stdout] test traffic_shaper::tests::test_shaper_admit_and_drop ... ok
[INFO] [stdout] test traffic_shaper::tests::test_shaper_aggregate_stats ... ok
[INFO] [stdout] test traffic_shaper::tests::test_shaper_register_stream ... ok
[INFO] [stdout] test traffic_shaper::tests::test_stream_stats_zero ... ok
[INFO] [stdout] test traffic_shaper::tests::test_stream_stats_drop_ratio ... ok
[INFO] [stdout] test traffic_shaper::tests::test_token_bucket_config ... ok
[INFO] [stdout] test tests::test_crosspoint_matrix_stress_1000_cycles ... ok
[INFO] [stdout] test traffic_shaper::tests::test_token_bucket_refill ... ok
[INFO] [stdout] test tests::test_failover_route_switchover_timing ... ok
[INFO] [stdout] test traffic_shaper::tests::test_token_bucket_consume ... ok
[INFO] [stdout] test traffic_shaper::tests::test_traffic_class_ordering ... ok
[INFO] [stdout] test tests::test_gain_staging ... ok
[INFO] [stdout] test validate_cache::tests::test_add_bus_invalidates ... ok
[INFO] [stdout] test validate_cache::tests::test_add_processor_invalidates ... ok
[INFO] [stdout] test validate_cache::tests::test_cache_hit_on_second_call ... ok
[INFO] [stdout] test topology_map::tests::test_map_add_link ... ok
[INFO] [stdout] test validate_cache::tests::test_cache_invalidated_on_add_input ... ok
[INFO] [stdout] test validate_cache::tests::test_cache_invalidated_on_add_output ... ok
[INFO] [stdout] test validate_cache::tests::test_cache_invalidated_on_connect ... ok
[INFO] [stdout] test validate_cache::tests::test_cache_invalidated_on_clear ... ok
[INFO] [stdout] test traffic_shaper::tests::test_token_bucket_fill_ratio ... ok
[INFO] [stdout] test validate_cache::tests::test_default_trait ... ok
[INFO] [stdout] test validate_cache::tests::test_hit_rate_no_queries ... ok
[INFO] [stdout] test validate_cache::tests::test_from_graph ... ok
[INFO] [stdout] test validate_cache::tests::test_cache_invalidated_on_disconnect ... ok
[INFO] [stdout] test tests::test_patch_bay ... ok
[INFO] [stdout] test validate_cache::tests::test_explicit_invalidate ... ok
[INFO] [stdout] test validate_cache::tests::test_hit_rate_all_hits ... ok
[INFO] [stdout] test validate_cache::tests::test_node_and_edge_count_passthrough ... ok
[INFO] [stdout] test validate_cache::tests::test_remove_node_invalidates ... ok
[INFO] [stdout] test validate_cache::tests::test_version_increases_monotonically ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_channel_overflow_fails ... ok
[INFO] [stdout] test validate_cache::tests::test_reset_stats ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_direction_mismatch_fails ... ok
[INFO] [stdout] test validate_cache::tests::test_validate_returns_valid_for_simple_graph ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_activate_and_deactivate ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_connect_inactive_soundcard_fails ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_disconnect ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_duplicate_soundcard_id_returns_error ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_connect_stream_to_soundcard ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_display_implementations ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_find_soundcard_by_name ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_remove_soundcard_cascades_connections ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_register_and_retrieve_soundcard ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_sample_rate_mismatch_fails ... ok
[INFO] [stdout] test zero_latency::tests::test_find_all_paths ... ok
[INFO] [stdout] test virtual_soundcard::tests::test_metadata_on_soundcard ... ok
[INFO] [stdout] test zero_latency::tests::test_bidirectional_link ... ok
[INFO] [stdout] test zero_latency::tests::test_chooses_lower_latency_path ... ok
[INFO] [stdout] test zero_latency::tests::test_avoid_category ... ok
[INFO] [stdout] test zero_latency::tests::test_direct_zero_latency_path ... ok
[INFO] [stdout] test zero_latency::tests::test_lowest_latency_ms ... ok
[INFO] [stdout] test zero_latency::tests::test_get_node ... ok
[INFO] [stdout] test zero_latency::tests::test_latency_ms_conversion ... ok
[INFO] [stdout] test zero_latency::tests::test_link_latency_included ... ok
[INFO] [stdout] test zero_latency::tests::test_is_reachable ... ok
[INFO] [stdout] test zero_latency::tests::test_node_bypassable ... ok
[INFO] [stdout] test zero_latency::tests::test_max_latency_budget ... ok
[INFO] [stdout] test zero_latency::tests::test_node_with_label ... ok
[INFO] [stdout] test zero_latency::tests::test_node_count ... ok
[INFO] [stdout] test zero_latency::tests::test_no_path_returns_none ... ok
[INFO] [stdout] test zero_latency::tests::test_nonexistent_node_returns_none ... ok
[INFO] [stdout] test zero_latency::tests::test_path_with_processing_latency ... ok
[INFO] [stdout] test zero_latency::tests::test_zero_sample_rate_latency_ms ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1089 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests oximedia_routing
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test src/mix_minus.rs - mix_minus (line 11) ... ok
[INFO] [stdout] test src/channel_strip.rs - channel_strip (line 21) ... ok
[INFO] [stdout] test src/lock_free_router.rs - lock_free_router (line 17) ... ok
[INFO] [stdout] test src/bulk_ops.rs - bulk_ops (line 11) ... ok
[INFO] [stdout] test src/lib.rs - (line 81) ... ok
[INFO] [stdout] test src/nmos_activation.rs - nmos_activation (line 19) ... ok
[INFO] [stdout] test src/heartbeat.rs - heartbeat (line 14) ... ok
[INFO] [stdout] test src/constraint.rs - constraint (line 10) ... ok
[INFO] [stdout] test src/routing_macro.rs - routing_macro::RoutingBuilder (line 271) ... ok
[INFO] [stdout] test src/routing_macro.rs - routing_macro (line 10) ... ok
[INFO] [stdout] test src/sparse_matrix.rs - sparse_matrix (line 21) ... ok
[INFO] [stdout] test src/validate_cache.rs - validate_cache (line 11) ... ok
[INFO] [stdout] test src/zero_latency.rs - zero_latency (line 19) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.93s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7aa4210796bfc2337f36de75de6fc82b84a09e72fca7fc8079f67f41f6586a34", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7aa4210796bfc2337f36de75de6fc82b84a09e72fca7fc8079f67f41f6586a34", kill_on_drop: false }`
[INFO] [stdout] 7aa4210796bfc2337f36de75de6fc82b84a09e72fca7fc8079f67f41f6586a34
