[INFO] fetching crate oximedia-stream 0.1.3... [INFO] testing oximedia-stream-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-stream 0.1.3 into /workspace/builds/worker-1-tc2/source [INFO] started tweaking crates.io crate oximedia-stream 0.1.3 [INFO] finished tweaking crates.io crate oximedia-stream 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-stream 0.1.3 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-stream 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-stream 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-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 3d664e9021ab73f8735d4ecf0747a0efe3d22bed646a6158b358070ffb7ef14d [INFO] running `Command { std: "docker" "start" "-a" "3d664e9021ab73f8735d4ecf0747a0efe3d22bed646a6158b358070ffb7ef14d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3d664e9021ab73f8735d4ecf0747a0efe3d22bed646a6158b358070ffb7ef14d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3d664e9021ab73f8735d4ecf0747a0efe3d22bed646a6158b358070ffb7ef14d", kill_on_drop: false }` [INFO] [stdout] 3d664e9021ab73f8735d4ecf0747a0efe3d22bed646a6158b358070ffb7ef14d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] e6e69273d7c8a703b6e1e426449796692d53955eef55f2939efb6cf51b2e09c3 [INFO] running `Command { std: "docker" "start" "-a" "e6e69273d7c8a703b6e1e426449796692d53955eef55f2939efb6cf51b2e09c3", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling oximedia-stream v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.17s [INFO] running `Command { std: "docker" "inspect" "e6e69273d7c8a703b6e1e426449796692d53955eef55f2939efb6cf51b2e09c3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e6e69273d7c8a703b6e1e426449796692d53955eef55f2939efb6cf51b2e09c3", kill_on_drop: false }` [INFO] [stdout] e6e69273d7c8a703b6e1e426449796692d53955eef55f2939efb6cf51b2e09c3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] d39af8f770664e8aa314e6b9cbeb9252531dff25c3e76874e2264b7d4f5fbbad [INFO] running `Command { std: "docker" "start" "-a" "d39af8f770664e8aa314e6b9cbeb9252531dff25c3e76874e2264b7d4f5fbbad", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-stream v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.96s [INFO] running `Command { std: "docker" "inspect" "d39af8f770664e8aa314e6b9cbeb9252531dff25c3e76874e2264b7d4f5fbbad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d39af8f770664e8aa314e6b9cbeb9252531dff25c3e76874e2264b7d4f5fbbad", kill_on_drop: false }` [INFO] [stdout] d39af8f770664e8aa314e6b9cbeb9252531dff25c3e76874e2264b7d4f5fbbad [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 30cd971b81eb78890e7ddc288a200eb67ec7986a268c3669d697ac87ed21d350 [INFO] running `Command { std: "docker" "start" "-a" "30cd971b81eb78890e7ddc288a200eb67ec7986a268c3669d697ac87ed21d350", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_stream-4fab64a4a44412d0) [INFO] [stdout] [INFO] [stdout] running 569 tests [INFO] [stdout] test adaptive_pipeline::tests::test_abr_algorithm_default_is_bola ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_bandwidth_estimator_percentile_ordering ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_bandwidth_estimator_window_capped ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_bandwidth_harmonic_mean_empty ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_bandwidth_harmonic_mean_biased_low ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_bandwidth_harmonic_mean_uniform ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_default_ladder_sorted_ascending ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_bandwidth_downgrade ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_bandwidth_upgrade_after_cooldown ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_default_ladder_tier_count ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_buffer_stress_downgrade ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_force_tier_out_of_range ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_no_switch_without_samples ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_record_download_adds_sample ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_switch_history_recorded ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_quality_ladder_current_returns_first_by_default ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_quality_ladder_new_sorts_tiers ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_throughput_abr_buffer_stress_emergency ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_throughput_abr_downgrades_on_low_bandwidth ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_throughput_abr_stays_if_already_optimal ... ok [INFO] [stdout] test bola::tests::test_bitrate_at_out_of_range ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_throughput_abr_no_switch_without_samples ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_starts_at_lowest_tier ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_pipeline_force_tier_valid ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_throughput_abr_selects_highest_sustainable_tier ... ok [INFO] [stdout] test bola::tests::test_segment_download_record_throughput ... ok [INFO] [stdout] test bola::tests::test_config_buffer_smaller_than_segment_fails ... ok [INFO] [stdout] test bola::tests::test_segment_download_record_zero_duration ... ok [INFO] [stdout] test bola::tests::test_select_quality_returns_valid_index ... ok [INFO] [stdout] test bola::tests::test_single_quality_level ... ok [INFO] [stdout] test bola::tests::test_utilities_computed ... ok [INFO] [stdout] test bola::tests::test_bitrate_at_valid ... ok [INFO] [stdout] test bola::tests::test_select_quality_empty_buffer_picks_highest ... ok [INFO] [stdout] test bola::tests::test_config_zero_segment_duration_fails ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_bandwidth_estimator_initial_state ... ok [INFO] [stdout] test bola::tests::test_config_non_ascending_bitrates_fails ... ok [INFO] [stdout] test bola::tests::test_config_new_valid ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_bandwidth_estimator_single_sample ... ok [INFO] [stdout] test cdn_health::tests::test_status_none_for_unknown ... ok [INFO] [stdout] test bola::tests::test_config_empty_bitrates_fails ... ok [INFO] [stdout] test bola::tests::test_select_quality_buffer_drainage_drops_quality ... ok [INFO] [stdout] test cdn_health::tests::test_all_statuses_sorted ... ok [INFO] [stdout] test adaptive_pipeline::tests::test_bandwidth_estimator_ewma_converges ... ok [INFO] [stdout] test cdn_health::tests::test_all_successes_remain_healthy ... ok [INFO] [stdout] test cdn_health::tests::test_below_min_probes_defaults_healthy ... ok [INFO] [stdout] test cdn_health::tests::test_healthy_providers_subset ... ok [INFO] [stdout] test cdn_health::tests::test_probe_outcome_helpers ... ok [INFO] [stdout] test cdn_health::tests::test_recovery_after_failures_clear ... ok [INFO] [stdout] test cdn_health::tests::test_latency_failure_threshold ... ok [INFO] [stdout] test cdn_health::tests::test_status_snapshot ... ok [INFO] [stdout] test cdn_health::tests::test_count_helpers ... ok [INFO] [stdout] test cdn_health::tests::test_window_eviction_replaces_old_probes ... ok [INFO] [stdout] test cdn_upload::tests::test_all_failed_batch ... ok [INFO] [stdout] test cdn_upload::tests::test_build_jobs_only_enabled ... ok [INFO] [stdout] test cdn_upload::tests::test_all_success_basic ... ok [INFO] [stdout] test cdn_upload::tests::test_failure_count_tracking ... ok [INFO] [stdout] test cdn_upload::tests::test_avg_rtt_zero_when_no_successes ... ok [INFO] [stdout] test cdn_upload::tests::test_max_rtt_returns_largest ... ok [INFO] [stdout] test cdn_upload::tests::test_record_external_result_unknown_target ... ok [INFO] [stdout] test cdn_upload::tests::test_reset_stats_clears_counters ... ok [INFO] [stdout] test cdn_upload::tests::test_skipped_when_disabled ... ok [INFO] [stdout] test cdn_upload::tests::test_cumulative_stats_accumulate ... ok [INFO] [stdout] test cdn_upload::tests::test_success_ratio_empty ... ok [INFO] [stdout] test cdn_upload::tests::test_success_ratio_all_success ... ok [INFO] [stdout] test cmaf::tests::test_empty_chunk_slice_produces_ftyp_only ... ok [INFO] [stdout] test cmaf::tests::test_chunk_new ... ok [INFO] [stdout] test cmaf::tests::test_ftyp_starts_with_cmf2_brand ... ok [INFO] [stdout] test cmaf::tests::test_large_bmdt_version1_encoding ... ok [INFO] [stdout] test cmaf::tests::test_multiple_chunks_produce_multiple_moof_mdat_pairs ... ok [INFO] [stdout] test cmaf::tests::test_sequence_number_in_mfhd ... ok [INFO] [stdout] test cmaf::tests::test_mdat_payload_matches_chunk_data ... ok [INFO] [stdout] test cmaf::tests::test_round_trip_payload_integrity ... ok [INFO] [stdout] test cdn_upload::tests::test_retry_succeeds_on_second_attempt ... ok [INFO] [stdout] test cmaf_sequencer::tests::test_chunk_emitted_when_duration_reached ... ok [INFO] [stdout] test cdn_health::tests::test_unknown_provider_probe_is_ignored ... ok [INFO] [stdout] test cdn_upload::tests::test_set_enabled_changes_state ... ok [INFO] [stdout] test cmaf_sequencer::tests::test_data_contains_moof_mdat_boxes ... ok [INFO] [stdout] test cdn_health::tests::test_transitions_unhealthy_above_threshold ... ok [INFO] [stdout] test cdn_upload::tests::test_record_external_result_success ... ok [INFO] [stdout] test cmaf::tests::test_validate_chunks_valid ... ok [INFO] [stdout] test cmaf::tests::test_validate_chunks_zero_sequence_number ... ok [INFO] [stdout] test cmaf::tests::test_validate_empty_slice_is_ok ... ok [INFO] [stdout] test cmaf_sequencer::tests::test_flush_returns_none_when_empty ... ok [INFO] [stdout] test cmaf_sequencer::tests::test_no_chunk_before_duration_reached ... ok [INFO] [stdout] test cmaf_sequencer::tests::test_pending_duration_resets_after_emit ... ok [INFO] [stdout] test cmaf_sequencer::tests::test_segment_end_flag_with_units_per_segment ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_build_contains_period_ids ... ok [INFO] [stdout] test cmaf_sequencer::tests::test_flush_emits_partial_chunk ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_iso_duration_formatting_fractional ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_build_inserts_before_closing_tag ... ok [INFO] [stdout] test cmaf_sequencer::tests::test_sequence_increments ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_iso_duration_formatting_integer ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_no_mpd_close_tag_appends_to_end ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_add_period_increments_count ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_period_start_offset_for_second_period ... ok [INFO] [stdout] test cdn_health::tests::test_unregister_removes_provider ... ok [INFO] [stdout] test cdn_health::tests::test_unregistered_is_not_healthy ... ok [INFO] [stdout] test cdn_upload::tests::test_avg_rtt_calculation ... ok [INFO] [stdout] test cmaf::tests::test_single_chunk_segment_structure ... ok [INFO] [stdout] test cmaf::tests::test_validate_chunks_empty_data ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_total_duration_accumulates ... ok [INFO] [stdout] test cdn_health::tests::test_new_provider_is_healthy ... ok [INFO] [stdout] test drm_signaling::tests::test_dash_content_protection_contains_kid ... ok [INFO] [stdout] test drm_signaling::tests::test_dash_content_protection_contains_system_id ... ok [INFO] [stdout] test dvr_recorder::tests::test_get_segments_in_range_returns_correct_subset ... ok [INFO] [stdout] test drm_signaling::tests::test_drm_system_ids ... ok [INFO] [stdout] test drm_signaling::tests::test_hls_key_tag_contains_keyid ... ok [INFO] [stdout] test drm_signaling::tests::test_hls_key_tag_method_fairplay ... ok [INFO] [stdout] test dvr_recorder::tests::test_seek_to_pts_finds_enclosing_segment ... ok [INFO] [stdout] test dvr_recorder::tests::test_seek_to_pts_returns_none_for_out_of_range ... ok [INFO] [stdout] test dvr_recorder::tests::test_sequence_numbers_are_monotonically_assigned ... ok [INFO] [stdout] test dvr_recorder::tests::test_sequence_numbers_continue_after_eviction ... ok [INFO] [stdout] test dvr_recorder::tests::test_single_segment_push_and_query ... ok [INFO] [stdout] test dvr_recorder::tests::test_size_cap_eviction_keeps_total_within_limit ... ok [INFO] [stdout] test dvr_recorder::tests::test_total_duration_secs_accumulates_correctly ... ok [INFO] [stdout] test dvr_recorder::tests::test_vod_playlist_discontinuity_tag_for_non_keyframe_segment ... ok [INFO] [stdout] test drm_signaling::tests::test_hls_key_tag_method_widevine ... ok [INFO] [stdout] test drm_signaling::tests::test_key_id_hex ... ok [INFO] [stdout] test file_recorder::tests::test_segment_path_naming_convention ... ok [INFO] [stdout] test drm_signaling::tests::test_key_id_uuid_format ... ok [INFO] [stdout] test drm_signaling::tests::test_manifest_builder_add_and_count ... ok [INFO] [stdout] test drm_signaling::tests::test_pssh_base64_encoding ... ok [INFO] [stdout] test drm_signaling::tests::test_to_hls_key_tags_multi_system ... ok [INFO] [stdout] test ll_dash::tests::test_availability_time_offset_calculated ... ok [INFO] [stdout] test dvr_recorder::tests::test_window_eviction_removes_old_segments ... ok [INFO] [stdout] test dvr_recorder::tests::test_empty_recorder_queries_return_none_or_zero ... ok [INFO] [stdout] test dvr_recorder::tests::test_generate_vod_playlist_empty_range ... ok [INFO] [stdout] test drm_signaling::tests::test_manifest_builder_duplicate_rejected ... ok [INFO] [stdout] test file_recorder::tests::test_write_after_finalize_returns_error ... ok [INFO] [stdout] test file_recorder::tests::test_is_finalized_flag ... ok [INFO] [stdout] test file_recorder::tests::test_write_single_segment ... ok [INFO] [stdout] test file_recorder::tests::test_segment_paths_numbered_sequentially ... ok [INFO] [stdout] test file_recorder::tests::test_segment_count_reflects_writes ... ok [INFO] [stdout] test file_recorder::tests::test_total_bytes_accumulate ... ok [INFO] [stdout] test file_recorder::tests::test_custom_prefix_and_extension ... ok [INFO] [stdout] test file_recorder::tests::test_finalize_returns_correct_summary ... ok [INFO] [stdout] test dash_mpd_updater::tests::test_build_with_no_periods_returns_base ... ok [INFO] [stdout] test ll_dash::tests::test_chunk_byte_len ... ok [INFO] [stdout] test ll_dash::tests::test_chunk_duration_ticks ... ok [INFO] [stdout] test dvr_recorder::tests::test_generate_vod_playlist_structure ... ok [INFO] [stdout] test ll_dash::tests::test_chunk_is_last ... ok [INFO] [stdout] test ll_dash::tests::test_default_config ... ok [INFO] [stdout] test ll_dash::tests::test_generate_mpd_contains_codec ... ok [INFO] [stdout] test ll_dash::tests::test_generate_mpd_contains_segment_template ... ok [INFO] [stdout] test ll_dash::tests::test_segment_duration_ticks ... ok [INFO] [stdout] test ll_dash::tests::test_generate_mpd_basic ... ok [INFO] [stdout] test ll_dash::tests::test_segment_add_chunk_completes ... ok [INFO] [stdout] test ll_dash::tests::test_timeline_begin_segment_twice_errors ... ok [INFO] [stdout] test ll_dash::tests::test_timeline_live_window_eviction ... ok [INFO] [stdout] test ll_dash::tests::test_timeline_finalize_segment ... ok [INFO] [stdout] test ll_dash::tests::test_timeline_sequence_increments ... ok [INFO] [stdout] test ll_hls::tests::test_add_and_pending_count ... ok [INFO] [stdout] test ll_dash::tests::test_xml_escape_in_base_url ... ok [INFO] [stdout] test ll_dash::tests::test_chunk_header_format ... ok [INFO] [stdout] test ll_dash::tests::test_timeline_add_chunk_without_segment_errors ... ok [INFO] [stdout] test ll_hls::tests::test_config_can_skip_until_in_playlist ... ok [INFO] [stdout] test ll_dash::tests::test_segment_not_complete_until_last_chunk ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_advance_part ... ok [INFO] [stdout] test ll_dash::tests::test_timeline_begin_and_add_chunk ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_advance_segment ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_can_fulfill_past_msn ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_cannot_fulfill_future_msn ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_request_new ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_same_msn_exact_part ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_same_msn_future_part ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_same_msn_no_part ... ok [INFO] [stdout] test ll_hls::tests::test_config_defaults ... ok [INFO] [stdout] test ll_hls::tests::test_delta_updates_server_control ... ok [INFO] [stdout] test ll_hls::tests::test_finalize_empty_returns_error ... ok [INFO] [stdout] test ll_hls::tests::test_finalize_segment_increments_sequence ... ok [INFO] [stdout] test ll_hls::tests::test_generate_media_playlist_header ... ok [INFO] [stdout] test ll_hls::tests::test_generate_playlist_contains_ext_x_part ... ok [INFO] [stdout] test ll_hls::tests::test_blocking_reload_same_msn_past_part ... ok [INFO] [stdout] test ll_hls::tests::test_hint_type_map_str ... ok [INFO] [stdout] test ll_hls::tests::test_hint_type_part_str ... ok [INFO] [stdout] test ll_hls::tests::test_ll_hls_segment_is_complete ... ok [INFO] [stdout] test ll_hls::tests::test_ll_hls_segment_new ... ok [INFO] [stdout] test ll_hls::tests::test_independent_flag_in_playlist ... ok [INFO] [stdout] test ll_hls::tests::test_ll_hls_segment_total_duration ... ok [INFO] [stdout] test ll_hls::tests::test_ll_hls_segment_part_count ... ok [INFO] [stdout] test ll_hls::tests::test_partial_segment_auto_uri ... ok [INFO] [stdout] test ll_hls::tests::test_partial_segment_byte_range_in_playlist ... ok [INFO] [stdout] test ll_hls::tests::test_partial_segment_duration_secs ... ok [INFO] [stdout] test ll_hls::tests::test_partial_segment_custom_uri ... ok [INFO] [stdout] test ll_hls::tests::test_part_hold_back_in_playlist ... ok [INFO] [stdout] test ll_hls::tests::test_generate_playlist_contains_preload_hint ... ok [INFO] [stdout] test ll_hls::tests::test_playlist_state_from_playlist ... ok [INFO] [stdout] test ll_hls::tests::test_playlist_state_with_pending_parts ... ok [INFO] [stdout] test ll_hls::tests::test_playlist_window_eviction ... ok [INFO] [stdout] test ll_hls::tests::test_preload_hint_construction ... ok [INFO] [stdout] test ll_hls::tests::test_preload_hint_in_playlist_type_part ... ok [INFO] [stdout] test ll_hls::tests::test_preload_hint_no_byte_range ... ok [INFO] [stdout] test ll_hls::tests::test_preload_hint_to_tag_format ... ok [INFO] [stdout] test ll_hls::tests::test_preload_hint_byte_range_length_none_by_default ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_contains_bandwidth ... ok [INFO] [stdout] test ll_hls::tests::test_preload_hint_uri_format ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_contains_base_url ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_contains_codec ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_contains_mpd_root_element ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_contains_representation ... ok [INFO] [stdout] test ll_hls::tests::test_preload_hint_map_type ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_contains_resolution ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_xml_escape_in_codec ... ok [INFO] [stdout] test manifest_builder::tests::test_daterange_in_media_playlist ... ok [INFO] [stdout] test manifest_builder::tests::test_daterange_tag_with_client_attrs ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_contains_segment_template ... ok [INFO] [stdout] test manifest_builder::tests::test_daterange_tag_with_end_date ... ok [INFO] [stdout] test manifest_builder::tests::test_daterange_tag_with_scte35_cmd ... ok [INFO] [stdout] test ll_hls::tests::test_preload_hint_with_byte_range ... ok [INFO] [stdout] test manifest_builder::tests::test_ext_x_skip_with_removed_dateranges ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_min_buffer_time ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_no_segment_template_when_none ... ok [INFO] [stdout] test manifest_builder::tests::test_format_unix_epoch_is_1970 ... ok [INFO] [stdout] test manifest_builder::tests::test_manifest_format_hls_versions ... ok [INFO] [stdout] test manifest_builder::tests::test_dash_mpd_starts_with_xml_declaration ... ok [INFO] [stdout] test manifest_builder::tests::test_master_playlist_contains_codecs ... ok [INFO] [stdout] test manifest_builder::tests::test_daterange_tag_contains_id_and_start ... ok [INFO] [stdout] test manifest_builder::tests::test_master_playlist_contains_frame_rate ... ok [INFO] [stdout] test manifest_builder::tests::test_ext_x_skip_tag_line ... ok [INFO] [stdout] test manifest_builder::tests::test_master_playlist_contains_bandwidth ... ok [INFO] [stdout] test manifest_builder::tests::test_master_playlist_contains_resolution ... ok [INFO] [stdout] test manifest_builder::tests::test_master_playlist_contains_uri ... ok [INFO] [stdout] test manifest_builder::tests::test_master_playlist_empty_variants ... ok [INFO] [stdout] test manifest_builder::tests::test_master_playlist_multiple_variants ... ok [INFO] [stdout] test manifest_builder::tests::test_master_playlist_starts_with_extm3u ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_no_endlist_when_unset ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_program_date_time ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_starts_with_extm3u ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_segment_extinf ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_allow_cache ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_byte_range ... ok [INFO] [stdout] test ll_hls::tests::test_no_delta_updates_server_control ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_contains_media_sequence ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_contains_target_duration ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_discontinuity ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_endlist_present_when_set ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_with_skip_uses_version_9 ... ok [INFO] [stdout] test manifest_builder::tests::test_xml_escape_ampersand ... ok [INFO] [stdout] test manifest_builder::tests::test_media_playlist_without_skip_uses_version_3 ... ok [INFO] [stdout] test manifest_builder::tests::test_xml_escape_less_than ... ok [INFO] [stdout] test multi_audio::tests::test_codec_strings ... ok [INFO] [stdout] test multi_audio::tests::test_default_track ... ok [INFO] [stdout] test multi_audio::tests::test_duplicate_id_rejected ... ok [INFO] [stdout] test multi_audio::tests::test_ext_x_media_contains_type_audio ... ok [INFO] [stdout] test multi_audio::tests::test_remove_track ... ok [INFO] [stdout] test multi_audio::tests::test_ext_x_media_default_yes ... ok [INFO] [stdout] test multi_audio::tests::test_select_missing_language_returns_none ... ok [INFO] [stdout] test multi_audio::tests::test_select_prefix_language ... ok [INFO] [stdout] test multi_audio::tests::test_set_default ... ok [INFO] [stdout] test multi_cdn::tests::test_available_count_reflects_availability ... ok [INFO] [stdout] test multi_cdn::tests::test_custom_policy_max_errors ... ok [INFO] [stdout] test multi_cdn::tests::test_latency_based_picks_lowest_latency ... ok [INFO] [stdout] test multi_cdn::tests::test_latency_based_skips_unavailable ... ok [INFO] [stdout] test multi_cdn::tests::test_primary_returns_none_when_all_unavailable ... ok [INFO] [stdout] test multi_cdn::tests::test_primary_selects_lowest_priority ... ok [INFO] [stdout] test multi_cdn::tests::test_primary_skips_unavailable ... ok [INFO] [stdout] test multi_cdn::tests::test_provider_initial_available ... ok [INFO] [stdout] test multi_cdn::tests::test_provider_initial_error_count_zero ... ok [INFO] [stdout] test multi_audio::tests::test_add_track_and_count ... ok [INFO] [stdout] test multi_audio::tests::test_select_exact_language ... ok [INFO] [stdout] test multi_audio::tests::test_ext_x_media_uri_included ... ok [INFO] [stdout] test multi_cdn::tests::test_record_error_increments_count ... ok [INFO] [stdout] test multi_cdn::tests::test_record_latency_converges_to_sample ... ok [INFO] [stdout] test multi_cdn::tests::test_record_error_marks_unavailable_after_threshold ... ok [INFO] [stdout] test multi_cdn::tests::test_record_success_restores_availability ... ok [INFO] [stdout] test multi_cdn::tests::test_record_latency_unknown_provider_noop ... ok [INFO] [stdout] test multi_cdn::tests::test_record_latency_updates_ewma ... ok [INFO] [stdout] test multi_cdn::tests::test_record_success_resets_error_count ... ok [INFO] [stdout] test multi_cdn::tests::test_round_robin_cycles_providers ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_random_higher_weight_selected_more ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_random_deterministic ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_rr_deterministic ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_rr_distributes_proportionally ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_rr_returns_none_when_all_unavailable ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_rr_equal_weights_cycles ... ok [INFO] [stdout] test multi_cdn::tests::test_provider_initial_latency ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_rr_single_provider ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_rr_skips_unavailable ... ok [INFO] [stdout] test multi_cdn::tests::test_record_error_below_threshold_stays_available ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_bandwidth_stddev_needs_two_samples ... ok [INFO] [stdout] test multi_cdn::tests::test_weighted_rr_smooth_interleaving ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_depth_at_least_min_depth ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_complete_head_on_empty_queue ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_depth_clamped_to_max ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_depth_increases_with_high_bandwidth ... ok [INFO] [stdout] test retry::tests::test_delay_grows_exponentially ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_ewma_converges_to_sample ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_ewma_smoothing ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_has_capacity_respects_depth ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_initial_depth_is_min_depth ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_samples_window_capped_at_32 ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_schedule_and_complete_head ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_schedule_duplicate_rejected ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_update_segment_bitrate_recomputes_depth ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_update_target_buffer_affects_depth ... ok [INFO] [stdout] test retry::tests::test_base_delay_zero_always_zero ... ok [INFO] [stdout] test retry::tests::test_delay_capped_at_max ... ok [INFO] [stdout] test retry::tests::test_delay_is_zero_when_attempt_exceeds_max ... ok [INFO] [stdout] test retry::tests::test_deterministic_same_seed_same_result ... ok [INFO] [stdout] test retry::tests::test_jitter_adds_non_negative_amount ... ok [INFO] [stdout] test retry::tests::test_with_jitter_clamps_above_one ... ok [INFO] [stdout] test retry::tests::test_should_retry ... ok [INFO] [stdout] test scte35::tests::test_break_duration_encode_decode_no_auto_return ... ok [INFO] [stdout] test scte35::tests::test_avail_descriptor_encode_decode_roundtrip ... ok [INFO] [stdout] test scte35::tests::test_break_duration_encode_decode_auto_return ... ok [INFO] [stdout] test scte35::tests::test_break_duration_parse_too_short ... ok [INFO] [stdout] test scte35::tests::test_encode_section_from_command_with_descriptors ... ok [INFO] [stdout] test scte35::tests::test_encode_bandwidth_reservation_no_descriptors ... ok [INFO] [stdout] test scte35::tests::test_encode_bandwidth_reservation_roundtrip ... ok [INFO] [stdout] test scte35::tests::test_encode_splice_insert_out_of_network_flag_set ... ok [INFO] [stdout] test scte35::tests::test_encode_splice_null_custom_tier ... ok [INFO] [stdout] test scte35::tests::test_encode_splice_insert_immediate_non_empty ... ok [INFO] [stdout] test scte35::tests::test_encode_splice_null_roundtrip ... ok [INFO] [stdout] test scte35::tests::test_encode_splice_insert_with_pts ... ok [INFO] [stdout] test scte35::tests::test_parse_splice_info_bandwidth_reservation ... ok [INFO] [stdout] test scte35::tests::test_parse_splice_info_null_command ... ok [INFO] [stdout] test scte35::tests::test_encode_splice_null_not_encrypted ... ok [INFO] [stdout] test scte35::tests::test_parse_splice_info_tier_preserved ... ok [INFO] [stdout] test scte35::tests::test_parse_splice_info_with_avail_descriptor ... ok [INFO] [stdout] test scte35::tests::test_parse_splice_info_too_short_returns_error ... ok [INFO] [stdout] test scte35::tests::test_parse_splice_info_unknown_command_type ... ok [INFO] [stdout] test scte35::tests::test_scheduler_bw_reservation_encode_roundtrip ... ok [INFO] [stdout] test scte35::tests::test_scheduler_bandwidth_reservation_fires_at_pts ... ok [INFO] [stdout] test scte35::tests::test_scheduler_bw_reservation_pending_count ... ok [INFO] [stdout] test scte35::tests::test_scheduler_event_not_due_yet ... ok [INFO] [stdout] test scte35::tests::test_scheduler_get_due_all_at_once ... ok [INFO] [stdout] test scte35::tests::test_scheduler_get_due_empty_at_zero ... ok [INFO] [stdout] test scte35::tests::test_scheduler_mixed_commands_ordered_by_pts ... ok [INFO] [stdout] test scte35::tests::test_scheduler_event_exactly_on_time ... ok [INFO] [stdout] test scte35::tests::test_scheduler_multiple_events_ordered_by_pts ... ok [INFO] [stdout] test scte35::tests::test_scheduler_get_due_legacy_filters_non_inserts ... ok [INFO] [stdout] test scte35::tests::test_scheduler_multiple_nulls_all_fire ... ok [INFO] [stdout] test scte35::tests::test_scheduler_null_encode_roundtrip ... ok [INFO] [stdout] test scte35::tests::test_scheduler_default_impl ... ok [INFO] [stdout] test scte35::tests::test_scheduler_null_fires_at_pts ... ok [INFO] [stdout] test scte35::tests::test_segmentation_descriptor_encode_non_empty ... ok [INFO] [stdout] test scte35::tests::test_splice_command_type_round_trip ... ok [INFO] [stdout] test scte35::tests::test_scheduler_null_not_yet_due ... ok [INFO] [stdout] test scte35::tests::test_splice_command_type_unknown_byte_returns_error ... ok [INFO] [stdout] test scte35::tests::test_splice_descriptor_parse_too_short ... ok [INFO] [stdout] test scte35::tests::test_scheduler_initially_empty ... ok [INFO] [stdout] test scte35::tests::test_scheduled_command_equality ... ok [INFO] [stdout] test scte35::tests::test_splice_descriptor_parse_truncated_payload ... ok [INFO] [stdout] test scte35::tests::test_scheduler_schedule_and_retrieve_immediate ... ok [INFO] [stdout] test scte35::tests::test_splice_null_and_bw_reservation_different_command_types ... ok [INFO] [stdout] test scte35::tests::test_scheduler_pending_count_decreases_after_get_due ... ok [INFO] [stdout] test segment::tests::test_evicted_segments_pruned ... ok [INFO] [stdout] test segment::tests::test_buffer_push_and_occupancy ... ok [INFO] [stdout] test segment::tests::test_get_mut_not_found ... ok [INFO] [stdout] test segment::tests::test_buffer_full_error ... ok [INFO] [stdout] test segment::tests::test_high_watermark_event ... ok [INFO] [stdout] test segment::tests::test_segment_fail_from_any_state ... ok [INFO] [stdout] test segment::tests::test_segment_invalid_transition ... ok [INFO] [stdout] test segment::tests::test_watermark_config_zero_low ... ok [INFO] [stdout] test segment::tests::test_segment_state_machine ... ok [INFO] [stdout] test segment_cache::tests::test_byte_budget_eviction ... ok [INFO] [stdout] test segment_cache::tests::test_clear_empties_cache ... ok [INFO] [stdout] test segment::tests::test_watermark_config_invalid_order ... ok [INFO] [stdout] test segment::tests::test_watermark_config_valid ... ok [INFO] [stdout] test segment_cache::tests::test_cache_miss_returns_none ... ok [INFO] [stdout] test scte35::tests::test_encode_splice_insert_with_break_duration ... ok [INFO] [stdout] test segment_cache::tests::test_hit_miss_counters ... ok [INFO] [stdout] test segment_cache::tests::test_hit_ratio_zero_when_no_lookups ... ok [INFO] [stdout] test segment::tests::test_download_duration_captured ... ok [INFO] [stdout] test segment_cache::tests::test_insert_and_get_basic ... ok [INFO] [stdout] test segment_cache::tests::test_lru_eviction_on_capacity ... ok [INFO] [stdout] test segment_cache::tests::test_reset_stats_preserves_data ... ok [INFO] [stdout] test segment_cache::tests::test_stats_entry_count_matches_len ... ok [INFO] [stdout] test segment_cache::tests::test_oversized_entry_rejected ... ok [INFO] [stdout] test segment_cache::tests::test_remove_entry ... ok [INFO] [stdout] test segment_cache::tests::test_eviction_counter_increments ... ok [INFO] [stdout] test segment_cache::tests::test_hit_ratio_calculation ... ok [INFO] [stdout] test segment_cache::tests::test_remove_nonexistent_returns_false ... ok [INFO] [stdout] test segment_manager::tests::test_adjust_prefetch_depth_clamps_to_max ... ok [INFO] [stdout] test segment_manager::tests::test_adjust_prefetch_depth_clamps_to_min ... ok [INFO] [stdout] test segment_manager::tests::test_adjust_prefetch_depth_zero_bandwidth_returns_min ... ok [INFO] [stdout] test segment_manager::tests::test_adjust_prefetch_depth_low_bandwidth ... ok [INFO] [stdout] test segment_manager::tests::test_adjust_prefetch_depth_high_bandwidth ... ok [INFO] [stdout] test segment_manager::tests::test_auto_adjust_prefetch_high_bandwidth_full_buffer ... ok [INFO] [stdout] test segment_manager::tests::test_auto_adjust_prefetch_no_boost_above_threshold ... ok [INFO] [stdout] test segment_manager::tests::test_auto_adjust_prefetch_very_low_bandwidth ... ok [INFO] [stdout] test prefetch_scheduler::tests::test_depth_at_min_on_low_bandwidth ... ok [INFO] [stdout] test segment_manager::tests::test_auto_adjust_prefetch_stores_in_prefetch_count ... ok [INFO] [stdout] test segment_manager::tests::test_auto_adjust_prefetch_zero_bandwidth ... ok [INFO] [stdout] test segment_manager::tests::test_available_segments_sorted ... ok [INFO] [stdout] test segment_manager::tests::test_create_segment_initial_state_pending ... ok [INFO] [stdout] test segment_manager::tests::test_create_segment_returns_unique_ids ... ok [INFO] [stdout] test segment_manager::tests::test_auto_adjust_prefetch_low_buffer_boost ... ok [INFO] [stdout] test segment_manager::tests::test_mark_available_records_speed ... ok [INFO] [stdout] test segment_manager::tests::test_evict_old_removes_available_behind_playhead ... ok [INFO] [stdout] test segment_manager::tests::test_adjust_prefetch_depth_zero_bitrate_returns_min ... ok [INFO] [stdout] test segment_manager::tests::test_next_needed_returns_pending_sequence ... ok [INFO] [stdout] test segment_manager::tests::test_avg_download_speed_none_when_empty ... ok [INFO] [stdout] test segment_manager::tests::test_auto_adjust_prefetch_boost_capped_at_max ... ok [INFO] [stdout] test segment_manager::tests::test_avg_download_speed_computed_correctly ... ok [INFO] [stdout] test segment_manager::tests::test_prefetch_candidates_empty_when_all_active ... ok [INFO] [stdout] test segment_manager::tests::test_prefetch_candidates_returns_pending_seqs ... ok [INFO] [stdout] test segment_manager::tests::test_mark_failed_transitions_any_active_state ... ok [INFO] [stdout] test segment_manager::tests::test_mark_downloading_rejects_non_pending ... ok [INFO] [stdout] test srt_ingest::tests::test_ingest_close_stream ... ok [INFO] [stdout] test segment_manager::tests::test_prefetch_config_default_values ... ok [INFO] [stdout] test segment_cache::tests::test_replace_existing_key_updates_bytes ... ok [INFO] [stdout] test segment_manager::tests::test_mark_downloading_transitions_pending ... ok [INFO] [stdout] test srt_ingest::tests::test_ingest_unknown_socket ... ok [INFO] [stdout] test srt_ingest::tests::test_srt_packet_from_bytes_too_short ... ok [INFO] [stdout] test srt_ingest::tests::test_srt_packet_roundtrip ... ok [INFO] [stdout] test srt_ingest::tests::test_ingest_accept_and_inject ... ok [INFO] [stdout] test srt_ingest::tests::test_stream_loss_detection ... ok [INFO] [stdout] test srt_ingest::tests::test_ingest_max_streams ... ok [INFO] [stdout] test srt_ingest::tests::test_stream_retransmit_flag ... ok [INFO] [stdout] test srt_ingest::tests::test_srt_config_defaults ... ok [INFO] [stdout] test srt_ingest::tests::test_stream_rtt_ewma ... ok [INFO] [stdout] test stream_analytics::tests::test_avg_bitrate_from_quality_switches ... ok [INFO] [stdout] test srt_ingest::tests::test_ingest_stream_stats_iteration ... ok [INFO] [stdout] test stream_analytics::tests::test_buffer_ratio_calculation ... ok [INFO] [stdout] test segment_manager::tests::test_buffer_duration_ms_sums_available ... ok [INFO] [stdout] test srt_ingest::tests::test_stream_receive_and_drain ... ok [INFO] [stdout] test stream_analytics::tests::test_last_error ... ok [INFO] [stdout] test stream_analytics::tests::test_error_count ... ok [INFO] [stdout] test stream_analytics::tests::test_mos_degraded_session ... ok [INFO] [stdout] test stream_analytics::tests::test_mos_perfect_session ... ok [INFO] [stdout] test stream_analytics::tests::test_new_analytics_is_empty ... ok [INFO] [stdout] test stream_analytics::tests::test_quality_switch_count ... ok [INFO] [stdout] test stream_analytics::tests::test_record_event_increments_count ... ok [INFO] [stdout] test stream_health::tests::test_avg_score_computed ... ok [INFO] [stdout] test stream_analytics::tests::test_buffer_stall_count ... ok [INFO] [stdout] test stream_health::tests::test_avg_score_empty_history ... ok [INFO] [stdout] test stream_health::tests::test_history_ring_buffer_evicts_oldest ... ok [INFO] [stdout] test stream_analytics::tests::test_reset_clears_events ... ok [INFO] [stdout] test stream_health::tests::test_initial_state_no_events ... ok [INFO] [stdout] test stream_health::tests::test_qoe_config_default_weights_sum_to_one ... ok [INFO] [stdout] test stream_health::tests::test_qoe_perfect_score_with_all_good_metrics ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_bitrate_above_reference_capped ... ok [INFO] [stdout] test stream_analytics::tests::test_segment_count_and_avg_load ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_extreme_rebuffer_zeros_factor ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_custom_config_weights ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_high_rebuffer_ratio_reduces_score ... ok [INFO] [stdout] test stream_health::tests::test_dropped_frames_recorded ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_perfect_conditions ... ok [INFO] [stdout] test stream_health::tests::test_frequent_switches_issue_detected ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_startup_factor_fast ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_many_switches_reduces_score ... ok [INFO] [stdout] test stream_health::tests::test_quality_switch_recorded ... ok [INFO] [stdout] test stream_health::tests::test_rebuffer_ratio_affects_qoe_score ... ok [INFO] [stdout] test stream_health::tests::test_rebuffer_ratio_computed_correctly ... ok [INFO] [stdout] test stream_health::tests::test_error_recorded ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_low_bitrate_reduces_score ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_no_startup_recorded ... ok [INFO] [stdout] test stream_health::tests::test_rebuffer_ratio_zero_when_no_stalls ... ok [INFO] [stdout] test stream_health::tests::test_rebuffer_recorded ... ok [INFO] [stdout] test stream_packager::tests::test_file_segment_writer_path_format ... ok [INFO] [stdout] test stream_health::tests::test_rebuffer_with_duration_increments_event_count ... ok [INFO] [stdout] test stream_health::tests::test_record_playback_duration_updates_total ... ok [INFO] [stdout] test stream_health::tests::test_report_low_buffer_detected ... ok [INFO] [stdout] test stream_health::tests::test_report_perfect_conditions ... ok [INFO] [stdout] test stream_health::tests::test_qoe_score_zero_bitrate ... ok [INFO] [stdout] test stream_health::tests::test_startup_delay_affects_qoe_score ... ok [INFO] [stdout] test stream_health::tests::test_report_score_decreases_with_rebuffers ... ok [INFO] [stdout] test stream_packager::tests::test_flush_returns_none_when_empty ... ok [INFO] [stdout] test stream_packager::tests::test_pack_segment_duration_calculated ... ok [INFO] [stdout] test stream_packager::tests::test_pack_segment_empty_input ... ok [INFO] [stdout] test stream_packager::tests::test_pack_segment_keyframe_aligned_false_when_delta_first ... ok [INFO] [stdout] test stream_packager::tests::test_pack_segment_large_pts_difference ... ok [INFO] [stdout] test stream_packager::tests::test_file_segment_writer_write_and_read_back ... ok [INFO] [stdout] test stream_packager::tests::test_file_segment_writer_write_to_nonexistent_dir_fails ... ok [INFO] [stdout] test stream_packager::tests::test_flush_drains_pending_frames ... ok [INFO] [stdout] test stream_packager::tests::test_flush_twice_returns_none_second_time ... ok [INFO] [stdout] test stream_packager::tests::test_pack_segment_data_concatenated ... ok [INFO] [stdout] test stream_packager::tests::test_pack_segment_no_video_keyframe_alignment_false ... ok [INFO] [stdout] test stream_packager::tests::test_pack_segment_sequence_number_zero_by_default ... ok [INFO] [stdout] test stream_packager::tests::test_pack_segment_single_keyframe ... ok [INFO] [stdout] test stream_packager::tests::test_packager_config_default_values ... ok [INFO] [stdout] test stream_packager::tests::test_packager_segment_sequence_increments ... ok [INFO] [stdout] test stream_packager::tests::test_packager_forced_flush_when_over_max ... ok [INFO] [stdout] test stream_packager::tests::test_packager_segments_on_keyframe_after_target ... ok [INFO] [stdout] test stream_packager::tests::test_packager_no_segment_before_duration_exceeded ... ok [INFO] [stdout] test stream_health::tests::test_start_session_resets_rebuffer_duration ... ok [INFO] [stdout] test stream_packager::tests::test_stream_type_eq ... ok [INFO] [stdout] test stream_recorder::tests::test_dvr_window_default_is_bounded ... ok [INFO] [stdout] test stream_recorder::tests::test_empty_recorder ... ok [INFO] [stdout] test stream_recorder::tests::test_find_by_sequence_missing_returns_none ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_initial_state_is_idle ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_push_segment_accumulates_duration ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_max_segments_eviction ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_start_transitions_to_recording ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_stats_track_written_bytes ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_stop_without_start_fails ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_total_duration_after_stop ... ok [INFO] [stdout] test stream_recorder::tests::test_live_segments_returns_all_buffered ... ok [INFO] [stdout] test stream_recorder::tests::test_oldest_and_newest_timestamps ... ok [INFO] [stdout] test stream_recorder::tests::test_manual_trim_to_window ... ok [INFO] [stdout] test stream_recorder::tests::test_recorded_segment_end_timestamp ... ok [INFO] [stdout] test stream_recorder::tests::test_recording_config_segment_duration_clamped ... ok [INFO] [stdout] test stream_recorder::tests::test_recorded_segment_duration_secs ... ok [INFO] [stdout] test stream_recorder::tests::test_dvr_window_bounded ... ok [INFO] [stdout] test stream_recorder::tests::test_dvr_window_unlimited_is_not_bounded ... ok [INFO] [stdout] test stream_recorder::tests::test_find_by_sequence ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_double_start_fails ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_segment_rotation_on_duration_exceeded ... ok [INFO] [stdout] test stream_recorder::tests::test_live_recorder_stop_transitions_to_stopped ... ok [INFO] [stdout] test stream_health::tests::test_startup_time_measured ... ok [INFO] [stdout] test stream_recorder::tests::test_recording_config_segment_path_uses_index ... ok [INFO] [stdout] test stream_recorder::tests::test_push_segment_and_count ... ok [INFO] [stdout] test stream_recorder::tests::test_recorder_state_variants_are_distinct ... ok [INFO] [stdout] test stream_recorder::tests::test_recording_config_validate_empty_pattern_fails ... ok [INFO] [stdout] test stream_recorder::tests::test_recording_stats_record_drop ... ok [INFO] [stdout] test stream_recorder::tests::test_total_duration_ms_sums_all_segments ... ok [INFO] [stdout] test subtitle_track::tests::test_build_webvtt_empty_cues ... ok [INFO] [stdout] test subtitle_track::tests::test_build_webvtt_multiple_cues ... ok [INFO] [stdout] test subtitle_track::tests::test_cue_timestamps ... ok [INFO] [stdout] test subtitle_track::tests::test_cue_to_vtt_cue_with_id ... ok [INFO] [stdout] test subtitle_track::tests::test_cue_with_settings ... ok [INFO] [stdout] test subtitle_track::tests::test_default_track ... ok [INFO] [stdout] test subtitle_track::tests::test_duplicate_id_rejected ... ok [INFO] [stdout] test subtitle_track::tests::test_ext_x_media_forced ... ok [INFO] [stdout] test subtitle_track::tests::test_ext_x_media_uri ... ok [INFO] [stdout] test subtitle_track::tests::test_ext_x_media_type_subtitles ... ok [INFO] [stdout] test subtitle_track::tests::test_hls_ext_x_media_block ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_cues_sorted_by_start ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_add_and_flush_cue ... ok [INFO] [stdout] test subtitle_track::tests::test_ext_x_media_default_yes ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_flush_empty_include_empty ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_pending_count ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_segment_duration ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_start_advances ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_vtt_content ... ok [INFO] [stdout] test stream_recorder::tests::test_recording_config_validate_ok ... ok [INFO] [stdout] test subtitle_track::tests::test_remove_track ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_sequence_increments ... ok [INFO] [stdout] test stream_recorder::tests::test_recording_stats_record_segment ... ok [INFO] [stdout] test stream_recorder::tests::test_trim_to_window_evicts_old_segments ... ok [INFO] [stdout] test subtitle_track::tests::test_add_track_and_count ... ok [INFO] [stdout] test subtitle_track::tests::test_cue_duration_ms ... ok [INFO] [stdout] test stream_recorder::tests::test_unlimited_window_retains_all_segments ... ok [INFO] [stdout] test subtitle_track::tests::test_packager_flush_empty_none ... ok [INFO] [stdout] test subtitle_track::tests::test_set_default ... ok [INFO] [stdout] test throughput_abr::tests::test_clear_empties_window ... ok [INFO] [stdout] test throughput_abr::tests::test_add_measurement_stores ... ok [INFO] [stdout] test throughput_abr::tests::test_measurement_count_increases ... ok [INFO] [stdout] test throughput_abr::tests::test_harmonic_mean_empty ... ok [INFO] [stdout] test throughput_abr::tests::test_default_values ... ok [INFO] [stdout] test throughput_abr::tests::test_select_bitrate_empty_list ... ok [INFO] [stdout] test throughput_abr::tests::test_harmonic_mean_uniform ... ok [INFO] [stdout] test throughput_abr::tests::test_new_clamps_window_size_to_1 ... ok [INFO] [stdout] test subtitle_track::tests::test_cue_to_vtt_cue_no_id ... ok [INFO] [stdout] test throughput_abr::tests::test_sliding_window_eviction ... ok [INFO] [stdout] test throughput_abr::tests::test_select_bitrate_respects_safety_factor ... ok [INFO] [stdout] test throughput_abr::tests::test_measurement_zero_duration_returns_zero ... ok [INFO] [stdout] test subtitle_track::tests::test_select_track_exact_language ... ok [INFO] [stdout] test throughput_abr::tests::test_harmonic_mean_biased_low ... ok [INFO] [stdout] test throughput_abr::tests::test_select_bitrate_returns_lowest_when_too_low ... ok [INFO] [stdout] test subtitle_track::tests::test_select_track_prefix ... ok [INFO] [stdout] test throughput_abr::tests::test_add_measurement_evicts_oldest ... ok [INFO] [stdout] test throughput_abr::tests::test_select_bitrate_unsorted_input ... ok [INFO] [stdout] test throughput_abr::tests::test_measurement_throughput_kbps_basic ... ok [INFO] [stdout] test throughput_abr::tests::test_select_bitrate_picks_highest_sustainable ... ok [INFO] [stdout] test throughput_abr::tests::test_sustainable_kbps_empty ... ok [INFO] [stdout] test throughput_abr::tests::test_sustainable_kbps_equals_hm_times_factor ... ok [INFO] [stdout] test thumbnail_track::tests::test_auto_uri_format ... ok [INFO] [stdout] test thumbnail_track::tests::test_builder_empty_fails ... ok [INFO] [stdout] test thumbnail_track::tests::test_iframe_playlist_contains_extinf ... ok [INFO] [stdout] test thumbnail_track::tests::test_iframe_playlist_ends_with_endlist ... ok [INFO] [stdout] test thumbnail_track::tests::test_image_format_mime ... ok [INFO] [stdout] test thumbnail_track::tests::test_segment_duration_computed ... ok [INFO] [stderr] Doc-tests oximedia_stream [INFO] [stdout] test thumbnail_track::tests::test_vtt_storyboard_cue_count ... ok [INFO] [stdout] test thumbnail_track::tests::test_vtt_storyboard_header ... ok [INFO] [stdout] test thumbnail_track::tests::test_builder_produces_correct_segment_count ... ok [INFO] [stdout] test thumbnail_track::tests::test_iframe_playlist_header ... ok [INFO] [stdout] test thumbnail_track::tests::test_interval_ms_calculation ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 569 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test src/file_recorder.rs - file_recorder (line 11) - compile ... ok [INFO] [stdout] test src/throughput_abr.rs - throughput_abr (line 16) ... ok [INFO] [stdout] test src/cdn_upload.rs - cdn_upload (line 20) ... ok [INFO] [stdout] test src/retry.rs - retry (line 10) ... ok [INFO] [stdout] test src/dash_mpd_updater.rs - dash_mpd_updater (line 10) ... ok [INFO] [stdout] test src/prefetch_scheduler.rs - prefetch_scheduler (line 27) ... ok [INFO] [stdout] test src/segment_cache.rs - segment_cache::SegmentCache (line 66) ... ok [INFO] [stdout] test src/cdn_health.rs - cdn_health (line 23) ... ok [INFO] [stdout] test src/bola.rs - bola (line 19) ... ok [INFO] [stdout] test src/cmaf_sequencer.rs - cmaf_sequencer (line 13) ... ok [INFO] [stdout] test src/cmaf.rs - cmaf (line 42) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "30cd971b81eb78890e7ddc288a200eb67ec7986a268c3669d697ac87ed21d350", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "30cd971b81eb78890e7ddc288a200eb67ec7986a268c3669d697ac87ed21d350", kill_on_drop: false }` [INFO] [stdout] 30cd971b81eb78890e7ddc288a200eb67ec7986a268c3669d697ac87ed21d350