[INFO] cloning repository https://github.com/agavra/tuicr [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/agavra/tuicr" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fagavra%2Ftuicr", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fagavra%2Ftuicr'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 206eb9671ee7e2ebb891867fb7930bbc792c31bc [INFO] testing agavra/tuicr against 1.95.0 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fagavra%2Ftuicr" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/agavra/tuicr [INFO] finished tweaking git repo https://github.com/agavra/tuicr [INFO] tweaked toml for git repo https://github.com/agavra/tuicr written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/agavra/tuicr on toolchain 1.95.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/agavra/tuicr 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded line-clipping v0.3.7 [INFO] [stderr] Downloaded wayland-sys v0.31.11 [INFO] [stderr] Downloaded wl-clipboard-rs v0.9.3 [INFO] [stderr] Downloaded wayland-protocols-wlr v0.3.12 [INFO] [stderr] Downloaded rustls-webpki v0.103.11 [INFO] [stderr] Downloaded wayland-scanner v0.31.10 [INFO] [stderr] Downloaded wayland-backend v0.3.15 [INFO] [stderr] Downloaded zune-jpeg v0.5.15 [INFO] [stderr] Downloaded tiff v0.11.3 [INFO] [stderr] Downloaded wayland-client v0.31.14 [INFO] [stderr] Downloaded wayland-protocols v0.32.12 [INFO] [stderr] Downloaded moxcms v0.8.1 [INFO] [stderr] Downloaded quick-xml v0.39.2 [INFO] [stderr] Downloaded git2 v0.20.4 [INFO] [stderr] Downloaded image v0.25.10 [INFO] [stderr] Downloaded libz-sys v1.1.28 [INFO] [stderr] Downloaded libgit2-sys v0.18.3+1.9.2 [INFO] [stderr] Downloaded two-face v0.5.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 907c91a3786024b94496f5b1d9c6c617dc23184b6d5596cffbac7952ac330901 [INFO] running `Command { std: "docker" "start" "-a" "907c91a3786024b94496f5b1d9c6c617dc23184b6d5596cffbac7952ac330901", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "907c91a3786024b94496f5b1d9c6c617dc23184b6d5596cffbac7952ac330901", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "907c91a3786024b94496f5b1d9c6c617dc23184b6d5596cffbac7952ac330901", kill_on_drop: false }` [INFO] [stdout] 907c91a3786024b94496f5b1d9c6c617dc23184b6d5596cffbac7952ac330901 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 29ead478b0bde14d7b86e12add1b815bee256af5fc58aad7cc89245c977fb18d [INFO] running `Command { std: "docker" "start" "-a" "29ead478b0bde14d7b86e12add1b815bee256af5fc58aad7cc89245c977fb18d", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling wayland-sys v0.31.11 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling quick-xml v0.39.2 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling wayland-client v0.31.14 [INFO] [stderr] Compiling cc v1.2.60 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling wayland-scanner v0.31.10 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling fixedbitset v0.5.7 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling petgraph v0.8.3 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling line-clipping v0.3.7 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling pxfm v0.1.28 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling plist v1.8.0 [INFO] [stderr] Compiling wayland-backend v0.3.15 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling onig_sys v69.9.1 [INFO] [stderr] Compiling libz-sys v1.1.28 [INFO] [stderr] Compiling libgit2-sys v0.18.3+1.9.2 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling os_pipe v1.2.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling x11rb-protocol v0.13.2 [INFO] [stderr] Compiling byteorder-lite v0.1.0 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling ureq-proto v0.6.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling utf8-zero v0.8.1 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling directories v6.0.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling fancy-regex v0.16.2 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling tree_magic_mini v3.2.2 [INFO] [stderr] Compiling moxcms v0.8.1 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling onig v6.5.1 [INFO] [stderr] Compiling rustls-webpki v0.103.11 [INFO] [stderr] Compiling syntect v5.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling wayland-protocols v0.32.12 [INFO] [stderr] Compiling two-face v0.5.1 [INFO] [stderr] Compiling git2 v0.20.4 [INFO] [stderr] Compiling image v0.25.10 [INFO] [stderr] Compiling ureq v3.3.0 [INFO] [stderr] Compiling wayland-protocols-wlr v0.3.12 [INFO] [stderr] Compiling wl-clipboard-rs v0.9.3 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling tuicr v0.10.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 35s [INFO] running `Command { std: "docker" "inspect" "29ead478b0bde14d7b86e12add1b815bee256af5fc58aad7cc89245c977fb18d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "29ead478b0bde14d7b86e12add1b815bee256af5fc58aad7cc89245c977fb18d", kill_on_drop: false }` [INFO] [stdout] 29ead478b0bde14d7b86e12add1b815bee256af5fc58aad7cc89245c977fb18d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 867dae0a0eadedb7e171360878c45123e9a58de461f47351070ee44037bb78c7 [INFO] running `Command { std: "docker" "start" "-a" "867dae0a0eadedb7e171360878c45123e9a58de461f47351070ee44037bb78c7", kill_on_drop: false }` [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling tuicr v0.10.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 8.14s [INFO] running `Command { std: "docker" "inspect" "867dae0a0eadedb7e171360878c45123e9a58de461f47351070ee44037bb78c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "867dae0a0eadedb7e171360878c45123e9a58de461f47351070ee44037bb78c7", kill_on_drop: false }` [INFO] [stdout] 867dae0a0eadedb7e171360878c45123e9a58de461f47351070ee44037bb78c7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] e4d2e4b9a5d7fd02176c830d621ffc167ea01ba31ce4832ed1f3f5aeb886e5e3 [INFO] running `Command { std: "docker" "start" "-a" "e4d2e4b9a5d7fd02176c830d621ffc167ea01ba31ce4832ed1f3f5aeb886e5e3", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tuicr-5de97cfd23e6f985) [INFO] [stdout] [INFO] [stdout] running 348 tests [INFO] [stdout] test app::expand_gap_tests::should_append_on_subsequent_down_expand ... ok [INFO] [stdout] test app::expand_gap_tests::should_cap_at_gap_boundaries ... ok [INFO] [stdout] test app::commit_selection_tests::special_commit_count_counts_leading_special_entries ... ok [INFO] [stdout] test app::expand_gap_tests::should_expand_gap_in_correct_file_not_adjacent_file ... ok [INFO] [stdout] test app::commit_selection_tests::special_commit_count_ignores_non_leading_special_entries ... ok [INFO] [stdout] test app::expand_gap_tests::should_expand_up_from_first_hunk ... ok [INFO] [stdout] test app::expand_gap_tests::should_expand_up_from_lower_hunk ... ok [INFO] [stdout] test app::expand_gap_tests::should_merge_to_both_when_remaining_drops_below_batch ... ok [INFO] [stdout] test app::expand_gap_tests::should_noop_when_already_fully_expanded ... ok [INFO] [stdout] test app::expand_gap_tests::should_not_show_expander_when_fully_expanded ... ok [INFO] [stdout] test app::expand_gap_tests::should_prepend_on_subsequent_up_expand ... ok [INFO] [stdout] test app::expand_gap_tests::should_show_merged_expander_for_small_between_hunk_gap ... ok [INFO] [stdout] test app::expand_gap_tests::should_show_split_expanders_for_large_between_hunk_gap ... ok [INFO] [stdout] test app::expand_gap_tests::should_show_up_expander_for_top_of_file_partial ... ok [INFO] [stdout] test app::find_source_line_tests::should_find_exact_match ... ok [INFO] [stdout] test app::find_source_line_tests::should_find_nearest_above_target ... ok [INFO] [stdout] test app::expand_gap_tests::should_expand_down_from_upper_hunk ... ok [INFO] [stdout] test app::find_source_line_tests::should_find_nearest_for_target_zero ... ok [INFO] [stdout] test app::find_source_line_tests::should_find_nearest_when_no_exact_match ... ok [INFO] [stdout] test app::find_source_line_tests::should_prefer_exact_match_over_earlier_nearest ... ok [INFO] [stdout] test app::find_source_line_tests::should_return_not_found_for_empty_annotations ... ok [INFO] [stdout] test app::find_source_line_tests::should_return_not_found_when_no_lines_in_current_file ... ok [INFO] [stdout] test app::expand_gap_tests::should_expand_all_lines_with_both_direction ... ok [INFO] [stdout] test app::expand_gap_tests::should_expand_small_gap_fully_even_with_large_limit ... ok [INFO] [stdout] test app::find_source_line_tests::should_return_not_found_when_only_non_line_annotations ... ok [INFO] [stdout] test app::find_source_line_tests::should_skip_diff_lines_with_no_new_lineno ... ok [INFO] [stdout] test app::find_source_line_tests::should_skip_lines_from_other_files ... ok [INFO] [stdout] test app::find_source_line_tests::should_skip_non_diff_line_annotations ... ok [INFO] [stdout] test app::find_source_line_tests::should_tie_break_nearest_by_iteration_order ... ok [INFO] [stdout] test app::find_source_line_tests::should_work_with_side_by_side_lines ... ok [INFO] [stdout] test app::scroll_tests::should_allow_scrolling_further_with_wrapping ... ok [INFO] [stdout] test app::scroll_tests::should_calculate_max_scroll_with_wrapping ... ok [INFO] [stdout] test app::scroll_tests::should_calculate_max_scroll_without_wrapping ... ok [INFO] [stdout] test app::scroll_tests::should_handle_empty_content ... ok [INFO] [stdout] test app::scroll_tests::should_handle_small_content_with_wrapping ... ok [INFO] [stdout] test app::scroll_tests::should_handle_small_content_without_wrapping ... ok [INFO] [stdout] test app::scroll_tests::should_handle_zero_viewport ... ok [INFO] [stdout] test app::scroll_tests::should_match_max_scroll_offset_implementation ... ok [INFO] [stdout] test app::tree_tests::test_collapse_all_hides_all_files ... ok [INFO] [stdout] test app::tree_tests::test_collapse_parent_hides_nested_dirs ... ok [INFO] [stdout] test app::tree_tests::test_expand_all_shows_all_files ... ok [INFO] [stdout] test app::tree_tests::test_root_files_always_visible ... ok [INFO] [stdout] test app::tree_tests::test_sibling_dirs_independent ... ok [INFO] [stdout] test app::tree_tests::test_toggle_expands_collapsed_dir ... ok [INFO] [stdout] test app::tree_tests::test_tree_depth_correct ... ok [INFO] [stdout] test config::tests::should_append_tuicr_config_toml_suffix ... ok [INFO] [stdout] test app::find_source_line_tests::should_handle_mixed_diff_and_sbs_lines ... ok [INFO] [stdout] test config::tests::should_fallback_to_home_dot_config_when_xdg_unset ... ok [INFO] [stdout] test config::tests::should_ignore_empty_xdg_config_home ... ok [INFO] [stdout] test config::tests::should_use_xdg_config_home_when_set ... ok [INFO] [stdout] test config::tests::should_error_on_invalid_toml ... ok [INFO] [stdout] test config::tests::should_default_export_legend_to_none ... ok [INFO] [stdout] test config::tests::should_load_theme_from_valid_toml ... ok [INFO] [stdout] test config::tests::should_load_theme_variants_and_appearance_from_valid_toml ... ok [INFO] [stdout] test config::tests::should_parse_diff_view_side_by_side ... ok [INFO] [stdout] test config::tests::should_warn_and_ignore_show_file_list_with_invalid_type ... ok [INFO] [stdout] test config::tests::should_parse_diff_view_unified ... ok [INFO] [stdout] test config::tests::should_parse_empty_config_as_defaults ... ok [INFO] [stdout] test config::tests::should_parse_export_legend_false ... ok [INFO] [stdout] test hash::tests::should_handle_empty_input ... ok [INFO] [stdout] test config::tests::should_warn_on_unknown_keys_and_keep_known_values ... ok [INFO] [stdout] test hash::tests::should_produce_deterministic_hash ... ok [INFO] [stdout] test config::tests::should_warn_and_ignore_wrap_with_invalid_type ... ok [INFO] [stdout] test config::tests::should_parse_show_file_list_false ... ok [INFO] [stdout] test config::tests::should_return_none_when_config_file_missing ... ok [INFO] [stdout] test hash::tests::should_produce_different_hashes_for_different_inputs ... ok [INFO] [stdout] test config::tests::should_warn_on_unknown_keys_only_and_use_defaults ... ok [INFO] [stdout] test input::keybindings::tests::should_map_backtab_to_reverse_focus_in_normal_mode ... ok [INFO] [stdout] test input::keybindings::tests::should_map_uppercase_g_to_go_to_bottom_in_normal_mode ... ok [INFO] [stdout] test input::keybindings::tests::should_map_lowercase_g_to_go_to_top_in_normal_mode ... ok [INFO] [stdout] test input::keybindings::tests::should_map_backtab_to_reverse_comment_type_in_comment_mode ... ok [INFO] [stdout] test config::tests::should_parse_wrap_false ... ok [INFO] [stdout] test config::tests::should_parse_wrap_true ... ok [INFO] [stdout] test config::tests::should_warn_and_ignore_diff_view_with_invalid_type ... ok [INFO] [stdout] test model::comment::tests::comment_tests::comment_type_deserializes_custom_type_from_string ... ok [INFO] [stdout] test model::comment::tests::comment_tests::comment_type_serializes_custom_type_as_string ... ok [INFO] [stdout] test input::keybindings::tests::should_not_map_shifted_digits_to_digit_action ... ok [INFO] [stdout] test input::keybindings::tests::should_not_map_digits_in_command_mode ... ok [INFO] [stdout] test input::keybindings::tests::should_map_digit_keys_to_digit_action_in_normal_mode ... ok [INFO] [stdout] test input::keybindings::tests::should_not_map_digits_in_search_mode ... ok [INFO] [stdout] test model::comment::tests::comment_tests::comment_with_line_range_serializes_correctly ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_false_for_line_after_range ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_false_for_line_before_range ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_true_for_end_line ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_true_for_middle_line ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::is_single_returns_false_for_multi_line ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::is_single_returns_true_for_single_line ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::contains_returns_true_for_start_line ... ok [INFO] [stdout] test model::comment::tests::comment_tests::new_with_range_creates_comment_with_line_range ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::line_range_serializes_correctly ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::new_normalizes_reversed_bounds ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::new_creates_range_with_correct_bounds ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::single_creates_single_line_range ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::single_line_range_contains_only_that_line ... ok [INFO] [stdout] test model::review::tests::should_clear_file_and_line_comments ... ok [INFO] [stdout] test model::review::tests::should_clear_both_comments_and_reviewed_status ... ok [INFO] [stdout] test model::review::tests::should_keep_reviewed_when_hash_unchanged ... ok [INFO] [stdout] test model::review::tests::should_reset_reviewed_status_on_all_files ... ok [INFO] [stdout] test model::review::tests::should_reset_reviewed_when_hash_changes ... ok [INFO] [stdout] test model::review::tests::should_reset_reviewed_when_legacy_session_has_no_hash ... ok [INFO] [stdout] test model::review::tests::should_clear_review_level_comments ... ok [INFO] [stdout] test model::review::tests::should_not_report_invalidated_for_unreviewed_file_with_changed_hash ... ok [INFO] [stdout] test model::review::tests::should_only_count_reviewed_files_as_unreviewed ... ok [INFO] [stdout] test model::review::tests::should_return_zero_when_clearing_empty_session ... ok [INFO] [stdout] test model::review::tests::should_store_content_hash_on_new_file ... ok [INFO] [stdout] test output::markdown::tests::should_encode_empty_string_in_osc52 ... ok [INFO] [stdout] test output::markdown::tests::should_encode_unicode_in_osc52 ... ok [INFO] [stdout] test model::review::tests::should_update_hash_even_when_not_reviewed ... ok [INFO] [stdout] test output::markdown::tests::should_encode_markdown_content_in_osc52 ... ok [INFO] [stdout] test output::markdown::tests::should_export_line_range_with_start_and_end ... ok [INFO] [stdout] test output::markdown::tests::should_export_old_side_line_range_with_tilde ... ok [INFO] [stdout] test config::tests::should_warn_and_ignore_diff_view_with_invalid_value ... ok [INFO] [stdout] test model::comment::tests::comment_tests::comment_without_line_range_deserializes_with_none ... ok [INFO] [stdout] test model::comment::tests::line_range_tests::line_range_deserializes_correctly ... ok [INFO] [stdout] test model::comment::tests::comment_tests::comment_with_line_range_deserializes_correctly ... ok [INFO] [stdout] test output::markdown::tests::should_export_single_old_side_line_with_tilde ... ok [INFO] [stdout] test output::markdown::tests::should_export_single_line_range_as_single_line ... ok [INFO] [stdout] test output::markdown::tests::should_fail_export_when_no_comments ... ok [INFO] [stdout] test output::markdown::tests::should_fail_generate_export_content_when_no_comments ... ok [INFO] [stdout] test output::markdown::tests::should_generate_export_content_with_comments ... ok [INFO] [stdout] test output::markdown::tests::should_generate_valid_markdown ... ok [INFO] [stdout] test output::markdown::tests::should_include_commit_range_in_markdown ... ok [INFO] [stdout] test output::markdown::tests::should_handle_comment_without_line_range_field ... ok [INFO] [stdout] test output::markdown::tests::should_only_list_used_custom_types_in_legend ... ok [INFO] [stdout] test output::markdown::tests::should_number_comments_sequentially ... ok [INFO] [stdout] test output::markdown::tests::should_use_configured_label_and_definition_in_export ... ok [INFO] [stdout] test output::markdown::tests::should_write_osc52_escape_sequence ... ok [INFO] [stdout] test output::markdown::tests::should_include_commit_range_scope_for_review_comments ... ok [INFO] [stdout] test output::markdown::tests::should_omit_legend_when_show_legend_is_false ... ok [INFO] [stdout] test output::markdown::tests::should_include_review_comments_in_export ... ok [INFO] [stdout] test output::markdown::tests::should_include_single_commit_in_markdown ... ok [INFO] [stdout] test output::markdown::tests::should_only_list_used_comment_types_in_legend ... ok [INFO] [stdout] test config::tests::should_warn_and_ignore_invalid_comment_type_color ... ok [INFO] [stdout] test persistence::storage::tests::should_generate_correct_filename ... ok [INFO] [stdout] test persistence::storage::tests::should_disambiguate_repos_with_same_folder_name ... ok [INFO] [stdout] test persistence::storage::tests::should_generate_filename_for_staged_unstaged ... ok [INFO] [stdout] test persistence::storage::tests::should_fallback_to_legacy_session_when_no_branch_session_exists ... ok [INFO] [stdout] test config::tests::should_warn_and_ignore_theme_with_invalid_type ... ok [INFO] [stdout] test config::tests::should_parse_comment_types_from_array_of_objects ... ok [INFO] [stdout] test config::tests::should_warn_and_ignore_invalid_comment_type_entries ... ok [INFO] [stdout] test config::tests::should_warn_and_ignore_theme_dark_with_invalid_type ... ok [INFO] [stdout] test persistence::storage::tests::should_ignore_sessions_with_different_diff_source ... ok [INFO] [stdout] test persistence::storage::tests::should_load_session_with_hex_like_branch_segment ... ok [INFO] [stdout] test persistence::storage::tests::should_load_session_with_underscore_branch_name ... ok [INFO] [stdout] test persistence::storage::tests::should_match_branch_even_when_head_commit_differs ... ok [INFO] [stdout] test persistence::storage::tests::should_prefer_branch_match_over_legacy_candidate ... ok [INFO] [stdout] test persistence::storage::tests::should_require_commit_match_in_detached_head ... ok [INFO] [stdout] test persistence::storage::tests::should_not_select_legacy_session_when_head_commit_differs ... ok [INFO] [stdout] test persistence::storage::tests::should_roundtrip_commit_range_session ... ok [INFO] [stdout] test persistence::storage::tests::should_sanitize_branch_name_in_filename ... ok [INFO] [stdout] test persistence::storage::tests::should_require_commit_range_order_match ... ok [INFO] [stdout] test persistence::storage::tests::should_select_latest_session_for_branch ... ok [INFO] [stdout] test persistence::storage::tests::should_roundtrip_session ... ok [INFO] [stdout] test persistence::storage::tests::should_skip_commit_sessions_without_range_match ... ok [INFO] [stdout] test syntax::tests::should_not_use_weak_fallback_mappings ... ok [INFO] [stdout] test syntax::tests::should_keep_file_highlighting_when_one_line_fails ... ok [INFO] [stdout] test syntax::tests::should_preserve_empty_line_highlight_results ... ok [INFO] [stdout] test syntax::tests::split_diff_lines_for_highlighting_should_build_old_and_new_sequences ... ok [INFO] [stdout] test text_edit::tests::should_delete_emoji ... ok [INFO] [stdout] test text_edit::tests::should_delete_ascii_char ... ok [INFO] [stdout] test text_edit::tests::should_delete_multibyte_char ... ok [INFO] [stdout] test text_edit::tests::should_delete_multibyte_word ... ok [INFO] [stdout] test persistence::storage::tests::should_match_commit_range_session ... ok [INFO] [stdout] test text_edit::tests::should_delete_multibyte_char_from_middle ... ok [INFO] [stdout] test text_edit::tests::should_find_next_boundary_for_emoji ... ok [INFO] [stdout] test text_edit::tests::should_find_next_boundary_for_ascii ... ok [INFO] [stdout] test text_edit::tests::should_find_next_boundary_for_multibyte_char ... ok [INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_ascii ... ok [INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_emoji ... ok [INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_mixed_content ... ok [INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_multibyte_char ... ok [INFO] [stdout] test text_edit::tests::should_navigate_multibyte_string_correctly ... ok [INFO] [stdout] test text_edit::tests::should_not_delete_when_at_start ... ok [INFO] [stdout] test text_edit::tests::should_not_delete_word_when_at_start ... ok [INFO] [stdout] test text_edit::tests::should_return_len_when_at_end ... ok [INFO] [stdout] test text_edit::tests::should_return_zero_when_at_start ... ok [INFO] [stdout] test text_edit::tests::should_handle_insert_delete_roundtrip ... ok [INFO] [stdout] test theme::tests::should_blend_midpoint_with_integer_rounding ... ok [INFO] [stdout] test theme::tests::should_blend_to_accent_at_hundred_percent ... ok [INFO] [stdout] test text_edit::tests::should_skip_trailing_whitespace_when_deleting_word ... ok [INFO] [stdout] test theme::tests::should_blend_to_base_at_zero_percent ... ok [INFO] [stdout] test theme::tests::should_deepen_fg_dim_for_nord_light_high_contrast ... ok [INFO] [stdout] test theme::tests::should_default_to_system_appearance_when_not_set ... ok [INFO] [stdout] test theme::tests::should_default_working_tree_to_false ... ok [INFO] [stdout] test theme::tests::should_default_path_filter_to_none ... ok [INFO] [stdout] test theme::tests::should_boost_fg_primary_for_nord_dark_high_contrast ... ok [INFO] [stdout] test theme::tests::should_error_for_invalid_theme_in_equals_arg ... ok [INFO] [stdout] test theme::tests::should_error_for_invalid_appearance ... ok [INFO] [stdout] test model::comment::tests::comment_tests::new_creates_comment_without_line_range ... ok [INFO] [stdout] test text_edit::tests::should_delete_ascii_word ... ok [INFO] [stdout] test theme::tests::should_error_when_theme_value_missing ... ok [INFO] [stdout] test theme::tests::should_error_for_invalid_theme_in_separate_arg ... ok [INFO] [stdout] test theme::tests::should_error_when_path_equals_empty ... ok [INFO] [stdout] test theme::tests::should_fallback_to_appearance_when_no_theme_is_set ... ok [INFO] [stdout] test theme::tests::should_ignore_appearance_when_only_dark_variant_configured ... ok [INFO] [stdout] test theme::tests::should_leave_theme_none_when_not_provided ... ok [INFO] [stdout] test theme::tests::should_parse_appearance_when_provided ... ok [INFO] [stdout] test theme::tests::should_parse_ayu_light_theme ... ok [INFO] [stdout] test theme::tests::should_parse_catppuccin_themes ... ok [INFO] [stdout] test theme::tests::should_parse_gruvbox_themes ... ok [INFO] [stdout] test theme::tests::should_parse_onedark_theme ... ok [INFO] [stdout] test theme::tests::should_parse_path_equals_syntax ... ok [INFO] [stdout] test theme::tests::should_parse_path_long_flag ... ok [INFO] [stdout] test theme::tests::should_parse_path_with_revisions ... ok [INFO] [stdout] test theme::tests::should_have_unique_theme_names_and_variants ... ok [INFO] [stdout] test theme::tests::should_error_when_path_value_missing ... ok [INFO] [stdout] test theme::tests::should_fallback_to_appearance_and_warn_for_invalid_config_theme ... ok [INFO] [stdout] test theme::tests::should_parse_working_tree_long_flag ... ok [INFO] [stdout] test theme::tests::should_parse_theme_when_provided ... ok [INFO] [stdout] test theme::tests::should_parse_working_tree_with_revisions ... ok [INFO] [stdout] test theme::tests::should_parse_path_short_flag ... ok [INFO] [stdout] test theme::tests::should_parse_path_with_working_tree ... ok [INFO] [stdout] test theme::tests::should_parse_working_tree_short_flag ... ok [INFO] [stdout] test theme::tests::should_resolve_ayu_light_to_onehalf_light_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_resolve_catppuccin_mocha_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_resolve_gruvbox_light_to_light_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_resolve_nord_dark_high_contrast_to_nord_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_resolve_nord_light_high_contrast_to_ocean_light_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_resolve_onedark_to_onehalf_dark_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_resolve_nord_light_to_ocean_light_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_resolve_nord_dark_to_nord_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_return_accent_for_non_rgb_blend_inputs ... ok [INFO] [stdout] test theme::tests::should_resolve_gruvbox_dark_to_dark_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_roundtrip_all_canonical_theme_values ... ok [INFO] [stdout] test theme::tests::should_select_variant_theme_by_appearance_when_both_variants_configured ... ok [INFO] [stdout] test theme::tests::should_use_appearance_when_theme_is_not_set ... ok [INFO] [stdout] test theme::tests::should_use_cli_theme_over_config_theme ... ok [INFO] [stdout] test theme::tests::should_use_catppuccin_theme_from_config_when_cli_missing ... ok [INFO] [stdout] test theme::tests::should_resolve_catppuccin_latte_syntect_theme ... ok [INFO] [stdout] test theme::tests::should_use_config_theme_when_cli_missing ... ok [INFO] [stdout] test theme::tests::should_use_fg1_for_nord_light_mode_foreground ... ok [INFO] [stdout] test theme::tests::should_use_dark_flavor_base_for_catppuccin_mode_foreground ... ok [INFO] [stdout] test theme::tests::should_use_light_flavor_crust_for_catppuccin_mode_foreground ... ok [INFO] [stdout] test tuicrignore::tests::filters_matching_files ... ok [INFO] [stdout] test tuicrignore::tests::gitignore_alone_filters_without_tuicrignore ... ok [INFO] [stdout] test tuicrignore::tests::handles_deleted_file_paths ... ok [INFO] [stdout] test tuicrignore::tests::keeps_all_files_when_tuicrignore_is_missing ... ok [INFO] [stdout] test ui::app_layout::tests::should_handle_box_partially_below_viewport ... ok [INFO] [stdout] test ui::app_layout::tests::should_handle_string_of_only_multibyte_chars ... ok [INFO] [stdout] test ui::app_layout::tests::should_not_scroll_past_end_of_content ... ok [INFO] [stdout] test ui::app_layout::tests::should_not_scroll_when_comment_box_already_visible ... ok [INFO] [stdout] test ui::app_layout::tests::should_not_scroll_when_no_comment_box ... ok [INFO] [stdout] test tuicrignore::tests::tuicrignore_overrides_gitignore ... ok [INFO] [stdout] test theme::tests::should_use_dark_bg_for_nord_dark_mode_foreground ... ok [INFO] [stdout] test tuicrignore::tests::respects_gitignore ... ok [INFO] [stdout] test tuicrignore::tests::supports_unignore_rules ... ok [INFO] [stdout] test ui::app_layout::tests::should_scroll_down_when_comment_box_below_viewport ... ok [INFO] [stdout] test ui::app_layout::tests::should_truncate_ascii_string_with_ellipsis ... ok [INFO] [stdout] test ui::app_layout::tests::should_return_string_unchanged_when_within_max_len ... ok [INFO] [stdout] test ui::app_layout::tests::should_scroll_to_cursor_when_box_taller_than_viewport ... ok [INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_at_start_for_empty_buffer ... ok [INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_at_end_of_text ... ok [INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_for_ascii_text ... ok [INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_for_multibyte_text ... ok [INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_on_second_line ... ok [INFO] [stdout] test ui::status_bar::tests::should_return_empty_span_when_message_is_none ... ok [INFO] [stdout] test ui::status_bar::tests::should_style_error_message_using_theme_fields ... ok [INFO] [stdout] test ui::status_bar::tests::should_style_info_message_using_theme_fields ... ok [INFO] [stdout] test ui::status_bar::tests::should_style_warning_message_using_theme_fields ... ok [INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_for_mixed_content ... ok [INFO] [stdout] test update::tests::test_ahead_of_release_detection ... ok [INFO] [stdout] test update::tests::test_is_newer_version ... ok [INFO] [stdout] test ui::app_layout::tests::should_scroll_up_when_comment_box_above_viewport ... ok [INFO] [stdout] test ui::app_layout::tests::should_truncate_without_panicking_on_multibyte_chars ... ok [INFO] [stdout] test syntax::tests::should_find_syntax_for_fallback_filenames ... ok [INFO] [stdout] test syntax::tests::highlighted_spans_should_have_color ... ok [INFO] [stdout] test syntax::tests::should_detect_syntax_from_shebang_when_extensionless ... ok [INFO] [stdout] test syntax::tests::highlighted_line_for_diff_with_background_should_handle_none_per_line ... ok [INFO] [stdout] test syntax::tests::highlighted_line_for_diff_with_background_should_apply_background_on_success ... ok [INFO] [stdout] test syntax::tests::should_find_syntax_for_typescript ... ok [INFO] [stdout] test syntax::tests::should_find_syntax_for_build_filename_token ... ok [INFO] [stdout] test syntax::tests::should_find_syntax_for_uppercase_extension ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_copied_file_without_content_changes ... ok [INFO] [stdout] test syntax::tests::should_find_syntax_for_fallback_extensions ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_expand_tabs_to_spaces_in_hunk_lines ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_deleted_file ... ok [INFO] [stdout] test syntax::tests::should_highlight_each_line_independently ... ok [INFO] [stdout] test syntax::tests::should_not_include_trailing_newline_in_highlighted_spans ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_binary_file ... ok [INFO] [stdout] test ui::app_layout::tests::should_pad_highlighted_spans_to_exact_width ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_copied_file_with_content_changes ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_handle_no_newline_marker ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_new_file ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_line_numbers_correctly ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_multiple_hunks ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_binary_file_added ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_calculate_line_numbers ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_renamed_file_without_content_changes ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_expand_tabs_to_spaces_in_hunk_lines ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_binary_file_deleted ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_empty_new_file ... ok [INFO] [stdout] test vcs::diff_parser::tests::should_parse_hunk_header ... ok [INFO] [stdout] test vcs::diff_parser::tests::should_parse_hunk_header_without_count ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_simple_diff ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_renamed_file ... ok [INFO] [stdout] test vcs::diff_parser::tests::should_parse_range_without_comma ... ok [INFO] [stdout] test vcs::diff_parser::tests::should_reject_invalid_hunk_header ... ok [INFO] [stdout] test vcs::git::context::tests::should_calculate_gap_before_first_hunk ... ok [INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_multiple_files ... ok [INFO] [stdout] test vcs::git::context::tests::should_calculate_gap_between_hunks ... ok [INFO] [stdout] test vcs::git::context::tests::should_handle_overlapping_hunks ... ok [INFO] [stdout] test vcs::git::context::tests::should_return_zero_for_adjacent_hunks ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_copied_file_without_content_changes ... ok [INFO] [stdout] test vcs::diff_parser::tests::should_parse_range_with_comma ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_copied_file_with_content_changes ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_binary_file_added ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_copied_file ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_discover ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_fetch_context_lines ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_get_commit_range_diff ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_get_recent_commits ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_renamed_file_without_content_changes ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_working_tree_diff ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_binary_file_added ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_binary_file_deleted ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_bookmark_on_ancestor_revision ... ok [INFO] [stdout] test vcs::diff_parser::tests::should_handle_invalid_range ... ok [INFO] [stdout] test vcs::hg::tests::test_hg_binary_file_deleted ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_discover ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_bookmark_on_current_revision ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_fetch_context_lines ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_get_commit_range_diff ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_get_recent_commits ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_no_bookmarks ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_renamed_file_without_content_changes ... ok [INFO] [stdout] test vcs::tests::exports_are_accessible ... ok [INFO] [stdout] test vcs::traits::tests::commit_info_clone ... ok [INFO] [stdout] test vcs::traits::tests::vcs_info_clone ... ok [INFO] [stdout] test vcs::traits::tests::vcs_info_without_branch ... ok [INFO] [stdout] test vcs::tests::detect_vcs_outside_repo_returns_error ... ok [INFO] [stdout] test vcs::traits::tests::vcs_type_display_jujutsu ... ok [INFO] [stdout] test vcs::traits::tests::vcs_type_display_mercurial ... ok [INFO] [stdout] test vcs::traits::tests::vcs_type_equality ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_deleted_file ... ok [INFO] [stdout] test vcs::traits::tests::vcs_type_display_git ... ok [INFO] [stdout] test vcs::jj::tests::test_jj_working_tree_diff ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_keep_highlighting_for_interleaved_typescript_hunk ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_binary_file_modified ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_multiple_files ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_renamed_file_without_content_changes ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_renamed_file_with_content_changes ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_new_file ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_mode_only_change ... ok [INFO] [stdout] test vcs::git::diff::tests::should_return_no_changes_for_clean_repo ... ok [INFO] [stdout] test vcs::git::diff::tests::should_expand_tabs_to_spaces_in_git_hunks ... ok [INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_simple_diff ... ok [INFO] [stdout] test vcs::git::diff::tests::should_separate_staged_and_unstaged_diffs ... ok [INFO] [stdout] test vcs::diff_parser::tests::should_return_no_changes_for_empty_diff ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 348 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.33s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "e4d2e4b9a5d7fd02176c830d621ffc167ea01ba31ce4832ed1f3f5aeb886e5e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e4d2e4b9a5d7fd02176c830d621ffc167ea01ba31ce4832ed1f3f5aeb886e5e3", kill_on_drop: false }` [INFO] [stdout] e4d2e4b9a5d7fd02176c830d621ffc167ea01ba31ce4832ed1f3f5aeb886e5e3