[INFO] fetching crate kopitiam-neovim 0.4.1...
[INFO] testing kopitiam-neovim-0.4.1 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-3
[INFO] extracting crate kopitiam-neovim 0.4.1 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate kopitiam-neovim 0.4.1
[INFO] finished tweaking crates.io crate kopitiam-neovim 0.4.1
[INFO] tweaked toml for crates.io crate kopitiam-neovim 0.4.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate kopitiam-neovim 0.4.1 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate kopitiam-neovim 0.4.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vte v0.11.1
[INFO] [stderr]   Downloaded vte_generate_state_changes v0.1.2
[INFO] [stderr]   Downloaded vt100 v0.15.2
[INFO] [stderr]   Downloaded str_indices v0.4.4
[INFO] [stderr]   Downloaded ropey v1.6.1
[INFO] [stderr]   Downloaded regex v1.13.0
[INFO] [stderr]   Downloaded regex-automata v0.4.15
[INFO] [stderr]   Downloaded kopitiam-snippet v0.2.5
[INFO] [stderr]   Downloaded kopitiam-syntax v0.2.5
[INFO] [stderr]   Downloaded nucleo v0.5.0
[INFO] [stderr]   Downloaded compact_str v0.8.2
[INFO] [stderr]   Downloaded anyhow v1.0.103
[INFO] [stderr]   Downloaded nucleo-matcher v0.3.1
[INFO] [stderr]   Downloaded kopitiam-semantic v0.2.6
[INFO] [stderr]   Downloaded rustdoc-types v0.60.0
[INFO] [stderr]   Downloaded uuid v1.23.5
[INFO] [stderr]   Downloaded kopitiam-ontology v0.2.5
[INFO] [stderr]   Downloaded cargo-platform v0.3.3
[INFO] [stderr]   Downloaded cargo_metadata v0.23.1
[INFO] [stderr]   Downloaded kopitiam-config v0.2.5
[INFO] [stderr]   Downloaded camino v1.2.4
[INFO] [stderr]   Downloaded ignore v0.4.28
[INFO] [stderr]   Downloaded similar v3.1.1
[INFO] [stderr]   Downloaded kopitiam-lua v0.2.5
[INFO] [stderr]   Downloaded bstr v1.12.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307
[INFO] running `Command { std: "docker" "start" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling camino v1.2.4
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling regex-automata v0.4.15
[INFO] [stderr]    Compiling cargo-platform v0.3.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling uuid v1.23.5
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling itertools v0.13.0
[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 zerofrom v0.1.8
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.2
[INFO] [stderr]    Compiling bstr v1.12.3
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling arrayvec v0.7.8
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling compact_str v0.8.2
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling rustdoc-types v0.60.0
[INFO] [stderr]    Compiling cargo_metadata v0.23.1
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling kopitiam-ontology v0.2.5
[INFO] [stderr]    Compiling vte v0.11.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling serial2 v0.2.37
[INFO] [stderr]    Compiling nucleo-matcher v0.3.1
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling similar v3.1.1
[INFO] [stderr]    Compiling str_indices v0.4.4
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling nucleo v0.5.0
[INFO] [stderr]    Compiling kopitiam-semantic v0.2.6
[INFO] [stderr]    Compiling portable-pty v0.9.0
[INFO] [stderr]    Compiling ropey v1.6.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling vt100 v0.15.2
[INFO] [stderr]    Compiling ignore v0.4.28
[INFO] [stderr]    Compiling regex v1.13.0
[INFO] [stderr]    Compiling kopitiam-config v0.2.5
[INFO] [stderr]    Compiling sysinfo v0.37.2
[INFO] [stderr]    Compiling kopitiam-syntax v0.2.5
[INFO] [stderr]    Compiling kopitiam-snippet v0.2.5
[INFO] [stderr]    Compiling kopitiam-neovim v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 4m 11s
[INFO] running `Command { std: "docker" "inspect" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling kopitiam-neovim v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 43s
[INFO] running `Command { std: "docker" "inspect" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/kopitiam_neovim-124429ee9e94d258)
[INFO] [stdout] 
[INFO] [stdout] running 927 tests
[INFO] [stdout] test config::tests::every_keymap_from_the_original_config_is_present ... ok
[INFO] [stdout] test config::tests::config_round_trips_through_json ... ok
[INFO] [stdout] test config::tests::the_three_language_servers_from_mason_ensure_installed_are_configured ... ok
[INFO] [stdout] test config::tests::with_no_config_file_at_all_kvim_is_the_maintainers_neovim ... ok
[INFO] [stdout] test core::tests::range_normalizes_a_backwards_selection ... ok
[INFO] [stdout] test config::tests::kvim_lives_under_the_shared_kopitiam_home_and_never_touches_config_nvim ... ok
[INFO] [stdout] test config::tests::defaults_reproduce_the_maintainers_settings_lua ... ok
[INFO] [stdout] test config::tests::shiftwidth_zero_follows_tabstop_like_vim ... ok
[INFO] [stdout] test config::tests::leader_is_space_and_theme_is_gruvbox ... ok
[INFO] [stdout] test editor::backspace_join_tests::backspace_at_column_zero_joins_without_eating_a_character ... ok
[INFO] [stdout] test editor::backspace_join_tests::backspace_joins_onto_an_empty_line ... ok
[INFO] [stdout] test editor::backspace_join_tests::backspace_at_buffer_start_does_nothing ... ok
[INFO] [stdout] test editor::clipboard::tests::clipboard_live_round_trip ... ignored, touches the real system clipboard
[INFO] [stdout] test core::tests::a_point_range_is_empty ... ok
[INFO] [stdout] test core::tests::visual_modes_report_themselves_as_visual ... ok
[INFO] [stdout] test editor::backspace_join_tests::backspace_mid_line_deletes_one_character ... ok
[INFO] [stdout] test core::tests::position_displays_one_based_for_humans ... ok
[INFO] [stdout] test editor::backspace_join_tests::repeated_joins_lose_nothing ... ok
[INFO] [stdout] test editor::clipboard::tests::osc52_wraps_base64_with_the_right_selection_and_terminators ... ok
[INFO] [stdout] test editor::clipboard::tests::paste_is_none_when_no_tool_is_available ... ok
[INFO] [stdout] test editor::clipboard::tests::a_bare_terminal_has_no_paste_tool ... ok
[INFO] [stdout] test editor::clipboard::tests::copy_emits_osc52_and_runs_the_platform_tool ... ok
[INFO] [stdout] test editor::clipboard::tests::base64_matches_known_vectors ... ok
[INFO] [stdout] test editor::clipboard::tests::macos_uses_pbcopy_for_both_selections ... ok
[INFO] [stdout] test editor::cmdline::tests::a_keystroke_ends_the_completion_cycle ... ok
[INFO] [stdout] test editor::clipboard::tests::wayland_selects_wl_copy_and_primary_adds_the_flag ... ok
[INFO] [stdout] test editor::clipboard::tests::termux_copies_via_osc52_and_can_read_via_the_helper ... ok
[INFO] [stdout] test editor::clipboard::tests::x11_without_wayland_selects_xclip ... ok
[INFO] [stdout] test editor::clipboard::tests::paste_reads_through_the_platform_tool ... ok
[INFO] [stdout] test editor::cmdline::tests::context_of_a_bare_word_is_name_completion ... ok
[INFO] [stdout] test editor::cmdline::tests::ctrl_r_inserts_a_register_flattening_newlines ... ok
[INFO] [stdout] test editor::cmdline::tests::ctrl_u_deletes_to_start_from_the_cursor ... ok
[INFO] [stdout] test editor::cmdline::tests::history_dedups_moving_repeat_to_newest ... ok
[INFO] [stdout] test editor::cmdline::tests::editing_ends_the_history_walk ... ok
[INFO] [stdout] test editor::cmdline::tests::backspace_and_delete_forward ... ok
[INFO] [stdout] test editor::cmdline::tests::begin_and_cycle_completion_replaces_the_token ... ok
[INFO] [stdout] test editor::cmdline::tests::context_after_a_space_is_argument_completion ... ok
[INFO] [stdout] test editor::cmdline::tests::insert_at_a_moved_cursor_lands_mid_line ... ok
[INFO] [stdout] test editor::cmdline::tests::typing_appends_and_advances_the_cursor ... ok
[INFO] [stdout] test editor::command::tests::arg_kinds_are_set_for_the_file_and_buffer_commands ... ok
[INFO] [stdout] test editor::command::tests::every_alias_resolves_to_its_group ... ok
[INFO] [stdout] test editor::command::tests::name_completion_of_empty_prefix_offers_everything ... ok
[INFO] [stdout] test editor::command::tests::name_completion_offers_matching_aliases_sorted ... ok
[INFO] [stdout] test editor::cmdline::tests::history_prefix_filter_only_matches_that_prefix ... ok
[INFO] [stdout] test editor::command::tests::no_duplicate_names_across_the_table ... ok
[INFO] [stdout] test editor::digraph::tests::reverse_order_also_resolves ... ok
[INFO] [stdout] test editor::digraph::tests::unknown_pair_is_none ... ok
[INFO] [stdout] test editor::ex::tests::copy_duplicates_lines_after_destination ... ok
[INFO] [stdout] test editor::ex::tests::inverse_global_deletes_non_matching_lines ... ok
[INFO] [stdout] test editor::ex::tests::move_relocates_lines_to_after_destination ... ok
[INFO] [stdout] test editor::cmdline::tests::history_never_stores_empty_lines ... ok
[INFO] [stdout] test editor::ex::tests::parses_buffer_management_family ... ok
[INFO] [stdout] test editor::cmdline::tests::cycle_returns_false_when_no_cycle_is_open ... ok
[INFO] [stdout] test editor::digraph::tests::common_digraphs_resolve ... ok
[INFO] [stdout] test editor::cmdline::tests::ctrl_w_deletes_a_word_including_leading_space ... ok
[INFO] [stdout] test editor::ex::tests::parses_cdo_keeping_the_whole_command ... ok
[INFO] [stdout] test editor::ex::tests::parses_delete_range_and_bare_line_number ... ok
[INFO] [stdout] test editor::ex::tests::parses_global ... ok
[INFO] [stdout] test editor::ex::tests::parses_grep_bare_and_delimited_forms ... ok
[INFO] [stdout] test editor::ex::tests::parses_earlier_and_later ... ok
[INFO] [stdout] test editor::ex::tests::parses_help_with_and_without_a_topic ... ok
[INFO] [stdout] test editor::cmdline::tests::left_right_home_end_move_within_bounds ... ok
[INFO] [stdout] test editor::cmdline::tests::prefix_filtered_history_only_cycles_matching_entries ... ok
[INFO] [stdout] test editor::cmdline::tests::up_recalls_newest_then_older_then_down_returns_to_draft ... ok
[INFO] [stdout] test editor::ex::tests::parses_shift ... ok
[INFO] [stdout] test editor::ex::tests::parses_normal_preserving_keys ... ok
[INFO] [stdout] test editor::ex::tests::parses_quickfix_navigation_and_windows ... ok
[INFO] [stdout] test editor::ex::tests::parses_substitute_with_and_without_range ... ok
[INFO] [stdout] test editor::ex::tests::parses_write_and_quit_variants ... ok
[INFO] [stdout] test editor::ex::tests::parses_shell_bang_forms ... ok
[INFO] [stdout] test editor::ex::tests::parses_sort_variants ... ok
[INFO] [stdout] test editor::ex::tests::parses_quit_all_and_write_all_variants ... ok
[INFO] [stdout] test editor::ex::tests::parses_read_shell_forms ... ok
[INFO] [stdout] test editor::ex::tests::parses_inverse_global ... ok
[INFO] [stdout] test editor::ex::tests::parses_tab_page_commands ... ok
[INFO] [stdout] test editor::ex::tests::parses_move_and_copy ... ok
[INFO] [stdout] test editor::ex::tests::sort_orders_lines_plain_reverse_unique_numeric ... ok
[INFO] [stdout] test editor::ex::tests::substitute_replaces_within_a_line_range ... ok
[INFO] [stdout] test editor::fold::tests::create_makes_a_closed_fold ... ok
[INFO] [stdout] test editor::fold::tests::delete_partly_overlapping_top_clamps_and_shifts ... ok
[INFO] [stdout] test editor::fold::tests::delete_removes_innermost ... ok
[INFO] [stdout] test editor::fold::tests::deleting_the_fold_tail_shrinks_it ... ok
[INFO] [stdout] test editor::fold::tests::deleting_the_whole_folded_range_drops_the_fold ... ok
[INFO] [stdout] test editor::fold::tests::disabled_foldenable_collapses_nothing ... ok
[INFO] [stdout] test editor::fold::tests::dropping_inner_fold_relevels_the_survivor ... ok
[INFO] [stdout] test editor::fold::tests::close_recursive_then_open_recursive ... ok
[INFO] [stdout] test editor::fold::tests::insert_at_or_below_fold_end_does_not_grow_it ... ok
[INFO] [stdout] test editor::fold::tests::edit_entirely_below_leaves_fold_alone ... ok
[INFO] [stdout] test editor::fold::tests::collapsed_hides_interior_lines_only ... ok
[INFO] [stdout] test editor::fold::tests::navigation_between_folds ... ok
[INFO] [stdout] test editor::fold::tests::insert_above_shifts_fold_down ... ok
[INFO] [stdout] test editor::fold::tests::nested_folds_survive_and_relevel_after_a_shift ... ok
[INFO] [stdout] test editor::fold::tests::levels_reflect_nesting ... ok
[INFO] [stdout] test editor::fold::tests::nested_open_close_one_level ... ok
[INFO] [stdout] test editor::fold::tests::j_over_a_closed_fold_skips_it ... ok
[INFO] [stdout] test editor::fold::tests::open_above_carries_the_fold_down_but_open_below_does_not ... ok
[INFO] [stdout] test editor::fold::tests::rows_between_counts_visible_rows ... ok
[INFO] [stdout] test editor::fold::tests::open_reveals_the_content ... ok
[INFO] [stdout] test editor::help::tests::manual_carries_the_exact_key_names ... ok
[INFO] [stdout] test editor::fold::tests::join_line_above_a_fold_slides_it_up ... ok
[INFO] [stdout] test editor::help::tests::section_line_points_at_the_heading ... ok
[INFO] [stdout] test editor::fold::tests::single_line_range_is_rejected ... ok
[INFO] [stdout] test editor::fold::tests::toggle_one_opens_or_closes ... ok
[INFO] [stdout] test editor::help::tests::manual_reads_as_singlish ... ok
[INFO] [stdout] test editor::help::tests::every_topic_is_a_jump_target ... ok
[INFO] [stdout] test editor::help::tests::resolve_matches_id_and_aliases_case_insensitively ... ok
[INFO] [stdout] test editor::key::tests::mixes_named_tokens_with_plain_chars ... ok
[INFO] [stdout] test editor::key::tests::parses_named_and_modified_tokens ... ok
[INFO] [stdout] test editor::indent::tests::wants_closer_dedent_only_on_a_whitespace_only_prefix ... ok
[INFO] [stdout] test editor::key::tests::parses_plain_characters ... ok
[INFO] [stdout] test editor::motion::tests::file_end_with_a_count_goes_to_that_line ... ok
[INFO] [stdout] test editor::motion::tests::count_multiplies_word_motions ... ok
[INFO] [stdout] test editor::motion::tests::file_end_without_a_count_goes_to_the_last_line ... ok
[INFO] [stdout] test editor::indent::tests::leading_ws_reads_spaces_and_tabs ... ok
[INFO] [stdout] test editor::indent::tests::new_line_indent_copies_then_maybe_adds_a_level ... ok
[INFO] [stdout] test editor::indent::tests::one_level_respects_expandtab ... ok
[INFO] [stdout] test editor::indent::tests::opens_block_detects_trailing_opener ... ok
[INFO] [stdout] test editor::motion::tests::sentence_forward_lands_after_a_period_and_space ... ok
[INFO] [stdout] test editor::quickfix::tests::cc_goes_to_an_explicit_one_based_entry ... ok
[INFO] [stdout] test editor::quickfix::tests::every_navigation_on_an_empty_list_errors ... ok
[INFO] [stdout] test editor::quickfix::tests::next_and_prev_walk_and_error_at_the_ends ... ok
[INFO] [stdout] test editor::quickfix::tests::select_clamps_and_shares_the_cursor_with_navigation ... ok
[INFO] [stdout] test editor::register::tests::a_big_delete_shifts_the_numbered_ring ... ok
[INFO] [stdout] test editor::motion::tests::fresh_till_lands_immediately_before_an_adjacent_target ... ok
[INFO] [stdout] test editor::motion::tests::word_end_lands_on_the_last_grapheme_of_the_word ... ok
[INFO] [stdout] test editor::register::tests::a_named_delete_leaves_the_ring_and_small_register_untouched ... ok
[INFO] [stdout] test editor::register::tests::a_small_delete_goes_to_the_dash_register_and_spares_the_ring ... ok
[INFO] [stdout] test editor::motion::tests::match_pair_finds_the_partner_bracket ... ok
[INFO] [stdout] test editor::register::tests::clipboard_and_readonly_names_are_not_owned_here ... ok
[INFO] [stdout] test editor::motion::tests::word_forward_stops_at_the_next_word_start ... ok
[INFO] [stdout] test editor::register::tests::granularity_survives_a_round_trip ... ok
[INFO] [stdout] test editor::motion::tests::word_forward_treats_punctuation_as_its_own_class ... ok
[INFO] [stdout] test editor::quickfix::tests::a_fresh_list_starts_on_the_first_entry ... ok
[INFO] [stdout] test editor::quickfix::tests::first_and_last_jump_to_the_ends ... ok
[INFO] [stdout] test editor::register::tests::a_multiline_charwise_delete_counts_as_big ... ok
[INFO] [stdout] test editor::register::tests::unnamed_mirrors_a_delete_into_a_named_register ... ok
[INFO] [stdout] test editor::register::tests::plain_yank_updates_register_zero_but_explicit_register_does_not ... ok
[INFO] [stdout] test editor::search::tests::byte_to_col_counts_graphemes_not_bytes ... ok
[INFO] [stdout] test editor::search::tests::file_under_cursor_stops_at_the_colon_of_a_file_line_reference ... ok
[INFO] [stdout] test editor::search::tests::forward_search_finds_the_next_match_after_the_cursor ... ok
[INFO] [stdout] test editor::register::tests::register_zero_is_the_last_yank_not_the_last_delete ... ok
[INFO] [stdout] test editor::search::tests::backward_search_wraps_to_the_bottom ... ok
[INFO] [stdout] test editor::search::tests::backward_search_finds_the_previous_match ... ok
[INFO] [stdout] test editor::register::tests::uppercase_register_appends ... ok
[INFO] [stdout] test editor::search::tests::line_match_cols_drops_zero_width_matches ... ok
[INFO] [stdout] test editor::search::tests::file_under_cursor_reads_a_path_like_token ... ok
[INFO] [stdout] test editor::register::tests::the_ring_falls_off_the_end_at_nine ... ok
[INFO] [stdout] test editor::search::tests::ignorecase_folds_case_only_when_set ... ok
[INFO] [stdout] test editor::search::tests::line_match_cols_counts_graphemes_not_bytes ... ok
[INFO] [stdout] test editor::search::tests::word_under_cursor_reads_the_whole_keyword ... ok
[INFO] [stdout] test editor::search::tests::word_under_cursor_scans_forward_when_off_a_word ... ok
[INFO] [stdout] test editor::search::tests::forward_search_wraps_to_the_top ... ok
[INFO] [stdout] test editor::shell::tests::strip_one_trailing_newline_removes_exactly_one ... ok
[INFO] [stdout] test editor::search::tests::line_match_cols_reports_every_match_in_grapheme_columns ... ok
[INFO] [stdout] test editor::tests::a_backwards_visual_selection_is_normalised_into_document_order ... ok
[INFO] [stdout] test editor::search::tests::match_range_selects_the_match_under_the_cursor_then_the_next ... ok
[INFO] [stdout] test editor::search::tests::match_range_backward_takes_the_previous_match ... ok
[INFO] [stdout] test editor::tests::a_change_operator_groups_the_delete_and_insert_together ... ok
[INFO] [stdout] test editor::search::tests::smartcase_stays_sensitive_once_the_pattern_has_an_uppercase ... ok
[INFO] [stdout] test editor::search::tests::word_pattern_loose_drops_the_word_boundaries ... ok
[INFO] [stdout] test editor::tests::a_count_on_put_repeats_the_register_contents ... ok
[INFO] [stdout] test editor::tests::a_mark_can_be_set_and_jumped_back_to ... ok
[INFO] [stdout] test editor::tests::a_count_indents_that_many_lines ... ok
[INFO] [stdout] test editor::tests::a_count_on_a_bracket_motion_repeats_it ... ok
[INFO] [stdout] test editor::shell::tests::shell_runner_reports_a_nonzero_exit_without_erroring ... ok
[INFO] [stdout] test editor::tests::a_confirmed_search_arms_the_hlsearch_highlight ... ok
[INFO] [stdout] test editor::tests::a_nameless_buffer_has_an_empty_percent_register ... ok
[INFO] [stdout] test editor::tests::ampersand_without_a_prior_substitution_is_a_friendly_no_op ... ok
[INFO] [stdout] test editor::tests::a_plain_put_after_a_delete_pastes_the_deleted_line ... ok
[INFO] [stdout] test editor::tests::an_insert_session_undoes_in_one_step ... ok
[INFO] [stdout] test editor::tests::a_recorded_macro_replays_with_at_reg ... ok
[INFO] [stdout] test editor::tests::a_small_delete_leaves_the_numbered_ring_alone ... ok
[INFO] [stdout] test editor::tests::ampersand_repeats_the_last_substitution_on_the_current_line ... ok
[INFO] [stdout] test editor::tests::bang_operator_over_a_text_object_prefills_the_paragraph_range ... ok
[INFO] [stdout] test editor::tests::bar_goes_to_column_count_one_based ... ok
[INFO] [stdout] test editor::tests::bang_run_puts_output_in_a_scratch_buffer ... ok
[INFO] [stdout] test editor::tests::bd_on_the_last_buffer_opens_a_fresh_empty_one ... ok
[INFO] [stdout] test editor::tests::bd_refuses_a_modified_buffer_and_bang_forces ... ok
[INFO] [stdout] test editor::tests::big_c_changes_to_end_of_line_and_enters_insert ... ok
[INFO] [stdout] test editor::tests::big_d_deletes_to_end_of_line_like_d_dollar ... ok
[INFO] [stdout] test editor::tests::big_o_above_matches_the_indent_too ... ok
[INFO] [stdout] test editor::tests::bang_operator_over_a_motion_prefills_the_range ... ok
[INFO] [stdout] test editor::tests::big_s_substitutes_the_whole_line_like_cc ... ok
[INFO] [stdout] test editor::tests::big_u_is_a_noop_with_nothing_changed ... ok
[INFO] [stdout] test editor::tests::big_u_covers_a_whole_change_run_on_one_line ... ok
[INFO] [stdout] test editor::tests::big_u_restores_the_last_changed_line_then_toggles ... ok
[INFO] [stdout] test editor::tests::big_u_tracks_the_most_recently_changed_line ... ok
[INFO] [stdout] test editor::tests::big_y_yanks_to_end_of_line_neovim_default_not_the_whole_line ... ok
[INFO] [stdout] test editor::tests::backspace_on_an_empty_command_line_cancels_it ... ok
[INFO] [stdout] test editor::tests::at_at_replays_the_last_played_macro ... ok
[INFO] [stdout] test editor::tests::backspace_within_an_insert_is_reflected_in_the_dot_register ... ok
[INFO] [stdout] test editor::tests::blackhole_delete_does_not_clobber_the_unnamed_register ... ok
[INFO] [stdout] test editor::tests::bang_operator_double_bang_filters_the_current_line ... ok
[INFO] [stdout] test editor::tests::bracket_put_after_reindents_to_the_current_line ... ok
[INFO] [stdout] test editor::tests::bracket_put_before_reindents_to_the_current_line ... ok
[INFO] [stdout] test editor::tests::bracket_put_on_a_charwise_register_is_a_plain_put ... ok
[INFO] [stdout] test editor::tests::ca_brace_changes_around_braces_including_them ... ok
[INFO] [stdout] test editor::tests::bracket_put_preserves_relative_indent_across_lines ... ok
[INFO] [stdout] test editor::tests::bracket_mark_jump_backtick_is_exact_and_quote_is_first_non_blank ... ok
[INFO] [stdout] test editor::tests::bd_deletes_current_buffer_and_lands_on_the_other ... ok
[INFO] [stdout] test editor::tests::bracket_motions_compose_with_an_operator ... ok
[INFO] [stdout] test editor::tests::bracket_put_uppercase_p_always_puts_before ... ok
[INFO] [stdout] test editor::tests::bracket_mark_motions_jump_to_the_next_and_previous_lowercase_mark ... ok
[INFO] [stdout] test editor::tests::changelist_collapses_repeat_edits_on_one_line ... ok
[INFO] [stdout] test editor::tests::cgn_then_dot_changes_successive_matches ... ok
[INFO] [stdout] test editor::tests::command_line_cursor_moves_and_inserts_mid_line ... ok
[INFO] [stdout] test editor::tests::command_line_history_recalls_previous_ex_commands_newest_first ... ok
[INFO] [stdout] test editor::tests::count_gt_hands_back_an_absolute_jump_and_count_gT_steps_back ... ok
[INFO] [stdout] test editor::tests::charwise_visual_delete ... ok
[INFO] [stdout] test editor::tests::changelist_g_semicolon_and_g_comma_walk_recent_edits ... ok
[INFO] [stdout] test editor::tests::ci_paren_changes_inside_the_nearest_parens ... ok
[INFO] [stdout] test editor::tests::counts_multiply_2d3w_deletes_six_words ... ok
[INFO] [stdout] test editor::tests::ctrl_a_finds_the_number_after_the_cursor ... ok
[INFO] [stdout] test editor::tests::ctrl_a_increments_and_carries ... ok
[INFO] [stdout] test editor::tests::ctrl_a_is_dot_repeatable ... ok
[INFO] [stdout] test editor::tests::ctrl_d_and_ctrl_u_scroll_by_half_a_viewport ... ok
[INFO] [stdout] test editor::tests::ctrl_d_is_a_command_not_a_motion ... ok
[INFO] [stdout] test editor::tests::ctrl_g_echoes_file_info_without_editing ... ok
[INFO] [stdout] test editor::tests::ci_quote_changes_inside_double_quotes ... ok
[INFO] [stdout] test editor::tests::cit_changes_inside_a_tag_body ... ok
[INFO] [stdout] test editor::tests::ctrl_o_returns_to_the_position_before_a_jump ... ok
[INFO] [stdout] test editor::tests::ctrl_p_and_ctrl_n_walk_history_like_the_arrows ... ok
[INFO] [stdout] test editor::tests::ctrl_r_inserts_a_register_into_the_command_line ... ok
[INFO] [stdout] test editor::tests::ctrl_w_and_ctrl_u_delete_word_and_to_start ... ok
[INFO] [stdout] test editor::tests::ctrl_bracket_routes_to_lsp_go_to_definition ... ok
[INFO] [stdout] test editor::tests::ctrl_caret_toggles_between_the_two_most_recent_buffers ... ok
[INFO] [stdout] test editor::tests::de_deletes_inclusive_of_the_words_last_character ... ok
[INFO] [stdout] test editor::tests::dgn_deletes_the_next_match ... ok
[INFO] [stdout] test editor::tests::dg_deletes_from_cursor_to_end_of_file_linewise ... ok
[INFO] [stdout] test editor::tests::dgg_deletes_from_cursor_to_start_of_file_linewise ... ok
[INFO] [stdout] test editor::tests::dgt_is_not_a_tab_switch ... ok
[INFO] [stdout] test editor::tests::d_dollar_deletes_to_end_of_line_inclusive ... ok
[INFO] [stdout] test editor::tests::d2w_and_2dw_both_delete_two_words ... ok
[INFO] [stdout] test editor::tests::daw_deletes_the_word_and_its_trailing_space ... ok
[INFO] [stdout] test editor::tests::dd_and_3dd_delete_whole_lines ... ok
[INFO] [stdout] test editor::tests::dot_repeats_an_insert_session_verbatim ... ok
[INFO] [stdout] test editor::tests::dot_repeats_the_last_change ... ok
[INFO] [stdout] test editor::tests::diw_deletes_the_inner_word_only_leaving_surrounding_space ... ok
[INFO] [stdout] test editor::tests::equal_is_undoable_as_one_step ... ok
[INFO] [stdout] test editor::tests::enter_mid_insert_carries_the_indent ... ok
[INFO] [stdout] test editor::tests::equal_equal_reindents_the_current_line ... ok
[INFO] [stdout] test editor::tests::equal_respects_noexpandtab_with_tabs ... ok
[INFO] [stdout] test editor::tests::ex_copy_duplicates_a_line_after_the_destination ... ok
[INFO] [stdout] test editor::tests::dw_deletes_exclusive_of_the_next_words_start ... ok
[INFO] [stdout] test editor::tests::enter_after_an_opener_indents_one_deeper ... ok
[INFO] [stdout] test editor::tests::ex_earlier_and_later_step_through_undo_history ... ok
[INFO] [stdout] test editor::tests::equal_motion_reindents_nested_braces ... ok
[INFO] [stdout] test editor::tests::equal_ip_reindents_a_whole_paragraph ... ok
[INFO] [stdout] test editor::tests::ex_earlier_past_the_oldest_change_reports_the_edge ... ok
[INFO] [stdout] test editor::tests::ex_and_search_histories_stay_separate ... ok
[INFO] [stdout] test editor::tests::every_default_keymap_resolves_to_its_action ... ok
[INFO] [stdout] test editor::tests::ex_earlier_time_form_is_reported_unsupported ... ok
[INFO] [stdout] test editor::tests::ex_inverse_global_deletes_non_matching_lines ... ok
[INFO] [stdout] test editor::tests::ex_range_fold_creates_a_fold ... ok
[INFO] [stdout] test editor::tests::ex_shift_bang_multiplier_indents_twice_as_far ... ok
[INFO] [stdout] test editor::tests::ex_shift_indents_the_range_one_shiftwidth ... ok
[INFO] [stdout] test editor::tests::ex_sort_bang_reverses ... ok
[INFO] [stdout] test editor::tests::ex_normal_composes_with_global ... ok
[INFO] [stdout] test editor::tests::ex_normal_dd_over_range_deletes_every_line_despite_shifting ... ok
[INFO] [stdout] test editor::tests::ex_normal_runs_keys_on_each_line_in_range ... ok
[INFO] [stdout] test editor::tests::explicit_plus_put_pastes_from_the_clipboard ... ok
[INFO] [stdout] test editor::tests::ex_write_and_quit_are_returned_as_effects_not_performed ... ok
[INFO] [stdout] test editor::tests::ex_sort_reorders_the_whole_buffer_by_default ... ok
[INFO] [stdout] test editor::tests::explicit_plus_yank_copies_to_the_clipboard ... ok
[INFO] [stdout] test editor::tests::filter_range_only_touches_that_range ... ok
[INFO] [stdout] test editor::tests::filter_whole_buffer_through_sort_reorders_lines ... ok
[INFO] [stdout] test editor::tests::fold_is_dropped_when_its_whole_range_is_deleted ... ok
[INFO] [stdout] test editor::tests::ex_move_relocates_a_range_to_the_top ... ok
[INFO] [stdout] test editor::tests::filter_leaves_buffer_untouched_on_nonzero_exit ... ok
[INFO] [stdout] test editor::tests::g_join_keeps_the_joined_in_lines_leading_whitespace ... ok
[INFO] [stdout] test editor::tests::g_join_joins_without_inserting_a_space ... ok
[INFO] [stdout] test editor::tests::g_shift_p_charwise_pastes_before_and_leaves_the_cursor_after ... ok
[INFO] [stdout] test editor::tests::g_star_matches_the_word_as_a_substring_unlike_star ... ok
[INFO] [stdout] test editor::tests::g_underscore_moves_to_the_last_non_blank ... ok
[INFO] [stdout] test editor::tests::fold_rides_back_on_undo ... ok
[INFO] [stdout] test editor::tests::fold_shifts_up_when_a_line_above_is_deleted ... ok
[INFO] [stdout] test editor::tests::fold_shifts_down_when_a_line_is_opened_above ... ok
[INFO] [stdout] test editor::tests::forward_search_jumps_to_the_next_match_then_n_repeats ... ok
[INFO] [stdout] test editor::tests::g_ampersand_repeats_the_last_substitution_over_the_whole_file ... ok
[INFO] [stdout] test editor::tests::gf_opens_the_file_whose_path_is_under_the_cursor ... ok
[INFO] [stdout] test editor::tests::gf_reports_a_friendly_note_when_the_file_is_missing ... ok
[INFO] [stdout] test editor::tests::ge_moves_to_the_end_of_the_previous_word ... ok
[INFO] [stdout] test editor::tests::gp_linewise_leaves_the_cursor_on_the_line_after_the_block ... ok
[INFO] [stdout] test editor::tests::gg_motion_falls_back_correctly_after_starting_as_a_keymap_prefix ... ok
[INFO] [stdout] test editor::tests::g_shift_i_inserts_at_the_first_column_not_the_first_non_blank ... ok
[INFO] [stdout] test editor::tests::gi_resumes_insert_at_the_last_insert_position ... ok
[INFO] [stdout] test editor::tests::gt_and_gT_hand_back_relative_tab_steps ... ok
[INFO] [stdout] test editor::tests::gn_selects_the_match_under_the_cursor_visually ... ok
[INFO] [stdout] test editor::tests::gp_charwise_leaves_the_cursor_after_the_pasted_text ... ok
[INFO] [stdout] test editor::tests::gv_reselects_the_last_visual_selection ... ok
[INFO] [stdout] test editor::tests::help_buffer_is_read_only_and_cannot_be_modified ... ok
[INFO] [stdout] test editor::shell::tests::shell_runner_filters_stdin_through_a_real_command ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_a_reinserts_the_previous_insert ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_a_with_nothing_inserted_yet_is_a_noop ... ok
[INFO] [stdout] test editor::tests::help_topic_jumps_the_cursor_to_that_section ... ok
[INFO] [stdout] test editor::tests::help_with_an_unknown_topic_falls_back_to_the_top ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_e_copies_the_character_below_the_cursor ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_e_is_a_noop_when_the_line_below_is_too_short ... ok
[INFO] [stdout] test editor::tests::inclusive_to_eol_motions_do_not_swallow_the_newline ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_k_arrow_digraph_inserts_an_arrow ... ok
[INFO] [stdout] test editor::tests::incsearch_lights_the_in_progress_pattern_while_typing ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_k_digraph_inserts_a_special_character ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_k_unknown_digraph_inserts_nothing ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_t_uses_a_tab_when_expandtab_is_off ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_d_at_zero_indent_is_a_noop ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_d_dedents_the_current_line_by_one_shiftwidth ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_r_pastes_a_register ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_u_deletes_to_the_line_start ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_t_indents_the_current_line_by_one_shiftwidth ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_v_decimal_inserts_by_code ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_v_tab_inserts_a_literal_tab_even_with_expandtab ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_v_literal_next_char_inserts_it_verbatim ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_v_number_terminated_early_still_inserts_then_reprocesses ... ok
[INFO] [stdout] test editor::tests::help_opens_a_buffer_of_singlish_manual_text ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_e_is_a_noop_at_the_bottom_of_the_buffer ... ok
[INFO] [stdout] test editor::tests::last_inserted_text_is_readable_as_the_dot_register ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_v_u_hex_inserts_a_unicode_codepoint ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_w_deletes_the_word_before_the_cursor ... ok
[INFO] [stdout] test editor::tests::insert_ctrl_y_copies_the_character_above_the_cursor ... ok
[INFO] [stdout] test editor::tests::j_joins_lines_with_a_single_space ... ok
[INFO] [stdout] test editor::tests::j_skips_a_closed_fold_and_zo_reveals_it ... ok
[INFO] [stdout] test editor::tests::ls_lists_every_open_buffer_with_a_modified_flag ... ok
[INFO] [stdout] test editor::tests::method_motions_land_on_the_nearest_brace ... ok
[INFO] [stdout] test editor::tests::named_register_survives_an_unrelated_unnamed_delete ... ok
[INFO] [stdout] test editor::tests::o_copies_the_reference_line_indent ... ok
[INFO] [stdout] test editor::tests::noh_clears_the_highlight_but_keeps_the_pattern ... ok
[INFO] [stdout] test editor::tests::nohlsearch_option_off_suppresses_the_highlight_entirely ... ok
[INFO] [stdout] test editor::tests::last_ex_command_is_readable_as_the_colon_register ... ok
[INFO] [stdout] test editor::tests::last_search_pattern_is_readable_as_the_slash_register ... ok
[INFO] [stdout] test editor::tests::o_uses_a_hard_tab_when_expandtab_is_off ... ok
[INFO] [stdout] test editor::tests::operator_composed_find_still_works_despite_the_f_keymap_shadow ... ok
[INFO] [stdout] test editor::tests::linewise_visual_delete ... ok
[INFO] [stdout] test editor::tests::o_swaps_the_visual_ends ... ok
[INFO] [stdout] test editor::tests::plus_put_with_no_clipboard_tool_is_a_no_op_not_a_crash ... ok
[INFO] [stdout] test editor::tests::percent_s_with_empty_pattern_and_replacement_parses_and_is_a_no_op ... ok
[INFO] [stdout] test editor::tests::plain_u_can_undo_a_big_u ... ok
[INFO] [stdout] test editor::tests::quit_all_checks_every_buffer_not_just_the_current_one ... ok
[INFO] [stdout] test editor::tests::plus_cr_minus_underscore_are_linewise_first_non_blank_motions ... ok
[INFO] [stdout] test editor::tests::ranged_delete_removes_the_given_lines ... ok
[INFO] [stdout] test editor::tests::o_after_an_opener_indents_one_level_deeper ... ok
[INFO] [stdout] test editor::tests::read_shell_inserts_command_output_below_the_cursor_line ... ok
[INFO] [stdout] test editor::tests::quit_still_guards_a_genuinely_modified_normal_buffer ... ok
[INFO] [stdout] test editor::tests::read_shell_no_space_form_also_works ... ok
[INFO] [stdout] test editor::tests::o_on_a_plain_top_level_line_adds_no_indent ... ok
[INFO] [stdout] test editor::tests::read_shell_respects_a_line_address ... ok
[INFO] [stdout] test editor::tests::section_motions_run_to_the_buffer_edges_when_there_is_no_further_section ... ok
[INFO] [stdout] test editor::tests::semicolon_repeats_the_last_find_and_comma_reverses_it ... ok
[INFO] [stdout] test editor::tests::shift_right_and_left_use_a_tab_by_default ... ok
[INFO] [stdout] test editor::tests::section_motions_jump_between_braces_in_column_zero ... ok
[INFO] [stdout] test editor::tests::smartcase_search_highlight_matches_the_motion ... ok
[INFO] [stdout] test editor::tests::register_zero_holds_the_last_yank_across_an_intervening_delete ... ok
[INFO] [stdout] test editor::tests::scrolling_clamps_at_both_ends_of_the_buffer_rather_than_overshooting ... ok
[INFO] [stdout] test editor::tests::star_arms_the_hlsearch_highlight_for_the_word_under_the_cursor ... ok
[INFO] [stdout] test editor::tests::star_searches_the_word_under_the_cursor ... ok
[INFO] [stdout] test editor::tests::substitute_with_g_flag_replaces_every_match_on_the_line ... ok
[INFO] [stdout] test editor::tests::tab_completes_a_buffer_name_for_colon_b ... ok
[INFO] [stdout] test editor::tests::the_command_line_is_visible_to_the_ui_while_being_typed ... ok
[INFO] [stdout] test editor::tests::nested_closer_dedents_one_level_only ... ok
[INFO] [stdout] test editor::tests::quit_all_quits_when_clean_refuses_when_dirty_and_bang_forces ... ok
[INFO] [stdout] test editor::tests::quit_on_a_help_buffer_needs_no_save_prompt ... ok
[INFO] [stdout] test editor::tests::tab_is_inert_on_the_search_prompt ... ok
[INFO] [stdout] test editor::tests::r_replaces_the_character_under_the_cursor ... ok
[INFO] [stdout] test editor::tests::the_visual_selection_is_visible_to_the_ui ... ok
[INFO] [stdout] test editor::tests::tab_completes_and_cycles_ex_command_names ... ok
[INFO] [stdout] test editor::tests::the_numbered_ring_lets_you_reach_an_older_delete ... ok
[INFO] [stdout] test editor::tests::tilde_toggles_case_and_advances ... ok
[INFO] [stdout] test editor::tests::tab_ex_commands_bridge_to_editor_response_tab ... ok
[INFO] [stdout] test editor::tests::the_search_prompt_reports_its_kind_for_the_ui ... ok
[INFO] [stdout] test editor::tests::typing_a_lone_closer_dedents_to_the_opener ... ok
[INFO] [stdout] test editor::tests::unmatched_brace_forward_and_back_skip_balanced_pairs ... ok
[INFO] [stdout] test editor::tests::unmatched_paren_motions_count_nesting_on_one_line ... ok
[INFO] [stdout] test editor::tests::unnamedplus_makes_plain_yank_and_put_use_the_clipboard ... ok
[INFO] [stdout] test editor::tests::which_key_clears_once_the_mapping_completes ... ok
[INFO] [stdout] test editor::tests::which_key_lists_leader_continuations_after_pressing_space ... ok
[INFO] [stdout] test editor::tests::yy_then_p_pastes_a_whole_line_below ... ok
[INFO] [stdout] test editor::tests::visual_zf_folds_the_selection ... ok
[INFO] [stdout] test editor::tests::visual_equal_reindents_the_selection ... ok
[INFO] [stdout] test editor::tests::x_and_3x_delete_characters_forward ... ok
[INFO] [stdout] test editor::tests::write_all_variants_are_returned_as_effects ... ok
[INFO] [stdout] test editor::tests::yw_then_p_pastes_inline_after_the_cursor ... ok
[INFO] [stdout] test editor::tests::visual_inner_word_change ... ok
[INFO] [stdout] test editor::tests::zr_and_zm_open_and_close_all ... ok
[INFO] [stdout] test editor::tests::zz_asks_the_ui_to_recentre_without_touching_the_buffer ... ok
[INFO] [stdout] test editor::tests::zf3j_folds_four_lines ... ok
[INFO] [stdout] test editor::tests::zz_writes_then_quits_and_zq_quits_unconditionally ... ok
[INFO] [stdout] test editor::tests::za_toggles_and_cursor_snaps_out_of_a_closed_fold ... ok
[INFO] [stdout] test editor::tests::zfj_creates_a_two_line_closed_fold ... ok
[INFO] [stdout] test icons::tests::a_bare_kernel_console_gets_ascii ... ok
[INFO] [stdout] test editor::tests::zd_removes_the_fold_under_the_cursor ... ok
[INFO] [stdout] test icons::tests::the_font_is_embedded_and_is_a_real_truetype_file ... ok
[INFO] [stdout] test icons::tests::the_font_stays_within_the_size_budget ... ok
[INFO] [stdout] test icons::tests::the_ofl_license_ships_with_the_font ... ok
[INFO] [stdout] test icons::tests::only_the_nerd_tier_needs_the_bundled_font ... ok
[INFO] [stdout] test icons::tests::unicode_icons_avoid_the_nerd_font_private_use_area ... ok
[INFO] [stdout] test icons::tests::the_default_tier_is_the_safe_one ... ok
[INFO] [stdout] test lsp::client::tests::line_cache_reads_a_file_once_and_serves_multiple_lines ... ok
[INFO] [stdout] test lsp::client::tests::live_rust_analyzer_fills_match_arms_through_resolve ... ignored, spawns a real rust-analyzer and waits for indexing; run with `-- --ignored`
[INFO] [stdout] test lsp::client::tests::live_rust_analyzer_removes_an_unused_import ... ignored, spawns a real rust-analyzer and waits for indexing; run with `-- --ignored`
[INFO] [stdout] test lsp::client::tests::live_rust_analyzer_resolves_a_definition_through_the_generalized_client ... ignored, spawns a real rust-analyzer and waits for indexing; run with `-- --ignored`
[INFO] [stdout] test lsp::client::tests::starting_an_unregistered_filetype_is_a_clear_error ... ok
[INFO] [stdout] test lsp::client::tests::workspace_root_falls_back_to_the_files_own_directory ... ok
[INFO] [stdout] test lsp::completion::tests::buffer_words_are_deduplicated_and_unicode_aware ... ok
[INFO] [stdout] test lsp::completion::tests::builtin_snippets_are_snippet_tagged_with_bodies_and_are_filetype_scoped ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_filters_out_non_matching_items ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_is_smart_case ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_lsp_wins_a_label_collision_over_a_snippet ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_prefers_lsp_over_buffer_on_a_label_collision ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_ranks_snippet_between_lsp_and_buffer ... ok
[INFO] [stdout] test icons::tests::ascii_icons_are_actually_ascii ... ok
[INFO] [stdout] test lsp::completion::tests::buffer_words_ignores_punctuation_and_whitespace ... ok
[INFO] [stdout] test icons::tests::every_icon_tier_has_an_entry_for_every_known_extension ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_returns_everything_in_priority_order_when_prefix_is_empty ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_scores_a_prefix_match_above_a_looser_fuzzy_match ... ok
[INFO] [stdout] test lsp::completion::tests::path_candidates_filters_by_typed_prefix_and_marks_directories ... ok
[INFO] [stdout] test lsp::completion::tests::path_candidates_returns_empty_for_a_nonexistent_directory_rather_than_erroring ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_ties_break_alphabetically_for_determinism ... ok
[INFO] [stdout] test lsp::install::tests::a_host_with_no_resolvable_data_directory_says_so_instead_of_planning_a_fetch ... ok
[INFO] [stdout] test lsp::completion::tests::path_candidates_splits_on_the_separators_this_platform_actually_uses ... ok
[INFO] [stdout] test lsp::install::tests::data_dir_falls_back_to_home_dot_local_share ... ok
[INFO] [stdout] test lsp::install::tests::data_dir_is_none_when_neither_env_var_is_set ... ok
[INFO] [stdout] test lsp::install::tests::data_dir_prefers_xdg_data_home_over_home ... ok
[INFO] [stdout] test lsp::install::tests::install_path_nests_the_executable_under_its_own_directory ... ok
[INFO] [stdout] test lsp::client::tests::workspace_root_finds_the_enclosing_cargo_project ... ok
[INFO] [stdout] test lsp::install::tests::plan_for_a_missing_binary_produces_a_precise_fetch_instruction_not_a_download ... ok
[INFO] [stdout] test lsp::completion::tests::a_directory_candidate_is_marked_with_a_separator_that_matches_what_was_typed ... ok
[INFO] [stdout] test lsp::install::tests::plan_for_a_server_already_on_path_needs_no_fetch ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_survives_a_non_ascii_prefix ... ok
[INFO] [stdout] test lsp::completion::tests::merge_and_rank_survives_an_uppercase_prefix ... ok
[INFO] [stdout] test lsp::position::tests::astral_emoji_needs_a_surrogate_pair_in_utf16 ... ok
[INFO] [stdout] test lsp::install::tests::plan_for_android_offers_a_real_route_and_never_a_fabricated_download ... ok
[INFO] [stdout] test lsp::position::tests::cjk_is_one_utf16_unit_but_three_utf8_bytes_per_character ... ok
[INFO] [stdout] test lsp::position::tests::an_offset_past_the_end_of_the_line_clamps_to_end_of_line_rather_than_panicking ... ok
[INFO] [stdout] test lsp::position::tests::ascii_is_one_unit_per_column_in_every_encoding ... ok
[INFO] [stdout] test lsp::position::tests::combining_acute_accent_is_one_grapheme_two_chars ... ok
[INFO] [stdout] test lsp::position::tests::empty_line_has_a_single_valid_column_at_unit_zero ... ok
[INFO] [stdout] test lsp::position::tests::position_level_helpers_round_trip ... ok
[INFO] [stdout] test lsp::position::tests::zwj_family_emoji_is_one_grapheme_but_five_chars_and_a_surrogate_heavy_utf16_run ... ok
[INFO] [stdout] test lsp::registry::tests::a_desktop_with_a_prebuilt_binary_is_never_sent_to_compile_from_source ... ok
[INFO] [stdout] test lsp::registry::tests::an_unknown_android_server_reports_honestly_rather_than_inventing_a_url ... ok
[INFO] [stdout] test lsp::registry::tests::an_unsupported_arch_returns_unavailable_not_a_panic ... ok
[INFO] [stdout] test icons::tests::file_icons_are_chosen_by_extension_with_a_generic_fallback ... ok
[INFO] [stdout] test lsp::position::tests::mid_surrogate_pair_offset_does_not_panic_and_snaps_past_the_undividable_char ... ok
[INFO] [stdout] test icons::tests::nerd_icons_are_in_the_private_use_area ... ok
[INFO] [stdout] test lsp::position::tests::mixed_line_round_trips_at_every_grapheme_boundary_in_every_encoding ... ok
[INFO] [stdout] test lsp::registry::tests::host_target_detection_agrees_with_the_platform_the_test_binary_was_built_for ... ok
[INFO] [stdout] test lsp::position::tests::capability_string_parsing_defaults_to_utf16 ... ok
[INFO] [stdout] test lsp::registry::tests::android_aarch64_never_resolves_to_a_download_because_no_bionic_binary_exists ... ok
[INFO] [stdout] test lsp::registry::tests::linux_aarch64_resolves_the_gnu_binary_url ... ok
[INFO] [stdout] test lsp::registry::tests::linux_x86_64_resolves_a_musl_static_binary_url ... ok
[INFO] [stdout] test lsp::registry::tests::macos_aarch64_resolves_the_apple_silicon_binary_url ... ok
[INFO] [stdout] test lsp::registry::tests::texlab_on_android_falls_through_to_cargo_because_it_is_a_rust_program ... ok
[INFO] [stdout] test lsp::registry::tests::a_non_executable_file_on_path_is_not_treated_as_the_binary ... ok
[INFO] [stdout] test lsp::registry::tests::the_dot_exe_suffix_is_implied_on_windows_and_never_implied_anywhere_else ... ok
[INFO] [stdout] test lsp::registry::tests::windows_x86_64_resolves_a_zip_url ... ok
[INFO] [stdout] test lsp::install::tests::mark_executable_sets_the_executable_bits ... ok
[INFO] [stdout] test lsp::registry::tests::rust_analyzer_on_android_is_obtainable_via_termux_then_cargo ... ok
[INFO] [stdout] test lsp::registry::tests::registry_matches_the_three_servers_in_configs_default_language_servers ... ok
[INFO] [stdout] test lsp::resource_guard::tests::cpu_factor_gates_a_project_that_ram_alone_would_allow ... ok
[INFO] [stdout] test lsp::resource_guard::tests::disabled_guard_always_allows ... ok
[INFO] [stdout] test lsp::resource_guard::tests::fails_open_when_no_probe ... ok
[INFO] [stdout] test lsp::resource_guard::tests::fails_open_when_no_project_size ... ok
[INFO] [stdout] test lsp::resource_guard::tests::always_start_reports_but_does_not_gate ... ok
[INFO] [stdout] test lsp::resource_guard::tests::core_factor_saturates_at_one_for_many_cores ... ok
[INFO] [stdout] test lsp::resource_guard::tests::heavy_project_on_a_small_tablet_is_gated ... ok
[INFO] [stdout] test lsp::resource_guard::tests::parses_the_package_count_from_a_cargo_lock ... ok
[INFO] [stdout] test lsp::resource_guard::tests::estimate_project_size_reads_a_real_workspace ... ok
[INFO] [stdout] test lsp::resource_guard::tests::probe_device_on_this_host_is_sane_or_none ... ok
[INFO] [stdout] test lsp::resource_guard::tests::ram_boundary_flips_the_gate ... ok
[INFO] [stdout] test lsp::registry::tests::path_detection_is_preferred_over_download_when_the_binary_already_exists ... ok
[INFO] [stdout] test plugins::align::tests::a_line_without_the_delimiter_is_left_alone ... ok
[INFO] [stdout] test lsp::resource_guard::tests::zero_cores_fails_open ... ok
[INFO] [stdout] test plugins::align::tests::aligns_key_value_lines_on_equals ... ok
[INFO] [stdout] test plugins::align::tests::aligns_on_an_arbitrary_character ... ok
[INFO] [stdout] test lsp::registry::tests::path_detection_falls_through_to_download_when_the_binary_is_absent ... ok
[INFO] [stdout] test lsp::registry::tests::path_still_wins_over_every_other_tier_on_android ... ok
[INFO] [stdout] test plugins::filetree::tests::collapse_all_hides_everything_but_keeps_the_cache ... ok
[INFO] [stdout] test lsp::resource_guard::tests::small_project_on_a_big_device_is_allowed ... ok
[INFO] [stdout] test plugins::align::tests::aligns_on_whitespace ... ok
[INFO] [stdout] test plugins::align::tests::no_delimiter_anywhere_produces_no_edits ... ok
[INFO] [stdout] test plugins::align::tests::already_aligned_input_is_unchanged ... ok
[INFO] [stdout] test lsp::resource_guard::tests::estimate_project_size_is_none_without_a_lock ... ok
[INFO] [stdout] test plugins::filetree::tests::refresh_re_reads_from_disk ... ok
[INFO] [stdout] test plugins::filetree::tests::toggle_flips_expand_state ... ok
[INFO] [stdout] test plugins::filetree::tests::navigate_up_reroots_at_the_parent ... ok
[INFO] [stdout] test plugins::filetree::tests::expand_all_reveals_nested_directories ... ok
[INFO] [stdout] test plugins::filetree::tests::hidden_files_are_filtered_only_at_render_time ... ok
[INFO] [stdout] test plugins::filetree::tests::root_children_are_read_eagerly_but_grandchildren_are_not ... ok
[INFO] [stdout] test plugins::filetree::tests::expand_then_collapse_round_trips ... ok
[INFO] [stdout] test plugins::git::tests::not_a_repo_returns_none ... ok
[INFO] [stdout] test plugins::git::tests::read_head_handles_a_hand_written_detached_sha ... ok
[INFO] [stdout] test plugins::git::tests::read_head_handles_a_hand_written_ref ... ok
[INFO] [stdout] test plugins::grep::tests::finds_matches_and_respects_gitignore ... ok
[INFO] [stdout] test plugins::git::tests::status_follows_a_worktree_dot_git_file ... ok
[INFO] [stdout] test plugins::grep::tests::no_matches_is_an_empty_untruncated_result ... ok
[INFO] [stdout] test plugins::grep::tests::globs_restrict_the_walk ... ok
[INFO] [stdout] test plugins::grep::tests::one_entry_per_matching_line_not_per_match ... ok
[INFO] [stdout] test plugins::grep::tests::the_cap_truncates_and_flags_it ... ok
[INFO] [stdout] test plugins::harpoon::tests::a_legacy_unversioned_store_still_loads ... ok
[INFO] [stdout] test plugins::harpoon::tests::a_saved_store_carries_the_schema_version ... ok
[INFO] [stdout] test plugins::harpoon::tests::a_corrupt_store_starts_empty_and_never_panics ... ok
[INFO] [stdout] test plugins::filetree::tests::navigate_up_from_filesystem_root_is_a_no_op ... ok
[INFO] [stdout] test plugins::harpoon::tests::a_session_scoped_harpoon_persists_nothing ... ok
[INFO] [stdout] test plugins::harpoon::tests::nav_file_is_one_based ... ok
[INFO] [stdout] test plugins::harpoon::tests::persists_and_reloads_from_a_tempdir ... ok
[INFO] [stdout] test plugins::harpoon::tests::add_remove_and_reorder ... ok
[INFO] [stdout] test plugins::harpoon::tests::removing_an_out_of_range_index_is_a_no_op ... ok
[INFO] [stdout] test plugins::harpoon::tests::re_marking_keeps_the_original_cursor ... ok
[INFO] [stdout] test plugins::hop::tests::assign_labels_degrades_gracefully_past_alphabet_capacity ... ok
[INFO] [stdout] test plugins::harpoon::tests::two_projects_do_not_share_marks ... ok
[INFO] [stdout] test plugins::hop::tests::empty_viewport_hints_nothing ... ok
[INFO] [stdout] test plugins::hop::tests::finds_word_starts_on_one_line ... ok
[INFO] [stdout] test plugins::hop::tests::every_assigned_label_is_unique ... ok
[INFO] [stdout] test plugins::hop::tests::labels_are_prefix_free_within_the_alphabet ... ok
[INFO] [stdout] test plugins::hop::tests::overflow_produces_valid_two_character_labels ... ok
[INFO] [stdout] test plugins::hop::tests::positions_use_the_viewports_first_line_offset ... ok
[INFO] [stdout] test plugins::hop::tests::resolve_jumps_on_a_single_character_label ... ok
[INFO] [stdout] test plugins::hop::tests::resolve_reports_no_match_for_input_matching_no_label ... ok
[INFO] [stdout] test plugins::hop::tests::resolve_narrows_then_jumps_on_a_two_character_label ... ok
[INFO] [stdout] test plugins::picker::tests::best_fuzzy_match_sorts_first ... ok
[INFO] [stdout] test plugins::picker::tests::empty_query_returns_every_item ... ok
[INFO] [stdout] test plugins::picker::tests::matched_indices_point_at_the_query_characters ... ok
[INFO] [stdout] test plugins::picker::tests::selection_clamps_when_a_narrower_query_shrinks_the_match_list ... ok
[INFO] [stdout] test plugins::picker::tests::query_matching_nothing_returns_nothing ... ok
[INFO] [stdout] test plugins::picker::tests::selection_wraps_in_both_directions ... ok
[INFO] [stdout] test plugins::picker::tests::walk_files_honours_gitignore ... ok
[INFO] [stdout] test plugins::picker::tests::walk_files_stops_at_the_cap ... ok
[INFO] [stdout] test termemu::tests::alt_key_prefixes_escape ... ok
[INFO] [stdout] test termemu::tests::a_cursor_position_query_gets_answered_on_the_write_side ... ok
[INFO] [stdout] test termemu::tests::cpr_reply_is_one_based ... ok
[INFO] [stdout] test termemu::tests::arrows_encode_to_vt_sequences ... ok
[INFO] [stdout] test termemu::tests::ctrl_backslash_family_maps_to_the_high_c0_codes ... ok
[INFO] [stdout] test termemu::tests::ctrl_letter_encodes_to_the_c0_control_code ... ok
[INFO] [stdout] test termemu::tests::dsr_watcher_sees_a_query_split_across_reads ... ok
[INFO] [stdout] test termemu::tests::enter_backspace_tab_esc_encode_to_the_tty_bytes ... ok
[INFO] [stdout] test termemu::tests::plain_char_encodes_as_utf8 ... ok
[INFO] [stdout] test termemu::tests::reader_thread_exits_on_eof ... ok
[INFO] [stdout] test termemu::tests::a_command_that_exits_marks_the_session_finished ... ok
[INFO] [stdout] test termemu::tests::exit_code_is_none_until_reaped_then_matches ... ok
[INFO] [stdout] test termemu::tests::spawned_command_output_lands_on_the_screen ... ok
[INFO] [stdout] test termemu::tests::resize_updates_the_grid_size ... ok
[INFO] [stdout] test text::buffer::tests::a_normal_buffer_is_not_read_only_by_default ... ok
[INFO] [stdout] test plugins::git::tests::a_subdirectory_still_finds_the_repository_root ... ok
[INFO] [stdout] test plugins::git::tests::detects_dirty_from_a_modified_tracked_file ... ok
[INFO] [stdout] test text::buffer::tests::an_insert_session_of_ten_chars_undoes_in_one_step ... ok
[INFO] [stdout] test plugins::git::tests::detects_dirty_from_an_untracked_file ... ok
[INFO] [stdout] test text::buffer::tests::apply_reports_out_of_bounds_positions ... ok
[INFO] [stdout] test text::buffer::tests::apply_returns_the_cursor_position_after_the_edit ... ok
[INFO] [stdout] test text::buffer::tests::chope_read_only_rejects_edits_and_pins_not_modified ... ok
[INFO] [stdout] test text::buffer::tests::diverging_after_undo_does_not_destroy_the_old_branch ... ok
[INFO] [stdout] test text::buffer::tests::empty_buffer_has_one_empty_line ... ok
[INFO] [stdout] test text::buffer::tests::clamp_never_panics_and_always_returns_a_valid_position ... ok
[INFO] [stdout] test text::buffer::tests::insert_delete_and_replace_all_go_through_apply ... ok
[INFO] [stdout] test text::buffer::tests::crlf_round_trips_byte_for_byte ... ok
[INFO] [stdout] test text::buffer::tests::crlf_file_is_not_touched_by_an_unrelated_edit ... ok
[INFO] [stdout] test text::buffer::tests::marks_shift_with_edits_before_and_after_them ... ok
[INFO] [stdout] test text::buffer::tests::line_len_and_grapheme_at_use_grapheme_clusters ... ok
[INFO] [stdout] test text::buffer::tests::mark_inside_a_deleted_range_clamps_to_the_deletion_start ... ok
[INFO] [stdout] test text::buffer::tests::save_without_a_path_errors ... ok
[INFO] [stdout] test text::buffer::tests::save_as_then_save_round_trips_through_a_real_file ... ok
[INFO] [stdout] test text::buffer::tests::is_modified_tracks_edits_and_resets_on_save_or_undo_back_to_saved_state ... ok
[INFO] [stdout] test text::buffer::tests::undo_and_redo_round_trip_through_apply ... ok
[INFO] [stdout] test text::buffer::tests::undo_on_a_pristine_buffer_errors ... ok
[INFO] [stdout] test text::buffer::tests::typing_enter_in_a_crlf_buffer_inserts_crlf_not_bare_lf ... ok
[INFO] [stdout] test text::buffer::tests::unset_mark_is_none ... ok
[INFO] [stdout] test text::grapheme::tests::cjk_counts_one_column_per_character ... ok
[INFO] [stdout] test text::grapheme::tests::combining_acute_accent_joins_its_base_letter ... ok
[INFO] [stdout] test plugins::git::tests::parses_a_real_head_on_a_branch ... ok
[INFO] [stdout] test text::grapheme::tests::end_of_line_column_is_supported_and_clamped ... ok
[INFO] [stdout] test text::grapheme::tests::mixed_line_counts_clusters_not_chars_or_bytes ... ok
[INFO] [stdout] test text::grapheme::tests::empty_line_has_zero_length_and_no_graphemes ... ok
[INFO] [stdout] test text::line_ending::tests::defaults_to_lf_with_no_line_break_at_all ... ok
[INFO] [stdout] test text::grapheme::tests::col_to_char_and_back_round_trip_at_every_boundary ... ok
[INFO] [stdout] test termemu::tests::typed_input_is_forwarded_to_the_child ... ok
[INFO] [stdout] test text::line_ending::tests::detects_crlf ... ok
[INFO] [stdout] test text::line_ending::tests::detects_lf ... ok
[INFO] [stdout] test text::line_ending::tests::normalize_borrows_when_already_matching ... ok
[INFO] [stdout] test text::mark::tests::mark_after_a_deletion_shifts_left ... ok
[INFO] [stdout] test text::mark::tests::mark_at_the_edit_start_is_unaffected ... ok
[INFO] [stdout] test text::mark::tests::mark_before_the_edit_is_unaffected ... ok
[INFO] [stdout] test text::mark::tests::mark_exactly_at_deletion_end_shifts_with_the_boundary ... ok
[INFO] [stdout] test text::mark::tests::mark_inside_a_deleted_range_clamps_to_the_start ... ok
[INFO] [stdout] test text::mark::tests::mark_inside_a_replaced_range_clamps_to_the_start ... ok
[INFO] [stdout] test text::undo::tests::diverging_after_undo_keeps_the_old_branch_as_a_sibling_not_a_replacement ... ok
[INFO] [stdout] test text::line_ending::tests::lf_normalize_collapses_crlf_and_leaves_lf_alone ... ok
[INFO] [stdout] test text::grapheme::tests::zwj_emoji_family_is_one_grapheme_cluster ... ok
[INFO] [stdout] test text::undo::tests::fresh_tree_has_nothing_to_undo_or_redo ... ok
[INFO] [stdout] test text::mark::tests::mark_after_an_insertion_shifts_right ... ok
[INFO] [stdout] test text::undo::tests::grouped_edits_undo_as_a_single_step_in_reverse_order ... ok
[INFO] [stdout] test text::line_ending::tests::crlf_normalize_expands_bare_lf_without_doubling_existing_crlf ... ok
[INFO] [stdout] test text::undo::tests::nested_groups_collapse_into_one_step ... ok
[INFO] [stdout] test tmux::tests::apply_creates_a_new_file_without_a_backup ... ok
[INFO] [stdout] test text::undo::tests::record_without_a_group_commits_one_node_per_edit ... ok
[INFO] [stdout] test tmux::tests::already_fixed_conf_needs_no_edit ... ok
[INFO] [stdout] test termemu::tests::zero_size_is_clamped_not_crashed ... ok
[INFO] [stdout] test tmux::tests::case_a_extends_the_existing_regex_in_place ... ok
[INFO] [stdout] test tmux::tests::case_b_inserts_a_newline_before_the_block_when_conf_lacks_a_trailing_one ... ok
[INFO] [stdout] test tmux::tests::backup_path_appends_kvim_bak_alongside_the_original ... ok
[INFO] [stdout] test tmux::tests::apply_backs_up_an_existing_conf_then_writes_the_fix ... ok
[INFO] [stdout] test tmux::tests::case_a_handles_an_ungrouped_bare_regex ... ok
[INFO] [stdout] test tmux::tests::case_b_appends_a_block_when_no_navigator_present ... ok
[INFO] [stdout] test tmux::tests::case_c_creates_a_file_holding_just_the_block ... ok
[INFO] [stdout] test ui::app::tests::a_diagnostic_paints_a_gutter_sign_and_underlines_its_range ... ok
[INFO] [stdout] test text::buffer::tests::property_buffer_matches_a_naive_string_reference_under_random_edits ... ok
[INFO] [stdout] test ui::app::tests::a_grep_that_finds_nothing_reports_it_and_leaves_an_empty_list ... ok
[INFO] [stdout] test tmux::tests::compute_fix_never_mutates_input_it_only_returns_new_text ... ok
[INFO] [stdout] test tmux::tests::has_is_vim_check_needs_both_is_vim_and_grep ... ok
[INFO] [stdout] test ui::app::tests::a_horizontal_split_paints_a_visible_divider_row_between_the_panes ... ok
[INFO] [stdout] test ui::app::tests::a_screen_note_becomes_a_non_modal_status_message ... ok
[INFO] [stdout] test tmux::tests::the_appended_regex_keeps_the_load_bearing_double_backslashes ... ok
[INFO] [stdout] test tmux::tests::recognises_kvim_only_when_the_literal_token_is_present ... ok
[INFO] [stdout] test ui::app::tests::a_two_char_hop_label_narrows_then_jumps ... ok
[INFO] [stdout] test ui::app::tests::a_vertical_split_paints_a_visible_divider_between_the_panes ... ok
[INFO] [stdout] test ui::app::tests::accepting_a_candidate_replaces_the_typed_prefix ... ok
[INFO] [stdout] test ui::app::tests::accepting_an_lsp_snippet_expands_rather_than_inserting_dollar_zero ... ok
[INFO] [stdout] test ui::app::tests::app_replays_a_dropped_bracket_into_the_editor_motion_grammar ... ok
[INFO] [stdout] test ui::app::tests::an_edge_move_is_a_no_op_outside_tmux ... ok
[INFO] [stdout] test ui::app::tests::an_action_with_no_ui_yet_still_says_so_rather_than_being_swallowed ... ok
[INFO] [stdout] test ui::app::tests::an_unrelated_key_keeps_the_modal_up ... ok
[INFO] [stdout] test ui::app::tests::bare_ctrl_h_and_ctrl_l_move_focus_between_vertical_splits_and_typing_follows ... ok
[INFO] [stdout] test ui::app::tests::code_action_menu_is_painted ... ok
[INFO] [stdout] test ui::app::tests::cnext_and_cprev_move_the_current_entry_and_jump ... ok
[INFO] [stdout] test ui::app::tests::a_split_lives_inside_its_own_tab ... ok
[INFO] [stdout] test ui::app::tests::bare_ctrl_j_and_ctrl_k_move_focus_between_horizontal_splits ... ok
[INFO] [stdout] test ui::app::tests::code_action_menu_lines_number_star_and_explain ... ok
[INFO] [stdout] test ui::app::tests::code_action_menu_navigates_and_closes ... ok
[INFO] [stdout] test ui::app::tests::cc_jumps_to_an_explicit_entry ... ok
[INFO] [stdout] test ui::app::tests::code_action_refuses_on_a_modified_buffer ... ok
[INFO] [stdout] test ui::app::tests::completion_menu_paints_buffer_word_candidates ... ok
[INFO] [stdout] test ui::app::tests::ctrl_e_reverts_native_completion_to_the_typed_text ... ok
[INFO] [stdout] test ui::app::tests::completion_menu_surfaces_builtin_snippets_with_a_snippet_badge ... ok
[INFO] [stdout] test ui::app::tests::ctrl_l_at_the_right_edge_hands_off_to_tmux_when_inside_tmux ... ok
[INFO] [stdout] test ui::app::tests::copen_renders_the_quickfix_window_with_file_line_and_text ... ok
[INFO] [stdout] test ui::app::tests::count_gt_jumps_to_an_absolute_tab ... ok
[INFO] [stdout] test ui::app::tests::ctrl_h_focuses_the_tree_and_ctrl_l_returns_to_the_editor ... ok
[INFO] [stdout] test ui::app::tests::ctrl_n_advances_the_selection ... ok
[INFO] [stdout] test ui::app::tests::ctrl_p_seeds_the_last_match ... ok
[INFO] [stdout] test ui::app::tests::ctrl_w_count_gt_widens_more_than_a_single_press ... ok
[INFO] [stdout] test ui::app::tests::ctrl_w_l_moves_focus_to_the_right_pane_and_typing_goes_there ... ok
[INFO] [stdout] test ui::app::tests::ctrl_w_pipe_maximises_the_active_pane_width ... ok
[INFO] [stdout] test ui::app::tests::ctrl_w_gt_widens_the_active_pane_and_ctrl_w_eq_re_equalises ... ok
[INFO] [stdout] test ui::app::tests::ctrl_w_r_rotates_which_buffer_sits_where ... ok
[INFO] [stdout] test ui::app::tests::ctrl_x_ctrl_e_and_ctrl_y_scroll_without_editing_or_leaving_insert ... ok
[INFO] [stdout] test plugins::git::tests::detached_head_does_not_panic_and_reports_a_short_sha ... ok
[INFO] [stdout] test ui::app::tests::ctrl_w_x_exchanges_the_two_panes_buffers ... ok
[INFO] [stdout] test ui::app::tests::a_terminal_child_that_exits_drops_to_normal_and_keeps_processing_keys ... ok
[INFO] [stdout] test ui::app::tests::ctrl_x_ctrl_l_completes_a_whole_line_and_accepts_it ... ok
[INFO] [stdout] test ui::app::tests::ctrl_x_ctrl_o_routes_to_the_language_server_and_reports_when_idle ... ok
[INFO] [stdout] test ui::app::tests::ctrl_x_ctrl_f_completes_filenames ... ok
[INFO] [stdout] test ui::app::tests::ctrl_y_accepts_the_selected_keyword ... ok
[INFO] [stdout] test ui::app::tests::ctrl_x_ctrl_v_completes_ex_command_names ... ok
[INFO] [stdout] test ui::app::tests::ctrl_x_ctrl_f_resolves_a_relative_buffer_name_against_the_tree_root ... ok
[INFO] [stdout] test ui::app::tests::deleting_a_line_in_the_menu_removes_that_mark ... ok
[INFO] [stdout] test ui::app::tests::ctrl_x_ctrl_n_scans_this_buffer_only ... ok
[INFO] [stdout] test ui::app::tests::each_window_keeps_its_own_cursor_across_focus_switches ... ok
[INFO] [stdout] test ui::app::tests::filetype_is_derived_from_the_file_extension ... ok
[INFO] [stdout] test ui::app::tests::escape_and_q_close_the_tree_from_inside_it ... ok
[INFO] [stdout] test ui::app::tests::escape_during_a_hop_cancels_without_moving_the_cursor ... ok
[INFO] [stdout] test ui::app::tests::find_buffers_picker_switches_on_enter ... ok
[INFO] [stdout] test ui::app::tests::full_render_anchors_hover_next_to_the_live_cursor_not_the_centre ... ok
[INFO] [stdout] test ui::app::tests::git_branch_segment_is_none_outside_a_repo ... ok
[INFO] [stdout] test ui::app::tests::find_files_picker_with_no_match_opens_nothing ... ok
[INFO] [stdout] test ui::app::tests::find_files_picker_filters_then_opens_on_enter ... ok
[INFO] [stdout] test ui::app::tests::grep_populates_the_quickfix_list_and_jumps_to_the_first_match ... ok
[INFO] [stdout] test ui::app::tests::gt_and_gT_cycle_through_tabs_wrapping ... ok
[INFO] [stdout] test ui::app::tests::handle_key_records_the_translated_keypress_on_the_host ... ok
[INFO] [stdout] test ui::app::tests::find_help_picker_opens_the_chosen_section ... ok
[INFO] [stdout] test ui::app::tests::guard_gates_then_lspstart_clears_it ... ok
[INFO] [stdout] test ui::app::tests::git_branch_segment_shows_a_dirty_marker ... ok
[INFO] [stdout] test ui::app::tests::harpoon_find_picker_filters_the_marks ... ok
[INFO] [stdout] test ui::app::tests::help_command_paints_the_singlish_manual_on_screen ... ok
[INFO] [stdout] test ui::app::tests::host_tab_response_is_routed_to_the_tab_handler ... ok
[INFO] [stdout] test ui::app::tests::hover_box_flips_below_when_the_cursor_is_near_the_top_edge ... ok
[INFO] [stdout] test ui::app::tests::hover_box_sits_just_above_and_column_aligned_with_the_cursor ... ok
[INFO] [stdout] test ui::app::tests::help_topic_paints_that_section_on_screen ... ok
[INFO] [stdout] test ui::app::tests::keeps_a_native_menu_on_its_own_source_as_you_type ... ok
[INFO] [stdout] test ui::app::tests::hover_box_clamps_to_the_right_edge ... ok
[INFO] [stdout] test ui::app::tests::leader_e_opens_the_sidebar_focused_and_it_paints ... ok
[INFO] [stdout] test ui::app::tests::leaving_command_mode_puts_the_cursor_back_in_the_buffer ... ok
[INFO] [stdout] test ui::app::tests::leader_e_toggles_open_then_closed_then_open_restoring_focus_and_layout ... ok
[INFO] [stdout] test ui::app::tests::leaving_insert_mode_closes_the_menu ... ok
[INFO] [stdout] test ui::app::tests::i_and_s_open_the_file_in_a_split ... ok
[INFO] [stdout] test ui::app::tests::marking_a_bufferless_scratch_is_reported_not_faked ... ok
[INFO] [stdout] test ui::app::tests::marking_two_files_lists_both_in_the_quick_menu ... ok
[INFO] [stdout] test ui::app::tests::movement_key_redraws_and_updates_the_active_windows_cursor ... ok
[INFO] [stdout] test ui::app::tests::leader_e_from_inside_the_tree_closes_it_and_the_editor_never_sees_the_keys ... ok
[INFO] [stdout] test ui::app::tests::marking_an_already_marked_file_does_not_duplicate_it ... ok
[INFO] [stdout] test ui::app::tests::no_name_shown_for_a_buffer_with_no_backing_file ... ok
[INFO] [stdout] test ui::app::tests::lsp_info_reports_a_start_decision_for_a_small_project ... ok
[INFO] [stdout] test ui::app::tests::o_on_a_directory_expands_it_and_leaves_focus_in_the_tree ... ok
[INFO] [stdout] test ui::app::tests::opening_a_file_that_cannot_be_read_reports_the_error_and_keeps_the_tree ... ok
[INFO] [stdout] test ui::app::tests::operator_composed_f_still_finds_a_char_and_does_not_trigger_hop ... ok
[INFO] [stdout] test ui::app::tests::pressing_f_paints_hop_labels_on_the_word_starts ... ok
[INFO] [stdout] test ui::app::tests::plain_ctrl_n_menu_paints_the_buffer_word ... ok
[INFO] [stdout] test ui::app::tests::own_key_press_is_ignored_by_the_release_filter_end_to_end ... ok
[INFO] [stdout] test ui::app::tests::plain_ctrl_n_opens_keyword_completion_from_buffer_words ... ok
[INFO] [stdout] test ui::app::tests::progress_line_renders_step_bar_and_eta ... ok
[INFO] [stdout] test ui::app::tests::quitting_one_split_keeps_the_editor_open_but_the_last_quit_exits ... ok
[INFO] [stdout] test ui::app::tests::pressing_n_leaves_the_conf_untouched_and_dismisses_the_popup ... ok
[INFO] [stdout] test ui::app::tests::quit_key_stops_the_loop ... ok
[INFO] [stdout] test ui::app::tests::refresh_git_status_is_throttled_within_the_ttl ... ok
[INFO] [stdout] test ui::app::tests::render_does_not_panic_on_a_full_frame ... ok
[INFO] [stdout] test ui::app::tests::pressing_y_applies_the_fix_and_writes_a_backup ... ok
[INFO] [stdout] test ui::app::tests::resize_event_requests_a_redraw ... ok
[INFO] [stdout] test ui::app::tests::selecting_a_mark_in_the_menu_jumps_to_it_at_its_saved_cursor ... ok
[INFO] [stdout] test ui::app::tests::tabclose_removes_a_tab_and_guards_the_last_one ... ok
[INFO] [stdout] test ui::app::tests::tabnew_opens_a_second_tab_and_switches_to_it ... ok
[INFO] [stdout] test ui::app::tests::t_opens_the_file_in_a_new_tab ... ok
[INFO] [stdout] test ui::app::tests::statusline_shows_the_git_branch_segment ... ok
[INFO] [stdout] test ui::app::tests::i_does_not_reenter_terminal_mode_after_the_child_exits ... ok
[INFO] [stdout] test ui::app::tests::the_command_line_caret_follows_a_mid_line_cursor ... ok
[INFO] [stdout] test ui::app::tests::the_find_picker_with_no_marks_says_so_and_opens_no_overlay ... ok
[INFO] [stdout] test ui::app::tests::the_command_line_grows_character_by_character_as_it_is_typed ... ok
[INFO] [stdout] test ui::app::tests::the_sidebar_reserves_columns_and_the_buffer_keeps_the_rest ... ok
[INFO] [stdout] test ui::app::tests::the_quickfix_window_focus_routes_navigation_keys ... ok
[INFO] [stdout] test ui::app::tests::the_tab_completion_wildmenu_paints_above_the_command_line ... ok
[INFO] [stdout] test ui::app::tests::the_tabline_highlights_the_active_tab ... ok
[INFO] [stdout] test ui::app::tests::the_terminal_cursor_follows_focus_between_the_tree_and_the_buffer ... ok
[INFO] [stdout] test ui::app::tests::the_tabline_shows_only_with_two_or_more_tabs ... ok
[INFO] [stdout] test ui::app::tests::the_tree_editor_boundary_paints_a_divider_column ... ok
[INFO] [stdout] test ui::app::tests::tmux_pane_flag_maps_directions_to_tmux_compass_letters ... ok
[INFO] [stdout] test ui::app::tests::a_keystroke_in_terminal_mode_reaches_the_child_and_echoes ... ok
[INFO] [stdout] test ui::app::tests::ctrl_backslash_ctrl_n_leaves_terminal_mode_and_i_reenters ... ok
[INFO] [stdout] test ui::app::tests::typing_an_ex_command_echoes_it_on_the_command_line ... ok
[INFO] [stdout] test ui::app::tests::tmux_consent_popup_paints_the_question_and_the_exact_change ... ok
[INFO] [stdout] test ui::app::tests::typing_a_hop_label_jumps_the_cursor_to_that_word ... ok
[INFO] [stdout] test ui::app::tests::the_tree_survives_a_terminal_resize ... ok
[INFO] [stdout] test ui::app::tests::typing_auto_opens_and_ctrl_e_dismisses_the_menu ... ok
[INFO] [stdout] test ui::app::tests::unmapped_key_does_not_request_a_redraw ... ok
[INFO] [stdout] test ui::app::tests::vsplit_opening_a_second_file_shows_two_different_buffers_side_by_side ... ok
[INFO] [stdout] test ui::bootstrap::tests::placeholder_host_moves_the_cursor_and_clamps_to_the_buffer ... ok
[INFO] [stdout] test ui::bootstrap::tests::placeholder_host_reports_quit_on_q ... ok
[INFO] [stdout] test ui::app::tests::with_the_tree_open_but_the_buffer_focused_j_moves_the_text_cursor_again ... ok
[INFO] [stdout] test ui::app::tests::write_lsp_edits_reports_an_unwritable_path ... ok
[INFO] [stdout] test ui::app::tests::term_command_spawns_a_pty_and_paints_its_output ... ok
[INFO] [stdout] test ui::app::tests::write_lsp_edits_writes_to_disk_and_reloads_the_active_buffer ... ok
[INFO] [stdout] test ui::bootstrap::tests::placeholder_host_reports_unchanged_at_the_buffer_edge ... ok
[INFO] [stdout] test ui::bootstrap::tests::text_buffer_implements_bufferview_matching_its_own_api ... ok
[INFO] [stdout] test ui::cmdline::tests::command_prompt_shows_colon_prefix ... ok
[INFO] [stdout] test ui::cmdline::tests::cursor_column_accounts_for_the_prefix_and_grapheme_position ... ok
[INFO] [stdout] test ui::completion_menu::tests::anchored_above_clamps_the_right_edge ... ok
[INFO] [stdout] test ui::cmdline::tests::info_messages_do_not_use_the_error_colour ... ok
[INFO] [stdout] test ui::cmdline::tests::no_cursor_column_when_no_prompt_is_active ... ok
[INFO] [stdout] test ui::cmdline::tests::search_prompts_show_slash_or_question_mark ... ok
[INFO] [stdout] test ui::completion_menu::tests::anchored_above_sits_above_the_cursor_and_col_aligns ... ok
[INFO] [stdout] test ui::completion_menu::tests::anchored_above_flips_below_near_the_top_edge ... ok
[INFO] [stdout] test ui::completion_menu::tests::badge_reads_the_kind_for_lsp_and_the_source_otherwise ... ok
[INFO] [stdout] test ui::completion_menu::tests::menu_is_opaque_no_buffer_text_bleeds_through ... ok
[INFO] [stdout] test ui::completion_menu::tests::menu_paints_label_badge_and_detail ... ok
[INFO] [stdout] test ui::app::tests::with_the_tree_focused_j_moves_the_tree_and_not_the_text_cursor ... ok
[INFO] [stdout] test ui::completion_menu::tests::menu_rect_drops_below_the_cursor_when_there_is_room ... ok
[INFO] [stdout] test ui::event::tests::escape_and_enter_map_to_named_variants ... ok
[INFO] [stdout] test ui::cmdline::tests::error_messages_use_the_error_colour ... ok
[INFO] [stdout] test ui::cmdline::tests::message_shown_when_no_prompt_is_active ... ok
[INFO] [stdout] test ui::event::tests::function_keys_carry_their_number ... ok
[INFO] [stdout] test ui::completion_menu::tests::menu_highlights_the_selected_row_with_a_distinct_background ... ok
[INFO] [stdout] test ui::event::tests::plain_char_maps_through ... ok
[INFO] [stdout] test ui::event::tests::release_events_are_swallowed ... ok
[INFO] [stdout] test ui::event::tests::repeat_events_map_the_same_as_press ... ok
[INFO] [stdout] test ui::completion_menu::tests::menu_rect_flips_above_the_cursor_near_the_bottom_edge ... ok
[INFO] [stdout] test ui::completion_menu::tests::menu_rect_shifts_left_to_stay_inside_the_area ... ok
[INFO] [stdout] test ui::event::tests::ctrl_modifier_is_captured ... ok
[INFO] [stdout] test ui::filetree::tests::a_leader_that_is_not_followed_by_e_does_not_swallow_the_next_key ... ok
[INFO] [stdout] test ui::filetree::tests::capital_i_toggles_dotfiles ... ok
[INFO] [stdout] test ui::filetree::tests::an_unreadable_directory_renders_an_honest_error_row ... ok
[INFO] [stdout] test ui::filetree::tests::c_on_a_file_refuses_rather_than_rerooting_at_a_file ... ok
[INFO] [stdout] test ui::filetree::tests::c_sets_the_selected_directory_as_the_new_root ... ok
[INFO] [stdout] test ui::filetree::tests::capital_o_expands_the_whole_subtree ... ok
[INFO] [stdout] test ui::app::tests::deleting_a_terminal_buffer_drops_its_session ... ok
[INFO] [stdout] test ui::filetree::tests::capital_r_picks_up_a_file_created_outside_the_editor ... ok
[INFO] [stdout] test ui::filetree::tests::a_long_tree_scrolls_to_keep_the_selection_visible ... ok
[INFO] [stdout] test ui::filetree::tests::capital_x_collapses_everything_and_resets_the_cursor ... ok
[INFO] [stdout] test ui::filetree::tests::expanding_a_directory_indents_its_children_one_level_further ... ok
[INFO] [stdout] test ui::filetree::tests::j_and_k_stop_at_the_ends_without_asking_for_a_redraw ... ok
[INFO] [stdout] test ui::filetree::tests::divider_is_drawn_down_the_right_edge_and_degrades_to_ascii ... ok
[INFO] [stdout] test ui::filetree::tests::ctrl_d_and_ctrl_u_scroll_the_tree_half_a_page ... ok
[INFO] [stdout] test ui::filetree::tests::leader_e_closes_the_tree_from_inside_it ... ok
[INFO] [stdout] test ui::filetree::tests::o_on_a_file_asks_the_app_to_open_it ... ok
[INFO] [stdout] test ui::filetree::tests::ctrl_d_at_the_bottom_is_a_no_op ... ok
[INFO] [stdout] test ui::filetree::tests::plain_u_still_navigates_up_a_directory_not_scrolls ... ok
[INFO] [stdout] test ui::filetree::tests::q_and_escape_close_the_tree ... ok
[INFO] [stdout] test ui::filetree::tests::the_root_and_its_children_render_with_ascii_icons_and_depth_indentation ... ok
[INFO] [stdout] test ui::filetree::tests::the_selection_highlight_is_stronger_when_the_panel_has_focus ... ok
[INFO] [stdout] test ui::filetree::tests::the_split_and_tab_keys_carry_their_target ... ok
[INFO] [stdout] test ui::filetree::tests::rendering_survives_a_terminal_squeezed_to_nothing ... ok
[INFO] [stdout] test ui::filetree::tests::x_closes_the_parent_and_puts_the_cursor_on_it ... ok
[INFO] [stdout] test ui::gutter::tests::gutter_width_has_a_three_digit_floor_plus_padding ... ok
[INFO] [stdout] test ui::gutter::tests::no_numbers_when_both_options_are_off ... ok
[INFO] [stdout] test ui::gutter::tests::pure_absolute_ignores_cursor_position ... ok
[INFO] [stdout] test ui::gutter::tests::hybrid_mode_shows_absolute_on_cursor_line_and_relative_elsewhere ... ok
[INFO] [stdout] test ui::harpoon::tests::d_deletes_the_selected_mark_and_reports_its_index ... ok
[INFO] [stdout] test ui::harpoon::tests::deleting_the_last_row_pulls_the_selection_back_into_range ... ok
[INFO] [stdout] test ui::harpoon::tests::enter_jumps_to_the_selected_mark_at_its_saved_cursor ... ok
[INFO] [stdout] test ui::harpoon::tests::escape_and_q_both_close ... ok
[INFO] [stdout] test ui::harpoon::tests::harpoon_menu_is_opaque_no_buffer_text_bleeds_through ... ok
[INFO] [stdout] test ui::harpoon::tests::selection_wraps_both_ways ... ok
[INFO] [stdout] test ui::harpoon::tests::the_box_paints_a_numbered_list_of_marks ... ok
[INFO] [stdout] test ui::filetree::tests::u_and_its_synonyms_reroot_at_the_parent ... ok
[INFO] [stdout] test ui::highlight::tests::a_tab_before_a_span_shifts_the_colour_to_the_right_display_columns ... ok
[INFO] [stdout] test ui::gutter::tests::pure_relative_shows_zero_on_cursor_line ... ok
[INFO] [stdout] test ui::highlight::tests::a_wide_char_before_a_span_shifts_by_two_columns_per_char ... ok
[INFO] [stdout] test ui::highlight::tests::keyword_span_colours_only_its_columns ... ok
[INFO] [stdout] test ui::harpoon::tests::a_digit_jumps_straight_to_that_slot ... ok
[INFO] [stdout] test ui::highlight::tests::punctuation_maps_to_default_fg_so_it_is_not_repainted ... ok
[INFO] [stdout] test ui::harpoon::tests::an_empty_menu_says_so ... ok
[INFO] [stdout] test ui::hop::tests::a_miss_cancels ... ok
[INFO] [stdout] test ui::hop::tests::a_prefix_narrows_then_the_second_char_jumps ... ok
[INFO] [stdout] test ui::hop::tests::a_unique_single_char_label_jumps ... ok
[INFO] [stdout] test ui::lsp_ui::tests::info_box_paints_its_lines_and_highlights_the_selection ... ok
[INFO] [stdout] test ui::overlay::tests::a_float_reserves_nothing_and_is_centred ... ok
[INFO] [stdout] test ui::overlay::tests::a_sidebar_always_leaves_the_buffer_at_least_one_column ... ok
[INFO] [stdout] test ui::overlay::tests::a_sidebar_never_takes_more_than_two_fifths_of_a_narrow_screen ... ok
[INFO] [stdout] test ui::overlay::tests::a_sidebar_reserves_its_columns_from_the_left_plus_a_border ... ok
[INFO] [stdout] test ui::filetree::tests::the_arrow_keys_are_synonyms_for_j_and_k ... ok
[INFO] [stdout] test ui::picker::tests::backspace_widens_the_list_again ... ok
[INFO] [stdout] test ui::picker::tests::ctrl_n_and_ctrl_p_move_the_selection ... ok
[INFO] [stdout] test ui::filetree::tests::question_mark_shows_the_keymap_help_and_the_next_key_dismisses_it ... ok
[INFO] [stdout] test ui::picker::tests::enter_confirms_the_selected_row_as_an_open ... ok
[INFO] [stdout] test ui::picker::tests::escape_and_ctrl_c_both_close ... ok
[INFO] [stdout] test ui::picker::tests::the_box_paints_the_prompt_and_the_candidates ... ok
[INFO] [stdout] test ui::picker::tests::typing_narrows_the_match_list ... ok
[INFO] [stdout] test ui::scrolling::tests::horizontal_scroll_follows_cursor_past_the_left_edge ... ok
[INFO] [stdout] test ui::scrolling::tests::horizontal_scroll_follows_cursor_past_the_right_edge ... ok
[INFO] [stdout] test ui::scrolling::tests::horizontal_scroll_is_unchanged_when_cursor_already_visible ... ok
[INFO] [stdout] test ui::scrolling::tests::no_scroll_needed_when_cursor_already_within_bounds ... ok
[INFO] [stdout] test ui::scrolling::tests::scrolloff_larger_than_half_viewport_is_clamped ... ok
[INFO] [stdout] test ui::scrolling::tests::scrolls_up_to_keep_scrolloff_above_cursor ... ok
[INFO] [stdout] test ui::scrolling::tests::small_viewport_clamps_scrolloff_to_half_height ... ok
[INFO] [stdout] test ui::scrolling::tests::whole_buffer_fits_in_viewport_top_is_always_zero ... ok
[INFO] [stdout] test ui::snippet::tests::a_mirrored_tabstop_records_every_range_primary_first ... ok
[INFO] [stdout] test ui::filetree::tests::the_split_keys_on_a_directory_say_so_rather_than_doing_nothing ... ok
[INFO] [stdout] test ui::snippet::tests::no_tabstops_yields_no_session ... ok
[INFO] [stdout] test ui::picker::tests::picker_is_opaque_no_buffer_text_bleeds_through ... ok
[INFO] [stdout] test ui::snippet::tests::offset_counts_graphemes_not_chars_after_an_astral_placeholder ... ok
[INFO] [stdout] test ui::scrolling::tests::bottom_of_file_clamps_instead_of_padding_past_the_end ... ok
[INFO] [stdout] test ui::snippet::tests::offset_on_the_first_line_is_relative_to_the_insertion_column ... ok
[INFO] [stdout] test ui::scrolling::tests::scrolls_down_to_keep_scrolloff_below_cursor ... ok
[INFO] [stdout] test ui::statusline::tests::git_branch_segment_is_omitted_when_none ... ok
[INFO] [stdout] test ui::statusline::tests::glyph_separators_are_used_when_enabled ... ok
[INFO] [stdout] test ui::statusline::tests::mode_color_differs_between_normal_and_insert ... ok
[INFO] [stdout] test ui::statusline::tests::mode_label_and_filename_appear_in_the_rendered_line ... ok
[INFO] [stdout] test ui::statusline::tests::percent_through_file_computes_a_percentage_in_the_middle ... ok
[INFO] [stdout] test ui::statusline::tests::percent_through_file_reports_top_bot_all ... ok
[INFO] [stdout] test ui::statusline::tests::plain_separators_are_used_when_glyphs_disabled ... ok
[INFO] [stdout] test ui::tab::tests::a_tabs_tree_round_trips_through_an_away_and_back_cycle ... ok
[INFO] [stdout] test ui::snippet::tests::offset_after_a_newline_drops_a_line_and_resets_the_column ... ok
[INFO] [stdout] test ui::tab::tests::close_active_lands_on_the_left_neighbour ... ok
[INFO] [stdout] test ui::tab::tests::close_active_leftmost_lands_on_zero ... ok
[INFO] [stdout] test ui::tab::tests::close_active_refuses_on_the_last_tab ... ok
[INFO] [stdout] test ui::lsp_ui::tests::info_box_is_opaque_no_buffer_text_bleeds_through ... ok
[INFO] [stdout] test ui::tab::tests::focus_clamps_out_of_range_to_the_last_tab ... ok
[INFO] [stdout] test ui::scrolling::tests::top_of_file_does_not_pad_scrolloff_with_blank_space ... ok
[INFO] [stdout] test ui::tab::tests::focus_on_the_already_active_tab_is_a_no_op ... ok
[INFO] [stdout] test ui::tab::tests::focus_swaps_the_target_tree_into_live ... ok
[INFO] [stdout] test ui::tab::tests::single_starts_with_one_active_tab ... ok
[INFO] [stdout] test ui::tab::tests::step_by_more_than_one_moves_that_many_tabs ... ok
[INFO] [stdout] test ui::tab::tests::step_wraps_forward_and_backward ... ok
[INFO] [stdout] test ui::tabline::tests::a_modified_tab_shows_a_plus ... ok
[INFO] [stdout] test ui::tabline::tests::overflow_into_a_tiny_area_does_not_panic_and_stays_in_bounds ... ok
[INFO] [stdout] test ui::tab::tests::only_keeps_just_the_active_tab_and_leaves_live_alone ... ok
[INFO] [stdout] test ui::tab::tests::open_after_active_inserts_after_and_makes_new_tab_live ... ok
[INFO] [stdout] test ui::tabline::tests::zero_width_area_is_a_no_op_and_does_not_panic ... ok
[INFO] [stdout] test ui::termgrid::tests::cursor_position_is_returned_offset_by_area ... ok
[INFO] [stdout] test ui::termgrid::tests::default_colours_fall_back_to_theme ... ok
[INFO] [stdout] test ui::termgrid::tests::exit_banner_on_zero_height_is_a_noop ... ok
[INFO] [stdout] test ui::termgrid::tests::exit_banner_paints_on_the_last_row ... ok
[INFO] [stdout] test ui::termgrid::tests::oversized_grid_is_clipped_to_area ... ok
[INFO] [stdout] [0 q[?1049ltest ui::terminal::tests::drop_marks_the_guard_restored_exactly_once ... ok
[INFO] [stdout] test ui::terminal::tests::restoration_closure_runs_exactly_once_when_invoked ... ok
[INFO] [stdout] test ui::textarea::tests::a_block_comment_open_above_the_viewport_still_colours_the_visible_line ... ok
[INFO] [stdout] test ui::textarea::tests::a_block_selection_stops_at_the_end_of_a_short_line ... ok
[INFO] [stdout] test ui::textarea::tests::a_closed_fold_renders_one_fold_line_and_hides_its_content ... ok
[INFO] [stdout] test ui::textarea::tests::a_rust_keyword_is_painted_in_the_theme_keyword_colour_via_test_backend ... ok
[INFO] [stdout] test ui::textarea::tests::a_search_match_paints_dark_text_on_the_search_background ... ok
[INFO] [stdout] test ui::textarea::tests::an_open_fold_renders_every_line_normally ... ok
[INFO] [stdout] test ui::textarea::tests::blockwise_visual_selects_a_rectangle ... ok
[INFO] [stdout] test ui::textarea::tests::charwise_visual_across_lines_is_partial_at_each_end_and_whole_in_between ... ok
[INFO] [stdout] test ui::textarea::tests::charwise_visual_highlights_from_the_anchor_to_the_cursor ... ok
[INFO] [stdout] test ui::textarea::tests::cjk_and_emoji_report_double_width ... ok
[INFO] [stdout] test ui::textarea::tests::cjk_line_renders_at_correct_width_via_test_backend ... ok
[INFO] [stdout] test ui::textarea::tests::colorcolumn_guide_appears_at_configured_column_via_test_backend ... ok
[INFO] [stdout] test ui::textarea::tests::cursor_screen_position_accounts_for_gutter_and_scroll ... ok
[INFO] [stdout] test ui::textarea::tests::cursor_shapes_match_vim_conventions ... ok
[INFO] [stdout] test ui::textarea::tests::hlsearch_paints_every_match_on_the_visible_lines ... ok
[INFO] [stdout] test ui::textarea::tests::hybrid_line_numbers_render_correctly_via_test_backend ... ok
[INFO] [stdout] test ui::textarea::tests::linewise_visual_selects_every_line_in_range_whole ... ok
[INFO] [stdout] test ui::snippet::tests::session_places_tabstops_and_navigates_forward_and_back ... ok
[INFO] [stdout] test ui::textarea::tests::linewise_visual_selects_the_whole_line_regardless_of_the_cursor_column ... ok
[INFO] [stdout] test ui::textarea::tests::no_selection_paints_no_highlight ... ok
[INFO] [stdout] test ui::textarea::tests::selecting_an_empty_line_still_shows_one_highlighted_cell ... ok
[INFO] [stdout] test ui::textarea::tests::tab_occupies_four_columns_via_test_backend ... ok
[INFO] [stdout] test ui::textarea::tests::tabs_expand_to_tabstop_columns ... ok
[INFO] [stdout] test ui::tabline::tests::no_name_buffer_renders_its_placeholder ... ok
[INFO] [stdout] test ui::tabline::tests::the_row_is_fully_painted_to_the_full_width ... ok
[INFO] [stdout] test ui::tabline::tests::two_entries_render_numbers_names_and_highlight_the_active_one ... ok
[INFO] [stdout] test ui::textarea::tests::the_selection_is_measured_in_display_columns_not_graphemes ... ok
[INFO] [stdout] test ui::textarea::tests::the_selection_wins_over_the_search_highlight_where_they_overlap ... ok
[INFO] [stdout] test ui::theme::tests::default_theme_is_gruvbox_matching_configs_default ... ok
[INFO] [stdout] test ui::theme::tests::from_name_falls_back_to_gruvbox_for_unknown_names ... ok
[INFO] [stdout] test ui::theme::tests::from_name_looks_up_gruvbox_case_insensitively ... ok
[INFO] [stdout] test ui::theme::tests::gruvbox_bright_variants_match_the_published_palette ... ok
[INFO] [stdout] test ui::theme::tests::gruvbox_neutral_backgrounds_match_the_published_palette ... ok
[INFO] [stdout] test ui::theme::tests::hex_parses_correctly ... ok
[INFO] [stdout] test ui::theme::tests::gruvbox_bg_and_fg_match_the_published_palette ... ok
[INFO] [stdout] test ui::whichkey::tests::a_row_paints_its_key_and_description ... ok
[INFO] [stdout] test ui::window::tests::a_count_scales_the_resize_step ... ok
[INFO] [stdout] test ui::tab::tests::goto_1based_is_one_based_and_clamps ... ok
[INFO] [stdout] test ui::tab::tests::open_after_active_inserts_immediately_after_a_middle_tab ... ok
[INFO] [stdout] test ui::termgrid::tests::plain_text_paints_into_the_buffer ... ok
[INFO] [stdout] test ui::textarea::tests::the_search_highlight_is_measured_in_display_columns_not_graphemes ... ok
[INFO] [stdout] test ui::textarea::tests::the_selection_highlights_the_background_and_keeps_the_text ... ok
[INFO] [stdout] test ui::whichkey::tests::which_key_is_opaque_no_buffer_text_bleeds_through ... ok
[INFO] [stdout] test ui::window::tests::a_fresh_tree_has_exactly_one_window ... ok
[INFO] [stdout] test ui::window::tests::a_horizontal_split_reserves_a_full_width_divider_row_between_the_panes ... ok
[INFO] [stdout] test ui::window::tests::a_single_window_has_no_separators ... ok
[INFO] [stdout] test ui::window::tests::a_vertical_split_reserves_a_full_height_divider_column_between_the_panes ... ok
[INFO] [stdout] test ui::window::tests::closing_a_split_window_returns_to_one_window ... ok
[INFO] [stdout] test ui::window::tests::growing_width_widens_the_active_pane_and_equalize_undoes_it ... ok
[INFO] [stdout] test ui::window::tests::layout_and_separator_together_cover_the_full_area_for_a_vertical_split ... ok
[INFO] [stdout] test ui::window::tests::rotate_forward_and_back_are_inverses ... ok
[INFO] [stdout] test ui::window::tests::split_produces_two_windows_on_the_same_buffer ... ok
[INFO] [stdout] test ui::window::tests::vertical_split_places_windows_side_by_side ... ok
[INFO] [stdout] test ui::window::tests::closing_the_only_window_reports_false ... ok
[INFO] [stdout] test ui::window::tests::maximize_width_favours_the_active_pane ... ok
[INFO] [stdout] test ui::window::tests::exchange_swaps_the_two_panes_buffers_and_follows_the_swap ... ok
[INFO] [stdout] test ui::window::tests::horizontal_split_stacks_windows_top_and_bottom ... ok
[INFO] [stdout] test ui::window::tests::nested_splits_produce_three_windows ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/kvim-09a0bfb36da53bdf)
[INFO] [stdout] test ui::window::tests::resize_clamps_so_both_panes_stay_on_screen ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 923 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 0.38s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests kopitiam_neovim
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307", kill_on_drop: false }`
[INFO] [stdout] 62176842406f2c9c065ee07818bc18ce6172874c2fd0397e5fd4138f1466b307
