[INFO] fetching crate oximedia-drm 0.1.3... [INFO] testing oximedia-drm-0.1.3 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate oximedia-drm 0.1.3 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate oximedia-drm 0.1.3 [INFO] finished tweaking crates.io crate oximedia-drm 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-drm 0.1.3 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-drm 0.1.3 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-drm 0.1.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded uuid v1.23.0 [INFO] [stderr] Downloaded rand v0.10.1 [INFO] [stderr] Downloaded chacha20 v0.10.0 [INFO] [stderr] Downloaded rand_core v0.10.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a5fafcff0325e399a4a9ec1fd5c0a070281ca9e0fed638a26d4ba4588cfff2b2 [INFO] running `Command { std: "docker" "start" "-a" "a5fafcff0325e399a4a9ec1fd5c0a070281ca9e0fed638a26d4ba4588cfff2b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a5fafcff0325e399a4a9ec1fd5c0a070281ca9e0fed638a26d4ba4588cfff2b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a5fafcff0325e399a4a9ec1fd5c0a070281ca9e0fed638a26d4ba4588cfff2b2", kill_on_drop: false }` [INFO] [stdout] a5fafcff0325e399a4a9ec1fd5c0a070281ca9e0fed638a26d4ba4588cfff2b2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fb7cd2c072e1aed90b905a35954579f5cb417741f866180d000bd1cd0dc6c59b [INFO] running `Command { std: "docker" "start" "-a" "fb7cd2c072e1aed90b905a35954579f5cb417741f866180d000bd1cd0dc6c59b", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rand_core v0.10.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling quick-xml v0.39.2 [INFO] [stderr] Compiling oximedia-drm v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.31s [INFO] running `Command { std: "docker" "inspect" "fb7cd2c072e1aed90b905a35954579f5cb417741f866180d000bd1cd0dc6c59b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fb7cd2c072e1aed90b905a35954579f5cb417741f866180d000bd1cd0dc6c59b", kill_on_drop: false }` [INFO] [stdout] fb7cd2c072e1aed90b905a35954579f5cb417741f866180d000bd1cd0dc6c59b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d2d969e581567fcd63ddb7cfde8cbd49c3e0fa5bdb171a61e0bfb85cb0bcceca [INFO] running `Command { std: "docker" "start" "-a" "d2d969e581567fcd63ddb7cfde8cbd49c3e0fa5bdb171a61e0bfb85cb0bcceca", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-drm v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 8.22s [INFO] running `Command { std: "docker" "inspect" "d2d969e581567fcd63ddb7cfde8cbd49c3e0fa5bdb171a61e0bfb85cb0bcceca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d2d969e581567fcd63ddb7cfde8cbd49c3e0fa5bdb171a61e0bfb85cb0bcceca", kill_on_drop: false }` [INFO] [stdout] d2d969e581567fcd63ddb7cfde8cbd49c3e0fa5bdb171a61e0bfb85cb0bcceca [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ed103f4bd9e1a43287a521c5238b19b0f44c66edc5b24336e6da24cd9f4f9cc7 [INFO] running `Command { std: "docker" "start" "-a" "ed103f4bd9e1a43287a521c5238b19b0f44c66edc5b24336e6da24cd9f4f9cc7", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_drm-6107382b8eef13a1) [INFO] [stdout] [INFO] [stdout] running 697 tests [INFO] [stdout] test access_grant::tests::test_active_rental_allowed ... ok [INFO] [stdout] test access_grant::tests::test_active_grants_for_user ... ok [INFO] [stdout] test access_grant::tests::test_expired_rental_denied ... ok [INFO] [stdout] test access_grant::tests::test_grant_type_display ... ok [INFO] [stdout] test access_grant::tests::test_has_access_for_stream_grant ... ok [INFO] [stdout] test access_grant::tests::test_has_access_type_correct_type ... ok [INFO] [stdout] test access_grant::tests::test_has_access_type_wrong_type ... ok [INFO] [stdout] test access_grant::tests::test_is_active_at_expired ... ok [INFO] [stdout] test access_grant::tests::test_is_active_at_never_expires ... ok [INFO] [stdout] test access_grant::tests::test_is_empty_and_len ... ok [INFO] [stdout] test access_grant::tests::test_no_access_for_different_user ... ok [INFO] [stdout] test access_grant::tests::test_purge_expired_removes_stale ... ok [INFO] [stdout] test access_grant::tests::test_purge_keeps_active_grants ... ok [INFO] [stdout] test access_grant::tests::test_remove_grant ... ok [INFO] [stdout] test access_grant::tests::test_no_access_for_different_content ... ok [INFO] [stdout] test aes_cbc::tests::test_aes128_encrypt_decrypt_block_roundtrip ... ok [INFO] [stdout] test aes_cbc::tests::test_aes256_encrypt_decrypt_block_roundtrip ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc128_roundtrip_single_block ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc128_nist_known_answer ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_ciphertext_differs_from_plaintext ... ok [INFO] [stdout] test access_grant::tests::test_is_active_at_not_yet_issued ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc256_roundtrip ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc128_roundtrip_multi_block ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_from_key_128 ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_from_key_256 ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_different_iv_different_ciphertext ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_empty_plaintext ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_from_key_invalid ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_invalid_ciphertext_length_for_decrypt ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_invalid_iv_length ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_no_padding_rejects_non_multiple ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_no_padding_roundtrip ... ok [INFO] [stdout] test aes_ctr::tests::test_aes128_nist_fips197_appendix_b ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_padding_one_byte_short ... ok [INFO] [stdout] test aes_ctr::tests::test_aes128_key_schedule_length ... ok [INFO] [stdout] test aes_ctr::tests::test_aes256_nist_vector ... ok [INFO] [stdout] test aes_ctr::tests::test_aes256_key_schedule_length ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr_state_next_block_increments_counter ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr128_roundtrip ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr256_roundtrip ... ok [INFO] [stdout] test aes_cbc::tests::test_decrypt_block_inverse_of_encrypt_block ... ok [INFO] [stdout] test analytics::tests::test_event_count_grows ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr_different_counter_start_produces_different_output ... ok [INFO] [stdout] test analytics::tests::test_event_fields_stored_correctly ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr_partial_block ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr_counter_wraps_around ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr_different_nonces_produce_different_output ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr_empty_input ... ok [INFO] [stdout] test aes_ctr::tests::test_encrypt_decrypt_symmetry_256 ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr_state_new ... ok [INFO] [stdout] test analytics::tests::test_events_for_content_filters ... ok [INFO] [stdout] test analytics::tests::test_denied_count ... ok [INFO] [stdout] test aes_ctr::tests::test_inv_sbox_is_inverse_of_sbox ... ok [INFO] [stdout] test analytics::tests::test_events_for_content_none ... ok [INFO] [stdout] test analytics::tests::test_granted_count ... ok [INFO] [stdout] test analytics::tests::test_new_analytics_empty ... ok [INFO] [stdout] test analytics::tests::test_playback_analytics_plays_per_content ... ok [INFO] [stdout] test analytics::tests::test_playback_event_is_complete_view_zero_content ... ok [INFO] [stdout] test analytics::tests::test_playback_analytics_top_content ... ok [INFO] [stdout] test analytics::tests::test_playback_analytics_unique_users ... ok [INFO] [stdout] test analytics::tests::test_success_rate_all_denied ... ok [INFO] [stdout] test analytics::tests::test_record_returns_sequential_ids ... ok [INFO] [stdout] test analytics::tests::test_success_rate_mixed ... ok [INFO] [stdout] test analytics::tests::test_playback_event_is_complete_view_false ... ok [INFO] [stdout] test analytics::tests::test_success_rate_no_events ... ok [INFO] [stdout] test analytics::tests::test_all_event_types_recordable ... ok [INFO] [stdout] test analytics::tests::test_usage_report_empty_window ... ok [INFO] [stdout] test analytics::tests::test_usage_report_period_fields ... ok [INFO] [stdout] test analytics::tests::test_success_rate_all_granted ... ok [INFO] [stdout] test analytics::tests::test_usage_report_correct_aggregates ... ok [INFO] [stdout] test analytics::tests::test_playback_analytics_total_plays ... ok [INFO] [stdout] test analytics::tests::test_playback_event_is_complete_view_true ... ok [INFO] [stdout] test audit_trail::tests::test_event_builder ... ok [INFO] [stdout] test audit_trail::tests::test_event_new ... ok [INFO] [stdout] test audit_trail::tests::test_severity_ordering ... ok [INFO] [stdout] test audit_trail::tests::test_is_at_least ... ok [INFO] [stdout] test audit_trail::tests::test_trail_by_actor ... ok [INFO] [stdout] test audit_trail::tests::test_trail_by_category ... ok [INFO] [stdout] test audit_trail::tests::test_trail_clear ... ok [INFO] [stdout] test audit_trail::tests::test_trail_recent ... ok [INFO] [stdout] test audit_trail::tests::test_trail_stats ... ok [INFO] [stdout] test buf_pool::tests::test_buf_cleared_on_acquire ... ok [INFO] [stdout] test buf_pool::tests::test_buf_returned_on_drop ... ok [INFO] [stdout] test buf_pool::tests::test_into_vec_does_not_return_to_pool ... ok [INFO] [stdout] test buf_pool::tests::test_pool_max_capacity_limit ... ok [INFO] [stdout] test audit_trail::tests::test_trail_time_range ... ok [INFO] [stdout] test buf_pool::tests::test_clone_shares_pool ... ok [INFO] [stdout] test buf_pool::tests::test_acquire_and_use_buf ... ok [INFO] [stdout] test audit_trail::tests::test_trail_capacity_getter ... ok [INFO] [stdout] test buf_pool::tests::test_pool_set_empty_buf_at_acquire ... ok [INFO] [stdout] test buf_pool::tests::test_pool_set_fallback_for_oversized ... ok [INFO] [stdout] test buf_pool::tests::test_pre_warm ... ok [INFO] [stdout] test buf_pool::tests::test_pool_set_selects_smallest_bucket ... ok [INFO] [stdout] test buf_pool::tests::test_pre_warm_respects_max_pooled ... ok [INFO] [stdout] test buf_pool::tests::test_reuse_pooled_buf ... ok [INFO] [stdout] test audit_trail::tests::test_trail_capacity ... ok [INFO] [stdout] test cenc::tests::test_counter_increment ... ok [INFO] [stdout] test cenc::tests::test_cenc_encryptor_creation ... ok [INFO] [stdout] test buf_pool::tests::test_total_acquired_counter ... ok [INFO] [stdout] test buf_pool::tests::test_total_returned_counter ... ok [INFO] [stdout] test cenc::tests::test_iv_generation ... ok [INFO] [stdout] test audit_trail::tests::test_trail_by_severity ... ok [INFO] [stdout] test cenc::tests::test_subsample_info ... ok [INFO] [stdout] test cenc::tests::test_encryption_pattern ... ok [INFO] [stdout] test cenc::tests::test_pssh_box_v1_serialization ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_client ... ok [INFO] [stdout] test audit_trail::tests::test_record_event ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_entry_from_bytes_roundtrip ... ok [INFO] [stdout] test cenc::tests::test_pssh_box_serialization ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_license_json_roundtrip ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_license_persistent_type ... ok [INFO] [stdout] test cenc::tests::test_encryption_scheme ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_request_json ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_response ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_response_json ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_pssh_data ... ok [INFO] [stdout] test clearkey::tests::test_json_web_key ... ok [INFO] [stdout] test cenc::tests::test_cenc_encrypt_decrypt_roundtrip ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_request ... ok [INFO] [stdout] test clearkey::tests::test_parse_clearkey_request_invalid_json ... ok [INFO] [stdout] test clearkey::tests::test_w3c_clearkey_json_format_conformance ... ok [INFO] [stdout] test clearkey::tests::test_parse_clearkey_request_valid ... ok [INFO] [stdout] test clearkey::tests::test_w3c_clearkey_pssh_box_parseable ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_server ... ok [INFO] [stdout] test clearkey::tests::test_clearkey_server_missing_key ... ok [INFO] [stdout] test buf_pool::tests::test_concurrent_acquire_and_drop ... ok [INFO] [stdout] test clearkey::tests::test_generate_clearkey_license_is_valid_json ... ok [INFO] [stdout] test clearkey::tests::test_parse_clearkey_request_invalid_base64 ... ok [INFO] [stdout] test clearkey::tests::test_w3c_clearkey_vector_multi_key ... ok [INFO] [stdout] test clearkey::tests::test_w3c_clearkey_vector_single_key_roundtrip ... ok [INFO] [stdout] test clearkey::tests::test_w3c_parse_clearkey_request_multi_key ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_cbc_block_aligned_roundtrip ... ok [INFO] [stdout] test clearkey::tests::test_w3c_eme_request_response_protocol ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_cbcs_empty_input ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_cbc_ciphertext_differs_from_plaintext ... ok [INFO] [stdout] test cenc::tests::test_encrypt_subsamples_parallel_empty_slice ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_cbcs_block_aligned_roundtrip ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_ctr_encrypt_changes_plaintext ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_cbcs_non_aligned_roundtrip ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_different_iv_produces_different_ciphertext ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_ctr_encrypt_decrypt_roundtrip ... ok [INFO] [stdout] test cenc::tests::test_encrypt_subsamples_parallel_roundtrip ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_cbc_encrypt_decrypt_roundtrip ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_ctr_non_block_aligned_roundtrip ... ok [INFO] [stdout] test compliance::tests::test_compliance_report_advisory_only ... ok [INFO] [stdout] test compliance::tests::test_compliance_checker_output_permitted ... ok [INFO] [stdout] test compliance::tests::test_compliance_checker_add_rule ... ok [INFO] [stdout] test compliance::tests::test_compliance_report_compliant ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_cbcs_only_partial_block_is_passthrough ... ok [INFO] [stdout] test audit_trail::tests::test_trail_record ... ok [INFO] [stdout] test compliance::tests::test_output_control_protected_only ... ok [INFO] [stdout] test compliance::tests::test_output_control_set_blocked ... ok [INFO] [stdout] test compliance::tests::test_output_permission_ordering ... ok [INFO] [stdout] test compliance::tests::test_robustness_rule_advisory ... ok [INFO] [stdout] test compliance::tests::test_robustness_rule_mandatory_check_pass ... ok [INFO] [stdout] test compliance::tests::test_robustness_level_ordering ... ok [INFO] [stdout] test compliance::tests::test_robustness_rule_mandatory_check_fail ... ok [INFO] [stdout] test content_key::tests::test_content_key_is_zero_key ... ok [INFO] [stdout] test content_key::tests::test_content_key_set_key_ids ... ok [INFO] [stdout] test content_key::tests::test_content_key_set_validate_empty ... ok [INFO] [stdout] test compliance::tests::test_compliance_report_failed_mandatory_names ... ok [INFO] [stdout] test content_key::tests::test_content_key_set_add_and_lookup ... ok [INFO] [stdout] test compliance::tests::test_compliance_report_non_compliant ... ok [INFO] [stdout] test content_key::tests::test_content_key_set_validate_zero_key ... ok [INFO] [stdout] test compliance::tests::test_output_control_default_allowed ... ok [INFO] [stdout] test content_key::tests::test_content_key_length_bits ... ok [INFO] [stdout] test content_key::tests::test_content_key_builders ... ok [INFO] [stdout] test content_key::tests::test_content_key_new ... ok [INFO] [stdout] test content_key::tests::test_content_key_set_remove ... ok [INFO] [stdout] test content_key::tests::test_content_key_usage_display ... ok [INFO] [stdout] test content_key::tests::test_key_derivation_algorithm_display ... ok [INFO] [stdout] test content_key::tests::test_key_derivation_hmac_produces_output ... ok [INFO] [stdout] test content_key::tests::test_key_derivation_identity ... ok [INFO] [stdout] test content_key::tests::test_key_derivation_identity_truncate ... ok [INFO] [stdout] test content_key::tests::test_key_derivation_identity_pad ... ok [INFO] [stdout] test cpix::tests::test_create_cpix_document ... ok [INFO] [stdout] test content_key::tests::test_key_rotation_handle_tick ... ok [INFO] [stdout] test content_key::tests::test_key_rotation_handle_rotate ... ok [INFO] [stdout] test cpix::tests::test_document_without_drm_or_rules ... ok [INFO] [stdout] test cpix::tests::test_content_filter_display ... ok [INFO] [stdout] test content_key::tests::test_key_rotation_no_next_does_not_rotate ... ok [INFO] [stdout] test cpix::tests::test_validate_empty_content_id ... ok [INFO] [stdout] test cpix::tests::test_cpix_error_display ... ok [INFO] [stdout] test cpix::tests::test_validate_no_keys ... ok [INFO] [stdout] test cpix::tests::test_get_content_key ... ok [INFO] [stdout] test cpix::tests::test_validate_unknown_key_in_rule ... ok [INFO] [stdout] test cpix::tests::test_to_xml_roundtrip ... ok [INFO] [stdout] test cpix::tests::test_key_drm_map ... ok [INFO] [stdout] test cpix::tests::test_get_drm_systems_for_key ... ok [INFO] [stdout] test cpix::tests::test_usage_rule_matches_all ... ok [INFO] [stdout] test cpix::tests::test_key_without_value ... ok [INFO] [stdout] test cpix::tests::test_validate_duplicate_key_id ... ok [INFO] [stdout] test cpix::tests::test_hls_signaling_data_roundtrip ... ok [INFO] [stdout] test cpix::tests::test_validate_unknown_key_in_drm ... ok [INFO] [stdout] test cpix::tests::test_validate_valid_document ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_active_devices ... ok [INFO] [stdout] test cpix::tests::test_xml_roundtrip_preserves_drm_fields ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_can_register_false_at_limit ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_deactivate ... ok [INFO] [stdout] test cpix::tests::test_xml_roundtrip_preserves_key_value ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_deregister ... ok [INFO] [stdout] test cpix::tests::test_xml_with_period_and_label_filters ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_find_device ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_find_device_not_found ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_register_at_capacity ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_register_success ... ok [INFO] [stdout] test device_auth::tests::test_device_type_is_mobile_false ... ok [INFO] [stdout] test device_auth::tests::test_device_type_is_mobile_true ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_deregister_nonexistent ... ok [INFO] [stdout] test device_auth::tests::test_device_type_name ... ok [INFO] [stdout] test device_auth::tests::test_device_manager_register_duplicate_rejected ... ok [INFO] [stdout] test device_auth::tests::test_device_type_typical_max_resolution ... ok [INFO] [stdout] test device_auth::tests::test_premium_limit ... ok [INFO] [stdout] test device_auth::tests::test_registration_deactivate ... ok [INFO] [stdout] test device_auth::tests::test_registration_invalid_when_empty_id ... ok [INFO] [stdout] test device_auth::tests::test_registration_reactivate ... ok [INFO] [stdout] test device_auth::tests::test_registration_valid_when_active ... ok [INFO] [stdout] test device_auth::tests::test_standard_limit ... ok [INFO] [stdout] test device_registry::tests::test_authorized_count_excludes_deauthorized ... ok [INFO] [stdout] test device_registry::tests::test_authorized_devices_list ... ok [INFO] [stdout] test device_registry::tests::test_deauthorize_frees_slot ... ok [INFO] [stdout] test device_registry::tests::test_deauthorized_record ... ok [INFO] [stdout] test device_registry::tests::test_deauthorize_nonexistent_returns_false ... ok [INFO] [stdout] test device_registry::tests::test_desktop_is_not_mobile ... ok [INFO] [stdout] test device_registry::tests::test_device_type_name_non_empty ... ok [INFO] [stdout] test entitlement::tests::test_bundle_does_not_require_subscription ... ok [INFO] [stdout] test device_registry::tests::test_different_users_independent_limits ... ok [INFO] [stdout] test device_registry::tests::test_new_record_is_authorized ... ok [INFO] [stdout] test device_registry::tests::test_register_exceeds_limit ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_ctr_empty_input ... ok [INFO] [stdout] test cmaf_encrypt::tests::test_cbcs_partial_block_preserved ... ok [INFO] [stdout] test cpix::tests::test_xml_with_special_characters ... ok [INFO] [stdout] test device_registry::tests::test_register_single_device ... ok [INFO] [stdout] test device_registry::tests::test_remove_nonexistent_returns_false ... ok [INFO] [stdout] test device_registry::tests::test_remove_device ... ok [INFO] [stdout] test device_registry::tests::test_get_device ... ok [INFO] [stdout] test entitlement::tests::test_is_not_valid_after_expiry ... ok [INFO] [stdout] test device_registry::tests::test_mobile_is_mobile ... ok [INFO] [stdout] test entitlement::tests::test_is_valid_before_expiry ... ok [INFO] [stdout] test entitlement::tests::test_store_len_and_is_empty ... ok [INFO] [stdout] test entitlement::tests::test_is_valid_at_no_expiry ... ok [INFO] [stdout] test entitlement::tests::test_is_not_valid_when_revoked ... ok [INFO] [stdout] test entitlement::tests::test_store_revoke_nonexistent_returns_false ... ok [INFO] [stdout] test entitlement::tests::test_store_valid_for_user ... ok [INFO] [stdout] test entitlement::tests::test_label_is_non_empty ... ok [INFO] [stdout] test entitlement::tests::test_trial_requires_subscription ... ok [INFO] [stdout] test entitlement::tests::test_subscription_requires_subscription ... ok [INFO] [stdout] test entitlement::tests::test_store_revoke ... ok [INFO] [stdout] test geo_fence::tests::test_add_region_group_to_rule ... ok [INFO] [stdout] test entitlement::tests::test_purchase_does_not_require_subscription ... ok [INFO] [stdout] test entitlement::tests::test_rental_does_not_require_subscription ... ok [INFO] [stdout] test entitlement::tests::test_store_check_wrong_user_fails ... ok [INFO] [stdout] test device_registry::tests::test_television_is_not_mobile ... ok [INFO] [stdout] test geo_fence::tests::test_manager_priority ... ok [INFO] [stdout] test entitlement::tests::test_store_grant_and_check ... ok [INFO] [stdout] test geo_fence::tests::test_eu_region_group ... ok [INFO] [stdout] test geo_fence::tests::test_manager_remove_rules ... ok [INFO] [stdout] test geo_fence::tests::test_manager_evaluate_allow ... ok [INFO] [stdout] test geo_fence::tests::test_region_group_add_remove ... ok [INFO] [stdout] test geo_fence::tests::test_manager_register_group ... ok [INFO] [stdout] test geo_fence::tests::test_manager_evaluate_no_rules ... ok [INFO] [stdout] test geo_fence::tests::test_region_group_new ... ok [INFO] [stdout] test geo_fence::tests::test_rule_allow_list ... ok [INFO] [stdout] test geo_fence::tests::test_rule_count ... ok [INFO] [stdout] test geo_fence::tests::test_rule_deny_list ... ok [INFO] [stdout] test geo_fence::tests::test_rule_unrestricted ... ok [INFO] [stdout] test geo_fence::tests::test_temporal_open_ended ... ok [INFO] [stdout] test geo_fence::tests::test_temporal_validity ... ok [INFO] [stdout] test hw_key_store::tests::test_delete_key_prevents_unseal ... ok [INFO] [stdout] test hw_key_store::tests::test_delete_nonexistent_returns_error ... ok [INFO] [stdout] test hw_key_store::tests::test_detect_hw_backend_returns_valid_store ... ok [INFO] [stdout] test hw_key_store::tests::test_empty_key_import_fails ... ok [INFO] [stdout] test hw_key_store::tests::test_export_wrapped_differs_from_plaintext ... ok [INFO] [stdout] test hw_key_store::tests::test_get_descriptor_returns_metadata ... ok [INFO] [stdout] test hw_key_store::tests::test_key_descriptor_is_expired ... ok [INFO] [stdout] test hw_key_store::tests::test_import_non_exportable_blocks_export ... ok [INFO] [stdout] test hw_key_store::tests::test_hw_backend_display ... ok [INFO] [stdout] test hw_key_store::tests::test_tpm_backend_type ... ok [INFO] [stdout] test hw_key_store::tests::test_import_and_unseal_roundtrip ... ok [INFO] [stdout] test hw_key_store::tests::test_key_expiry_blocks_unseal ... ok [INFO] [stdout] test key_lifecycle::tests::test_generate_256_key_length ... ok [INFO] [stdout] test key_lifecycle::tests::test_export_keystore_is_valid_json_like ... ok [INFO] [stdout] test key_lifecycle::tests::test_generate_128_key_length ... ok [INFO] [stdout] test hw_key_store::tests::test_tpm_store_import_and_unseal ... ok [INFO] [stdout] test hw_key_store::tests::test_software_backend_type ... ok [INFO] [stdout] test hw_key_store::tests::test_secure_enclave_store_import_and_unseal ... ok [INFO] [stdout] test key_lifecycle::tests::test_key_id_is_hex_of_first_8_bytes ... ok [INFO] [stdout] test key_lifecycle::tests::test_is_valid_fresh_key ... ok [INFO] [stdout] test key_lifecycle::tests::test_is_valid_expired_key ... ok [INFO] [stdout] test key_lifecycle::tests::test_key_store_active_keys ... ok [INFO] [stdout] test key_lifecycle::tests::test_key_store_full_error ... ok [INFO] [stdout] test key_lifecycle::tests::test_is_valid_usage_exhausted ... ok [INFO] [stdout] test key_lifecycle::tests::test_key_store_store_and_get ... ok [INFO] [stdout] test key_lifecycle::tests::test_key_store_revoke ... ok [INFO] [stdout] test key_lifecycle::tests::test_record_usage_increments ... ok [INFO] [stdout] test key_lifecycle::tests::test_key_store_new ... ok [INFO] [stdout] test key_management::tests::test_content_key_with_expiry ... ok [INFO] [stdout] test key_management::tests::test_fixed_content_key_expired ... ok [INFO] [stdout] test key_management::tests::test_content_key_new ... ok [INFO] [stdout] test key_lifecycle::tests::test_to_hex_length ... ok [INFO] [stdout] test key_lifecycle::tests::test_key_store_prune_expired ... ok [INFO] [stdout] test hw_key_store::tests::test_multiple_keys_independent ... ok [INFO] [stdout] test hw_key_store::tests::test_secure_enclave_backend_type ... ok [INFO] [stdout] test key_management::tests::test_fixed_key_store_expire_old_keys ... ok [INFO] [stdout] test key_management::tests::test_fixed_key_store_insert_and_find ... ok [INFO] [stdout] test key_management::tests::test_generate_key_id_length ... ok [INFO] [stdout] test key_management::tests::test_fixed_content_key_kid_hex ... ok [INFO] [stdout] test key_management::tests::test_generate_key_id_sequential_differ ... ok [INFO] [stdout] test key_management::tests::test_fixed_key_store_active_keys ... ok [INFO] [stdout] test key_management::tests::test_hex_encode ... ok [INFO] [stdout] test key_management::tests::test_is_expired_future ... ok [INFO] [stdout] test key_management::tests::test_is_expired_at_boundary ... ok [INFO] [stdout] test key_management::tests::test_is_expired_no_expiry ... ok [INFO] [stdout] test key_management::tests::test_is_expired_past ... ok [INFO] [stdout] test key_management::tests::test_fixed_content_key_not_expired_no_expiry ... ok [INFO] [stdout] test key_management::tests::test_key_derivation_deterministic ... ok [INFO] [stdout] test key_management::tests::test_key_store_purge_expired ... ok [INFO] [stdout] test key_management::tests::test_key_store_revoke ... ok [INFO] [stdout] test key_management::tests::test_key_store_store_and_retrieve ... ok [INFO] [stdout] test key_management::tests::test_key_with_custom_iv ... ok [INFO] [stdout] test key_management::tests::test_key_derivation_different_content_ids ... ok [INFO] [stdout] test key_management::tests::test_key_derivation_different_masters ... ok [INFO] [stdout] test key_management::tests::test_key_derivation_produces_16_bytes ... ok [INFO] [stdout] test key_management::tests::test_rotation_policy_exact_boundary ... ok [INFO] [stdout] test key_management::tests::test_key_id_hex ... ok [INFO] [stdout] test key_management::tests::test_key_store_count ... ok [INFO] [stdout] test key_management::tests::test_rotation_policy_should_rotate_false ... ok [INFO] [stdout] test key_rotation::tests::test_counter_key_period_sensitive ... ok [INFO] [stdout] test key_management::tests::test_rotation_policy_should_rotate_true ... ok [INFO] [stdout] test key_rotation::tests::test_counter_key_deterministic ... ok [INFO] [stdout] test key_rotation::tests::test_counter_manager_token_validation ... ok [INFO] [stdout] test key_rotation::tests::test_current_key ... ok [INFO] [stdout] test key_rotation::tests::test_hkdf_key_deterministic ... ok [INFO] [stdout] test key_rotation::tests::test_evict_old_keys ... ok [INFO] [stdout] test key_rotation::tests::test_hkdf_key_master_sensitive ... ok [INFO] [stdout] test key_rotation::tests::test_hkdf_key_period_sensitive ... ok [INFO] [stdout] test key_rotation::tests::test_hkdf_manager_full_rotation ... ok [INFO] [stdout] test key_rotation::tests::test_hmac_sha256_deterministic ... ok [INFO] [stdout] test key_rotation::tests::test_in_overlap_window ... ok [INFO] [stdout] test key_rotation::tests::test_hmac_sha256_key_sensitivity ... ok [INFO] [stdout] test key_rotation::tests::test_key_for_period_cached ... ok [INFO] [stdout] test key_rotation::tests::test_key_for_period_counter ... ok [INFO] [stdout] test key_rotation::tests::test_key_for_period_hkdf ... ok [INFO] [stdout] test key_rotation::tests::test_key_for_period_random ... ok [INFO] [stdout] test key_rotation::tests::test_overlap_duration_accessor ... ok [INFO] [stdout] test key_rotation::tests::test_period_for_timestamp ... ok [INFO] [stdout] test key_rotation::tests::test_period_token_deterministic ... ok [INFO] [stdout] test key_rotation::tests::test_period_token_wrong_period ... ok [INFO] [stdout] test key_rotation::tests::test_period_token_valid ... ok [INFO] [stdout] test key_rotation::tests::test_period_token_wrong_key ... ok [INFO] [stdout] test key_rotation::tests::test_preload_future_keys ... ok [INFO] [stdout] test key_rotation::tests::test_random_key_len ... ok [INFO] [stdout] test key_rotation::tests::test_random_key_period_sensitive ... ok [INFO] [stdout] test key_rotation::tests::test_rotation_interval_accessor ... ok [INFO] [stdout] test key_rotation::tests::test_sha256_abc ... ok [INFO] [stdout] test key_rotation::tests::test_sha256_empty ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_active_key_none_when_empty ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_keys_valid_at_after_expiry ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_rotation_event_new ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_rotation_interval_every_seconds ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_rotation_interval_manual_no_next ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_schedule_add_first_key ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_schedule_manual_not_due ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_schedule_max_history ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_schedule_rotation_due ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_transition_window_none ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_schedule_rotate_key ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_versioned_key_no_expiry ... ok [INFO] [stdout] test key_rotation_schedule::tests::test_versioned_key_valid_at ... ok [INFO] [stdout] test license_chain::tests::test_chain_add_and_get ... ok [INFO] [stdout] test license_chain::tests::test_chain_ancestors ... ok [INFO] [stdout] test license_chain::tests::test_chain_default ... ok [INFO] [stdout] test license_chain::tests::test_chain_remove ... ok [INFO] [stdout] test license_chain::tests::test_chain_leaves ... ok [INFO] [stdout] test license_chain::tests::test_chain_roots ... ok [INFO] [stdout] test license_chain::tests::test_chain_effective_constraints ... ok [INFO] [stdout] test hw_key_store::tests::test_find_by_label ... ok [INFO] [stdout] test hw_key_store::tests::test_list_keys_counts ... ok [INFO] [stdout] test license_chain::tests::test_chain_validate_empty ... ok [INFO] [stdout] test license_chain::tests::test_chain_validate_broken_link ... ok [INFO] [stdout] test license_chain::tests::test_chain_validate_valid ... ok [INFO] [stdout] test license_chain::tests::test_constraint_territory_summary ... ok [INFO] [stdout] test license_chain::tests::test_leaf_node_creation ... ok [INFO] [stdout] test license_chain::tests::test_license_constraint_summary ... ok [INFO] [stdout] test license_chain::tests::test_license_type_display ... ok [INFO] [stdout] test license_chain::tests::test_node_expired ... ok [INFO] [stdout] test license_chain::tests::test_node_not_yet_valid ... ok [INFO] [stdout] test license_chain::tests::test_node_with_priority ... ok [INFO] [stdout] test license_chain::tests::test_root_node_creation ... ok [INFO] [stdout] test license_server::tests::test_allow_download_adds_tracks ... ok [INFO] [stdout] test license_server::tests::test_cache_hit_returns_same_response ... ok [INFO] [stdout] test license_server::tests::test_different_key_ids_different_keys ... ok [INFO] [stdout] test license_server::tests::test_empty_key_id_returns_error ... ok [INFO] [stdout] test license_server::tests::test_issue_license_basic ... ok [INFO] [stdout] test license_server::tests::test_issue_license_clearkey_shorter_expiry ... ok [INFO] [stdout] test license_chain::tests::test_chain_depth ... ok [INFO] [stdout] test license_server::tests::test_issue_license_playready_expiry ... ok [INFO] [stdout] test license_server::tests::test_license_cache_eviction ... ok [INFO] [stdout] test license_server::tests::test_license_cache_update_existing ... ok [INFO] [stdout] test license_server::tests::test_no_download_restricts_tracks ... ok [INFO] [stdout] test license_server::tests::test_output_protection_ordering ... ok [INFO] [stdout] test license_server::tests::test_with_token ... ok [INFO] [stdout] test license_validator::tests::test_hmac_sha256_rfc4231_tc1 ... ok [INFO] [stdout] test license_validator::tests::test_is_expired_at_false ... ok [INFO] [stdout] test license_validator::tests::test_is_expired_at_true ... ok [INFO] [stdout] test license_validator::tests::test_max_resolution_roundtrip ... ok [INFO] [stdout] test license_validator::tests::test_missing_separator_rejected ... ok [INFO] [stdout] test license_validator::tests::test_sha256_deterministic ... ok [INFO] [stdout] test license_validator::tests::test_tampered_payload_rejected ... ok [INFO] [stdout] test license_validator::tests::test_validate_at_not_expired ... ok [INFO] [stdout] test license_validator::tests::test_validate_at_expired ... ok [INFO] [stdout] test license_validator::tests::test_wrong_key_rejected ... ok [INFO] [stdout] test managed_license::tests::test_acquire_expired_license ... ok [INFO] [stdout] test license_validator::tests::test_sha256_differs_on_input ... ok [INFO] [stdout] test managed_license::tests::test_acquire_play_count_exhausted ... ok [INFO] [stdout] test license_validator::tests::test_sha256_abc ... ok [INFO] [stdout] test license_validator::tests::test_sha256_empty ... ok [INFO] [stdout] test license_validator::tests::test_validate_all_permissions ... ok [INFO] [stdout] test license_validator::tests::test_zero_max_resolution ... ok [INFO] [stdout] test license_validator::tests::test_sign_validate_roundtrip ... ok [INFO] [stdout] test license_chain::tests::test_chain_validate_expired ... ok [INFO] [stdout] test license_validator::tests::test_validate_preserves_token_string ... ok [INFO] [stdout] test managed_license::tests::test_acquire_region_not_allowed ... ok [INFO] [stdout] test license_validator::tests::test_validate_play_only ... ok [INFO] [stdout] test managed_license::tests::test_revoke_consumer_licenses ... ok [INFO] [stdout] test managed_license::tests::test_revoke_license ... ok [INFO] [stdout] test managed_license::tests::test_acquire_returns_key ... ok [INFO] [stdout] test managed_license::tests::test_stats_active_count ... ok [INFO] [stdout] test managed_license::tests::test_acquire_wrong_consumer ... ok [INFO] [stdout] test managed_license::tests::test_issue_license_basic ... ok [INFO] [stdout] test managed_license::tests::test_issue_license_key_not_found ... ok [INFO] [stdout] test managed_license::tests::test_play_count_decrements ... ok [INFO] [stdout] test managed_license::tests::test_acquire_region_allowed ... ok [INFO] [stdout] test multi_drm::tests::test_combined_pssh_contains_all ... ok [INFO] [stdout] test multi_drm::tests::test_packager_creation ... ok [INFO] [stdout] test multi_drm::tests::test_multi_target_packaging ... ok [INFO] [stdout] test multi_drm::tests::test_packager_invalid_content_key_length ... ok [INFO] [stdout] test multi_drm::tests::test_dash_content_protection_generated ... ok [INFO] [stdout] test multi_drm::tests::test_packager_no_targets ... ok [INFO] [stdout] test multi_drm::tests::test_packager_invalid_key_id_length ... ok [INFO] [stdout] test multi_drm::tests::test_drm_target_system_id_bytes ... ok [INFO] [stdout] test multi_drm::tests::test_drm_target_with_init_data ... ok [INFO] [stdout] test multi_drm::tests::test_hls_clearkey_tag ... ok [INFO] [stdout] test multi_drm::tests::test_hls_key_tag_fairplay ... ok [INFO] [stdout] test multi_drm::tests::test_hls_key_tag_widevine ... ok [INFO] [stdout] test multi_drm::tests::test_hls_playready_tag ... ok [INFO] [stdout] test multi_drm::tests::test_packaging_result_key_fields ... ok [INFO] [stdout] test multi_drm::tests::test_pssh_v0_no_key_id ... ok [INFO] [stdout] test multi_drm::tests::test_pssh_v1_has_key_id ... ok [INFO] [stdout] test multi_drm::tests::test_single_target_packaging ... ok [INFO] [stdout] test multi_key::tests::test_all_key_ids ... ok [INFO] [stdout] test multi_key::tests::test_key_period_assign_get ... ok [INFO] [stdout] test multi_key::tests::test_builder_full ... ok [INFO] [stdout] test multi_drm::tests::test_standard_multi_drm ... ok [INFO] [stdout] test multi_key::tests::test_key_period_duration ... ok [INFO] [stdout] test multi_key::tests::test_key_period_contains ... ok [INFO] [stdout] test multi_key::tests::test_key_slot_valid_aes128 ... ok [INFO] [stdout] test multi_key::tests::test_key_period_open_ended ... ok [INFO] [stdout] test multi_key::tests::test_key_slot_new ... ok [INFO] [stdout] test multi_key::tests::test_scheme_resolve_from_period ... ok [INFO] [stdout] test multi_key::tests::test_scheme_validate_bad_slot_ref ... ok [INFO] [stdout] test multi_key::tests::test_scheme_resolve_no_match ... ok [INFO] [stdout] test multi_key::tests::test_scheme_resolve_fallback_default ... ok [INFO] [stdout] test multi_key::tests::test_scheme_add_slot ... ok [INFO] [stdout] test offline::tests::test_license_status_expired ... ok [INFO] [stdout] test offline::tests::test_license_status_not_found ... ok [INFO] [stdout] test offline::tests::test_license_status_valid ... ok [INFO] [stdout] test multi_key::tests::test_scheme_validate_ok ... ok [INFO] [stdout] test offline::tests::test_license_status_expiring ... ok [INFO] [stdout] test offline::tests::test_needs_renewal ... ok [INFO] [stdout] test offline::tests::test_renewal_not_renewable ... ok [INFO] [stdout] test offline::tests::test_renewal_success ... ok [INFO] [stdout] test multi_drm::tests::test_init_data_appears_in_pssh ... ok [INFO] [stdout] test offline::tests::test_retrieve_not_found ... ok [INFO] [stdout] test offline::tests::test_purge_expired ... ok [INFO] [stdout] test offline::tests::test_persist_updates_existing ... ok [INFO] [stdout] test offline::tests::test_renewal_not_found ... ok [INFO] [stdout] test offline::tests::test_persist_and_retrieve ... ok [INFO] [stdout] test output_control::tests::test_all_allowed_returns_true_when_permissive ... ok [INFO] [stdout] test output_control::tests::test_internal_always_allowed ... ok [INFO] [stdout] test output_control::tests::test_output_action_display ... ok [INFO] [stdout] test output_control::tests::test_any_blocked_returns_true ... ok [INFO] [stdout] test output_control::tests::test_default_policy_is_permissive ... ok [INFO] [stdout] test output_control::tests::test_evaluate_all_filters_inactive ... ok [INFO] [stdout] test output_control::tests::test_hdcp_display ... ok [INFO] [stdout] test output_control::tests::test_hdcp_none_satisfies_none ... ok [INFO] [stdout] test output_control::tests::test_hdcp_version_not_satisfies_lower ... ok [INFO] [stdout] test output_control::tests::test_hdcp_version_satisfies_higher ... ok [INFO] [stdout] test multi_key::tests::test_scheme_validate_overlap ... ok [INFO] [stdout] test output_control::tests::test_hdcp_version_satisfies_same ... ok [INFO] [stdout] test offline::tests::test_is_expired ... ok [INFO] [stdout] test output_control::tests::test_output_descriptor_max_pixels ... ok [INFO] [stdout] test output_control::tests::test_output_descriptor_new ... ok [INFO] [stdout] test output_control::tests::test_output_type_display ... ok [INFO] [stdout] test output_control::tests::test_override_takes_precedence ... ok [INFO] [stdout] test output_control::tests::test_permissive_policy_allows_everything ... ok [INFO] [stdout] test output_control::tests::test_strict_policy_blocks_screen_capture ... ok [INFO] [stdout] test output_control::tests::test_strict_policy_allows_hdcp22 ... ok [INFO] [stdout] test playback_policy::tests::test_description_geo_restricted ... ok [INFO] [stdout] test playback_policy::tests::test_description_no_offline ... ok [INFO] [stdout] test playback_policy::tests::test_empty_policy_allows_all ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_clean_context_no_restrictions ... ok [INFO] [stdout] test output_control::tests::test_strict_policy_blocks_analog ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_geo_restriction_correct_region ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_download_denied ... ok [INFO] [stdout] test playback_policy::tests::test_description_max_streams ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_geo_restriction_wrong_region ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_hdcp_required_unavailable ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_multiple_violations ... ok [INFO] [stdout] test playback_policy::tests::test_description_no_download ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_stream_limit_not_reached ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_offline_denied ... ok [INFO] [stdout] test playback_rules::tests::test_multiple_violations_all_reported ... ok [INFO] [stdout] test playback_rules::tests::test_no_restrictions_allows ... ok [INFO] [stdout] test playback_rules::tests::test_no_screen_capture_fails_when_capture_present ... ok [INFO] [stdout] test playback_policy::tests::test_evaluate_stream_limit_reached ... ok [INFO] [stdout] test playback_policy::tests::test_policy_no_download ... ok [INFO] [stdout] test playback_policy::tests::test_policy_no_offline ... ok [INFO] [stdout] test playback_rules::tests::test_hdcp_required_fails_when_absent ... ok [INFO] [stdout] test playback_rules::tests::test_hdcp_required_passes_when_present ... ok [INFO] [stdout] test playback_rules::tests::test_max_resolution_fails_when_too_high ... ok [INFO] [stdout] test playback_policy::tests::test_policy_max_streams ... ok [INFO] [stdout] test playback_rules::tests::test_no_screen_capture_passes_when_no_capture ... ok [INFO] [stdout] test playback_rules::tests::test_offline_only_fails_when_online ... ok [INFO] [stdout] test playback_rules::tests::test_online_only_passes_when_online ... ok [INFO] [stdout] test playback_rules::tests::test_region_denied_for_unlisted_country ... ok [INFO] [stdout] test playback_rules::tests::test_rental_expiry_fails_when_exceeded ... ok [INFO] [stdout] test playback_rules::tests::test_online_only_fails_when_offline ... ok [INFO] [stdout] test playback_rules::tests::test_rules_is_empty ... ok [INFO] [stdout] test playback_rules::tests::test_rental_expiry_passes_within_limit ... ok [INFO] [stdout] test policy::tests::test_allows_resolution_within_limits ... ok [INFO] [stdout] test playback_rules::tests::test_region_allowed_passes ... ok [INFO] [stdout] test policy::tests::test_can_play ... ok [INFO] [stdout] test playback_rules::tests::test_max_resolution_passes ... ok [INFO] [stdout] test output_control::tests::test_strict_policy_downgrades_low_hdcp ... ok [INFO] [stdout] test policy::tests::test_constraint_deny_output ... ok [INFO] [stdout] test policy::tests::test_constraint_output_allow ... ok [INFO] [stdout] test policy::tests::test_default_download_allows_4k ... ok [INFO] [stdout] test policy::tests::test_default_streaming_hd_not_4k ... ok [INFO] [stdout] test policy::tests::test_drm_policy_allows_output ... ok [INFO] [stdout] test policy::tests::test_drm_policy_is_rental ... ok [INFO] [stdout] test policy::tests::test_drm_policy_not_rental ... ok [INFO] [stdout] test policy::tests::test_drm_policy_rental_expiry_propagation ... ok [INFO] [stdout] test policy::tests::test_output_control_allow_is_allowed ... ok [INFO] [stdout] test policy::tests::test_plays_remaining_saturates ... ok [INFO] [stdout] test policy::tests::test_output_control_restrict_is_allowed ... ok [INFO] [stdout] test policy::tests::test_plays_remaining_zero_used ... ok [INFO] [stdout] test policy::tests::test_rental_expired_after_duration ... ok [INFO] [stdout] test policy::tests::test_output_control_deny ... ok [INFO] [stdout] test policy_engine::tests::test_country_code_uppercase ... ok [INFO] [stdout] test policy::tests::test_rental_not_expired_immediately ... ok [INFO] [stdout] test policy_engine::tests::test_policy_geo_block ... ok [INFO] [stdout] test policy_engine::tests::test_geo_allowlist_permits ... ok [INFO] [stdout] test policy::tests::test_rental_not_expired_before_duration ... ok [INFO] [stdout] test policy_engine::tests::test_policy_permissive_allows_all ... ok [INFO] [stdout] test policy_engine::tests::test_geo_denylist_permits ... ok [INFO] [stdout] test policy_engine::tests::test_geo_unrestricted ... ok [INFO] [stdout] test policy_engine::tests::test_offline_denied ... ok [INFO] [stdout] test policy_engine::tests::test_offline_with_duration ... ok [INFO] [stdout] test policy_engine::tests::test_offline_with_play_count ... ok [INFO] [stdout] test policy_engine::tests::test_play_window_bounded_inside ... ok [INFO] [stdout] test policy_engine::tests::test_policy_rental_expired ... ok [INFO] [stdout] test policy_engine::tests::test_play_window_open_always_true ... ok [INFO] [stdout] test policy_engine::tests::test_policy_time_window_block ... ok [INFO] [stdout] test policy_engine::tests::test_policy_decision_allowed_has_cap ... ok [INFO] [stdout] test pssh::tests::test_builder_with_key_ids ... ok [INFO] [stdout] test pssh::tests::test_drm_system_name ... ok [INFO] [stdout] test pssh::tests::test_parse_empty_data_field ... ok [INFO] [stdout] test pssh::tests::test_parse_invalid_box_type ... ok [INFO] [stdout] test pssh::tests::test_parse_real_multi_drm_concatenated_pssh ... ok [INFO] [stdout] test pssh::tests::test_parse_real_playready_pssh_v0 ... ok [INFO] [stdout] test pssh::tests::test_parse_real_widevine_pssh_v0 ... ok [INFO] [stdout] test pssh::tests::test_parse_real_widevine_pssh_v1 ... ok [INFO] [stdout] test pssh::tests::test_parse_v0_box ... ok [INFO] [stdout] test pssh::tests::test_parse_multiple_boxes ... ok [INFO] [stdout] test policy_engine::tests::test_policy_offline_block ... ok [INFO] [stdout] test policy_engine::tests::test_resolution_cap_ordering ... ok [INFO] [stdout] test pssh::tests::test_build_pssh_v1_no_kids ... ok [INFO] [stdout] test pssh::tests::test_build_pssh_v1_size_field_matches_actual_length ... ok [INFO] [stdout] test pssh::tests::test_build_pssh_v1_with_kids ... ok [INFO] [stdout] test pssh::tests::test_builder_basic ... ok [INFO] [stdout] test pssh::tests::test_parse_v1_box ... ok [INFO] [stdout] test pssh::tests::test_pssh_box_v1_drm_system_name ... ok [INFO] [stdout] test rate_limit::tests::test_client_banned_error_display ... ok [INFO] [stdout] test rate_limit::tests::test_composite_global_blocks ... ok [INFO] [stdout] test pssh::tests::test_playready_pssh_system_id_recognition ... ok [INFO] [stdout] test rate_limit::tests::test_composite_per_client_blocks ... ok [INFO] [stdout] test rate_limit::tests::test_composite_both_pass ... ok [INFO] [stdout] test rate_limit::tests::test_per_client_ban ... ok [INFO] [stdout] test pssh::tests::test_pssh_box_v1_serialize_roundtrip ... ok [INFO] [stdout] test pssh::tests::test_serialize_roundtrip_v0 ... ok [INFO] [stdout] test pssh::tests::test_widevine_pssh_serialization_spec_compliance ... ok [INFO] [stdout] test rate_limit::tests::test_per_client_ban_expires ... ok [INFO] [stdout] test pssh::tests::test_serialize_roundtrip_v1 ... ok [INFO] [stdout] test pssh::tests::test_system_id_constants_length ... ok [INFO] [stdout] test rate_limit::tests::test_per_client_basic ... ok [INFO] [stdout] test rate_limit::tests::test_per_client_evict_stale ... ok [INFO] [stdout] test rate_limit::tests::test_rate_limit_error_display ... ok [INFO] [stdout] test rate_limit::tests::test_sliding_window_basic ... ok [INFO] [stdout] test rate_limit::tests::test_sliding_window_exhaustion ... ok [INFO] [stdout] test rate_limit::tests::test_sliding_window_remaining ... ok [INFO] [stdout] test rate_limit::tests::test_token_bucket_acquire_n ... ok [INFO] [stdout] test rate_limit::tests::test_sliding_window_slot_expiry ... ok [INFO] [stdout] test rate_limit::tests::test_token_bucket_acquire ... ok [INFO] [stdout] test rate_limit::tests::test_token_bucket_initial_capacity ... ok [INFO] [stdout] test rate_limit::tests::test_token_bucket_refill ... ok [INFO] [stdout] test rate_limit::tests::test_token_bucket_exhaustion ... ok [INFO] [stdout] test rate_limit::tests::test_token_bucket_refill_capped ... ok [INFO] [stdout] test session_token::tests::test_claim_as_text_wrong_variant_returns_none ... ok [INFO] [stdout] test rate_limit::tests::test_token_bucket_time_until_available ... ok [INFO] [stdout] test session_token::tests::test_is_valid_at_boundary ... ok [INFO] [stdout] test session_token::tests::test_not_yet_valid_rejected ... ok [INFO] [stdout] test session_token::tests::test_is_signed_false_before_sign ... ok [INFO] [stdout] test session_token::tests::test_required_claim_present_passes ... ok [INFO] [stdout] test session_token::tests::test_set_and_retrieve_flag_claim ... ok [INFO] [stdout] test session_token::tests::test_set_and_retrieve_integer_claim ... ok [INFO] [stdout] test session_token::tests::test_set_and_retrieve_text_claim ... ok [INFO] [stdout] test session_token::tests::test_is_signed_true_after_sign ... ok [INFO] [stdout] test session_token::tests::test_unsigned_token_rejected ... ok [INFO] [stdout] test session_token::tests::test_valid_token_passes ... ok [INFO] [stdout] test session_token::tests::test_missing_required_claim_rejected ... ok [INFO] [stdout] test session_token::tests::test_expired_token_rejected ... ok [INFO] [stdout] test session_token::tests::test_claim_as_integer_wrong_variant_returns_none ... ok [INFO] [stdout] test session_token::tests::test_validation_error_display ... ok [INFO] [stdout] test rate_limit::tests::test_per_client_isolation ... ok [INFO] [stdout] test tests::test_drm_system_from_uuid ... ok [INFO] [stdout] test tests::test_drm_system_uuid ... ok [INFO] [stdout] test token::tests::test_has_permission_hdcp ... ok [INFO] [stdout] test token::tests::test_has_permission_play ... ok [INFO] [stdout] test session_token::tests::test_wrong_secret_rejected ... ok [INFO] [stdout] test token::tests::test_jwt_like_different_contents_differ ... ok [INFO] [stdout] test token::tests::test_jwt_like_encode_decode_no_max_plays ... ok [INFO] [stdout] test token::tests::test_jwt_like_encode_decode_max_plays ... ok [INFO] [stdout] test tests::test_memory_key_provider ... ok [INFO] [stdout] test token::tests::test_token_expired ... ok [INFO] [stdout] test token::tests::test_jwt_like_encode_decode_with_ips ... ok [INFO] [stdout] test token::tests::test_jwt_like_signature_not_empty ... ok [INFO] [stdout] test token::tests::test_multiple_tokens_unique_ids ... ok [INFO] [stdout] test token::tests::test_token_not_expired ... ok [INFO] [stdout] test token::tests::test_token_status_is_valid ... ok [INFO] [stdout] test token::tests::test_jwt_like_encode_decode_roundtrip ... ok [INFO] [stdout] test token::tests::test_validator_invalid_empty_content ... ok [INFO] [stdout] test token::tests::test_validator_invalid_empty_user ... ok [INFO] [stdout] test token::tests::test_token_claims_allows_ip_restricted_match ... ok [INFO] [stdout] test token::tests::test_validator_expired ... ok [INFO] [stdout] test token::tests::test_remaining_s ... ok [INFO] [stdout] test token::tests::test_token_claims_allows_ip_empty_list ... ok [INFO] [stdout] test token::tests::test_token_claims_is_expired_false ... ok [INFO] [stdout] test token::tests::test_output_protection_permission ... ok [INFO] [stdout] test token::tests::test_token_claims_is_expired_true ... ok [INFO] [stdout] test token::tests::test_validator_revoked ... ok [INFO] [stdout] test token::tests::test_with_permissions_replaces ... ok [INFO] [stdout] test token::tests::test_validator_valid ... ok [INFO] [stdout] test watermark_detect::tests::test_accumulator_reset ... ok [INFO] [stdout] test watermark_detect::tests::test_accumulator_overflow ... ok [INFO] [stdout] test watermark_detect::tests::test_chip_sequence_deterministic ... ok [INFO] [stdout] test watermark_detect::tests::test_chip_sequence_different_bits ... ok [INFO] [stdout] test watermark_detect::tests::test_chip_sequence_only_plus_minus_one ... ok [INFO] [stdout] test watermark_detect::tests::test_accumulator_frame_count ... ok [INFO] [stdout] test watermark_detect::tests::test_detect_watermark_convenience_function ... ok [INFO] [stdout] test watermark_detect::tests::test_detect_single_frame_insufficient_data ... ok [INFO] [stdout] test watermark_detect::tests::test_detect_empty_accumulator ... ok [INFO] [stdout] test watermark_detect::tests::test_detect_single_frame_returns_correlations ... ok [INFO] [stdout] test watermark_detect::tests::test_detection_config_required_pixels ... ok [INFO] [stdout] test watermark_detect::tests::test_detect_neutral_frame ... ok [INFO] [stdout] test watermark_detect::tests::test_detection_config_for_invisible ... ok [INFO] [stdout] test watermark_detect::tests::test_detection_config_for_strong ... ok [INFO] [stdout] test watermark_detect::tests::test_embed_then_detect_simulated ... ok [INFO] [stdout] test watermark_detect::tests::test_estimate_strength_light ... ok [INFO] [stdout] test watermark_detect::tests::test_estimate_strength_medium ... ok [INFO] [stdout] test watermark_detect::tests::test_estimate_strength_strong ... ok [INFO] [stdout] test watermark_embed::tests::test_default_vod_config ... ok [INFO] [stdout] test watermark_embed::tests::test_embed_disabled ... ok [INFO] [stdout] test watermark_detect::tests::test_detection_result_meets_threshold ... ok [INFO] [stdout] test watermark_embed::tests::test_embed_every_interval ... ok [INFO] [stdout] test watermark_embed::tests::test_disabled_config_is_not_active ... ok [INFO] [stdout] test watermark_embed::tests::test_embed_zero_interval_every_frame ... ok [INFO] [stdout] test watermark_embed::tests::test_payload_decode_encode_inverse ... ok [INFO] [stdout] test watermark_embed::tests::test_payload_encode_decode_roundtrip ... ok [INFO] [stdout] test watermark_embed::tests::test_payload_encode_zero ... ok [INFO] [stdout] test watermark_embed::tests::test_payload_field_isolation ... ok [INFO] [stdout] test watermark_embed::tests::test_payload_is_empty ... ok [INFO] [stdout] test watermark_embed::tests::test_payload_is_not_empty ... ok [INFO] [stdout] test watermark_embed::tests::test_is_robust ... ok [INFO] [stdout] test watermark_detect::tests::test_multi_frame_accumulation_improves_confidence ... ok [INFO] [stdout] test watermark_embed::tests::test_embed_large_frame_number ... ok [INFO] [stdout] test aes_cbc::tests::test_cbc_large_data_roundtrip ... ok [INFO] [stdout] test watermark_embed::tests::test_snr_reduction_invisible ... ok [INFO] [stdout] test watermark_embed::tests::test_snr_reduction_values ... ok [INFO] [stdout] test watermark_embed::tests::test_strength_name ... ok [INFO] [stdout] test watermark_detect::tests::test_error_display ... ok [INFO] [stdout] test watermark_detect::tests::test_estimate_strength_invisible ... ok [INFO] [stdout] test watermark_embed::tests::test_is_invisible ... ok [INFO] [stdout] test watermark_embed::tests::test_strength_ordering ... ok [INFO] [stdout] test session_token::tests::test_token_claim_list_variant ... ok [INFO] [stdout] test token::tests::test_token_creation_fields ... ok [INFO] [stdout] test aes_ctr::tests::test_ctr_large_data ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 697 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_drm [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/buf_pool.rs - buf_pool::BufPool (line 28) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ed103f4bd9e1a43287a521c5238b19b0f44c66edc5b24336e6da24cd9f4f9cc7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ed103f4bd9e1a43287a521c5238b19b0f44c66edc5b24336e6da24cd9f4f9cc7", kill_on_drop: false }` [INFO] [stdout] ed103f4bd9e1a43287a521c5238b19b0f44c66edc5b24336e6da24cd9f4f9cc7