[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 beta-2026-04-21 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fagavra%2Ftuicr" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/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-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/agavra/tuicr on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b3ea538e6a09513a1c1a18b0b57d95a4ac2dc80e84e42b3a8bb739bd724d6af3
[INFO] running `Command { std: "docker" "start" "-a" "b3ea538e6a09513a1c1a18b0b57d95a4ac2dc80e84e42b3a8bb739bd724d6af3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b3ea538e6a09513a1c1a18b0b57d95a4ac2dc80e84e42b3a8bb739bd724d6af3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b3ea538e6a09513a1c1a18b0b57d95a4ac2dc80e84e42b3a8bb739bd724d6af3", kill_on_drop: false }`
[INFO] [stdout] b3ea538e6a09513a1c1a18b0b57d95a4ac2dc80e84e42b3a8bb739bd724d6af3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 05d120ab009ce0be5dc8029ba332c0709655d1306b0c00744a2c83314d31ad73
[INFO] running `Command { std: "docker" "start" "-a" "05d120ab009ce0be5dc8029ba332c0709655d1306b0c00744a2c83314d31ad73", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling wayland-client v0.31.14
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling wayland-scanner v0.31.10
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling wayland-backend v0.3.15
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling libz-sys v1.1.28
[INFO] [stderr]    Compiling onig_sys v69.9.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling wayland-protocols v0.32.12
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling libgit2-sys v0.18.3+1.9.2
[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 quick-xml v0.38.4
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling pxfm v0.1.28
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling plist v1.8.0
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling onig v6.5.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rustls-webpki v0.103.11
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling wayland-protocols-wlr v0.3.12
[INFO] [stderr]    Compiling tree_magic_mini v3.2.2
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling fancy-regex v0.16.2
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling os_pipe v1.2.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling syntect v5.3.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling wl-clipboard-rs v0.9.3
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling uuid v1.23.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling two-face v0.5.1
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling git2 v0.20.4
[INFO] [stderr]    Compiling tuicr v0.10.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 57s
[INFO] running `Command { std: "docker" "inspect" "05d120ab009ce0be5dc8029ba332c0709655d1306b0c00744a2c83314d31ad73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05d120ab009ce0be5dc8029ba332c0709655d1306b0c00744a2c83314d31ad73", kill_on_drop: false }`
[INFO] [stdout] 05d120ab009ce0be5dc8029ba332c0709655d1306b0c00744a2c83314d31ad73
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 91e7739c07d13d63c70077f68c8d5d97b552a18429b8c6272b48c4dd5aa27110
[INFO] running `Command { std: "docker" "start" "-a" "91e7739c07d13d63c70077f68c8d5d97b552a18429b8c6272b48c4dd5aa27110", kill_on_drop: false }`
[INFO] [stderr]    Compiling fastrand v2.4.1
[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 9.78s
[INFO] running `Command { std: "docker" "inspect" "91e7739c07d13d63c70077f68c8d5d97b552a18429b8c6272b48c4dd5aa27110", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91e7739c07d13d63c70077f68c8d5d97b552a18429b8c6272b48c4dd5aa27110", kill_on_drop: false }`
[INFO] [stdout] 91e7739c07d13d63c70077f68c8d5d97b552a18429b8c6272b48c4dd5aa27110
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3e22c74f8452154a03de2f2e42e692b5e3dcdeadf17507e7bc2019fb70780582
[INFO] running `Command { std: "docker" "start" "-a" "3e22c74f8452154a03de2f2e42e692b5e3dcdeadf17507e7bc2019fb70780582", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tuicr-0328556b5bb0a1da)
[INFO] [stdout] 
[INFO] [stdout] running 348 tests
[INFO] [stdout] test app::commit_selection_tests::special_commit_count_counts_leading_special_entries ... 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_gap_in_correct_file_not_adjacent_file ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_small_gap_fully_even_with_large_limit ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_down_from_upper_hunk ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_up_from_lower_hunk ... ok
[INFO] [stdout] test app::expand_gap_tests::should_expand_up_from_first_hunk ... ok
[INFO] [stdout] test app::expand_gap_tests::should_not_show_expander_when_fully_expanded ... 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_prepend_on_subsequent_up_expand ... ok
[INFO] [stdout] test app::expand_gap_tests::should_noop_when_already_fully_expanded ... 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_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_handle_mixed_diff_and_sbs_lines ... 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::find_source_line_tests::should_return_not_found_when_only_non_line_annotations ... ok
[INFO] [stdout] test app::commit_selection_tests::special_commit_count_ignores_non_leading_special_entries ... 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::expand_gap_tests::should_append_on_subsequent_down_expand ... ok
[INFO] [stdout] test config::tests::should_ignore_empty_xdg_config_home ... ok
[INFO] [stdout] test config::tests::should_fallback_to_home_dot_config_when_xdg_unset ... 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_cap_at_gap_boundaries ... ok
[INFO] [stdout] test config::tests::should_default_export_legend_to_none ... ok
[INFO] [stdout] test config::tests::should_error_on_invalid_toml ... ok
[INFO] [stdout] test config::tests::should_load_theme_variants_and_appearance_from_valid_toml ... ok
[INFO] [stdout] test config::tests::should_parse_empty_config_as_defaults ... ok
[INFO] [stdout] test config::tests::should_parse_show_file_list_false ... ok
[INFO] [stdout] test config::tests::should_parse_wrap_false ... ok
[INFO] [stdout] test config::tests::should_parse_comment_types_from_array_of_objects ... ok
[INFO] [stdout] test config::tests::should_parse_wrap_true ... ok
[INFO] [stdout] test config::tests::should_parse_diff_view_side_by_side ... ok
[INFO] [stdout] test config::tests::should_parse_diff_view_unified ... ok
[INFO] [stdout] test app::expand_gap_tests::should_show_merged_expander_for_small_between_hunk_gap ... ok
[INFO] [stdout] test config::tests::should_load_theme_from_valid_toml ... ok
[INFO] [stdout] test config::tests::should_return_none_when_config_file_missing ... ok
[INFO] [stdout] test config::tests::should_use_xdg_config_home_when_set ... ok
[INFO] [stdout] test config::tests::should_parse_export_legend_false ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_diff_view_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_theme_dark_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_diff_view_with_invalid_value ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_theme_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_show_file_list_with_invalid_type ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_wrap_with_invalid_type ... ok
[INFO] [stdout] test hash::tests::should_produce_deterministic_hash ... ok
[INFO] [stdout] test hash::tests::should_produce_different_hashes_for_different_inputs ... ok
[INFO] [stdout] test config::tests::should_warn_on_unknown_keys_and_keep_known_values ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_invalid_comment_type_color ... ok
[INFO] [stdout] test config::tests::should_warn_on_unknown_keys_only_and_use_defaults ... ok
[INFO] [stdout] test hash::tests::should_handle_empty_input ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_backtab_to_reverse_comment_type_in_comment_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_uppercase_g_to_go_to_bottom_in_normal_mode ... ok
[INFO] [stdout] test config::tests::should_warn_and_ignore_invalid_comment_type_entries ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_digit_keys_to_digit_action_in_normal_mode ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_type_deserializes_custom_type_from_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_search_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_backtab_to_reverse_focus_in_normal_mode ... ok
[INFO] [stdout] test input::keybindings::tests::should_not_map_digits_in_command_mode ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_type_serializes_custom_type_as_string ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_with_line_range_serializes_correctly ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_with_line_range_deserializes_correctly ... ok
[INFO] [stdout] test input::keybindings::tests::should_map_lowercase_g_to_go_to_top_in_normal_mode ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::comment_without_line_range_deserializes_with_none ... ok
[INFO] [stdout] test model::comment::tests::comment_tests::new_creates_comment_without_line_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::is_single_returns_false_for_multi_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::is_single_returns_true_for_single_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::contains_returns_false_for_line_after_range ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::line_range_deserializes_correctly ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::line_range_serializes_correctly ... 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_both_comments_and_reviewed_status ... ok
[INFO] [stdout] test model::review::tests::should_clear_file_and_line_comments ... ok
[INFO] [stdout] test model::review::tests::should_keep_reviewed_when_hash_unchanged ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::new_creates_range_with_correct_bounds ... ok
[INFO] [stdout] test model::review::tests::should_reset_reviewed_when_hash_changes ... ok
[INFO] [stdout] test model::review::tests::should_clear_review_level_comments ... ok
[INFO] [stdout] test model::comment::tests::line_range_tests::new_normalizes_reversed_bounds ... ok
[INFO] [stdout] test model::review::tests::should_only_count_reviewed_files_as_unreviewed ... ok
[INFO] [stdout] test model::review::tests::should_reset_reviewed_status_on_all_files ... 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_update_hash_even_when_not_reviewed ... ok
[INFO] [stdout] test model::review::tests::should_reset_reviewed_when_legacy_session_has_no_hash ... ok
[INFO] [stdout] test model::review::tests::should_return_zero_when_clearing_empty_session ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_empty_string_in_osc52 ... ok
[INFO] [stdout] test model::review::tests::should_store_content_hash_on_new_file ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_markdown_content_in_osc52 ... ok
[INFO] [stdout] test output::markdown::tests::should_encode_unicode_in_osc52 ... ok
[INFO] [stdout] test output::markdown::tests::should_fail_export_when_no_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_export_single_line_range_as_single_line ... ok
[INFO] [stdout] test output::markdown::tests::should_export_old_side_line_range_with_tilde ... ok
[INFO] [stdout] test output::markdown::tests::should_export_line_range_with_start_and_end ... ok
[INFO] [stdout] test output::markdown::tests::should_fail_generate_export_content_when_no_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_export_single_old_side_line_with_tilde ... ok
[INFO] [stdout] test output::markdown::tests::should_generate_export_content_with_comments ... ok
[INFO] [stdout] test output::markdown::tests::should_handle_comment_without_line_range_field ... 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_include_commit_range_scope_for_review_comments ... 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_omit_legend_when_show_legend_is_false ... ok
[INFO] [stdout] test output::markdown::tests::should_use_configured_label_and_definition_in_export ... ok
[INFO] [stdout] test output::markdown::tests::should_only_list_used_comment_types_in_legend ... ok
[INFO] [stdout] test output::markdown::tests::should_number_comments_sequentially ... ok
[INFO] [stdout] test output::markdown::tests::should_write_osc52_escape_sequence ... ok
[INFO] [stdout] test output::markdown::tests::should_only_list_used_custom_types_in_legend ... ok
[INFO] [stdout] test persistence::storage::tests::should_generate_filename_for_staged_unstaged ... 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_ignore_sessions_with_different_diff_source ... ok
[INFO] [stdout] test persistence::storage::tests::should_fallback_to_legacy_session_when_no_branch_session_exists ... ok
[INFO] [stdout] test persistence::storage::tests::should_prefer_branch_match_over_legacy_candidate ... ok
[INFO] [stdout] test persistence::storage::tests::should_match_branch_even_when_head_commit_differs ... ok
[INFO] [stdout] test persistence::storage::tests::should_load_session_with_hex_like_branch_segment ... ok
[INFO] [stdout] test persistence::storage::tests::should_match_commit_range_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_not_select_legacy_session_when_head_commit_differs ... ok
[INFO] [stdout] test persistence::storage::tests::should_sanitize_branch_name_in_filename ... ok
[INFO] [stdout] test persistence::storage::tests::should_require_commit_match_in_detached_head ... ok
[INFO] [stdout] test persistence::storage::tests::should_require_commit_range_order_match ... ok
[INFO] [stdout] test persistence::storage::tests::should_roundtrip_commit_range_session ... ok
[INFO] [stdout] test persistence::storage::tests::should_load_session_with_underscore_branch_name ... ok
[INFO] [stdout] test persistence::storage::tests::should_select_latest_session_for_branch ... ok
[INFO] [stdout] test persistence::storage::tests::should_skip_commit_sessions_without_range_match ... ok
[INFO] [stdout] test persistence::storage::tests::should_roundtrip_session ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_fallback_filenames ... 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_keep_file_highlighting_when_one_line_fails ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_build_filename_token ... ok
[INFO] [stdout] test syntax::tests::should_not_use_weak_fallback_mappings ... 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 syntax::tests::should_find_syntax_for_typescript ... ok
[INFO] [stdout] test text_edit::tests::should_delete_ascii_char ... ok
[INFO] [stdout] test text_edit::tests::should_delete_ascii_word ... ok
[INFO] [stdout] test text_edit::tests::should_delete_emoji ... ok
[INFO] [stdout] test text_edit::tests::should_delete_multibyte_char_from_middle ... ok
[INFO] [stdout] test text_edit::tests::should_delete_multibyte_word ... 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_emoji ... 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 syntax::tests::highlighted_spans_should_have_color ... ok
[INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_multibyte_char ... ok
[INFO] [stdout] test text_edit::tests::should_handle_insert_delete_roundtrip ... 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 syntax::tests::should_find_syntax_for_fallback_extensions ... 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_not_delete_word_when_at_start ... ok
[INFO] [stdout] test text_edit::tests::should_skip_trailing_whitespace_when_deleting_word ... ok
[INFO] [stdout] test theme::tests::should_blend_to_accent_at_hundred_percent ... ok
[INFO] [stdout] test text_edit::tests::should_delete_multibyte_char ... ok
[INFO] [stdout] test text_edit::tests::should_find_prev_boundary_for_mixed_content ... ok
[INFO] [stdout] test theme::tests::should_blend_midpoint_with_integer_rounding ... ok
[INFO] [stdout] test theme::tests::should_blend_to_base_at_zero_percent ... ok
[INFO] [stdout] test theme::tests::should_default_path_filter_to_none ... ok
[INFO] [stdout] test theme::tests::should_default_working_tree_to_false ... 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 theme::tests::should_default_to_system_appearance_when_not_set ... ok
[INFO] [stdout] test theme::tests::should_error_when_path_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_theme_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_deepen_fg_dim_for_nord_light_high_contrast ... 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_have_unique_theme_names_and_variants ... 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_short_flag ... ok
[INFO] [stdout] test theme::tests::should_parse_path_with_revisions ... ok
[INFO] [stdout] test theme::tests::should_parse_path_with_working_tree ... ok
[INFO] [stdout] test theme::tests::should_parse_working_tree_long_flag ... ok
[INFO] [stdout] test theme::tests::should_parse_working_tree_short_flag ... ok
[INFO] [stdout] test theme::tests::should_parse_working_tree_with_revisions ... ok
[INFO] [stdout] test theme::tests::should_resolve_ayu_light_to_onehalf_light_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_catppuccin_latte_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_catppuccin_mocha_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_resolve_gruvbox_dark_to_dark_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_dark_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_error_when_path_equals_empty ... ok
[INFO] [stdout] test theme::tests::should_resolve_nord_light_to_ocean_light_syntect_theme ... ok
[INFO] [stdout] test theme::tests::should_return_accent_for_non_rgb_blend_inputs ... 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_catppuccin_theme_from_config_when_cli_missing ... ok
[INFO] [stdout] test theme::tests::should_use_cli_theme_over_config_theme ... ok
[INFO] [stdout] test theme::tests::should_use_config_theme_when_cli_missing ... ok
[INFO] [stdout] test theme::tests::should_use_dark_bg_for_nord_dark_mode_foreground ... ok
[INFO] [stdout] test theme::tests::should_use_dark_flavor_base_for_catppuccin_mode_foreground ... ok
[INFO] [stdout] test theme::tests::should_parse_theme_when_provided ... ok
[INFO] [stdout] test tuicrignore::tests::filters_matching_files ... ok
[INFO] [stdout] test theme::tests::should_resolve_onedark_to_onehalf_dark_syntect_theme ... ok
[INFO] [stdout] test tuicrignore::tests::handles_deleted_file_paths ... ok
[INFO] [stdout] test theme::tests::should_use_fg1_for_nord_light_mode_foreground ... ok
[INFO] [stdout] test theme::tests::should_use_light_flavor_crust_for_catppuccin_mode_foreground ... ok
[INFO] [stdout] test tuicrignore::tests::gitignore_alone_filters_without_tuicrignore ... ok
[INFO] [stdout] test tuicrignore::tests::keeps_all_files_when_tuicrignore_is_missing ... ok
[INFO] [stdout] test tuicrignore::tests::respects_gitignore ... 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::supports_unignore_rules ... 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_down_when_comment_box_below_viewport ... ok
[INFO] [stdout] test ui::app_layout::tests::should_scroll_to_cursor_when_box_taller_than_viewport ... 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_ascii_string_with_ellipsis ... ok
[INFO] [stdout] test ui::app_layout::tests::should_truncate_without_panicking_on_multibyte_chars ... ok
[INFO] [stdout] test ui::app_layout::tests::should_handle_box_partially_below_viewport ... ok
[INFO] [stdout] test tuicrignore::tests::tuicrignore_overrides_gitignore ... 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_mixed_content ... 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::status_bar::tests::should_return_empty_span_when_message_is_none ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_position_on_second_line ... 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 update::tests::test_ahead_of_release_detection ... ok
[INFO] [stdout] test update::tests::test_is_newer_version ... ok
[INFO] [stdout] test ui::comment_panel::tests::should_return_cursor_at_start_for_empty_buffer ... ok
[INFO] [stdout] test syntax::tests::should_detect_syntax_from_shebang_when_extensionless ... ok
[INFO] [stdout] test syntax::tests::should_find_syntax_for_uppercase_extension ... 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_expand_tabs_to_spaces_in_hunk_lines ... 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_copied_file_with_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_copied_file_without_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_deleted_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_files ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_multiple_hunks ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_new_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_renamed_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::hg_should_parse_simple_diff ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_calculate_line_numbers ... 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_added ... 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_binary_file_modified ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_copied_file_with_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_copied_file_without_content_changes ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_deleted_file ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_keep_highlighting_for_interleaved_typescript_hunk ... ok
[INFO] [stdout] test vcs::diff_parser::tests::should_handle_invalid_range ... 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::should_parse_range_with_comma ... 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::diff_parser::tests::jj_should_parse_empty_new_file ... ok
[INFO] [stdout] test vcs::git::context::tests::should_calculate_gap_before_first_hunk ... 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_mode_only_change ... 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_multiple_files ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_new_file ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_binary_file_added ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_binary_file_deleted ... 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_get_commit_range_diff ... ok
[INFO] [stdout] test vcs::hg::tests::test_hg_fetch_context_lines ... 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::diff_parser::tests::jj_should_parse_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_binary_file_deleted ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_binary_file_added ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_bookmark_on_ancestor_revision ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_discover ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_get_commit_range_diff ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_fetch_context_lines ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_no_bookmarks ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_get_recent_commits ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_renamed_file_without_content_changes ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_bookmark_on_current_revision ... ok
[INFO] [stdout] test vcs::jj::tests::test_jj_working_tree_diff ... 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_type_display_git ... 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::tests::detect_vcs_outside_repo_returns_error ... ok
[INFO] [stdout] test vcs::traits::tests::vcs_info_without_branch ... ok
[INFO] [stdout] test vcs::diff_parser::tests::jj_should_parse_simple_diff ... 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::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 5.15s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3e22c74f8452154a03de2f2e42e692b5e3dcdeadf17507e7bc2019fb70780582", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3e22c74f8452154a03de2f2e42e692b5e3dcdeadf17507e7bc2019fb70780582", kill_on_drop: false }`
[INFO] [stdout] 3e22c74f8452154a03de2f2e42e692b5e3dcdeadf17507e7bc2019fb70780582
