[INFO] fetching crate ftui-text 0.2.1... [INFO] testing ftui-text-0.2.1 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate ftui-text 0.2.1 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate ftui-text 0.2.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate ftui-text 0.2.1 [INFO] tweaked toml for crates.io crate ftui-text 0.2.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate ftui-text 0.2.1 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate ftui-text 0.2.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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 08483f8180a635cf022672a6245351533b19971928ba8fa91bc10ab6f7429ae7 [INFO] running `Command { std: "docker" "start" "-a" "08483f8180a635cf022672a6245351533b19971928ba8fa91bc10ab6f7429ae7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "08483f8180a635cf022672a6245351533b19971928ba8fa91bc10ab6f7429ae7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "08483f8180a635cf022672a6245351533b19971928ba8fa91bc10ab6f7429ae7", kill_on_drop: false }` [INFO] [stdout] 08483f8180a635cf022672a6245351533b19971928ba8fa91bc10ab6f7429ae7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 891fab3372709548bced29f9f3308d68724a17b7d118527dd16222a5b6ecadf6 [INFO] running `Command { std: "docker" "start" "-a" "891fab3372709548bced29f9f3308d68724a17b7d118527dd16222a5b6ecadf6", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook v0.4.3 [INFO] [stderr] Compiling unicode-display-width v0.3.0 [INFO] [stderr] Compiling bumpalo v3.20.1 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling arc-swap v1.8.2 [INFO] [stderr] Compiling str_indices v0.4.4 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling ropey v1.6.1 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling ftui-core v0.2.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling ftui-render v0.2.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling ftui-style v0.2.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling ftui-layout v0.2.1 [INFO] [stderr] Compiling ftui-text v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.07s [INFO] running `Command { std: "docker" "inspect" "891fab3372709548bced29f9f3308d68724a17b7d118527dd16222a5b6ecadf6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "891fab3372709548bced29f9f3308d68724a17b7d118527dd16222a5b6ecadf6", kill_on_drop: false }` [INFO] [stdout] 891fab3372709548bced29f9f3308d68724a17b7d118527dd16222a5b6ecadf6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 30dd03bb250ff9c1b48d7f871b3e7223fdc045bf98d8fb804864e86e1aa99dd0 [INFO] running `Command { std: "docker" "start" "-a" "30dd03bb250ff9c1b48d7f871b3e7223fdc045bf98d8fb804864e86e1aa99dd0", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling clap_builder v4.5.59 [INFO] [stderr] Compiling criterion-plot v0.8.2 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling clap v4.5.59 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tracing-test-macro v0.2.6 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling tracing-test v0.2.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling ftui-core v0.2.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling proptest v1.10.0 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling criterion v0.8.2 [INFO] [stderr] Compiling ftui-render v0.2.1 [INFO] [stderr] Compiling ftui-layout v0.2.1 [INFO] [stderr] Compiling ftui-style v0.2.1 [INFO] [stderr] Compiling ftui-text v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 03s [INFO] running `Command { std: "docker" "inspect" "30dd03bb250ff9c1b48d7f871b3e7223fdc045bf98d8fb804864e86e1aa99dd0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "30dd03bb250ff9c1b48d7f871b3e7223fdc045bf98d8fb804864e86e1aa99dd0", kill_on_drop: false }` [INFO] [stdout] 30dd03bb250ff9c1b48d7f871b3e7223fdc045bf98d8fb804864e86e1aa99dd0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d8ddc2e98bf288f6c642b4646edb21077ee7b4710836a4e8573dbb7427d9c556 [INFO] running `Command { std: "docker" "start" "-a" "d8ddc2e98bf288f6c642b4646edb21077ee7b4710836a4e8573dbb7427d9c556", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ftui_text-294e40fb37fdc38e) [INFO] [stdout] [INFO] [stdout] running 1079 tests [INFO] [stdout] test cluster_map::tests::ascii_text ... ok [INFO] [stdout] test cluster_map::tests::byte_to_cell_wide ... ok [INFO] [stdout] test cluster_map::tests::byte_range_to_cell_range_ascii ... ok [INFO] [stdout] test cluster_map::tests::byte_to_cell_ascii ... ok [INFO] [stdout] test cluster_map::tests::byte_range_to_cell_range_wide ... ok [INFO] [stdout] test cluster_map::tests::cell_range_to_byte_range_wide ... ok [INFO] [stdout] test cluster_map::tests::cell_to_byte_ascii ... ok [INFO] [stdout] test cluster_map::tests::cell_to_byte_wide ... ok [INFO] [stdout] test cluster_map::tests::cell_range_to_byte_range_ascii ... ok [INFO] [stdout] test cluster_map::tests::combining_marks ... ok [INFO] [stdout] test cluster_map::tests::cell_to_entry_continuation ... ok [INFO] [stdout] test cluster_map::tests::extract_text_for_cells_ascii ... ok [INFO] [stdout] test cluster_map::tests::from_shaped_run_noop ... ok [INFO] [stdout] test cluster_map::tests::from_shaped_run_empty ... ok [INFO] [stdout] test cluster_map::tests::grapheme_to_cell_and_back ... ok [INFO] [stdout] test cluster_map::tests::roundtrip_byte_cell_byte ... ok [INFO] [stdout] test cluster_map::tests::roundtrip_cell_byte_cell ... ok [INFO] [stdout] test cluster_map::tests::wide_chars ... ok [INFO] [stdout] test cluster_map::tests::contiguity ... ok [INFO] [stdout] test cluster_map::tests::empty_text ... ok [INFO] [stdout] test cluster_map::tests::extract_text_empty_range ... ok [INFO] [stdout] test cursor::tests::byte_index_roundtrip ... ok [INFO] [stdout] test cursor::tests::clamp_out_of_bounds_grapheme ... ok [INFO] [stdout] test cursor::tests::clamp_out_of_bounds_line ... ok [INFO] [stdout] test cluster_map::tests::monotonicity ... ok [INFO] [stdout] test cursor::tests::byte_index_roundtrip_multibyte ... ok [INFO] [stdout] test cursor::tests::combining_mark_is_single_grapheme ... ok [INFO] [stdout] test cluster_map::tests::mixed_ascii_and_wide ... ok [INFO] [stdout] test cursor::tests::clamp_multiline_out_of_bounds ... ok [INFO] [stdout] test cursor::tests::document_end_is_last_line_last_grapheme ... ok [INFO] [stdout] test cursor::tests::empty_text_document_start_end ... ok [INFO] [stdout] test cursor::tests::document_start_is_0_0 ... ok [INFO] [stdout] test cursor::tests::empty_text_move_left_is_noop ... ok [INFO] [stdout] test cursor::tests::emoji_zwj_grapheme_width ... ok [INFO] [stdout] test cursor::tests::empty_text_navigation ... ok [INFO] [stdout] test cursor::tests::empty_text_move_right_is_noop ... ok [INFO] [stdout] test cluster_map::tests::extract_text_for_cells_wide ... ok [INFO] [stdout] test cursor::tests::from_visual_col_beyond_line_clamps ... ok [INFO] [stdout] test cursor::tests::byte_index_roundtrip_multiline_unicode ... ok [INFO] [stdout] test cursor::tests::line_end_moves_to_last_grapheme ... ok [INFO] [stdout] test cursor::tests::line_start_end_multiline ... ok [INFO] [stdout] test cursor::tests::grapheme_class_classification ... ok [INFO] [stdout] test cursor::tests::from_visual_col_with_wide_chars ... ok [INFO] [stdout] test cursor::tests::move_left_at_document_start_is_noop ... ok [INFO] [stdout] test cursor::tests::left_right_grapheme_moves ... ok [INFO] [stdout] test cursor::tests::from_visual_col_zero_on_empty_line ... ok [INFO] [stdout] test cursor::tests::move_left_wraps_to_previous_line ... ok [INFO] [stdout] test cursor::tests::move_right_wraps_to_next_line ... ok [INFO] [stdout] test cursor::tests::move_up_at_first_line_is_noop ... ok [INFO] [stdout] test cursor::tests::move_up_down_preserves_visual_col ... ok [INFO] [stdout] test cursor::tests::move_up_shorter_line_clamps_grapheme ... ok [INFO] [stdout] test cursor::tests::move_down_at_last_line_is_noop ... ok [INFO] [stdout] test cursor::tests::move_word_left_in_line_edge_cases ... ok [INFO] [stdout] test cursor::tests::line_start_moves_to_column_zero ... ok [INFO] [stdout] test cursor::tests::tab_counts_as_one_cell ... ok [INFO] [stdout] test cursor::tests::move_word_right_in_line_edge_cases ... ok [INFO] [stdout] test cursor::tests::move_right_at_document_end_is_noop ... ok [INFO] [stdout] test cursor::tests::move_down_shorter_line_clamps_grapheme ... ok [INFO] [stdout] test cluster_map::tests::byte_to_entry ... ok [INFO] [stdout] test cursor::tests::word_right_at_line_end_wraps ... ok [INFO] [stdout] test cursor::tests::word_movement_at_document_boundaries ... ok [INFO] [stdout] test cursor::tests::word_left_from_end ... ok [INFO] [stdout] test cursor::tests::word_right_from_start ... ok [INFO] [stdout] test cursor::tests::word_movement_respects_classes ... ok [INFO] [stdout] test cursor::tests::word_right_skips_punctuation ... ok [INFO] [stdout] test cursor::tests::visual_col_to_grapheme_clamps_inside_wide ... ok [INFO] [stdout] test cursor::tests::wide_char_visual_col ... ok [INFO] [stdout] test cursor::tests::word_left_at_line_start_wraps ... ok [INFO] [stdout] test editor::tests::clear_clears_undo ... ok [INFO] [stdout] test editor::tests::clear_resets ... ok [INFO] [stdout] test editor::tests::crlf_handling ... ok [INFO] [stdout] test editor::tests::cursor_clamp_after_set_text ... ok [INFO] [stdout] test editor::tests::cursor_position_after_multiline_insert ... ok [INFO] [stdout] test editor::tests::cursor_stays_in_bounds_after_delete ... ok [INFO] [stdout] test editor::tests::default_impl ... ok [INFO] [stdout] test editor::tests::delete_backward ... ok [INFO] [stdout] test editor::tests::delete_backward_across_lines ... ok [INFO] [stdout] test editor::tests::delete_backward_at_beginning ... ok [INFO] [stdout] test editor::tests::delete_backward_joins_lines ... ok [INFO] [stdout] test editor::tests::delete_backward_removes_selection ... ok [INFO] [stdout] test editor::proptests::insert_delete_roundtrip ... ok [INFO] [stdout] test editor::tests::delete_forward ... ok [INFO] [stdout] test cluster_map::tests::byte_to_cell_mid_cluster_snaps ... ok [INFO] [stdout] test editor::tests::delete_forward_with_selection ... ok [INFO] [stdout] test editor::tests::delete_to_end_at_document_end ... ok [INFO] [stdout] test editor::tests::delete_forward_at_end ... ok [INFO] [stdout] test editor::tests::delete_to_end_joins_when_at_line_end ... ok [INFO] [stdout] test editor::tests::delete_to_end_of_line ... ok [INFO] [stdout] test editor::tests::delete_forward_joins_lines ... ok [INFO] [stdout] test editor::tests::delete_word_backward ... ok [INFO] [stdout] test editor::tests::delete_word_backward_with_selection ... ok [INFO] [stdout] test editor::tests::delete_word_backward_multiple_spaces ... ok [INFO] [stdout] test editor::tests::delete_word_backward_at_start_is_noop ... ok [INFO] [stdout] test editor::tests::empty_selection_returns_none ... ok [INFO] [stdout] test editor::tests::insert_empty_text_is_noop ... ok [INFO] [stdout] test editor::tests::insert_in_middle ... ok [INFO] [stdout] test cluster_map::tests::grapheme_to_byte_and_back ... ok [INFO] [stdout] test editor::tests::insert_text ... ok [INFO] [stdout] test editor::tests::insert_char_at_end ... ok [INFO] [stdout] test editor::tests::insert_replaces_selection ... ok [INFO] [stdout] test editor::tests::insert_text_sanitizes_controls ... ok [INFO] [stdout] test editor::tests::line_text_works ... ok [INFO] [stdout] test editor::tests::insert_newline ... ok [INFO] [stdout] test editor::tests::line_text_out_of_bounds ... ok [INFO] [stdout] test editor::tests::max_history_respected ... ok [INFO] [stdout] test editor::tests::many_lines ... ok [INFO] [stdout] test editor::tests::mixed_newlines ... ok [INFO] [stdout] test editor::tests::move_left_at_start_is_noop ... ok [INFO] [stdout] test editor::tests::move_left_right ... ok [INFO] [stdout] test editor::tests::move_to_document_start_end ... ok [INFO] [stdout] test editor::tests::move_to_line_start_end ... ok [INFO] [stdout] test editor::tests::move_word_left_right ... ok [INFO] [stdout] test editor::tests::move_right_at_end_is_noop ... ok [INFO] [stdout] test editor::tests::multiline_select_all_and_replace ... ok [INFO] [stdout] test editor::tests::multiple_undo_redo ... ok [INFO] [stdout] test editor::tests::new_editor_is_empty ... ok [INFO] [stdout] test editor::tests::only_newlines ... ok [INFO] [stdout] test editor::proptests::multiple_undos_safe ... ok [INFO] [stdout] test editor::tests::multiline_editing ... ok [INFO] [stdout] test editor::tests::redo_after_undo ... ok [INFO] [stdout] test editor::tests::redo_cleared_on_new_edit ... ok [INFO] [stdout] test editor::tests::select_all_selects_everything ... ok [INFO] [stdout] test editor::tests::movement_clears_selection ... ok [INFO] [stdout] test editor::tests::rope_accessor ... ok [INFO] [stdout] test editor::tests::select_right_creates_selection ... ok [INFO] [stdout] test editor::tests::select_up_down ... ok [INFO] [stdout] test editor::tests::select_word_operations ... ok [INFO] [stdout] test editor::tests::selection_byte_range_order ... ok [INFO] [stdout] test editor::tests::selection_extending_preserves_anchor ... ok [INFO] [stdout] test editor::tests::set_text_clears_undo ... ok [INFO] [stdout] test editor::tests::set_text_replaces_content ... ok [INFO] [stdout] test editor::tests::trailing_newline ... ok [INFO] [stdout] test editor::tests::undo_insert ... ok [INFO] [stdout] test editor::tests::undo_delete ... ok [INFO] [stdout] test editor::tests::undo_redo_with_selection ... ok [INFO] [stdout] test editor::tests::unicode_cjk_wide_chars ... ok [INFO] [stdout] test editor::tests::undo_selection_delete ... ok [INFO] [stdout] test editor::tests::unicode_combining_character ... ok [INFO] [stdout] test editor::tests::unicode_zwj_sequence ... ok [INFO] [stdout] test editor::tests::undo_restores_cursor ... ok [INFO] [stdout] test editor::tests::unicode_emoji_handling ... ok [INFO] [stdout] test editor::tests::with_text_cursor_at_end ... ok [INFO] [stdout] test hyphenation::tests::break_penalties_preserves_offsets ... ok [INFO] [stdout] test hyphenation::tests::compile_all_zeros ... ok [INFO] [stdout] test hyphenation::tests::compile_dot_delimiter ... ok [INFO] [stdout] test hyphenation::tests::compile_empty_returns_none ... ok [INFO] [stdout] test hyphenation::tests::compile_leading_digit ... ok [INFO] [stdout] test hyphenation::tests::all_same_chars ... ok [INFO] [stdout] test hyphenation::tests::compile_simple_pattern ... ok [INFO] [stdout] test hyphenation::tests::compile_multiple_digits ... ok [INFO] [stdout] test hyphenation::tests::compile_trailing_digit ... ok [INFO] [stdout] test hyphenation::tests::deterministic_across_dict_rebuilds ... ok [INFO] [stdout] test hyphenation::tests::dict_can_hyphenate ... ok [INFO] [stdout] test hyphenation::tests::dict_case_insensitive ... ok [INFO] [stdout] test hyphenation::tests::dict_custom_margins ... ok [INFO] [stdout] test hyphenation::tests::dict_empty_word ... ok [INFO] [stdout] test hyphenation::tests::dict_exception_overrides_patterns ... ok [INFO] [stdout] test hyphenation::tests::dict_respects_left_min ... ok [INFO] [stdout] test hyphenation::tests::dict_respects_right_min ... ok [INFO] [stdout] test hyphenation::tests::deterministic_same_input_same_output ... ok [INFO] [stdout] test hyphenation::tests::english_mini_exception_associate ... ok [INFO] [stdout] test hyphenation::tests::dict_short_word_no_breaks ... ok [INFO] [stdout] test hyphenation::tests::english_mini_exception_table ... ok [INFO] [stdout] test hyphenation::tests::english_mini_loads_without_panic ... ok [INFO] [stdout] test editor::tests::move_up_down ... ok [INFO] [stdout] test hyphenation::tests::mixed_odd_even_levels ... ok [INFO] [stdout] test hyphenation::tests::parse_exception_basic ... ok [INFO] [stdout] test hyphenation::tests::parse_exception_no_hyphens ... ok [INFO] [stdout] test hyphenation::tests::parse_exception_single_hyphen ... ok [INFO] [stdout] test hyphenation::tests::penalty_level_1 ... ok [INFO] [stdout] test hyphenation::tests::english_mini_no_exception_word ... ok [INFO] [stdout] test hyphenation::tests::penalty_level_3 ... ok [INFO] [stdout] test hyphenation::tests::penalty_level_5 ... ok [INFO] [stdout] test hyphenation::tests::trie_max_level_wins ... ok [INFO] [stdout] test hyphenation::tests::single_char_word ... ok [INFO] [stdout] test hyphenation::tests::two_char_word ... ok [INFO] [stdout] test hyphenation::tests::only_odd_levels_produce_breaks ... ok [INFO] [stdout] test hyphenation::tests::trie_single_pattern ... ok [INFO] [stdout] test hyphenation::tests::unicode_word ... ok [INFO] [stdout] test incremental_break::tests::invalidate_all_forces_recomputation ... ok [INFO] [stdout] test incremental_break::tests::invalidate_out_of_bounds_is_noop ... ok [INFO] [stdout] test incremental_break::tests::cache_hit_increments_counter ... ok [INFO] [stdout] test incremental_break::tests::invalidate_paragraph_selective ... ok [INFO] [stdout] test incremental_break::tests::new_with_default_objective ... ok [INFO] [stdout] test incremental_break::tests::notify_edit_at_start ... ok [INFO] [stdout] test incremental_break::tests::notify_edit_invalidates_affected_paragraph ... ok [INFO] [stdout] test incremental_break::tests::reflow_deterministic ... ok [INFO] [stdout] test incremental_break::tests::reflow_empty_text ... ok [INFO] [stdout] test incremental_break::tests::reflow_fits_in_width ... ok [INFO] [stdout] test incremental_break::tests::reflow_full_recomputes_everything ... ok [INFO] [stdout] test incremental_break::tests::long_paragraph_performance ... ok [INFO] [stdout] test incremental_break::tests::multiple_edits_accumulate ... ok [INFO] [stdout] test incremental_break::tests::reflow_only_newlines ... ok [INFO] [stdout] test incremental_break::tests::reflow_idempotent ... ok [INFO] [stdout] test incremental_break::tests::reflow_paragraph_count_changes ... ok [INFO] [stdout] test incremental_break::tests::reflow_paragraph_count_grows ... ok [INFO] [stdout] test incremental_break::tests::reflow_single_word ... ok [INFO] [stdout] test incremental_break::tests::reflow_preserves_paragraphs ... ok [INFO] [stdout] test incremental_break::tests::reflow_wraps_long_text ... ok [INFO] [stdout] test incremental_break::tests::reflow_zero_width ... ok [INFO] [stdout] test incremental_break::tests::set_objective_clears_cache ... ok [INFO] [stdout] test incremental_break::tests::set_width_different_bumps_generation ... ok [INFO] [stdout] test incremental_break::tests::set_width_same_is_noop ... ok [INFO] [stdout] test incremental_break::tests::second_reflow_uses_cache ... ok [INFO] [stdout] test incremental_break::tests::snapshot_after_reflow ... ok [INFO] [stdout] test incremental_break::tests::reflow_very_narrow ... ok [INFO] [stdout] test incremental_break::tests::snapshot_initial_state ... ok [INFO] [stdout] test incremental_break::tests::terminal_constructor ... ok [INFO] [stdout] test incremental_break::tests::text_change_invalidates_paragraph ... ok [INFO] [stdout] test justification::tests::adjusted_width_at_zero_is_natural ... ok [INFO] [stdout] test justification::tests::adjusted_width_clamps_shrink ... ok [INFO] [stdout] test justification::tests::adjusted_width_clamps_stretch ... ok [INFO] [stdout] test justification::tests::adjusted_width_full_shrink ... ok [INFO] [stdout] test justification::tests::adjusted_width_full_stretch ... ok [INFO] [stdout] test justification::tests::adjusted_width_partial_stretch ... ok [INFO] [stdout] test justification::tests::badness_half_ratio ... ok [INFO] [stdout] test justification::tests::badness_monotonically_increasing ... ok [INFO] [stdout] test justification::tests::badness_negative_same_as_positive ... ok [INFO] [stdout] test justification::tests::badness_ratio_256_is_scale ... ok [INFO] [stdout] test justification::tests::badness_zero_ratio ... ok [INFO] [stdout] test justification::tests::category_display ... ok [INFO] [stdout] test justification::tests::control_display ... ok [INFO] [stdout] test justification::tests::default_control_is_terminal ... ok [INFO] [stdout] test justification::tests::default_glue_is_word_space ... ok [INFO] [stdout] test justification::tests::default_mode_is_left ... ok [INFO] [stdout] test justification::tests::demerits_include_break_penalty ... ok [INFO] [stdout] test justification::tests::demerits_increase_with_ratio ... ok [INFO] [stdout] test justification::tests::demerits_zero_ratio_minimal ... ok [INFO] [stdout] test justification::tests::distributed_justifies_last_line ... ok [INFO] [stdout] test justification::tests::distributed_requires_justification ... ok [INFO] [stdout] test justification::tests::default_category_is_inter_word ... ok [INFO] [stdout] test justification::tests::french_space_equals_word_space ... ok [INFO] [stdout] test justification::tests::french_spacing_overrides_sentence ... ok [INFO] [stdout] test justification::tests::full_does_not_justify_last_line ... ok [INFO] [stdout] test justification::tests::full_mode_rigid_warns ... ok [INFO] [stdout] test justification::tests::full_requires_justification ... ok [INFO] [stdout] test justification::tests::glue_display ... ok [INFO] [stdout] test justification::tests::left_does_not_require_justification ... ok [INFO] [stdout] test justification::tests::mode_display ... ok [INFO] [stdout] test justification::tests::non_french_uses_sentence_space ... ok [INFO] [stdout] test justification::tests::penalty_excessive_shrink ... ok [INFO] [stdout] test justification::tests::penalty_excessive_stretch ... ok [INFO] [stdout] test justification::tests::penalty_moderate_stretch_is_zero ... ok [INFO] [stdout] test justification::tests::penalty_no_adjustment_is_zero ... ok [INFO] [stdout] test justification::tests::penalty_tracking_always_penalized ... ok [INFO] [stdout] test justification::tests::penalty_tracking_plus_excessive ... ok [INFO] [stdout] test justification::tests::penalty_zero_tracking_no_penalty ... ok [INFO] [stdout] test justification::tests::elasticity_is_sum ... ok [INFO] [stdout] test justification::tests::ratio_negative_shrink ... ok [INFO] [stdout] test incremental_break::tests::width_change_invalidates_cache ... ok [INFO] [stdout] test justification::tests::ratio_no_stretch_returns_none ... ok [INFO] [stdout] test editor::tests::very_long_line ... ok [INFO] [stdout] test justification::tests::ratio_over_shrink_returns_none ... ok [INFO] [stdout] test justification::tests::readable_is_full_elastic ... ok [INFO] [stdout] test justification::tests::ratio_no_shrink_returns_none ... ok [INFO] [stdout] test justification::tests::rigid_adjusted_width_ignores_ratio ... ok [INFO] [stdout] test justification::tests::rigid_has_no_elasticity ... ok [INFO] [stdout] test justification::tests::same_inputs_same_badness ... ok [INFO] [stdout] test justification::tests::ratio_zero_slack ... ok [INFO] [stdout] test editor::proptests::set_text_roundtrip ... ok [INFO] [stdout] test justification::tests::same_inputs_same_demerits ... ok [INFO] [stdout] test justification::tests::same_inputs_same_ratio ... ok [INFO] [stdout] test justification::tests::sentence_space_wider ... ok [INFO] [stdout] test justification::tests::shrink_exceeds_natural_warns ... ok [INFO] [stdout] test justification::tests::terminal_is_left_rigid ... ok [INFO] [stdout] test editor::proptests::line_count_matches_newlines ... ok [INFO] [stdout] test justification::tests::readable_validates_clean ... ok [INFO] [stdout] test justification::tests::total_natural_sums ... ok [INFO] [stdout] test justification::tests::terminal_validates_clean ... ok [INFO] [stdout] test justification::tests::word_space_constants ... ok [INFO] [stdout] test justification::tests::total_stretch_sums ... ok [INFO] [stdout] test justification::tests::word_space_is_not_rigid ... ok [INFO] [stdout] test justification::tests::total_shrink_sums ... ok [INFO] [stdout] test justification::tests::typographic_has_tracking ... ok [INFO] [stdout] test layout_policy::tests::capability_display ... ok [INFO] [stdout] test layout_policy::tests::default_caps_are_terminal ... ok [INFO] [stdout] test justification::tests::zero_emergency_factor_warns ... ok [INFO] [stdout] test layout_policy::tests::balanced_resolves_with_terminal_caps ... ok [INFO] [stdout] test layout_policy::tests::default_policy_is_balanced ... ok [INFO] [stdout] test layout_policy::tests::emergency_caps_supported ... ok [INFO] [stdout] test layout_policy::tests::emergency_resolves_with_terminal_caps ... ok [INFO] [stdout] test layout_policy::tests::default_line_height_is_16px ... ok [INFO] [stdout] test layout_policy::tests::error_display ... ok [INFO] [stdout] test layout_policy::tests::error_is_error_trait ... ok [INFO] [stdout] test layout_policy::tests::degradation_disabled_returns_error ... ok [INFO] [stdout] test layout_policy::tests::fast_not_justified ... ok [INFO] [stdout] test layout_policy::tests::fast_resolves_with_terminal_caps ... ok [INFO] [stdout] test layout_policy::tests::fast_with_full_caps_stays_fast ... ok [INFO] [stdout] test layout_policy::tests::feature_summary_fast ... ok [INFO] [stdout] test layout_policy::tests::feature_summary_quality ... ok [INFO] [stdout] test layout_policy::tests::full_best_tier_is_quality ... ok [INFO] [stdout] test layout_policy::tests::justify_override_applied ... ok [INFO] [stdout] test layout_policy::tests::monospace_makes_spaces_rigid ... ok [INFO] [stdout] test layout_policy::tests::no_hyphenation_dict_disables_hyphenation ... ok [INFO] [stdout] test layout_policy::tests::no_tracking_disables_char_space ... ok [INFO] [stdout] test layout_policy::tests::quality_degrades_on_terminal ... ok [INFO] [stdout] test layout_policy::tests::quality_is_justified ... ok [INFO] [stdout] test layout_policy::tests::quality_resolves_with_full_caps ... ok [INFO] [stdout] test layout_policy::tests::quality_with_justify_left_override ... ok [INFO] [stdout] test layout_policy::tests::policy_display ... ok [INFO] [stdout] test layout_policy::tests::resolved_display_no_degradation ... ok [INFO] [stdout] test layout_policy::tests::resolved_display_with_degradation ... ok [INFO] [stdout] test layout_policy::tests::same_degradation_same_result ... ok [INFO] [stdout] test layout_policy::tests::same_inputs_same_resolution ... ok [INFO] [stdout] test layout_policy::tests::terminal_best_tier_is_balanced ... ok [INFO] [stdout] test layout_policy::tests::terminal_caps_not_quality ... ok [INFO] [stdout] test justification::tests::ratio_positive_stretch ... ok [INFO] [stdout] test justification::tests::typographic_validates_clean ... ok [INFO] [stdout] test layout_policy::tests::terminal_caps_support_fast ... ok [INFO] [stdout] test layout_policy::tests::tier_default_is_balanced ... ok [INFO] [stdout] test layout_policy::tests::tier_degradation_chain_emergency ... ok [INFO] [stdout] test layout_policy::tests::tier_degradation_chain_quality ... ok [INFO] [stdout] test layout_policy::tests::tier_degradation_chain_fast ... ok [INFO] [stdout] test layout_policy::tests::tier_degrade_balanced ... ok [INFO] [stdout] test layout_policy::tests::custom_line_height ... ok [INFO] [stdout] test layout_policy::tests::terminal_caps_support_balanced ... ok [INFO] [stdout] test layout_policy::tests::full_caps_support_all ... ok [INFO] [stdout] test layout_policy::tests::tier_degrade_emergency_is_none ... ok [INFO] [stdout] test layout_policy::tests::tier_degrade_fast_is_emergency ... ok [INFO] [stdout] test layout_policy::tests::tier_degrade_quality ... ok [INFO] [stdout] test layout_policy::tests::tier_display ... ok [INFO] [stdout] test layout_policy::tests::web_best_tier_is_quality ... ok [INFO] [stdout] test measurement_tests::clamp_enforces_max ... ok [INFO] [stdout] test layout_policy::tests::vertical_override_applied ... ok [INFO] [stdout] test measurement_tests::clamp_enforces_min ... ok [INFO] [stdout] test measurement_tests::default_is_zero ... ok [INFO] [stdout] test measurement_tests::stack_adds_bounds ... ok [INFO] [stdout] test measurement_tests::stack_is_commutative ... ok [INFO] [stdout] test measurement_tests::stack_saturates_on_overflow ... ok [INFO] [stdout] test editor::proptests::document_bounds ... ok [INFO] [stdout] test editor::tests::rapid_insert_delete_cycle ... ok [INFO] [stdout] test measurement_tests::stack_with_zero_is_identity ... ok [INFO] [stdout] test measurement_tests::union_is_commutative ... ok [INFO] [stdout] test measurement_tests::clamp_preserves_ordering ... ok [INFO] [stdout] test measurement_tests::clamp_no_constraints ... ok [INFO] [stdout] test layout_policy::tests::tier_ordering ... ok [INFO] [stdout] test measurement_tests::union_with_zero_is_identity ... ok [INFO] [stdout] test measurement_tests::zero_constant ... ok [INFO] [stdout] test rope::tests::byte_to_line_col_basic ... ok [INFO] [stdout] test rope::tests::char_to_byte_with_multibyte ... ok [INFO] [stdout] test rope::tests::chars_iterator ... ok [INFO] [stdout] test measurement_tests::union_uses_max_bounds ... ok [INFO] [stdout] test rope::tests::byte_to_char_clamps ... ok [INFO] [stdout] test rope::tests::char_to_byte_clamps ... ok [INFO] [stdout] test rope::tests::display_impl ... ok [INFO] [stdout] test rope::tests::empty_rope_properties ... ok [INFO] [stdout] test rope::tests::empty_rope_conversions ... ok [INFO] [stdout] test rope::tests::empty_rope_line_access ... ok [INFO] [stdout] test rope::tests::empty_rope_slice ... ok [INFO] [stdout] test rope::tests::from_str_impl ... ok [INFO] [stdout] test rope::tests::from_str_parse ... ok [INFO] [stdout] test rope::tests::grapheme_insert_at_beginning ... ok [INFO] [stdout] test rope::tests::grapheme_insert_with_combining ... ok [INFO] [stdout] test rope::tests::grapheme_remove_empty_range ... ok [INFO] [stdout] test rope::tests::grapheme_remove_range ... ok [INFO] [stdout] test rope::tests::graphemes_returns_correct_list ... ok [INFO] [stdout] test rope::tests::insert_at_beginning ... ok [INFO] [stdout] test rope::tests::insert_at_end ... ok [INFO] [stdout] test rope::tests::from_string_impl ... ok [INFO] [stdout] test rope::tests::insert_empty_string ... ok [INFO] [stdout] test measurement_tests::clamp_min_raises_both_bounds ... ok [INFO] [stdout] test rope::tests::insert_beyond_length_clamps ... ok [INFO] [stdout] test rope::tests::line_col_to_byte_basic ... ok [INFO] [stdout] test rope::tests::line_out_of_bounds ... ok [INFO] [stdout] test rope::tests::line_to_char_out_of_bounds ... ok [INFO] [stdout] test rope::tests::lines_iterator ... ok [INFO] [stdout] test rope::tests::multiple_newlines ... ok [INFO] [stdout] test rope::tests::normalize_range_basic ... ok [INFO] [stdout] test rope::tests::normalize_range_clamps_to_max ... ok [INFO] [stdout] test rope::tests::normalize_range_inclusive ... ok [INFO] [stdout] test rope::tests::normalize_range_inverted_becomes_empty ... ok [INFO] [stdout] test rope::tests::remove_empty_range ... ok [INFO] [stdout] test rope::tests::remove_entire_content ... ok [INFO] [stdout] test rope::tests::remove_inverted_range_is_noop ... ok [INFO] [stdout] test editor::proptests::cursor_always_in_bounds ... ok [INFO] [stdout] test editor::proptests::select_all_delete_empties ... ok [INFO] [stdout] test rope::tests::rope_basic_counts ... ok [INFO] [stdout] test rope::tests::rope_append_clear ... ok [INFO] [stdout] test rope::tests::rope_char_byte_conversions ... ok [INFO] [stdout] test rope::tests::rope_grapheme_ops ... ok [INFO] [stdout] test rope::tests::rope_line_col_conversions ... ok [INFO] [stdout] test rope::tests::rope_multiline_lines ... ok [INFO] [stdout] test rope::tests::slice_basic ... ok [INFO] [stdout] test rope::tests::slice_out_of_bounds_returns_empty ... ok [INFO] [stdout] test rope::tests::trailing_newline_creates_empty_last_line ... ok [INFO] [stdout] test script_segmentation::tests::cache_key_differs_by_direction ... ok [INFO] [stdout] test rope::tests::display_matches_to_string ... ok [INFO] [stdout] test script_segmentation::tests::cache_key_differs_by_style ... ok [INFO] [stdout] test script_segmentation::tests::cache_key_equality ... ok [INFO] [stdout] test script_segmentation::tests::cache_key_hashable ... ok [INFO] [stdout] test script_segmentation::tests::cache_key_differs_by_script ... ok [INFO] [stdout] test script_segmentation::tests::emoji_is_common ... ok [INFO] [stdout] test script_segmentation::tests::multibyte_utf8_offsets ... ok [INFO] [stdout] test script_segmentation::tests::many_script_transitions ... ok [INFO] [stdout] test script_segmentation::tests::only_spaces ... ok [INFO] [stdout] test script_segmentation::tests::partition_combining_mark_stays_with_base ... ok [INFO] [stdout] test script_segmentation::tests::partition_empty ... ok [INFO] [stdout] test script_segmentation::tests::partition_japanese_mixed ... ok [INFO] [stdout] test script_segmentation::tests::partition_latin_cjk_latin ... ok [INFO] [stdout] test script_segmentation::tests::partition_latin_then_arabic ... ok [INFO] [stdout] test script_segmentation::tests::partition_pure_arabic ... ok [INFO] [stdout] test script_segmentation::tests::partition_pure_latin ... ok [INFO] [stdout] test script_segmentation::tests::partition_run_text_slicing ... ok [INFO] [stdout] test script_segmentation::tests::partition_digits_absorbed ... ok [INFO] [stdout] test script_segmentation::tests::partition_runs_cover_full_text ... ok [INFO] [stdout] test script_segmentation::tests::resolve_combining_mark_inherits ... ok [INFO] [stdout] test script_segmentation::tests::resolve_common_absorbed_by_latin ... ok [INFO] [stdout] test editor::proptests::word_movement_progress ... ok [INFO] [stdout] test script_segmentation::tests::resolve_empty ... ok [INFO] [stdout] test script_segmentation::tests::resolve_leading_space ... ok [INFO] [stdout] test editor::proptests::selection_range_ordered ... ok [INFO] [stdout] test script_segmentation::tests::resolve_mixed_scripts ... ok [INFO] [stdout] test script_segmentation::tests::resolve_pure_latin ... ok [INFO] [stdout] test script_segmentation::tests::script_arabic ... ok [INFO] [stdout] test script_segmentation::tests::script_ascii_digits_are_common ... ok [INFO] [stdout] test editor::proptests::undo_insert_restores_text ... ok [INFO] [stdout] test script_segmentation::tests::script_ascii_letters ... ok [INFO] [stdout] test script_segmentation::tests::script_ascii_punctuation_is_common ... ok [INFO] [stdout] test script_segmentation::tests::script_cjk_han ... ok [INFO] [stdout] test script_segmentation::tests::script_devanagari ... ok [INFO] [stdout] test script_segmentation::tests::script_common_or_inherited ... ok [INFO] [stdout] test script_segmentation::tests::script_cyrillic ... ok [INFO] [stdout] test script_segmentation::tests::script_enum_ord ... ok [INFO] [stdout] test script_segmentation::tests::script_greek ... ok [INFO] [stdout] test script_segmentation::tests::script_hangul ... ok [INFO] [stdout] test script_segmentation::tests::script_hebrew ... ok [INFO] [stdout] test script_segmentation::tests::script_hiragana_katakana ... ok [INFO] [stdout] test script_segmentation::tests::script_combining_marks_are_inherited ... ok [INFO] [stdout] test script_segmentation::tests::script_thai ... ok [INFO] [stdout] test script_segmentation::tests::script_rtl_detection ... ok [INFO] [stdout] test script_segmentation::tests::script_latin_extended ... ok [INFO] [stdout] test script_segmentation::tests::single_char ... ok [INFO] [stdout] test script_segmentation::tests::script_run_len_and_empty ... ok [INFO] [stdout] test script_segmentation::tests::text_run_len_and_empty ... ok [INFO] [stdout] test script_segmentation::tests::text_runs_arabic_direction ... ok [INFO] [stdout] test script_segmentation::tests::text_runs_direction_override ... ok [INFO] [stdout] test script_segmentation::tests::text_runs_empty ... ok [INFO] [stdout] test script_segmentation::tests::text_runs_mixed_scripts ... ok [INFO] [stdout] test script_segmentation::tests::text_runs_simple_latin ... ok [INFO] [stdout] test script_segmentation::tests::text_runs_style_split ... ok [INFO] [stdout] test search::tests::ascii_ci_basic ... ok [INFO] [stdout] test search::tests::ascii_ci_mixed_case ... ok [INFO] [stdout] test search::tests::ascii_ci_no_match ... ok [INFO] [stdout] test script_segmentation::tests::text_runs_cover_full_text ... ok [INFO] [stdout] test rope::tests::grapheme_count_leq_char_count ... ok [INFO] [stdout] test search::tests::exact_adjacent_matches ... ok [INFO] [stdout] test search::tests::exact_empty_needle ... ok [INFO] [stdout] test search::tests::exact_needle_equals_haystack ... ok [INFO] [stdout] test editor::proptests::redo_after_undo_restores ... ok [INFO] [stdout] test search::tests::exact_needle_longer ... ok [INFO] [stdout] test search::tests::exact_no_match ... ok [INFO] [stdout] test search::tests::exact_text_extraction ... ok [INFO] [stdout] test search::tests::exact_unicode ... ok [INFO] [stdout] test search::tests::overlapping_basic ... ok [INFO] [stdout] test search::tests::exact_basic ... ok [INFO] [stdout] test search::tests::exact_empty_haystack ... ok [INFO] [stdout] test search::tests::overlapping_empty_needle ... ok [INFO] [stdout] test rope::tests::rope_insert_remove_replace ... ok [INFO] [stdout] test search::tests::exact_cjk ... ok [INFO] [stdout] test search::tests::results_have_valid_ranges ... ok [INFO] [stdout] test search::tests::overlapping_no_overlap ... ok [INFO] [stdout] test script_segmentation::tests::resolve_all_common_defaults_to_latin ... ok [INFO] [stdout] test rope::tests::line_count_matches_newlines ... ok [INFO] [stdout] test segment::tests::cell_length_cjk ... ok [INFO] [stdout] test segment::tests::cell_length_control_is_zero ... ok [INFO] [stdout] test segment::tests::cell_length_mixed ... ok [INFO] [stdout] test segment::tests::cell_length_with_custom_width ... ok [INFO] [stdout] test segment::tests::cell_length_emoji ... ok [INFO] [stdout] test segment::tests::cell_length_with_on_control_is_zero ... ok [INFO] [stdout] test segment::tests::cell_length_zwj_sequence ... ok [INFO] [stdout] test rope::tests::append_then_len_grows ... ok [INFO] [stdout] test editor::proptests::undo_delete_restores_text ... ok [INFO] [stdout] test segment::tests::control_code_debug_impl ... ok [INFO] [stdout] test segment::tests::control_code_equality ... ok [INFO] [stdout] test segment::tests::control_code_hash_consistency ... ok [INFO] [stdout] test segment::tests::clone_borrowed_segment_stays_borrowed ... ok [INFO] [stdout] test segment::tests::clone_owned_segment_allocates ... ok [INFO] [stdout] test segment::tests::combining_characters ... ok [INFO] [stdout] test segment::tests::control_code_is_cr ... ok [INFO] [stdout] test segment::tests::control_code_is_newline ... ok [INFO] [stdout] test segment::tests::cow_borrowed_reference ... ok [INFO] [stdout] test segment::tests::into_owned_converts_borrowed_to_owned ... ok [INFO] [stdout] test segment::tests::cow_owned_from_string ... ok [INFO] [stdout] test segment::tests::join_lines_empty ... ok [INFO] [stdout] test segment::tests::cow_borrowed_from_static_str ... ok [INFO] [stdout] test segment::tests::join_lines_single_line ... ok [INFO] [stdout] test segment::tests::segment_debug_impl ... ok [INFO] [stdout] test segment::tests::join_lines_roundtrip ... ok [INFO] [stdout] test segment::tests::segment_default_is_empty ... ok [INFO] [stdout] test segment::tests::segment_empty_is_empty ... ok [INFO] [stdout] test segment::tests::segment_from_string ... ok [INFO] [stdout] test segment::tests::segment_from_str ... ok [INFO] [stdout] test segment::tests::segment_into_owned ... ok [INFO] [stdout] test segment::tests::segment_control_creates_control_segment ... ok [INFO] [stdout] test segment::tests::segment_line_cell_length ... ok [INFO] [stdout] test segment::tests::segment_line_default_is_empty ... ok [INFO] [stdout] test segment::tests::cell_length_ascii ... ok [INFO] [stdout] test search::tests::emoji_search ... ok [INFO] [stdout] test segment::tests::segment_line_into_iter_ref ... ok [INFO] [stdout] test segment::tests::segment_line_debug_impl ... ok [INFO] [stdout] test segment::tests::segment_line_into_owned ... ok [INFO] [stdout] test segment::tests::segment_line_split_at_segment_boundary ... ok [INFO] [stdout] test segment::proptests::line_split_preserves_total_width ... ok [INFO] [stdout] test segment::tests::segment_lines_default_is_empty ... ok [INFO] [stdout] test segment::tests::segment_lines_into_owned ... ok [INFO] [stdout] test segment::tests::segment_line_segments_mut ... ok [INFO] [stdout] test segment::tests::segment_lines_max_width ... ok [INFO] [stdout] test segment::tests::segment_line_iter ... ok [INFO] [stdout] test segment::tests::segment_styled_creates_styled_segment ... ok [INFO] [stdout] test segment::tests::segment_text_creates_unstyled_segment ... ok [INFO] [stdout] test segment::tests::segment_with_control ... ok [INFO] [stdout] test segment::tests::segment_with_multiple_controls ... ok [INFO] [stdout] test segment::tests::segment_with_style_applies_style ... ok [INFO] [stdout] test segment::tests::segment_line_is_empty ... ok [INFO] [stdout] test segment::tests::segment_line_split_at_end ... ok [INFO] [stdout] test segment::tests::segment_line_split_at_zero ... ok [INFO] [stdout] test segment::tests::segment_lines_max_width_empty ... ok [INFO] [stdout] test segment::tests::split_at_cell_ascii ... ok [INFO] [stdout] test segment::tests::split_at_cell_cjk ... ok [INFO] [stdout] test segment::tests::split_at_cell_beyond_length ... ok [INFO] [stdout] test segment::tests::segment_line_split_at_cell ... ok [INFO] [stdout] test segment::tests::segment_lines_iter ... ok [INFO] [stdout] test segment::tests::split_at_cell_mixed ... ok [INFO] [stdout] test segment::tests::split_at_cell_preserves_style ... ok [INFO] [stdout] test segment::tests::split_at_cell_cjk_mid_char ... ok [INFO] [stdout] test segment::tests::split_at_cell_control_segment ... ok [INFO] [stdout] test segment::tests::split_at_cell_exact_boundary ... ok [INFO] [stdout] test segment::tests::split_into_lines_empty_input ... ok [INFO] [stdout] test segment::tests::split_into_lines_multiple_newlines ... ok [INFO] [stdout] test segment::tests::split_into_lines_single_line ... ok [INFO] [stdout] test segment::tests::split_into_lines_trailing_newline ... ok [INFO] [stdout] test shaped_render::tests::all_cells_covered ... ok [INFO] [stdout] test segment::tests::split_into_lines_with_embedded_newline ... ok [INFO] [stdout] test segment::tests::split_into_lines_with_newline_control ... ok [INFO] [stdout] test shaped_render::tests::apply_justification_stretch ... ok [INFO] [stdout] test shaped_render::tests::apply_tracking_basic ... ok [INFO] [stdout] test shaped_render::tests::apply_tracking_single_char ... ok [INFO] [stdout] test shaped_render::tests::cell_x_monotonic ... ok [INFO] [stdout] test shaped_render::tests::combining_mark_uses_grapheme ... ok [INFO] [stdout] test shaped_render::tests::deterministic_output ... ok [INFO] [stdout] test shaped_render::tests::empty_layout ... ok [INFO] [stdout] test shaped_render::tests::extract_text_range ... ok [INFO] [stdout] test shaped_render::tests::from_run_empty ... ok [INFO] [stdout] test segment::tests::split_empty_segment ... ok [INFO] [stdout] test segment::tests::split_at_cell_zero ... ok [INFO] [stdout] test shaped_render::tests::from_shaped_run_wide ... ok [INFO] [stdout] test shaped_render::tests::grapheme_indices_sequential ... ok [INFO] [stdout] test shaped_render::tests::noop_shaper_no_deltas ... ok [INFO] [stdout] test shaped_render::tests::placement_byte_ranges ... ok [INFO] [stdout] test shaped_render::tests::placement_at_cell ... ok [INFO] [stdout] test shaped_render::tests::ascii_layout ... ok [INFO] [stdout] test shaped_render::tests::placements_for_grapheme_wide ... ok [INFO] [stdout] test shaped_render::tests::from_shaped_run_noop ... ok [INFO] [stdout] test shaping::tests::cache_clear_resets_everything ... ok [INFO] [stdout] test shaping::tests::cache_hit_on_second_call ... ok [INFO] [stdout] test shaped_render::tests::apply_justification_no_ratio ... ok [INFO] [stdout] test shaping::tests::cache_miss_on_different_font ... ok [INFO] [stdout] test shaped_render::tests::wide_char_layout ... ok [INFO] [stdout] test shaping::tests::cache_invalidation_bumps_generation ... ok [INFO] [stdout] test shaping::tests::cache_shaper_accessible ... ok [INFO] [stdout] test shaping::tests::font_feature_enabled_disabled ... ok [INFO] [stdout] test shaping::tests::cache_miss_on_different_text ... ok [INFO] [stdout] test shaping::tests::cache_resize_evicts_lru ... ok [INFO] [stdout] test shaping::tests::cache_stale_entries_are_reshared ... ok [INFO] [stdout] test shaping::tests::cache_with_style_id ... ok [INFO] [stdout] test shaping::tests::font_feature_new ... ok [INFO] [stdout] test shaping::tests::font_features_default_is_empty ... ok [INFO] [stdout] test shaping::tests::font_features_push_and_iter ... ok [INFO] [stdout] test shaping::tests::noop_shaper_ascii ... ok [INFO] [stdout] test shaping::tests::noop_shaper_empty ... ok [INFO] [stdout] test shaping::tests::noop_shaper_ignores_direction_and_features ... ok [INFO] [stdout] test shaping::tests::noop_shaper_combining_marks ... ok [INFO] [stdout] test shaping::tests::shaped_run_len_and_empty ... ok [INFO] [stdout] test shaping::tests::noop_shaper_wide_chars ... ok [INFO] [stdout] test shaping::tests::shape_empty_run ... ok [INFO] [stdout] test shaping::tests::shape_partitioned_runs ... ok [INFO] [stdout] test shaping::tests::shaping_key_differs_by_font ... ok [INFO] [stdout] test shaping::tests::shaping_key_differs_by_size ... ok [INFO] [stdout] test shaping::tests::shaping_key_hashable ... ok [INFO] [stdout] test shaping::tests::shaping_key_same_input_same_key ... ok [INFO] [stdout] test shaping::tests::font_features_canonicalize ... ok [INFO] [stdout] test shaping::tests::shaping_key_differs_by_features ... ok [INFO] [stdout] test shaping::tests::shaping_key_differs_by_text ... ok [INFO] [stdout] test shaping_fallback::tests::noop_shaper_with_full_caps ... ok [INFO] [stdout] test shaping_fallback::tests::set_shaping_tier ... ok [INFO] [stdout] test shaping_fallback::tests::shape_lines_batch ... ok [INFO] [stdout] test shaping::tests::cache_miss_on_different_size ... ok [INFO] [stdout] test shaping::tests::cache_stats_hit_rate ... ok [INFO] [stdout] test shaping_fallback::tests::noop_shaper_primary ... ok [INFO] [stdout] test shaping_fallback::tests::shaped_and_unshaped_same_total_cells ... ok [INFO] [stdout] test shaping_fallback::tests::event_predicates ... ok [INFO] [stdout] test shaping::tests::shaping_key_differs_by_generation ... ok [INFO] [stdout] test shaping_fallback::tests::set_features ... ok [INFO] [stdout] test shaping_fallback::tests::shaped_and_unshaped_identical_interaction ... ok [INFO] [stdout] test shaping_fallback::tests::terminal_fallback ... ok [INFO] [stdout] test shaping_fallback::tests::terminal_empty_input ... ok [INFO] [stdout] test shaping_fallback::tests::terminal_wide_chars ... ok [INFO] [stdout] test shaping_fallback::tests::stats_empty ... ok [INFO] [stdout] test shaping_fallback::tests::stats_tracking ... ok [INFO] [stdout] test shaping_fallback::tests::validate_empty_input ... ok [INFO] [stdout] test shaping_fallback::tests::validate_empty_run ... ok [INFO] [stdout] test shaping_fallback::tests::validate_valid_run ... ok [INFO] [stdout] test shaping_fallback::tests::validate_zero_advances ... ok [INFO] [stdout] test text::tests::leading_newline ... ok [INFO] [stdout] test text::tests::line_apply_base_style ... ok [INFO] [stdout] test text::tests::line_debug_impl ... ok [INFO] [stdout] test text::tests::line_default_is_empty ... ok [INFO] [stdout] test text::tests::empty_string_creates_empty_text ... ok [INFO] [stdout] test text::tests::line_empty ... ok [INFO] [stdout] test text::tests::line_from_empty_string_is_empty ... ok [INFO] [stdout] test text::tests::line_from_spans ... ok [INFO] [stdout] test text::tests::line_from_span ... ok [INFO] [stdout] test text::tests::line_into_iter ... ok [INFO] [stdout] test text::tests::line_into_segment_line ... ok [INFO] [stdout] test text::tests::line_into_segments ... ok [INFO] [stdout] test text::tests::line_iter ... ok [INFO] [stdout] test text::tests::line_measurement ... ok [INFO] [stdout] test text::tests::line_push_span ... ok [INFO] [stdout] test text::tests::line_ref_into_iter ... ok [INFO] [stdout] test text::tests::line_raw ... ok [INFO] [stdout] test text::tests::line_styled ... ok [INFO] [stdout] test text::tests::line_with_span_builder ... ok [INFO] [stdout] test text::tests::line_width_combining_mark_is_single_cell ... ok [INFO] [stdout] test text::tests::line_with_span_ownership ... ok [INFO] [stdout] test text::tests::line_wrap_handles_wide_grapheme_with_tiny_width ... ok [INFO] [stdout] test text::tests::push_span_on_empty_creates_line ... ok [INFO] [stdout] test text::tests::single_newline_creates_two_empty_lines ... ok [INFO] [stdout] test text::tests::line_wrap_preserves_styles_word ... ok [INFO] [stdout] test text::tests::span_cow_borrowed_from_static ... ok [INFO] [stdout] test text::tests::span_cow_owned_from_string ... ok [INFO] [stdout] test text::tests::span_debug_impl ... ok [INFO] [stdout] test text::tests::span_default_is_empty ... ok [INFO] [stdout] test text::tests::span_from_segment ... ok [INFO] [stdout] test text::tests::span_into_owned_converts_borrowed ... ok [INFO] [stdout] test text::tests::span_into_segment ... ok [INFO] [stdout] test text::tests::span_is_empty ... ok [INFO] [stdout] test text::tests::span_link_method ... ok [INFO] [stdout] test text::tests::span_measurement ... ok [INFO] [stdout] test text::tests::span_raw_creates_unstyled ... ok [INFO] [stdout] test text::tests::span_width_ascii ... ok [INFO] [stdout] test text::tests::span_styled_creates_styled ... ok [INFO] [stdout] test text::tests::span_width_cjk ... ok [INFO] [stdout] test text::tests::span_with_link_into_owned ... ok [INFO] [stdout] test text::tests::span_with_style ... ok [INFO] [stdout] test text::tests::text_apply_base_style ... ok [INFO] [stdout] test text::tests::text_collect_from_lines ... ok [INFO] [stdout] test text::tests::text_collect_from_spans ... ok [INFO] [stdout] test rope::tests::clear_always_empty ... ok [INFO] [stdout] test text::tests::text_default_is_empty ... ok [INFO] [stdout] test text::tests::text_empty ... ok [INFO] [stdout] test text::tests::text_from_empty_line_preserves_single_empty_line ... ok [INFO] [stdout] test text::tests::text_debug_impl ... ok [INFO] [stdout] test text::tests::text_converts_to_segment_lines_multiline ... ok [INFO] [stdout] test text::tests::text_from_lines_empty_iter_is_empty ... ok [INFO] [stdout] test text::tests::text_from_empty_string_is_empty ... ok [INFO] [stdout] test text::tests::text_from_lines ... ok [INFO] [stdout] test text::tests::text_from_str ... ok [INFO] [stdout] test text::tests::text_from_spans ... ok [INFO] [stdout] test text::tests::text_from_string ... ok [INFO] [stdout] test text::tests::text_from_str_preserves_empty_middle_line ... ok [INFO] [stdout] test text::tests::text_from_segments_with_newlines ... ok [INFO] [stdout] test text::tests::text_height_as_u16 ... ok [INFO] [stdout] test text::tests::text_height_as_u16_saturates ... ok [INFO] [stdout] test text::tests::text_into_iter ... ok [INFO] [stdout] test text::tests::text_into_segment_lines ... ok [INFO] [stdout] test text::tests::text_iter ... ok [INFO] [stdout] test text::tests::text_measurement ... ok [INFO] [stdout] test text::tests::text_push_line ... ok [INFO] [stdout] test text::tests::text_raw_multiline ... ok [INFO] [stdout] test text::tests::text_ref_into_iter ... ok [INFO] [stdout] test text::tests::text_push_span ... ok [INFO] [stdout] test text::tests::text_style_returns_first_span_style ... ok [INFO] [stdout] test text::tests::text_raw_single_line ... ok [INFO] [stdout] test text::tests::text_style_returns_none_for_unstyled ... ok [INFO] [stdout] test text::tests::text_style_returns_none_for_empty ... ok [INFO] [stdout] test text::tests::text_with_base_style_builder ... ok [INFO] [stdout] test text::tests::text_with_line_builder ... ok [INFO] [stdout] test text::tests::text_styled ... ok [INFO] [stdout] test text::tests::text_with_span_builder ... ok [INFO] [stdout] test text::tests::trailing_newline ... ok [INFO] [stdout] test text::tests::truncate_cjk ... ok [INFO] [stdout] test text::tests::truncate_cjk_odd_width ... ok [INFO] [stdout] test text::tests::truncate_ellipsis_wider_than_max ... ok [INFO] [stdout] test text::tests::truncate_exact_width_no_change ... ok [INFO] [stdout] test text::tests::truncate_multiline ... ok [INFO] [stdout] test text::tests::truncate_multiple_spans ... ok [INFO] [stdout] test text::tests::truncate_no_change_if_fits ... ok [INFO] [stdout] test text::tests::truncate_preserves_link ... ok [INFO] [stdout] test text::tests::truncate_preserves_style ... ok [INFO] [stdout] test text::tests::truncate_simple ... ok [INFO] [stdout] test text::tests::truncate_with_ellipsis ... ok [INFO] [stdout] test tier_budget::tests::all_budgets_within_60fps ... ok [INFO] [stdout] test tier_budget::tests::all_invariants_listed ... ok [INFO] [stdout] test tier_budget::tests::balanced_features ... ok [INFO] [stdout] test tier_budget::tests::default_ladder_budgets_are_consistent ... ok [INFO] [stdout] test tier_budget::tests::default_ladder_budgets_monotonically_increase ... ok [INFO] [stdout] test tier_budget::tests::default_ladder_features_are_monotonic ... ok [INFO] [stdout] test tier_budget::tests::default_trait ... ok [INFO] [stdout] test tier_budget::tests::emergency_features_minimal ... ok [INFO] [stdout] test tier_budget::tests::emergency_queue_disables_reshape ... ok [INFO] [stdout] test tier_budget::tests::fast_features ... ok [INFO] [stdout] test tier_budget::tests::feature_active_list ... ok [INFO] [stdout] test tier_budget::tests::features_display ... ok [INFO] [stdout] test tier_budget::tests::fps_30_is_33333us ... ok [INFO] [stdout] test tier_budget::tests::fps_60_is_16667us ... ok [INFO] [stdout] test tier_budget::tests::frame_budget_as_duration ... ok [INFO] [stdout] test tier_budget::tests::frame_budget_consistency ... ok [INFO] [stdout] test tier_budget::tests::frame_budget_display ... ok [INFO] [stdout] test tier_budget::tests::frame_budget_inconsistency ... ok [INFO] [stdout] test tier_budget::tests::invariant_display ... ok [INFO] [stdout] test tier_budget::tests::invariants_cover_key_concerns ... ok [INFO] [stdout] test tier_budget::tests::ladder_budget_lookup ... ok [INFO] [stdout] test tier_budget::tests::ladder_display ... ok [INFO] [stdout] test tier_budget::tests::memory_budget_display ... ok [INFO] [stdout] test tier_budget::tests::memory_transient_total ... ok [INFO] [stdout] test tier_budget::tests::quality_features_all_on ... ok [INFO] [stdout] test tier_budget::tests::quality_has_largest_caches ... ok [INFO] [stdout] test tier_budget::tests::queue_budget_display ... ok [INFO] [stdout] test tier_budget::tests::queue_total_max ... ok [INFO] [stdout] test tier_budget::tests::tier_budget_display ... ok [INFO] [stdout] test vertical_metrics::tests::baseline_grid_deterministic ... ok [INFO] [stdout] test vertical_metrics::tests::document_height_empty ... ok [INFO] [stdout] test vertical_metrics::tests::document_height_multi_paragraph ... ok [INFO] [stdout] test vertical_metrics::tests::document_height_single_paragraph ... ok [INFO] [stdout] test vertical_metrics::tests::document_height_with_spacing ... ok [INFO] [stdout] test vertical_metrics::tests::grid_from_line_height ... ok [INFO] [stdout] test vertical_metrics::tests::grid_none_is_inactive ... ok [INFO] [stdout] test vertical_metrics::tests::grid_snap_disabled ... ok [INFO] [stdout] test vertical_metrics::tests::grid_snap_exact ... ok [INFO] [stdout] test vertical_metrics::tests::grid_snap_rounds_up ... ok [INFO] [stdout] test vertical_metrics::tests::grid_snap_with_offset ... ok [INFO] [stdout] test vertical_metrics::tests::leading_display ... ok [INFO] [stdout] test vertical_metrics::tests::leading_fixed ... ok [INFO] [stdout] test vertical_metrics::tests::leading_none ... ok [INFO] [stdout] test vertical_metrics::tests::leading_proportional_20_percent ... ok [INFO] [stdout] test vertical_metrics::tests::leading_proportional_50_percent ... ok [INFO] [stdout] test vertical_metrics::tests::leading_proportional_double ... ok [INFO] [stdout] test vertical_metrics::tests::line_y_compact ... ok [INFO] [stdout] test vertical_metrics::tests::line_y_with_before_spacing ... ok [INFO] [stdout] test vertical_metrics::tests::line_y_with_leading ... ok [INFO] [stdout] test vertical_metrics::tests::paragraph_height_multi_line_compact ... ok [INFO] [stdout] test vertical_metrics::tests::paragraph_height_single_line_compact ... ok [INFO] [stdout] test vertical_metrics::tests::paragraph_height_with_leading ... ok [INFO] [stdout] test vertical_metrics::tests::paragraph_height_with_spacing ... ok [INFO] [stdout] test vertical_metrics::tests::paragraph_height_zero_lines ... ok [INFO] [stdout] test vertical_metrics::tests::policy_compact ... ok [INFO] [stdout] test vertical_metrics::tests::policy_default_is_compact ... ok [INFO] [stdout] test vertical_metrics::tests::policy_display ... ok [INFO] [stdout] test vertical_metrics::tests::policy_readable ... ok [INFO] [stdout] test vertical_metrics::tests::policy_typographic ... ok [INFO] [stdout] test vertical_metrics::tests::same_inputs_same_outputs ... ok [INFO] [stdout] test vertical_metrics::tests::spacing_custom ... ok [INFO] [stdout] test vertical_metrics::tests::spacing_display ... ok [INFO] [stdout] test vertical_metrics::tests::spacing_half_line ... ok [INFO] [stdout] test vertical_metrics::tests::spacing_none ... ok [INFO] [stdout] test vertical_metrics::tests::spacing_one_line ... ok [INFO] [stdout] test vertical_metrics::tests::to_cell_rows_exact ... ok [INFO] [stdout] test vertical_metrics::tests::to_cell_rows_rounds_up ... ok [INFO] [stdout] test vertical_metrics::tests::to_cell_rows_zero_cell_height ... ok [INFO] [stdout] test vertical_metrics::tests::to_cell_rows_zero_height ... ok [INFO] [stdout] test view::tests::clamp_scroll_viewport_larger_than_content ... ok [INFO] [stdout] test view::tests::clamp_scroll_within_bounds ... ok [INFO] [stdout] test view::tests::clamp_scroll_zero_viewport ... ok [INFO] [stdout] test view::tests::empty_text_scroll ... ok [INFO] [stdout] test view::tests::empty_text_view ... ok [INFO] [stdout] test view::tests::is_wrap_flag_set_correctly ... ok [INFO] [stdout] test view::tests::max_scroll_basic ... ok [INFO] [stdout] test view::tests::max_scroll_zero_viewport ... ok [INFO] [stdout] test view::tests::max_width_across_lines ... ok [INFO] [stdout] test view::tests::max_width_with_wide_chars ... ok [INFO] [stdout] test view::tests::only_newlines ... ok [INFO] [stdout] test view::tests::scroll_by_lines_negative ... ok [INFO] [stdout] test view::tests::scroll_by_lines_positive ... ok [INFO] [stdout] test view::tests::scroll_by_pages_backward ... ok [INFO] [stdout] test view::tests::scroll_by_pages_forward ... ok [INFO] [stdout] test view::tests::scroll_by_pages_moves_in_viewport_steps ... ok [INFO] [stdout] test view::tests::scroll_by_pages_zero_viewport ... ok [INFO] [stdout] test view::tests::scroll_to_bottom_respects_viewport ... ok [INFO] [stdout] test view::tests::scroll_to_line_basic ... ok [INFO] [stdout] test view::tests::scroll_to_line_clamps ... ok [INFO] [stdout] test view::tests::scroll_to_line_nonexistent ... ok [INFO] [stdout] test view::tests::scroll_to_top_and_bottom ... ok [INFO] [stdout] test view::tests::set_text_recomputes ... ok [INFO] [stdout] test view::tests::set_width_recomputes ... ok [INFO] [stdout] test view::tests::set_width_same_is_noop ... ok [INFO] [stdout] test view::tests::set_wrap_recomputes ... ok [INFO] [stdout] test view::tests::set_wrap_same_mode_is_noop ... ok [INFO] [stdout] test view::tests::source_to_virtual_no_wrap ... ok [INFO] [stdout] test view::tests::source_to_virtual_with_wrap ... ok [INFO] [stdout] test text::tests::text_width_multiline ... ok [INFO] [stdout] test view::tests::view_basic_counts ... ok [INFO] [stdout] test view::tests::view_line_width_tracking ... ok [INFO] [stdout] test view::tests::view_line_source_line_tracking ... ok [INFO] [stdout] test view::tests::view_strips_crlf ... ok [INFO] [stdout] test view::tests::view_wraps_word ... ok [INFO] [stdout] test view::tests::view_wraps_cjk_by_cells ... ok [INFO] [stdout] test view::tests::viewport_default ... ok [INFO] [stdout] test view::tests::viewport_equality ... ok [INFO] [stdout] test view::tests::viewport_struct_is_copyable ... ok [INFO] [stdout] test view::tests::trailing_newline_text ... ok [INFO] [stdout] test view::tests::virtual_to_source_with_wrap ... ok [INFO] [stdout] test view::tests::visible_lines_content ... ok [INFO] [stdout] test view::tests::virtual_to_source_no_wrap ... ok [INFO] [stdout] test view::tests::visible_lines_returns_slice ... ok [INFO] [stdout] test view::tests::visible_range_basic ... ok [INFO] [stdout] test view::tests::visible_range_clamps_scroll ... ok [INFO] [stdout] test view::tests::visible_range_zero_viewport ... ok [INFO] [stdout] test view::tests::width_accessor ... ok [INFO] [stdout] test view::tests::wrap_mode_accessor ... ok [INFO] [stdout] test segment::proptests::split_preserves_content ... ok [INFO] [stdout] test width_cache::e2e_cache_replay::replay_deterministic_reproduction ... ok [INFO] [stdout] test width_cache::e2e_cache_replay::replay_zipfian_lru_comparison ... ok [INFO] [stdout] test width_cache::e2e_cache_replay::replay_zipfian_tinylfu ... ok [INFO] [stdout] test width_cache::perf_cache_overhead::perf_doorkeeper_latency ... ok [INFO] [stdout] test width_cache::perf_cache_overhead::perf_fingerprint_hash_latency ... ok [INFO] [stdout] test width_cache::perf_cache_overhead::perf_lru_hit_latency ... ok [INFO] [stdout] test width_cache::perf_cache_overhead::perf_cms_increment_latency ... ok [INFO] [stdout] test width_cache::property_cache_equivalence::both_caches_agree_on_widths ... ok [INFO] [stdout] test width_cache::property_cache_equivalence::deterministic_seed_equivalence ... ok [INFO] [stdout] test width_cache::e2e_cache_replay::replay_uniform_workload ... ok [INFO] [stdout] test width_cache::perf_cache_overhead::perf_tinylfu_hit_latency ... ok [INFO] [stdout] test text::proptests::truncate_never_exceeds_width ... ok [INFO] [stdout] test text::proptests::truncate_with_ellipsis_never_exceeds_width ... ok [INFO] [stdout] test width_cache::perf_cache_overhead::perf_tinylfu_miss_latency ... ok [INFO] [stdout] test width_cache::property_cache_equivalence::tinylfu_custom_fn_matches ... ok [INFO] [stdout] test segment::proptests::split_preserves_total_width ... ok [INFO] [stdout] test rope::tests::char_byte_roundtrip ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_cjk_width ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_clear_resets ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_contains ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_default_capacity ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_different_strings ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_get_or_compute_caches_value ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_new_cache_is_empty ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_produces_same_widths_as_lru ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_reset_stats ... ok [INFO] [stdout] test width_cache::s3_fifo_width_tests::s3fifo_scan_resistance_preserves_hot_set ... ok [INFO] [stdout] test width_cache::tests::cache_stats_debug ... ok [INFO] [stdout] test width_cache::tests::cache_stats_default ... ok [INFO] [stdout] test width_cache::tests::cache_stats_equality ... ok [INFO] [stdout] test width_cache::tests::clear ... ok [INFO] [stdout] test width_cache::tests::clear_after_preload ... ok [INFO] [stdout] test width_cache::tests::combining_characters ... ok [INFO] [stdout] test width_cache::tests::contains ... ok [INFO] [stdout] test width_cache::tests::contains_does_not_modify_stats ... ok [INFO] [stdout] test width_cache::tests::custom_compute_called_once ... ok [INFO] [stdout] test width_cache::tests::custom_compute_function ... ok [INFO] [stdout] test width_cache::tests::default_cache ... ok [INFO] [stdout] test width_cache::tests::default_capacity ... ok [INFO] [stdout] test width_cache::tests::emoji_with_skin_tone ... ok [INFO] [stdout] test width_cache::tests::emoji_zwj_sequence ... ok [INFO] [stdout] test width_cache::tests::empty_string ... ok [INFO] [stdout] test width_cache::tests::flag_emoji ... ok [INFO] [stdout] test width_cache::tests::get_or_compute_caches_value ... ok [INFO] [stdout] test width_cache::tests::get_or_compute_cjk ... ok [INFO] [stdout] test width_cache::tests::get_or_compute_different_strings ... ok [INFO] [stdout] test width_cache::tests::get_returns_cached_value ... ok [INFO] [stdout] test width_cache::tests::get_returns_none_for_missing ... ok [INFO] [stdout] test width_cache::tests::get_updates_lru_order ... ok [INFO] [stdout] test width_cache::tests::hash_collision_handling ... ok [INFO] [stdout] test width_cache::tests::hit_rate ... ok [INFO] [stdout] test width_cache::tests::hit_rate_no_requests ... ok [INFO] [stdout] test width_cache::tests::lru_eviction ... ok [INFO] [stdout] test width_cache::tests::lru_refresh_on_access ... ok [INFO] [stdout] test width_cache::tests::minimum_capacity_is_one ... ok [INFO] [stdout] test width_cache::tests::mixed_width_strings ... ok [INFO] [stdout] test width_cache::tests::new_cache_is_empty ... ok [INFO] [stdout] test width_cache::tests::peek_does_not_update_lru ... ok [INFO] [stdout] test text::proptests::from_segments_preserves_content ... ok [INFO] [stdout] test width_cache::tests::peek_returns_none_for_missing ... ok [INFO] [stdout] test width_cache::tests::preload_existing_is_noop ... ok [INFO] [stdout] test width_cache::tests::preload_many ... ok [INFO] [stdout] test width_cache::tests::reset_stats ... ok [INFO] [stdout] test width_cache::tests::preload ... ok [INFO] [stdout] test width_cache::property_cache_equivalence::tinylfu_cached_equals_computed ... ok [INFO] [stdout] test width_cache::tests::resize_larger ... ok [INFO] [stdout] test width_cache::tests::resize_smaller ... ok [INFO] [stdout] test width_cache::tests::resize_to_zero_becomes_one ... ok [INFO] [stdout] test width_cache::tests::stats_size_reflects_cache_len ... ok [INFO] [stdout] test width_cache::tests::stats_capacity_matches ... ok [INFO] [stdout] test width_cache::tests::unicode_strings ... ok [INFO] [stdout] test width_cache::tests::width_cache_debug ... ok [INFO] [stdout] test width_cache::tests::whitespace_strings ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::admission_rejects_infrequent ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::basic_get_or_compute ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::clear_empties_everything ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::empty_string ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::capacity_is_respected ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::minimum_capacity ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::reset_stats_works ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::stats_reflect_usage ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::unicode_strings_work ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::unit_window_promotion ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::window_to_main_promotion ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_admission_rule ... ok [INFO] [stdout] test width_cache::proptests::cached_width_matches_direct ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::perf_cache_hit_rate ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_admission_rule_extremes ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_cms_halving_ages_counts ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_cms_monotone ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_cms_saturates_at_max ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_cms_single_key_count ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_cms_unseen_key_is_zero ... ok [INFO] [stdout] test width_cache::proptests::preload_then_access_is_hit ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_doorkeeper_clear_resets ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_cms_bounds ... ok [INFO] [stdout] test segment::proptests::cell_length_matches_display_width ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_doorkeeper_cms_pipeline ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_doorkeeper_contains ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_doorkeeper_false_positive_rate ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_doorkeeper_filters_one_hit_wonders ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_doorkeeper_first_access_returns_false ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_doorkeeper_second_access_returns_true ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_fingerprint_guard ... ok [INFO] [stdout] test wrap::proptests::adjacency_double_hyphen_plus_fitness ... ok [INFO] [stdout] test wrap::proptests::adjacency_double_hyphen ... ok [INFO] [stdout] test wrap::proptests::adjacency_fitness_compatible ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_cms_bounds_mass_test ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_fingerprint_independent_of_primary_hash ... ok [INFO] [stdout] test wrap::proptests::adjustment_ratio_zero_width ... ok [INFO] [stdout] test wrap::proptests::badness_excessive_slack_infeasible ... ok [INFO] [stdout] test wrap::proptests::badness_moderate_slack ... ok [INFO] [stdout] test wrap::proptests::badness_negative_slack_beyond_bounds ... ok [INFO] [stdout] test wrap::proptests::badness_negative_slack_within_bounds ... ok [INFO] [stdout] test wrap::proptests::badness_terminal_no_compression ... ok [INFO] [stdout] test wrap::proptests::badness_zero_slack_is_zero ... ok [INFO] [stdout] test wrap::proptests::badness_zero_width_nonzero_slack ... ok [INFO] [stdout] test wrap::proptests::demerits_forced_break ... ok [INFO] [stdout] test wrap::proptests::adjustment_ratio_computation ... ok [INFO] [stdout] test wrap::proptests::demerits_hyphen_break ... ok [INFO] [stdout] test wrap::proptests::demerits_infeasible_returns_none ... ok [INFO] [stdout] test wrap::proptests::demerits_space_break ... ok [INFO] [stdout] test wrap::proptests::fitness_class_from_ratio ... ok [INFO] [stdout] test wrap::proptests::fitness_class_incompatible ... ok [INFO] [stdout] test wrap::proptests::objective_default_is_tex_standard ... ok [INFO] [stdout] test wrap::proptests::objective_terminal_preset ... ok [INFO] [stdout] test wrap::proptests::orphan_penalty_short_first_line ... ok [INFO] [stdout] test wrap::proptests::badness_zero_width_zero_slack ... ok [INFO] [stdout] test width_cache::property_cache_equivalence::tinylfu_second_access_same_value ... ok [INFO] [stdout] test width_cache::tinylfu_tests::unit_fingerprint_guard_collision_rate ... ok [INFO] [stdout] test editor::proptests::unicode_cursor_bounds ... ok [INFO] [stdout] test wrap::proptests::widow_penalty_short_last_line ... ok [INFO] [stdout] test wrap::proptests::adjacency_fitness_incompatible ... ok [INFO] [stdout] test width_cache::tinylfu_impl_tests::fingerprint_guard_detects_collision ... ok [INFO] [stdout] test text::proptests::height_equals_newline_count_plus_one ... ok [INFO] [stdout] test text::proptests::raw_text_roundtrips ... ok [INFO] [stdout] test wrap::tests::ascii_width_control_chars_returns_none ... ok [INFO] [stdout] test wrap::tests::ascii_width_empty ... ok [INFO] [stdout] test wrap::tests::ascii_width_mixed_returns_none ... ok [INFO] [stdout] test wrap::tests::ascii_width_del_returns_none ... ok [INFO] [stdout] test wrap::tests::ascii_width_non_ascii_returns_none ... ok [INFO] [stdout] test wrap::tests::ascii_width_printable_range ... ok [INFO] [stdout] test wrap::tests::ascii_width_pure_ascii ... ok [INFO] [stdout] test wrap::tests::ascii_width_newline_returns_none ... ok [INFO] [stdout] test wrap::tests::ascii_width_tab_returns_none ... ok [INFO] [stdout] test wrap::tests::display_width_ascii ... ok [INFO] [stdout] test wrap::tests::display_width_emoji_presentation_selector ... ok [INFO] [stdout] test wrap::tests::display_width_emoji_sequences ... ok [INFO] [stdout] test wrap::tests::display_width_cjk ... ok [INFO] [stdout] test wrap::tests::display_width_emoji_skin_tone ... ok [INFO] [stdout] test wrap::tests::display_width_file_icons ... ok [INFO] [stdout] test wrap::tests::display_width_flag_emoji ... ok [INFO] [stdout] test segment::proptests::split_into_lines_preserves_content ... ok [INFO] [stdout] test wrap::tests::display_width_empty ... ok [INFO] [stdout] test wrap::tests::display_width_flags ... ok [INFO] [stdout] test wrap::tests::display_width_mixed_ascii_and_emoji ... ok [INFO] [stdout] test wrap::tests::display_width_misc_symbol_emoji ... ok [INFO] [stdout] test wrap::tests::display_width_misc_symbol_ranges ... ok [INFO] [stdout] test rope::tests::replace_yields_new_content ... ok [INFO] [stdout] test wrap::tests::display_width_skin_tone_modifiers ... ok [INFO] [stdout] test wrap::tests::display_width_uses_ascii_fast_path ... ok [INFO] [stdout] test wrap::tests::grapheme_count_ascii ... ok [INFO] [stdout] test wrap::tests::display_width_multiple_combining ... ok [INFO] [stdout] test wrap::tests::display_width_zwj_family ... ok [INFO] [stdout] test wrap::tests::display_width_zwj_sequences ... ok [INFO] [stdout] test width_cache::proptests::second_access_is_hit ... ok [INFO] [stdout] test wrap::tests::grapheme_count_cjk ... ok [INFO] [stdout] test wrap::tests::grapheme_count_combining ... ok [INFO] [stdout] test wrap::tests::grapheme_count_zwj ... ok [INFO] [stdout] test wrap::tests::grapheme_width_emoji_sequence ... ok [INFO] [stdout] test wrap::tests::grapheme_count_emoji ... ok [INFO] [stdout] test wrap::tests::grapheme_count_regional_indicators ... ok [INFO] [stdout] test wrap::tests::grapheme_count_empty ... ok [INFO] [stdout] test wrap::proptests::property_dp_preserves_content ... ok [INFO] [stdout] test wrap::tests::grapheme_width_flags_and_modifiers ... ok [INFO] [stdout] test wrap::tests::graphemes_cjk ... ok [INFO] [stdout] test wrap::tests::graphemes_iteration ... ok [INFO] [stdout] test wrap::tests::has_wide_chars_cjk_mixed ... ok [INFO] [stdout] test wrap::tests::has_wide_chars_false ... ok [INFO] [stdout] test wrap::tests::has_wide_chars_true ... ok [INFO] [stdout] test wrap::tests::is_ascii_only_false ... ok [INFO] [stdout] test wrap::tests::has_wide_chars_emoji ... ok [INFO] [stdout] test wrap::tests::kp_diagnostics_line_badness ... ok [INFO] [stdout] test wrap::tests::kp_deterministic ... ok [INFO] [stdout] test wrap::tests::is_ascii_only_true ... ok [INFO] [stdout] test wrap::tests::graphemes_empty ... ok [INFO] [stdout] test wrap::tests::kp_empty_text ... ok [INFO] [stdout] test wrap::tests::kp_multiline_preserves_newlines ... ok [INFO] [stdout] test wrap::tests::kp_optimal_vs_greedy ... ok [INFO] [stdout] test wrap::tests::kp_perfect_fit ... ok [INFO] [stdout] test wrap::tests::kp_single_word ... ok [INFO] [stdout] test wrap::tests::kp_wide_width_single_line ... ok [INFO] [stdout] test wrap::tests::kp_pruning_lookahead_bound ... ok [INFO] [stdout] test wrap::tests::kp_very_narrow_width ... ok [INFO] [stdout] test wrap::tests::truncate_cjk ... ok [INFO] [stdout] test wrap::tests::kp_simple_wrap ... ok [INFO] [stdout] test wrap::proptests::property_dp_vs_greedy ... ok [INFO] [stdout] test wrap::tests::kp_tokenize_basic ... ok [INFO] [stdout] test wrap::tests::truncate_no_change_if_fits ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_empty ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_cjk ... ok [INFO] [stdout] test wrap::tests::truncate_combining_chars ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_odd_boundary ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_wide_char_boundary ... ok [INFO] [stdout] test wrap::tests::snapshot_wrap_quality ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_with_info_cjk ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_with_info_basic ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_with_info_combining ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_with_info_empty ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_with_info_fits ... ok [INFO] [stdout] test wrap::tests::truncate_with_ellipsis_ascii ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_zero_width ... ok [INFO] [stdout] test wrap::tests::truncate_with_ellipsis_empty_ellipsis ... ok [INFO] [stdout] test wrap::tests::truncate_with_ellipsis_exact_fit ... ok [INFO] [stdout] test wrap::tests::unit_badness_cubic_growth ... ok [INFO] [stdout] test wrap::tests::unit_badness_last_line_always_zero ... ok [INFO] [stdout] test wrap::tests::unit_badness_monotone ... ok [INFO] [stdout] test wrap::tests::unit_badness_overflow_is_inf ... ok [INFO] [stdout] test wrap::tests::unit_badness_zero_slack ... ok [INFO] [stdout] test wrap::tests::unit_dp_known_two_line ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_basic ... ok [INFO] [stdout] test wrap::tests::unit_penalty_applied ... ok [INFO] [stdout] test wrap::tests::unit_dp_matches_known ... ok [INFO] [stdout] test wrap::tests::word_boundaries_multiple_spaces ... ok [INFO] [stdout] test wrap::tests::unit_dp_optimal_beats_greedy ... ok [INFO] [stdout] test wrap::tests::truncate_to_width_with_info_zero_width ... ok [INFO] [stdout] test wrap::tests::word_boundaries_only_spaces ... ok [INFO] [stdout] test wrap::tests::word_segments_basic ... ok [INFO] [stdout] test wrap::tests::word_boundaries_basic ... ok [INFO] [stdout] test wrap::tests::word_boundaries_no_spaces ... ok [INFO] [stdout] test wrap::tests::wrap_char_mode ... ok [INFO] [stdout] test wrap::tests::word_segments_empty ... ok [INFO] [stdout] test wrap::tests::word_segments_single_word ... ok [INFO] [stdout] test wrap::tests::wrap_cjk_odd_width ... ok [INFO] [stdout] test wrap::tests::wrap_cjk_respects_width ... ok [INFO] [stdout] test wrap::tests::wrap_emoji_as_unit ... ok [INFO] [stdout] test wrap::tests::wrap_long_word_no_char_fallback ... ok [INFO] [stdout] test wrap::tests::wrap_mixed_ascii_and_emoji_respects_width ... ok [INFO] [stdout] test wrap::tests::wrap_mixed_ascii_cjk ... ok [INFO] [stdout] test wrap::tests::wrap_mode_default ... ok [INFO] [stdout] test wrap::tests::wrap_mode_none ... ok [INFO] [stdout] test wrap::tests::wrap_no_preserve_indent_trims_leading_ws_on_new_line ... ok [INFO] [stdout] test wrap::tests::wrap_options_default ... ok [INFO] [stdout] test wrap::tests::wrap_options_trim_trailing ... ok [INFO] [stdout] test wrap::tests::wrap_text_empty_string ... ok [INFO] [stdout] test wrap::tests::wrap_text_long_word_no_fallback ... ok [INFO] [stdout] test wrap::tests::wrap_text_long_word_with_fallback ... ok [INFO] [stdout] test wrap::tests::wrap_text_no_wrap_needed ... ok [INFO] [stdout] test wrap::tests::wrap_text_preserves_crlf_newlines ... ok [INFO] [stdout] test wrap::tests::wrap_text_preserves_newlines ... ok [INFO] [stdout] test wrap::tests::wrap_text_single_word_wrap ... ok [INFO] [stdout] test wrap::tests::wrap_text_trailing_newlines ... ok [INFO] [stdout] test wrap::tests::wrap_text_multiple_words ... ok [INFO] [stdout] test wrap::tests::wrap_zero_width ... ok [INFO] [stdout] test wrap::tests::wrap_zwj_sequence_as_unit ... ok [INFO] [stdout] test wrap::tests::wrap_none_mode ... ok [INFO] [stdout] test wrap::proptests::truncate_never_exceeds_width ... ok [INFO] [stdout] test wrap::tests::wrap_options_builder ... ok [INFO] [stdout] test rope::tests::insert_remove_roundtrip ... ok [INFO] [stdout] test wrap::proptests::truncate_to_width_exact ... ok [INFO] [stdout] test wrap::tests::wrap_preserve_indent_keeps_leading_ws_on_new_line ... FAILED [INFO] [stdout] test wrap::proptests::property_dp_respects_width ... ok [INFO] [stdout] test wrap::proptests::wrapped_content_preserved ... ok [INFO] [stdout] test wrap::proptests::wordchar_mode_respects_width ... ok [INFO] [stdout] test wrap::proptests::wrapped_lines_never_exceed_width ... ok [INFO] [stdout] test wrap::tests::perf_wrap_large ... ok [INFO] [stdout] test wrap::tests::perf_wrap_bench ... ok [INFO] [stdout] test width_cache::proptests::lru_never_exceeds_capacity ... ok [INFO] [stdout] test width_cache::property_cache_equivalence::tinylfu_never_exceeds_capacity ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- wrap::tests::wrap_preserve_indent_keeps_leading_ws_on_new_line stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'wrap::tests::wrap_preserve_indent_keeps_leading_ws_on_new_line' (1084) panicked at src/wrap.rs:1737:9: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: ["word12", "abcde"] [INFO] [stdout] right: ["word12", " abcde"] [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5a75b4c4469a - std[e72de78501789eb0]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5a75b4c4469a - std[e72de78501789eb0]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5a75b4c4469a - std[e72de78501789eb0]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5a75b4c4469a - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5a75b4c5ac4a - ::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5a75b4c5ac4a - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 6: 0x5a75b4c49332 - std[e72de78501789eb0]::io::default_write_fmt::> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5a75b4c49332 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5a75b4c2213f - ::print [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5a75b4c2213f - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5a75b4c3ca09 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5a75b4a807cc - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x5a75b4a807cc - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5a75b4c3cbc2 - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x5a75b4c3cbc2 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5a75b4c221f8 - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5a75b4c19a89 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5a75b4c22f0d - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5a75b4c5b48c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5a75b4c5b343 - core[6aaeda2c7ad07a48]::panicking::assert_failed_inner [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:439:17 [INFO] [stdout] 20: 0x5a75b494bd39 - core[6aaeda2c7ad07a48]::panicking::assert_failed::, alloc[28d2dab30c1dc666]::vec::Vec<&str>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:394:5 [INFO] [stdout] 21: 0x5a75b4a47d81 - ftui_text[6fe8b10c3073d05e]::wrap::tests::wrap_preserve_indent_keeps_leading_ws_on_new_line [INFO] [stdout] at /opt/rustwide/workdir/src/wrap.rs:1737:9 [INFO] [stdout] 22: 0x5a75b4a23687 - ftui_text[6fe8b10c3073d05e]::wrap::tests::wrap_preserve_indent_keeps_leading_ws_on_new_line::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/wrap.rs:1732:59 [INFO] [stdout] 23: 0x5a75b4918c66 - >::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5a75b4a748ab - core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x5a75b4a748ab - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x5a75b4a8129b - test[4f12b380f1fb68c5]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x5a75b4a8129b - as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x5a75b4a8129b - std[e72de78501789eb0]::panicking::catch_unwind::do_call::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x5a75b4a8129b - std[e72de78501789eb0]::panicking::catch_unwind::, core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x5a75b4a8129b - std[e72de78501789eb0]::panic::catch_unwind::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x5a75b4a8129b - test[4f12b380f1fb68c5]::run_test_in_process [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x5a75b4a8129b - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x5a75b4a7c9b4 - test[4f12b380f1fb68c5]::run_test::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x5a75b4a7c9b4 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x5a75b4a83ea2 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x5a75b4a83ea2 - ::{closure#1}::{closure#0}> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x5a75b4a83ea2 - std[e72de78501789eb0]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x5a75b4a83ea2 - std[e72de78501789eb0]::panicking::catch_unwind::<(), core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x5a75b4a83ea2 - std[e72de78501789eb0]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x5a75b4a83ea2 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x5a75b4a83ea2 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x5a75b4c43f7f - + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 43: 0x5a75b4c43f7f - ::new::thread_start [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7fa86b7e7aa4 - [INFO] [stdout] 45: 0x7fa86b874a64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] wrap::tests::wrap_preserve_indent_keeps_leading_ws_on_new_line [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1078 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.83s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] running `Command { std: "docker" "inspect" "d8ddc2e98bf288f6c642b4646edb21077ee7b4710836a4e8573dbb7427d9c556", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d8ddc2e98bf288f6c642b4646edb21077ee7b4710836a4e8573dbb7427d9c556", kill_on_drop: false }` [INFO] [stdout] d8ddc2e98bf288f6c642b4646edb21077ee7b4710836a4e8573dbb7427d9c556