[INFO] fetching crate oximedia-routing 0.1.3... [INFO] testing oximedia-routing-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-routing 0.1.3 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate oximedia-routing 0.1.3 [INFO] finished tweaking crates.io crate oximedia-routing 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-routing 0.1.3 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-routing 0.1.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-routing 0.1.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e0a7cd0bb63010df2dd98834caa550065fe70197a70af1371135dd205354c5a5 [INFO] running `Command { std: "docker" "start" "-a" "e0a7cd0bb63010df2dd98834caa550065fe70197a70af1371135dd205354c5a5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e0a7cd0bb63010df2dd98834caa550065fe70197a70af1371135dd205354c5a5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0a7cd0bb63010df2dd98834caa550065fe70197a70af1371135dd205354c5a5", kill_on_drop: false }` [INFO] [stdout] e0a7cd0bb63010df2dd98834caa550065fe70197a70af1371135dd205354c5a5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c6fc5948f062eb57b5bd765dbca522aabab4b1119b17ef9867c5e015c8fdac9f [INFO] running `Command { std: "docker" "start" "-a" "c6fc5948f062eb57b5bd765dbca522aabab4b1119b17ef9867c5e015c8fdac9f", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling audio-core v0.2.1 [INFO] [stderr] Compiling strength_reduce v0.2.4 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling oxifft v0.2.0 [INFO] [stderr] Compiling spin v0.10.0 [INFO] [stderr] Compiling seahash v4.1.0 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling fixedbitset v0.5.7 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [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 thiserror v2.0.18 [INFO] [stderr] Compiling oximedia-core v0.1.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 indexmap v2.14.0 [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 petgraph v0.8.3 [INFO] [stderr] Compiling realfft v3.5.0 [INFO] [stderr] Compiling rubato v2.0.0 [INFO] [stderr] Compiling oximedia-audio v0.1.3 [INFO] [stderr] Compiling oximedia-routing v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.00s [INFO] running `Command { std: "docker" "inspect" "c6fc5948f062eb57b5bd765dbca522aabab4b1119b17ef9867c5e015c8fdac9f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c6fc5948f062eb57b5bd765dbca522aabab4b1119b17ef9867c5e015c8fdac9f", kill_on_drop: false }` [INFO] [stdout] c6fc5948f062eb57b5bd765dbca522aabab4b1119b17ef9867c5e015c8fdac9f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ca45fe9185018b4e8014eef4cdf0d2fb63244aecda52b612c48778539615d7af [INFO] running `Command { std: "docker" "start" "-a" "ca45fe9185018b4e8014eef4cdf0d2fb63244aecda52b612c48778539615d7af", kill_on_drop: false }` [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling oximedia-routing v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 12.49s [INFO] running `Command { std: "docker" "inspect" "ca45fe9185018b4e8014eef4cdf0d2fb63244aecda52b612c48778539615d7af", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ca45fe9185018b4e8014eef4cdf0d2fb63244aecda52b612c48778539615d7af", kill_on_drop: false }` [INFO] [stdout] ca45fe9185018b4e8014eef4cdf0d2fb63244aecda52b612c48778539615d7af [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 103645086a7928c78d12024e900d843f59c4324b8dbb808b4b0b2b4d74bc5b51 [INFO] running `Command { std: "docker" "start" "-a" "103645086a7928c78d12024e900d843f59c4324b8dbb808b4b0b2b4d74bc5b51", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_routing-1b49d6b22e59f138) [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_valid_rates ... ok [INFO] [stdout] test aes67::tests::test_depacketizer_sequence_error ... ok [INFO] [stdout] test aes67::tests::test_header_invalid_version ... ok [INFO] [stdout] test aes67::tests::test_header_marker_bit ... ok [INFO] [stdout] test aes67::tests::test_config_payload_size ... ok [INFO] [stdout] test aes67::tests::test_header_parse_short_buffer ... ok [INFO] [stdout] test aes67::tests::test_config_invalid_sample_rate ... ok [INFO] [stdout] test aes67::tests::test_header_round_trip ... ok [INFO] [stdout] test aes67::tests::test_packet_time_from_us_valid ... ok [INFO] [stdout] test aes67::tests::test_packet_time_sdp_ptime ... ok [INFO] [stdout] test aes67::tests::test_packet_time_samples_per_packet ... ok [INFO] [stdout] test aes67::tests::test_packet_time_us_values ... ok [INFO] [stdout] test aes67::tests::test_packetize_depacketize_round_trip ... ok [INFO] [stdout] test aes67::tests::test_packetizer_sequence_increments ... 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 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_session_manager_stats_update ... ok [INFO] [stdout] test aes67::tests::test_session_manager_unknown_ssrc ... ok [INFO] [stdout] test automation::curves::tests::test_exponential_in_slow_start ... ok [INFO] [stdout] test automation::curves::tests::test_add_fade_out ... ok [INFO] [stdout] test automation::curves::tests::test_curve_clamping ... 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_add_segment ... ok [INFO] [stdout] test automation::curves::tests::test_gain_automation_clear ... ok [INFO] [stdout] test automation::curves::tests::test_gain_automation_evaluate ... ok [INFO] [stdout] test automation::curves::tests::test_add_fade_in ... 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_gain_automation_prune ... ok [INFO] [stdout] test automation::curves::tests::test_linear_curve_midpoint ... ok [INFO] [stdout] test automation::curves::tests::test_logarithmic_endpoints ... ok [INFO] [stdout] test automation::curves::tests::test_scurve_endpoints ... ok [INFO] [stdout] test aes67::tests::test_packet_time_from_us_invalid ... ok [INFO] [stdout] test aes67::tests::test_session_manager_remove_stream ... 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_segment_duration ... ok [INFO] [stdout] test automation::curves::tests::test_segment_evaluate_after_end ... ok [INFO] [stdout] test automation::curves::tests::test_segment_evaluate_before_start ... ok [INFO] [stdout] test automation::curves::tests::test_segment_evaluate_midpoint ... 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::curves::tests::test_zero_duration_segment ... ok [INFO] [stdout] test automation::timeline::tests::test_add_event ... ok [INFO] [stdout] test automation::timeline::tests::test_add_fade_in_creates_segment ... ok [INFO] [stdout] test automation::timeline::tests::test_add_linear_fade_via_timecode ... ok [INFO] [stdout] test automation::timeline::tests::test_add_scurve_fade_via_timecode ... ok [INFO] [stdout] test automation::timeline::tests::test_add_fade_out_creates_segment ... ok [INFO] [stdout] test automation::timeline::tests::test_enabled_events ... ok [INFO] [stdout] test automation::timeline::tests::test_gain_at_first_and_last_frame_various_fps ... 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_24fps_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_60fps_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_24fps_midpoint ... ok [INFO] [stdout] test automation::timeline::tests::test_gain_at_timecode_50fps_midpoint ... ok [INFO] [stdout] test automation::timeline::tests::test_gain_at_timecode_evaluates_correctly ... ok [INFO] [stdout] test automation::timeline::tests::test_add_gain_segment_increases_count ... ok [INFO] [stdout] test automation::timeline::tests::test_channel_specific_gain_fade ... 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_get_events_at ... ok [INFO] [stdout] test automation::timeline::tests::test_get_events_in_range ... ok [INFO] [stdout] test automation::timeline::tests::test_multiple_segments_sorted_order ... ok [INFO] [stdout] test automation::timeline::tests::test_prune_gain_before ... ok [INFO] [stdout] test automation::timeline::tests::test_remove_events ... ok [INFO] [stdout] test automation::timeline::tests::test_timecode_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 automation::timeline::tests::test_timecode_round_trip_all_frame_rates ... ok [INFO] [stdout] test automation::timeline::tests::test_timecode_to_frames ... ok [INFO] [stdout] test automation::timeline::tests::test_timeline_creation ... ok [INFO] [stdout] test bandwidth_budget::tests::test_allocate_denied ... ok [INFO] [stdout] test bandwidth_budget::tests::test_allocate_duplicate ... 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_bandwidth_unit_from_bps ... ok [INFO] [stdout] test bandwidth_budget::tests::test_bandwidth_unit_to_bps ... ok [INFO] [stdout] test bandwidth_budget::tests::test_budget_allocator_multi_link ... ok [INFO] [stdout] test bandwidth_budget::tests::test_budget_allocator_get_budget ... 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 bandwidth_budget::tests::test_new_budget_capacity ... 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_release ... ok [INFO] [stdout] test bandwidth_budget::tests::test_release_all ... ok [INFO] [stdout] test bandwidth_budget::tests::test_release_nonexistent ... 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_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_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_utilization_pct_method ... ok [INFO] [stdout] test bandwidth_budget::tests::test_utilization_zero_capacity ... ok [INFO] [stdout] test bulk_ops::tests::test_activate_all_clears_queue ... ok [INFO] [stdout] test bulk_ops::tests::test_activate_all_returns_one_result_per_connection ... ok [INFO] [stdout] test bulk_ops::tests::test_add_increments_pending ... ok [INFO] [stdout] test bulk_ops::tests::test_clear_removes_pending ... ok [INFO] [stdout] test bulk_ops::tests::test_empty_receiver_returns_err ... ok [INFO] [stdout] test bulk_ops::tests::test_empty_sender_returns_err ... ok [INFO] [stdout] test bulk_ops::tests::test_identical_ids_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 bulk_ops::tests::test_pending_connection_equality ... ok [INFO] [stdout] test bulk_ops::tests::test_valid_connections_succeed ... ok [INFO] [stdout] test channel::extract::tests::test_add_channel ... ok [INFO] [stdout] test channel::extract::tests::test_duplicate_channel ... ok [INFO] [stdout] test channel::extract::tests::test_extractor_creation ... ok [INFO] [stdout] test channel::extract::tests::test_invalid_channel ... ok [INFO] [stdout] test channel::extract::tests::test_left_only ... ok [INFO] [stdout] test channel::extract::tests::test_stereo_pair ... ok [INFO] [stdout] test channel::extract::tests::test_selector_deselect ... ok [INFO] [stdout] test channel::extract::tests::test_surround_51 ... ok [INFO] [stdout] test channel::extract::tests::test_select_deselect_all ... ok [INFO] [stdout] test channel::map::tests::test_51_to_stereo_downmix ... ok [INFO] [stdout] test channel::extract::tests::test_channel_labels ... ok [INFO] [stdout] test channel::map::tests::test_add_custom_remapper ... ok [INFO] [stdout] test channel::map::tests::test_atmos_714_channel_count ... ok [INFO] [stdout] test channel::map::tests::test_channel_layout ... ok [INFO] [stdout] test channel::map::tests::test_channel_map ... ok [INFO] [stdout] test channel::extract::tests::test_channel_selector ... 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_51_layout ... ok [INFO] [stdout] test channel::map::tests::test_downmix_714_to_51_surround_fold ... 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::extract::tests::test_output_index ... 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_identity_remapper ... 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_upmix_51_to_714_direct_channels ... 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_71_to_714_direct_ear_level ... 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_combine ... ok [INFO] [stdout] test channel::split::tests::test_invalid_split ... ok [INFO] [stdout] test channel::split::tests::test_combiner ... 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::map::tests::test_stereo_to_mono_downmix ... 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::split::tests::test_splitter ... ok [INFO] [stdout] test channel_strip::tests::test_aux_send_add_and_get ... ok [INFO] [stdout] test channel_strip::tests::test_gate_params_access ... ok [INFO] [stdout] test channel_strip::tests::test_mute_and_unmute ... ok [INFO] [stdout] test channel_strip::tests::test_input_gain_set_and_get ... ok [INFO] [stdout] test channel_strip::tests::test_process_gain_applies_combined_gain ... ok [INFO] [stdout] test channel_strip::tests::test_aux_send_out_of_range ... ok [INFO] [stdout] test channel_strip::tests::test_strip_bus_duplicate_error ... ok [INFO] [stdout] test channel_strip::tests::test_solo_and_solo_safe ... ok [INFO] [stdout] test channel_strip::tests::test_strip_bus_mute_all ... ok [INFO] [stdout] test channel_strip::tests::test_remove_aux_send ... ok [INFO] [stdout] test channel_strip::tests::test_input_gain_out_of_range ... ok [INFO] [stdout] test channel_strip::tests::test_strip_default_values ... ok [INFO] [stdout] test channel_strip::tests::test_combined_gain_linear ... 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 channel_strip::tests::test_strip_bus_add_and_count ... ok [INFO] [stdout] test channel_strip::tests::test_strip_bus_soloed_strips ... ok [INFO] [stdout] test connection_log::tests::test_log_capacity_evicts_oldest ... ok [INFO] [stdout] test channel_strip::tests::test_strip_bus_remove ... ok [INFO] [stdout] test connection_log::tests::test_log_get_by_seq ... ok [INFO] [stdout] test channel_strip::tests::test_muted_process_zeroes_output ... 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_query_by_reason ... ok [INFO] [stdout] test channel_strip::tests::test_polarity_invert ... ok [INFO] [stdout] test connection_log::tests::test_log_append_and_len ... ok [INFO] [stdout] test connection_log::tests::test_rollback_counter ... ok [INFO] [stdout] test connection_log::tests::test_reason_counts ... 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_query_by_sender ... 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_builder_and_mutating_api_equivalent ... 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::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::tests::test_empty_constraint_is_permissive ... ok [INFO] [stdout] test connection_log::tests::test_rollback_targets_only_query ... ok [INFO] [stdout] test constraint_sets::tests::test_constraint_engine_empty_set_always_matches ... ok [INFO] [stdout] test constraint_sets::tests::test_constraint_engine_evaluate_all ... ok [INFO] [stdout] test convert::bit_depth::tests::test_is_reduction ... ok [INFO] [stdout] test constraint_sets::tests::test_format_negotiator_audio ... ok [INFO] [stdout] test constraint_sets::tests::test_constraint_engine_incompatible_no_sets_match ... ok [INFO] [stdout] test convert::bit_depth::tests::test_no_conversion_needed ... 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 constraint_sets::tests::test_param_constraint_exact_string_match ... 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_converter_creation ... ok [INFO] [stdout] test convert::bit_depth::tests::test_depth_change ... ok [INFO] [stdout] test convert::sample_rate::tests::test_preset_converters ... ok [INFO] [stdout] test constraint::tests::test_case_insensitive_codec ... ok [INFO] [stdout] test convert::bit_depth::tests::test_dither_types ... ok [INFO] [stdout] test convert::bit_depth::tests::test_preset_converters ... ok [INFO] [stdout] test convert::sample_rate::tests::test_quality_settings ... ok [INFO] [stdout] test convert::bit_depth::tests::test_should_dither ... ok [INFO] [stdout] test convert::sample_rate::tests::test_upsample_downsample ... ok [INFO] [stdout] test convert::channels::tests::test_channel_difference ... ok [INFO] [stdout] test crosspoint_matrix::tests::test_crosspoint_is_routed ... ok [INFO] [stdout] test convert::channels::tests::test_converter_creation ... ok [INFO] [stdout] test crosspoint_matrix::tests::test_crosspoint_not_routed_when_open ... ok [INFO] [stdout] test convert::sample_rate::tests::test_validation ... ok [INFO] [stdout] test crosspoint_matrix::tests::test_crosspoint_state_allows_routing_closed ... ok [INFO] [stdout] test convert::channels::tests::test_downmix_upmix ... 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::sample_rate::tests::test_conversion_ratio ... 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 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 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_subscribe ... ok [INFO] [stdout] test dante::discovery::tests::test_router_list_subscriptions ... 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_flow ... ok [INFO] [stdout] test embed::audio::tests::test_add_channel ... ok [INFO] [stdout] test embed::audio::tests::test_channel_conflict ... ok [INFO] [stdout] test embed::audio::tests::test_embedder_creation ... ok [INFO] [stdout] test embed::audio::tests::test_invalid_group ... ok [INFO] [stdout] test dante::metadata::tests::test_add_device ... ok [INFO] [stdout] test embed::audio::tests::test_remove_channel ... ok [INFO] [stdout] test dante::metadata::tests::test_dante_routing_creation ... ok [INFO] [stdout] test embed::audio::tests::test_channel_with_gain ... ok [INFO] [stdout] test embed::audio::tests::test_eight_channel_preset ... 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_remove_channel ... ok [INFO] [stdout] test embed::deembed::tests::test_stereo_preset ... ok [INFO] [stdout] test failover_route::tests::test_failover_config_default ... ok [INFO] [stdout] test failover_route::tests::test_failover_route_deactivate ... ok [INFO] [stdout] test failover_route::tests::test_failover_route_mark_failed_increments ... ok [INFO] [stdout] test failover_route::tests::test_manager_add_route_increments_count ... ok [INFO] [stdout] test failover_route::tests::test_manager_failover_no_routes_returns_none ... ok [INFO] [stdout] test failover_route::tests::test_manager_fails_over_when_max_fail_count_exceeded ... 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 flow::graph::tests::test_add_nodes ... 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_target_conflict ... ok [INFO] [stdout] test failover_route::tests::test_failover_route_activate ... ok [INFO] [stdout] test failover_route::tests::test_manager_failover_picks_lowest_priority_value ... ok [INFO] [stdout] test failover_route::tests::test_route_health_failed_not_usable ... ok [INFO] [stdout] test failover_route::tests::test_route_health_recovering_not_usable ... ok [INFO] [stdout] test flow::graph::tests::test_clear_graph ... ok [INFO] [stdout] test flow::graph::tests::test_connect_nodes ... ok [INFO] [stdout] test flow::graph::tests::test_disconnect_nodes ... ok [INFO] [stdout] test failover_route::tests::test_manager_sequential_failover ... ok [INFO] [stdout] test flow::graph::tests::test_get_by_label ... ok [INFO] [stdout] test flow::validate::tests::test_disconnected_input ... 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::graph::tests::test_remove_node ... ok [INFO] [stdout] test flow::validate::tests::test_channel_mismatch ... ok [INFO] [stdout] test flow::validate::tests::test_disconnected_output ... ok [INFO] [stdout] test flow::validate::tests::test_excessive_gain_warning ... ok [INFO] [stdout] test flow::validate::tests::test_feedback_loop_detection ... ok [INFO] [stdout] test flow::graph::tests::test_get_inputs_outputs ... ok [INFO] [stdout] test flow::visualize::tests::test_processor_in_visualization ... ok [INFO] [stdout] test flow::validate::tests::test_inactive_warning ... ok [INFO] [stdout] test flow::validate::tests::test_valid_graph ... ok [INFO] [stdout] test flow_registry::tests::test_flow_display ... ok [INFO] [stdout] test flow_registry::tests::test_active_flows_filter ... ok [INFO] [stdout] test embed::deembed::tests::test_get_mapping ... ok [INFO] [stdout] test flow::validate::tests::test_validation_result ... ok [INFO] [stdout] test embed::deembed::tests::test_surround_51_preset ... ok [INFO] [stdout] test failover_route::tests::test_manager_active_path ... ok [INFO] [stdout] test flow::validate::tests::test_would_create_loop ... ok [INFO] [stdout] test flow::visualize::tests::test_ascii_export ... ok [INFO] [stdout] test flow::visualize::tests::test_direction_options ... ok [INFO] [stdout] test flow_registry::tests::test_flow_format_kind_from_format ... ok [INFO] [stdout] test flow::visualize::tests::test_dot_export_inactive ... 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_registry::tests::test_flows_by_format_kind ... ok [INFO] [stdout] test flow::visualize::tests::test_dot_export_with_gain ... 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_duplicate_id_returns_error ... ok [INFO] [stdout] test flow_registry::tests::test_remove_flow ... ok [INFO] [stdout] test flow_registry::tests::test_register_empty_source_id_returns_error ... ok [INFO] [stdout] test flow_registry::tests::test_subscribe_and_unsubscribe ... ok [INFO] [stdout] test flow_registry::tests::test_subscribe_to_nonexistent_flow_returns_error ... ok [INFO] [stdout] test gain::stage::tests::test_clipping ... ok [INFO] [stdout] test flow_registry::tests::test_subscriptions_removed_on_flow_removal ... ok [INFO] [stdout] test gain::stage::tests::test_has_signal ... ok [INFO] [stdout] test gain::stage::tests::test_gain_stage_creation ... ok [INFO] [stdout] test gain::stage::tests::test_linear_gain ... ok [INFO] [stdout] test gain::stage::tests::test_gain_clamping ... ok [INFO] [stdout] test gain::stage::tests::test_metering ... ok [INFO] [stdout] test gain::stage::tests::test_linked_channels ... ok [INFO] [stdout] test gain::stage::tests::test_multi_channel_gain_stage ... ok [INFO] [stdout] test gain::stage::tests::test_mute ... ok [INFO] [stdout] test gain::stage::tests::test_peak_hold ... ok [INFO] [stdout] test gain::stage::tests::test_set_gain ... ok [INFO] [stdout] test gain::stage::tests::test_master_gain ... 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_adjust_trim ... ok [INFO] [stdout] test flow_registry::tests::test_set_flow_state ... ok [INFO] [stdout] test gain::trim::tests::test_fine_trim ... ok [INFO] [stdout] test gain::trim::tests::test_custom_range ... ok [INFO] [stdout] test flow::validate::tests::test_unreachable_nodes ... ok [INFO] [stdout] test gain::trim::tests::test_total_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_gpo_hold_timer_expires ... ok [INFO] [stdout] test gpio_trigger::tests::test_line_out_of_range ... ok [INFO] [stdout] test gpio_trigger::tests::test_bind_conflict_rejected ... ok [INFO] [stdout] test gpio_trigger::tests::test_bind_conflict_replace ... ok [INFO] [stdout] test gpio_trigger::tests::test_bind_gpi_and_count ... ok [INFO] [stdout] test gpio_trigger::tests::test_both_edge_binding ... 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_falling_edge_fires_action ... ok [INFO] [stdout] test gpio_trigger::tests::test_gpo_binding_assert ... ok [INFO] [stdout] test gpio_trigger::tests::test_line_state_tracking ... ok [INFO] [stdout] test gpio_trigger::tests::test_no_event_when_no_change ... ok [INFO] [stdout] test gpio_trigger::tests::test_simulated_backend_gpi_count ... ok [INFO] [stdout] test flow_registry::tests::test_remove_nonexistent_flow_returns_error ... 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 heartbeat::tests::test_expired_heartbeat ... ok [INFO] [stdout] test gpio_trigger::tests::test_rising_edge_fires_action ... ok [INFO] [stdout] test heartbeat::tests::test_new_is_not_alive ... ok [INFO] [stdout] test heartbeat::tests::test_node_id_stored ... ok [INFO] [stdout] test heartbeat::tests::test_out_of_order_update_ignored ... ok [INFO] [stdout] test gpio_trigger::tests::test_routing_action_display ... ok [INFO] [stdout] test heartbeat::tests::test_reset_clears_state ... ok [INFO] [stdout] test heartbeat::tests::test_update_same_timestamp_accepted ... ok [INFO] [stdout] test heartbeat::tests::test_update_then_alive ... ok [INFO] [stdout] test heartbeat::tests::test_zero_timeout_alive_only_at_exact_timestamp ... ok [INFO] [stdout] test heartbeat::tests::test_saturating_sub_no_overflow ... ok [INFO] [stdout] test intercom::tests::test_answer_already_connected_call_returns_error ... ok [INFO] [stdout] test intercom::tests::test_active_calls_filter ... 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_can_hear_after_call_connected ... ok [INFO] [stdout] test intercom::tests::test_display_implementations ... ok [INFO] [stdout] test intercom::tests::test_cross_line_isolation ... ok [INFO] [stdout] test intercom::tests::test_duplicate_port_returns_error ... ok [INFO] [stdout] test intercom::tests::test_duplicate_party_line_returns_error ... ok [INFO] [stdout] test intercom::tests::test_intercom_error_display ... ok [INFO] [stdout] test intercom::tests::test_get_port_mut_allows_modification ... ok [INFO] [stdout] test intercom::tests::test_listeners_of_via_party_line ... ok [INFO] [stdout] test intercom::tests::test_party_line_inactive_hides_from_listeners ... ok [INFO] [stdout] test intercom::tests::test_party_line_member_count ... ok [INFO] [stdout] test intercom::tests::test_all_ports_returns_all ... ok [INFO] [stdout] test intercom::tests::test_party_lines_for_port ... ok [INFO] [stdout] test intercom::tests::test_party_line_membership ... 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_port_count_and_party_line_count ... ok [INFO] [stdout] test intercom::tests::test_port_not_found_for_call_initiation ... ok [INFO] [stdout] test intercom::tests::test_port_transmitting_state ... ok [INFO] [stdout] test intercom::tests::test_register_port_and_retrieve ... ok [INFO] [stdout] test intercom::tests::test_remove_party_line_cleans_index ... ok [INFO] [stdout] test intercom::tests::test_remove_port_cleans_party_lines ... ok [INFO] [stdout] test intercom::tests::test_remove_port_from_party_line ... ok [INFO] [stdout] test intercom::tests::test_remove_port_terminates_calls ... ok [INFO] [stdout] test heartbeat::tests::test_update_advances_timestamp ... ok [INFO] [stdout] test intercom::tests::test_ringing_call_does_not_block_new_call_to_same_callee ... ok [INFO] [stdout] test intercom::tests::test_self_call_returns_error ... ok [INFO] [stdout] test intercom::tests::test_terminate_already_terminated_returns_error ... ok [INFO] [stdout] test intercom::tests::test_terminate_call ... ok [INFO] [stdout] test ip_router::tests::test_add_flow ... ok [INFO] [stdout] test ip_router::tests::test_add_flow_replaces_existing ... ok [INFO] [stdout] test ip_router::tests::test_flows_for_subscriber ... ok [INFO] [stdout] test ip_router::tests::test_flows_for_subscriber_empty_when_no_subs ... ok [INFO] [stdout] test ip_router::tests::test_ip_flow_type_default_ports ... ok [INFO] [stdout] test ip_router::tests::test_is_multicast_false_unicast ... ok [INFO] [stdout] test ip_router::tests::test_is_multicast_true ... ok [INFO] [stdout] test ip_router::tests::test_subscribe_duplicate_returns_false ... ok [INFO] [stdout] test ip_router::tests::test_subscribe_nonexistent_flow ... ok [INFO] [stdout] test ip_router::tests::test_subscribe_success ... ok [INFO] [stdout] test ip_router::tests::test_subscribers_of ... ok [INFO] [stdout] test ip_router::tests::test_unsubscribe_nonexistent_returns_false ... ok [INFO] [stdout] test ip_router::tests::test_unsubscribe_success ... 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_calc_ms_totals ... 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_check_budget_pass ... ok [INFO] [stdout] test latency_calc::tests::test_clear ... ok [INFO] [stdout] test latency_calc::tests::test_frames_of_latency ... 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_rss_jitter ... ok [INFO] [stdout] test latency_calc::tests::test_stage_display ... 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_add_and_count ... ok [INFO] [stdout] test link_aggregation::tests::test_aggregator_get_group ... ok [INFO] [stdout] test link_aggregation::tests::test_aggregator_total_capacity ... 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 link_aggregation::tests::test_link_with_weight_builder ... ok [INFO] [stdout] test link_aggregation::tests::test_no_active_links ... 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 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_concurrent_writes_do_not_corrupt_state ... ok [INFO] [stdout] test lock_free_router::tests::test_gain_db_none_when_disconnected ... 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_gain_tracking ... ok [INFO] [stdout] test lock_free_router::tests::test_hot_path_snapshot_is_wait_free ... 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_concurrent_readers_see_consistent_state ... 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_out_of_bounds_connect ... ok [INFO] [stdout] test lock_free_router::tests::test_outputs_for_input_out_of_bounds ... ok [INFO] [stdout] test lock_free_router::tests::test_outputs_for_input ... ok [INFO] [stdout] test lock_free_router::tests::test_publish_count ... 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_routing_state_dimensions ... ok [INFO] [stdout] test lock_free_router::tests::test_set_gain_on_connected ... ok [INFO] [stdout] test lock_free_router::tests::test_snapshot_is_arc_clone_cheap ... 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_active_channels ... ok [INFO] [stdout] test madi::interface::tests::test_add_channel ... ok [INFO] [stdout] test madi::interface::tests::test_frame_mode_change ... ok [INFO] [stdout] test madi::interface::tests::test_invalid_channel ... ok [INFO] [stdout] test madi::interface::tests::test_initialize_channels ... ok [INFO] [stdout] test madi::interface::tests::test_madi_interface_creation ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_crosspoint_id ... ok [INFO] [stdout] test madi::interface::tests::test_madi_96k ... ok [INFO] [stdout] test madi::interface::tests::test_remove_channel ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_gain_control ... ok [INFO] [stdout] test matrix::connection::tests::test_active_connections ... ok [INFO] [stdout] test matrix::connection::tests::test_connection_builder ... 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_connection_type_filter ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_256x256_mix_bus_diagonal ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_connect_disconnect ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_connect_disconnect_roundtrip_mix_bus ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_256x256_with_5pct_fill ... 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_matrix_creation ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_all_matches_per_output ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_sum_multiple_inputs ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_single_connection_at_0db ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_zero_output ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_with_gain ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_mix_bus_out_of_bounds_output ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_all_excluded ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_routing_queries ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_compute_inactive ... ok [INFO] [stdout] test matrix::crosspoint::tests::test_new_sparse_same_as_new ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_compute_excludes_self ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_input_gain_default ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_multiple_exclusions ... 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_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_mix_minus_empty_samples ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_full_broadcast_scenario ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_router_active_outputs ... 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::mix_minus::tests::test_router_get_bus_none ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_router_has_bus_false ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_router_add_bus ... ok [INFO] [stdout] test matrix::solver::tests::test_find_shortest_path ... 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::solver::tests::test_routing_path ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_router_remove_bus ... 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::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::solver::tests::test_find_all_paths ... ok [INFO] [stdout] test matrix_router::tests::test_connect_and_get_source ... ok [INFO] [stdout] test matrix_router::tests::test_connect_out_of_range_returns_false ... 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_get_source_disconnected ... 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_total_crosspoints ... ok [INFO] [stdout] test matrix_router::tests::test_lock_prevents_connect ... ok [INFO] [stdout] test matrix_router::tests::test_unlock_allows_connect ... ok [INFO] [stdout] test metering_bridge::tests::test_all_readings ... ok [INFO] [stdout] test matrix_router::tests::test_salvo_skips_locked ... ok [INFO] [stdout] test metering_bridge::tests::test_clip_detection ... ok [INFO] [stdout] test metering_bridge::tests::test_empty_reading ... ok [INFO] [stdout] test metering_bridge::tests::test_clipped_meters ... ok [INFO] [stdout] test metering_bridge::tests::test_feed_unregistered ... ok [INFO] [stdout] test metering_bridge::tests::test_incremental_feed ... ok [INFO] [stdout] test metering_bridge::tests::test_crest_factor ... ok [INFO] [stdout] test metering_bridge::tests::test_insert_and_remove_meter ... ok [INFO] [stdout] test matrix_router::tests::test_salvo_execute ... ok [INFO] [stdout] test metering_bridge::tests::test_meter_names ... ok [INFO] [stdout] test metering_bridge::tests::test_custom_clip_threshold ... 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_reading_unregistered ... ok [INFO] [stdout] test metering_bridge::tests::test_reset_meter ... ok [INFO] [stdout] test metering_bridge::tests::test_remove_nonexistent ... ok [INFO] [stdout] test metering_bridge::tests::test_rms_calculation ... ok [INFO] [stdout] test metering_bridge::tests::test_silence_reading ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_router_get_bus_mut ... 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_reset_all ... ok [INFO] [stdout] test mix_minus::tests::test_gain_accumulation_known_values ... ok [INFO] [stdout] test mix_minus::tests::test_is_excluded_true_and_false ... ok [INFO] [stdout] test mix_minus::tests::test_mix_input_count_mismatch ... ok [INFO] [stdout] test mix_minus::tests::test_mix_sample_length_mismatch ... ok [INFO] [stdout] test mix_minus::tests::test_multiple_outputs_exclude_same_input ... ok [INFO] [stdout] test mix_minus::tests::test_n_minus_1_asymmetric_values ... ok [INFO] [stdout] test mix_minus::tests::test_n_minus_1_three_inputs ... ok [INFO] [stdout] test mix_minus::tests::test_no_exclusions_full_sum ... ok [INFO] [stdout] test mix_minus::tests::test_route_input_out_of_bounds ... ok [INFO] [stdout] test matrix::mix_minus::tests::test_mix_minus_bus_basic ... ok [INFO] [stdout] test mix_minus::tests::test_silence_passthrough ... ok [INFO] [stdout] test mix_minus::tests::test_single_input_not_excluded_passes_through ... ok [INFO] [stdout] test monitor::afl::tests::test_afl_creation ... ok [INFO] [stdout] test mix_minus::tests::test_single_exclusion_only_one_output_affected ... ok [INFO] [stdout] test mix_minus::tests::test_route_output_out_of_bounds ... ok [INFO] [stdout] test mix_minus::tests::test_single_input_excluded_produces_silence ... ok [INFO] [stdout] test monitor::afl::tests::test_disable_afl ... ok [INFO] [stdout] test monitor::afl::tests::test_enable_afl ... ok [INFO] [stdout] test monitor::afl::tests::test_multiple_channels ... ok [INFO] [stdout] test monitor::afl::tests::test_toggle_afl ... 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_disable_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::solo::tests::test_effective_level ... ok [INFO] [stdout] test monitor::solo::tests::test_clear_all ... 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_unsolo_channel ... ok [INFO] [stdout] test monitor::solo::tests::test_solo_channel ... ok [INFO] [stdout] test nmos::tests::test_all_senders_and_receivers_enumeration ... ok [INFO] [stdout] test monitor::solo::tests::test_solo_manager_creation ... 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_connection_manager_reconnect ... ok [INFO] [stdout] test nmos::tests::test_find_compatible_receivers_unknown_sender ... ok [INFO] [stdout] test nmos::tests::test_find_compatible_receivers_unknown_sender_is_empty ... ok [INFO] [stdout] test nmos::tests::test_find_compatible_receivers_video ... ok [INFO] [stdout] test nmos::tests::test_full_is04_hierarchy_registration ... ok [INFO] [stdout] test nmos::tests::test_is05_connection_lifecycle ... ok [INFO] [stdout] test nmos::tests::test_is07_event_bus_drain_clears ... ok [INFO] [stdout] test nmos::tests::test_is05_disconnect_nonexistent_pair_is_noop ... 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_is07_source_number ... ok [INFO] [stdout] test nmos::tests::test_lookup_unknown_id_returns_none ... ok [INFO] [stdout] test nmos::tests::test_is07_event_bus_sequence_increments ... ok [INFO] [stdout] test nmos::tests::test_nmos_device_types ... 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_transport_variants ... ok [INFO] [stdout] test nmos::tests::test_receiver_subscription_default_none ... 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_multiple_connections ... ok [INFO] [stdout] test nmos::tests::test_nmos_flow_frame_rate ... ok [INFO] [stdout] test nmos::tests::test_registry_audio_sender_compatible_receivers ... ok [INFO] [stdout] test nmos::tests::test_find_compatible_receivers_returns_video_only ... ok [INFO] [stdout] test nmos::tests::test_registry_overwrite_same_id ... ok [INFO] [stdout] test nmos::tests::test_tally_clear_all ... ok [INFO] [stdout] test nmos::tests::test_tally_controller_set_get ... ok [INFO] [stdout] test nmos::tests::test_tally_on_air_sources ... 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_state_preview ... 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_activation::tests::test_default_constructor ... ok [INFO] [stdout] test nmos_activation::tests::test_fire_time_query ... ok [INFO] [stdout] test nmos_activation::tests::test_history_recording ... ok [INFO] [stdout] test nmos_activation::tests::test_cancel_already_fired_returns_error ... ok [INFO] [stdout] test nmos_activation::tests::test_immediate_activation_fires_at_now ... ok [INFO] [stdout] test nmos_activation::tests::test_multiple_activations_in_one_tick ... ok [INFO] [stdout] test nmos_activation::tests::test_relative_fires_after_offset ... ok [INFO] [stdout] test nmos_activation::tests::test_cancel_pending ... ok [INFO] [stdout] test nmos_activation::tests::test_zero_relative_offset_error ... ok [INFO] [stdout] test nmos_activation::tests::test_label_propagates_to_fired ... 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 patch::bay::tests::test_basic_patching ... ok [INFO] [stdout] test nmos_activation::tests::test_not_found_cancel ... ok [INFO] [stdout] test patch::bay::tests::test_invalid_patch ... ok [INFO] [stdout] test patch::bay::tests::test_patch_bay_creation ... ok [INFO] [stdout] test nmos_activation::tests::test_scheduled_in_past_error ... ok [INFO] [stdout] test patch::bay::tests::test_multiple_patches ... ok [INFO] [stdout] test patch::bay::tests::test_validation ... ok [INFO] [stdout] test monitor::afl::tests::test_clear_all ... ok [INFO] [stdout] test patch::input::tests::test_input_builder ... ok [INFO] [stdout] test patch::input::tests::test_find_by_label ... ok [INFO] [stdout] test patch::input::tests::test_input_manager ... ok [INFO] [stdout] test patch::input::tests::test_phantom_power ... ok [INFO] [stdout] test patch::bay::tests::test_patch_with_gain ... ok [INFO] [stdout] test patch::input::tests::test_input_creation ... ok [INFO] [stdout] test patch::output::tests::test_find_by_label ... ok [INFO] [stdout] test patch::output::tests::test_effective_level ... ok [INFO] [stdout] test patch::output::tests::test_output_creation ... ok [INFO] [stdout] test patch::bay::tests::test_unpatch ... ok [INFO] [stdout] test patch::output::tests::test_output_manager ... ok [INFO] [stdout] test path_selector::tests::test_is_direct_one_hop ... ok [INFO] [stdout] test path_selector::tests::test_is_direct_zero_hops ... ok [INFO] [stdout] test path_selector::tests::test_is_healthy_false_jitter ... ok [INFO] [stdout] test path_selector::tests::test_quality_score_perfect ... 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 preset::manager::tests::test_active_preset ... ok [INFO] [stdout] test preset::manager::tests::test_add_preset ... ok [INFO] [stdout] test path_selector::tests::test_is_healthy_false_loss ... ok [INFO] [stdout] test preset::manager::tests::test_duplicate_preset ... ok [INFO] [stdout] test path_selector::tests::test_is_healthy_true ... ok [INFO] [stdout] test path_selector::tests::test_is_not_direct_two_hops ... ok [INFO] [stdout] test patch::output::tests::test_mute_operations ... ok [INFO] [stdout] test path_selector::tests::test_quality_score_clamped ... ok [INFO] [stdout] test patch::output::tests::test_output_builder ... ok [INFO] [stdout] test preset::manager::tests::test_find_by_tag ... ok [INFO] [stdout] test preset::manager::tests::test_find_by_name ... ok [INFO] [stdout] test preset::manager::tests::test_manager_creation ... ok [INFO] [stdout] test path_selector::tests::test_selector_remove_unhealthy ... ok [INFO] [stdout] test preset::manager::tests::test_set_invalid_active ... 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::manager::tests::test_remove_preset ... ok [INFO] [stdout] test preset::save::tests::test_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_available_count ... ok [INFO] [stdout] test path_selector::tests::test_selector_best_path_empty ... ok [INFO] [stdout] test preset::manager::tests::test_clear_active ... ok [INFO] [stdout] test redundancy_group::tests::test_failover_event_log_cap ... ok [INFO] [stdout] test redundancy_group::tests::test_group_activate ... ok [INFO] [stdout] test preset::save::tests::test_duplicate_tags ... ok [INFO] [stdout] test redundancy_group::tests::test_manager_failed_groups ... ok [INFO] [stdout] test redundancy_group::tests::test_member_availability ... ok [INFO] [stdout] test redundancy_group::tests::test_manager_add_group ... ok [INFO] [stdout] test redundancy_group::tests::test_member_creation ... ok [INFO] [stdout] test redundancy_group::tests::test_group_activate_invalid ... ok [INFO] [stdout] test redundancy_group::tests::test_total_failure ... ok [INFO] [stdout] test redundancy_group::tests::test_group_add_member ... ok [INFO] [stdout] test route_audit::tests::test_action_counts ... ok [INFO] [stdout] test route_audit::tests::test_audit_action_display ... ok [INFO] [stdout] test route_audit::tests::test_diff_all_added_when_before_empty ... ok [INFO] [stdout] test route_audit::tests::test_diff_all_removed_when_after_empty ... ok [INFO] [stdout] test route_audit::tests::test_clear ... ok [INFO] [stdout] test route_audit::tests::test_diff_change_count ... ok [INFO] [stdout] test redundancy_group::tests::test_manual_no_auto_failover ... ok [INFO] [stdout] test route_audit::tests::test_diff_empty_snapshots_identical ... ok [INFO] [stdout] test route_audit::tests::test_diff_removed_connection ... ok [INFO] [stdout] test route_audit::tests::test_diff_added_connection ... ok [INFO] [stdout] test route_audit::tests::test_diff_report_contains_keywords ... ok [INFO] [stdout] test route_audit::tests::test_entry_display ... ok [INFO] [stdout] test route_audit::tests::test_diff_gain_changed ... ok [INFO] [stdout] test route_audit::tests::test_gain_changed_delta_db ... ok [INFO] [stdout] test route_audit::tests::test_diff_record_to_log ... ok [INFO] [stdout] test route_audit::tests::test_last_entry ... ok [INFO] [stdout] test route_audit::tests::test_entry_new ... ok [INFO] [stdout] test route_audit::tests::test_log_capacity_eviction ... ok [INFO] [stdout] test route_audit::tests::test_entry_timestamp_ms ... ok [INFO] [stdout] test route_audit::tests::test_diff_identical_snapshots ... ok [INFO] [stdout] test route_audit::tests::test_log_record ... ok [INFO] [stdout] test route_audit::tests::test_query_by_action ... ok [INFO] [stdout] test route_audit::tests::test_entry_with_route ... ok [INFO] [stdout] test route_audit::tests::test_query_by_time_range ... ok [INFO] [stdout] test route_audit::tests::test_query_all ... 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_query_by_user ... ok [INFO] [stdout] test route_audit::tests::test_log_record_route ... 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_audit::tests::test_report ... ok [INFO] [stdout] test route_audit::tests::test_query_with_limit ... ok [INFO] [stdout] test route_audit::tests::test_snapshot_find_missing ... ok [INFO] [stdout] test route_audit::tests::test_snapshot_insert_replaces_existing ... ok [INFO] [stdout] test route_audit::tests::test_snapshot_new_empty ... ok [INFO] [stdout] test route_audit::tests::test_snapshot_connections_sorted ... ok [INFO] [stdout] test route_optimizer::tests::test_all_filtered_returns_none ... ok [INFO] [stdout] test route_optimizer::tests::test_balanced_returns_result ... ok [INFO] [stdout] test route_optimizer::tests::test_bidirectional_edge ... ok [INFO] [stdout] test route_optimizer::tests::test_candidate_builder ... 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 route_optimizer::tests::test_latency_constraint_filters ... ok [INFO] [stdout] test route_optimizer::tests::test_k_shortest_paths ... ok [INFO] [stdout] test route_optimizer::tests::test_max_reliability_picks_most_reliable ... ok [INFO] [stdout] test route_optimizer::tests::test_least_congested_path ... ok [INFO] [stdout] test route_optimizer::tests::test_min_cost_picks_cheapest ... ok [INFO] [stdout] test route_optimizer::tests::test_min_latency_picks_fastest ... ok [INFO] [stdout] test route_optimizer::tests::test_optimization_result_score_positive ... ok [INFO] [stdout] test route_optimizer::tests::test_ranked_ordering ... ok [INFO] [stdout] test route_optimizer::tests::test_custom_weights ... ok [INFO] [stdout] test route_optimizer::tests::test_reliability_constraint_filters ... ok [INFO] [stdout] test route_optimizer::tests::test_reliability_clamped ... ok [INFO] [stdout] test route_optimizer::tests::test_routing_graph_counts ... 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_preset::tests::test_bank_add_recall ... ok [INFO] [stdout] test route_preset::tests::test_bank_remove ... ok [INFO] [stdout] test route_preset::tests::test_bank_search ... ok [INFO] [stdout] test route_preset::tests::test_mapping_new ... ok [INFO] [stdout] test route_preset::tests::test_mapping_with_gain ... ok [INFO] [stdout] test route_optimizer::tests::test_shortest_path_direct ... 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_mapping_display ... ok [INFO] [stdout] test route_optimizer::tests::test_same_source_destination ... ok [INFO] [stdout] test route_preset::tests::test_preset_add_mapping ... ok [INFO] [stdout] test route_preset::tests::test_preset_diff_added ... ok [INFO] [stdout] test route_preset::tests::test_preset_display ... ok [INFO] [stdout] test route_preset::tests::test_preset_diff_removed ... ok [INFO] [stdout] test route_preset::tests::test_preset_new ... ok [INFO] [stdout] test route_preset::tests::test_preset_remove_destination ... ok [INFO] [stdout] test route_preset::tests::test_preset_source_ids ... ok [INFO] [stdout] test route_preset::tests::test_preset_diff_gain_change ... ok [INFO] [stdout] test route_preset::tests::test_preset_tags ... ok [INFO] [stdout] test route_table::tests::test_all_matching_returns_multiple ... ok [INFO] [stdout] test route_table::tests::test_clear ... ok [INFO] [stdout] test route_table::tests::test_insert_and_len ... ok [INFO] [stdout] test route_table::tests::test_insert_replaces_existing ... ok [INFO] [stdout] test route_preset::tests::test_preset_merge ... 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_longest_prefix_match_selects_most_specific ... ok [INFO] [stdout] test route_table::tests::test_remove_existing ... ok [INFO] [stdout] test route_table::tests::test_remove_nonexistent_returns_false ... ok [INFO] [stdout] test route_table::tests::test_route_entry_contains_false ... ok [INFO] [stdout] test route_table::tests::test_route_entry_contains_true ... ok [INFO] [stdout] test route_table::tests::test_route_entry_mask_slash0 ... ok [INFO] [stdout] test route_table::tests::test_route_entry_mask_slash24 ... ok [INFO] [stdout] test route_table::tests::test_route_entry_mask_slash32 ... ok [INFO] [stdout] test route_table::tests::test_route_entry_with_metric ... ok [INFO] [stdout] test routing_macro::tests::test_basic_build ... ok [INFO] [stdout] test routing_macro::tests::test_bidirectional_ports ... ok [INFO] [stdout] test routing_macro::tests::test_ports_slice ... ok [INFO] [stdout] test routing_macro::tests::test_duplicate_port_error ... ok [INFO] [stdout] test routing_macro::tests::test_unknown_port_error ... ok [INFO] [stdout] test routing_macro::tests::test_gain_connection ... ok [INFO] [stdout] test routing_macro::tests::test_empty_name_error ... ok [INFO] [stdout] test routing_macro::tests::test_gain_out_of_range ... ok [INFO] [stdout] test routing_macro::tests::test_group_and_connections_from ... ok [INFO] [stdout] test routing_macro::tests::test_invalid_direction_output_to_output ... ok [INFO] [stdout] test routing_macro::tests::test_muted_connection ... ok [INFO] [stdout] test routing_macro::tests::test_port_descriptor_builder ... ok [INFO] [stdout] test routing_macro::tests::test_port_lookup ... ok [INFO] [stdout] test routing_policy::tests::test_all_interfaces_down_returns_none ... ok [INFO] [stdout] test routing_macro::tests::test_connections_from ... 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_disabled_policy_skipped ... ok [INFO] [stdout] test routing_policy::tests::test_failover_uses_backup_when_primary_down ... 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_prefer_interface_found ... ok [INFO] [stdout] test routing_policy::tests::test_round_robin_cycles ... ok [INFO] [stdout] test routing_policy::tests::test_route_candidate_with_interface_down ... ok [INFO] [stdout] test routing_policy::tests::test_weighted_selects_highest_weight ... ok [INFO] [stdout] test routing_policy::tests::test_weighted_unknown_interface_treated_as_zero ... ok [INFO] [stdout] test routing_snapshot::tests::test_active_crosspoints_list ... ok [INFO] [stdout] test routing_snapshot::tests::test_atomic_restore_full_replace ... ok [INFO] [stdout] test routing_policy::tests::test_policy_count ... ok [INFO] [stdout] test routing_policy::tests::test_no_candidates_returns_none ... ok [INFO] [stdout] test routing_snapshot::tests::test_atomic_rollback_on_dimension_mismatch ... ok [INFO] [stdout] test routing_snapshot::tests::test_atomic_restore_gain_roundtrip ... ok [INFO] [stdout] test routing_snapshot::tests::test_diff_identical ... ok [INFO] [stdout] test routing_snapshot::tests::test_capture_and_count ... ok [INFO] [stdout] test routing_snapshot::tests::test_diff_not_found ... ok [INFO] [stdout] test routing_snapshot::tests::test_empty_snapshot ... ok [INFO] [stdout] test routing_snapshot::tests::test_latest ... ok [INFO] [stdout] test routing_snapshot::tests::test_list ... ok [INFO] [stdout] test link_aggregation::tests::test_link_is_active ... ok [INFO] [stdout] test lock_free_router::tests::test_clear ... ok [INFO] [stdout] test mix_minus::tests::test_error_display ... ok [INFO] [stdout] test routing_snapshot::tests::test_clear ... ok [INFO] [stdout] test nmos::tests::test_nmos_node_creation ... ok [INFO] [stdout] test routing_snapshot::tests::test_compare_added_crosspoints ... ok [INFO] [stdout] test routing_snapshot::tests::test_atomic_rollback_on_not_found ... ok [INFO] [stdout] test routing_snapshot::tests::test_compare_gain_changed ... ok [INFO] [stdout] test routing_snapshot::tests::test_compare_identical ... ok [INFO] [stdout] test routing_snapshot::tests::test_compare_removed_crosspoints ... ok [INFO] [stdout] test routing_snapshot::tests::test_delete_snapshot ... ok [INFO] [stdout] test routing_snapshot::tests::test_diff_added_removed ... 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_max_snapshots_eviction ... ok [INFO] [stdout] test routing_snapshot::tests::test_restore_dimension_mismatch ... ok [INFO] [stdout] test routing_snapshot::tests::test_restore_is_idempotent ... ok [INFO] [stdout] test routing_snapshot::tests::test_restore_not_found ... ok [INFO] [stdout] test routing_snapshot::tests::test_restore_preserves_labels ... ok [INFO] [stdout] test routing_snapshot::tests::test_restore_roundtrip ... ok [INFO] [stdout] test routing_snapshot::tests::test_restore_sequence ... ok [INFO] [stdout] test routing_snapshot::tests::test_snapshot_active_count ... ok [INFO] [stdout] test routing_snapshot::tests::test_snapshot_get_gain ... ok [INFO] [stdout] test routing_snapshot::tests::test_snapshot_labels_preserved ... 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_snapshot_restore_256x256_diagonal ... ok [INFO] [stdout] test signal_generator::tests::test_reset ... ok [INFO] [stdout] test signal_generator::tests::test_pink_noise_not_silent ... 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_monitor::tests::test_alert_kind_labels ... 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_monitor_new ... 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_generator::tests::test_polarity_pulse ... ok [INFO] [stdout] test signal_generator::tests::test_white_noise_not_silent ... ok [INFO] [stdout] test signal_monitor::tests::test_detector_absent_after_holdoff ... ok [INFO] [stdout] test signal_generator::tests::test_generate_block_f32 ... ok [INFO] [stdout] test signal_generator::tests::test_fill_buffer ... ok [INFO] [stdout] test signal_generator::tests::test_sweep_monotonic_phase ... ok [INFO] [stdout] test signal_monitor::tests::test_detector_hysteresis ... ok [INFO] [stdout] test signal_generator::tests::test_sample_index_advances ... ok [INFO] [stdout] test signal_monitor::tests::test_detector_no_event_below_holdoff ... ok [INFO] [stdout] test signal_generator::tests::test_sine_quarter_period ... ok [INFO] [stdout] test signal_monitor::tests::test_detector_present_after_holdoff ... ok [INFO] [stdout] test signal_monitor::tests::test_detector_reset ... ok [INFO] [stdout] test signal_monitor::tests::test_detector_threshold_getter ... ok [INFO] [stdout] test signal_monitor::tests::test_detector_is_present_initial_false ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_alert_count_increments ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_alert_count_zero_for_unregistered ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_alert_severity_ordering ... 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_overmod_resets_after_normal_level ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_evaluate_unregistered_returns_empty ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_overmodulation_alert ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_reset_clears_state ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_signal_present_after_holdoff ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_no_alert_before_holdoff ... 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_engine_two_ports_independent ... ok [INFO] [stdout] test signal_monitor::tests::test_fault_count_zero_on_ok ... ok [INFO] [stdout] test signal_monitor::tests::test_initial_status_unknown ... ok [INFO] [stdout] test signal_monitor::tests::test_last_sample_stored ... ok [INFO] [stdout] test signal_monitor::tests::test_port_count ... ok [INFO] [stdout] test signal_monitor::tests::test_report_all_ok ... 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_report_unknown_before_submission ... ok [INFO] [stdout] test signal_monitor::tests::test_report_has_alerts_on_loss ... ok [INFO] [stdout] test signal_monitor::tests::test_signal_status_is_operational ... ok [INFO] [stdout] test signal_monitor::tests::test_signal_status_label ... ok [INFO] [stdout] test signal_monitor::tests::test_signal_status_needs_attention ... ok [INFO] [stdout] test signal_monitor::tests::test_submit_ok_sample ... 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_generator::tests::test_sine_generator_basic ... ok [INFO] [stdout] test signal_path::tests::test_bandwidth_bottleneck_empty ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_register_port ... ok [INFO] [stdout] test signal_path::tests::test_bandwidth_bottleneck_min_selected ... ok [INFO] [stdout] test signal_path::tests::test_signal_format_bandwidth ... ok [INFO] [stdout] test signal_path::tests::test_signal_format_supports_4k ... ok [INFO] [stdout] test signal_monitor::tests::test_engine_signal_lost_after_holdoff ... ok [INFO] [stdout] test signal_path::tests::test_signal_node_counts ... 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_path_no_duplicate_connections ... 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_trace_path_no_path ... ok [INFO] [stdout] test signal_path::tests::test_trace_path_same_node ... ok [INFO] [stdout] test sparse_matrix::tests::test_active_count_decrements_on_disconnect ... ok [INFO] [stdout] test signal_monitor::tests::test_submit_lost_below_min_level ... ok [INFO] [stdout] test signal_path::tests::test_signal_path_connect_returns_false_for_missing_node ... ok [INFO] [stdout] test signal_path::tests::test_signal_path_connect_success ... ok [INFO] [stdout] test sparse_matrix::tests::test_active_count_increments ... ok [INFO] [stdout] test signal_generator::tests::test_sine_amplitude ... ok [INFO] [stdout] test sparse_matrix::tests::test_256x256_performance ... ok [INFO] [stdout] test sparse_matrix::tests::test_capacity_256x256 ... ok [INFO] [stdout] test sparse_matrix::tests::test_clear ... 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_connect_success ... ok [INFO] [stdout] test sparse_matrix::tests::test_disconnect_nonexistent_ok ... ok [INFO] [stdout] test sparse_matrix::tests::test_disconnect_removes_connection ... ok [INFO] [stdout] test sparse_matrix::tests::test_inputs_for ... ok [INFO] [stdout] test sparse_matrix::tests::test_is_connected_false ... ok [INFO] [stdout] test sparse_matrix::tests::test_is_connected_true ... 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_disconnect_out_of_bounds ... 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_to_dense_correct ... 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 tally_system::tests::test_assign_unknown_destination_returns_error ... ok [INFO] [stdout] test tally_system::tests::test_clear_events ... ok [INFO] [stdout] test tally_system::tests::test_colour_name_mapping ... ok [INFO] [stdout] test tally_system::tests::test_destination_count_after_register_and_remove ... ok [INFO] [stdout] test tally_system::tests::test_all_sources_returns_all ... ok [INFO] [stdout] test tally_system::tests::test_destination_gets_current_state_on_assign ... ok [INFO] [stdout] test tally_system::tests::test_destination_receives_state_update ... ok [INFO] [stdout] test tally_system::tests::test_display_and_event_formatting ... ok [INFO] [stdout] test tally_system::tests::test_event_sequence_increments ... ok [INFO] [stdout] test tally_system::tests::test_no_duplicate_event_for_same_state ... ok [INFO] [stdout] test tally_system::tests::test_remove_nonexistent_destination_returns_error ... ok [INFO] [stdout] test tally_system::tests::test_multiple_destinations_follow_same_source ... ok [INFO] [stdout] test tally_system::tests::test_remove_nonexistent_source_returns_error ... 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_set_state_unknown_source_returns_error ... ok [INFO] [stdout] test tally_system::tests::test_source_count_after_register_and_remove ... ok [INFO] [stdout] test tally_system::tests::test_duplicate_destination_returns_error ... 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_assign_destination_to_unknown_source_returns_error ... ok [INFO] [stdout] test tally_system::tests::test_state_change_appends_event ... ok [INFO] [stdout] test tally_system::tests::test_duplicate_source_returns_error ... ok [INFO] [stdout] test tally_system::tests::test_register_source_and_retrieve ... ok [INFO] [stdout] test tally_system::tests::test_tally_error_display ... ok [INFO] [stdout] test tally_system::tests::test_tally_protocol_display ... ok [INFO] [stdout] test tally_system::tests::test_tally_state_display ... ok [INFO] [stdout] test tally_system::tests::test_tally_state_ordering ... 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_basic_routing ... ok [INFO] [stdout] test tests::test_automation ... ok [INFO] [stdout] test tests::test_channel_remapper_51_to_stereo ... ok [INFO] [stdout] test tests::test_channel_remapper_71_to_stereo_via_714 ... ok [INFO] [stdout] test tests::test_channel_mapping ... 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_gain_staging ... ok [INFO] [stdout] test tests::test_monitoring ... 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_node_with_ports ... ok [INFO] [stdout] test topology_map::tests::test_topology_path_direct ... ok [INFO] [stdout] test topology_map::tests::test_topology_path_hop_count ... ok [INFO] [stdout] test tests::test_patch_bay ... ok [INFO] [stdout] test tests::test_signal_flow ... ok [INFO] [stdout] test tests::test_madi_interface ... ok [INFO] [stdout] test tests::test_preset_management ... 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 ... ok [INFO] [stdout] test topology_map::tests::test_map_add_link_invalid_node ... ok [INFO] [stdout] test topology_map::tests::test_map_add_node ... ok [INFO] [stdout] test topology_map::tests::test_map_links_between ... ok [INFO] [stdout] test topology_map::tests::test_map_nodes_of_type ... ok [INFO] [stdout] test tests::test_crosspoint_matrix_stress_1000_cycles ... ok [INFO] [stdout] test tests::test_failover_route_switchover_timing ... ok [INFO] [stdout] test traffic_shaper::tests::test_qos_policy_basics ... ok [INFO] [stdout] test topology_map::tests::test_map_outgoing_incoming_links ... ok [INFO] [stdout] test traffic_shaper::tests::test_qos_policy_oversubscribed ... ok [INFO] [stdout] test traffic_shaper::tests::test_token_bucket_config ... 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 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 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_clear ... ok [INFO] [stdout] test traffic_shaper::tests::test_stream_stats_drop_ratio ... ok [INFO] [stdout] test validate_cache::tests::test_cache_invalidated_on_disconnect ... ok [INFO] [stdout] test validate_cache::tests::test_explicit_invalidate ... ok [INFO] [stdout] test traffic_shaper::tests::test_stream_stats_zero ... ok [INFO] [stdout] test validate_cache::tests::test_hit_rate_all_hits ... ok [INFO] [stdout] test validate_cache::tests::test_hit_rate_no_queries ... ok [INFO] [stdout] test traffic_shaper::tests::test_token_bucket_consume ... ok [INFO] [stdout] test traffic_shaper::tests::test_shaper_advance_clock_refills ... ok [INFO] [stdout] test validate_cache::tests::test_from_graph ... ok [INFO] [stdout] test traffic_shaper::tests::test_token_bucket_refill ... ok [INFO] [stdout] test traffic_shaper::tests::test_token_bucket_fill_ratio ... ok [INFO] [stdout] test validate_cache::tests::test_cache_invalidated_on_connect ... ok [INFO] [stdout] test traffic_shaper::tests::test_traffic_class_ordering ... ok [INFO] [stdout] test validate_cache::tests::test_default_trait ... ok [INFO] [stdout] test validate_cache::tests::test_remove_node_invalidates ... ok [INFO] [stdout] test validate_cache::tests::test_validate_returns_valid_for_simple_graph ... ok [INFO] [stdout] test validate_cache::tests::test_reset_stats ... ok [INFO] [stdout] test validate_cache::tests::test_node_and_edge_count_passthrough ... ok [INFO] [stdout] test virtual_soundcard::tests::test_find_soundcard_by_name ... ok [INFO] [stdout] test virtual_soundcard::tests::test_activate_and_deactivate ... ok [INFO] [stdout] test validate_cache::tests::test_version_increases_monotonically ... ok [INFO] [stdout] test virtual_soundcard::tests::test_remove_soundcard_cascades_connections ... ok [INFO] [stdout] test virtual_soundcard::tests::test_sample_rate_mismatch_fails ... ok [INFO] [stdout] test virtual_soundcard::tests::test_connect_inactive_soundcard_fails ... ok [INFO] [stdout] test zero_latency::tests::test_avoid_category ... ok [INFO] [stdout] test virtual_soundcard::tests::test_connect_stream_to_soundcard ... ok [INFO] [stdout] test virtual_soundcard::tests::test_direction_mismatch_fails ... ok [INFO] [stdout] test virtual_soundcard::tests::test_disconnect ... ok [INFO] [stdout] test virtual_soundcard::tests::test_channel_overflow_fails ... ok [INFO] [stdout] test virtual_soundcard::tests::test_display_implementations ... ok [INFO] [stdout] test virtual_soundcard::tests::test_duplicate_soundcard_id_returns_error ... 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_direct_zero_latency_path ... ok [INFO] [stdout] test virtual_soundcard::tests::test_metadata_on_soundcard ... ok [INFO] [stdout] test virtual_soundcard::tests::test_register_and_retrieve_soundcard ... ok [INFO] [stdout] test zero_latency::tests::test_zero_sample_rate_latency_ms ... ok [INFO] [stdout] test zero_latency::tests::test_find_all_paths ... ok [INFO] [stderr] Doc-tests oximedia_routing [INFO] [stdout] test zero_latency::tests::test_get_node ... ok [INFO] [stdout] test zero_latency::tests::test_is_reachable ... 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_lowest_latency_ms ... ok [INFO] [stdout] test zero_latency::tests::test_max_latency_budget ... ok [INFO] [stdout] test zero_latency::tests::test_no_path_returns_none ... ok [INFO] [stdout] test zero_latency::tests::test_node_bypassable ... ok [INFO] [stdout] test zero_latency::tests::test_node_count ... ok [INFO] [stdout] test zero_latency::tests::test_node_with_label ... 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] [INFO] [stdout] test result: ok. 1089 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test src/nmos_activation.rs - nmos_activation (line 19) ... ok [INFO] [stdout] test src/validate_cache.rs - validate_cache (line 11) ... ok [INFO] [stdout] test src/sparse_matrix.rs - sparse_matrix (line 21) ... ok [INFO] [stdout] test src/bulk_ops.rs - bulk_ops (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/constraint.rs - constraint (line 10) ... ok [INFO] [stdout] test src/routing_macro.rs - routing_macro (line 10) ... ok [INFO] [stdout] test src/zero_latency.rs - zero_latency (line 19) ... ok [INFO] [stdout] test src/heartbeat.rs - heartbeat (line 14) ... ok [INFO] [stdout] test src/lib.rs - (line 22) ... ok [INFO] [stdout] test src/routing_macro.rs - routing_macro::RoutingBuilder (line 271) ... ok [INFO] [stdout] test src/mix_minus.rs - mix_minus (line 11) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.73s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "103645086a7928c78d12024e900d843f59c4324b8dbb808b4b0b2b4d74bc5b51", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "103645086a7928c78d12024e900d843f59c4324b8dbb808b4b0b2b4d74bc5b51", kill_on_drop: false }` [INFO] [stdout] 103645086a7928c78d12024e900d843f59c4324b8dbb808b4b0b2b4d74bc5b51