[INFO] fetching crate media-ls 0.0.3... [INFO] testing media-ls-0.0.3 against 1.98.0-beta.1 for beta-1.98-2 [INFO] extracting crate media-ls 0.0.3 into /workspace/builds/worker-5-tc2/source [INFO] started tweaking crates.io crate media-ls 0.0.3 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate media-ls 0.0.3 [INFO] tweaked toml for crates.io crate media-ls 0.0.3 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate media-ls 0.0.3 on toolchain 1.98.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate media-ls 0.0.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b [INFO] running `Command { std: "docker" "start" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b", 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" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b", 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" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zlib-rs v0.6.3 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling block-padding v0.3.3 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling radium v0.7.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling zune-jpeg v0.4.21 [INFO] [stderr] Compiling by_address v1.2.1 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling palette v0.7.6 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling tap v1.0.1 [INFO] [stderr] Compiling zune-core v0.5.1 [INFO] [stderr] Compiling wyz v0.5.1 [INFO] [stderr] Compiling image-webp v0.2.4 [INFO] [stderr] Compiling zune-jpeg v0.5.12 [INFO] [stderr] Compiling gif v0.14.1 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling funty v2.0.0 [INFO] [stderr] Compiling fast-srgb8 v1.0.0 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling pxfm v0.1.27 [INFO] [stderr] Compiling ordered-float v5.1.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling bitvec v1.0.1 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_xoshiro v0.7.0 [INFO] [stderr] Compiling bumpalo v3.20.2 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling ratatui-image v10.0.6 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling base64-simd v0.8.0 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling zopfli v0.8.3 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling cbc v0.1.2 [INFO] [stderr] Compiling ecb v0.1.2 [INFO] [stderr] Compiling typed-path v0.12.3 [INFO] [stderr] Compiling mutate_once v0.1.2 [INFO] [stderr] Compiling uuid v1.21.0 [INFO] [stderr] Compiling rangemap v1.7.1 [INFO] [stderr] Compiling ttf-parser v0.25.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling kamadak-exif v0.6.1 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Compiling cfb v0.10.0 [INFO] [stderr] Compiling nucleo-matcher v0.3.1 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling moxcms v0.7.11 [INFO] [stderr] Compiling nom_locate v5.0.0 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling zip v8.2.0 [INFO] [stderr] Compiling zerocopy-derive v0.8.40 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling palette_derive v0.7.6 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling fax v0.2.6 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling kasuari v0.4.11 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling safe_arch v0.9.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling wide v0.8.3 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling tiff v0.10.3 [INFO] [stderr] Compiling lopdf v0.39.0 [INFO] [stderr] Compiling image v0.25.9 [INFO] [stderr] Compiling quantette v0.5.1 [INFO] [stderr] Compiling icy_sixel v0.5.0 [INFO] [stderr] Compiling media-ls v0.0.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.33s [INFO] running `Command { std: "docker" "inspect" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b", 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" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling ratatui-image v10.0.6 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling media-ls v0.0.3 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 17.65s [INFO] running `Command { std: "docker" "inspect" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b", 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" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mls-6e8b6cd0d667140e) [INFO] [stdout] [INFO] [stdout] running 301 tests [INFO] [stdout] test deps::tests::hard_deps_ok_all_present ... ok [INFO] [stdout] test deps::tests::hard_deps_ok_both_missing ... ok [INFO] [stdout] test deps::tests::hard_deps_ok_ffmpeg_missing ... ok [INFO] [stdout] test deps::tests::hard_deps_ok_ffprobe_missing ... ok [INFO] [stdout] test deps::tests::missing_message_all_present_returns_none ... ok [INFO] [stdout] test deps::tests::missing_message_all_missing_has_both ... ok [INFO] [stdout] test deps::tests::missing_message_hard_missing_has_error ... ok [INFO] [stdout] test deps::tests::missing_message_only_mpv_missing_has_warning ... ok [INFO] [stdout] test document::tests::local_name_strips_namespace ... ok [INFO] [stdout] test document::tests::count_xml_elements_counts_correctly ... ok [INFO] [stdout] test document::tests::parse_app_xml_extracts_fields ... ok [INFO] [stdout] test document::tests::parse_core_xml_extracts_fields ... ok [INFO] [stdout] test document::tests::parse_odf_meta_extracts_fields ... ok [INFO] [stdout] test document::tests::probe_nonexistent_file_returns_none ... ok [INFO] [stdout] test document::tests::summary_info_empty_data ... ok [INFO] [stdout] test filter::tests::eval_and_both_true ... ok [INFO] [stdout] test document::tests::probe_corrupt_zip_returns_none ... ok [INFO] [stdout] test filter::tests::eval_and_one_false ... ok [INFO] [stdout] test document::tests::probe_corrupt_pdf_returns_none ... ok [INFO] [stdout] test document::tests::probe_text_counts_lines_and_words ... ok [INFO] [stdout] test document::tests::probe_text_empty_file ... ok [INFO] [stdout] test document::tests::probe_text_table_counts_lines ... ok [INFO] [stdout] test filter::tests::eval_bare_ident_as_string ... ok [INFO] [stdout] test filter::tests::eval_deep_nested_codec ... ok [INFO] [stdout] test filter::tests::eval_double_negation_identity ... ok [INFO] [stdout] test filter::tests::eval_exif_focal_length ... ok [INFO] [stdout] test filter::tests::eval_exif_iso_eq ... ok [INFO] [stdout] test filter::tests::eval_complex_expression ... ok [INFO] [stdout] test filter::tests::eval_exif_aperture_lt ... ok [INFO] [stdout] test filter::tests::eval_image_width_via_video_info ... ok [INFO] [stdout] test filter::tests::eval_exif_camera_model ... ok [INFO] [stdout] test filter::tests::eval_kind_image_excludes_video ... ok [INFO] [stdout] test filter::tests::eval_large_integer_equality ... ok [INFO] [stdout] test filter::tests::eval_nested_field_path ... ok [INFO] [stdout] test filter::tests::eval_not_compound_expression ... ok [INFO] [stdout] test filter::tests::eval_exif_null_on_video ... ok [INFO] [stdout] test filter::tests::eval_not_compound_when_inner_true ... ok [INFO] [stdout] test filter::tests::eval_numeric_eq ... ok [INFO] [stdout] test filter::tests::eval_kind_image ... ok [INFO] [stdout] test filter::tests::eval_exif_iso_gt ... ok [INFO] [stdout] test filter::tests::eval_not_negates ... ok [INFO] [stdout] test filter::tests::eval_numeric_le ... ok [INFO] [stdout] test filter::tests::eval_or_one_true ... ok [INFO] [stdout] test filter::tests::eval_not_true_becomes_false ... ok [INFO] [stdout] test filter::tests::eval_numeric_field_gt_string_numeric ... ok [INFO] [stdout] test filter::tests::eval_shorthand_bitrate_alias ... ok [INFO] [stdout] test filter::tests::eval_missing_field_returns_false ... ok [INFO] [stdout] test filter::tests::eval_numeric_gt_true ... ok [INFO] [stdout] test filter::tests::eval_shorthand_camera ... ok [INFO] [stdout] test filter::tests::eval_numeric_gt_false ... ok [INFO] [stdout] test filter::tests::eval_numeric_ge ... ok [INFO] [stdout] test filter::tests::eval_numeric_lt ... ok [INFO] [stdout] test filter::tests::eval_or_both_false ... ok [INFO] [stdout] test filter::tests::eval_shorthand_duration_ms ... ok [INFO] [stdout] test filter::tests::eval_shorthand_iso ... ok [INFO] [stdout] test filter::tests::eval_numeric_ne ... ok [INFO] [stdout] test filter::tests::eval_shorthand_kind ... ok [INFO] [stdout] test filter::tests::eval_shorthand_height ... ok [INFO] [stdout] test filter::tests::eval_shorthand_width ... ok [INFO] [stdout] test filter::tests::eval_string_eq ... ok [INFO] [stdout] test filter::tests::eval_shorthand_size_bytes ... ok [INFO] [stdout] test filter::tests::lex_all_comparison_operators ... ok [INFO] [stdout] test filter::tests::lex_decimal_number ... ok [INFO] [stdout] test filter::tests::eval_string_ne ... ok [INFO] [stdout] test filter::tests::lex_logical_operators ... ok [INFO] [stdout] test filter::tests::lex_multi_dot_number_rejected ... ok [INFO] [stdout] test filter::tests::lex_negative_number ... ok [INFO] [stdout] test filter::tests::lex_parens ... ok [INFO] [stdout] test filter::tests::lex_dotted_field_path ... ok [INFO] [stdout] test filter::tests::lex_string_double_quotes ... ok [INFO] [stdout] test filter::tests::lex_simple_comparison ... ok [INFO] [stdout] test filter::tests::lex_string_single_quotes ... ok [INFO] [stdout] test filter::tests::lex_unexpected_char_error ... ok [INFO] [stdout] test filter::tests::lex_unterminated_string_error ... ok [INFO] [stdout] test filter::tests::parse_and_expression ... ok [INFO] [stdout] test filter::tests::parse_deeply_nested ... ok [INFO] [stdout] test filter::tests::parse_double_negation ... ok [INFO] [stdout] test filter::tests::lex_whitespace_skipped ... ok [INFO] [stdout] test filter::tests::parse_missing_operator_error ... ok [INFO] [stdout] test filter::tests::parse_empty_expression ... ok [INFO] [stdout] test filter::tests::parse_missing_value_error ... ok [INFO] [stdout] test filter::tests::parse_not_expression ... ok [INFO] [stdout] test filter::tests::parse_nested_parens ... ok [INFO] [stdout] test filter::tests::parse_missing_rparen_error ... ok [INFO] [stdout] test filter::tests::parse_or_expression ... ok [INFO] [stdout] test filter::tests::parse_simple_num_comparison ... ok [INFO] [stdout] test filter::tests::parse_simple_str_comparison ... ok [INFO] [stdout] test filter::tests::parse_trailing_after_parens_rejected ... ok [INFO] [stdout] test filter::tests::parse_trailing_garbage_rejected ... ok [INFO] [stdout] test filter::tests::parse_trailing_number_rejected ... ok [INFO] [stdout] test output::tests::slice_is_empty_false ... ok [INFO] [stdout] test filter::tests::parse_valid_no_trailing_accepted ... ok [INFO] [stdout] test output::tests::slice_is_empty_true ... ok [INFO] [stdout] test output::tests::write_info_json_single_not_array ... ok [INFO] [stdout] test output::tests::write_json_empty_entries_valid ... ok [INFO] [stdout] test output::tests::write_info_json_multiple_as_array ... ok [INFO] [stdout] test output::tests::write_json_errors_present_when_nonempty ... ok [INFO] [stdout] test output::tests::write_ndjson_footer_errors_omitted_when_empty ... ok [INFO] [stdout] test filter::tests::parse_whitespace_only ... ok [INFO] [stdout] test output::tests::write_ndjson_footer_type ... ok [INFO] [stdout] test output::tests::write_json_with_entries_and_errors ... ok [INFO] [stdout] test output::tests::write_ndjson_entry_type ... ok [INFO] [stdout] test playback::tests::new_current_file_is_none ... ok [INFO] [stdout] test playback::tests::socket_path_contains_pid ... ok [INFO] [stdout] test output::tests::write_json_has_mls_version ... ok [INFO] [stdout] test output::tests::write_json_errors_omitted_when_empty ... ok [INFO] [stdout] test output::tests::write_json_has_generated_at ... ok [INFO] [stdout] test output::tests::write_ndjson_header_type ... ok [INFO] [stdout] test playback::tests::default_equals_new ... ok [INFO] [stdout] test playback::tests::new_is_alive_false ... ok [INFO] [stdout] test playback::tests::two_controllers_different_paths ... ok [INFO] [stdout] test playback::tests::new_state_is_stopped ... ok [INFO] [stdout] test probe::tests::build_audio_info_fields ... ok [INFO] [stdout] test probe::tests::build_audio_info_missing_optionals ... ok [INFO] [stdout] test probe::tests::build_media_info_av_kind ... ok [INFO] [stdout] test probe::tests::build_media_info_bitrate_parsed ... ok [INFO] [stdout] test probe::tests::build_media_info_container_primary ... ok [INFO] [stdout] test probe::tests::build_media_info_audio_only ... ok [INFO] [stdout] test probe::tests::build_media_info_negative_duration_yields_none ... ok [INFO] [stdout] test probe::tests::build_media_info_image_ext_with_video_stream_yields_image_kind ... ok [INFO] [stdout] test probe::tests::build_media_info_mp4_ext_with_video_stream_yields_video_kind ... ok [INFO] [stdout] test probe::tests::build_media_info_duration_parsed ... ok [INFO] [stdout] test probe::tests::build_media_info_no_streams ... ok [INFO] [stdout] test probe::tests::build_media_info_png_ext_no_streams_yields_image_kind ... ok [INFO] [stdout] test probe::tests::build_media_info_video_only ... ok [INFO] [stdout] test probe::tests::build_media_info_with_tags ... ok [INFO] [stdout] test probe::tests::build_stream_info_copies_fields ... ok [INFO] [stdout] test probe::tests::build_video_info_fields ... ok [INFO] [stdout] test probe::tests::build_video_info_missing_optionals ... ok [INFO] [stdout] test probe::tests::deserialize_minimal_ffprobe_json ... ok [INFO] [stdout] test probe::tests::deserialize_ffprobe_json ... ok [INFO] [stdout] test probe::tests::extract_tags_all_fields ... ok [INFO] [stdout] test probe::tests::extract_tags_empty_map ... ok [INFO] [stdout] test probe::tests::build_media_info_no_format ... ok [INFO] [stdout] test probe::tests::extract_tags_uppercase_fallback ... ok [INFO] [stdout] test probe::tests::parse_fps_60 ... ok [INFO] [stdout] test probe::tests::parse_fps_no_slash_returns_none ... ok [INFO] [stdout] test probe::tests::parse_fps_empty_returns_none ... ok [INFO] [stdout] test probe::tests::extract_tags_ignores_non_string_values ... ok [INFO] [stdout] test probe::tests::parse_fps_non_numeric_returns_none ... ok [INFO] [stdout] test probe::tests::parse_fps_standard_24 ... ok [INFO] [stdout] test probe::tests::parse_fps_zero_den_returns_none ... ok [INFO] [stdout] test probe::tests::parse_fps_integer_30 ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_date_alias ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_all_keys_recognized ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_duration_ms_alias ... ok [INFO] [stdout] test scan::tests::discover_single_file_directly ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_duration_desc ... ok [INFO] [stdout] test scan::tests::max_depth_zero_scans_root_only ... ok [INFO] [stdout] test scan::tests::discovers_media_files_in_flat_dir ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_explicit_asc ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_invalid_dir_defaults_asc ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_unknown_returns_none ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_name_default_asc ... ok [INFO] [stdout] test scan::tests::symlink_loop_self_referencing ... ok [INFO] [stdout] test sort::tests::parse_sort_spec_modified_alias ... ok [INFO] [stdout] test scan::tests::respects_max_depth ... ok [INFO] [stdout] test scan::tests::symlink_to_parent_does_not_recurse ... ok [INFO] [stdout] test scan::tests::symlink_loop_mutual ... ok [INFO] [stdout] test sort::tests::sort_by_bitrate ... ok [INFO] [stdout] test sort::tests::sort_by_codec ... ok [INFO] [stdout] test sort::tests::sort_by_size_desc ... ok [INFO] [stdout] test sort::tests::sort_by_codec_falls_back_to_audio ... ok [INFO] [stdout] test sort::tests::sort_by_duration_asc ... ok [INFO] [stdout] test sort::tests::sort_dir_items_by_name_asc ... ok [INFO] [stdout] test sort::tests::sort_by_name_asc ... ok [INFO] [stdout] test sort::tests::sort_by_name_case_insensitive ... ok [INFO] [stdout] test sort::tests::sort_by_resolution ... ok [INFO] [stdout] test sort::tests::sort_by_size_asc ... ok [INFO] [stdout] test sort::tests::sort_by_name_desc ... ok [INFO] [stdout] test sort::tests::sort_dir_items_by_name_desc ... ok [INFO] [stdout] test sort::tests::sort_empty_slice ... ok [INFO] [stdout] test sort::tests::sort_single_element ... ok [INFO] [stdout] test tests::exit_code_constants_match_prd_spec ... ok [INFO] [stdout] test tests::exit_code_error_displays_message ... ok [INFO] [stdout] test tests::exit_code_error_downcast_from_anyhow ... ok [INFO] [stdout] test tests::generic_anyhow_error_falls_back_to_code_1 ... ok [INFO] [stdout] test thumbnail::tests::default_cache_dir_contains_mls ... ok [INFO] [stdout] test thumbnail::tests::cache_zero_capacity_errors ... ok [INFO] [stdout] test sort::tests::sort_dir_items_media_key_falls_back_to_name ... ok [INFO] [stdout] test thumbnail::tests::cache_creates_dir_if_missing ... ok [INFO] [stdout] test sort::tests::sort_dir_items_by_modified ... ok [INFO] [stdout] test sort::tests::sort_dir_items_by_size_asc ... ok [INFO] [stdout] test thumbnail::tests::stable_hash_deterministic ... ok [INFO] [stdout] test thumbnail::tests::disk_cache_path_ends_in_jpg ... ok [INFO] [stdout] test thumbnail::tests::default_cache_dir_nonempty ... ok [INFO] [stdout] test thumbnail::tests::stable_hash_known_value ... ok [INFO] [stdout] test thumbnail::tests::stable_hash_different_paths ... ok [INFO] [stdout] test thumbnail::tests::stable_hash_same_path ... ok [INFO] [stdout] test sort::tests::sort_duration_none_before_some ... ok [INFO] [stdout] test tui::layout::tests::format_progress_bar_width_one ... ok [INFO] [stdout] test tui::layout::tests::format_seconds_large_hours ... ok [INFO] [stdout] test tui::layout::tests::format_seconds_negative ... ok [INFO] [stdout] test tui::layout::tests::format_progress_bar_width_three ... ok [INFO] [stdout] test tui::layout::tests::format_seconds_zero ... ok [INFO] [stdout] test tui::layout::tests::format_progress_bar_width_zero ... ok [INFO] [stdout] test tui::layout::tests::progress_bar_narrow ... ok [INFO] [stdout] test tui::layout::tests::progress_bar_half ... ok [INFO] [stdout] test tui::layout::tests::progress_bar_zero_duration ... ok [INFO] [stdout] test tui::layout::tests::format_seconds_minutes ... ok [INFO] [stdout] test tui::layout::tests::truncate_emoji_filename ... ok [INFO] [stdout] test tui::layout::tests::progress_bar_full ... ok [INFO] [stdout] test tui::layout::tests::truncate_exact_length_unchanged ... ok [INFO] [stdout] test tui::layout::tests::progress_bar_too_narrow ... ok [INFO] [stdout] test tui::layout::tests::truncate_long_ascii ... ok [INFO] [stdout] test tui::layout::tests::format_seconds_hours ... ok [INFO] [stdout] test tui::layout::tests::truncate_single_char_limit ... ok [INFO] [stdout] test tui::layout::tests::truncate_mixed_ascii_and_multibyte ... ok [INFO] [stdout] test tui::layout::tests::truncate_short_ascii_unchanged ... ok [INFO] [stdout] test tui::layout::tests::progress_bar_zero_position ... ok [INFO] [stdout] test tui::layout::tests::truncate_empty_string ... ok [INFO] [stdout] test tui::layout::tests::truncate_japanese_filename ... ok [INFO] [stdout] test tui::layout::tests::truncate_japanese_short_unchanged ... ok [INFO] [stdout] test tui::layout::tests::truncate_zero_max_len ... ok [INFO] [stdout] test tui::tests::dir_items_sorted ... ok [INFO] [stdout] test tui::tests::kind_filter_audio_includes_audio_only ... ok [INFO] [stdout] test tui::tests::cycle_sort_advances_key ... ok [INFO] [stdout] test tui::tests::page_down_advances_by_size ... ok [INFO] [stdout] test tui::tests::filter_mode_defaults_to_fuzzy ... ok [INFO] [stdout] test tui::tests::cycle_sort_sets_status ... ok [INFO] [stdout] test tui::tests::page_down_at_bottom_stays ... ok [INFO] [stdout] test tui::tests::fuzzy_results_sorted_by_score ... ok [INFO] [stdout] test tui::tests::kind_filter_composes_with_fuzzy ... ok [INFO] [stdout] test tui::tests::kind_filter_all_shows_everything ... ok [INFO] [stdout] test tui::tests::fuzzy_matches_subsequence ... ok [INFO] [stdout] test tui::tests::kind_filter_empty_shows_nothing ... ok [INFO] [stdout] test tui::tests::fuzzy_empty_shows_all ... ok [INFO] [stdout] test tui::tests::page_up_retreats_by_size ... ok [INFO] [stdout] test tui::tests::kind_filter_multi_select ... ok [INFO] [stdout] test tui::tests::playback_start_failure_keeps_state_empty_and_sets_error_status ... ok [INFO] [stdout] test tui::tests::structured_filter_invalid_shows_all ... ok [INFO] [stdout] test tui::tests::selected_dir_returns_path_when_dir_selected ... ok [INFO] [stdout] test tui::tests::structured_filter_keeps_last_valid_parse ... ok [INFO] [stdout] test tui::tests::visible_count_includes_dirs ... ok [INFO] [stdout] test tui::triage::tests::triage_advance_increments_within_bounds ... ok [INFO] [stdout] test tui::triage::tests::triage_advance_noop_when_total_one ... ok [INFO] [stdout] test tui::triage::tests::triage_advance_noop_when_total_zero ... ok [INFO] [stdout] test tui::tests::page_up_at_top_stays ... ok [INFO] [stdout] test tui::triage::tests::triage_history_push_pop_roundtrip ... ok [INFO] [stdout] test tui::triage::tests::triage_state_new_initializes_correctly ... ok [INFO] [stdout] test tui::triage::tests::remove_last_entry_clamps_cursor ... ok [INFO] [stdout] test types::tests::format_bitrate_boundary_kbps ... ok [INFO] [stdout] test types::tests::format_bitrate_bps ... ok [INFO] [stdout] test tui::tests::structured_filter_parses_kind ... ok [INFO] [stdout] test types::tests::format_bitrate_kbps ... ok [INFO] [stdout] test tui::tests::kind_filter_video_excludes_audio ... ok [INFO] [stdout] test tui::tests::fuzzy_no_match_shows_empty ... ok [INFO] [stdout] test types::tests::format_duration_exact_hour ... ok [INFO] [stdout] test types::tests::format_bitrate_mbps ... ok [INFO] [stdout] test types::tests::format_duration_minutes_and_seconds ... ok [INFO] [stdout] test tui::tests::thumb_skips_audio_only_files ... ok [INFO] [stdout] test types::tests::format_duration_exact_minute ... ok [INFO] [stdout] test tui::tests::playback_state_defaults_none ... ok [INFO] [stdout] test tui::tests::fuzzy_selected_clamped_when_filter_narrows ... ok [INFO] [stdout] test tui::tests::selected_entry_offsets_correctly ... ok [INFO] [stdout] test types::tests::format_duration_seconds_only ... ok [INFO] [stdout] test tui::triage::tests::execute_move_rejects_non_directory ... ok [INFO] [stdout] test tui::tests::toggle_mark_on_dir_is_noop ... ok [INFO] [stdout] test types::tests::format_size_boundary_kb ... ok [INFO] [stdout] test types::tests::format_size_gigabytes ... ok [INFO] [stdout] test tui::tests::navigate_clears_state ... ok [INFO] [stdout] test types::tests::format_size_kilobytes ... ok [INFO] [stdout] test types::tests::format_size_megabytes ... ok [INFO] [stdout] test types::tests::format_duration_hours ... ok [INFO] [stdout] test types::tests::format_duration_sub_second_truncated ... ok [INFO] [stdout] test types::tests::format_duration_zero ... ok [INFO] [stdout] test tui::tests::thumb_empty_when_no_selection ... ok [INFO] [stdout] test tui::triage::tests::execute_move_rejects_collision ... ok [INFO] [stdout] test types::tests::format_size_zero_bytes ... ok [INFO] [stdout] test types::tests::format_size_bytes ... ok [INFO] [stdout] test types::tests::fps_as_f64_normal ... ok [INFO] [stdout] test types::tests::is_document_extension_accepts_documents ... ok [INFO] [stdout] test tui::triage::tests::execute_move_moves_file_and_updates_state ... ok [INFO] [stdout] test types::tests::is_document_extension_case_insensitive ... ok [INFO] [stdout] test types::tests::is_document_extension_rejects_non_documents ... ok [INFO] [stdout] test types::tests::fps_as_f64_integer ... ok [INFO] [stdout] test types::tests::is_image_extension_accepts_images ... ok [INFO] [stdout] test types::tests::fps_as_f64_zero_den ... ok [INFO] [stdout] test types::tests::fps_display_integer ... ok [INFO] [stdout] test types::tests::fps_display_fractional ... ok [INFO] [stdout] test types::tests::is_media_extension_rejects_unknown ... ok [INFO] [stdout] test types::tests::is_media_extension_video ... ok [INFO] [stdout] test types::tests::is_image_extension_case_insensitive ... ok [INFO] [stdout] test types::tests::is_image_extension_rejects_non_images ... ok [INFO] [stdout] test types::tests::fps_display_60 ... ok [INFO] [stdout] test types::tests::is_media_extension_audio ... ok [INFO] [stdout] test types::tests::is_media_extension_case_insensitive ... ok [INFO] [stdout] test types::tests::is_media_extension_document ... ok [INFO] [stdout] test types::tests::is_video_extension_accepts_video ... ok [INFO] [stdout] test types::tests::is_video_extension_rejects_audio ... ok [INFO] [stdout] test types::tests::is_media_extension_image ... ok [INFO] [stdout] test types::tests::resolution_label_1080p ... ok [INFO] [stdout] test types::tests::resolution_label_1440p ... ok [INFO] [stdout] test types::tests::resolution_label_480p ... ok [INFO] [stdout] test types::tests::resolution_label_4k ... ok [INFO] [stdout] test types::tests::sort_dir_toggle ... ok [INFO] [stdout] test types::tests::sort_key_cycle_returns_to_start ... ok [INFO] [stdout] test types::tests::sort_key_labels ... ok [INFO] [stdout] test types::tests::sort_key_next_sequence ... ok [INFO] [stdout] test types::tests::media_kind_display ... ok [INFO] [stdout] test types::tests::resolution_label_720p ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 301 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-77f70e09f19eafcd) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test help_exits_zero ... ok [INFO] [stdout] test missing_ffprobe_exits_4 ... ok [INFO] [stdout] test play_without_mpv_exits_4_with_install_hint ... ok [INFO] [stdout] test json_document_has_line_count ... ok [INFO] [stdout] test json_filter_kind_document_returns_only_documents ... ok [INFO] [stdout] test json_output_valid_schema ... ok [INFO] [stdout] test json_entries_have_required_fields ... ok [INFO] [stdout] test json_filter_reduces_results ... ok [INFO] [stdout] test ndjson_entries_are_valid_json ... ok [INFO] [stdout] test json_filter_kind_excludes_other_kinds ... ok [INFO] [stdout] test json_documents_have_kind_document ... ok [INFO] [stdout] test json_filter_kind_image_returns_only_images ... ok [INFO] [stdout] test invalid_filter_exits_2 ... ok [INFO] [stdout] test ndjson_has_header_and_footer ... ok [INFO] [stdout] test json_images_have_dimensions_but_no_duration ... ok [INFO] [stdout] test json_images_have_kind_image ... ok [INFO] [stdout] test json_sort_by_pages ... ok [INFO] [stdout] test json_limit_truncates ... ok [INFO] [stdout] test version_exits_zero ... ok [INFO] [stdout] test unknown_sort_key_exits_2 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b", kill_on_drop: false }` [INFO] [stdout] ffe9e4527a6ad9e21fd940ddcc248a1b8046eac18e0c0e080e992dfe8904573b