[INFO] cloning repository https://github.com/shdwfruit/convkit
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shdwfruit/convkit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshdwfruit%2Fconvkit", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshdwfruit%2Fconvkit'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0de6aae5221a14c405b63e7746f509b2f3c6a7a5
[INFO] testing shdwfruit/convkit against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshdwfruit%2Fconvkit" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/shdwfruit/convkit
[INFO] finished tweaking git repo https://github.com/shdwfruit/convkit
[INFO] tweaked toml for git repo https://github.com/shdwfruit/convkit written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/shdwfruit/convkit on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/shdwfruit/convkit 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded g2poly v1.2.2
[INFO] [stderr]   Downloaded rqrr v0.10.1
[INFO] [stderr]   Downloaded g2p v1.2.2
[INFO] [stderr]   Downloaded g2gen v1.2.2
[INFO] [stderr]   Downloaded qrcode v0.14.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5
[INFO] running `Command { std: "docker" "start" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling bytemuck v1.25.2
[INFO] [stderr]    Compiling float-cmp v0.9.0
[INFO] [stderr]    Compiling polycool v0.4.0
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling g2poly v1.2.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling roxmltree v0.21.1
[INFO] [stderr]    Compiling simplecss v0.2.2
[INFO] [stderr]    Compiling strict-num v0.1.1
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]    Compiling cc v1.4.4
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling kurbo v0.13.1
[INFO] [stderr]    Compiling pico-args v0.5.0
[INFO] [stderr]    Compiling tiny-skia-path v0.12.0
[INFO] [stderr]    Compiling zune-core v0.5.3
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling crc-catalog v2.5.0
[INFO] [stderr]    Compiling data-url v0.3.2
[INFO] [stderr]    Compiling imagesize v0.15.0
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling zune-jpeg v0.5.15
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling rgb v0.8.53
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling indexmap v2.14.1
[INFO] [stderr]    Compiling gif v0.14.2
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling portable-atomic v1.15.0
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling tar v0.4.46
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling svgtypes v0.16.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tiny-skia v0.12.0
[INFO] [stderr]    Compiling lzma-rs v0.3.0
[INFO] [stderr]    Compiling usvg v0.48.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling which v8.0.6
[INFO] [stderr]    Compiling qrcode v0.14.1
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling g2gen v1.2.2
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling g2p v1.2.2
[INFO] [stderr]    Compiling rqrr v0.10.1
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling resvg v0.48.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling glob v0.3.4
[INFO] [stderr]    Compiling wild v2.2.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling convkit-core v0.5.1 (/opt/rustwide/workdir/crates/convkit-core)
[INFO] [stderr]    Compiling convkit-diff v0.5.1 (/opt/rustwide/workdir/crates/convkit-diff)
[INFO] [stderr]    Compiling convkit v0.5.1 (/opt/rustwide/workdir/crates/conv)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 08s
[INFO] running `Command { std: "docker" "inspect" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling console v0.16.4
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling convkit-diff v0.5.1 (/opt/rustwide/workdir/crates/convkit-diff)
[INFO] [stderr]    Compiling insta v1.48.0
[INFO] [stderr]    Compiling convkit-core v0.5.1 (/opt/rustwide/workdir/crates/convkit-core)
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling bstr v1.13.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling convkit v0.5.1 (/opt/rustwide/workdir/crates/conv)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/conv-f134d148c19388bb)
[INFO] [stdout] 
[INFO] [stdout] running 270 tests
[INFO] [stdout] test batch::tests::exit_code_is_batch_partial_failure_on_a_genuinely_mixed_result ... ok
[INFO] [stdout] test batch::tests::exit_code_is_zero_when_every_job_succeeds ... ok
[INFO] [stdout] test cli::tests::a_speed_parses_into_the_tuning ... ok
[INFO] [stdout] test cli::tests::a_speed_that_changes_nothing_is_a_usage_error ... ok
[INFO] [stdout] test batch::tests::a_step_message_carries_the_retry_label_when_there_is_one ... ok
[INFO] [stdout] test cli::tests::end_and_duration_conflict ... ok
[INFO] [stdout] test cli::tests::times_parse_including_ones_counted_from_the_end ... ok
[INFO] [stdout] test batch::tests::the_retry_label_names_the_attempt_and_how_far_over ... ok
[INFO] [stdout] test commands::convert::tests::available_for_skips_the_check_for_a_pair_with_no_fallback ... ok
[INFO] [stdout] test cli::tests::max_size_and_crf_conflict ... ok
[INFO] [stdout] test cli::tests::an_order_that_cannot_work_fails_the_check ... ok
[INFO] [stdout] test cli::tests::max_size_parses_and_rejects_a_bare_number ... ok
[INFO] [stdout] test commands::convert::tests::failed_on_missing_backend_is_false_for_a_different_error_code ... ok
[INFO] [stdout] test batch::tests::exit_code_uses_the_shared_error_code_when_every_job_fails_the_same_way ... ok
[INFO] [stdout] test cli::tests::shift_pitch_needs_a_speed ... ok
[INFO] [stdout] test commands::convert::tests::missing_backend_is_none_when_nothing_failed_that_way ... ok
[INFO] [stdout] test commands::convert::tests::missing_backend_finds_the_sole_backend_missing_failure ... ok
[INFO] [stdout] test commands::convert::tests::failed_on_missing_backend_matches_only_the_named_backend ... ok
[INFO] [stdout] test commands::convert::tests::missing_backend_is_none_when_two_different_backends_are_missing ... ok
[INFO] [stdout] test commands::convert::tests::missing_backend_tolerates_repeats_of_the_same_backend ... ok
[INFO] [stdout] test cli::tests::resolver_maps_every_flag_to_its_own_backend_override ... ok
[INFO] [stdout] test commands::convert::tests::probed_for_skips_the_probe_for_a_pair_that_can_never_remux ... ok
[INFO] [stdout] test commands::convert::tests::probed_for_never_probes_an_input_that_is_not_a_local_file ... ok
[INFO] [stdout] test commands::doctor::tests::a_string_exactly_at_width_is_not_truncated ... ok
[INFO] [stdout] test commands::doctor::tests::short_strings_pass_through_unchanged ... ok
[INFO] [stdout] test commands::install::tests::parse_backend_is_case_insensitive ... ok
[INFO] [stdout] test commands::doctor::tests::a_long_real_ffmpeg_version_token_is_capped_at_the_column_width ... ok
[INFO] [stdout] test commands::install::tests::parse_backend_recognises_every_canonical_exe_name ... ok
[INFO] [stdout] test commands::convert::tests::probed_for_reports_a_webm_video_knobs_missing_probe_as_the_real_error ... ok
[INFO] [stdout] test commands::install::tests::parse_backend_rejects_nonsense ... ok
[INFO] [stdout] test commands::install::tests::success_envelope_keeps_backend_and_path_and_adds_installed ... ok
[INFO] [stdout] test commands::install::tests::success_envelope_installed_array_has_one_entry_when_nothing_is_bundled ... ok
[INFO] [stdout] test commands::install::tests::success_lines_human_names_the_requested_backend_first_regardless_of_vec_order ... ok
[INFO] [stdout] test commands::install::tests::success_lines_human_reports_a_bundled_sibling ... ok
[INFO] [stdout] test commands::install::tests::success_lines_human_reports_just_the_one_binary_when_nothing_is_bundled ... ok
[INFO] [stdout] test commands::qr::tests::a_bare_extension_names_the_format ... ok
[INFO] [stdout] test commands::qr::tests::a_directory_in_both_out_and_dash_o_is_refused ... ok
[INFO] [stdout] test commands::qr::tests::a_format_that_is_not_a_picture_is_refused ... ok
[INFO] [stdout] test commands::qr::tests::an_existing_directory_as_out_points_at_dash_o ... ok
[INFO] [stdout] test commands::qr::tests::dash_o_is_the_directory_to_write_into ... ok
[INFO] [stdout] test commands::qr::tests::out_is_the_file_as_typed ... ok
[INFO] [stdout] test commands::qr::tests::without_out_it_writes_qr_png_here ... ok
[INFO] [stdout] test batch::tests::run_stamps_elapsed_ms_and_carries_the_target_format ... ok
[INFO] [stdout] test commands::update::tests::a_stale_receipt_never_overrides_a_homebrew_path ... ok
[INFO] [stdout] test commands::update::tests::cargo_update_hint_installs_the_published_crate_with_a_locked_dependency_set ... ok
[INFO] [stdout] test commands::update::tests::check_exit_code_is_zero_when_a_managed_backend_was_never_installed ... ok
[INFO] [stdout] test commands::convert::tests::probed_for_reads_the_image_a_jpg_targets_notes_depend_on ... ok
[INFO] [stdout] test commands::update::tests::check_exit_code_is_zero_when_every_managed_backend_is_current ... ok
[INFO] [stdout] test commands::convert::tests::probed_for_runs_ffprobe_on_a_pair_that_might_remux ... ok
[INFO] [stdout] test commands::update::tests::check_exit_code_is_nonzero_when_a_managed_backend_is_outdated ... ok
[INFO] [stdout] test commands::update::tests::check_exit_code_is_zero_when_a_managed_backend_resolves_only_externally ... ok
[INFO] [stdout] test commands::update::tests::classify_reports_soffice_as_unmanaged_and_not_installed_when_unresolvable ... ok
[INFO] [stdout] test commands::update::tests::dist_update_hint_points_at_the_readme_installer_one_liner ... ok
[INFO] [stdout] test commands::update::tests::classify_reports_not_installed_when_a_managed_backend_is_absent_everywhere ... ok
[INFO] [stdout] test commands::update::tests::conv_self_report_always_reports_the_running_cargo_pkg_version ... ok
[INFO] [stdout] test commands::update::tests::classify_reports_magick_as_unmanaged_on_every_platform ... ok
[INFO] [stdout] test commands::update::tests::detects_homebrew_through_a_symlink_via_canonicalization ... ok
[INFO] [stdout] test commands::update::tests::detects_homebrew_via_the_intel_cellar_prefix ... ok
[INFO] [stdout] test commands::update::tests::detects_homebrew_via_the_opt_homebrew_prefix ... ok
[INFO] [stdout] test commands::update::tests::falls_back_to_unknown_for_an_unrecognised_location ... ok
[INFO] [stdout] test commands::update::tests::homebrew_update_hint_is_the_brew_upgrade_command_now_that_a_tap_exists ... ok
[INFO] [stdout] test commands::update::tests::perform_updates_never_downloads_a_backend_that_was_simply_never_installed ... ok
[INFO] [stdout] test commands::update::tests::perform_updates_never_touches_an_external_backends_report ... ok
[INFO] [stdout] test commands::update::tests::perform_updates_records_a_failure_without_stopping_other_backends ... ok
[INFO] [stdout] test commands::update::tests::perform_updates_reinstalls_an_outdated_backend ... ok
[INFO] [stdout] test commands::update::tests::update_exit_code_is_batch_partial_failure_for_a_mixed_result ... ok
[INFO] [stdout] test commands::update::tests::perform_updates_leaves_an_already_current_backend_untouched ... ok
[INFO] [stdout] test commands::update::tests::update_exit_code_is_nonzero_when_every_attempted_install_failed ... ok
[INFO] [stdout] test commands::update::tests::update_exit_code_is_zero_when_nothing_errored ... ok
[INFO] [stdout] test input::tests::a_batch_with_an_outdir_writes_there ... ok
[INFO] [stdout] test batch::tests::run_each_hands_every_job_its_own_tuning ... ok
[INFO] [stdout] test commands::update::tests::perform_updates_calls_the_installer_once_for_a_bundled_pair ... ok
[INFO] [stdout] test commands::update::tests::perform_updates_never_touches_an_unmanaged_backends_report ... ok
[INFO] [stdout] test commands::update::tests::scoop_update_hint_points_at_the_release_page_not_a_nonexistent_package ... ok
[INFO] [stdout] test input::tests::a_clash_spelled_differently_is_still_kept_apart ... ok
[INFO] [stdout] test commands::update::tests::a_receipt_directory_containing_the_receipt_file_is_detected_as_a_dist_install ... ok
[INFO] [stdout] test input::tests::a_cross_format_cut_keeps_its_ordinary_name ... ok
[INFO] [stdout] test input::tests::a_cut_batch_writes_into_a_folder_named_after_the_range ... ok
[INFO] [stdout] test input::tests::a_cut_into_another_folder_still_names_its_range ... ok
[INFO] [stdout] test input::tests::a_dry_run_batch_does_not_create_the_subfolder ... ok
[INFO] [stdout] test input::tests::a_glob_the_shell_quoted_is_expanded_here ... ok
[INFO] [stdout] test commands::update::tests::detects_a_cargo_bin_install ... ok
[INFO] [stdout] test input::tests::a_directory_in_the_output_position_is_rejected_not_expanded ... ok
[INFO] [stdout] test input::tests::a_directory_with_a_non_pdf_output_positional_is_rejected ... ok
[INFO] [stdout] test input::tests::a_derived_name_that_another_job_also_writes_keeps_them_apart ... ok
[INFO] [stdout] test input::tests::a_glob_conv_cannot_keep_is_told_a_format_it_can_strip_into ... ok
[INFO] [stdout] test input::tests::a_derived_name_that_is_another_jobs_input_is_refused ... ok
[INFO] [stdout] test input::tests::a_directory_under_max_size_keeps_same_format_files_but_not_its_own_results ... ok
[INFO] [stdout] test commands::update::tests::no_receipt_file_falls_through_to_the_ordinary_path_based_detection ... ok
[INFO] [stdout] test commands::update::tests::detects_homebrew_via_the_linuxbrew_prefix ... ok
[INFO] [stdout] test commands::convert::tests::available_for_checks_availability_for_a_pair_with_a_fallback_recipe ... ok
[INFO] [stdout] test input::tests::a_lone_path_stripped_keeps_its_format_and_gains_a_suffix ... ok
[INFO] [stdout] test input::tests::a_multi_positional_invocation_that_is_not_a_valid_merge_is_an_invalid_invocation ... ok
[INFO] [stdout] test input::tests::a_missing_input_and_output_is_an_invalid_invocation_not_an_unsupported_pair ... ok
[INFO] [stdout] test input::tests::a_named_output_with_its_own_directory_and_outdir_is_refused ... ok
[INFO] [stdout] test input::tests::a_range_and_a_size_both_go_in_the_name ... ok
[INFO] [stdout] test input::tests::a_range_a_speed_and_a_size_go_in_the_name_in_the_order_they_happen ... ok
[INFO] [stdout] test input::tests::a_pattern_matching_nothing_is_left_alone ... ok
[INFO] [stdout] test input::tests::a_heic_beside_a_jpg_of_the_same_name_keeps_its_format ... ok
[INFO] [stdout] test input::tests::a_read_only_extension_is_accepted_as_an_input ... ok
[INFO] [stdout] test input::tests::a_lone_gif_or_avi_cannot_be_cut_into_itself_and_says_what_to_do ... ok
[INFO] [stdout] test input::tests::a_lone_gif_or_still_cannot_be_sped_into_itself_and_says_what_to_do ... ok
[INFO] [stdout] test input::tests::a_quoted_glob_matching_several_files_under_max_size_is_refused ... ok
[INFO] [stdout] test input::tests::a_shifted_pitch_is_named_so_it_does_not_take_the_kept_ones_name ... ok
[INFO] [stdout] test input::tests::a_quoted_glob_matching_one_file_under_max_size_is_the_single_form ... ok
[INFO] [stdout] test input::tests::a_real_file_named_like_a_pattern_wins_over_globbing_it ... ok
[INFO] [stdout] test input::tests::a_refused_invocation_does_not_create_the_outdir ... ok
[INFO] [stdout] test input::tests::a_pair_is_refused_only_when_its_output_exists_in_the_inputs_format ... ok
[INFO] [stdout] test input::tests::a_path_with_no_wildcard_is_untouched ... ok
[INFO] [stdout] test input::tests::a_lone_path_that_cannot_be_stripped_in_place_names_the_fix ... ok
[INFO] [stdout] test commands::update::tests::classify_reports_an_unmanaged_backend_as_installed_when_it_resolves ... ok
[INFO] [stdout] test commands::update::tests::classify_reports_outdated_when_the_managed_dir_copy_differs_from_the_pin ... ok
[INFO] [stdout] test input::tests::a_pair_that_cannot_be_sized_is_not_told_to_add_to ... ok
[INFO] [stdout] test input::tests::a_stripped_output_equal_to_the_input_is_refused ... ok
[INFO] [stdout] test commands::update::tests::classify_reports_current_when_the_managed_dir_copy_matches_the_pin ... ok
[INFO] [stdout] test input::tests::a_single_directory_positional_without_to_is_rejected ... ok
[INFO] [stdout] test input::tests::a_single_path_with_a_speed_keeps_its_format_and_names_the_speed ... ok
[INFO] [stdout] test input::tests::an_output_landing_on_another_inputs_path_keeps_its_source_format ... ok
[INFO] [stdout] test input::tests::bare_extension_shorthand_derives_the_output_name ... ok
[INFO] [stdout] test input::tests::colliding_basenames_under_outdir_are_rejected ... ok
[INFO] [stdout] test input::tests::a_single_path_with_a_range_keeps_its_format_and_names_the_range ... ok
[INFO] [stdout] test input::tests::an_explicit_output_equal_to_the_input_is_refused ... ok
[INFO] [stdout] test input::tests::an_explicitly_named_file_already_in_the_target_format_is_not_skipped ... ok
[INFO] [stdout] test input::tests::bare_extension_shorthand_typo_still_suggests_a_correction ... ok
[INFO] [stdout] test input::tests::a_speed_batch_writes_into_a_folder_named_after_the_speed ... ok
[INFO] [stdout] test input::tests::distinct_stems_still_batch_cleanly_without_outdir ... ok
[INFO] [stdout] test input::tests::a_stripped_folder_keeps_same_format_files_but_not_earlier_results ... ok
[INFO] [stdout] test input::tests::a_speed_change_into_another_folder_still_names_its_speed ... ok
[INFO] [stdout] test input::tests::a_single_path_with_max_size_keeps_its_container_and_gains_a_suffix ... ok
[INFO] [stdout] test input::tests::outdir_takes_a_named_output_by_its_name ... ok
[INFO] [stdout] test input::tests::dot_slash_relative_path_is_not_bare_extension_shorthand ... ok
[INFO] [stdout] test input::tests::dot_backslash_relative_path_is_not_bare_extension_shorthand ... ok
[INFO] [stdout] test input::tests::natural_cmp_orders_numeric_runs_by_value_not_first_digit ... ok
[INFO] [stdout] test input::tests::a_read_only_extension_is_refused_in_every_output_slot ... ok
[INFO] [stdout] test input::tests::dot_dot_spellings_of_one_output_collide ... ok
[INFO] [stdout] test input::tests::many_images_and_a_pdf_become_one_merge_job ... ok
[INFO] [stdout] test input::tests::outdir_matching_the_scanned_directory_still_converts_fresh_input ... ok
[INFO] [stdout] test input::tests::outdir_takes_the_shorthand_under_a_flag_that_keeps_the_format ... ok
[INFO] [stdout] test input::tests::parent_relative_path_is_not_bare_extension_shorthand ... ok
[INFO] [stdout] test input::tests::outdir_takes_an_image_merges_pdf ... ok
[INFO] [stdout] test input::tests::outdir_redirects_outputs ... ok
[INFO] [stdout] test input::tests::a_stripped_folder_skips_target_files_it_cannot_keep ... ok
[INFO] [stdout] test input::tests::plan_jobs_does_not_create_the_outdir_under_dry_run ... ok
[INFO] [stdout] test commands::update::tests::classify_reports_a_backend_resolved_outside_the_managed_dir_as_external_never_outdated ... ok
[INFO] [stdout] test input::tests::directory_expansion_skips_files_already_in_the_target_format ... ok
[INFO] [stdout] test input::tests::relative_and_absolute_spellings_of_one_output_collide ... ok
[INFO] [stdout] test input::tests::plan_jobs_tolerates_an_outdir_that_already_exists ... ok
[INFO] [stdout] test input::tests::outdir_takes_the_extension_shorthands_output ... ok
[INFO] [stdout] test input::tests::a_single_path_whose_format_cannot_be_sized_names_the_fix ... ok
[INFO] [stdout] test input::tests::plan_jobs_creates_the_outdir_when_it_does_not_exist ... ok
[INFO] [stdout] test input::tests::plan_jobs_expands_a_directory_of_scans_in_natural_page_order ... ok
[INFO] [stdout] test input::tests::to_flag_makes_one_job_per_input ... ok
[INFO] [stdout] test input::tests::the_ext_shorthand_is_derived_and_so_is_suffixed ... ok
[INFO] [stdout] test input::tests::a_sized_batch_writes_into_a_subfolder ... ok
[INFO] [stdout] test input::tests::plan_jobs_reports_invalid_invocation_when_the_outdir_cannot_be_created ... ok
[INFO] [stdout] test input::tests::same_stem_inputs_collide_even_without_outdir ... ok
[INFO] [stdout] test input::tests::several_paths_under_max_size_without_to_name_the_fix ... ok
[INFO] [stdout] test input::tests::same_stem_inputs_of_two_formats_keep_their_source_format ... ok
[INFO] [stdout] test input::tests::two_clips_of_one_format_without_to_are_refused_with_the_fix ... ok
[INFO] [stdout] test input::tests::symlinked_directory_spellings_of_one_output_collide ... ok
[INFO] [stdout] test input::tests::the_single_form_suggests_to_mp4_only_where_it_would_work ... ok
[INFO] [stdout] test input::tests::same_format_paths_without_to_are_told_to_add_it ... ok
[INFO] [stdout] test input::tests::the_glob_refusal_suggests_the_pattern_own_container_when_it_can_be_sized ... ok
[INFO] [stdout] test input::tests::two_files_sped_without_to_are_refused_with_the_fix ... ok
[INFO] [stdout] test input::tests::with_max_size_too_the_size_names_the_output ... ok
[INFO] [stdout] test input::tests::two_positionals_are_a_single_pair_not_a_merge ... ok
[INFO] [stdout] test input::tests::with_an_outdir_elsewhere_the_name_is_kept ... ok
[INFO] [stdout] test install_prompt::tests::plain_no_install_flag_refuses_a_managed_backend_too ... ok
[INFO] [stdout] test install_prompt::tests::no_install_always_wins_even_with_yes_also_set ... ok
[INFO] [stdout] test render::tests::a_combining_mark_survives_as_itself ... ok
[INFO] [stdout] test render::tests::a_cut_result_reports_its_range_and_others_do_not ... ok
[INFO] [stdout] test install_prompt::tests::magick_is_never_offerable_on_any_platform ... ok
[INFO] [stdout] test render::tests::a_sized_result_shows_its_size_in_the_targets_units ... ok
[INFO] [stdout] test render::tests::a_note_already_shown_is_not_printed_again ... ok
[INFO] [stdout] test install_prompt::tests::prompt_message_has_no_bundle_note_when_nothing_is_bundled ... ok
[INFO] [stdout] test install_prompt::tests::soffice_is_never_offerable ... ok
[INFO] [stdout] test render::tests::a_path_with_a_space_keeps_its_real_backslashes ... ok
[INFO] [stdout] test render::tests::a_batch_hint_names_the_file_and_leaves_the_command_out ... ok
[INFO] [stdout] test input::tests::without_max_size_a_single_path_is_still_an_incomplete_invocation ... ok
[INFO] [stdout] test install_prompt::tests::json_mode_never_installs_even_with_yes ... ok
[INFO] [stdout] test prompt::tests::who_answers_the_extreme_question ... ok
[INFO] [stdout] test render::tests::batch_summary_counts_a_genuine_conversion_failure_as_failed ... ok
[INFO] [stdout] test install_prompt::tests::prompt_message_names_the_bundled_sibling_on_windows_x64 ... ok
[INFO] [stdout] test render::tests::ansi_is_always_supported_off_windows ... ok
[INFO] [stdout] test install_prompt::tests::quiet_mode_never_installs_even_with_yes ... ok
[INFO] [stdout] test render::tests::ansi_support_is_decided_once_and_stays_decided ... ok
[INFO] [stdout] test render::tests::a_sped_result_reports_its_speed_and_others_do_not ... ok
[INFO] [stdout] test input::tests::the_output_positional_is_never_globbed ... ok
[INFO] [stdout] test render::tests::a_suggested_command_leaves_out_yes ... ok
[INFO] [stdout] test install_prompt::tests::yes_proceeds_without_prompting_when_a_managed_build_exists ... ok
[INFO] [stdout] test render::tests::a_suggested_command_swaps_only_the_size ... ok
[INFO] [stdout] test input::tests::with_the_inputs_own_directory_as_outdir_the_name_is_suffixed ... ok
[INFO] [stdout] test render::tests::a_suggestion_follows_an_extreme_result ... ok
[INFO] [stdout] test render::tests::an_embedded_quote_is_escaped_the_way_the_host_shell_spells_it ... ok
[INFO] [stdout] test render::tests::an_empty_token_is_quoted_rather_than_vanishing ... ok
[INFO] [stdout] test render::tests::failure_prefers_the_managed_remediation_over_the_manual_one ... ok
[INFO] [stdout] test render::tests::human_size_uses_whole_kb_below_one_mb ... ok
[INFO] [stdout] test render::tests::failure_styled_has_the_cross_glyph_and_arrow ... ok
[INFO] [stdout] test render::tests::json_carries_the_sizing_report_only_when_sized ... ok
[INFO] [stdout] test render::tests::human_elapsed_switches_to_minutes_and_seconds_at_a_minute ... ok
[INFO] [stdout] test render::tests::success_output_is_never_more_than_four_lines ... ok
[INFO] [stdout] test render::tests::ordinary_flags_and_names_are_left_bare ... ok
[INFO] [stdout] test render::tests::batch_summary_counts_output_exists_as_skipped_not_failed ... ok
[INFO] [stdout] test render::tests::success_styled_has_the_check_glyph_ansi_and_the_absolute_path ... ok
[INFO] [stdout] test render::tests::batch_summary_shows_a_representative_output_location ... ok
[INFO] [stdout] test render::tests::the_extreme_block_names_files_only_when_there_are_several ... ok
[INFO] [stdout] test render::tests::batch_summary_unstyled_has_no_escape_codes ... ok
[INFO] [stdout] test trim::clips::tests::an_audio_file_keeps_its_own_format ... ok
[INFO] [stdout] test trim::clips::tests::an_audio_to_keeps_only_sound ... ok
[INFO] [stdout] test trim::clips::tests::a_clip_of_a_video_keeps_what_its_bar_chose ... ok
[INFO] [stdout] test trim::draw::tests::a_terminal_too_small_says_the_size_it_needs_and_any_question ... ok
[INFO] [stdout] test trim::clips::tests::to_gif_writes_every_picture_clip_as_a_gif_and_sound_as_m4a ... ok
[INFO] [stdout] test trim::draw::tests::an_odd_last_row_has_no_bottom_pixel ... ok
[INFO] [stdout] test trim::clips::tests::what_conv_trim_cannot_cut_is_refused_with_what_to_do ... ok
[INFO] [stdout] test render::tests::the_gif_filter_graph_is_quoted_even_though_it_has_no_spaces ... ok
[INFO] [stdout] test trim::clips::tests::a_gif_with_to_mp4_is_cut ... ok
[INFO] [stdout] test render::tests::failure_unstyled_is_plain_ascii_using_an_ascii_arrow ... ok
[INFO] [stdout] test trim::draw::tests::each_sextant_shape_has_its_character ... ok
[INFO] [stdout] test render::tests::human_elapsed_shows_one_decimal_below_a_minute ... ok
[INFO] [stdout] test render::tests::success_unstyled_is_plain_ascii_with_no_escape_codes ... ok
[INFO] [stdout] test render::tests::success_demotes_a_warning_onto_its_own_note_line ... ok
[INFO] [stdout] test trim::draw::tests::half_blocks_draw_two_pixels_a_cell ... ok
[INFO] [stdout] test render::tests::human_size_matches_the_briefs_worked_example ... ok
[INFO] [stdout] test trim::clips::tests::fractions_and_the_start_of_the_file_are_named_plainly ... ok
[INFO] [stdout] test trim::draw::tests::kitty_clears_then_sends_rgb_in_chunks_asking_for_no_reply ... ok
[INFO] [stdout] test trim::draw::tests::a_picture_that_does_not_fill_its_last_cells_still_draws ... ok
[INFO] [stdout] test render::tests::success_names_a_lossless_remux_on_the_result_line ... ok
[INFO] [stdout] test trim::draw::tests::ansi256_picks_the_nearest_cube_or_grey ... ok
[INFO] [stdout] test trim::clips::tests::an_outdir_holds_the_clips ... ok
[INFO] [stdout] test trim::draw::tests::iterm_sends_the_png_inline_at_a_width_in_cells ... ok
[INFO] [stdout] test trim::draw::tests::column_times_split_the_view_evenly ... ok
[INFO] [stdout] test trim::session::tests::a_file_with_one_kind_of_stream_has_one_bar_and_nothing_to_select ... ok
[INFO] [stdout] test render::tests::styling_needs_both_a_terminal_and_a_console_that_reads_ansi ... ok
[INFO] [stdout] test trim::draw::tests::the_picture_fills_what_the_text_leaves_keeping_its_shape ... ok
[INFO] [stdout] test trim::session::tests::a_clip_needs_a_length_and_is_marked_once ... ok
[INFO] [stdout] test trim::session::tests::a_message_from_outside_shows_until_the_next_key ... ok
[INFO] [stdout] test trim::session::tests::every_move_of_the_slider_bumps_the_generation ... ok
[INFO] [stdout] test trim::draw::tests::the_256_colour_palette_is_used_without_truecolor ... ok
[INFO] [stdout] test trim::draw::tests::quiet_columns_are_drawn_as_dots ... ok
[INFO] [stdout] test trim::session::tests::frame_keys_land_on_the_frames_themselves ... ok
[INFO] [stdout] test trim::draw::tests::six_pixels_are_split_into_the_two_colours_that_fit_them_best ... ok
[INFO] [stdout] test trim::session::tests::a_tap_moves_ten_milliseconds ... ok
[INFO] [stdout] test trim::session::tests::c_marks_a_start_then_an_end_with_what_the_selection_keeps ... ok
[INFO] [stdout] test trim::draw::tests::the_header_names_the_file ... ok
[INFO] [stdout] test trim::session::tests::the_replace_question_takes_the_next_key ... ok
[INFO] [stdout] test trim::session::tests::escape_drops_the_open_mark_and_u_undoes ... ok
[INFO] [stdout] test trim::session::tests::page_keys_move_a_tenth_of_the_view_and_frame_keys_a_frame ... ok
[INFO] [stdout] test trim::session::tests::turning_round_or_pausing_starts_a_new_tap ... ok
[INFO] [stdout] test trim::draw::tests::sextants_draw_six_pixels_a_cell ... ok
[INFO] [stdout] test trim::draw::tests::the_bars_show_the_slider_and_each_clip_on_what_it_keeps ... ok
[INFO] [stdout] test trim::session::tests::up_down_highlight_a_bar_and_enter_selects_it ... ok
[INFO] [stdout] test trim::session::tests::keys_arriving_together_move_a_tap_each ... ok
[INFO] [stdout] test trim::session::tests::w_writes_only_finished_clips ... ok
[INFO] [stdout] test trim::session::tests::with_the_picture_alone_a_clip_with_the_picture_keeps_only_that ... ok
[INFO] [stdout] test trim::session::tests::zoom_halves_around_the_slider_and_stops_at_two_seconds ... ok
[INFO] [stdout] test trim::session::tests::a_clip_that_cannot_be_written_is_dropped_with_the_reason ... ok
[INFO] [stdout] test trim::term::tests::graphics_overrides_what_the_environment_says ... ok
[INFO] [stdout] test trim::term::tests::keys_map_to_what_they_do ... ok
[INFO] [stdout] test trim::session::tests::the_view_follows_the_slider ... ok
[INFO] [stdout] test trim::draw::tests::loudness_columns_average_their_buckets_and_wait_for_the_rest ... ok
[INFO] [stdout] test trim::session::tests::holding_moves_two_seconds_a_second_whatever_the_repeat_rate ... ok
[INFO] [stdout] test trim::session::tests::q_quits_at_once_with_nothing_to_lose_and_asks_otherwise ... ok
[INFO] [stdout] test trim::session::tests::the_slider_stays_in_the_file ... ok
[INFO] [stdout] test trim::term::tests::the_terminal_is_told_from_its_environment ... ok
[INFO] [stdout] test trim::tests::a_clip_is_checked_as_the_flags_would_check_it ... ok
[INFO] [stdout] test trim::tests::a_file_with_nothing_in_it_is_refused_as_that_not_for_its_length ... ok
[INFO] [stdout] test trim::tests::w_refuses_two_clips_that_would_write_one_file ... ok
[INFO] [stdout] test trim::tests::the_picture_is_grabbed_at_the_size_it_is_drawn ... ok
[INFO] [stdout] test trim::tests::w_asks_before_replacing_files_already_there ... ok
[INFO] [stdout] test trim::tests::a_batch_of_events_ends_on_time_however_many_are_waiting ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 270 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.42s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/release/deps/cli-41bf556239e18b8c)
[INFO] [stdout] 
[INFO] [stdout] running 123 tests
[INFO] [stdout] test a_batch_cut_fails_only_the_file_too_short_for_it ... ignored
[INFO] [stdout] test a_cut_then_a_speed_change_plays_the_clip_faster ... ignored
[INFO] [stdout] test a_negative_frame_rate_is_refused_by_the_argument_parser_before_the_validator ... ok
[INFO] [stdout] test a_range_on_an_image_is_refused_by_name ... ok
[INFO] [stdout] test a_real_failing_conversion_writes_nothing_to_stdout_and_reports_on_stderr ... ok
[INFO] [stdout] test a_conversion_only_flag_after_a_subcommand_is_rejected ... ok
[INFO] [stdout] test a_large_percentage_upscale_without_yes_writes_nothing_and_says_why ... ok
[INFO] [stdout] test a_sized_speed_change_fits_the_output_length ... ignored
[INFO] [stdout] test a_speed_change_reaches_gif_webm_and_audio_targets ... ignored
[INFO] [stdout] test a_speed_change_retimes_picture_and_sound_and_drops_subtitles_and_chapters ... ignored
[INFO] [stdout] test a_malformed_time_names_the_forms_that_work ... ok
[INFO] [stdout] test a_speed_on_an_image_is_refused_by_name ... ok
[INFO] [stdout] test a_frame_rate_accepts_integers_decimals_and_rationals ... ok
[INFO] [stdout] test a_start_after_the_end_is_a_usage_error ... ok
[INFO] [stdout] test a_speed_that_changes_nothing_or_is_out_of_range_is_a_usage_error ... ok
[INFO] [stdout] test a_nonsense_frame_rate_is_refused_with_the_forms_named ... ok
[INFO] [stdout] test a_large_upscale_dry_run_warns_and_never_asks ... ok
[INFO] [stdout] test an_existing_same_format_output_is_refused_under_max_size_even_with_y ... ok
[INFO] [stdout] test a_job_whose_output_exists_is_not_asked_about ... ok
[INFO] [stdout] test a_webm_knob_with_no_ffprobe_names_ffprobe_not_a_false_refusal ... ok
[INFO] [stdout] test an_argument_that_is_not_utf8_does_not_break_the_result_printer ... ok
[INFO] [stdout] test a_json_refusal_is_confirmation_required_with_no_human_block ... ok
[INFO] [stdout] test a_zero_dimension_geometry_is_refused ... ok
[INFO] [stdout] test capabilities_advertises_the_video_chain_flags_for_webm_targets ... ok
[INFO] [stdout] test an_upscaled_image_dry_run_drops_the_shrink_only_flag_and_warns ... ok
[INFO] [stdout] test capabilities_json_lists_pairs_with_their_backends ... ok
[INFO] [stdout] test an_existing_same_format_output_that_cannot_be_sized_is_refused_by_the_flag ... ok
[INFO] [stdout] test capabilities_lists_strip_metadata_where_it_applies ... ok
[INFO] [stdout] test a_sized_dry_run_of_an_extreme_source_warns_and_suggests ... ok
[INFO] [stdout] test a_sized_dry_run_shows_both_passes_and_the_plan ... ok
[INFO] [stdout] test capabilities_lists_the_video_knobs_for_a_video_target ... ok
[INFO] [stdout] test capabilities_lists_the_range_flags_where_a_cut_works ... ok
[INFO] [stdout] test an_argument_that_is_not_utf8_does_not_break_the_extreme_warning ... ok
[INFO] [stdout] test conv_trim_asks_before_replacing_a_clip_already_there ... ignored
[INFO] [stdout] test conv_trim_quits_without_writing_when_asked ... ignored
[INFO] [stdout] test conv_trim_refuses_a_file_without_a_length ... ignored
[INFO] [stdout] test a_batch_with_extreme_jobs_asks_once_and_writes_nothing ... ok
[INFO] [stdout] test capabilities_no_longer_advertises_quality_for_video ... ok
[INFO] [stdout] test conv_trim_takes_ctrl_c_and_held_arrows_as_keys ... ignored
[INFO] [stdout] test capabilities_lists_max_size_for_video_targets_only ... ok
[INFO] [stdout] test conv_trim_writes_the_clips_marked_in_a_real_terminal ... ignored
[INFO] [stdout] test capabilities_and_scan_agree_on_the_kind_spelling ... ok
[INFO] [stdout] test defaults_are_per_target_because_one_format_has_several ... ok
[INFO] [stdout] test conv_trim_refuses_an_outdir_that_is_a_file_before_the_session ... ok
[INFO] [stdout] test a_sized_json_dry_run_carries_the_choice ... ok
[INFO] [stdout] test capabilities_lists_upscale_wherever_it_lists_resize ... ok
[INFO] [stdout] test capabilities_lists_the_speed_flags_where_a_cut_works ... ok
[INFO] [stdout] test an_extreme_target_without_yes_writes_nothing_and_says_why ... ok
[INFO] [stdout] test conv_trim_without_a_terminal_points_at_the_flags ... ok
[INFO] [stdout] test dot_extension_form_derives_the_output_name ... ok
[INFO] [stdout] test dry_run_exits_with_the_underlying_code_when_every_job_fails ... ok
[INFO] [stdout] test capabilities_with_a_format_lists_tuning_flags_and_defaults ... ok
[INFO] [stdout] test dry_run_strips_a_lone_photo_into_a_stripped_copy ... ok
[INFO] [stdout] test dry_run_prints_the_expert_ffmpeg_command ... ok
[INFO] [stdout] test dry_run_previews_every_job_even_when_one_fails_to_build ... ok
[INFO] [stdout] test help_carries_no_notes_meant_for_the_source ... ok
[INFO] [stdout] test capabilities_say_max_size_keeps_the_tracks_the_mp4_recipe_drops ... ok
[INFO] [stdout] test dry_run_previews_the_pandoc_typst_fallback_when_soffice_path_is_unresolvable ... ok
[INFO] [stdout] test dry_run_still_previews_soffice_when_it_is_available_even_alongside_pandoc_and_typst ... ok
[INFO] [stdout] test conv_trim_refuses_what_it_cannot_cut_before_anything_else ... ok
[INFO] [stdout] test install_magick_reports_no_managed_build_on_every_platform ... ok
[INFO] [stdout] test install_soffice_json_refusal_has_no_managed_remediation ... ok
[INFO] [stdout] test install_soffice_refuses_without_attempting_a_download ... ok
[INFO] [stdout] test json_error_envelope_lands_on_stderr_when_no_job_could_be_built_at_all ... ok
[INFO] [stdout] test json_dry_run_reports_a_per_job_plan_failure_inside_the_plans_array_not_stderr ... ok
[INFO] [stdout] test json_dry_run_reports_ok_and_the_first_step_program ... ok
[INFO] [stdout] test json_mode_never_prompts_on_a_missing_backend ... ok
[INFO] [stdout] test install_rejects_an_unrecognised_backend_name ... ok
[INFO] [stdout] test max_size_with_an_output_equal_to_the_input_is_refused_even_with_y ... ok
[INFO] [stdout] test max_size_on_a_gif_target_is_refused_by_name ... ok
[INFO] [stdout] test max_size_without_a_unit_is_a_usage_error ... ok
[INFO] [stdout] test piped_stdin_never_prompts_and_reports_the_structured_error ... ok
[INFO] [stdout] test a_png_target_notes_only_a_multi_frame_source ... ok
[INFO] [stdout] test no_install_flag_never_prompts_even_though_it_would_otherwise_be_offerable ... ok
[INFO] [stdout] test failing_conversion_prints_a_fail_header_message_and_one_remediation_line ... ok
[INFO] [stdout] test a_confirmed_extreme_conversion_prints_its_warning_once ... ok
[INFO] [stdout] test scan_honours_quiet ... ok
[INFO] [stdout] test scan_json_reports_each_file_with_its_targets ... ok
[INFO] [stdout] test quiet_flag_never_prompts_either ... ok
[INFO] [stdout] test scan_json_keeps_the_listing_when_one_path_is_missing ... ok
[INFO] [stdout] test json_success_is_unchanged_except_for_the_additive_elapsed_ms_key ... ok
[INFO] [stdout] test dry_run_of_an_extreme_source_plans_without_asking ... ok
[INFO] [stdout] test quiet_suppresses_success_output_entirely ... ok
[INFO] [stdout] test outdir_holds_a_named_output_and_refuses_a_second_directory ... ok
[INFO] [stdout] test scan_still_lists_what_it_found_alongside_a_missing_path ... ok
[INFO] [stdout] test scan_json_uses_the_types_own_kind_spelling ... ok
[INFO] [stdout] test shift_pitch_moves_the_pitch_with_the_speed_and_keeps_the_sample_rate ... ignored
[INFO] [stdout] test scan_reports_a_missing_path_instead_of_describing_it ... ok
[INFO] [stdout] test scan_json_reports_failure_in_the_envelope_not_only_the_exit_code ... ok
[INFO] [stdout] test resize_geometry_rejects_magick_operators ... ok
[INFO] [stdout] test scan_lists_convertible_files_with_their_targets ... ok
[INFO] [stdout] test the_conversion_path_still_accepts_every_conversion_only_flag ... ok
[INFO] [stdout] test several_videos_under_max_size_without_to_are_told_to_add_to ... ok
[INFO] [stdout] test scan_truncates_an_overlong_name_instead_of_breaking_the_columns ... ok
[INFO] [stdout] test top_level_help_lists_the_update_subcommand ... ok
[INFO] [stdout] test scan_needs_no_backends ... ok
[INFO] [stdout] test a_batch_of_large_upscales_asks_once_and_names_each ... ok
[INFO] [stdout] test subcommand_help_never_lists_conversion_only_flags ... ok
[INFO] [stdout] test subcommand_help_still_lists_the_genuinely_global_flags ... ok
[INFO] [stdout] test unknown_extension_exits_two_and_suggests ... ok
[INFO] [stdout] test unsupported_pair_exits_two ... ok
[INFO] [stdout] test successful_conversion_prints_result_line_and_the_absolute_output_path ... ok
[INFO] [stdout] test update_help_explains_the_pinned_not_latest_design_and_no_self_replace ... ok
[INFO] [stdout] test update_check_json_reports_a_never_installed_backend_as_not_installed_and_ok ... ok
[INFO] [stdout] test update_check_reports_every_managed_backend_as_not_installed_in_an_isolated_environment ... ok
[INFO] [stdout] test verbose_and_quiet_together_is_a_usage_error ... ok
[INFO] [stdout] test four_times_the_pixels_warns_without_asking ... ok
[INFO] [stdout] test update_no_install_behaves_like_check_and_never_downloads ... ok
[INFO] [stdout] test upscale_needs_resize_and_cannot_join_max_size ... ok
[INFO] [stdout] test update_check_json_envelope_lands_on_stderr_when_a_managed_backend_is_outdated ... ok
[INFO] [stdout] test tuning_without_a_slot_is_refused_with_the_reason ... ok
[INFO] [stdout] test yes_and_no_install_together_is_a_usage_error ... ok
[INFO] [stdout] test tuning_flags_appear_in_the_dry_run_command ... ok
[INFO] [stdout] test verbose_prints_the_spawned_command_line_on_stderr ... ok
[INFO] [stdout] test yes_answers_the_extreme_question_and_the_conversion_starts ... ok
[INFO] [stdout] test a_large_upscale_asks_and_yes_answers_it ... ok
[INFO] [stdout] test the_gif_buffering_note_shows_only_for_a_long_source ... ok
[INFO] [stdout] test doctor_json_marks_libreoffice_as_manual_install_only ... ok
[INFO] [stdout] test doctor_json_marks_imagemagick_as_manual_install_only ... ok
[INFO] [stdout] test doctor_reports_every_backend_and_never_exits_nonzero_for_missing_ones ... ok
[INFO] [stdout] test strip_metadata_is_refused_where_it_cannot_apply ... ok
[INFO] [stdout] test scan_json_survives_a_closed_pipe ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/convkit_core-6f7617fced50da51)
[INFO] [stdout] test a_jpg_targets_note_says_only_what_the_source_holds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 112 passed; 0 failed; 11 ignored; 0 measured; 0 filtered out; finished in 1.61s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 720 tests
[INFO] [stdout] test backend_overrides::tests::explicit_ffprobe_wins_over_the_ffmpeg_sibling_inference ... ok
[INFO] [stdout] test backend_overrides::tests::each_override_lands_on_exactly_its_own_backend ... ok
[INFO] [stdout] test budget::tests::a_cap_leaves_out_larger_pictures_and_is_charged_as_loss ... ok
[INFO] [stdout] test backend_overrides::tests::ffprobe_alone_overrides_only_ffprobe ... ok
[INFO] [stdout] test budget::tests::a_generous_target_keeps_the_source_as_it_is ... ok
[INFO] [stdout] test backend_overrides::tests::a_nonexistent_override_errors_instead_of_falling_through ... ok
[INFO] [stdout] test backend_overrides::tests::ffmpeg_alone_still_infers_the_sibling_ffprobe ... ok
[INFO] [stdout] test backend_overrides::tests::no_overrides_behaves_exactly_like_a_bare_resolver ... ok
[INFO] [stdout] test budget::tests::a_ceiling_far_below_the_source_does_not_overflow_the_search ... ok
[INFO] [stdout] test backend_overrides::tests::an_inferred_ffprobe_sibling_that_does_not_exist_also_errors ... ok
[INFO] [stdout] test budget::tests::a_binding_user_ceiling_is_not_charged_as_loss ... ok
[INFO] [stdout] test budget::tests::a_very_short_clip_under_a_normal_target_is_left_alone ... ok
[INFO] [stdout] test budget::tests::a_target_that_can_never_be_met_has_no_suggestion_and_no_overflow ... ok
[INFO] [stdout] test budget::tests::loss_is_spread_rather_than_drained_from_one_dial ... ok
[INFO] [stdout] test budget::tests::from_probe_refuses_a_zero_dimension ... ok
[INFO] [stdout] test budget::tests::audio_tracks_are_counted_and_a_silent_source_gets_no_audio_rate ... ok
[INFO] [stdout] test budget::tests::computed_dimensions_round_to_the_nearest_even_value ... ok
[INFO] [stdout] test budget::tests::a_target_near_u64_max_does_not_overflow ... ok
[INFO] [stdout] test budget::tests::from_probe_names_what_is_missing ... ok
[INFO] [stdout] test budget::tests::a_hopeless_target_is_extreme_over_and_suggests_a_size_that_is_not ... ok
[INFO] [stdout] test budget::tests::a_portrait_source_steps_its_short_side_and_stays_portrait ... ok
[INFO] [stdout] test budget::tests::audio_is_never_raised_above_the_source ... ok
[INFO] [stdout] test error::tests::backend_missing_never_offers_managed_install_when_no_manifest_entry_exists ... ok
[INFO] [stdout] test budget::tests::the_achieved_video_rate_is_the_file_less_its_audio_and_reserve ... ok
[INFO] [stdout] test error::tests::backend_missing_offers_managed_install_for_managed_backends ... ok
[INFO] [stdout] test budget::tests::nothing_is_ever_upscaled_or_sped_up ... ok
[INFO] [stdout] test budget::tests::the_next_short_side_below_is_the_next_step_down ... ok
[INFO] [stdout] test budget::tests::the_payload_reserves_margin_overhead_subtitles_and_mkv_attachments ... ok
[INFO] [stdout] test error::tests::confirmation_required_has_a_stable_json_name ... ok
[INFO] [stdout] test budget::tests::user_ceilings_are_respected ... ok
[INFO] [stdout] test error::tests::exit_codes_match_the_spec ... ok
[INFO] [stdout] test error::tests::not_installable_never_offers_a_managed_install ... ok
[INFO] [stdout] test error::tests::password_protected_names_the_file_and_the_way_out ... ok
[INFO] [stdout] test error::tests::no_managed_build_never_offers_a_managed_install_either ... ok
[INFO] [stdout] test error::tests::unsupported_pair_names_both_formats ... ok
[INFO] [stdout] test error::tests::unknown_format_carries_a_suggestion_in_its_message ... ok
[INFO] [stdout] test budget::tests::ntsc_and_variable_rates_divide_exactly ... ok
[INFO] [stdout] test error::tests::serialises_to_the_documented_json_envelope ... ok
[INFO] [stdout] test budget::tests::a_choice_publishes_its_rate_in_lowest_terms ... ok
[INFO] [stdout] test exec::tests::a_genuine_stream_copy_is_still_reported_as_one ... ok
[INFO] [stdout] test budget::tests::a_starved_144_fps_clip_does_not_keep_144_fps ... ok
[INFO] [stdout] test exec::tests::a_first_pass_that_writes_no_file_and_exits_zero_is_a_success ... FAILED
[INFO] [stdout] test error::tests::backend_missing_never_leaves_remediation_empty ... ok
[INFO] [stdout] test budget::tests::a_larger_target_never_costs_more ... ok
[INFO] [stdout] test budget::tests::raising_a_weight_protects_that_dial ... ok
[INFO] [stdout] test exec::tests::a_password_protected_doc_that_fails_says_so ... ok
[INFO] [stdout] test exec::tests::a_password_protected_docx_is_refused_before_libreoffice_runs ... ok
[INFO] [stdout] test exec::tests::a_backend_that_writes_nothing_is_a_failure_even_on_exit_zero ... ok
[INFO] [stdout] test exec::tests::a_mid_recipe_failure_leaves_no_scratch_directory_behind ... ok
[INFO] [stdout] test budget::tests::no_capped_choice_is_larger_than_its_cap ... ok
[INFO] [stdout] test exec::tests::a_first_pass_that_exits_nonzero_fails_the_run_as_a_failure ... ok
[INFO] [stdout] test exec::tests::a_read_only_source_is_copied_to_a_writable_output ... ok
[INFO] [stdout] test exec::tests::a_conversion_says_when_it_keeps_a_gps_location ... ok
[INFO] [stdout] test exec::tests::a_cost_extreme_plan_keeps_its_quality_note_when_the_encode_fits ... ok
[INFO] [stdout] test exec::tests::a_fallback_encode_that_writes_nothing_fails_rather_than_reusing_the_remux ... ok
[INFO] [stdout] test exec::tests::a_remux_that_fits_is_one_ffmpeg_call_and_says_the_video_was_copied ... ok
[INFO] [stdout] test exec::tests::a_fallback_encode_that_is_extreme_is_refused_unless_allowed ... ok
[INFO] [stdout] test exec::tests::a_source_already_small_enough_is_copied_byte_for_byte ... ok
[INFO] [stdout] test exec::tests::a_retry_stops_at_the_encoder_floor_rather_than_repeating_an_attempt ... ok
[INFO] [stdout] test exec::tests::a_retried_pass_two_that_writes_nothing_fails_rather_than_reusing_the_last_file ... ok
[INFO] [stdout] test budget::tests::a_picture_capped_144_fps_clip_does_not_keep_144_fps ... ok
[INFO] [stdout] test exec::tests::a_retry_that_would_turn_extreme_waits_for_consent ... ok
[INFO] [stdout] test exec::tests::a_transcoded_invocation_is_not_reported_as_a_stream_copy ... ok
[INFO] [stdout] test exec::tests::a_strip_without_ffprobe_says_to_install_it ... ok
[INFO] [stdout] test exec::tests::a_successful_step_renames_into_place_and_reports_size ... ok
[INFO] [stdout] test exec::tests::an_empty_stderr_tail_adds_nothing_to_the_message ... ok
[INFO] [stdout] test exec::tests::a_remux_that_comes_out_over_falls_back_to_an_encode ... ok
[INFO] [stdout] test exec::tests::a_large_upscale_is_refused_unless_allowed_and_nothing_runs ... ok
[INFO] [stdout] test exec::tests::a_webm_knob_with_no_ffprobe_reports_backend_missing_naming_ffprobe ... ok
[INFO] [stdout] test exec::tests::a_jpg_targets_note_follows_the_image_read ... ok
[INFO] [stdout] test exec::tests::an_ordinary_step_is_left_in_plain_path_form ... ok
[INFO] [stdout] test exec::tests::a_shrinking_upscale_warns_nothing ... ok
[INFO] [stdout] test exec::tests::an_extreme_plan_is_refused_unless_allowed_and_nothing_runs ... ok
[INFO] [stdout] test exec::tests::a_sized_encode_that_fits_first_time_runs_two_passes ... ok
[INFO] [stdout] test exec::tests::classifier_dedups_and_caps_with_an_honest_overflow_count ... ok
[INFO] [stdout] test exec::tests::a_retry_that_turns_extreme_runs_with_consent_and_says_so ... ok
[INFO] [stdout] test exec::tests::an_unencrypted_doc_that_fails_keeps_the_ordinary_error ... ok
[INFO] [stdout] test exec::tests::a_saturated_attempt_makes_the_next_picture_smaller ... ok
[INFO] [stdout] test exec::tests::a_target_missed_only_by_the_margin_is_a_quality_note_when_the_encode_fits ... ok
[INFO] [stdout] test exec::tests::ffmpeg_classifier_ignores_stream_dump_lines_echoing_user_names ... ok
[INFO] [stdout] test exec::tests::ffmpeg_classifier_keeps_component_tagged_and_line_initial_reports ... ok
[INFO] [stdout] test exec::tests::an_image_on_its_side_is_sized_as_it_will_be_shown ... ok
[INFO] [stdout] test exec::tests::is_remux_is_false_for_a_genuine_transcode ... ok
[INFO] [stdout] test exec::tests::is_remux_recognizes_bare_c_copy ... ok
[INFO] [stdout] test exec::tests::is_remux_recognizes_per_stream_video_and_audio_copy ... ok
[INFO] [stdout] test exec::tests::is_remux_requires_both_video_and_audio_copy_not_just_one ... ok
[INFO] [stdout] test exec::tests::locate_outdir_result_ignores_directories ... ok
[INFO] [stdout] test exec::tests::fallback_recipe_substitutes_the_real_typst_path_and_never_touches_soffice ... ok
[INFO] [stdout] test exec::tests::make_lo_profile_dir_lives_directly_under_system_temp_and_is_unique_per_call ... ok
[INFO] [stdout] test exec::tests::an_svg_is_sized_at_the_density_it_renders_at ... ok
[INFO] [stdout] test exec::tests::an_encode_over_the_target_is_planned_again_and_runs_both_passes ... ok
[INFO] [stdout] test exec::tests::a_target_missed_only_by_the_margin_says_so_once_the_encode_is_measured_over ... ok
[INFO] [stdout] test exec::tests::every_page_an_input_brings_is_sized ... ok
[INFO] [stdout] test exec::tests::an_allowed_extreme_plan_that_fits_anyway_does_not_say_it_could_not ... ok
[INFO] [stdout] test exec::tests::only_pandoc_available_still_reports_backend_missing_naming_soffice ... ok
[INFO] [stdout] test exec::tests::only_recorded_path_positions_are_rewritten ... ok
[INFO] [stdout] test exec::tests::locate_outdir_result_matches_the_input_stem_not_just_the_newest_file ... ok
[INFO] [stdout] test exec::tests::pandoc_classifier_keeps_could_not_fetch_resource ... ok
[INFO] [stdout] test exec::tests::run_refuses_to_clobber_an_existing_output_when_overwrite_is_false ... ok
[INFO] [stdout] test exec::tests::scratch_guard_also_removes_every_tracked_profile_directory_on_drop ... ok
[INFO] [stdout] test exec::tests::no_temp_files_survive_a_successful_run ... ok
[INFO] [stdout] test exec::tests::soffice_classifier_ignores_the_convert_echo_line ... ok
[INFO] [stdout] test exec::tests::a_retry_replaces_the_notes_of_the_attempt_before_it ... ok
[INFO] [stdout] test exec::tests::substitute_backend_paths_reports_backend_missing_naming_the_absent_backend ... ok
[INFO] [stdout] test exec::tests::the_mkv_per_stream_transcode_is_also_not_a_stream_copy ... ok
[INFO] [stdout] test exec::tests::scratch_guard_removes_a_populated_directory_on_drop ... ok
[INFO] [stdout] test exec::tests::run_permits_clobbering_an_existing_output_when_overwrite_is_true ... ok
[INFO] [stdout] test exec::tests::user_installation_url_is_a_well_formed_file_url_on_unix ... ok
[INFO] [stdout] test exec::tests::user_installation_url_percent_encodes_a_space_in_the_path ... ok
[INFO] [stdout] test exec::tests::four_times_the_pixels_runs_unasked_and_reports_the_enlargement ... ok
[INFO] [stdout] test format::tests::a_read_only_alias_is_flagged_and_never_canonical ... ok
[INFO] [stdout] test format::tests::a_read_only_alias_parses_as_its_format ... ok
[INFO] [stdout] test format::tests::classifies_kinds ... ok
[INFO] [stdout] test format::tests::no_extension_is_both_writable_and_read_only ... ok
[INFO] [stdout] test exec::tests::the_stderr_tail_reads_in_natural_top_to_bottom_order ... ok
[INFO] [stdout] test format::tests::round_trips_canonical_extension ... ok
[INFO] [stdout] test format::tests::suggest_returns_none_for_empty_needle ... ok
[INFO] [stdout] test exec::tests::run_emits_step_report_with_the_backend_transcript_even_on_failure ... ok
[INFO] [stdout] test format::tests::parses_extensions_case_insensitively_and_with_dots ... ok
[INFO] [stdout] test exec::tests::run_emits_step_spawned_with_the_resolved_program_and_final_argv ... ok
[INFO] [stdout] test frames::tests::a_png_frame_keeps_its_aspect ... ok
[INFO] [stdout] test format::tests::suggests_near_misses_but_not_nonsense ... ok
[INFO] [stdout] test frames::tests::buckets_ignore_where_reads_fall ... ok
[INFO] [stdout] test frames::tests::dbfs_is_floored ... ok
[INFO] [stdout] test icon::tests::a_raster_icon_is_squared_at_its_own_longer_side ... ok
[INFO] [stdout] test icon::tests::an_icos_largest_frame_is_chosen_wherever_it_sits ... ok
[INFO] [stdout] test icon::tests::an_svg_icon_renders_at_the_largest_size ... ok
[INFO] [stdout] test frames::tests::rms_runs_from_silence_to_full_scale ... ok
[INFO] [stdout] test frames::tests::a_raw_frame_is_seeked_scaled_and_piped ... ok
[INFO] [stdout] test icon::tests::an_unread_source_changes_nothing ... ok
[INFO] [stdout] test install::tests::capped_writer_accepts_writes_up_to_and_including_the_cap ... ok
[INFO] [stdout] test install::tests::capped_writer_rejects_a_write_that_would_exceed_the_cap ... ok
[INFO] [stdout] test install::tests::extract_raw_returns_the_bytes_unchanged ... ok
[INFO] [stdout] test install::tests::extract_tar_gz_finds_the_named_member ... ok
[INFO] [stdout] test install::tests::extract_pulls_every_member_out_of_one_shared_zip_download ... ok
[INFO] [stdout] test install::tests::extract_tar_xz_finds_the_named_member ... ok
[INFO] [stdout] test install::tests::extract_tar_xz_reports_a_missing_member ... ok
[INFO] [stdout] test install::tests::extract_tar_xz_tolerates_a_leading_dot_slash_in_the_entry_name ... ok
[INFO] [stdout] test install::tests::extract_zip_finds_the_named_member ... ok
[INFO] [stdout] test install::tests::extract_tar_gz_tolerates_a_leading_dot_slash_in_the_entry_name ... ok
[INFO] [stdout] test install::tests::extract_zip_reports_a_missing_member ... ok
[INFO] [stdout] test install::tests::install_bytes_leaves_dest_untouched_when_the_final_rename_fails ... ok
[INFO] [stdout] test install::tests::install_bytes_leaves_no_temp_file_when_the_write_itself_fails ... ok
[INFO] [stdout] test install::tests::read_capped_accepts_data_under_the_cap ... ok
[INFO] [stdout] test install::tests::read_capped_pattern_detects_a_reader_over_the_cap ... ok
[INFO] [stdout] test install::tests::install_bytes_writes_dest_and_leaves_no_temp_file_behind ... ok
[INFO] [stdout] test install::tests::verify_accepts_the_real_digest ... ok
[INFO] [stdout] test install::tests::verify_rejects_a_hash_mismatch ... ok
[INFO] [stdout] test install::tests::verify_is_case_insensitive_on_the_expected_digest ... ok
[INFO] [stdout] test manifest::tests::a_raw_asset_names_exactly_one_member ... ok
[INFO] [stdout] test manifest::tests::bundled_with_is_empty_for_a_single_member_asset ... ok
[INFO] [stdout] test manifest::tests::bundled_with_is_empty_when_there_is_no_manifest_entry ... ok
[INFO] [stdout] test manifest::tests::bundled_with_reports_the_sibling_on_windows_x64 ... ok
[INFO] [stdout] test manifest::tests::every_archive_entry_names_a_member_and_every_raw_entry_does_not ... ok
[INFO] [stdout] test install::tests::verify_rejects_wrong_length_input_rather_than_panicking ... ok
[INFO] [stdout] test manifest::tests::every_entry_names_at_least_one_member ... ok
[INFO] [stdout] test manifest::tests::every_ffmpeg_and_ffprobe_entry_pins_the_same_version_across_every_platform ... ok
[INFO] [stdout] test manifest::tests::every_manifest_url_is_pinned_not_latest ... ok
[INFO] [stdout] test manifest::tests::ffmpeg_and_ffprobe_are_not_bundled_off_windows ... ok
[INFO] [stdout] test manifest::tests::ffmpeg_and_ffprobe_share_one_asset_on_windows_x64 ... ok
[INFO] [stdout] test manifest::tests::ffmpeg_major_version_matches_across_every_platform ... ok
[INFO] [stdout] test manifest::tests::has_managed_build_agrees_with_lookup_on_a_covered_platform ... ok
[INFO] [stdout] test manifest::tests::every_asset_carries_a_nonempty_version_with_no_leading_tag_prefix ... ok
[INFO] [stdout] test manifest::tests::has_managed_build_is_false_for_magick_on_every_platform ... ok
[INFO] [stdout] test manifest::tests::has_managed_build_is_true_for_typst_on_a_covered_platform ... ok
[INFO] [stdout] test manifest::tests::has_managed_build_is_false_for_soffice ... ok
[INFO] [stdout] test manifest::tests::libreoffice_has_no_manifest_entry ... ok
[INFO] [stdout] test manifest::tests::linux_arm64_now_has_manifest_entries_for_ffmpeg_ffprobe_pandoc_and_typst ... ok
[INFO] [stdout] test manifest::tests::lookup_finds_the_entry_for_the_running_platform_when_one_exists ... ok
[INFO] [stdout] test manifest::tests::no_two_entries_claim_the_same_backend_and_platform ... ok
[INFO] [stdout] test manifest::tests::typst_has_a_manifest_entry_for_every_platform_this_manifest_covers ... ok
[INFO] [stdout] test manifest::tests::version_is_current_accepts_a_real_build_suffix ... ok
[INFO] [stdout] test manifest::tests::version_is_current_accepts_an_exact_match ... ok
[INFO] [stdout] test manifest::tests::version_is_current_rejects_a_genuinely_different_version ... ok
[INFO] [stdout] test manifest::tests::version_is_current_rejects_a_longer_version_that_merely_shares_a_prefix ... ok
[INFO] [stdout] test manifest::tests::version_is_current_rejects_when_probed_is_a_prefix_of_pinned ... ok
[INFO] [stdout] test media::tests::a_bitmap_sibling_never_costs_a_text_subtitle_its_seat ... ok
[INFO] [stdout] test media::tests::a_copy_into_ogg_notes_dropped_cover_art ... ok
[INFO] [stdout] test media::tests::a_cut_drops_the_subtitles_before_it_and_the_chapters ... ok
[INFO] [stdout] test media::tests::a_rate_on_a_silent_source_adds_no_audio_arguments ... ok
[INFO] [stdout] test media::tests::a_silent_source_gets_no_audio_rate ... ok
[INFO] [stdout] test media::tests::a_stream_copy_cut_puts_the_cut_ahead_of_the_input ... ok
[INFO] [stdout] test manifest::tests::imagemagick_has_no_manifest_entry ... ok
[INFO] [stdout] test media::tests::a_stripped_audio_copy_clears_the_tags_before_the_output ... ok
[INFO] [stdout] test exec::tests::outdir_recipe_never_touches_a_decoy_already_in_the_destination_directory ... ok
[INFO] [stdout] test media::tests::a_stripped_remux_clears_the_tags_and_writes_back_the_kept_ones ... ok
[INFO] [stdout] test media::tests::a_target_with_no_encoder_declines ... ok
[INFO] [stdout] test media::tests::a_transcode_keeps_every_audio_track_the_copy_path_would_have_kept ... ok
[INFO] [stdout] test media::tests::a_transcode_to_mkv_tunes_only_the_first_video_stream ... ok
[INFO] [stdout] test media::tests::a_stripped_mkv_keeps_its_attachments_tags ... ok
[INFO] [stdout] test media::tests::a_stripped_ogg_leaves_out_its_cover_picture ... ok
[INFO] [stdout] test media::tests::a_user_crf_overrides_the_anchor ... ok
[INFO] [stdout] test media::tests::a_transcode_to_webm_uses_vp9_and_its_own_anchor ... ok
[INFO] [stdout] test media::tests::additional_video_streams_are_warned_about ... ok
[INFO] [stdout] test media::tests::an_illegal_audio_track_reencodes_only_itself ... ok
[INFO] [stdout] test media::tests::ass_subtitles_warn_about_styling_loss ... ok
[INFO] [stdout] test media::tests::attachment_streams_are_warned_about_for_non_mkv_targets ... ok
[INFO] [stdout] test media::tests::audio_sources_keep_cover_art_except_into_wav ... ok
[INFO] [stdout] test media::tests::both_passes_encode_at_the_same_frame_rate_mode ... ok
[INFO] [stdout] test media::tests::copied_audio_drops_what_comes_before_a_cut ... ok
[INFO] [stdout] test media::tests::data_stream_warnings_track_what_each_muxer_actually_does ... ok
[INFO] [stdout] test media::tests::every_audio_track_shares_one_reencode_rate ... ok
[INFO] [stdout] test media::tests::incompatible_audio_alone_never_reencodes_the_video ... ok
[INFO] [stdout] test media::tests::incompatible_or_unknown_video_falls_back_to_the_static_transcode ... ok
[INFO] [stdout] test format::tests::suggestions_for_a_read_only_alias_name_the_writable_spelling ... ok
[INFO] [stdout] test media::tests::matching_audio_codec_extracts_by_stream_copy ... ok
[INFO] [stdout] test icon::tests::the_warning_names_every_size_bigger_than_the_source ... ok
[INFO] [stdout] test media::tests::mkv_copies_text_subtitles_explicitly ... ok
[INFO] [stdout] test media::tests::mkv_excludes_subtitle_codecs_matroska_rejects ... ok
[INFO] [stdout] test media::tests::mkv_pass_one_lays_out_the_same_streams_as_pass_two ... ok
[INFO] [stdout] test media::tests::a_transcode_to_mp4_carries_an_encoder_and_a_pixel_format ... ok
[INFO] [stdout] test media::tests::mkv_reencodes_mov_text_subtitles_to_srt ... ok
[INFO] [stdout] test media::tests::mkv_scopes_the_rate_options_to_the_encoded_stream ... ok
[INFO] [stdout] test media::tests::mp4_remux_maps_every_audio_track ... ok
[INFO] [stdout] test media::tests::multi_track_sources_warn_that_only_the_first_is_extracted ... ok
[INFO] [stdout] test media::tests::non_video_targets_and_videoless_sources_get_none ... ok
[INFO] [stdout] test media::tests::non_matching_or_unknown_audio_falls_back_to_transcode ... ok
[INFO] [stdout] test media::tests::ogg_takes_a_vorbis_or_opus_copy_and_opus_only_opus ... ok
[INFO] [stdout] test media::tests::only_the_mp4_family_gets_movflags ... ok
[INFO] [stdout] test media::tests::mp4_two_pass_argv_is_exactly_the_documented_shape ... ok
[INFO] [stdout] test media::tests::text_subtitles_are_carried_not_dropped ... ok
[INFO] [stdout] test media::tests::the_argv_still_opens_with_the_input_and_closes_with_the_output ... ok
[INFO] [stdout] test media::tests::the_input_is_found_after_a_cut ... ok
[INFO] [stdout] test metadata::tests::an_image_note_follows_what_each_target_keeps ... ok
[INFO] [stdout] test media::tests::webm_hybrid_coerces_channel_layouts_for_libopus ... ok
[INFO] [stdout] test media::tests::webm_two_pass_drops_constant_quality_and_sizes_opus ... ok
[INFO] [stdout] test metadata::tests::a_gif_source_has_no_tags_to_be_unread ... ok
[INFO] [stdout] test metadata::tests::a_media_note_follows_which_tag_each_target_keeps ... ok
[INFO] [stdout] test metadata::tests::ffmpeg_clears_everything_then_writes_back_what_it_keeps ... ok
[INFO] [stdout] test metadata::tests::the_fix_for_a_format_kept_as_itself_is_a_real_pair ... ok
[INFO] [stdout] test metadata::tests::the_flag_says_when_it_clears_track_languages_or_chapter_names ... ok
[INFO] [stdout] test office::tests::a_file_that_is_not_a_compound_file_holds_neither ... ok
[INFO] [stdout] test office::tests::a_powerpoint_file_is_encrypted_when_its_current_user_token_says_so ... ok
[INFO] [stdout] test office::tests::a_word_file_is_encrypted_when_its_fib_says_so ... ok
[INFO] [stdout] test office::tests::a_damaged_compound_file_is_unread ... ok
[INFO] [stdout] test office::tests::an_encrypted_package_is_a_password_protected_docx_xlsx_or_pptx ... ok
[INFO] [stdout] test office::tests::an_excel_file_is_encrypted_when_filepass_follows_bof ... ok
[INFO] [stdout] test office::tests::only_entries_at_the_root_count ... ok
[INFO] [stdout] test office::tests::word_and_excel_macros_are_a_vba_storage_at_the_root ... ok
[INFO] [stdout] test plan::tests::a_cap_that_does_not_bind_reaches_the_plans_warnings ... ok
[INFO] [stdout] test plan::tests::a_compressed_tiff_stripped_in_place_stays_compressed ... ok
[INFO] [stdout] test plan::tests::a_container_change_that_would_copy_is_reencoded_for_a_speed_change ... ok
[INFO] [stdout] test plan::tests::a_csv_is_imported_with_the_options_read_from_it ... ok
[INFO] [stdout] test office::tests::the_password_fixtures_read_as_encrypted ... ok
[INFO] [stdout] test plan::tests::a_cut_after_zero_re_encodes_to_start_exactly_and_says_why ... ok
[INFO] [stdout] test plan::tests::a_cut_and_a_speed_change_cut_the_source_then_retime_it ... ok
[INFO] [stdout] test plan::tests::a_cut_from_zero_keeps_the_stream_copy ... ok
[INFO] [stdout] test plan::tests::a_cut_into_its_own_format_strips_as_it_cuts ... ok
[INFO] [stdout] test plan::tests::a_flac_cut_into_flac_is_written_out_again ... ok
[INFO] [stdout] test plan::tests::a_gif_fps_at_or_above_the_source_keeps_the_source_rate ... ok
[INFO] [stdout] test plan::tests::a_format_into_itself_without_a_range_is_still_no_conversion ... ok
[INFO] [stdout] test office::tests::powerpoint_macros_are_a_nonzero_vba_reference ... ok
[INFO] [stdout] test plan::tests::a_cut_from_zero_of_video_with_b_frames_re_encodes_to_end_exactly ... ok
[INFO] [stdout] test plan::tests::a_gif_resize_past_the_source_keeps_the_source_size ... ok
[INFO] [stdout] test plan::tests::a_non_binding_fps_on_a_probed_webm_target_is_a_noted_no_op ... ok
[INFO] [stdout] test plan::tests::a_non_binding_resize_on_a_probed_webm_target_is_a_noted_no_op ... ok
[INFO] [stdout] test plan::tests::a_password_protected_ooxml_source_is_refused_and_a_legacy_one_is_not ... ok
[INFO] [stdout] test plan::tests::a_plan_carries_only_the_notes_its_source_needs ... ok
[INFO] [stdout] test plan::tests::a_plan_without_a_range_serialises_without_one ... ok
[INFO] [stdout] test plan::tests::a_gif_is_retimed_ahead_of_its_frame_rate_cap ... ok
[INFO] [stdout] test plan::tests::a_knob_on_an_icon_is_refused_with_the_reason ... ok
[INFO] [stdout] test plan::tests::a_knob_with_a_cut_says_the_knob_forced_the_encode ... ok
[INFO] [stdout] test plan::tests::a_missing_probe_conservatively_transcodes ... ok
[INFO] [stdout] test plan::tests::a_range_on_a_pair_without_a_timeline_is_refused_by_name ... ok
[INFO] [stdout] test plan::tests::a_range_without_a_probe_names_ffprobe ... ok
[INFO] [stdout] test plan::tests::a_same_format_video_copy_refuses_a_knob_it_cannot_apply ... ok
[INFO] [stdout] test plan::tests::a_resize_that_does_not_bind_keeps_the_stream_copy ... ok
[INFO] [stdout] test plan::tests::a_silent_clip_from_a_static_recipe_takes_its_slot ... ok
[INFO] [stdout] test plan::tests::a_silent_clip_needs_a_video_target ... ok
[INFO] [stdout] test plan::tests::a_silent_clip_sped_up_gets_no_audio_filter ... ok
[INFO] [stdout] test plan::tests::a_speed_change_alone_does_not_explain_its_reencode ... ok
[INFO] [stdout] test plan::tests::a_speed_change_is_refused_on_a_still_image ... ok
[INFO] [stdout] test plan::tests::a_speed_change_leaves_subtitles_unmapped_and_says_so ... ok
[INFO] [stdout] test plan::tests::a_silent_clip_is_not_sized ... ok
[INFO] [stdout] test plan::tests::a_stripped_file_sped_into_its_own_format_is_retimed_not_copied ... ok
[INFO] [stdout] test plan::tests::a_silent_clip_maps_no_audio ... ok
[INFO] [stdout] test plan::tests::a_static_recipe_takes_the_cut_in_its_slot ... ok
[INFO] [stdout] test plan::tests::a_stripped_png_plan_writes_a_tiff_first ... ok
[INFO] [stdout] test plan::tests::a_stripped_transcode_writes_back_the_kept_tags ... ok
[INFO] [stdout] test plan::tests::a_video_cut_into_its_own_format_copies_from_zero_and_encodes_after ... ok
[INFO] [stdout] test plan::tests::a_video_knob_reaches_the_gif_to_mp4_static_recipe ... ok
[INFO] [stdout] test plan::tests::a_video_knob_on_a_remuxable_pair_transcodes_instead_of_refusing ... ok
[INFO] [stdout] test plan::tests::a_video_knob_reaches_a_static_recipes_chain ... ok
[INFO] [stdout] test plan::tests::a_video_sped_into_its_own_format_retimes_picture_and_sound ... ok
[INFO] [stdout] test plan::tests::a_webm_fps_on_a_probe_that_read_no_video_still_needs_ffprobe ... ok
[INFO] [stdout] test plan::tests::a_webm_resize_on_a_probe_that_read_no_video_names_resize ... ok
[INFO] [stdout] test plan::tests::a_video_stripped_in_place_is_a_stream_copy ... ok
[INFO] [stdout] test plan::tests::a_webm_video_knob_without_a_probe_names_the_real_cause ... ok
[INFO] [stdout] test plan::tests::an_icon_plan_follows_what_was_read_of_the_source ... ok
[INFO] [stdout] test plan::tests::a_whole_file_range_converts_as_if_none_were_given_with_a_note ... ok
[INFO] [stdout] test plan::tests::an_audio_file_cut_into_its_own_format_copies_what_it_can ... ok
[INFO] [stdout] test plan::tests::an_image_knob_on_a_media_pair_is_still_refused_by_its_own_name ... ok
[INFO] [stdout] test plan::tests::an_audio_copy_keeps_the_copy_whatever_the_start ... ok
[INFO] [stdout] test plan::tests::an_image_stripped_in_place_is_re_encoded_and_says_so_when_lossy ... ok
[INFO] [stdout] test plan::tests::an_ogg_sources_tags_reach_a_target_that_is_not_ogg ... ok
[INFO] [stdout] test plan::tests::an_unresolvable_cap_on_a_static_recipe_notes_it_was_applied_as_given ... ok
[INFO] [stdout] test plan::tests::an_untuned_plan_is_byte_identical_to_the_untuned_builder ... ok
[INFO] [stdout] test plan::tests::an_untuned_static_recipe_is_unchanged_by_the_hoist ... ok
[INFO] [stdout] test plan::tests::build_without_tuning_is_byte_identical_to_the_static_table ... ok
[INFO] [stdout] test plan::tests::compatible_codecs_select_the_remux_recipe ... ok
[INFO] [stdout] test plan::tests::build_tuned_fills_the_image_recipe_slots ... ok
[INFO] [stdout] test plan::tests::a_webm_target_retimes_ahead_of_the_opus_channel_layouts ... ok
[INFO] [stdout] test plan::tests::crf_out_of_range_is_refused_on_the_probe_selected_path_too ... ok
[INFO] [stdout] test plan::tests::empty_inputs_is_rejected_rather_than_panicking ... ok
[INFO] [stdout] test plan::tests::intermediate_steps_write_to_the_declared_extension ... ok
[INFO] [stdout] test plan::tests::an_unsized_plan_serialises_without_a_sizing_key ... ok
[INFO] [stdout] test plan::tests::mp4_to_mkv_with_a_mov_text_subtitle_reencodes_only_the_subtitle_stream ... ok
[INFO] [stdout] test plan::tests::mkv_to_webm_with_compatible_codecs_selects_the_webm_remux_variant ... ok
[INFO] [stdout] test plan::tests::mp4_to_mov_with_compatible_codecs_selects_the_mov_remux_variant ... ok
[INFO] [stdout] test plan::tests::mp4_to_mkv_with_compatible_codecs_selects_the_mkv_remux_variant_with_no_movflags ... ok
[INFO] [stdout] test plan::tests::no_availability_hint_yields_the_canonical_soffice_recipe ... ok
[INFO] [stdout] test plan::tests::no_refusal_message_says_for_now_any_more ... ok
[INFO] [stdout] test plan::tests::odt_to_pdf_also_falls_back_to_pandoc_and_typst ... ok
[INFO] [stdout] test plan::tests::only_the_flag_and_a_writable_format_strip_in_place ... ok
[INFO] [stdout] test plan::tests::fallback_recipe_carries_its_fidelity_warning ... ok
[INFO] [stdout] test plan::tests::only_the_soffice_step_of_a_multi_step_plan_gets_the_placeholder ... ok
[INFO] [stdout] test plan::tests::planned_step_output_is_the_path_that_step_writes ... ok
[INFO] [stdout] test plan::tests::quality_on_a_lossless_target_is_refused_but_resize_works ... ok
[INFO] [stdout] test plan::tests::selection_falls_back_to_pandoc_and_typst_when_soffice_is_unavailable ... ok
[INFO] [stdout] test plan::tests::selection_falls_back_to_soffice_when_neither_route_is_fully_available ... ok
[INFO] [stdout] test plan::tests::selection_uses_soffice_when_only_soffice_is_available ... ok
[INFO] [stdout] test plan::tests::incompatible_codecs_fall_back_to_transcoding ... ok
[INFO] [stdout] test plan::tests::sound_that_would_be_copied_is_filtered_for_a_speed_change ... ok
[INFO] [stdout] test plan::tests::soffice_step_shows_the_user_installation_placeholder_first_in_its_argv ... ok
[INFO] [stdout] test plan::tests::program_is_the_bare_exe_name_so_snapshots_are_machine_independent ... ok
[INFO] [stdout] test plan::tests::the_gif_memory_note_is_about_the_clip_not_the_file ... ok
[INFO] [stdout] test plan::tests::tuning_on_media_pairs_is_refused_on_both_paths ... ok
[INFO] [stdout] test plan::tests::unsupported_pair_is_an_error_not_a_panic ... ok
[INFO] [stdout] test plan::tests::upscale_is_named_when_a_pair_takes_no_resize ... ok
[INFO] [stdout] test plan::tests::upscale_lets_a_gif_resize_enlarge_and_warns ... ok
[INFO] [stdout] test plan::tests::upscale_lets_a_video_resize_enlarge_and_warns ... ok
[INFO] [stdout] test plan::tests::selection_prefers_soffice_when_both_routes_are_available ... ok
[INFO] [stdout] test plan::tests::upscale_lets_an_image_resize_enlarge_and_warns ... ok
[INFO] [stdout] test plan::tests::warnings_travel_on_the_plan ... ok
[INFO] [stdout] test exec::tests::the_real_soffice_invocation_substitutes_the_real_url_for_the_dry_run_placeholder ... ok
[INFO] [stdout] test plan::tests::strip_metadata_is_refused_on_a_document_pair ... ok
[INFO] [stdout] test probe::tests::a_missing_or_unusable_format_block_leaves_duration_unknown ... ok
[INFO] [stdout] test probe::tests::a_page_answer_that_is_not_a_size_is_none ... ok
[INFO] [stdout] test probe::tests::a_page_on_its_side_swaps_width_and_height ... ok
[INFO] [stdout] test probe::tests::a_page_reads_its_displayed_size ... ok
[INFO] [stdout] test probe::tests::a_tiff_ping_cannot_rule_alpha_out ... ok
[INFO] [stdout] test probe::tests::a_rotated_source_reports_stored_dimensions_and_displayed_ones_separately ... ok
[INFO] [stdout] test probe::tests::a_traits_answer_that_is_not_one_is_none ... ok
[INFO] [stdout] test plan::tests::without_a_probe_a_stripped_audio_conversion_says_its_tags_went_too ... ok
[INFO] [stdout] test plan::tests::xlsx_and_pptx_never_fall_back_even_when_soffice_is_unavailable ... ok
[INFO] [stdout] test probe::tests::a_video_stream_yields_dimensions_and_a_rational_frame_rate ... ok
[INFO] [stdout] test probe::tests::an_unrotated_source_displays_as_it_is_stored ... ok
[INFO] [stdout] test probe::tests::an_unusable_frame_rate_is_none_not_a_zero_tuple ... ok
[INFO] [stdout] test probe::tests::attachment_bytes_sum_every_attachment ... ok
[INFO] [stdout] test probe::tests::audio_bitrates_stay_parallel_to_audio_codecs ... ok
[INFO] [stdout] test probe::tests::b_frames_mean_the_video_reorders_its_frames ... ok
[INFO] [stdout] test probe::tests::a_zero_audio_bitrate_is_unknown ... ok
[INFO] [stdout] test probe::tests::an_icons_frames_parse_whole_or_not_at_all ... ok
[INFO] [stdout] test probe::tests::chapters_are_counted_and_the_first_audio_rate_is_read ... ok
[INFO] [stdout] test probe::tests::an_ogg_files_stream_tags_are_its_own ... ok
[INFO] [stdout] test probe::tests::cover_art_contributes_no_dimensions ... ok
[INFO] [stdout] test probe::tests::extracts_first_video_and_audio_codec ... ok
[INFO] [stdout] test probe::tests::extracts_the_first_subtitle_codec_too ... ok
[INFO] [stdout] test probe::tests::format_tags_yield_the_kept_tags_and_the_location_kinds ... ok
[INFO] [stdout] test probe::tests::malformed_json_yields_an_empty_probe_rather_than_failing ... ok
[INFO] [stdout] test probe::tests::nameless_streams_become_unknown_placeholders_not_gaps ... ok
[INFO] [stdout] test probe::tests::reads_duration_and_size_from_the_format_block ... ok
[INFO] [stdout] test probe::tests::a_vector_page_is_sized_at_the_recipes_density ... ok
[INFO] [stdout] test probe::tests::records_the_full_stream_inventory ... ok
[INFO] [stdout] test probe::tests::streams_and_chapters_say_whether_they_are_labelled ... ok
[INFO] [stdout] test probe::tests::the_largest_size_wins_and_the_first_wins_a_tie ... ok
[INFO] [stdout] test probe::tests::the_lower_of_the_two_reported_rates_wins ... ok
[INFO] [stdout] test probe::tests::tolerates_a_file_with_no_audio ... ok
[INFO] [stdout] test probe::tests::tolerates_a_file_with_no_subtitle_track ... ok
[INFO] [stdout] test probe::tests::traits_read_a_gps_latitude_and_ignore_an_empty_one ... ok
[INFO] [stdout] test probe::tests::traits_read_alpha_and_whether_a_second_frame_follows ... ok
[INFO] [stdout] test probe::tests::traits_read_whether_the_source_is_compressed ... ok
[INFO] [stdout] test procutil::tests::backend_command_targets_the_given_path ... ok
[INFO] [stdout] test qr::tests::a_logo_of_another_kind_is_refused ... ok
[INFO] [stdout] test probe::tests::durations_parse_without_floating_point ... ok
[INFO] [stdout] test plan::tests::shift_pitch_relabels_the_sample_rate ... ok
[INFO] [stdout] test qr::tests::a_logo_that_does_not_decode_is_refused ... ok
[INFO] [stdout] test qr::tests::a_size_smaller_than_the_code_is_refused ... ok
[INFO] [stdout] test qr::tests::empty_text_is_refused ... ok
[INFO] [stdout] test exec::tests::a_size_retry_event_carries_the_attempt_and_the_measurement ... ok
[INFO] [stdout] test qr::tests::the_size_snaps_to_whole_pixels_a_module ... ok
[INFO] [stdout] test exec::tests::an_image_is_only_sized_for_upscale ... ok
[INFO] [stdout] test qr::tests::too_much_text_names_the_limit ... ok
[INFO] [stdout] test exec::tests::each_retry_asks_for_less_than_the_last ... ok
[INFO] [stdout] test recipe::tests::a_mute_slot_renders_an_only_for_a_silent_clip ... ok
[INFO] [stdout] test qr::tests::a_logo_with_text_warns_for_pictures_only ... ok
[INFO] [stdout] test recipe::tests::a_retimed_chain_without_a_rate_of_its_own_keeps_the_sources ... ok
[INFO] [stdout] test recipe::tests::a_speed_change_leads_the_video_chain ... ok
[INFO] [stdout] test recipe::tests::a_trim_slot_renders_the_cut_before_the_input_and_nothing_without_one ... ok
[INFO] [stdout] test recipe::tests::a_size_target_alone_makes_tuning_non_empty ... ok
[INFO] [stdout] test recipe::tests::a_tuned_crf_slot_renders_the_users_value ... ok
[INFO] [stdout] test recipe::tests::a_trim_slot_step_drops_subtitles_and_chapters_for_a_speed_change ... ok
[INFO] [stdout] test recipe::tests::an_untuned_crf_slot_renders_its_authored_anchor ... ok
[INFO] [stdout] test recipe::tests::an_audio_filter_slot_renders_the_speed_change_ahead_of_its_own_filter ... ok
[INFO] [stdout] test recipe::tests::backend_path_renders_a_readable_placeholder_not_a_real_path ... ok
[INFO] [stdout] test recipe::tests::an_image_resize_only_enlarges_with_upscale ... ok
[INFO] [stdout] test recipe::tests::empty_tuning_renders_exactly_the_static_default_argv ... ok
[INFO] [stdout] test recipe::tests::every_tuning_field_on_its_own_makes_the_struct_non_empty ... ok
[INFO] [stdout] test recipe::tests::discard_serialises_in_the_plan_envelope_spelling ... ok
[INFO] [stdout] test recipe::tests::icon_slots_render_what_was_resolved_or_their_fallback ... ok
[INFO] [stdout] test recipe::tests::out_dir_mode_renders_the_parent_directory ... ok
[INFO] [stdout] test recipe::tests::inputs_expands_to_every_input_in_order ... ok
[INFO] [stdout] test recipe::tests::out_dir_of_a_bare_filename_is_the_current_directory ... ok
[INFO] [stdout] test recipe::tests::path_positions_track_tune_slot_expansion ... ok
[INFO] [stdout] test recipe::tests::renders_positional_input_and_output ... ok
[INFO] [stdout] test recipe::tests::the_first_frame_selector_is_still_a_path_position ... ok
[INFO] [stdout] test recipe::tests::tuning_fills_its_slots_and_only_its_slots ... ok
[INFO] [stdout] test registry::tests::a_csv_import_notes_only_what_it_did ... ok
[INFO] [stdout] test registry::tests::a_jpg_target_notes_only_what_the_source_holds ... ok
[INFO] [stdout] test registry::tests::a_range_needs_the_probe_only_where_it_can_cut ... ok
[INFO] [stdout] test registry::tests::a_source_is_read_only_where_its_notes_depend_on_it ... ok
[INFO] [stdout] test registry::tests::a_speed_change_needs_the_probe_only_where_it_applies ... ok
[INFO] [stdout] test registry::tests::a_stripped_jpg_drops_everything_but_the_colour_profile_after_orienting ... ok
[INFO] [stdout] test registry::tests::a_stripped_png_goes_through_an_uncompressed_tiff ... ok
[INFO] [stdout] test registry::tests::a_tuned_value_lands_before_the_palette_split ... ok
[INFO] [stdout] test registry::tests::a_video_knob_makes_a_pair_probe_that_otherwise_would_not ... ok
[INFO] [stdout] test registry::tests::a_webm_video_knob_requires_a_probe_and_nothing_else_does ... ok
[INFO] [stdout] test registry::tests::a_tuned_scale_on_a_gif_keeps_the_lanczos_scaler ... ok
[INFO] [stdout] test registry::tests::a_tuned_scale_on_a_transcode_still_ends_with_the_even_guard ... ok
[INFO] [stdout] test registry::tests::a_workbook_to_csv_notes_extra_sheets_and_formulas_only_when_there_are_some ... ok
[INFO] [stdout] test registry::tests::a_tuned_fps_overrides_the_recipes_authored_default ... ok
[INFO] [stdout] test registry::tests::an_icon_pair_reads_the_source_the_way_its_recipe_does ... ok
[INFO] [stdout] test registry::tests::an_image_knob_does_not_make_a_pair_probe ... ok
[INFO] [stdout] test registry::tests::an_image_read_mirrors_how_the_recipe_takes_its_input ... ok
[INFO] [stdout] test registry::tests::an_untuned_gif_chain_is_byte_identical_to_the_old_constant ... ok
[INFO] [stdout] test registry::tests::an_icon_says_it_was_squared_only_for_a_source_that_was_not_square ... ok
[INFO] [stdout] test registry::tests::an_unread_image_keeps_the_whole_note ... ok
[INFO] [stdout] test registry::tests::an_untuned_pair_probes_exactly_as_it_did_before ... ok
[INFO] [stdout] test registry::tests::an_untuned_tonemap_chain_is_byte_identical_to_the_old_constant ... ok
[INFO] [stdout] test registry::tests::an_untuned_tonemap_chain_still_ends_with_the_plain_gif_chain ... ok
[INFO] [stdout] test exec::tests::an_unreadable_size_warns_generically_and_does_not_ask ... ok
[INFO] [stdout] test registry::tests::an_untuned_transcode_chain_is_exactly_the_even_scale_guard ... ok
[INFO] [stdout] test registry::tests::audio_extraction_drops_the_video_stream ... ok
[INFO] [stdout] test registry::tests::audio_to_audio_preserves_embedded_cover_art ... ok
[INFO] [stdout] test registry::tests::avi_to_mkv_also_uses_the_copy_subs_variant ... ok
[INFO] [stdout] test registry::tests::docx_and_odt_to_pdf_have_a_pandoc_typst_fallback ... ok
[INFO] [stdout] test registry::tests::every_ffmpeg_recipe_and_only_those_can_be_cut ... ok
[INFO] [stdout] test registry::tests::every_image_and_media_recipe_strips_and_only_after_orienting ... ok
[INFO] [stdout] test registry::tests::audio_to_wav_still_drops_video_and_warns_about_bit_depth ... ok
[INFO] [stdout] test registry::tests::avi_is_never_registered_as_a_video_target ... ok
[INFO] [stdout] test registry::tests::csv_goes_to_and_from_xlsx_and_ods_through_libreoffice ... ok
[INFO] [stdout] test exec::tests::a_small_source_that_must_be_encoded_is_never_budgeted_above_its_size ... ok
[INFO] [stdout] test registry::tests::every_libx264_transcode_scales_to_even_dimensions ... ok
[INFO] [stdout] test registry::tests::every_timed_recipe_can_take_a_speed_change ... ok
[INFO] [stdout] test registry::tests::fallback_recipe_renders_pdf_engine_pointed_at_typst ... ok
[INFO] [stdout] test registry::tests::gif_to_mp4_forces_even_dimensions ... ok
[INFO] [stdout] test registry::tests::gif_uses_a_generated_palette_not_the_default_web_palette ... ok
[INFO] [stdout] test registry::tests::gif_recipe_tonemaps_only_hdr_transfers ... ok
[INFO] [stdout] test registry::tests::heic_to_jpg_auto_orients_and_sets_quality ... ok
[INFO] [stdout] test registry::tests::images_merge_into_pdf_using_every_input ... ok
[INFO] [stdout] test registry::tests::lossless_targets_do_not_carry_a_quality_flag ... ok
[INFO] [stdout] test registry::tests::md_to_pdf_is_two_steps_via_docx_and_never_touches_latex ... ok
[INFO] [stdout] test registry::tests::mkv_recipes_exclude_data_streams ... ok
[INFO] [stdout] test registry::tests::mov_and_mkv_are_registered_as_targets_for_every_other_video_source ... ok
[INFO] [stdout] test registry::tests::mp4_and_mov_to_mkv_use_the_srt_subs_variant ... ok
[INFO] [stdout] test registry::tests::needs_probe_covers_mov_and_mkv_targets ... ok
[INFO] [stdout] test registry::tests::no_pair_converts_a_format_to_itself ... ok
[INFO] [stdout] test registry::tests::no_pdf_route_uses_pandoc ... ok
[INFO] [stdout] test registry::tests::no_recipe_sets_user_installation ... ok
[INFO] [stdout] test registry::tests::fallback_recipe_warns_about_fidelity_and_suggests_libreoffice ... ok
[INFO] [stdout] test registry::tests::no_recipe_targets_heic_or_heif ... ok
[INFO] [stdout] test registry::tests::icons_are_made_from_png_jpg_webp_and_svg_and_read_back_to_png ... ok
[INFO] [stdout] test registry::tests::legacy_office_names_its_export_filter ... ok
[INFO] [stdout] test registry::tests::fallback_table_never_adds_a_pair_all_pairs_does_not_already_list ... ok
[INFO] [stdout] test registry::tests::image_to_pdf_compresses_with_jpeg_at_the_quality_anchor ... ok
[INFO] [stdout] test registry::tests::md_to_html_is_standalone ... ok
[INFO] [stdout] test registry::tests::png_and_bmp_targets_note_only_a_multi_frame_source ... ok
[INFO] [stdout] test registry::tests::office_to_pdf_uses_outdir_mode ... ok
[INFO] [stdout] test registry::tests::opus_and_ogg_targets_encode_opus_at_48_khz ... ok
[INFO] [stdout] test registry::tests::notes_about_the_pair_never_depend_on_the_source ... ok
[INFO] [stdout] test registry::tests::opus_and_ogg_pairs_probe_only_where_it_decides_something ... ok
[INFO] [stdout] test registry::tests::office_sources_are_read_before_planning ... ok
[INFO] [stdout] test registry::tests::pdf_to_docx_names_the_word_filter_and_warns_about_fidelity ... ok
[INFO] [stdout] test registry::tests::single_image_targets_select_the_first_frame_explicitly ... ok
[INFO] [stdout] test registry::tests::stripping_probes_only_a_source_with_tags_to_keep ... ok
[INFO] [stdout] test registry::tests::the_csv_export_spells_every_token ... ok
[INFO] [stdout] test registry::tests::raster_to_jpg_flattens_alpha_onto_white ... ok
[INFO] [stdout] test registry::tests::the_gif_buffering_note_shows_only_past_the_threshold ... ok
[INFO] [stdout] test registry::tests::reading_an_icon_back_notes_the_dropped_sizes_only_when_there_were_some ... ok
[INFO] [stdout] test registry::tests::the_cover_art_note_shows_only_for_a_source_with_art ... ok
[INFO] [stdout] test registry::tests::svg_to_jpg_flattens_transparency_onto_white ... ok
[INFO] [stdout] test registry::tests::svg_to_png_is_lossless_with_transparent_background ... ok
[INFO] [stdout] test registry::tests::the_wav_depth_note_is_dropped_for_an_opus_or_vorbis_source ... ok
[INFO] [stdout] test registry::tests::the_icon_sizes_written_are_the_ones_warned_about ... ok
[INFO] [stdout] test registry::tests::video_to_mov_uses_the_spec_quality_anchors_and_faststart ... ok
[INFO] [stdout] test registry::tests::video_to_webm_enables_row_multithreading ... ok
[INFO] [stdout] test registry::tests::webm_transcode_coerces_channel_layouts_for_libopus ... ok
[INFO] [stdout] test registry::tests::xlsx_and_pptx_to_pdf_have_no_fallback ... ok
[INFO] [stdout] test registry::tests::video_to_mkv_preserves_every_stream_and_carries_no_lossy_warning ... ok
[INFO] [stdout] test resolve::tests::a_missing_backend_produces_a_remediable_error ... ok
[INFO] [stdout] test registry::tests::video_transcode_uses_the_spec_quality_anchors ... ok
[INFO] [stdout] test registry::tests::video_to_mkv_uses_the_spec_quality_anchors_and_omits_movflags ... ok
[INFO] [stdout] test resolve::tests::an_override_wins_over_everything_else ... ok
[INFO] [stdout] test resolve::tests::available_backends_collects_from_an_iterator_of_backends ... ok
[INFO] [stdout] test resolve::tests::available_backends_default_is_empty ... ok
[INFO] [stdout] test resolve::tests::candidate_order_matches_the_spec ... ok
[INFO] [stdout] test resolve::tests::convert_fallback_applies_to_magick_off_windows ... ok
[INFO] [stdout] test registry::tests::the_macro_note_shows_only_for_a_source_with_macros ... ok
[INFO] [stdout] test resolve::tests::convert_fallback_never_applies_on_windows ... ok
[INFO] [stdout] test resolve::tests::convert_fallback_never_applies_to_other_backends ... ok
[INFO] [stdout] test resolve::tests::extracts_the_version_token_from_a_real_ffmpeg_banner ... ok
[INFO] [stdout] test resolve::tests::extracts_the_version_token_from_a_real_imagemagick_banner ... ok
[INFO] [stdout] test resolve::tests::extracts_the_version_token_from_a_real_pandoc_banner ... ok
[INFO] [stdout] test resolve::tests::libreoffice_is_never_offered_as_a_managed_install ... ok
[INFO] [stdout] test resolve::tests::extracts_the_version_token_from_a_real_soffice_banner ... ok
[INFO] [stdout] test resolve::tests::a_convert_that_is_not_imagemagick_is_rejected_by_the_fallback ... ok
[INFO] [stdout] test resolve::tests::no_convert_anywhere_yields_no_fallback ... ok
[INFO] [stdout] test resolve::tests::managed_path_matches_the_managed_candidate_filename ... ok
[INFO] [stdout] test resolve::tests::no_digit_bearing_token_yields_none ... ok
[INFO] [stdout] test resolve::tests::overrides_only_yields_exactly_the_override_candidate_when_one_is_set ... ok
[INFO] [stdout] test resolve::tests::overrides_only_yields_no_candidates_for_a_backend_with_no_override ... ok
[INFO] [stdout] test resolve::tests::overrides_only_ignores_the_convkit_env_var_even_with_no_override_set ... ok
[INFO] [stdout] test resolve::tests::check_availability_never_probes_a_backend_outside_the_given_candidates ... ok
[INFO] [stdout] test resolve::tests::check_availability_only_marks_backends_that_actually_resolve ... ok
[INFO] [stdout] test resolve::tests::resolve_managed_only_returns_none_when_the_managed_dir_is_empty ... ok
[INFO] [stdout] test resolve::tests::resolve_managed_only_ignores_an_override_even_though_resolve_would_use_it ... ok
[INFO] [stdout] test resolve::tests::the_redirect_does_not_apply_off_windows ... ok
[INFO] [stdout] test exec::tests::the_encode_after_an_oversized_remux_is_budgeted_at_the_sources_size ... ok
[INFO] [stdout] test resolve::tests::a_real_imagemagick_convert_is_accepted_by_the_fallback ... ok
[INFO] [stdout] test resolve::tests::magick_takes_precedence_over_the_convert_fallback_when_both_exist ... ok
[INFO] [stdout] test resolve::tests::version_falls_back_to_stderr_when_stdout_is_empty ... ok
[INFO] [stdout] test size::tests::binary_carry_chooses_one_of_next_unit_not_fractional ... ok
[INFO] [stdout] test resolve::tests::run_with_timeout_returns_output_for_a_child_that_exits_promptly ... ok
[INFO] [stdout] test size::tests::display_floors_to_two_decimals ... ok
[INFO] [stdout] test size::tests::every_unit_parses_to_the_exact_byte_count ... ok
[INFO] [stdout] test size::tests::malformed_sizes_are_refused_with_the_fix ... ok
[INFO] [stdout] test size::tests::round_up_lands_on_a_clean_number_at_or_above_the_input ... ok
[INFO] [stdout] test size::tests::unit_family_serialises_correctly ... ok
[INFO] [stdout] test sized::tests::a_binding_fps_reaches_ffmpeg_as_an_exact_rational ... ok
[INFO] [stdout] test sized::tests::a_dry_run_of_a_remux_keeps_the_re_encode_fallback_in_view ... ok
[INFO] [stdout] test sized::tests::a_dry_run_says_what_would_happen ... ok
[INFO] [stdout] test sized::tests::a_found_size_is_scaled_up_by_target_over_budget_and_rounded_up ... ok
[INFO] [stdout] test sized::tests::a_gif_source_carries_the_looping_note_into_the_plan ... ok
[INFO] [stdout] test sized::tests::a_long_decimal_fps_binds_like_any_other ... ok
[INFO] [stdout] test size::tests::case_is_ignored_and_the_spelling_is_normalised ... ok
[INFO] [stdout] test sized::tests::a_remux_that_re_encodes_audio_does_not_claim_a_plain_copy ... ok
[INFO] [stdout] test sized::tests::a_report_for_a_copy_has_no_encode_settings ... ok
[INFO] [stdout] test sized::tests::a_resize_that_binds_caps_the_chosen_picture_and_forces_an_encode ... ok
[INFO] [stdout] test sized::tests::a_resize_that_does_not_bind_leaves_a_small_source_copied ... ok
[INFO] [stdout] test sized::tests::a_retry_after_a_saturated_attempt_plans_a_smaller_picture ... ok
[INFO] [stdout] test sized::tests::a_retry_budget_scales_by_the_overshoot_and_aims_two_percent_lower ... ok
[INFO] [stdout] test sized::tests::a_retry_held_back_for_consent_says_how_to_give_it ... ok
[INFO] [stdout] test resolve::tests::resolve_managed_only_finds_a_file_written_at_the_managed_path ... ok
[INFO] [stdout] test sized::tests::a_retry_plans_against_a_smaller_budget_but_keeps_the_users_target ... ok
[INFO] [stdout] test sized::tests::a_saturated_attempt_caps_the_next_picture_below_its_own ... ok
[INFO] [stdout] test qr::tests::non_ascii_text_reads_back_unchanged ... ok
[INFO] [stdout] test sized::tests::a_rotated_source_is_scaled_in_its_displayed_orientation ... ok
[INFO] [stdout] test sized::tests::a_sized_cut_after_zero_is_never_copied ... ok
[INFO] [stdout] test sized::tests::a_sized_cut_budgets_for_the_clip_not_the_file ... ok
[INFO] [stdout] test sized::tests::a_sized_cut_from_zero_of_video_with_b_frames_is_never_copied ... ok
[INFO] [stdout] test size::tests::a_label_reads_the_way_a_person_writes_it ... ok
[INFO] [stdout] test sized::tests::a_retry_that_would_ask_for_no_less_is_not_planned ... ok
[INFO] [stdout] test sized::tests::a_sized_cut_from_zero_that_already_fits_is_a_copied_cut_not_a_file_copy ... ok
[INFO] [stdout] test sized::tests::a_sizing_report_serialises_in_its_json_shape ... ok
[INFO] [stdout] test sized::tests::a_sizing_report_writes_its_rate_in_lowest_terms ... ok
[INFO] [stdout] test sized::tests::a_sized_speed_change_is_never_copied ... ok
[INFO] [stdout] test sized::tests::a_source_already_under_the_target_in_its_own_container_is_copied ... ok
[INFO] [stdout] test sized::tests::a_source_exactly_at_the_target_fits ... ok
[INFO] [stdout] test sized::tests::a_source_missing_a_fact_the_budget_needs_is_refused_by_name ... ok
[INFO] [stdout] test sized::tests::a_source_that_fits_is_still_encoded_by_the_fallback_planner ... ok
[INFO] [stdout] test sized::tests::a_small_source_whose_streams_fit_another_container_is_remuxed ... ok
[INFO] [stdout] test sized::tests::a_source_of_unknown_size_is_never_copied_or_remuxed ... ok
[INFO] [stdout] test sized::tests::a_stripped_encode_clears_the_tags_in_pass_two ... ok
[INFO] [stdout] test sized::tests::a_suggestion_against_a_small_sources_budget_is_not_scaled_up ... ok
[INFO] [stdout] test sized::tests::a_webm_plan_sizes_with_vp9_and_opus_at_the_rate_it_chose ... ok
[INFO] [stdout] test sized::tests::an_attempt_saturates_when_its_video_runs_more_than_five_percent_over ... ok
[INFO] [stdout] test sized::tests::a_small_source_that_must_be_encoded_is_budgeted_at_its_own_size ... ok
[INFO] [stdout] test sized::tests::a_sized_speed_change_budgets_for_the_output_length ... ok
[INFO] [stdout] test sized::tests::a_stripped_source_already_under_the_target_is_remuxed_not_copied ... ok
[INFO] [stdout] test sized::tests::an_fps_equal_to_the_source_rate_does_not_bind ... ok
[INFO] [stdout] test sized::tests::an_fps_that_cannot_be_held_exactly_is_refused_not_dropped ... ok
[INFO] [stdout] test sized::tests::an_extreme_target_carries_a_warning_and_a_suggestion ... ok
[INFO] [stdout] test sized::tests::an_extreme_retry_says_so_and_suggests_more_than_the_target_tried ... ok
[INFO] [stdout] test resolve::tests::version_probe_uses_double_dash_for_pandoc_and_soffice ... ok
[INFO] [stdout] test sized::tests::an_oversized_source_gets_two_passes ... ok
[INFO] [stdout] test sized::tests::a_suggestion_found_against_a_cut_budget_is_scaled_back_up_to_a_target ... ok
[INFO] [stdout] test sized::tests::an_unsupported_pair_does_not_ask_for_a_probe ... ok
[INFO] [stdout] test sized::tests::an_unsupported_pair_or_an_image_flag_is_refused_by_name ... ok
[INFO] [stdout] test sized::tests::only_a_source_under_the_target_lowers_the_first_budget ... ok
[INFO] [stdout] test sized::tests::only_the_four_video_containers_are_sized ... ok
[INFO] [stdout] test sized::tests::frame_rates_read_as_people_say_them ... ok
[INFO] [stdout] test sized::tests::an_mkv_pass_log_is_registered_under_its_stream_scoped_flag ... ok
[INFO] [stdout] test sized::tests::refusals_name_the_flag_and_the_fix ... ok
[INFO] [stdout] test sized::tests::requires_probe_covers_a_sized_video_target_only ... ok
[INFO] [stdout] test sized::tests::both_passes_of_a_sized_speed_change_are_retimed ... ok
[INFO] [stdout] test sized::tests::binding_caps_force_an_encode_even_when_the_source_fits ... ok
[INFO] [stdout] test sized::tests::the_pass_log_is_a_registered_path_in_both_passes ... ok
[INFO] [stdout] test sized::tests::the_errors_without_a_probe_or_a_codec_say_what_to_do ... ok
[INFO] [stdout] test sized::tests::the_measured_over_sentence_counts_its_attempts_in_the_right_number ... ok
[INFO] [stdout] test sized::tests::the_notes_read_as_sentences ... ok
[INFO] [stdout] test sized::tests::the_confirmation_names_the_flag_and_offers_the_suggestion ... ok
[INFO] [stdout] test sized::tests::the_pass_log_is_found_by_its_exact_flag_after_the_input ... ok
[INFO] [stdout] test speed::tests::a_factor_outside_what_conv_takes_is_refused_naming_the_bounds ... ok
[INFO] [stdout] test sized::tests::the_preview_is_empty_unless_a_video_size_target_applies ... ok
[INFO] [stdout] test sized::tests::the_report_carries_the_choice_and_counts_every_audio_track ... ok
[INFO] [stdout] test exec::tests::of_several_inputs_the_one_enlarged_most_decides_and_is_named ... ok
[INFO] [stdout] test speed::tests::a_factor_prints_and_names_the_way_it_reads_back ... ok
[INFO] [stdout] test sized::tests::the_short_notes_read_as_sentences ... ok
[INFO] [stdout] test sized::tests::the_extreme_sentence_says_could_not_fit_only_when_the_smallest_file_is_over ... ok
[INFO] [stdout] test speed::tests::a_source_of_unknown_length_stays_unknown ... ok
[INFO] [stdout] test speed::tests::a_length_is_divided_by_the_factor_to_the_nearest_millisecond ... ok
[INFO] [stdout] test qr::tests::a_link_reads_back_from_the_png ... ok
[INFO] [stdout] test speed::tests::a_picture_target_is_held_to_the_sources_frame_rate ... ok
[INFO] [stdout] test speed::tests::a_probe_that_saw_nothing_still_filters_the_sound ... ok
[INFO] [stdout] test speed::tests::a_speed_change_drops_subtitles_and_chapters_in_place_of_a_cuts_options ... ok
[INFO] [stdout] test speed::tests::an_output_without_sound_gets_no_audio_filter ... ok
[INFO] [stdout] test speed::tests::asetrate_relabels_at_the_factor_and_resamples_back ... ok
[INFO] [stdout] test speed::tests::every_form_parses_to_whole_thousandths ... ok
[INFO] [stdout] test speed::tests::a_speed_change_needs_the_probe ... ok
[INFO] [stdout] test speed::tests::json_carries_the_factor_as_a_number ... ok
[INFO] [stdout] test speed::tests::shift_pitch_on_an_unread_rate_resamples_to_48k_and_says_so ... ok
[INFO] [stdout] test speed::tests::more_than_three_decimal_places_is_refused ... ok
[INFO] [stdout] test speed::tests::only_a_factor_under_one_slows ... ok
[INFO] [stdout] test speed::tests::a_still_image_has_no_speed_to_change ... ok
[INFO] [stdout] test speed::tests::atempo_is_one_step_from_a_half_up_and_halves_below ... ok
[INFO] [stdout] test speed::tests::shift_pitch_resamples_at_the_sources_rate ... ok
[INFO] [stdout] test speed::tests::shift_pitch_with_no_sound_to_shift_says_it_changed_nothing ... ok
[INFO] [stdout] test speed::tests::subtitles_and_chapters_are_left_out_and_that_is_said ... ok
[INFO] [stdout] test speed::tests::the_output_is_as_long_as_the_source_over_the_factor ... ok
[INFO] [stdout] test speed::tests::the_video_filter_divides_every_timestamp ... ok
[INFO] [stdout] test table::tests::a_cell_starting_with_equals_is_noticed ... ok
[INFO] [stdout] test speed::tests::malformed_factors_are_refused_with_the_forms_that_work ... ok
[INFO] [stdout] test speed::tests::slowed_video_says_its_frames_repeat ... ok
[INFO] [stdout] test speed::tests::the_speed_a_file_already_has_is_refused ... ok
[INFO] [stdout] test table::tests::a_file_that_is_not_what_it_claims_reads_as_nothing ... ok
[INFO] [stdout] test table::tests::a_quoted_field_is_judged_by_its_value ... ok
[INFO] [stdout] test table::tests::columns_whose_digits_a_number_would_lose_stay_text ... ok
[INFO] [stdout] test table::tests::contains_finds_a_needle_across_chunks ... ok
[INFO] [stdout] test table::tests::an_ods_lists_its_sheets_and_checks_the_first_for_formulas ... ok
[INFO] [stdout] test table::tests::decimal_commas_come_with_semicolons ... ok
[INFO] [stdout] test table::tests::ordinary_numbers_are_not_kept_as_text ... ok
[INFO] [stdout] test table::tests::the_delimiter_is_the_one_that_splits_every_line_alike ... ok
[INFO] [stdout] test table::tests::an_xlsx_lists_its_sheets_and_checks_the_first_for_formulas ... ok
[INFO] [stdout] test trim::tests::a_cut_is_refused_when_no_frame_starts_inside_it ... ok
[INFO] [stdout] test trim::tests::a_cut_shorter_than_a_frame_is_refused_only_where_there_are_frames ... ok
[INFO] [stdout] test trim::tests::a_cut_becomes_input_options_only_where_it_cuts ... ok
[INFO] [stdout] test trim::tests::a_duration_is_positive_and_from_the_start ... ok
[INFO] [stdout] test trim::tests::a_leading_minus_counts_back_from_the_end ... ok
[INFO] [stdout] test table::tests::the_encoding_is_utf8_utf16_by_its_mark_or_else_windows_1252 ... ok
[INFO] [stdout] test table::tests::the_import_filter_spells_every_token ... ok
[INFO] [stdout] test trim::tests::a_source_without_a_length_is_still_cut_from_its_start ... ok
[INFO] [stdout] test trim::tests::a_start_past_the_end_is_refused_naming_the_length ... ok
[INFO] [stdout] test trim::tests::a_time_from_the_end_of_a_source_without_a_length_says_what_to_give_instead ... ok
[INFO] [stdout] test trim::tests::an_end_past_the_file_stops_at_its_end_with_a_note ... ok
[INFO] [stdout] test trim::tests::an_order_that_cannot_work_is_refused_before_anything_is_probed ... ok
[INFO] [stdout] test trim::tests::a_name_suffix_never_holds_a_colon ... ok
[INFO] [stdout] test trim::tests::every_form_parses_to_whole_milliseconds ... ok
[INFO] [stdout] test trim::tests::extra_fraction_digits_round_to_the_millisecond ... ok
[INFO] [stdout] test trim::tests::malformed_times_are_refused_with_the_forms_that_work ... ok
[INFO] [stdout] test trim::tests::mixed_signs_that_leave_nothing_are_refused ... ok
[INFO] [stdout] test trim::tests::no_flag_is_no_range ... ok
[INFO] [stdout] test trim::tests::the_flag_named_in_refusals_is_the_first_one_given ... ok
[INFO] [stdout] test trim::tests::end_and_duration_together_are_refused ... ok
[INFO] [stdout] test trim::tests::the_report_serialises_with_only_the_flags_given ... ok
[INFO] [stdout] test trim::tests::times_from_the_end_count_back_from_this_files_own_length ... ok
[INFO] [stdout] test table::tests::windows_1252_decodes_its_own_high_range ... ok
[INFO] [stdout] test trim::tests::times_print_the_way_they_are_typed ... ok
[INFO] [stdout] test video::tests::a_cap_above_the_source_does_nothing_and_says_so ... ok
[INFO] [stdout] test video::tests::a_cap_below_the_source_binds ... ok
[INFO] [stdout] test trim::tests::a_range_covering_the_whole_file_cuts_nothing_and_says_so ... ok
[INFO] [stdout] test video::tests::a_dense_source_raises_the_top_of_a_video_estimate ... ok
[INFO] [stdout] test video::tests::a_fractional_source_rate_is_compared_honestly ... ok
[INFO] [stdout] test video::tests::a_gif_estimate_counts_the_frames_its_own_rate_keeps ... ok
[INFO] [stdout] test video::tests::a_cap_equal_to_the_source_does_nothing ... ok
[INFO] [stdout] test video::tests::a_page_of_several_is_named_in_the_warning ... ok
[INFO] [stdout] test video::tests::a_gif_resize_past_a_source_narrower_than_the_default_needs_no_mention_of_it ... ok
[INFO] [stdout] test video::tests::a_percentage_knows_its_ratio_without_the_source ... ok
[INFO] [stdout] test video::tests::a_video_estimate_is_a_wide_range_by_bits_per_pixel ... ok
[INFO] [stdout] test video::tests::a_video_size_is_rounded_to_even_as_the_encode_will_be ... ok
[INFO] [stdout] test video::tests::an_asymmetric_wxh_binds_when_either_axis_would_shrink ... ok
[INFO] [stdout] test video::tests::an_empty_tuning_resolves_to_nothing_at_all ... ok
[INFO] [stdout] test video::tests::an_image_estimate_goes_by_the_target_formats_bytes_per_pixel ... ok
[INFO] [stdout] test video::tests::an_overflowing_dimension_cannot_bind ... ok
[INFO] [stdout] test video::tests::a_gif_resize_past_a_source_wider_than_the_default_says_so ... ok
[INFO] [stdout] test video::tests::an_unknown_source_rate_applies_the_value_and_admits_it ... ok
[INFO] [stdout] test trim::tests::a_cut_leaves_out_the_chapters_and_any_subtitle_from_before_it ... ok
[INFO] [stdout] test trim::tests::a_range_inside_the_file_is_cut_where_asked ... ok
[INFO] [stdout] test video::tests::a_resize_that_binds_does_not_keep_the_source_size ... ok
[INFO] [stdout] test trim::tests::a_start_from_the_end_before_the_beginning_starts_at_it ... ok
[INFO] [stdout] test video::tests::a_resize_that_cannot_bind_adds_no_filter_and_says_so ... ok
[INFO] [stdout] test video::tests::every_geometry_form_translates_and_every_one_clamps ... ok
[INFO] [stdout] test video::tests::fit_within_preserves_aspect_and_never_grows ... ok
[INFO] [stdout] test video::tests::no_probe_at_all_behaves_like_an_unknown_rate ... ok
[INFO] [stdout] test video::tests::of_several_pages_the_one_enlarged_most_decides ... ok
[INFO] [stdout] test video::tests::parse_rate_keeps_rates_exact ... ok
[INFO] [stdout] test video::tests::just_past_four_times_says_so ... ok
[INFO] [stdout] test video::tests::parse_rate_reduces_and_refuses_what_it_cannot_hold ... ok
[INFO] [stdout] test video::tests::the_cap_is_decided_against_displayed_dimensions_not_stored_ones ... ok
[INFO] [stdout] test video::tests::the_percentage_form_clamps_too ... ok
[INFO] [stdout] test video::tests::upscale_lets_every_form_enlarge_and_names_the_size_and_ratio ... ok
[INFO] [stdout] test video::tests::upscale_on_a_shrinking_resize_changes_nothing_and_warns_nothing ... ok
[INFO] [stdout] test video::tests::rough_sizes_keep_two_significant_figures ... ok
[INFO] [stdout] test video::tests::upscale_to_the_source_size_keeps_it_with_no_hint ... ok
[INFO] [stdout] test sized::tests::the_preview_probes_and_plans_without_running_ffmpeg ... ok
[INFO] [stdout] test winpath::tests::a_drive_path_gets_the_plain_verbatim_prefix ... ok
[INFO] [stdout] test winpath::tests::a_path_with_no_file_name_matches_nothing ... ok
[INFO] [stdout] test video::tests::exactly_four_times_the_pixels_warns_and_more_asks_first ... ok
[INFO] [stdout] test video::tests::upscale_with_no_source_size_applies_as_given_and_warns_generically ... ok
[INFO] [stdout] test resolve::tests::version_probe_uses_single_dash_for_ffmpeg_ffprobe_and_magick ... ok
[INFO] [stdout] test winpath::tests::check_is_a_no_op_off_windows ... ok
[INFO] [stdout] test winpath::tests::an_unrecognised_shape_is_left_alone ... ok
[INFO] [stdout] test winpath::tests::a_unc_path_gets_the_unc_verbatim_prefix ... ok
[INFO] [stdout] test winpath::tests::an_already_verbatim_or_device_path_is_left_alone ... ok
[INFO] [stdout] test winpath::tests::com0_and_lpt0_are_not_reserved ... ok
[INFO] [stdout] test winpath::tests::matching_is_case_insensitive ... ok
[INFO] [stdout] test winpath::tests::only_the_final_component_is_examined ... ok
[INFO] [stdout] test winpath::tests::only_the_text_before_the_first_dot_decides ... ok
[INFO] [stdout] test winpath::tests::plain_device_names_are_reserved_with_or_without_an_extension ... ok
[INFO] [stdout] test winpath::tests::names_that_merely_start_with_a_device_word_are_fine ... ok
[INFO] [stdout] test winpath::tests::the_long_path_note_says_nothing_about_an_empty_command ... ok
[INFO] [stdout] test winpath::tests::the_long_path_note_names_the_longest_path_and_only_fires_past_the_limit ... ok
[INFO] [stdout] test winpath::tests::verbatim_rewriting_is_a_no_op_off_windows ... ok
[INFO] [stdout] test winpath::tests::trailing_spaces_and_dots_are_stripped_before_matching ... ok
[INFO] [stdout] test resolve::tests::a_hung_version_probe_is_killed_and_reported_as_unknown_rather_than_hanging ... ok
[INFO] [stdout] test qr::tests::a_logo_raises_error_correction_and_still_reads_back ... ok
[INFO] [stdout] test resolve::tests::run_with_timeout_kills_a_hung_child_at_the_deadline_not_after ... ok
[INFO] [stdout] test exec::tests::when_retries_run_out_the_last_attempt_is_kept_and_flagged ... ok
[INFO] [stdout] test qr::tests::the_most_text_one_code_holds_still_reads_back ... ok
[INFO] [stdout] test exec::tests::every_sized_outcome_routes_its_sentences_the_same_way ... ok
[INFO] [stdout] test budget::tests::no_extreme_choice_keeps_a_faster_frame_rate_than_its_suggestion ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- exec::tests::a_first_pass_that_writes_no_file_and_exits_zero_is_a_success stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'exec::tests::a_first_pass_that_writes_no_file_and_exits_zero_is_a_success' (4654) panicked at crates/convkit-core/src/exec.rs:3182:10:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: ConvError { code: ConversionFailed, message: "failed to run ffprobe: Text file busy (os error 26)", backend: None, remediation: None }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f600581c891 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5f6005834fba - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5f600582152c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5f60057f4c96 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5f6005812f79 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5f6005656dc0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5f6005813132 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5f60057f4d42 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5f60057ed579 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5f60057f5aed - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5f60058356ec - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5f60058354c2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5f600549841e - <convkit_core[7f723cf5b2c00017]::exec::tests::a_first_pass_that_writes_no_file_and_exits_zero_is_a_success::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5f600564a0ab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5f6005657715 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5f6005650fd4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5f600565a872 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5f600581b829 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x745407e9edfa - <unknown>
[INFO] [stdout]   19:     0x745407f323d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     exec::tests::a_first_pass_that_writes_no_file_and_exits_zero_is_a_success
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 719 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.54s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p convkit-core --lib`
[INFO] running `Command { std: "docker" "inspect" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5", kill_on_drop: false }`
[INFO] [stdout] 0ce3c3f1440592a4fb493190e4ae67f8be37bcdb157fcd05a2dada4f8cb172d5
