[INFO] fetching crate oximedia-playout 0.1.5...
[INFO] testing oximedia-playout-0.1.5 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate oximedia-playout 0.1.5 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate oximedia-playout 0.1.5
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate oximedia-playout 0.1.5
[INFO] tweaked toml for crates.io crate oximedia-playout 0.1.5 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate oximedia-playout 0.1.5 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oximedia-playout 0.1.5 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8a0c58b442defb42db4c16cfea9d84f61e737990c9d14fb5ed380324db69fe74
[INFO] running `Command { std: "docker" "start" "-a" "8a0c58b442defb42db4c16cfea9d84f61e737990c9d14fb5ed380324db69fe74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a0c58b442defb42db4c16cfea9d84f61e737990c9d14fb5ed380324db69fe74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a0c58b442defb42db4c16cfea9d84f61e737990c9d14fb5ed380324db69fe74", kill_on_drop: false }`
[INFO] [stdout] 8a0c58b442defb42db4c16cfea9d84f61e737990c9d14fb5ed380324db69fe74
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 33fa7c63ca7bcc1f01c0dcc206a4371834f5288fa9df4e90ec9243a36f9fa269
[INFO] running `Command { std: "docker" "start" "-a" "33fa7c63ca7bcc1f01c0dcc206a4371834f5288fa9df4e90ec9243a36f9fa269", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling oximedia-playout v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.44s
[INFO] running `Command { std: "docker" "inspect" "33fa7c63ca7bcc1f01c0dcc206a4371834f5288fa9df4e90ec9243a36f9fa269", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33fa7c63ca7bcc1f01c0dcc206a4371834f5288fa9df4e90ec9243a36f9fa269", kill_on_drop: false }`
[INFO] [stdout] 33fa7c63ca7bcc1f01c0dcc206a4371834f5288fa9df4e90ec9243a36f9fa269
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1f7b8390bf133ef873e0f9ce5963e3ef83ebdd842a71653e26b6a6daabb10287
[INFO] running `Command { std: "docker" "start" "-a" "1f7b8390bf133ef873e0f9ce5963e3ef83ebdd842a71653e26b6a6daabb10287", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling oximedia-playout v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 42.59s
[INFO] running `Command { std: "docker" "inspect" "1f7b8390bf133ef873e0f9ce5963e3ef83ebdd842a71653e26b6a6daabb10287", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f7b8390bf133ef873e0f9ce5963e3ef83ebdd842a71653e26b6a6daabb10287", kill_on_drop: false }`
[INFO] [stdout] 1f7b8390bf133ef873e0f9ce5963e3ef83ebdd842a71653e26b6a6daabb10287
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f51b8f8a02dd3ff773675ac619cc6c0f283a91b20317563823230028447a406a
[INFO] running `Command { std: "docker" "start" "-a" "f51b8f8a02dd3ff773675ac619cc6c0f283a91b20317563823230028447a406a", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_playout-6acabb6231017244)
[INFO] [stdout] 
[INFO] [stdout] running 720 tests
[INFO] [stdout] test ad_insertion::scte35_tests::test_build_ts_packets_continuity_counter_increments ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_build_ts_packets_first_has_pusi ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_build_ts_packets_each_is_188_bytes ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_build_ts_packets_sync_byte_0x47 ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_ad_insertion_error_display ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_build_ts_packets_pid_encoded ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_inject_into_empty_ts_vector ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_inject_into_ts_returns_count ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_inject_into_ts_inserts_at_front ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_serialize_out_of_network_false ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_serialize_out_of_network_true ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_inject_scte35_packets_have_correct_pid ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_serialize_starts_with_fc_table_id ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_serialize_returns_nonempty ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_serialize_splice_insert_has_splice_command_type_05 ... ok
[INFO] [stdout] test ad_insertion::scte35_tests::test_serialize_immediate_cue ... ok
[INFO] [stdout] test ad_insertion::tests::test_cancel_non_existent ... ok
[INFO] [stdout] test ad_insertion::tests::test_cancel_pending ... ok
[INFO] [stdout] test ad_insertion::tests::test_advance_activates ... ok
[INFO] [stdout] test ad_insertion::tests::test_advance_completes_auto_return ... ok
[INFO] [stdout] test ad_insertion::tests::test_current_pts_accessor ... ok
[INFO] [stdout] test ad_insertion::tests::test_default_config ... ok
[INFO] [stdout] test ad_insertion::tests::test_next_pending ... ok
[INFO] [stdout] test ad_insertion::tests::test_purge_finished ... ok
[INFO] [stdout] test ad_insertion::tests::test_queue_full ... ok
[INFO] [stdout] test ad_insertion::tests::test_reject_past_pts ... ok
[INFO] [stdout] test ad_insertion::tests::test_reject_too_close ... ok
[INFO] [stdout] test api::tests::test_api_request_serialization ... ok
[INFO] [stdout] test api::tests::test_api_client_creation ... ok
[INFO] [stdout] test api::tests::test_api_config_default ... ok
[INFO] [stdout] test api::tests::test_channel_info_creation ... ok
[INFO] [stdout] test api::tests::test_channels_response_creation ... ok
[INFO] [stdout] test api::tests::test_api_response_serialization ... ok
[INFO] [stdout] test api::tests::test_content_info_creation ... ok
[INFO] [stdout] test api::tests::test_content_filter_creation ... ok
[INFO] [stdout] test api::tests::test_api_server_creation ... ok
[INFO] [stdout] test api::tests::test_health_metrics_creation ... ok
[INFO] [stdout] test api::tests::test_playlist_response_creation ... ok
[INFO] [stdout] test asrun::tests::test_asrun_config_default ... ok
[INFO] [stdout] test api::tests::test_status_response_creation ... ok
[INFO] [stdout] test api::tests::test_websocket_message_serialization ... ok
[INFO] [stdout] test asrun::tests::test_asrun_entry_creation ... ok
[INFO] [stdout] test asrun::tests::test_audio_levels ... ok
[INFO] [stdout] test asrun::tests::test_playout_status ... ok
[INFO] [stdout] test asrun::tests::test_export_format_equality ... ok
[INFO] [stdout] test asrun::tests::test_technical_details ... ok
[INFO] [stdout] test automation::tests::test_automation_config_default ... ok
[INFO] [stdout] test asrun::tests::test_video_quality ... ok
[INFO] [stdout] test asrun::tests::test_segmentation_data ... ok
[INFO] [stdout] test automation::tests::test_automation_rule_add_remove ... ok
[INFO] [stdout] test automation::tests::test_break_optimizer ... ok
[INFO] [stdout] test automation::tests::test_commercial_spot_creation ... ok
[INFO] [stdout] test automation::tests::test_evaluation_context_default ... ok
[INFO] [stdout] test automation::tests::test_insert_position_equality ... ok
[INFO] [stdout] test automation::tests::test_optimization_status_equality ... ok
[INFO] [stdout] test automation::tests::test_fill_strategy_calculation ... ok
[INFO] [stdout] test automation::tests::test_script_executor_creation ... ok
[INFO] [stdout] test automation::tests::test_notification_severity_equality ... ok
[INFO] [stdout] test automation::tests::test_time_range_condition ... ok
[INFO] [stdout] test automation::tests::test_smart_scheduler_creation ... ok
[INFO] [stdout] test asrun::tests::test_spot_verifier ... ok
[INFO] [stdout] test automation::tests::test_break_optimizer_needs_filler ... ok
[INFO] [stdout] test branding::tests::test_active_logo_missing_asset_returns_none ... ok
[INFO] [stdout] test branding::tests::test_active_logo_none_initially ... ok
[INFO] [stdout] test branding::tests::test_asset_has_fixed_duration_nonzero ... ok
[INFO] [stdout] test branding::tests::test_asset_is_animated_with_duration ... ok
[INFO] [stdout] test branding::tests::test_asset_no_fixed_duration_when_none ... ok
[INFO] [stdout] test branding::tests::test_asset_no_fixed_duration_when_zero ... ok
[INFO] [stdout] test branding::tests::test_asset_not_animated_when_no_duration ... ok
[INFO] [stdout] test branding::tests::test_assets_of_type_filtered ... ok
[INFO] [stdout] test ad_insertion::tests::test_all_events_returns_all ... ok
[INFO] [stdout] test branding::tests::test_channel_logo_is_persistent ... ok
[INFO] [stdout] test ad_insertion::tests::test_schedule_and_count ... ok
[INFO] [stdout] test branding::tests::test_endboard_is_not_persistent ... ok
[INFO] [stdout] test branding::tests::test_bug_is_persistent ... ok
[INFO] [stdout] test branding::tests::test_schedule_add_asset_increases_count ... ok
[INFO] [stdout] test branding::tests::test_schedule_empty_asset_count ... ok
[INFO] [stdout] test bxf::tests::test_asrun_status_equality ... ok
[INFO] [stdout] test branding::tests::test_transition_is_not_persistent ... ok
[INFO] [stdout] test bxf::tests::test_bxf_event_creation ... ok
[INFO] [stdout] test bxf::tests::test_bxf_config_default ... ok
[INFO] [stdout] test branding::tests::test_watermark_is_persistent ... ok
[INFO] [stdout] test bxf::tests::test_asrun_bxf_generation ... ok
[INFO] [stdout] test bxf::tests::test_bxf_importer_creation ... ok
[INFO] [stdout] test bxf::tests::test_bxf_event_type_equality ... ok
[INFO] [stdout] test bxf::tests::test_bxf_exporter_creation ... ok
[INFO] [stdout] test bxf::tests::test_bxf_xml_generation ... ok
[INFO] [stdout] test bxf::tests::test_schedule_validation_empty ... ok
[INFO] [stdout] test bxf::tests::test_schedule_validation_missing_house_number ... ok
[INFO] [stdout] test bxf::tests::test_validation_severity_equality ... ok
[INFO] [stdout] test catchup::tests::test_catchup_config_defaults ... ok
[INFO] [stdout] test catchup::tests::test_catchup_manager_begin_startover ... ok
[INFO] [stdout] test catchup::tests::test_catchup_manager_register_and_start ... ok
[INFO] [stdout] test catchup::tests::test_catchup_manager_session_mutation ... ok
[INFO] [stdout] test catchup::tests::test_catchup_manager_expire_recordings ... ok
[INFO] [stdout] test catchup::tests::test_catchup_manager_startover_not_completed ... ok
[INFO] [stdout] test catchup::tests::test_catchup_manager_startover_not_found ... ok
[INFO] [stdout] test catchup::tests::test_catchup_manager_complete_recording ... ok
[INFO] [stdout] test branding::tests::test_set_and_get_active_logo ... ok
[INFO] [stdout] test bxf::tests::test_xml_escaping ... ok
[INFO] [stdout] test catchup::tests::test_recording_duration_secs ... ok
[INFO] [stdout] test catchup::tests::test_recording_expiry ... ok
[INFO] [stdout] test catchup::tests::test_recording_not_expired ... ok
[INFO] [stdout] test catchup::tests::test_recording_state_terminal ... ok
[INFO] [stdout] test api::tests::test_api_client_request ... ok
[INFO] [stdout] test cg::tests::test_command_log_grows ... ok
[INFO] [stdout] test cg::tests::test_element_layer_default_zero ... ok
[INFO] [stdout] test cg::tests::test_controller_add_and_count ... ok
[INFO] [stdout] test cg::tests::test_element_missing_field_is_none ... ok
[INFO] [stdout] test cg::tests::test_element_new_hidden ... ok
[INFO] [stdout] test catchup::tests::test_startover_session_advance_and_pause ... ok
[INFO] [stdout] test cg::tests::test_execute_out_hides_element ... ok
[INFO] [stdout] test cg::tests::test_execute_clear_hides_all ... ok
[INFO] [stdout] test cg::tests::test_element_show_hide ... ok
[INFO] [stdout] test cg::tests::test_execute_update_changes_field ... ok
[INFO] [stdout] test cg::tests::test_execute_missing_element_returns_err ... ok
[INFO] [stdout] test cg::tests::test_execute_take_makes_visible ... ok
[INFO] [stdout] test channel::tests::test_channel_group_add_remove ... ok
[INFO] [stdout] test channel::tests::test_channel_branding_default ... ok
[INFO] [stdout] test channel::tests::test_channel_group_creation ... ok
[INFO] [stdout] test channel::tests::test_channel_output_creation ... ok
[INFO] [stdout] test channel::tests::test_channel_creation ... ok
[INFO] [stdout] test channel::tests::test_channel_manager_add_remove ... ok
[INFO] [stdout] test channel::tests::test_channel_start_stop ... ok
[INFO] [stdout] test channel::tests::test_channel_group_duplicate_add ... ok
[INFO] [stdout] test channel::tests::test_channel_manager_creation ... ok
[INFO] [stdout] test channel::tests::test_channel_state_equality ... ok
[INFO] [stdout] test channel::tests::test_channel_manager_statistics ... ok
[INFO] [stdout] test channel::tests::test_channel_playlist_loading ... ok
[INFO] [stdout] test channel::tests::test_logo_position_equality ... ok
[INFO] [stdout] test channel::tests::test_output_type_equality ... ok
[INFO] [stdout] test channel_config::tests::channel_config_dimensions ... ok
[INFO] [stdout] test channel_config::tests::channel_config_frame_interval ... ok
[INFO] [stdout] test channel::tests::test_channel_pause_resume ... ok
[INFO] [stdout] test channel_config::tests::channel_config_is_hd_false_for_sd ... ok
[INFO] [stdout] test channel_config::tests::channel_config_is_hd_true ... ok
[INFO] [stdout] test channel_config::tests::channel_config_set_active ... ok
[INFO] [stdout] test channel_config::tests::format_aspect_ratio_hd ... ok
[INFO] [stdout] test channel_config::tests::format_aspect_ratio_sd ... ok
[INFO] [stdout] test channel_config::tests::format_hd_dimensions ... ok
[INFO] [stdout] test channel_config::tests::format_is_hd_or_better ... ok
[INFO] [stdout] test channel_config::tests::format_pixel_count ... ok
[INFO] [stdout] test channel_config::tests::format_sd_dimensions ... ok
[INFO] [stdout] test channel_config::tests::format_uhd_dimensions ... ok
[INFO] [stdout] test channel_config::tests::store_find ... ok
[INFO] [stdout] test channel_config::tests::store_active_channels_filter ... ok
[INFO] [stdout] test channel_config::tests::store_add_and_count ... ok
[INFO] [stdout] test channel_config::tests::store_hd_channels_filter ... ok
[INFO] [stdout] test channel_config::tests::store_remove ... ok
[INFO] [stdout] test channel_config::tests::store_replace_existing ... ok
[INFO] [stdout] test clip_store::tests::test_clip_duration_custom_range ... ok
[INFO] [stdout] test clip_store::tests::test_clip_duration_frames ... ok
[INFO] [stdout] test clip_store::tests::test_clip_ingest_stores_checksum ... ok
[INFO] [stdout] test clip_store::tests::test_clip_is_valid ... ok
[INFO] [stdout] test clip_store::tests::test_clip_verify_unverified ... ok
[INFO] [stdout] test clip_store::tests::test_clip_no_tracks_invalid ... ok
[INFO] [stdout] test cg::tests::test_element_set_get_field ... ok
[INFO] [stdout] test clip_store::tests::test_clip_new_full_range ... ok
[INFO] [stdout] test clip_store::tests::test_clip_verify_valid ... ok
[INFO] [stdout] test clip_store::tests::test_clip_verify_corrupted ... ok
[INFO] [stdout] test catchup::tests::test_startover_session_complete ... ok
[INFO] [stdout] test clip_store::tests::test_sha256_known_vector ... ok
[INFO] [stdout] test clip_store::tests::test_clip_zero_frames_invalid ... ok
[INFO] [stdout] test clip_store::tests::test_store_find_by_name ... ok
[INFO] [stdout] test clip_store::tests::test_store_find_by_id ... ok
[INFO] [stdout] test clip_store::tests::test_sha256_empty_input ... ok
[INFO] [stdout] test clip_store::tests::test_store_add_and_count ... ok
[INFO] [stdout] test clip_store::tests::test_store_remove_nonexistent_returns_false ... ok
[INFO] [stdout] test clip_store::tests::test_store_ingest_method ... ok
[INFO] [stdout] test clip_store::tests::test_store_total_duration_frames ... ok
[INFO] [stdout] test clip_store::tests::test_store_remove_existing ... ok
[INFO] [stdout] test clip_store::tests::test_store_verify_not_found ... ok
[INFO] [stdout] test clip_store::tests::test_store_verify ... ok
[INFO] [stdout] test clip_store::tests::test_store_verify_all ... ok
[INFO] [stdout] test compliance_ingest::tests::test_compliance_format_extension ... ok
[INFO] [stdout] test compliance_ingest::tests::test_compliance_recording_anomaly_count ... ok
[INFO] [stdout] test compliance_ingest::tests::test_compliance_recording_arm_start_stop ... ok
[INFO] [stdout] test compliance_ingest::tests::test_coordinator_active_deliveries ... ok
[INFO] [stdout] test compliance_ingest::tests::test_coordinator_register_and_count ... ok
[INFO] [stdout] test compliance_ingest::tests::test_delivery_job_complete ... ok
[INFO] [stdout] test compliance_ingest::tests::test_coordinator_total_bytes ... ok
[INFO] [stdout] test compliance_ingest::tests::test_signal_measurement_verify_lost ... ok
[INFO] [stdout] test compliance_ingest::tests::test_compliance_recording_duration ... ok
[INFO] [stdout] test content::tests::test_audio_metadata_creation ... ok
[INFO] [stdout] test compliance_ingest::tests::test_delivery_job_retry_logic ... ok
[INFO] [stdout] test compliance_ingest::tests::test_delivery_job_progress ... ok
[INFO] [stdout] test compliance_ingest::tests::test_signal_measurement_verify_out_of_spec_video ... ok
[INFO] [stdout] test compliance_ingest::tests::test_signal_measurement_verify_valid ... ok
[INFO] [stdout] test compliance_ingest::tests::test_signal_status_is_ok ... ok
[INFO] [stdout] test content::tests::test_availability_status ... ok
[INFO] [stdout] test content::tests::test_qc_issue_creation ... ok
[INFO] [stdout] test content::tests::test_qc_severity_ordering ... ok
[INFO] [stdout] test content::tests::test_content_type_equality ... ok
[INFO] [stdout] test content::tests::test_content_config_default ... ok
[INFO] [stdout] test content::tests::test_proxy_settings_default ... ok
[INFO] [stdout] test content::tests::test_video_metadata_creation ... ok
[INFO] [stdout] test device::tests::test_device_config_default ... ok
[INFO] [stdout] test content::tests::test_qc_status_equality ... ok
[INFO] [stdout] test content::tests::test_thumbnail_settings_default ... ok
[INFO] [stdout] test device::tests::test_device_manager_init_vdcp ... ok
[INFO] [stdout] test device::tests::test_playback_state_equality ... ok
[INFO] [stdout] test device::tests::test_router_controller ... ok
[INFO] [stdout] test device::tests::test_gpio_gpi_update ... ok
[INFO] [stdout] test device::tests::test_device_manager_initialization ... ok
[INFO] [stdout] test device::tests::test_router_level_equality ... ok
[INFO] [stdout] test device::tests::test_sony_encode_play_command ... ok
[INFO] [stdout] test content::tests::test_content_manager_creation ... ok
[INFO] [stdout] test content::tests::test_content_item_operations ... ok
[INFO] [stdout] test device::tests::test_gpio_controller ... ok
[INFO] [stdout] test device::tests::test_tally_state_values ... ok
[INFO] [stdout] test device::tests::test_vdcp_encode_play_command ... ok
[INFO] [stdout] test device::tests::test_vdcp_encode_stop_command ... ok
[INFO] [stdout] test event_log::tests::category_is_operator_driven ... ok
[INFO] [stdout] test event_log::tests::event_is_significant ... ok
[INFO] [stdout] test device::tests::test_tally_controller ... ok
[INFO] [stdout] test event_log::tests::log_append_increments_id ... ok
[INFO] [stdout] test event_log::tests::log_by_severity ... ok
[INFO] [stdout] test event_log::tests::log_capacity_respected ... ok
[INFO] [stdout] test event_log::tests::log_clear ... ok
[INFO] [stdout] test event_log::tests::log_has_critical ... ok
[INFO] [stdout] test event_log::tests::log_in_window ... ok
[INFO] [stdout] test event_log::tests::log_last_n ... ok
[INFO] [stdout] test event_log::tests::log_len_and_is_empty ... ok
[INFO] [stdout] test event_log::tests::severity_is_significant ... ok
[INFO] [stdout] test event_log::tests::severity_ordering ... ok
[INFO] [stdout] test event_log::tests::severity_tags ... ok
[INFO] [stdout] test failover::tests::test_cascade_add_remove_source ... ok
[INFO] [stdout] test failover::tests::test_cascade_all_failed_stays_on_last ... ok
[INFO] [stdout] test failover::tests::test_cascade_auto_recover_upward ... ok
[INFO] [stdout] test failover::tests::test_cascade_empty_sources_error ... ok
[INFO] [stdout] test failover::tests::test_cascade_failover_on_primary_failure ... ok
[INFO] [stdout] test failover::tests::test_cascade_force_switch ... ok
[INFO] [stdout] test failover::tests::test_cascade_force_switch_out_of_range ... ok
[INFO] [stdout] test failover::tests::test_cascade_multi_level_failover ... ok
[INFO] [stdout] test failover::tests::test_cascade_creation ... ok
[INFO] [stdout] test failover::tests::test_cascade_skip_failed_to_healthy ... ok
[INFO] [stdout] test failover::tests::test_cascade_no_auto_recover_when_disabled ... ok
[INFO] [stdout] test failover::tests::test_cascade_degraded_source_usable ... ok
[INFO] [stdout] test failover::tests::test_failover_mode_equality ... ok
[INFO] [stdout] test failover::tests::test_health_status_default ... ok
[INFO] [stdout] test failover::tests::test_failover_config_default ... ok
[INFO] [stdout] test failover::tests::test_failover_manager_primary ... ok
[INFO] [stdout] test failover::tests::test_manual_failover ... ok
[INFO] [stdout] test failover::tests::test_network_failover_creation ... ok
[INFO] [stdout] test failover::tests::test_mark_failed ... ok
[INFO] [stdout] test failover::tests::test_failover_manager_secondary ... ok
[INFO] [stdout] test failover::tests::test_network_failover_no_backup ... ok
[INFO] [stdout] test failover::tests::test_network_failover_recovery ... ok
[INFO] [stdout] test failover::tests::test_network_failover_to_backup ... ok
[INFO] [stdout] test failover::tests::test_server_role_equality ... ok
[INFO] [stdout] test failover::tests::test_server_state_equality ... ok
[INFO] [stdout] test failover::tests::test_peer_health_update ... ok
[INFO] [stdout] test failover::tests::test_source_health_update_out_of_range ... ok
[INFO] [stdout] test frame_buffer::tests::test_default_config ... ok
[INFO] [stdout] test frame_buffer::tests::test_fifo_order ... ok
[INFO] [stdout] test failover::tests::test_sync_manager ... ok
[INFO] [stdout] test frame_buffer::tests::test_flush_clears_last_frame_for_recovery ... ok
[INFO] [stdout] test frame_buffer::tests::test_flush_resets_pre_roll ... ok
[INFO] [stdout] test frame_buffer::tests::test_is_full ... ok
[INFO] [stdout] test frame_buffer::tests::test_overflow ... ok
[INFO] [stdout] test frame_buffer::tests::test_peek_does_not_remove ... ok
[INFO] [stdout] test frame_buffer::tests::test_pixel_format_bytes_per_pixel ... ok
[INFO] [stdout] test frame_buffer::tests::test_pre_roll ... ok
[INFO] [stdout] test frame_buffer::tests::test_push_pop_single ... ok
[INFO] [stdout] test frame_buffer::tests::test_fill_ratio ... ok
[INFO] [stdout] test frame_buffer::tests::test_fill_ratio_zero_capacity ... ok
[INFO] [stdout] test frame_buffer::tests::test_recovery_black_frame ... ok
[INFO] [stdout] test frame_buffer::tests::test_recovery_multiple_underruns ... ok
[INFO] [stdout] test frame_buffer::tests::test_recovery_none_returns_none ... ok
[INFO] [stdout] test frame_buffer::tests::test_recovery_preserves_dimensions ... ok
[INFO] [stdout] test frame_buffer::tests::test_recovery_repeat_last ... ok
[INFO] [stdout] test frame_buffer::tests::test_recovery_repeat_last_no_prior_frame ... ok
[INFO] [stdout] test frame_buffer::tests::test_recovery_slate_frame ... ok
[INFO] [stdout] test frame_buffer::tests::test_stats_counters ... ok
[INFO] [stdout] test frame_buffer::tests::test_underrun ... ok
[INFO] [stdout] test frame_trim::tests::test_config_duration_frames ... ok
[INFO] [stdout] test frame_trim::tests::test_config_equal_in_out_returns_error ... ok
[INFO] [stdout] test frame_trim::tests::test_config_fps_as_f64_25 ... ok
[INFO] [stdout] test frame_trim::tests::test_config_fps_as_f64_2997 ... ok
[INFO] [stdout] test frame_trim::tests::test_config_in_after_out_returns_error ... ok
[INFO] [stdout] test frame_trim::tests::test_config_in_point_pts_us ... ok
[INFO] [stdout] test frame_trim::tests::test_config_new_valid ... ok
[INFO] [stdout] test frame_trim::tests::test_config_out_point_pts_us ... ok
[INFO] [stdout] test frame_trim::tests::test_config_zero_fps_den_returns_error ... ok
[INFO] [stdout] test frame_trim::tests::test_config_zero_fps_num_returns_error ... ok
[INFO] [stdout] test frame_trim::tests::test_from_timecode_25fps_roundtrip ... ok
[INFO] [stdout] test frame_trim::tests::test_from_timecode_30fps_roundtrip ... ok
[INFO] [stdout] test frame_trim::tests::test_from_timecode_invalid_returns_error ... ok
[INFO] [stdout] test frame_trim::tests::test_nearest_keyframe_after ... ok
[INFO] [stdout] test frame_trim::tests::test_nearest_keyframe_after_none ... ok
[INFO] [stdout] test frame_trim::tests::test_segment_add_frame_increments_count ... ok
[INFO] [stdout] test frame_trim::tests::test_nearest_keyframe_before_at_keyframe ... ok
[INFO] [stdout] test frame_trim::tests::test_nearest_keyframe_before ... ok
[INFO] [stdout] test frame_trim::tests::test_segment_duration_us ... ok
[INFO] [stdout] test frame_trim::tests::test_timecode_25fps_one_minute ... ok
[INFO] [stdout] test frame_trim::tests::test_timecode_25fps_zero ... ok
[INFO] [stdout] test frame_trim::tests::test_timecode_2997_uses_semicolon ... ok
[INFO] [stdout] test frame_trim::tests::test_timecode_30fps_last_frame_of_second ... ok
[INFO] [stdout] test frame_trim::tests::test_timecode_25fps_one_second ... ok
[INFO] [stdout] test frame_trim::tests::test_timecode_30fps_one_hour ... ok
[INFO] [stdout] test frame_trim::tests::test_segment_pts_increments_correctly ... ok
[INFO] [stdout] test frame_trim::tests::test_timecode_5994_uses_semicolon ... ok
[INFO] [stdout] test frame_trim::tests::test_trim_basic ... ok
[INFO] [stdout] test frame_trim::tests::test_trim_duration_us ... ok
[INFO] [stdout] test frame_trim::tests::test_trim_empty_segment ... ok
[INFO] [stdout] test frame_trim::tests::test_trim_out_of_range_in_point ... ok
[INFO] [stdout] test frame_trim::tests::test_trim_out_of_range_out_point ... ok
[INFO] [stdout] test frame_trim::tests::test_trim_re_indexes_frames ... ok
[INFO] [stdout] test frame_trim::tests::test_trim_report_basic ... ok
[INFO] [stdout] test frame_trim::tests::test_trim_report_size_bytes ... ok
[INFO] [stdout] test gap_filler::tests::test_detect_gaps_no_items ... ok
[INFO] [stdout] test gap_filler::tests::test_detect_gaps_with_items ... ok
[INFO] [stdout] test gap_filler::tests::test_effective_priority ... ok
[INFO] [stdout] test gap_filler::tests::test_filler_clip_available ... ok
[INFO] [stdout] test gap_filler::tests::test_filler_strategy_display ... ok
[INFO] [stdout] test gap_filler::tests::test_gap_display ... ok
[INFO] [stdout] test gap_filler::tests::test_gap_duration ... ok
[INFO] [stdout] test gap_filler::tests::test_plan_loop_single ... ok
[INFO] [stdout] test gap_filler::tests::test_plan_pool_rotation ... ok
[INFO] [stdout] test gap_filler::tests::test_plan_short_gap_ignored ... ok
[INFO] [stdout] test gap_filler::tests::test_plan_technical_fill ... ok
[INFO] [stdout] test gap_filler::tests::test_pool_mark_used ... ok
[INFO] [stdout] test gap_filler::tests::test_pool_reset_daily ... ok
[INFO] [stdout] test gap_filler::tests::test_pool_select_best ... ok
[INFO] [stdout] test gap_filler::tests::test_pool_select_longest ... ok
[INFO] [stdout] test graphics::tests::test_animation_curve ... ok
[INFO] [stdout] test graphics::tests::test_color ... ok
[INFO] [stdout] test graphics::tests::test_graphics_engine ... ok
[INFO] [stdout] test graphics::tests::test_graphics_layer_logo ... ok
[INFO] [stdout] test graphics::tests::test_graphics_layer_ticker ... ok
[INFO] [stdout] test graphics::tests::test_layer_visibility ... ok
[INFO] [stdout] test graphics::tests::test_position ... ok
[INFO] [stdout] test graphics::tests::test_z_order ... ok
[INFO] [stdout] test highlight_automation::tests::test_clip_duration_frames ... ok
[INFO] [stdout] test highlight_automation::tests::test_clip_duration_frames_zero_when_out_before_in ... ok
[INFO] [stdout] test highlight_automation::tests::test_clip_is_short_false ... ok
[INFO] [stdout] test highlight_automation::tests::test_clip_is_short_true ... ok
[INFO] [stdout] test highlight_automation::tests::test_engine_add_highlight_returns_id ... ok
[INFO] [stdout] test highlight_automation::tests::test_engine_add_highlight_too_short_returns_none ... ok
[INFO] [stdout] test highlight_automation::tests::test_engine_clips_by_trigger ... ok
[INFO] [stdout] test highlight_automation::tests::test_bookmark_is_not_automatic ... ok
[INFO] [stdout] test highlight_automation::tests::test_engine_clips_by_trigger_empty ... ok
[INFO] [stdout] test highlight_automation::tests::test_engine_recent_clips_count ... ok
[INFO] [stdout] test highlight_automation::tests::test_engine_recent_clips_exceeds_total ... ok
[INFO] [stdout] test highlight_automation::tests::test_keyword_detect_is_automatic ... ok
[INFO] [stdout] test highlight_automation::tests::test_manual_is_not_automatic ... ok
[INFO] [stdout] test highlight_automation::tests::test_sports_score_is_automatic ... ok
[INFO] [stdout] test highlight_automation::tests::test_time_based_is_automatic ... ok
[INFO] [stdout] test ingest::tests::test_activate_already_active_err ... ok
[INFO] [stdout] test ingest::tests::test_activate_source ... ok
[INFO] [stdout] test ingest::tests::test_activate_missing_source_err ... ok
[INFO] [stdout] test ingest::tests::test_ingest_stats_empty ... ok
[INFO] [stdout] test ingest::tests::test_deactivate_source ... ok
[INFO] [stdout] test ingest::tests::test_deactivate_already_inactive_err ... ok
[INFO] [stdout] test ingest::tests::test_ingest_stats_with_active_source ... ok
[INFO] [stdout] test ingest::tests::test_protocol_display ... ok
[INFO] [stdout] test ingest::tests::test_source_by_id_found ... ok
[INFO] [stdout] test ingest::tests::test_manager_add_and_count ... ok
[INFO] [stdout] test ingest::tests::test_source_by_id_not_found ... ok
[INFO] [stdout] test media_router_playout::tests::test_active_count ... ok
[INFO] [stdout] test ingest::tests::test_source_new_inactive ... ok
[INFO] [stdout] test media_router_playout::tests::test_activate_route ... ok
[INFO] [stdout] test media_router_playout::tests::test_add_target_count ... ok
[INFO] [stdout] test media_router_playout::tests::test_deactivate_all ... ok
[INFO] [stdout] test ingest::tests::test_source_is_live_requires_bitrate ... ok
[INFO] [stdout] test media_router_playout::tests::test_new_route_is_inactive ... ok
[INFO] [stdout] test media_router_playout::tests::test_not_found_error ... ok
[INFO] [stdout] test media_router_playout::tests::test_deactivate_route ... ok
[INFO] [stdout] test media_router_playout::tests::test_fault_no_backup ... ok
[INFO] [stdout] test media_router_playout::tests::test_fault_with_backup_switches_source ... ok
[INFO] [stdout] test media_router_playout::tests::test_route_target_address ... ok
[INFO] [stdout] test media_router_playout::tests::test_route_names_sorted ... ok
[INFO] [stdout] test media_router_playout::tests::test_route_target_kind ... ok
[INFO] [stdout] test media_router_playout::tests::test_router_add_and_get ... ok
[INFO] [stdout] test media_router_playout::tests::test_router_remove_active_fails ... ok
[INFO] [stdout] test monitoring::tests::test_alert_severity_ordering ... ok
[INFO] [stdout] test media_router_playout::tests::test_router_remove_inactive ... ok
[INFO] [stdout] test monitoring::tests::test_alert_system ... ok
[INFO] [stdout] test monitoring::tests::test_dashboard_data ... ok
[INFO] [stdout] test monitoring::tests::test_audio_meters ... ok
[INFO] [stdout] test monitoring::tests::test_health_check ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_gate_empty_block ... ok
[INFO] [stdout] test media_router_playout::tests::test_router_duplicate_rejected ... ok
[INFO] [stdout] test highlight_automation::tests::test_engine_ids_increment ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_compliance_passing ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_gate_creation ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_gate_true_peak ... ok
[INFO] [stdout] test monitoring::tests::test_metrics_history ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_gate_silence ... ok
[INFO] [stdout] test monitoring::tests::test_ms_to_lufs_roundtrip ... ok
[INFO] [stdout] test monitoring::tests::test_ms_to_lufs_zero ... ok
[INFO] [stdout] test monitoring::tests::test_next_up_queue ... ok
[INFO] [stdout] test monitoring::tests::test_status_update ... ok
[INFO] [stdout] test output::tests::test_ndi_settings_default ... ok
[INFO] [stdout] test output::tests::test_output_config ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_gate_integrated_gating ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_compliance_peak_violation ... ok
[INFO] [stdout] test output::tests::test_output_lifecycle ... ok
[INFO] [stdout] test output::tests::test_output_stats ... ok
[INFO] [stdout] test output::tests::test_rtmp_settings_default ... ok
[INFO] [stdout] test output::tests::test_output_manager ... ok
[INFO] [stdout] test monitoring::tests::test_monitor_creation ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_gate_reset ... ok
[INFO] [stdout] test output::tests::test_srt_settings_default ... ok
[INFO] [stdout] test output_router::tests::active_destinations_list ... ok
[INFO] [stdout] test output_router::tests::new_destination_is_inactive ... ok
[INFO] [stdout] test output_router::tests::output_kind_is_network ... ok
[INFO] [stdout] test output_router::tests::output_status_is_passing ... ok
[INFO] [stdout] test output_router::tests::remove_destination_removes_routes ... ok
[INFO] [stdout] test output_router::tests::remove_nonexistent_destination_returns_false ... ok
[INFO] [stdout] test output_router::tests::resolve_returns_destination_name ... ok
[INFO] [stdout] test output_router::tests::resolve_unrouted_source_returns_none ... ok
[INFO] [stdout] test output_router::tests::resolve_with_failover_returns_backup_when_primary_faulted ... ok
[INFO] [stdout] test output_router::tests::route_replaces_existing_for_same_source ... ok
[INFO] [stdout] test output_router::tests::set_status_updates_destination ... ok
[INFO] [stdout] test playback::tests::test_buffer_manager ... ok
[INFO] [stdout] test playback::tests::test_clock_state ... ok
[INFO] [stdout] test playback::tests::test_engine_lifecycle ... ok
[INFO] [stdout] test playback::tests::test_fallback_handler ... ok
[INFO] [stdout] test playback::tests::test_frame_buffer ... ok
[INFO] [stdout] test playback::tests::test_genlock_sync ... ok
[INFO] [stdout] test playback::tests::test_playback_config ... ok
[INFO] [stdout] test playback::tests::test_playback_stats ... ok
[INFO] [stdout] test playlist::tests::test_ad_marker ... ok
[INFO] [stdout] test playlist::tests::test_add_remove_items ... ok
[INFO] [stdout] test playlist::tests::test_effective_duration ... ok
[INFO] [stdout] test playlist::tests::test_m3u8_parsing ... ok
[INFO] [stdout] test playlist::tests::test_move_item ... ok
[INFO] [stdout] test playlist::tests::test_next_item_loop ... ok
[INFO] [stdout] test playlist::tests::test_playlist_creation ... ok
[INFO] [stdout] test playlist::tests::test_playlist_manager ... ok
[INFO] [stdout] test playlist_ingest::tests::format_extension ... ok
[INFO] [stdout] test playlist_ingest::tests::format_from_extension_known ... ok
[INFO] [stdout] test playlist_ingest::tests::format_from_extension_unknown ... ok
[INFO] [stdout] test playlist_ingest::tests::format_is_container ... ok
[INFO] [stdout] test playlist_ingest::tests::format_supports_metadata_mxf ... ok
[INFO] [stdout] test playlist_ingest::tests::ingest_add_and_count ... ok
[INFO] [stdout] test playlist_ingest::tests::ingest_count_by_format ... ok
[INFO] [stdout] test playlist_ingest::tests::ingest_find_item ... ok
[INFO] [stdout] test playlist_ingest::tests::ingest_remove_item ... ok
[INFO] [stdout] test playlist_ingest::tests::ingest_total_clip_duration ... ok
[INFO] [stdout] test output_router::tests::add_and_look_up_destination ... ok
[INFO] [stdout] test playlist_ingest::tests::ingest_validate_all_valid ... ok
[INFO] [stdout] test output_router::tests::destination_with_backup ... ok
[INFO] [stdout] test playlist_ingest::tests::ingest_validate_catches_invalid ... ok
[INFO] [stdout] test playlist_ingest::tests::ingest_validated_count ... ok
[INFO] [stdout] test playlist_ingest::tests::item_clip_duration_no_out_point ... ok
[INFO] [stdout] test playlist_ingest::tests::item_is_valid_basic ... ok
[INFO] [stdout] test playlist_ingest::tests::item_clip_duration_with_points ... ok
[INFO] [stdout] test playlist_ingest::tests::item_is_invalid_bad_points ... ok
[INFO] [stdout] test playlist_ingest::tests::item_is_valid_with_good_points ... ok
[INFO] [stdout] test playout_log::tests::test_append_with_meta ... ok
[INFO] [stdout] test playlist_ingest::tests::item_mark_validated ... ok
[INFO] [stdout] test playlist_ingest::tests::item_with_title ... ok
[INFO] [stdout] test playout_log::tests::test_count ... ok
[INFO] [stdout] test playout_log::tests::test_empty_log_summary ... ok
[INFO] [stdout] test playout_log::tests::test_clear ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_gate_tone ... ok
[INFO] [stdout] test playout_log::tests::test_error_rate ... ok
[INFO] [stdout] test playout_log::tests::test_log_append ... ok
[INFO] [stdout] test playout_log::tests::test_entry_display ... ok
[INFO] [stdout] test playout_log::tests::test_log_ring_buffer ... ok
[INFO] [stdout] test playout_log::tests::test_query_by_event_type ... ok
[INFO] [stdout] test playout_log::tests::test_query_with_limit ... ok
[INFO] [stdout] test playout_log::tests::test_severity_display ... ok
[INFO] [stdout] test playout_log::tests::test_summary ... ok
[INFO] [stdout] test playout_log::tests::test_query_by_severity ... ok
[INFO] [stdout] test playout_schedule::tests::test_current_slot_found ... ok
[INFO] [stdout] test playout_schedule::tests::test_add_multiple_slots ... ok
[INFO] [stdout] test playout_schedule::tests::test_conflict_with_locked_slot ... ok
[INFO] [stdout] test playout_schedule::tests::test_add_slot_returns_id ... ok
[INFO] [stdout] test playout_schedule::tests::test_invalid_start_time ... ok
[INFO] [stdout] test playout_schedule::tests::test_current_slot_none ... ok
[INFO] [stdout] test playout_schedule::tests::test_gaps_detection ... ok
[INFO] [stdout] test playout_schedule::tests::test_remove_unlocked_slot ... ok
[INFO] [stdout] test playout_schedule::tests::test_slot_end_secs ... ok
[INFO] [stdout] test playout_log::tests::test_query_by_time_range ... ok
[INFO] [stdout] test playout_schedule::tests::test_next_slot ... ok
[INFO] [stdout] test playout_schedule::tests::test_slot_overlap_true ... ok
[INFO] [stdout] test playout_schedule::tests::test_slot_overlap_false ... ok
[INFO] [stdout] test playout_schedule::tests::test_slot_priority_ordering ... ok
[INFO] [stdout] test playout_schedule::tests::test_sorted_slots_order ... ok
[INFO] [stdout] test predecode::tests::test_budget_exceeded_returns_error ... ok
[INFO] [stdout] test playout_schedule::tests::test_zero_duration_rejected ... ok
[INFO] [stdout] test predecode::tests::test_cancel_job ... ok
[INFO] [stdout] test predecode::tests::test_decoded_frame_fields ... ok
[INFO] [stdout] test predecode::tests::test_consume_not_ready_returns_none ... ok
[INFO] [stdout] test predecode::tests::test_default_config ... ok
[INFO] [stdout] test predecode::tests::test_fill_ratio_pending_is_zero ... ok
[INFO] [stdout] test output::tests::test_sdi_settings_default ... ok
[INFO] [stdout] test playout_schedule::tests::test_lock_unlock_cycle ... ok
[INFO] [stdout] test playout_schedule::tests::test_remove_locked_slot_fails ... ok
[INFO] [stdout] test predecode::tests::test_consume_returns_frames ... ok
[INFO] [stdout] test preflight::tests::test_bitrate_too_low ... ok
[INFO] [stdout] test preflight::tests::test_broadcast_valid_passes ... ok
[INFO] [stdout] test preflight::tests::test_audio_sample_rate_too_low ... ok
[INFO] [stdout] test predecode::tests::test_evict_stale ... ok
[INFO] [stdout] test preflight::tests::test_duration_too_short ... ok
[INFO] [stdout] test preflight::tests::test_check_playlist_count ... ok
[INFO] [stdout] test preflight::tests::test_extension_inference_flac ... ok
[INFO] [stdout] test preflight::tests::test_duration_too_long ... ok
[INFO] [stdout] test predecode::tests::test_stats_tracking ... ok
[INFO] [stdout] test preflight::tests::test_missing_audio_stream ... ok
[INFO] [stdout] test preflight::tests::test_missing_video_stream ... ok
[INFO] [stdout] test preflight::tests::test_summarise_failing_only ... ok
[INFO] [stdout] test preflight::tests::test_file_missing ... ok
[INFO] [stdout] test preflight::tests::test_unsupported_audio_codec ... ok
[INFO] [stdout] test preflight::tests::test_issue_display ... ok
[INFO] [stdout] test preflight::tests::test_permissive_missing_file_ok ... ok
[INFO] [stdout] test ptp_clock::tests::test_bmca_compare_priority1 ... ok
[INFO] [stdout] test ptp_clock::tests::test_bmca_compare_tie_by_identity ... ok
[INFO] [stdout] test ptp_clock::tests::test_bmca_compare_clock_class ... ok
[INFO] [stdout] test preflight::tests::test_unsupported_video_codec ... ok
[INFO] [stdout] test ptp_clock::tests::test_clock_identity_display ... ok
[INFO] [stdout] test ptp_clock::tests::test_clock_identity_from_mac ... ok
[INFO] [stdout] test ptp_clock::tests::test_pi_servo_converges ... ok
[INFO] [stdout] test ptp_clock::tests::test_pi_servo_reset ... ok
[INFO] [stdout] test ptp_clock::tests::test_clock_source_from_str ... ok
[INFO] [stdout] test ptp_clock::tests::test_clock_source_roundtrip ... ok
[INFO] [stdout] test ptp_clock::tests::test_ptp_clock_bmca_evaluate ... ok
[INFO] [stdout] test ptp_clock::tests::test_ptp_clock_on_sync_slave ... ok
[INFO] [stdout] test ptp_clock::tests::test_ptp_clock_now_is_consistent ... ok
[INFO] [stdout] test ptp_clock::tests::test_ptp_clock_on_sync_master_returns_error ... ok
[INFO] [stdout] test ptp_clock::tests::test_ptp_clock_reset ... ok
[INFO] [stdout] test rundown::tests::test_advert_is_timed ... ok
[INFO] [stdout] test rundown::tests::test_break_is_not_timed ... ok
[INFO] [stdout] test ptp_clock::tests::test_ptp_timestamp_from_system_time ... ok
[INFO] [stdout] test ptp_clock::tests::test_ptp_timestamp_offset_ns ... ok
[INFO] [stdout] test rundown::tests::test_item_over_time_true ... ok
[INFO] [stdout] test rundown::tests::test_header_is_not_content ... ok
[INFO] [stdout] test rundown::tests::test_item_over_time_within_tolerance ... ok
[INFO] [stdout] test rundown::tests::test_item_not_over_time_no_actual ... ok
[INFO] [stdout] test rundown::tests::test_placeholder_is_not_content ... ok
[INFO] [stdout] test rundown::tests::test_over_time_items_none ... ok
[INFO] [stdout] test rundown::tests::test_over_time_items_some ... ok
[INFO] [stdout] test rundown::tests::test_rundown_add_item_increases_count ... ok
[INFO] [stdout] test rundown::tests::test_rundown_item_count_empty ... ok
[INFO] [stdout] test rundown::tests::test_story_is_timed ... ok
[INFO] [stdout] test rundown::tests::test_time_deviation_no_actual ... ok
[INFO] [stdout] test rundown::tests::test_time_deviation_positive ... ok
[INFO] [stdout] test rundown::tests::test_total_actual_duration_partial ... ok
[INFO] [stdout] test rundown::tests::test_total_planned_duration ... ok
[INFO] [stdout] test schedule_block::tests::test_block_contains ... ok
[INFO] [stdout] test schedule_block::tests::test_block_duration ... ok
[INFO] [stdout] test schedule_block::tests::test_block_priority_weight ... ok
[INFO] [stdout] test schedule_block::tests::test_block_template_instantiate ... ok
[INFO] [stdout] test schedule_block::tests::test_duration_to ... ok
[INFO] [stdout] test schedule_block::tests::test_duration_to_midnight_wrap ... ok
[INFO] [stdout] test schedule_block::tests::test_empty_day ... ok
[INFO] [stdout] test schedule_block::tests::test_from_seconds ... ok
[INFO] [stdout] test schedule_block::tests::test_from_seconds_wraps ... ok
[INFO] [stdout] test schedule_block::tests::test_schedule_day_add_and_active ... ok
[INFO] [stdout] test schedule_block::tests::test_schedule_day_gaps ... ok
[INFO] [stdout] test schedule_block::tests::test_time_display ... ok
[INFO] [stdout] test schedule_block::tests::test_time_of_day_clamping ... ok
[INFO] [stdout] test schedule_block::tests::test_time_of_day_new ... ok
[INFO] [stdout] test schedule_block::tests::test_total_seconds ... ok
[INFO] [stdout] test predecode::tests::test_submit_and_wait_ready ... ok
[INFO] [stdout] test schedule_slot::tests::grid_add_and_len ... ok
[INFO] [stdout] test schedule_slot::tests::grid_available_at ... ok
[INFO] [stdout] test schedule_slot::tests::grid_available_count ... ok
[INFO] [stdout] test schedule_slot::tests::grid_find_by_id ... ok
[INFO] [stdout] test schedule_slot::tests::grid_ordered_by_start ... ok
[INFO] [stdout] test schedule_slot::tests::grid_slots_in_range ... ok
[INFO] [stdout] test schedule_slot::tests::slot_book_fails_when_already_booked ... ok
[INFO] [stdout] test schedule_slot::tests::slot_book_success ... ok
[INFO] [stdout] test schedule_slot::tests::slot_contains_ms ... ok
[INFO] [stdout] test schedule_slot::tests::slot_duration_ms ... ok
[INFO] [stdout] test schedule_slot::tests::slot_mark_aired ... ok
[INFO] [stdout] test schedule_slot::tests::slot_overlaps_false ... ok
[INFO] [stdout] test schedule_slot::tests::slot_overlaps_true ... ok
[INFO] [stdout] test schedule_slot::tests::slot_release_restores_available ... ok
[INFO] [stdout] test schedule_slot::tests::status_available_is_available ... ok
[INFO] [stdout] test schedule_slot::tests::status_booked_is_committed ... ok
[INFO] [stdout] test rundown::tests::test_story_is_content ... ok
[INFO] [stdout] test schedule_slot::tests::status_item_id ... ok
[INFO] [stdout] test scheduler::tests::test_channel_id_display ... ok
[INFO] [stdout] test schedule_slot::tests::status_reserved_is_reserved ... ok
[INFO] [stdout] test scheduler::tests::test_add_event ... ok
[INFO] [stdout] test scheduler::tests::test_macro_expansion ... ok
[INFO] [stdout] test scheduler::tests::test_cue_point ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_add_remove ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_channel_ids_sorted ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_duplicate_add_fails ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_remove_nonexistent_fails ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_clear_channel ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_get_current_none_when_empty ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_schedule_item ... ok
[INFO] [stdout] test channel::tests::test_channel_uptime ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_schedule_unknown_channel_fails ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_scheduler_ref ... ok
[INFO] [stdout] test scheduler::tests::test_remove_event ... ok
[INFO] [stdout] test scheduler::tests::test_multi_channel_total_event_count_multi ... ok
[INFO] [stdout] test scheduler::tests::test_scheduler_creation ... ok
[INFO] [stdout] test scheduler::tests::test_scte35_event ... ok
[INFO] [stdout] test scheduler::tests::test_time_to_frame_conversion ... ok
[INFO] [stdout] test secondary_events::tests::test_carousel_priority_ordering ... ok
[INFO] [stdout] test secondary_events::tests::test_chapter_point_creation ... ok
[INFO] [stdout] test secondary_events::tests::test_ad_break_duration_and_contains ... ok
[INFO] [stdout] test secondary_events::tests::test_carousel_object_data_len ... ok
[INFO] [stdout] test secondary_events::tests::test_cue_registry_does_not_double_fire ... ok
[INFO] [stdout] test secondary_events::tests::test_cue_registry_advance_to_timecode ... ok
[INFO] [stdout] test secondary_events::tests::test_cue_registry_next_pending ... ok
[INFO] [stdout] test secondary_events::tests::test_cue_registry_pending ... ok
[INFO] [stdout] test secondary_events::tests::test_cue_registry_sorted_insertion ... ok
[INFO] [stdout] test secondary_events::tests::test_cue_registry_insert_and_fire ... ok
[INFO] [stdout] test secondary_events::tests::test_cue_registry_reset ... ok
[INFO] [stdout] test secondary_events::tests::test_data_carousel_priority_ordering ... ok
[INFO] [stdout] test secondary_events::tests::test_data_carousel_add_and_next ... ok
[INFO] [stdout] test secondary_events::tests::test_secondary_event_kind_is_ad_related ... ok
[INFO] [stdout] test secondary_events::tests::test_secondary_event_kind_label ... ok
[INFO] [stdout] test secondary_events::tests::test_secondary_event_timeline_fire_due ... ok
[INFO] [stdout] test secondary_events::tests::test_secondary_event_fire ... ok
[INFO] [stdout] test secondary_events::tests::test_secondary_event_payload ... ok
[INFO] [stdout] test secondary_events::tests::test_secondary_event_timeline_insert_sorted ... ok
[INFO] [stdout] test secondary_events::tests::test_secondary_event_with_duration_end_ms ... ok
[INFO] [stdout] test secondary_events::tests::test_secondary_event_timeline_by_kind ... ok
[INFO] [stdout] test secondary_events::tests::test_timecode_trigger_from_frame_count_roundtrip ... ok
[INFO] [stdout] test secondary_events::tests::test_timecode_trigger_string_repr_df ... ok
[INFO] [stdout] test secondary_events::tests::test_timecode_trigger_string_repr_ndf ... ok
[INFO] [stdout] test secondary_events::tests::test_timecode_trigger_to_frame_count_sub_second ... ok
[INFO] [stdout] test secondary_events::tests::test_timecode_trigger_to_frame_count_25fps ... ok
[INFO] [stdout] test signal_chain::tests::test_bypass_stage ... ok
[INFO] [stdout] test signal_chain::tests::test_active_stages_excludes_bypassed ... ok
[INFO] [stdout] test signal_chain::tests::test_chain_len ... ok
[INFO] [stdout] test signal_chain::tests::test_insert_out_of_bounds ... ok
[INFO] [stdout] test signal_chain::tests::test_remove_not_found ... ok
[INFO] [stdout] test signal_chain::tests::test_push_returns_id ... ok
[INFO] [stdout] test signal_chain::tests::test_singleton_input_rejected ... ok
[INFO] [stdout] test signal_chain::tests::test_insert_in_middle ... ok
[INFO] [stdout] test signal_chain::tests::test_remove_stage ... ok
[INFO] [stdout] test signal_chain::tests::test_stage_param_set_get ... ok
[INFO] [stdout] test signal_chain::tests::test_singleton_output_rejected ... ok
[INFO] [stdout] test signal_chain::tests::test_toggle_bypass ... ok
[INFO] [stdout] test signal_chain::tests::test_validate_missing_input ... ok
[INFO] [stdout] test signal_chain::tests::test_validate_missing_output ... ok
[INFO] [stdout] test signal_chain::tests::test_validate_valid_chain ... ok
[INFO] [stdout] test simulcast::tests::test_scaling_algorithm_default ... ok
[INFO] [stdout] test simulcast::tests::test_simulcast_default_config ... ok
[INFO] [stdout] test simulcast::tests::test_simulcast_engine_legs ... ok
[INFO] [stdout] test simulcast::tests::test_simulcast_nearest_neighbour ... ok
[INFO] [stdout] test simulcast::tests::test_simulcast_process_frame ... ok
[INFO] [stdout] test simulcast::tests::test_simulcast_same_resolution_passthrough ... ok
[INFO] [stdout] test simulcast::tests::test_simulcast_zero_size_no_panic ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_cea608_color_difference ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_cea608_packet_structure ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_cea708_channel_clamp ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_cea708_packet_header ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_entry_is_active_at ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_get_packets_for_frame ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_get_packets_multiple_tracks ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_ms_to_90k ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_parse_srt_basic ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_parse_srt_invalid ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_parse_webvtt_basic ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_parse_webvtt_no_header ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_set_parity_odd ... ok
[INFO] [stdout] test signal_chain::tests::test_stage_kind_singleton ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_track_sorted_insert ... ok
[INFO] [stdout] test tally_system::tests::apply_update_changes_state ... ok
[INFO] [stdout] test subtitle_inserter::tests::test_truncate_row ... ok
[INFO] [stdout] test signal_chain::tests::test_stage_param_overwrite ... ok
[INFO] [stdout] test tally_system::tests::preview_sources_list ... ok
[INFO] [stdout] test tally_system::tests::programme_sources_list ... ok
[INFO] [stdout] test tally_system::tests::clear_all_sets_idle ... ok
[INFO] [stdout] test tally_system::tests::register_source_idle_by_default ... ok
[INFO] [stdout] test tally_system::tests::set_preview_moves_old_to_idle ... ok
[INFO] [stdout] test tally_system::tests::set_programme_moves_old_to_idle ... ok
[INFO] [stdout] test tally_system::tests::snapshot_contains_all_sources ... ok
[INFO] [stdout] test tally_system::tests::source_count ... ok
[INFO] [stdout] test tally_system::tests::tally_state_is_active ... ok
[INFO] [stdout] test tally_system::tests::tally_state_is_programme ... ok
[INFO] [stdout] test tally_system::tests::tally_state_labels ... ok
[INFO] [stdout] test tally_system::tests::tally_update_new ... ok
[INFO] [stdout] test tally_system::tests::unregistered_source_returns_idle ... ok
[INFO] [stdout] test tests::test_default_config ... ok
[INFO] [stdout] test tests::test_graceful_shutdown_with_custom_config ... ok
[INFO] [stdout] test tests::test_graceful_shutdown_no_flush ... ok
[INFO] [stdout] test tests::test_graceful_shutdown_stopped_server ... ok
[INFO] [stdout] test tests::test_graceful_shutdown_running_server ... ok
[INFO] [stdout] test tests::test_hot_swap_disable_monitoring ... ok
[INFO] [stdout] test tests::test_hot_swap_config_while_running ... ok
[INFO] [stdout] test tests::test_hot_swap_config_while_stopped ... ok
[INFO] [stdout] test tests::test_hot_swap_enable_monitoring ... ok
[INFO] [stdout] test tests::test_shutdown_config_default ... ok
[INFO] [stdout] test tests::test_video_format_properties ... ok
[INFO] [stdout] test tests::test_hot_swap_invalid_config ... ok
[INFO] [stdout] test tests::test_hot_swap_video_format_stored ... ok
[INFO] [stdout] test tests::test_server_lifecycle ... ok
[INFO] [stdout] test timecode_overlay::tests::test_compute_offset_bottom_right ... ok
[INFO] [stdout] test timecode_overlay::tests::test_compute_offset_center ... ok
[INFO] [stdout] test timecode_overlay::tests::test_compute_offset_top_left ... ok
[INFO] [stdout] test timecode_overlay::tests::test_from_frame_count ... ok
[INFO] [stdout] test timecode_overlay::tests::test_from_frame_count_zero_fps ... ok
[INFO] [stdout] test timecode_overlay::tests::test_overlay_default_config ... ok
[INFO] [stdout] test timecode_overlay::tests::test_render_no_background ... ok
[INFO] [stdout] test timecode_overlay::tests::test_rgba_constants ... ok
[INFO] [stdout] test timecode_overlay::tests::test_render_bitmap_dimensions ... ok
[INFO] [stdout] test timecode_overlay::tests::test_timecode_equality ... ok
[INFO] [stdout] test timecode_overlay::tests::test_to_frame_count_roundtrip ... ok
[INFO] [stdout] test timecode_overlay::tests::test_timecode_format_df ... ok
[INFO] [stdout] test transitions::tests::test_cut_alpha_irrelevant ... ok
[INFO] [stdout] test timecode_overlay::tests::test_timecode_format_ndf ... ok
[INFO] [stdout] test transitions::tests::test_dip_midpoint_near_dip_colour ... ok
[INFO] [stdout] test transitions::tests::test_dissolve_alpha_one_is_frame_b ... ok
[INFO] [stdout] test transitions::tests::test_cut_returns_frame_b ... ok
[INFO] [stdout] test transitions::tests::test_dip_alpha_zero_is_frame_a ... ok
[INFO] [stdout] test transitions::tests::test_dissolve_midpoint ... ok
[INFO] [stdout] test transitions::tests::test_fade_alpha_zero_is_frame_a ... ok
[INFO] [stdout] test transitions::tests::test_fade_midpoint_is_black ... ok
[INFO] [stdout] test transitions::tests::test_size_mismatch_error ... ok
[INFO] [stdout] test transitions::tests::test_wipe_left_alpha_zero_is_frame_a ... ok
[INFO] [stdout] test transitions::tests::test_wipe_right_half ... ok
[INFO] [stdout] test transitions::tests::test_dissolve_alpha_zero_is_frame_a ... ok
[INFO] [stdout] test transitions::tests::test_wipe_left_alpha_one_is_frame_b ... ok
[INFO] [stdout] test transitions::tests::test_wipe_up_half ... ok
[INFO] [stdout] test transitions::tests::test_transition_effect_advance ... ok
[INFO] [stdout] test ptp_clock::tests::test_ptp_clock_delay_response ... ok
[INFO] [stdout] test rundown::tests::test_time_deviation_negative ... ok
[INFO] [stdout] test monitoring::tests::test_loudness_lra_computation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 720 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests oximedia_playout
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/lib.rs - (line 19) - compile ... ok
[INFO] [stdout] test src/lib.rs - frame_trim (line 88) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "f51b8f8a02dd3ff773675ac619cc6c0f283a91b20317563823230028447a406a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f51b8f8a02dd3ff773675ac619cc6c0f283a91b20317563823230028447a406a", kill_on_drop: false }`
[INFO] [stdout] f51b8f8a02dd3ff773675ac619cc6c0f283a91b20317563823230028447a406a
