[INFO] fetching crate oximedia-archive 0.1.3... [INFO] testing oximedia-archive-0.1.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate oximedia-archive 0.1.3 into /workspace/builds/worker-1-tc2/source [INFO] started tweaking crates.io crate oximedia-archive 0.1.3 [INFO] finished tweaking crates.io crate oximedia-archive 0.1.3 [INFO] tweaked toml for crates.io crate oximedia-archive 0.1.3 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-archive 0.1.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-archive 0.1.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f14336ea47c659d923488ee55b2e786a89d6553a28ccccdfbab7eac4f6aff66b [INFO] running `Command { std: "docker" "start" "-a" "f14336ea47c659d923488ee55b2e786a89d6553a28ccccdfbab7eac4f6aff66b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f14336ea47c659d923488ee55b2e786a89d6553a28ccccdfbab7eac4f6aff66b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f14336ea47c659d923488ee55b2e786a89d6553a28ccccdfbab7eac4f6aff66b", kill_on_drop: false }` [INFO] [stdout] f14336ea47c659d923488ee55b2e786a89d6553a28ccccdfbab7eac4f6aff66b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 318b6cf80a1a90c71840f7e5371fe5c72d6bfca952e505aaf5371507dc6d98bf [INFO] running `Command { std: "docker" "start" "-a" "318b6cf80a1a90c71840f7e5371fe5c72d6bfca952e505aaf5371507dc6d98bf", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling const-oid v0.10.2 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling blake3 v1.8.4 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling hybrid-array v0.4.10 [INFO] [stderr] Compiling constant_time_eq v0.4.2 [INFO] [stderr] Compiling xxhash-rust v0.8.15 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling block-buffer v0.12.0 [INFO] [stderr] Compiling crypto-common v0.2.1 [INFO] [stderr] Compiling digest v0.11.2 [INFO] [stderr] Compiling sha2 v0.11.0 [INFO] [stderr] Compiling md-5 v0.11.0 [INFO] [stderr] Compiling sha1 v0.11.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tokio v1.52.0 [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-archive v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.94s [INFO] running `Command { std: "docker" "inspect" "318b6cf80a1a90c71840f7e5371fe5c72d6bfca952e505aaf5371507dc6d98bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "318b6cf80a1a90c71840f7e5371fe5c72d6bfca952e505aaf5371507dc6d98bf", kill_on_drop: false }` [INFO] [stdout] 318b6cf80a1a90c71840f7e5371fe5c72d6bfca952e505aaf5371507dc6d98bf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 00291a2184868dbb1bd7f0e6d158cc6df898f642d3121cc956fdabd130ffbfe5 [INFO] running `Command { std: "docker" "start" "-a" "00291a2184868dbb1bd7f0e6d158cc6df898f642d3121cc956fdabd130ffbfe5", kill_on_drop: false }` [INFO] [stderr] Compiling oximedia-archive v0.1.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 12.31s [INFO] running `Command { std: "docker" "inspect" "00291a2184868dbb1bd7f0e6d158cc6df898f642d3121cc956fdabd130ffbfe5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "00291a2184868dbb1bd7f0e6d158cc6df898f642d3121cc956fdabd130ffbfe5", kill_on_drop: false }` [INFO] [stdout] 00291a2184868dbb1bd7f0e6d158cc6df898f642d3121cc956fdabd130ffbfe5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 2b90e33afa0caaba3d9b733d5d3226f0b441d4b4db1fe4c40ca57c863981aa76 [INFO] running `Command { std: "docker" "start" "-a" "2b90e33afa0caaba3d9b733d5d3226f0b441d4b4db1fe4c40ca57c863981aa76", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_archive-cd4f8c1bf24e3030) [INFO] [stdout] [INFO] [stdout] running 781 tests [INFO] [stdout] test archive_verify::tests::test_parallel_verify_config_default ... ok [INFO] [stdout] test archive_verify::tests::test_manifest_checksum_tamper_detected ... ok [INFO] [stdout] test archive_verify::tests::test_manifest_build_empty ... ok [INFO] [stdout] test archive_verify::tests::test_manifest_json_roundtrip ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_checksum_mismatch_detected ... ok [INFO] [stdout] test archive_verify::tests::test_sha256_known_vector ... ok [INFO] [stdout] test archive_verify::tests::test_verify_checksum_mismatch ... ok [INFO] [stdout] test archive_verify::tests::test_verify_full_ok ... ok [INFO] [stdout] test archive_verify::tests::test_verify_missing_file ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_multiple_errors_collected ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_mixed_ok_and_fail ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_with_missing_file ... ok [INFO] [stdout] test archive_verify::tests::test_verify_checksum_ok ... ok [INFO] [stdout] test asset_manifest::tests::empty_manifest_validates_ok ... ok [INFO] [stdout] test asset_manifest::tests::empty_manifest_zero_size ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_all_ok ... ok [INFO] [stdout] test archive_verify::tests::test_verify_size_mismatch ... ok [INFO] [stdout] test asset_manifest::tests::find_by_id_returns_entry ... ok [INFO] [stdout] test archive_verify::tests::test_verify_quick_ok ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_report_duration_is_nonnegative ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_size_mismatch_detected ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_global_pool_threads_zero ... ok [INFO] [stdout] test asset_manifest::tests::empty_id_invalid ... ok [INFO] [stdout] test asset_manifest::tests::has_checksum_false_when_absent ... ok [INFO] [stdout] test asset_manifest::tests::invalid_entry_causes_error ... ok [INFO] [stdout] test asset_manifest::tests::empty_mime_invalid ... ok [INFO] [stdout] test asset_manifest::tests::entries_without_checksum_found ... ok [INFO] [stdout] test asset_manifest::tests::remove_entry_decrements_len ... ok [INFO] [stdout] test asset_manifest::tests::total_size_bytes_sums_entries ... ok [INFO] [stdout] test asset_manifest::tests::valid_entry_passes ... ok [INFO] [stdout] test asset_manifest::tests::valid_manifest_passes_validation ... ok [INFO] [stdout] test asset_manifest::tests::zero_size_invalid ... ok [INFO] [stdout] test audit_trail::tests::test_category_display ... ok [INFO] [stdout] test audit_trail::tests::test_chain_verification_ok ... ok [INFO] [stdout] test audit_trail::tests::test_event_id_display ... ok [INFO] [stdout] test audit_trail::tests::test_filter_by_actor ... ok [INFO] [stdout] test audit_trail::tests::test_filter_by_outcome ... ok [INFO] [stdout] test audit_trail::tests::test_filter_by_target ... ok [INFO] [stdout] test audit_trail::tests::test_filter_by_time_range ... ok [INFO] [stdout] test audit_trail::tests::test_metadata_on_event ... ok [INFO] [stdout] test audit_trail::tests::test_summary_by_category ... ok [INFO] [stdout] test audit_trail::tests::test_chain_hash_deterministic ... ok [INFO] [stdout] test audit_trail::tests::test_clear_trail ... ok [INFO] [stdout] test audit_trail::tests::test_filter_by_category ... ok [INFO] [stdout] test asset_manifest::tests::require_checksum_flags_missing ... ok [INFO] [stdout] test audit_trail::tests::test_record_event ... ok [INFO] [stdout] test audit_trail::tests::test_new_trail_is_empty ... ok [INFO] [stdout] test asset_manifest::tests::find_by_id_missing_returns_none ... ok [INFO] [stdout] test bagit_profile::tests::test_bag_descriptor_missing_bagit_txt_error ... ok [INFO] [stdout] test bagit_profile::tests::test_parse_profile_invalid_json_error ... ok [INFO] [stdout] test bagit_profile::tests::test_bag_descriptor_parses_minimal_bag ... ok [INFO] [stdout] test bagit_profile::tests::test_fetch_txt_forbidden_violation ... ok [INFO] [stdout] test bagit_profile::tests::test_bagit_version_required_violation ... ok [INFO] [stdout] test bagit_profile::tests::test_parse_profile_from_json ... ok [INFO] [stdout] test batch_archive::tests::test_batch_item_mark_failed ... ok [INFO] [stdout] test batch_archive::tests::test_batch_item_mark_success ... ok [INFO] [stdout] test bagit_profile::tests::test_required_bag_info_field_missing ... ok [INFO] [stdout] test bagit_profile::tests::test_required_tag_file_missing ... ok [INFO] [stdout] test bagit_profile::tests::test_bag_descriptor_parses_bag_info ... ok [INFO] [stdout] test bagit_profile::tests::test_disallowed_manifest_violation ... ok [INFO] [stdout] test bagit_profile::tests::test_required_manifest_missing_violation ... ok [INFO] [stdout] test bagit_profile::tests::test_valid_bag_conforms_to_empty_profile ... ok [INFO] [stdout] test batch_archive::tests::test_batch_job_add ... ok [INFO] [stdout] test batch_archive::tests::test_batch_process ... ok [INFO] [stdout] test batch_archive::tests::test_batch_process_failure ... ok [INFO] [stdout] test batch_archive::tests::test_batch_job_filter_rejects ... ok [INFO] [stdout] test batch_archive::tests::test_completion_ratio_partial ... ok [INFO] [stdout] test batch_archive::tests::test_batch_item_creation ... ok [INFO] [stdout] test batch_archive::tests::test_failed_indices ... ok [INFO] [stdout] test batch_archive::tests::test_filter_accept_all ... ok [INFO] [stdout] test batch_archive::tests::test_filter_exclude_pattern ... ok [INFO] [stdout] test batch_archive::tests::test_filter_extension ... ok [INFO] [stdout] test batch_archive::tests::test_retry_failed ... ok [INFO] [stdout] test batch_archive::tests::test_filter_size_range ... ok [INFO] [stdout] test batch_archive::tests::test_summary_bytes_processed ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_asset_kind_not_media_sidecar ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_find_by_id_present ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_find_by_tag ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_has_tag_false ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_asset_kind_is_media_audio ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_has_tag_true ... ok [INFO] [stdout] test batch_archive::tests::test_completion_ratio_empty ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_asset_kind_is_media_video ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_asset_kind_not_media_document ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_find_by_id_missing ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_kind_count_video ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_kind_count_zero ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_assign_entry ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_search_path_case_insensitive ... ok [INFO] [stdout] test catalog::asset_catalog_tests::test_total_size_bytes ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_add_and_count ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_all_entries_recursive ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_all_entries_recursive_leaf ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_breadcrumb_path ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_breadcrumb_path_root ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_duplicate_collection_error ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_entry_collections ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_parent_not_found_error ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_remove_entry_not_found ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_hierarchy_error_display ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_remove_leaf_collection ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_remove_entry ... ok [INFO] [stdout] test catalog::tests::test_access_level_confidential ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_root_collections ... ok [INFO] [stdout] test catalog::tests::test_access_level_public ... ok [INFO] [stdout] test catalog::tests::test_access_level_internal ... ok [INFO] [stdout] test catalog::tests::test_catalog_csv_roundtrip ... ok [INFO] [stdout] test catalog::tests::test_access_level_restricted ... ok [INFO] [stdout] test catalog::tests::test_catalog_export_oai_pmh ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_remove_non_leaf_fails ... ok [INFO] [stdout] test catalog::tests::test_catalog_import_from_csv ... ok [INFO] [stdout] test catalog::tests::test_search_by_date_range ... ok [INFO] [stdout] test catalog::tests::test_search_by_title ... ok [INFO] [stdout] test catalog::tests::test_catalog_export_csv_header ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_children_of ... ok [INFO] [stdout] test batch_archive::tests::test_extension_counts ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_children_of_leaf ... ok [INFO] [stdout] test catalog::tests::test_catalog_index_add_and_count ... ok [INFO] [stdout] test catalog_export::tests::test_csv_extension ... ok [INFO] [stdout] test catalog_export::tests::test_csv_mime ... ok [INFO] [stdout] test catalog_export::tests::test_csv_row_with_comma_in_field ... ok [INFO] [stdout] test catalog_export::tests::test_exporter_add_increments_count ... ok [INFO] [stdout] test catalog_export::tests::test_csv_row_no_special_chars ... ok [INFO] [stdout] test catalog_export::tests::test_exporter_empty_count ... ok [INFO] [stdout] test catalog_export::tests::test_ndjson_extension ... ok [INFO] [stdout] test catalog_export::tests::test_render_csv_has_header ... ok [INFO] [stdout] test catalog_export::tests::test_tsv_extension ... ok [INFO] [stdout] test catalog_export::tests::test_render_ndjson_valid_json_lines ... ok [INFO] [stdout] test catalog_export::tests::test_exporter_total_size ... ok [INFO] [stdout] test catalog_export::tests::test_tsv_row_field_count ... ok [INFO] [stdout] test cloud_backend::tests::test_bucket_config_virtual_hosted_url ... ok [INFO] [stdout] test catalog_export::tests::test_render_tsv_has_header ... ok [INFO] [stdout] test cloud_backend::tests::test_bucket_config_path_style_url ... ok [INFO] [stdout] test catalog_export::tests::test_render_csv_has_data_row ... ok [INFO] [stdout] test cloud_backend::tests::test_mock_client_delete_object ... ok [INFO] [stdout] test cloud_backend::tests::test_mock_client_head_object_missing_returns_none ... ok [INFO] [stdout] test cloud_backend::tests::test_mock_client_put_and_get ... ok [INFO] [stdout] test cloud_backend::tests::test_object_metadata_is_simple_etag ... ok [INFO] [stdout] test cloud_backend::tests::test_presign_url_contains_key ... ok [INFO] [stdout] test cloud_backend::tests::test_object_metadata_etag_value_strips_quotes ... ok [INFO] [stdout] test catalog_export::tests::test_tsv_row_contains_tab ... ok [INFO] [stdout] test cloud_backend::tests::test_object_metadata_composite_etag_not_simple ... ok [INFO] [stdout] test cloud_backend::tests::test_mock_client_list_objects_with_prefix ... ok [INFO] [stdout] test catalog_export::tests::test_ndjson_mime ... ok [INFO] [stdout] test cloud_backend::tests::test_storage_class_display ... ok [INFO] [stdout] test cloud_backend::tests::test_storage_class_immediate ... ok [INFO] [stdout] test cloud_backend::tests::test_verify_bucket_against_manifest_missing_object ... ok [INFO] [stdout] test cloud_backend::tests::test_verify_bucket_against_manifest_size_match ... ok [INFO] [stdout] test compliance_check::tests::test_compliance_report_is_compliant ... ok [INFO] [stdout] test compliance_check::tests::test_compliance_report_severity_summary ... ok [INFO] [stdout] test compliance_check::tests::test_compliance_standard_display ... ok [INFO] [stdout] test cloud_backend::tests::test_storage_class_requires_restore ... ok [INFO] [stdout] test compliance_check::tests::test_broadcast_unrated_warning ... ok [INFO] [stdout] test compliance_check::tests::test_gdpr_personal_data_no_logging ... ok [INFO] [stdout] test compliance_check::tests::test_pci_dss_unencrypted_payment ... ok [INFO] [stdout] test compliance_check::tests::test_retention_status_display ... ok [INFO] [stdout] test compliance_check::tests::test_compliance_asset_builder ... ok [INFO] [stdout] test compliance_check::tests::test_severity_ordering ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_empty_input ... ok [INFO] [stdout] test compliance_check::tests::test_violation_display ... ok [INFO] [stdout] test dedup_archive::tests::test_compute_fingerprint_deterministic ... ok [INFO] [stdout] test archive_verify::tests::test_sha256_abc ... ok [INFO] [stdout] test archive_verify::tests::test_parallel_verify_fail_fast_stops_on_first_error ... ok [INFO] [stdout] test archive_verify::tests::test_sha256_empty ... ok [INFO] [stdout] test compliance_check::tests::test_hipaa_compliant_asset ... ok [INFO] [stdout] test archive_verify::tests::test_verify_error_display ... ok [INFO] [stdout] test compliance_check::tests::test_hipaa_encryption_violation ... ok [INFO] [stdout] test compliance_check::tests::test_retention_policy_within_bounds ... ok [INFO] [stdout] test asset_manifest::tests::has_checksum_true_when_present ... ok [INFO] [stdout] test bagit_profile::tests::test_bag_descriptor_detects_fetch_txt ... ok [INFO] [stdout] test catalog::hierarchy_tests::test_collection_is_root ... ok [INFO] [stdout] test compliance_check::tests::test_retention_policy_with_max ... ok [INFO] [stdout] test dedup_archive::tests::test_default_config ... ok [INFO] [stdout] test dedup_archive::tests::test_estimated_storage ... ok [INFO] [stdout] test dedup_archive::tests::test_fingerprint_creation ... ok [INFO] [stdout] test dedup_archive::tests::test_compute_fingerprint_different_data ... ok [INFO] [stdout] test dedup_archive::tests::test_dedup_entry_refcount ... ok [INFO] [stdout] test dedup_archive::tests::test_dedup_level_display ... ok [INFO] [stdout] test dedup_archive::tests::test_fingerprint_display ... ok [INFO] [stdout] test dedup_archive::tests::test_index_contains ... ok [INFO] [stdout] test dedup_archive::tests::test_index_ingest_duplicate ... ok [INFO] [stdout] test dedup_archive::tests::test_index_ingest_new ... ok [INFO] [stdout] test dedup_archive::tests::test_index_stats ... ok [INFO] [stdout] test dedup_archive::tests::test_report_dedup_ratio ... ok [INFO] [stdout] test dedup_archive::tests::test_report_empty_index ... ok [INFO] [stdout] test dedup_archive::tests::test_report_no_duplicates ... ok [INFO] [stdout] test dedup_archive::tests::test_report_refcount_distribution ... ok [INFO] [stdout] test dedup_archive::tests::test_report_savings_percentage ... ok [INFO] [stdout] test dedup_archive::tests::test_report_summary_string ... ok [INFO] [stdout] test dedup_archive::tests::test_report_top_wasters_limit ... ok [INFO] [stdout] test dedup_archive::tests::test_rolling_hash_basic ... ok [INFO] [stdout] test dedup_report::tests::test_analyzer_one_duplicate_group ... ok [INFO] [stdout] test dedup_archive::tests::test_report_sorted_by_wasted ... ok [INFO] [stdout] test dedup_report::tests::test_build_report_from_records_convenience ... ok [INFO] [stdout] test dedup_report::tests::test_csv_escape_plain_string ... ok [INFO] [stdout] test dedup_archive::tests::test_index_release ... ok [INFO] [stdout] test dedup_report::tests::test_dedup_stats_no_duplicates ... ok [INFO] [stdout] test dedup_report::tests::test_csv_escape_comma ... ok [INFO] [stdout] test dedup_report::tests::test_dedup_stats_ratio_and_savings ... ok [INFO] [stdout] test dedup_report::tests::test_duplicate_group_single_copy_no_redundancy ... ok [INFO] [stdout] test dedup_report::tests::test_duplicate_group_reclaimable_bytes ... ok [INFO] [stdout] test dedup_archive::tests::test_report_with_duplicates ... ok [INFO] [stdout] test dedup_report::tests::test_analyzer_no_duplicates ... ok [INFO] [stdout] test dedup_report::tests::test_analyzer_multiple_duplicate_groups_sorted ... ok [INFO] [stdout] test dedup_archive::tests::test_rolling_hash_empty ... ok [INFO] [stdout] test dedup_report::tests::test_render_csv_header_and_rows ... ok [INFO] [stdout] test dedup_report::tests::test_render_json_valid ... ok [INFO] [stdout] test format_registry::tests::best_for_size_large_prefers_tape ... ok [INFO] [stdout] test format_registry::tests::best_for_size_small_not_tape ... ok [INFO] [stdout] test format_registry::tests::best_for_size_returns_none_for_empty_registry ... ok [INFO] [stdout] test dedup_report::tests::test_render_text_contains_key_fields ... ok [INFO] [stdout] test format_registry::tests::capability_lookup_zip ... ok [INFO] [stdout] test format_registry::tests::can_hold_exact_size ... ok [INFO] [stdout] test format_registry::tests::cannot_hold_over_limit ... ok [INFO] [stdout] test dedup_report::tests::test_write_report_to_file ... ok [INFO] [stdout] test format_registry::tests::default_registry_has_four_formats ... ok [INFO] [stdout] test format_registry::tests::display_names_nonempty ... ok [INFO] [stdout] test format_registry::tests::max_size_bytes_accessor ... ok [INFO] [stdout] test format_registry::tests::lto_is_tape ... ok [INFO] [stdout] test format_registry::tests::register_overrides_existing ... ok [INFO] [stdout] test format_registry::tests::sevenz_extension ... ok [INFO] [stdout] test format_registry::tests::tar_extension ... ok [INFO] [stdout] test format_registry::tests::registry_not_empty ... ok [INFO] [stdout] test format_registry::tests::zip_not_tape ... ok [INFO] [stdout] test health_dashboard::tests::test_health_trend_record ... ok [INFO] [stdout] test health_dashboard::tests::test_dashboard_builder_with_dedup ... ok [INFO] [stdout] test health_dashboard::tests::test_dashboard_builder_with_retention ... ok [INFO] [stdout] test health_dashboard::tests::test_dashboard_builder_with_scan ... ok [INFO] [stdout] test health_dashboard::tests::test_dashboard_healthy_no_alerts ... ok [INFO] [stdout] test health_dashboard::tests::test_dashboard_missing_files_alert ... ok [INFO] [stdout] test health_dashboard::tests::test_dashboard_summary_string ... ok [INFO] [stdout] test health_dashboard::tests::test_health_status_display ... ok [INFO] [stdout] test health_dashboard::tests::test_health_status_severity ... ok [INFO] [stdout] test health_dashboard::tests::test_health_trend_declining ... ok [INFO] [stdout] test health_dashboard::tests::test_health_trend_improving ... ok [INFO] [stdout] test health_dashboard::tests::test_time_series_empty ... ok [INFO] [stdout] test health_dashboard::tests::test_dashboard_builder_minimal ... ok [INFO] [stdout] test health_dashboard::tests::test_health_trend_stable ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_is_complete ... ok [INFO] [stdout] test health_dashboard::tests::test_time_series_basic ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_progress ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_json_roundtrip ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_not_complete ... ok [INFO] [stdout] test health_dashboard::tests::test_time_series_trend_slope_increasing ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_store_clear ... ok [INFO] [stdout] test health_dashboard::tests::test_trend_direction_display ... ok [INFO] [stdout] test health_dashboard::tests::test_time_series_trend_slope_decreasing ... ok [INFO] [stdout] test health_dashboard::tests::test_integrity_section_from_metrics ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_store_overwrite ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_progress_empty_file ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_store_paths ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_store_save_load ... ok [INFO] [stdout] test incremental_checksum::tests::test_compute_incremental_empty_data ... ok [INFO] [stdout] test incremental_checksum::tests::test_compute_incremental_fresh ... ok [INFO] [stdout] test incremental_checksum::tests::test_invalid_checkpoint_offset ... ok [INFO] [stdout] test incremental_checksum::tests::test_compute_incremental_resume_sha256 ... ok [INFO] [stdout] test incremental_checksum::tests::test_resumable_sha256_empty ... ok [INFO] [stdout] test incremental_checksum::tests::test_resumable_sha256_abc ... ok [INFO] [stdout] test incremental_checksum::tests::test_resumable_sha256_chunked_matches_whole ... ok [INFO] [stdout] test incremental_checksum::tests::test_resumable_sha256_save_restore ... ok [INFO] [stdout] test incremental_checksum::tests::test_compute_incremental_sha256_matches_standard ... ok [INFO] [stdout] test incremental_checksum::tests::test_sha256_state_json_roundtrip ... ok [INFO] [stdout] test incremental_checksum::tests::test_resumable_sha256_large_data ... ok [INFO] [stdout] test incremental_checksum::tests::test_checkpoint_store_remove ... ok [INFO] [stdout] test incremental_checksum::tests::test_compute_incremental_crc32_only ... ok [INFO] [stdout] test indexing::tests::test_add_tag_deduplication ... ok [INFO] [stdout] test indexing::tests::test_by_type_exact ... ok [INFO] [stdout] test indexing::tests::test_by_type_case_insensitive ... ok [INFO] [stdout] test indexing::tests::test_index_add_assigns_sequential_ids ... ok [INFO] [stdout] test indexing::tests::test_by_tag ... ok [INFO] [stdout] test indexing::tests::test_index_len ... ok [INFO] [stdout] test indexing::tests::test_index_total_size ... ok [INFO] [stdout] test indexing::tests::test_remove_entry ... ok [INFO] [stdout] test indexing::tests::test_matches_query_by_tag ... ok [INFO] [stdout] test indexing::tests::test_search_by_path_substring ... ok [INFO] [stdout] test indexing::tests::test_search_case_insensitive ... ok [INFO] [stdout] test ingest_log::tests::all_returns_all_entries ... ok [INFO] [stdout] test ingest_log::tests::checksum_error_is_error ... ok [INFO] [stdout] test ingest_log::tests::error_count_correct ... ok [INFO] [stdout] test ingest_log::tests::file_copied_is_not_error ... ok [INFO] [stdout] test ingest_log::tests::errors_returns_only_error_entries ... ok [INFO] [stdout] test ingest_log::tests::is_recent_within_window ... ok [INFO] [stdout] test ingest_log::tests::entry_with_note_stores_note ... ok [INFO] [stdout] test ingest_log::tests::label_nonempty_for_all_variants ... ok [INFO] [stdout] test ingest_log::tests::is_recent_outside_window ... ok [INFO] [stdout] test ingest_log::tests::io_error_is_error ... ok [INFO] [stdout] test ingest_log::tests::recent_entries_filters_by_window ... ok [INFO] [stdout] test indexing::tests::test_search_empty_query_returns_all ... ok [INFO] [stdout] test indexing::tests::test_remove_nonexistent_returns_false ... ok [INFO] [stdout] test ingest_log::tests::empty_log ... ok [INFO] [stdout] test ingest_log::tests::record_increments_len ... ok [INFO] [stdout] test ingest_log::tests::skipped_is_not_error ... ok [INFO] [stdout] test ingest_log::tests::success_count_correct ... ok [INFO] [stdout] test ingest_log::tests::validation_error_is_error ... ok [INFO] [stdout] test integrity::tests::test_compute_checksum_deterministic ... ok [INFO] [stdout] test integrity::tests::test_failed_entries_returns_paths ... ok [INFO] [stdout] test integrity::tests::test_scan_passing_entry ... ok [INFO] [stdout] test integrity::tests::test_scan_failing_entry ... ok [INFO] [stdout] test integrity_scan::tests::test_default_scan_policy ... ok [INFO] [stdout] test integrity::tests::test_compute_checksum_different_for_different_data ... ok [INFO] [stdout] test integrity_scan::tests::test_file_integrity_display ... ok [INFO] [stdout] test integrity::tests::test_scan_empty ... ok [INFO] [stdout] test integrity_scan::tests::test_is_healthy_threshold ... ok [INFO] [stdout] test integrity_scan::tests::test_scan_add_record_and_finish ... ok [INFO] [stdout] test integrity_scan::tests::test_group_by_status ... ok [INFO] [stdout] test integrity_scan::tests::test_scan_missing_filter ... ok [INFO] [stdout] test integrity::tests::test_scan_path_preserved ... ok [INFO] [stdout] test integrity_scan::tests::test_scan_corrupted_filter ... ok [INFO] [stdout] test integrity_scan::tests::test_scan_record_corrupted ... ok [INFO] [stdout] test integrity_scan::tests::test_scan_record_ok ... ok [INFO] [stdout] test integrity_scan::tests::test_metrics_all_ok ... ok [INFO] [stdout] test integrity::tests::test_with_correct_checksum_passes_scan ... ok [INFO] [stdout] test ltfs::tests::test_builder_with_subdir ... ok [INFO] [stdout] test integrity_scan::tests::test_metrics_empty_scan_healthy ... ok [INFO] [stdout] test integrity::tests::test_compute_checksum_empty ... ok [INFO] [stdout] test integrity_scan::tests::test_scan_record_missing ... ok [INFO] [stdout] test ltfs::tests::test_bump_generation_increments ... ok [INFO] [stdout] test ltfs::tests::test_dir_node_file_count_recursive ... ok [INFO] [stdout] test ltfs::tests::test_extent_zero_block_size_no_panic ... ok [INFO] [stdout] test ltfs::tests::test_file_node_extents_consistent ... ok [INFO] [stdout] test ltfs::tests::test_index_validate_bad_version ... ok [INFO] [stdout] test ltfs::tests::test_index_validate_empty_uuid ... ok [INFO] [stdout] test ltfs::tests::test_index_validate_ok ... ok [INFO] [stdout] test integrity_scan::tests::test_metrics_with_corruption ... ok [INFO] [stdout] test ltfs::tests::test_index_validate_zero_generation ... ok [INFO] [stdout] test ltfs::tests::test_builder_creates_correct_index ... ok [INFO] [stdout] test ltfs::tests::test_label_display ... ok [INFO] [stdout] test ltfs::tests::test_label_unsupported_version ... ok [INFO] [stdout] test ltfs::tests::test_label_version_supported ... ok [INFO] [stdout] test integrity_scan::tests::test_new_scan_not_finished ... ok [INFO] [stdout] test ltfs::tests::test_index_validate_inconsistent_extents ... ok [INFO] [stdout] test media_fingerprint::tests::test_fingerprint_algorithm_display ... ok [INFO] [stdout] test media_fingerprint::tests::test_fingerprint_from_hex ... ok [INFO] [stdout] test ltfs::tests::test_serialize_deserialize_roundtrip ... ok [INFO] [stdout] test media_fingerprint::tests::test_fingerprint_index_insert_and_search ... ok [INFO] [stdout] test ltfs::tests::test_dir_node_total_logical_bytes ... ok [INFO] [stdout] test ltfs::tests::test_extent_end_block_estimate ... ok [INFO] [stdout] test media_fingerprint::tests::test_similarity_identical ... ok [INFO] [stdout] test media_fingerprint::tests::test_duplicate_match_display ... ok [INFO] [stdout] test ltfs::tests::test_label_to_xml_contains_uuid ... ok [INFO] [stdout] test media_fingerprint::tests::test_fingerprint_display ... ok [INFO] [stdout] test media_fingerprint::tests::test_similarity_opposite ... ok [INFO] [stdout] test ltfs::tests::test_file_node_extents_inconsistent ... ok [INFO] [stdout] test media_fingerprint::tests::test_fingerprint_index_no_match ... ok [INFO] [stdout] test media_fingerprint::tests::test_fingerprint_record ... ok [INFO] [stdout] test media_fingerprint::tests::test_fingerprint_to_hex ... ok [INFO] [stdout] test media_fingerprint::tests::test_generate_average_hash ... ok [INFO] [stdout] test media_fingerprint::tests::test_generate_difference_hash ... ok [INFO] [stdout] test media_fingerprint::tests::test_hamming_distance_incompatible ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_empty_data_error ... ok [INFO] [stdout] test ltfs::tests::test_label_xml_contains_media_type ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_flac_returns_flac_format ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_id3_mp3 ... ok [INFO] [stdout] test media_fingerprint::tests::test_hamming_distance_different ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_empty_data_returns_error ... ok [INFO] [stdout] test media_fingerprint::tests::test_matches ... ok [INFO] [stdout] test media_validate::tests::test_flac_high_sample_rate ... ok [INFO] [stdout] test media_validate::tests::test_flac_invalid_sample_rate_zero ... ok [INFO] [stdout] test media_validate::tests::test_flac_invalid_channels_zero ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_unknown_format_returns_invalid ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_wav ... ok [INFO] [stdout] test media_validate::tests::test_find_bytes_empty_needle ... ok [INFO] [stdout] test media_validate::tests::test_find_bytes_found ... ok [INFO] [stdout] test media_validate::tests::test_flac_missing_marker ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_jpeg ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_jpeg_magic ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_png ... ok [INFO] [stdout] test media_fingerprint::tests::test_hamming_distance_identical ... ok [INFO] [stdout] test media_validate::tests::test_flac_valid_streaminfo ... ok [INFO] [stdout] test media_validate::tests::test_flac_wrong_first_block_type ... ok [INFO] [stdout] test media_validate::tests::test_jpeg_invalid_no_soi ... ok [INFO] [stdout] test media_validate::tests::test_jpeg_truncated_no_eoi ... ok [INFO] [stdout] test media_validate::tests::test_jpeg_valid ... ok [INFO] [stdout] test media_validate::tests::test_media_validation_result_notes_propagated ... ok [INFO] [stdout] test media_validate::tests::test_mkv_invalid_magic ... ok [INFO] [stdout] test media_validate::tests::test_mkv_no_segment_gives_warning ... ok [INFO] [stdout] test media_validate::tests::test_mkv_missing_doctype ... ok [INFO] [stdout] test media_validate::tests::test_mkv_valid_magic_doctype_segment ... ok [INFO] [stdout] test media_validate::tests::test_mp3_valid_with_sync_word ... ok [INFO] [stdout] test media_validate::tests::test_outcome_display_valid ... ok [INFO] [stdout] test media_validate::tests::test_dispatch_unknown_format ... ok [INFO] [stdout] test media_validate::tests::test_mp3_empty_data ... ok [INFO] [stdout] test media_validate::tests::test_outcome_is_err_invalid ... ok [INFO] [stdout] test media_validate::tests::test_outcome_is_ok_valid ... ok [INFO] [stdout] test media_validate::tests::test_outcome_is_err_unreadable ... ok [INFO] [stdout] test media_validate::tests::test_mp3_invalid_no_sync ... ok [INFO] [stdout] test media_validate::tests::test_outcome_is_ok_with_warnings ... ok [INFO] [stdout] test media_validate::tests::test_png_valid_grayscale ... ok [INFO] [stdout] test media_validate::tests::test_png_valid_rgb ... ok [INFO] [stdout] test media_validate::tests::test_png_invalid_bit_depth_color_type_combo ... ok [INFO] [stdout] test media_validate::tests::test_png_invalid_signature ... ok [INFO] [stdout] test media_validate::tests::test_png_valid_rgba ... ok [INFO] [stdout] test media_validate::tests::test_mp3_valid_with_id3_tag ... ok [INFO] [stdout] test media_validate::tests::test_png_missing_iend_gives_warning ... ok [INFO] [stdout] test media_validate::tests::test_png_zero_height ... ok [INFO] [stdout] test media_validate::tests::test_validation_outcome_display_unreadable ... ok [INFO] [stdout] test media_validate::tests::test_wav_invalid_marker ... ok [INFO] [stdout] test media_validate::tests::test_png_zero_width ... ok [INFO] [stdout] test media_validate::tests::test_wav_zero_channels ... ok [INFO] [stdout] test media_validate::tests::test_wav_zero_sample_rate ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_empty_assets ... ok [INFO] [stdout] test media_validate::tests::test_validation_outcome_display_warnings ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_large_asset_warning ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_no_disk_space_fails ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_obsolete_format_warning ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_preferred_format_skipped ... ok [INFO] [stdout] test media_validate::tests::test_validation_outcome_display_invalid ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_unreadable_fails ... ok [INFO] [stdout] test media_validate::tests::test_wav_no_fmt_chunk ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_migration_step_status_display ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_at_risk_succeeds ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_outcome_display ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_rollback_journal_failed_step ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_rollback_journal_lifecycle ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_rollback_journal_mark_rolled_back ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_rollback_journal_missing_step_id ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_rollback_journal_steps_needing_rollback ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_rollback_journal_record_and_query ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_rollback_summary_all_succeeded ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_rollback_journal_summary ... ok [INFO] [stdout] test migration::migration_plan_tests::test_format_support_deprecated_high_risk ... ok [INFO] [stdout] test migration::migration_plan_tests::test_format_support_fully_supported_low_risk ... ok [INFO] [stdout] test migration::migration_plan_tests::test_format_support_unsupported_critical_risk ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_plan_high_risk_by_file_count ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_plan_high_risk_by_hours ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_plan_no_high_risk ... ok [INFO] [stdout] test migration::dry_run_rollback_tests::test_dry_run_mixed_results ... ok [INFO] [stdout] test media_validate::tests::test_wav_valid_pcm ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_plan_total_files ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_risk_score_values ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_task_is_large_false ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_risk_score_ordering ... ok [INFO] [stdout] test migration::tests::test_betacam_is_obsolete ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_plan_total_hours ... ok [INFO] [stdout] test migration::migration_plan_tests::test_migration_task_is_large_true ... ok [INFO] [stdout] test migration::tests::test_estimate_cost_gb_obsolete_expensive ... ok [INFO] [stdout] test migration::tests::test_dpx_is_preferred ... ok [INFO] [stdout] test migration::tests::test_dv_is_endangered ... ok [INFO] [stdout] test migration::tests::test_format_risk_labels_non_empty ... ok [INFO] [stdout] test migration::tests::test_estimate_cost_gb_preferred_cheap ... ok [INFO] [stdout] test migration::tests::test_migration_batch_is_empty ... ok [INFO] [stdout] test migration::tests::test_format_risk_priority_ordering ... ok [INFO] [stdout] test migration::tests::test_mpeg2_is_at_risk ... ok [INFO] [stdout] test migration::tests::test_plan_migration_preferred_none ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_empty ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_blocked_action ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_estimated_bytes_only_ready ... ok [INFO] [stdout] test migration::tests::test_migration_batch_add ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_global_notes ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_json_roundtrip ... ok [INFO] [stdout] test migration::tests::test_plan_migration_at_risk_some ... ok [INFO] [stdout] test migration::tests::test_plan_migration_obsolete_to_dpx ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_ready_action ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_empty ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_entry_can_rollback_requires_success_and_backup ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_failed_entry_not_candidate ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_rollback_idempotent_state ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_skipped_precondition_not_blocking ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_mark_rolled_back_unknown_id_errors ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_success_entry_without_backup_not_candidate ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_total_cpu_secs_only_ready ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_multiple_entries_only_eligible_in_plan ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_build_rollback_plan ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_json_roundtrip ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_mark_rolled_back_ok ... ok [INFO] [stdout] test migration_dryrun::tests::test_journal_success_entry_with_backup_is_candidate ... ok [INFO] [stdout] test migration_dryrun::tests::test_planned_action_default_flags ... ok [INFO] [stdout] test migration_dryrun::tests::test_planned_action_preconditions_satisfied_empty ... ok [INFO] [stdout] test migration_dryrun::tests::test_planned_action_multiple_ok_preconditions ... ok [INFO] [stdout] test migration_dryrun::tests::test_rollback_step_fields ... ok [INFO] [stdout] test notification::tests::test_dispatcher_delivery_report ... ok [INFO] [stdout] test notification::tests::test_in_memory_channel_drain ... ok [INFO] [stdout] test notification::tests::test_in_memory_channel_filters_low_severity ... ok [INFO] [stdout] test notification::tests::test_in_memory_channel_receives_event ... ok [INFO] [stdout] test notification::tests::test_severity_ordering ... ok [INFO] [stdout] test notification::tests::test_severity_labels ... ok [INFO] [stdout] test notification::tests::test_webhook_filters_low_severity ... ok [INFO] [stdout] test notification::tests::test_event_construction_with_meta ... ok [INFO] [stdout] test notification::tests::test_event_kind_display ... ok [INFO] [stdout] test notification::tests::test_webhook_payload_serialization ... ok [INFO] [stdout] test notification::tests::test_dispatcher_notify_fixity_failure_convenience ... ok [INFO] [stdout] test notification::tests::test_file_log_channel_appends_ndjson ... ok [INFO] [stdout] test notification::tests::test_in_memory_channel_capacity_ring ... ok [INFO] [stdout] test dedup_archive::tests::test_list_duplicates ... ok [INFO] [stdout] test notification::tests::test_dispatcher_delivers_to_all_channels ... ok [INFO] [stdout] test migration_dryrun::tests::test_dry_run_plan_mixed_preconditions ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_no_algorithms ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_sha256_known_vector ... ok [INFO] [stdout] test partial_restore::tests::test_extract_batch ... ok [INFO] [stdout] test partial_restore::tests::test_extract_by_path_case_sensitive ... ok [INFO] [stdout] test partial_restore::tests::test_extract_by_path_found ... ok [INFO] [stdout] test partial_restore::tests::test_extract_by_path_not_found ... ok [INFO] [stdout] test partial_restore::tests::test_extract_by_prefix ... ok [INFO] [stdout] test preservation::spec_tests::test_audit_compliant_count ... ok [INFO] [stdout] test preservation::spec_tests::test_audit_overdue_verifications ... ok [INFO] [stdout] test preservation::spec_tests::test_digital_record_copy_count ... ok [INFO] [stdout] test partial_restore::tests::test_archive_insert_replaces ... ok [INFO] [stdout] test partial_restore::tests::test_archive_remove ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_single_algorithm_blake3 ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_all_algorithms ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_empty_data ... ok [INFO] [stdout] test preservation::spec_tests::test_digital_record_is_verification_due_false ... ok [INFO] [stdout] test parallel_checksum::tests::test_verify_checksums_mismatch ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_with_md5 ... ok [INFO] [stdout] test partial_restore::tests::test_archive_empty ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_deterministic ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_file ... ok [INFO] [stdout] test preservation::spec_tests::test_preservation_format_capacity_ordering ... ok [INFO] [stdout] test preservation::spec_tests::test_preservation_format_is_online_cloud ... ok [INFO] [stdout] test preservation::spec_tests::test_preservation_format_is_online_tape_false ... ok [INFO] [stdout] test media_validate::tests::test_find_bytes_not_found ... ok [INFO] [stdout] test preservation::spec_tests::test_digital_record_is_verification_due_true ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_file_not_found ... ok [INFO] [stdout] test preservation::spec_tests::test_preservation_format_lto9_lifetime ... ok [INFO] [stdout] test preservation::spec_tests::test_preservation_format_mdisc_lifetime ... ok [INFO] [stdout] test preservation::spec_tests::test_spec_policy_3_2_1_compliant ... ok [INFO] [stdout] test preservation::spec_tests::test_spec_policy_not_3_2_1_no_geo ... ok [INFO] [stdout] test preservation::tests::test_cloud_has_lowest_failure_rate ... ok [INFO] [stdout] test preservation::tests::test_preservation_policy_level0_no_geographic ... ok [INFO] [stdout] test preservation::tests::test_copy_is_stale ... ok [INFO] [stdout] test preservation::tests::test_manager_add_and_get ... ok [INFO] [stdout] test preservation::tests::test_manager_copies_needing_verification_empty ... ok [INFO] [stdout] test preservation::tests::test_preservation_level_copies_required ... ok [INFO] [stdout] test preservation::tests::test_preservation_level_descriptions_non_empty ... ok [INFO] [stdout] test preservation::tests::test_preservation_level_ordering ... ok [INFO] [stdout] test preservation::tests::test_preservation_policy_for_level ... ok [INFO] [stdout] test preservation::spec_tests::test_spec_policy_not_3_2_1_too_few_copies ... ok [INFO] [stdout] test preservation::tests::test_preservation_policy_level3_geographic ... ok [INFO] [stdout] test preservation::tests::test_record_compliance ... ok [INFO] [stdout] test parallel_checksum::tests::test_verify_checksums_match ... ok [INFO] [stdout] test preservation::tests::test_stale_copy_count ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_batch ... ok [INFO] [stdout] test preservation::tests::test_storage_media_failure_rates_valid ... ok [INFO] [stdout] test preservation_policy::tests::test_fixity_annually_interval ... ok [INFO] [stdout] test preservation_policy::tests::test_fixity_daily_interval ... ok [INFO] [stdout] test preservation_policy::tests::test_fixity_monthly_interval ... ok [INFO] [stdout] test preservation_policy::tests::test_fixity_quarterly_interval ... ok [INFO] [stdout] test preservation_policy::tests::test_fixity_weekly_interval ... ok [INFO] [stdout] test preservation_policy::tests::test_policy_gold_tier_no_quarterly ... ok [INFO] [stdout] test preservation_policy::tests::test_policy_gold_tier_no_short_retention ... ok [INFO] [stdout] test preservation_policy::tests::test_replication_321_satisfied ... ok [INFO] [stdout] test preservation_policy::tests::test_replication_fields ... ok [INFO] [stdout] test preservation_policy::tests::test_replication_total_copies ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_decision_is_admitted_true_for_admitted ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_decision_is_rejected_true ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_no_limits_always_admitted ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_single_file_too_large ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_decision_eviction_is_admitted ... ok [INFO] [stdout] test preservation_policy::tests::test_policy_gold_tier_yes ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_file_count_exceeded_no_eviction_rejected ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_within_limits ... ok [INFO] [stdout] test preservation_policy::tests::test_policy_name_field ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_total_bytes_exceeded_no_eviction_rejected ... ok [INFO] [stdout] test preservation_policy::tests::test_policy_total_fixity_checks ... ok [INFO] [stdout] test quarantine_policy::tests::test_cleanup_mixed_records ... ok [INFO] [stdout] test preservation_policy::tests::test_replication_321_not_satisfied_no_offsite ... ok [INFO] [stdout] test preservation_policy::tests::test_replication_321_not_satisfied_one_onsite ... ok [INFO] [stdout] test quarantine_policy::tests::test_cleanup_no_policy_none ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_file_count_exceeded_triggers_eviction ... ok [INFO] [stdout] test quarantine_policy::tests::test_cleanup_old_record_eligible ... ok [INFO] [stdout] test quarantine_policy::tests::test_admission_total_bytes_exceeded_triggers_eviction ... ok [INFO] [stdout] test quarantine_policy::tests::test_eviction_largest_first ... ok [INFO] [stdout] test quarantine_policy::tests::test_cleanup_recent_record_not_eligible ... ok [INFO] [stdout] test quarantine_policy::tests::test_inventory_empty ... ok [INFO] [stdout] test quarantine_policy::tests::test_default_policy_has_limits ... ok [INFO] [stdout] test quarantine_policy::tests::test_inventory_cleanup_candidates ... ok [INFO] [stdout] test quarantine_policy::tests::test_eviction_frees_enough_bytes ... ok [INFO] [stdout] test preservation_policy::tests::test_replication_321_not_satisfied_low_total ... ok [INFO] [stdout] test quarantine_policy::tests::test_inventory_path_for ... ok [INFO] [stdout] test quarantine_policy::tests::test_eviction_oldest_first ... ok [INFO] [stdout] test quarantine_policy::tests::test_inventory_add_and_query ... ok [INFO] [stdout] test restore_plan::tests::test_estimate_restore_time_zero_speed ... ok [INFO] [stdout] test restore_plan::tests::test_plan_restore_empty_request ... ok [INFO] [stdout] test restore_plan::tests::test_plan_restore_skips_missing_assets ... ok [INFO] [stdout] test restore_plan::tests::test_plan_restore_grouped_by_source ... ok [INFO] [stdout] test quarantine_policy::tests::test_strict_policy ... ok [INFO] [stdout] test restore_plan::tests::test_estimate_restore_time_zero_bytes ... ok [INFO] [stdout] test restore_plan::tests::test_plan_restore_step_count ... ok [INFO] [stdout] test quarantine_policy::tests::test_unlimited_policy_admits_any_size ... ok [INFO] [stdout] test restore_plan::tests::test_estimate_restore_time_basic ... ok [INFO] [stdout] test quarantine_policy::tests::test_eviction_none_strategy ... ok [INFO] [stdout] test restore_plan::tests::test_priority_sort_key_ordering ... ok [INFO] [stdout] test restore_plan::tests::test_restore_request_is_overdue ... ok [INFO] [stdout] test restore_plan::tests::test_priority_labels ... ok [INFO] [stdout] test restore_plan::tests::test_restore_request_with_deadline ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_archive_standard ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_action_display ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_audit_trail ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_basic ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_grace_period ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_default_expiry ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_extend_action ... ok [INFO] [stdout] test restore_plan::tests::test_plan_restore_step_ids_sequential ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_permanent_no_action ... ok [INFO] [stdout] test restore_plan::tests::test_plan_restore_total_bytes ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_delete_temporary ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_batch_limit ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_legal_hold ... ok [INFO] [stdout] test retention_schedule::tests::test_entry_eligible_explicit_expiry_past ... ok [INFO] [stdout] test retention_schedule::tests::test_entry_default_duration_expired ... ok [INFO] [stdout] test restore_plan::tests::test_restore_request_new ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_empty_schedule ... ok [INFO] [stdout] test retention_enforce::tests::test_enforcement_plan_summary_string ... ok [INFO] [stdout] test retention_schedule::tests::test_retention_class_default_years_longterm ... ok [INFO] [stdout] test retention_schedule::tests::test_retention_class_default_years_standard ... ok [INFO] [stdout] test retention_schedule::tests::test_retention_class_default_years_temporary ... ok [INFO] [stdout] test retention_schedule::tests::test_schedule_by_class ... ok [INFO] [stdout] test retention_schedule::tests::test_schedule_eligible_for_deletion ... ok [INFO] [stdout] test retention_schedule::tests::test_schedule_empty ... ok [INFO] [stdout] test retention_schedule::tests::test_entry_default_duration_not_expired ... ok [INFO] [stdout] test retention_schedule::tests::test_schedule_legal_holds ... ok [INFO] [stdout] test retention_schedule::tests::test_retention_class_labels ... ok [INFO] [stdout] test retention_schedule::tests::test_entry_not_eligible_explicit_expiry_future ... ok [INFO] [stdout] test retention_schedule::tests::test_entry_permanent_never_eligible ... ok [INFO] [stdout] test retention_schedule::tests::test_retention_class_default_years_permanent ... ok [INFO] [stdout] test retention_schedule::tests::test_schedule_len_after_add ... ok [INFO] [stdout] test retention_schedule::tests::test_schedule_lookup_found ... ok [INFO] [stdout] test retention_schedule::tests::test_schedule_lookup_not_found ... ok [INFO] [stdout] test retention_schedule::tests::test_entry_legal_hold_prevents_deletion ... ok [INFO] [stdout] test search_index::tests::test_avg_doc_length ... ok [INFO] [stdout] test search_index::tests::test_contains ... ok [INFO] [stdout] test search_index::tests::test_empty_query ... ok [INFO] [stdout] test sidecar::tests::test_entry_blake3sum_line ... ok [INFO] [stdout] test sidecar::tests::test_entry_md5sum_line ... ok [INFO] [stdout] test search_index::tests::test_term_count_positive ... ok [INFO] [stdout] test search_index::tests::test_duplicate_add_ignored ... ok [INFO] [stdout] test search_index::tests::test_empty_index_search ... ok [INFO] [stdout] test search_index::tests::test_index_doc_count ... ok [INFO] [stdout] test search_index::tests::test_search_no_match ... ok [INFO] [stdout] test search_index::tests::test_remove_document ... ok [INFO] [stdout] test sidecar::tests::test_entry_no_checksums ... ok [INFO] [stdout] test sidecar::tests::test_generator_compute_entry_blake3_known_vector ... ok [INFO] [stdout] test search_index::tests::test_search_field_scoped ... ok [INFO] [stdout] test search_index::tests::test_search_hits_sorted_by_score ... ok [INFO] [stdout] test search_index::tests::test_search_single_term ... ok [INFO] [stdout] test sidecar::tests::test_entry_recorded_at_is_rfc3339 ... ok [INFO] [stdout] test search_index::tests::test_search_and_operator ... ok [INFO] [stdout] test sidecar::tests::test_entry_sha256sum_line ... ok [INFO] [stdout] test sidecar::tests::test_generator_sha256_known_vector ... ok [INFO] [stdout] test sidecar::tests::test_entry_to_text_block ... ok [INFO] [stdout] test sidecar::tests::test_generator_compute_entry_sha256 ... ok [INFO] [stdout] test sidecar::tests::test_generator_compute_entry_all_algorithms ... ok [INFO] [stdout] test search_index::tests::test_search_hits_have_scores ... ok [INFO] [stdout] test search_index::tests::test_search_or_operator ... ok [INFO] [stdout] test search_index::tests::test_search_limit ... ok [INFO] [stdout] test sidecar::tests::test_manifest_generated_at_is_rfc3339 ... ok [INFO] [stdout] test sidecar::tests::test_manifest_generator_field ... ok [INFO] [stdout] test sidecar::tests::test_manifest_new_empty ... ok [INFO] [stdout] test sidecar::tests::test_manifest_render_blake3sum ... ok [INFO] [stdout] test sidecar::tests::test_manifest_add_and_count ... ok [INFO] [stdout] test sidecar::tests::test_manifest_render_sha256sum ... ok [INFO] [stdout] test sidecar::tests::test_manifest_render_json_roundtrip ... ok [INFO] [stdout] test sidecar::tests::test_manifest_json_has_all_fields ... ok [INFO] [stdout] test sidecar::tests::test_generator_write_sidecars ... ok [INFO] [stdout] test sidecar::tests::test_manifest_render_text_contains_entries ... ok [INFO] [stdout] test sidecar::tests::test_manifest_render_text_contains_header ... ok [INFO] [stdout] test sidecar::tests::test_manifest_total_bytes_multiple_entries ... ok [INFO] [stdout] test sidecar::tests::test_parse_sha256sum_single_space_separator ... ok [INFO] [stdout] test sidecar::tests::test_parse_sha256sum_skips_comments ... ok [INFO] [stdout] test sidecar::tests::test_generator_write_inline_sidecars ... ok [INFO] [stdout] test sidecar::tests::test_render_text_includes_size_total ... ok [INFO] [stdout] test sidecar::tests::test_sidecar_config_default_disables_md5 ... ok [INFO] [stdout] test sidecar::tests::test_sidecar_format_extensions ... ok [INFO] [stdout] test sidecar::tests::test_sidecar_roundtrip_via_sha256sum ... ok [INFO] [stdout] test sidecar::tests::test_sha256sum_comment_lines_skipped_in_parse ... ok [INFO] [stdout] test sidecar::tests::test_sanitize_filename_replaces_special_chars ... ok [INFO] [stdout] test sidecar::tests::test_parse_sha256sum_skips_empty_lines ... ok [INFO] [stdout] test split_archive::tests::test_entry_range_tracking ... ok [INFO] [stdout] test sidecar::tests::test_sidecar_write_directory_created ... ok [INFO] [stdout] test split_archive::tests::test_split_empty_entries ... ok [INFO] [stdout] test split_archive::tests::test_split_part_filenames ... ok [INFO] [stdout] test split_archive::tests::test_split_single_large_entry ... ok [INFO] [stdout] test split_archive::tests::test_split_many_small_entries ... ok [INFO] [stdout] test split_archive::tests::test_split_single_part ... ok [INFO] [stdout] test split_archive::tests::test_strategy_by_count_exact_fit ... ok [INFO] [stdout] test sidecar::tests::test_parse_sha256sum_basic ... ok [INFO] [stdout] test sidecar::tests::test_parse_sha256sum_empty_input ... ok [INFO] [stdout] test split_archive::tests::test_strategy_by_count ... ok [INFO] [stdout] test split_archive::tests::test_split_total_bytes_accounting ... ok [INFO] [stdout] test split_archive::tests::test_reassemble_checksum_verification ... ok [INFO] [stdout] test split_archive::tests::test_split_and_reassemble_roundtrip ... ok [INFO] [stdout] test split_archive::tests::test_split_multiple_parts ... ok [INFO] [stdout] test split_archive::tests::test_split_entry_wire_size ... ok [INFO] [stdout] test stats::tests::test_new_is_empty ... ok [INFO] [stdout] test split_archive::tests::test_strategy_by_date ... ok [INFO] [stdout] test split_archive::tests::test_strategy_by_collection ... ok [INFO] [stdout] test sidecar::tests::test_manifest_render_md5sum ... ok [INFO] [stdout] test stats::tests::test_ratio_expansion ... ok [INFO] [stdout] test split_archive::tests::test_strategy_by_date_single_bucket ... ok [INFO] [stdout] test split_archive::tests::test_strategy_by_size ... ok [INFO] [stdout] test split_archive::tests::test_strategy_empty_entries ... ok [INFO] [stdout] test stats::tests::test_bytes_saved_no_underflow ... ok [INFO] [stdout] test stats::tests::test_merge ... ok [INFO] [stdout] test stats::tests::test_min_max_ratio ... ok [INFO] [stdout] test stats::tests::test_ratio_no_compression ... ok [INFO] [stdout] test stats::tests::test_record_multiple_entries_aggregated ... ok [INFO] [stdout] test stats::tests::test_record_single_entry ... ok [INFO] [stdout] test stats::tests::test_reset ... ok [INFO] [stdout] test stats::tests::test_zero_original_size_no_panic ... ok [INFO] [stdout] test storage_tier::tests::test_apply_migration ... ok [INFO] [stdout] test storage_tier::tests::test_accesses_within_window ... ok [INFO] [stdout] test storage_tier::tests::test_asset_record_access ... ok [INFO] [stdout] test storage_tier::tests::test_asset_access_record_new ... ok [INFO] [stdout] test storage_tier::tests::test_migration_action_display ... ok [INFO] [stdout] test storage_tier::tests::test_tier_summary_cost ... ok [INFO] [stdout] test streaming_compress::tests::test_compressor_write_api_deflate ... ok [INFO] [stdout] test storage_tier::tests::test_tier_manager_default_policies ... ok [INFO] [stdout] test streaming_compress::tests::test_compressor_write_api_passthrough ... ok [INFO] [stdout] test streaming_compress::tests::test_builder_basic ... ok [INFO] [stdout] test streaming_compress::tests::test_compressor_write_api_zstd ... ok [INFO] [stdout] test streaming_compress::tests::test_compressor_write_api_lz4 ... ok [INFO] [stdout] test storage_tier::tests::test_tier_priority ... ok [INFO] [stdout] test storage_tier::tests::test_tier_cost_factor_ordering ... ok [INFO] [stdout] test streaming_compress::tests::test_framed_eos_marker ... ok [INFO] [stdout] test streaming_compress::tests::test_framed_invalid_magic_returns_error ... ok [INFO] [stdout] test streaming_compress::tests::test_framed_multiple_frames ... ok [INFO] [stdout] test streaming_compress::tests::test_framed_partial_feed ... ok [INFO] [stdout] test storage_tier::tests::test_tier_retrieval_latency_ordering ... ok [INFO] [stdout] test streaming_compress::tests::test_lz4_empty ... ok [INFO] [stdout] test storage_tier::tests::test_tier_manager_register_and_access ... ok [INFO] [stdout] test streaming_compress::tests::test_builder_defaults ... ok [INFO] [stdout] test streaming_compress::tests::test_framed_roundtrip_lz4 ... ok [INFO] [stdout] test streaming_compress::tests::test_framed_roundtrip_zstd ... ok [INFO] [stdout] test streaming_compress::tests::test_lz4_roundtrip_simple ... ok [INFO] [stdout] test streaming_compress::tests::test_lz77_empty ... ok [INFO] [stdout] test streaming_compress::tests::test_framed_stats_available ... ok [INFO] [stdout] test streaming_compress::tests::test_framed_roundtrip_passthrough ... ok [INFO] [stdout] test streaming_compress::tests::test_lz77_incompressible ... ok [INFO] [stdout] test streaming_compress::tests::test_lz4_roundtrip_repetitive ... ok [INFO] [stdout] test streaming_compress::tests::test_lz77_large_repetitive ... ok [INFO] [stdout] test streaming_compress::tests::test_lz77_roundtrip_repetitive ... ok [INFO] [stdout] test streaming_compress::tests::test_streaming_lz4_roundtrip ... ok [INFO] [stdout] test tape::tests::test_cartridge_available_gb ... ok [INFO] [stdout] test tape::tests::test_cartridge_new_is_blank ... ok [INFO] [stdout] test streaming_compress::tests::test_lz77_roundtrip_simple ... ok [INFO] [stdout] test streaming_compress::tests::test_streaming_deflate_roundtrip ... ok [INFO] [stdout] test streaming_compress::tests::test_streaming_passthrough_roundtrip ... ok [INFO] [stdout] test streaming_compress::tests::test_streaming_zstd_roundtrip ... ok [INFO] [stdout] test tape::tests::test_cartridge_utilization_pct ... ok [INFO] [stdout] test tape::tests::test_library_add_and_count ... ok [INFO] [stdout] test tape::tests::test_library_available_capacity ... ok [INFO] [stdout] test tape::tests::test_cartridge_write_time ... ok [INFO] [stdout] test version_history::tests::test_change_kind_display ... ok [INFO] [stdout] test tape::tests::test_tape_format_compressed_capacity ... ok [INFO] [stdout] test tape::tests::test_library_find_writable ... ok [INFO] [stdout] test tape::tests::test_tape_format_generation ... ok [INFO] [stdout] test tape::tests::test_library_find_cartridge ... ok [INFO] [stdout] test tape::tests::test_tape_format_speed ... ok [INFO] [stdout] test version_history::tests::test_diff_invalid_version ... ok [INFO] [stdout] test version_history::tests::test_diff_checksum_changed ... ok [INFO] [stdout] test version_history::tests::test_diff_metadata_added ... ok [INFO] [stdout] test version_history::tests::test_filter_by_actor ... ok [INFO] [stdout] test tape::tests::test_tape_status_writable ... ok [INFO] [stdout] test version_history::tests::test_empty_history ... ok [INFO] [stdout] test version_history::tests::test_filter_by_kind ... ok [INFO] [stdout] test version_history::tests::test_get_invalid_version ... ok [INFO] [stdout] test version_history::tests::test_iter ... ok [INFO] [stdout] test version_history::tests::test_latest ... ok [INFO] [stdout] test version_history::tests::test_prune ... ok [INFO] [stdout] test version_history::tests::test_prune_no_op ... ok [INFO] [stdout] test version_history::tests::test_push_and_len ... ok [INFO] [stdout] test version_history::tests::test_filter_by_time_range ... ok [INFO] [stdout] test versioning::tests::test_display ... ok [INFO] [stdout] test storage_tier::tests::test_storage_tier_display ... ok [INFO] [stdout] test versioning::tests::test_bump_saturation_at_u32_max ... ok [INFO] [stdout] test versioning::tests::test_is_compatible_older_archive ... ok [INFO] [stdout] test storage_tier::tests::test_tier_colder_warmer ... ok [INFO] [stdout] test version_history::tests::test_to_json_contains_asset_id ... ok [INFO] [stdout] test version_history::tests::test_unique_actors ... ok [INFO] [stdout] test versioning::tests::test_is_compatible_newer_archive_rejected ... ok [INFO] [stdout] test versioning::tests::test_is_compatible_same_version ... ok [INFO] [stdout] test version_history::tests::test_version_numbering ... ok [INFO] [stdout] test versioning::tests::test_new_stores_version ... ok [INFO] [stdout] test streaming_compress::tests::test_decompressor_builder_basic ... ok [INFO] [stdout] test versioning::tests::test_ordering ... ok [INFO] [stdout] test versioning::tests::test_bump_increments ... ok [INFO] [stdout] test storage_tier::tests::test_tier_manager_summary ... ok [INFO] [stdout] test streaming_compress::tests::test_streaming_stats ... ok [INFO] [stdout] test tape::tests::test_cartridge_record_write_transitions_to_active ... ok [INFO] [stdout] test tape::tests::test_tape_format_capacity ... ok [INFO] [stdout] test parallel_checksum::tests::test_parallel_large_data ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 781 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_archive [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test src/ltfs.rs - ltfs::LtfsIndexBuilder (line 468) ... ok [INFO] [stdout] test src/versioning.rs - versioning (line 14) ... ok [INFO] [stdout] test src/stats.rs - stats (line 7) ... ok [INFO] [stdout] test src/partial_restore.rs - partial_restore (line 8) ... ok [INFO] [stdout] test src/integrity.rs - integrity (line 8) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "2b90e33afa0caaba3d9b733d5d3226f0b441d4b4db1fe4c40ca57c863981aa76", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2b90e33afa0caaba3d9b733d5d3226f0b441d4b4db1fe4c40ca57c863981aa76", kill_on_drop: false }` [INFO] [stdout] 2b90e33afa0caaba3d9b733d5d3226f0b441d4b4db1fe4c40ca57c863981aa76