[INFO] cloning repository https://github.com/gHexaByte/retach [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gHexaByte/retach" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FgHexaByte%2Fretach", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FgHexaByte%2Fretach'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4b944377b7bbe0f647f417f6f5408791bfaa667e [INFO] testing gHexaByte/retach against try#8da20828b6ea601dfd8e2448cb50ace88876bd78 for pr-150933 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FgHexaByte%2Fretach" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/gHexaByte/retach [INFO] finished tweaking git repo https://github.com/gHexaByte/retach [INFO] tweaked toml for git repo https://github.com/gHexaByte/retach written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/gHexaByte/retach on toolchain 8da20828b6ea601dfd8e2448cb50ace88876bd78 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/gHexaByte/retach 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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2095f2da174883dc68ef76bc7a0ab10acf3827902cf384cc561b9710b1a903b6 [INFO] running `Command { std: "docker" "start" "-a" "2095f2da174883dc68ef76bc7a0ab10acf3827902cf384cc561b9710b1a903b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2095f2da174883dc68ef76bc7a0ab10acf3827902cf384cc561b9710b1a903b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2095f2da174883dc68ef76bc7a0ab10acf3827902cf384cc561b9710b1a903b6", kill_on_drop: false }` [INFO] [stdout] 2095f2da174883dc68ef76bc7a0ab10acf3827902cf384cc561b9710b1a903b6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 097cb1d9f3f6ea49318c1bf4163d2bb3bf39e7d5a94c7ece6af2c9aea8ecae96 [INFO] running `Command { std: "docker" "start" "-a" "097cb1d9f3f6ea49318c1bf4163d2bb3bf39e7d5a94c7ece6af2c9aea8ecae96", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling downcast-rs v1.2.1 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling vte_generate_state_changes v0.1.2 [INFO] [stderr] Compiling vte v0.13.1 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling termios v0.2.2 [INFO] [stderr] Compiling ioctl-rs v0.1.6 [INFO] [stderr] Compiling serial-core v0.4.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling nix v0.25.1 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling serial-unix v0.4.0 [INFO] [stderr] Compiling serial v0.4.0 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling filedescriptor v0.8.3 [INFO] [stderr] Compiling portable-pty v0.8.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling retach v0.7.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: enum `MouseMode` is never used [INFO] [stdout] --> src/screen/grid.rs:99:10 [INFO] [stdout] | [INFO] [stdout] 99 | pub enum MouseMode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `effective` is never used [INFO] [stdout] --> src/screen/grid.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 117 | impl MouseModes { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn effective(&self) -> MouseMode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.21s [INFO] running `Command { std: "docker" "inspect" "097cb1d9f3f6ea49318c1bf4163d2bb3bf39e7d5a94c7ece6af2c9aea8ecae96", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "097cb1d9f3f6ea49318c1bf4163d2bb3bf39e7d5a94c7ece6af2c9aea8ecae96", kill_on_drop: false }` [INFO] [stdout] 097cb1d9f3f6ea49318c1bf4163d2bb3bf39e7d5a94c7ece6af2c9aea8ecae96 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d768db4f77bdde5ced9f94002483e72495722287a22f428a262a4fca79eb59aa [INFO] running `Command { std: "docker" "start" "-a" "d768db4f77bdde5ced9f94002483e72495722287a22f428a262a4fca79eb59aa", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling retach v0.7.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `count_nonempty_history` is never used [INFO] [stdout] --> src/screen/tests_progress_bar_scrollback.rs:86:4 [INFO] [stdout] | [INFO] [stdout] 86 | fn count_nonempty_history(screen: &Screen) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 12.83s [INFO] running `Command { std: "docker" "inspect" "d768db4f77bdde5ced9f94002483e72495722287a22f428a262a4fca79eb59aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d768db4f77bdde5ced9f94002483e72495722287a22f428a262a4fca79eb59aa", kill_on_drop: false }` [INFO] [stdout] d768db4f77bdde5ced9f94002483e72495722287a22f428a262a4fca79eb59aa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 4d4980846b2e5f34df6b91e6cb78281b1b508d65865b0c7d2d67aaf9db85867d [INFO] running `Command { std: "docker" "start" "-a" "4d4980846b2e5f34df6b91e6cb78281b1b508d65865b0c7d2d67aaf9db85867d", kill_on_drop: false }` [INFO] [stderr] warning: function `count_nonempty_history` is never used [INFO] [stderr] --> src/screen/tests_progress_bar_scrollback.rs:86:4 [INFO] [stderr] | [INFO] [stderr] 86 | fn count_nonempty_history(screen: &Screen) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `retach` (bin "retach" test) generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/retach-b8c78d6c78a22a21) [INFO] [stdout] [INFO] [stdout] running 648 tests [INFO] [stdout] test client::tests::dispatch_server_msg_error_returns_done ... ok [INFO] [stdout] test client::tests::dispatch_server_msg_screen_update_continues ... ok [INFO] [stdout] test client::tests::dispatch_server_msg_session_ended_returns_done ... ok [INFO] [stdout] test protocol::codec::tests::decode_accepts_max_size_frame ... ok [INFO] [stdout] test protocol::codec::tests::decode_frame_1_byte_buffer ... ok [INFO] [stdout] test protocol::codec::tests::decode_frame_3_byte_buffer ... ok [INFO] [stdout] test protocol::codec::tests::encode_all_client_msg_variants ... ok [INFO] [stdout] test protocol::codec::tests::encode_all_server_msg_variants ... ok [INFO] [stdout] test protocol::codec::tests::decode_frame_zero_length ... ok [INFO] [stdout] test protocol::codec::tests::decode_incomplete_frame ... ok [INFO] [stdout] test protocol::codec::tests::decode_rejects_corrupted_payload ... ok [INFO] [stdout] test protocol::codec::tests::decode_rejects_oversized_frame ... ok [INFO] [stdout] test protocol::codec::tests::encode_decode_connect_mode_attach_only ... ok [INFO] [stdout] test protocol::codec::tests::encode_decode_connect_mode_create_only ... ok [INFO] [stdout] test protocol::codec::tests::encode_decode_round_trip ... ok [INFO] [stdout] test protocol::codec::tests::frame_reader_leftover_after_decode ... ok [INFO] [stdout] test protocol::codec::tests::frame_reader_with_leftover ... ok [INFO] [stdout] test protocol::codec::tests::encode_decode_server_msg ... ok [INFO] [stdout] test screen::grid::tests::grid_scroll_up ... ok [INFO] [stdout] test protocol::codec::tests::decode_frame_empty_buffer ... ok [INFO] [stdout] test protocol::codec::tests::encode_empty_collections ... ok [INFO] [stdout] test protocol::codec::tests::read_one_message_server_msg ... ok [INFO] [stdout] test protocol::codec::tests::read_one_message_success ... ok [INFO] [stdout] test screen::grid::tests::grid_new_creates_correct_size ... ok [INFO] [stdout] test screen::grid::tests::grid_new_zero_dimensions ... ok [INFO] [stdout] test screen::grid::tests::grid_resize ... ok [INFO] [stdout] test screen::grid::tests::grid_resize_zero ... ok [INFO] [stdout] test protocol::codec::tests::read_one_message_connection_closed ... ok [INFO] [stdout] test protocol::codec::tests::frame_reader_multiple_messages_in_buffer ... ok [INFO] [stdout] test protocol::codec::tests::encode_multiple_decode_sequential ... ok [INFO] [stdout] test screen::grid::tests::grid_scroll_up_alt_screen_no_scrollback ... ok [INFO] [stdout] test screen::grid::tests::grid_scroll_up_respects_limit ... ok [INFO] [stdout] test screen::grid::tests::pending_scrollback_respects_limit ... ok [INFO] [stdout] test screen::grid::tests::resize_both_expand ... ok [INFO] [stdout] test screen::grid::tests::resize_both_shrink_clamps_cursor ... ok [INFO] [stdout] test screen::grid::tests::resize_both_shrink ... ok [INFO] [stdout] test screen::grid::tests::resize_expand_cols_shrink_rows ... ok [INFO] [stdout] test screen::grid::tests::resize_horizontal_expand_preserves_content ... ok [INFO] [stdout] test screen::grid::tests::resize_horizontal_shrink_clamps_cursor ... ok [INFO] [stdout] test screen::grid::tests::resize_horizontal_shrink_preserves_visible_content ... ok [INFO] [stdout] test screen::grid::tests::resize_horizontal_shrink_then_expand_loses_truncated ... ok [INFO] [stdout] test screen::grid::tests::resize_expand_preserves_cursor ... ok [INFO] [stdout] test screen::grid::tests::resize_multiple_sequential_preserves_overlap ... ok [INFO] [stdout] test screen::grid::tests::resize_shrink_cols_expand_rows ... ok [INFO] [stdout] test screen::grid::tests::resize_vertical_shrink_clamps_cursor ... ok [INFO] [stdout] test screen::grid::tests::resize_resets_scroll_region ... ok [INFO] [stdout] test screen::grid::tests::resize_vertical_shrink_preserves_visible_content ... ok [INFO] [stdout] test screen::grid::tests::resize_same_dimensions_preserves_everything ... ok [INFO] [stdout] test screen::grid::tests::resize_vertical_expand_preserves_content ... ok [INFO] [stdout] test screen::history_boundary_tests::history_and_screen_no_overlap ... ok [INFO] [stdout] test screen::history_boundary_tests::e2e_reattach_no_history_no_flush ... ok [INFO] [stdout] test screen::history_boundary_tests::e2e_scrollback_during_session_then_reattach ... ok [INFO] [stdout] test screen::grid::tests::resize_vertical_shrink_then_expand_loses_truncated ... ok [INFO] [stdout] test screen::grid::tests::sanitize_zero_dimensions ... ok [INFO] [stdout] test screen::grid::tests::scroll_up_full_region_with_scrollback_still_works ... ok [INFO] [stdout] test screen::grid::tests::resize_resets_tab_stops ... ok [INFO] [stdout] test screen::grid::tests::scroll_up_partial_region_with_scrollback_preserves_rows_below ... ok [INFO] [stdout] test screen::grid::tests::terminal_modes_default ... ok [INFO] [stdout] test screen::history_boundary_tests::e2e_reattach_history_then_screen ... ok [INFO] [stdout] test screen::history_boundary_tests::e2e_reattach_protocol_encode_decode_sequence ... ok [INFO] [stdout] test screen::history_boundary_tests::e2e_reattach_wide_terminal_to_narrow ... ok [INFO] [stdout] test screen::history_boundary_tests::history_message_round_trip ... ok [INFO] [stdout] test screen::history_boundary_tests::scrollback_line_message_round_trip ... ok [INFO] [stdout] test screen::history_boundary_tests::resize_expand_moves_scrollback_to_screen_no_duplication ... ok [INFO] [stdout] test screen::history_boundary_tests::resize_shrink_then_expand_roundtrip_no_duplication ... ok [INFO] [stdout] test screen::render::tests::reattach_no_flush_without_history ... ok [INFO] [stdout] test screen::render::tests::reattach_history_flush_count ... ok [INFO] [stdout] test screen::history_boundary_tests::e2e_resize_between_reattach_cycles ... ok [INFO] [stdout] test screen::history_boundary_tests::e2e_reattach_with_styled_history ... ok [INFO] [stdout] test screen::history_boundary_tests::history_chunking_round_trip ... ok [INFO] [stdout] test screen::render::tests::render_line_256_color ... ok [INFO] [stdout] test screen::history_boundary_tests::resize_between_reattach_preserves_content ... ok [INFO] [stdout] test screen::render::tests::no_scrollback_no_crlf_in_output ... ok [INFO] [stdout] test screen::history_boundary_tests::resize_expand_between_reattach_restores_scrollback ... ok [INFO] [stdout] test screen::history_boundary_tests::stale_pending_scrollback_only_new_lines ... ok [INFO] [stdout] test screen::history_boundary_tests::history_render_flush_newlines_match_rows ... ok [INFO] [stdout] test screen::render::tests::render_cache_invalidate ... ok [INFO] [stdout] test screen::history_boundary_tests::pending_scrollback_drained_before_reattach ... ok [INFO] [stdout] test screen::history_boundary_tests::screen_update_message_round_trip ... ok [INFO] [stdout] test screen::render::tests::render_line_blank ... ok [INFO] [stdout] test screen::render::tests::render_line_rgb_color ... ok [INFO] [stdout] test screen::history_boundary_tests::history_ordering_preserved_with_many_lines ... ok [INFO] [stdout] test screen::render::tests::render_line_styled_trailing_space ... ok [INFO] [stdout] test screen::render::tests::render_line_with_text ... ok [INFO] [stdout] test screen::render::tests::render_line_with_style ... ok [INFO] [stdout] test screen::render::tests::render_line_combined_attributes ... ok [INFO] [stdout] test screen::render::tests::render_line_multiple_style_changes ... ok [INFO] [stdout] test screen::render::tests::render_line_combining_mark ... ok [INFO] [stdout] test screen::render::tests::render_line_wide_char_at_end ... ok [INFO] [stdout] test screen::render::tests::render_line_skips_wide_char_continuation ... ok [INFO] [stdout] test screen::render::tests::render_line_combining_on_wide_char ... ok [INFO] [stdout] test screen::render::tests::render_screen_1x1_grid ... ok [INFO] [stdout] test screen::render::tests::render_screen_cursor_position ... ok [INFO] [stdout] test screen::render::tests::render_screen_full_mode_emits_mouse_modes ... ok [INFO] [stdout] test screen::render::tests::render_screen_full ... ok [INFO] [stdout] test screen::render::tests::render_screen_after_resize ... ok [INFO] [stdout] test screen::render::tests::render_screen_hidden_cursor ... ok [INFO] [stdout] test screen::render::tests::render_screen_includes_title ... ok [INFO] [stdout] test screen::render::tests::render_screen_cursor_shape_delta ... ok [INFO] [stdout] test screen::render::tests::render_screen_incremental ... ok [INFO] [stdout] test screen::render::tests::render_screen_mouse_encoding_1005 ... ok [INFO] [stdout] test screen::render::tests::render_screen_keypad_mode_delta ... ok [INFO] [stdout] test screen::render::tests::render_screen_incremental_dirty_tracking ... ok [INFO] [stdout] test screen::render::tests::render_screen_mode_delta_bracketed_paste ... ok [INFO] [stdout] test screen::render::tests::render_screen_mode_delta_mouse_switch ... ok [INFO] [stdout] test screen::render::tests::render_line_styled_spaces_not_blank ... ok [INFO] [stdout] test screen::render::tests::render_cached_title_no_bell ... ok [INFO] [stdout] test screen::render::tests::render_screen_mouse_encoding_1006 ... ok [INFO] [stdout] test screen::render::tests::render_screen_style_only_change_detected ... ok [INFO] [stdout] test screen::render::tests::render_screen_synchronized_output ... ok [INFO] [stdout] test screen::render::tests::render_screen_title_cached ... ok [INFO] [stdout] test screen::render::tests::render_no_title_no_bell_bytes ... ok [INFO] [stdout] test screen::render::tests::render_screen_title_sanitized ... ok [INFO] [stdout] test screen::render::tests::render_screen_title_cleared ... ok [INFO] [stdout] test screen::render::tests::render_no_standalone_bell ... ok [INFO] [stdout] test screen::render::tests::render_screen_no_title_when_empty ... ok [INFO] [stdout] test screen::style::tests::sgr_reset ... ok [INFO] [stdout] test screen::style::tests::sgr_round_trip_256_color ... ok [INFO] [stdout] test screen::style::tests::sgr_round_trip_bold ... ok [INFO] [stdout] test screen::style::tests::sgr_round_trip_default ... ok [INFO] [stdout] test screen::style::tests::sgr_round_trip_fg_indexed ... ok [INFO] [stdout] test screen::style::tests::sgr_round_trip_rgb ... ok [INFO] [stdout] test screen::render::tests::scrollback_forces_full_redraw ... ok [INFO] [stdout] test screen::style::tests::sgr_underline_variants ... ok [INFO] [stdout] test screen::style::tests::sgr_with_reset_default ... ok [INFO] [stdout] test screen::style::tests::sgr_with_reset_styled ... ok [INFO] [stdout] test screen::tests_large_updates::alternating_bulk_and_single_line_updates ... ok [INFO] [stdout] test screen::tests_large_updates::bulk_output_pending_scrollback_matches_total ... ok [INFO] [stdout] test screen::tests_large_updates::bulk_output_scrollback_count ... ok [INFO] [stdout] test screen::style::tests::sgr_strikethrough_attribute ... ok [INFO] [stdout] test protocol::codec::tests::encode_large_input ... ok [INFO] [stdout] test screen::tests_large_updates::bulk_output_with_styles_renders_correctly ... ok [INFO] [stdout] test screen::render::tests::scrollback_outside_sync_block ... ok [INFO] [stdout] test screen::tests_large_updates::cache_invalidate_mid_bulk_produces_correct_render ... ok [INFO] [stdout] test screen::tests_large_updates::cursor_position_after_bulk_output ... ok [INFO] [stdout] test screen::tests_large_updates::cursor_stays_on_bottom_row_during_continuous_scroll ... ok [INFO] [stdout] test screen::style::tests::sgr_bright_colors ... ok [INFO] [stdout] test screen::style::tests::sgr_colon_separated_subparams ... ok [INFO] [stdout] test screen::render::tests::render_screen_cursor_bottom_right ... ok [INFO] [stdout] test screen::style::tests::sgr_dim_attribute ... ok [INFO] [stdout] test screen::tests_large_updates::incremental_render_no_redraw_when_content_unchanged_after_scroll ... ok [INFO] [stdout] test screen::tests_large_updates::output_exactly_fills_screen_no_scroll ... ok [INFO] [stdout] test screen::tests_large_updates::output_one_more_than_screen_scrolls_once ... ok [INFO] [stdout] test screen::render::tests::scrollback_lines_use_cursor_positioning ... ok [INFO] [stdout] test screen::tests_large_updates::multiple_bulk_updates_dirty_tracking ... ok [INFO] [stdout] test screen::render::tests::scrollback_lines_appear_before_screen_clear ... ok [INFO] [stdout] test screen::tests_large_updates::rapid_output_then_partial_overwrite ... ok [INFO] [stdout] test screen::render::tests::scrollback_positions_cursor_at_bottom ... ok [INFO] [stdout] test screen::tests_large_updates::scrollback_limit_pending_also_capped ... ok [INFO] [stdout] test screen::tests_large_updates::render_with_large_pending_scrollback ... ok [INFO] [stdout] test screen::tests_large_updates::bulk_output_with_scroll_region ... ok [INFO] [stdout] test screen::tests_large_updates::scrollback_limit_caps_history ... ok [INFO] [stdout] test screen::tests_large_updates::scrollback_limit_zero_no_history ... ok [INFO] [stdout] test screen::style::tests::sgr_all_attributes_combined ... ok [INFO] [stdout] test screen::style::tests::sgr_blink_attribute ... ok [INFO] [stdout] test screen::style::tests::sgr_inverse_attribute ... ok [INFO] [stdout] test screen::tests_large_updates::reattach_render_no_standalone_bell_after_bulk ... ok [INFO] [stdout] test screen::tests_live_scrollback::alt_screen_does_not_generate_scrollback ... ok [INFO] [stdout] test screen::tests_live_scrollback::bracketed_paste_delta_after_scrollback_cycle ... ok [INFO] [stdout] test screen::tests_live_scrollback::cursor_hidden_state_preserved_after_scrollback_injection ... ok [INFO] [stdout] test screen::tests_live_scrollback::alternating_scrollback_and_no_scrollback_cycles ... ok [INFO] [stdout] test screen::tests_live_scrollback::blank_lines_in_scrollback_produce_empty_entries ... ok [INFO] [stdout] test screen::tests_live_scrollback::cursor_shape_delta_correct_after_scrollback_then_change ... ok [INFO] [stdout] test screen::tests_large_updates::sync_block_wraps_large_render ... ok [INFO] [stdout] test screen::tests_live_scrollback::autowrap_delta_after_scrollback_cycle ... ok [INFO] [stdout] test screen::tests_live_scrollback::full_relay_cycle_scrollback_then_incremental_then_scrollback ... ok [INFO] [stdout] test screen::tests_live_scrollback::pending_scrollback_preserved_across_alt_screen_excursion ... ok [INFO] [stdout] test screen::tests_live_scrollback::pending_empty_after_drain_no_double_send ... ok [INFO] [stdout] test screen::tests_live_scrollback::incremental_render_after_scrollback_injection_redraws_all_rows ... ok [INFO] [stdout] test screen::tests_live_scrollback::mode_change_between_scrollback_batches_reflected_correctly ... ok [INFO] [stdout] test screen::tests_live_scrollback::output_between_take_and_render_captured_in_next_cycle ... ok [INFO] [stdout] test screen::tests_live_scrollback::pending_scrollback_limit_enforced_during_rapid_output ... ok [INFO] [stdout] test screen::tests_large_updates::reattach_after_1000_lines ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_byte_ordering_end_to_end ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_exactly_rows_lines_single_chunk ... ok [INFO] [stdout] test screen::tests_live_scrollback::scroll_region_cached_after_scrollback_not_re_emitted ... ok [INFO] [stdout] test screen::tests_live_scrollback::cursor_position_correct_after_scrollback_injection ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_content_before_clear_screen_content_after ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_injection_outside_synchronized_output ... ok [INFO] [stdout] test screen::tests_live_scrollback::scroll_region_not_at_top_produces_no_scrollback ... ok [INFO] [stdout] test screen::tests_live_scrollback::many_sequential_batches_accumulate_correctly ... ok [INFO] [stdout] test screen::tests_live_scrollback::screen_only_change_after_scrollback_renders_incrementally ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_multi_chunk_processes_correctly ... ok [INFO] [stdout] test screen::tests_live_scrollback::single_line_scrollback_injection ... ok [INFO] [stdout] test screen::tests_live_scrollback::large_pending_scrollback_renders_all_lines ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_injection_resets_scroll_region ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_injection_starts_at_bottom_row ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_large_burst_chunked_correctly ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_partial_chunk_erases_remaining_rows ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_single_chunk_overwrites_rows ... ok [INFO] [stdout] test screen::tests_live_scrollback::scrollback_single_line_overwrites_and_scrolls ... ok [INFO] [stdout] test screen::tests_live_scrollback::sequential_scrollback_batches_no_duplication ... ok [INFO] [stdout] test screen::tests_large_updates::bulk_output_scrollback_ordering ... ok [INFO] [stdout] test screen::tests_live_scrollback::title_cached_after_scrollback_not_re_emitted ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::ed3_erase_display_with_scrollback_clears_history ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::ed2_erase_display_does_not_leak_to_scrollback ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::cuu_cannot_reach_scrollback ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::el_only_affects_current_grid_row ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::erased_progress_becomes_blank_line_in_scrollback ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::erased_region_creates_blank_artifact_in_scrollback ... ok [INFO] [stdout] test screen::tests_live_scrollback::two_incremental_renders_after_scrollback_only_first_redraws ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::multiline_progress_erased_before_scrolling ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::multiline_spinner_then_erase_then_large_output ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::progress_bar_captured_in_scrollback_before_erase ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::output_arrives_before_progress_erase_captures_progress_in_scrollback ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::reverse_index_at_top_does_not_affect_scrollback ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::response_with_cursor_home_and_overwrite_no_scrollback_leak ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::progress_in_scroll_region_does_not_leak_to_scrollback ... ok [INFO] [stdout] test screen::tests_live_scrollback::styled_scrollback_lines_preserve_formatting ... ok [INFO] [stdout] test screen::tests_live_scrollback::wide_chars_in_scrollback_render_correctly ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::progress_bar_visible_in_scrollback_after_reconnect ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::spinner_loop_then_erase_then_large_output ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::save_restore_cursor_around_progress_erase ... ok [INFO] [stdout] test screen::tests_reattach::mode_delta_detects_charset_change ... ok [INFO] [stdout] test screen::tests_reattach::full_data_processing_keeps_grid_in_sync ... ok [INFO] [stdout] test screen::tests_reattach::history_available_after_alt_screen_exit ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::progress_overwritten_by_normal_output_no_scrollback_leak ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::styled_progress_bar_erased_cleanly ... ok [INFO] [stdout] test screen::tests_reattach::mode_delta_detects_autowrap_change ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::pending_scrollback_correct_during_progress_erase_cycle ... ok [INFO] [stdout] test screen::tests_reattach::alt_screen_skips_history_on_reattach ... ok [INFO] [stdout] test screen::tests_reattach::reattach_after_alt_screen_roundtrip ... ok [INFO] [stdout] test screen::tests_reattach::reattach_alt_screen_content ... ok [INFO] [stdout] test screen::tests_reattach::data_loss_corrupts_scroll_region ... ok [INFO] [stdout] test screen::tests_reattach::reattach_background_color_erase ... ok [INFO] [stdout] test screen::tests_reattach::mode_delta_detects_scroll_region_change ... ok [INFO] [stdout] test screen::tests_reattach::reattach_256_color_preserved ... ok [INFO] [stdout] test screen::tests_reattach::no_flush_newlines_without_history ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cell_content_preserved ... ok [INFO] [stdout] test screen::tests_reattach::reattach_bold_text_preserved ... ok [INFO] [stdout] test screen::tests_reattach::reattach_after_simulated_data_loss ... ok [INFO] [stdout] test screen::tests_reattach::reattach_bracketed_paste_mode ... ok [INFO] [stdout] test screen::tests_reattach::reattach_background_color_preserved ... ok [INFO] [stdout] test screen::tests_reattach::reattach_after_multiple_resizes ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_after_autowrap ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_after_delete_characters ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::single_line_progress_erased_before_scrolling ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_after_insert_characters ... ok [INFO] [stdout] test screen::tests_reattach::reattach_combining_marks ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_after_erase_to_end_of_line ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_after_insert_lines ... ok [INFO] [stdout] test screen::tests_reattach::reattach_after_full_reset ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_after_reverse_index ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_after_delete_lines ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_fills_entire_screen ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_after_scroll_within_region ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_last_row ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_with_scroll_region ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_alt_screen_exit ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_clear_screen ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_movement ... ok [INFO] [stdout] test screen::tests_reattach::reattach_content_last_column ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_resize_within_bounds ... ok [INFO] [stdout] test screen::tests_reattach::mode_delta_skips_unchanged_scroll_region ... ok [INFO] [stdout] test screen::tests_reattach::reattach_combined_sgr_attributes ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_save_restore ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_resize_clamp ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_erase_in_display ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_scroll ... ok [INFO] [stdout] test screen::tests_reattach::reattach_colored_text_preserved ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_newlines ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_at_origin ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_shape_preserved ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_shape_steady_block ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_bottom_right ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_after_text_input ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_position_independent_of_content ... ok [INFO] [stdout] test screen::tests_reattach::reattach_focus_reporting ... ok [INFO] [stdout] test screen::tests_reattach::reattach_fresh_cache_always_full_render ... ok [INFO] [stdout] test screen::tests_reattach::reattach_dim_attribute ... ok [INFO] [stdout] test protocol::codec::tests::read_one_message_rejects_buffer_overflow ... ok [INFO] [stdout] test screen::tests_reattach::reattach_emits_full_screen_scroll_region ... ok [INFO] [stdout] test screen::tests_reattach::reattach_empty_screen ... ok [INFO] [stdout] test screen::tests_reattach::reattach_mixed_styled_unstyled_regions ... ok [INFO] [stdout] test screen::tests_reattach::reattach_inverse_attribute ... ok [INFO] [stdout] test screen::tests_reattach::reattach_htop_scroll_region_layout ... ok [INFO] [stdout] test screen::tests_reattach::reattach_hidden_text_attribute ... ok [INFO] [stdout] test screen::tests_progress_bar_scrollback::full_session_prompt_spinner_response_scrollback_consistency ... ok [INFO] [stdout] test screen::tests_reattach::reattach_mouse_mode_1003 ... ok [INFO] [stdout] test screen::tests_reattach::reattach_keypad_app_mode ... ok [INFO] [stdout] test screen::tests_reattach::reattach_line_drawing_characters ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_visibility_hidden ... ok [INFO] [stdout] test screen::tests_reattach::reattach_multiple_rows_content ... ok [INFO] [stdout] test screen::tests_reattach::reattach_multiple_style_changes_per_row ... ok [INFO] [stdout] test screen::tests_reattach::reattach_mouse_sgr_encoding ... ok [INFO] [stdout] test screen::tests_reattach::reattach_restores_active_charset_g0 ... ok [INFO] [stdout] test screen::tests_reattach::reattach_htop_multiple_reconnections ... ok [INFO] [stdout] test screen::tests_reattach::reattach_full_state_roundtrip ... ok [INFO] [stdout] test screen::render::tests::render_full_redraw_no_standalone_bell ... ok [INFO] [stdout] test screen::tests_large_updates::full_render_after_bulk_scroll_shows_last_rows ... ok [INFO] [stdout] test screen::tests_reattach::reattach_row_order_correct ... ok [INFO] [stdout] test screen::tests_reattach::reattach_restores_autowrap_enabled ... ok [INFO] [stdout] test screen::tests_reattach::reattach_rgb_color_preserved ... ok [INFO] [stdout] test screen::tests_reattach::reattach_restores_g0_ascii_charset ... ok [INFO] [stdout] test screen::tests_reattach::reattach_restores_autowrap_disabled ... ok [INFO] [stdout] test screen::tests_reattach::reattach_scrollback_not_in_grid_render ... ok [INFO] [stdout] test screen::tests_reattach::reattach_scroll_region_before_cursor_position ... ok [INFO] [stdout] test screen::tests_reattach::reattach_scrollback_lines_in_history_render ... ok [INFO] [stdout] test screen::tests_reattach::reattach_wide_char_at_end_of_row ... ok [INFO] [stdout] test screen::tests_reattach::reattach_wide_char_wraps_at_boundary ... ok [INFO] [stdout] test screen::tests_reattach::reattach_restores_g1_line_drawing_charset ... ok [INFO] [stdout] test screen::tests_reattach::reattach_restores_active_charset_g1 ... ok [INFO] [stdout] test screen::tests_reattach::reattach_restores_custom_scroll_region ... ok [INFO] [stdout] test screen::tests_reattach::reattach_restores_g0_line_drawing_charset ... ok [INFO] [stdout] test screen::tests_reattach::reattach_wide_characters ... ok [INFO] [stdout] test screen::tests_reattach::reattach_wrap_pending_cursor_at_right_margin ... ok [INFO] [stdout] test screen::tests_reattach::reattach_with_scrollback_preserves_cursor ... ok [INFO] [stdout] test screen::tests_reattach::vte_parser_sgr_correct_after_partial_sequence ... ok [INFO] [stdout] test screen::tests_reattach::reattach_title_preserved ... ok [INFO] [stdout] test screen::tests_reattach::vte_parser_recovers_from_partial_escape_sequence ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::clear_screen_does_not_generate_scrollback ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::alt_screen_app_no_scrollback_on_reconnect ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::full_reconnect_cycle_different_size_with_overflow_causes_duplication ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::clear_then_redraw_inplace_no_scrollback ... ok [INFO] [stdout] test screen::tests_reattach::reattach_overwritten_cell_shows_latest ... ok [INFO] [stdout] test screen::tests_reattach::reattach_preserves_all_rows_after_partial_scroll ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::full_reconnect_cycle_same_size_inplace_no_duplication ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::get_history_is_idempotent ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::get_history_unchanged_without_new_output ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::inplace_redraw_does_not_grow_scrollback ... ok [INFO] [stdout] test screen::tests_reattach::reattach_render_is_self_contained ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::inplace_redraw_multiple_reconnects_no_growth ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_key_mode ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::logo_accumulates_with_each_reconnect_cycle ... ok [INFO] [stdout] test screen::tests_reattach::reattach_tab_aligned_content ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::logo_duplicates_on_reconnect_with_overflow_redraw ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::resize_smaller_then_app_redraw_inplace_no_duplication ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::resize_smaller_then_app_sequential_redraw_overflows ... ok [INFO] [stdout] test screen::tests_reattach::reattach_second_render_uses_cache ... ok [INFO] [stdout] test screen::tests_reattach::reattach_strikethrough_attribute ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::shrink_then_grow_cycle_scrollback_consistency ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::sequential_redraw_at_top_does_not_scroll_when_fits ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::sequential_redraw_overflows_screen_grows_scrollback ... ok [INFO] [stdout] test screen::tests_resize::resize_after_scroll_within_region ... ok [INFO] [stdout] test screen::tests_resize::resize_after_scroll_preserves_scrollback ... ok [INFO] [stdout] test screen::tests_resize::reattach_with_scrollback_after_resize_has_both ... ok [INFO] [stdout] test screen::tests_resize::resize_after_scroll_reattach_renders_correctly ... ok [INFO] [stdout] test screen::tests_resize::resize_after_scroll_preserves_visible_and_scrollback ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::shrink_vertical_does_not_push_to_scrollback ... ok [INFO] [stdout] test screen::tests_resize::resize_current_style_persists_for_new_content ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::scrollback_limit_caps_logo_accumulation ... ok [INFO] [stdout] test screen::tests_resize::resize_between_decsc_decrc_clamps_cursor ... ok [INFO] [stdout] test screen::tests_reconnect_scrollback::grow_vertical_restores_from_scrollback ... ok [INFO] [stdout] test screen::tests_resize::resize_between_csi_s_u_clamps_cursor ... ok [INFO] [stdout] test screen::tests_resize::resize_both_shrink_preserves_visible_text ... ok [INFO] [stdout] test screen::tests_resize::resize_both_expand_preserves_text ... ok [INFO] [stdout] test screen::tests_resize::resize_cursor_at_bottom_left_clamps ... ok [INFO] [stdout] test screen::tests_resize::resize_custom_tab_stop_lost ... ok [INFO] [stdout] test screen::tests_resize::resize_does_not_reset_sgr_state ... ok [INFO] [stdout] test screen::tests_resize::resize_clears_wrap_pending ... ok [INFO] [stdout] test screen::tests_resize::resize_expand_after_scroll_visible_cells_intact ... ok [INFO] [stdout] test screen::tests_resize::resize_expand_in_alt_screen_skips_scrollback_restore ... ok [INFO] [stdout] test screen::tests_resize::resize_expand_between_save_restore_preserves_cursor ... ok [INFO] [stdout] test screen::tests_resize::resize_cursor_at_top_right_clamps ... ok [INFO] [stdout] test screen::tests_resize::render_with_scrollback_after_resize_positions_correctly ... ok [INFO] [stdout] test screen::tests_resize::resize_extreme_shrink_cursor_to_origin ... ok [INFO] [stdout] test screen::tests_resize::render_with_scrollback_after_shrink_positions_correctly ... ok [INFO] [stdout] test screen::tests_resize::resize_alt_screen_no_scrollback_leak ... ok [INFO] [stdout] test screen::tests_resize::resize_cursor_at_bottom_right_clamps ... ok [INFO] [stdout] test screen::tests_resize::resize_horizontal_expand_preserves_text ... ok [INFO] [stdout] test screen::tests_resize::resize_horizontal_shrink_preserves_visible_text ... ok [INFO] [stdout] test screen::tests_resize::resize_expand_cols_shrink_rows_preserves_overlap ... ok [INFO] [stdout] test screen::tests_resize::resize_in_alt_screen_expand_then_exit ... ok [INFO] [stdout] test screen::tests_resize::resize_in_alt_screen_modes_restored_correctly ... ok [INFO] [stdout] test screen::tests_resize::resize_in_alt_screen_multiple_then_exit ... ok [INFO] [stdout] test screen::tests_resize::resize_mid_osc_sequence_completes_after ... ok [INFO] [stdout] test screen::tests_resize::resize_mid_sgr_sequence_style_applied_after ... ok [INFO] [stdout] test screen::tests_resize::resize_in_alt_screen_then_exit_restores_main_resized ... ok [INFO] [stdout] test screen::tests_resize::resize_pending_scrollback_independent_of_horizontal_resize ... ok [INFO] [stdout] test screen::tests_resize::resize_preserves_combining_marks ... ok [INFO] [stdout] test screen::tests_resize::resize_preserves_styled_content ... ok [INFO] [stdout] test screen::tests_resize::resize_invalidates_render_cache ... ok [INFO] [stdout] test screen::tests_resize::resize_mid_csi_sequence_completes_after ... ok [INFO] [stdout] test screen::tests_resize::resize_rapid_with_mixed_content ... ok [INFO] [stdout] test screen::tests_resize::resize_reattach_render_preserves_content ... ok [INFO] [stdout] test screen::tests_resize::resize_shrink_after_scroll_visible_cells_intact ... ok [INFO] [stdout] test screen::tests_resize::resize_shrink_cols_expand_rows_preserves_overlap ... ok [INFO] [stdout] test screen::tests_resize::resize_same_height_no_scrollback_restore ... ok [INFO] [stdout] test screen::tests_resize::resize_shrink_multiple_wide_chars_on_boundary ... ok [INFO] [stdout] test screen::tests_resize::resize_saved_cursor_style_preserved ... ok [INFO] [stdout] test screen::tests_resize::resize_scrollback_contains_correct_content ... ok [INFO] [stdout] test screen::tests_resize::resize_shrink_after_scroll_keeps_scrollback ... ok [INFO] [stdout] test screen::tests_resize::resize_render_cache_shrink_then_expand ... ok [INFO] [stdout] test screen::tests_resize::resize_scrollback_screen_boundary_integrity ... ok [INFO] [stdout] test screen::tests_resize::resize_shrink_splits_wide_char_at_boundary ... ok [INFO] [stdout] test screen::tests_resize::resize_shrink_wide_char_at_exact_right_edge ... ok [INFO] [stdout] test screen::tests_resize::resize_shrink_wide_char_fully_inside_survives ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_expand_limited_by_scrollback ... ok [INFO] [stdout] test screen::tests_resize::resize_tab_content_preserved_but_stops_reset ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_expand_no_restore_in_alt_screen ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_expand_preserves_text ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_expand_removes_restored_from_scrollback ... ok [INFO] [stdout] test screen::tests_resize::resize_reattach_render_shrink_then_expand ... ok [INFO] [stdout] test screen::tests_resize::resize_same_dimensions_is_noop_for_content ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_expand_restores_scrollback ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_expand_shifts_cursor ... ok [INFO] [stdout] test screen::tests_resize::resize_with_scroll_region_preserves_region_content ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_grow_restores_scrollback_from_pending ... ok [INFO] [stdout] test screen::tests_resize::scroll_after_resize_captures_at_new_width ... ok [INFO] [stdout] test screen::tests_screen::alt_screen_clears_wrap_pending ... ok [INFO] [stdout] test screen::tests_screen::alt_screen_mode_1047 ... ok [INFO] [stdout] test screen::tests_resize::scrollback_mixed_widths_after_multiple_resizes ... ok [INFO] [stdout] test screen::tests_screen::alt_screen_mode_47 ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_shrink_drops_bottom_rows_without_scrollback ... ok [INFO] [stdout] test screen::tests_resize::scrollback_not_duplicated_on_resize ... ok [INFO] [stdout] test screen::tests_resize::resize_vertical_shrink_preserves_visible_text ... ok [INFO] [stdout] test screen::tests_resize::resize_wide_char_with_combining_survives ... ok [INFO] [stdout] test screen::tests_resize::vertical_shrink_with_scrollback_then_reattach ... ok [INFO] [stdout] test screen::tests_screen::alt_screen_restores_modes ... ok [INFO] [stdout] test screen::tests_resize::scrollback_frozen_at_old_width_after_resize ... ok [INFO] [stdout] test screen::tests_screen::alt_screen_save_restore ... ok [INFO] [stdout] test screen::tests_screen::autowrap_at_scroll_bottom_triggers_scroll ... ok [INFO] [stdout] test screen::tests_screen::alt_screen_mode_47_no_cursor_save ... ok [INFO] [stdout] test screen::tests_screen::backspace_at_column_zero ... ok [INFO] [stdout] test screen::tests_screen::bce_erase_uses_bg_color ... ok [INFO] [stdout] test screen::tests_screen::autowrap_mode_disable_prevents_wrap ... ok [INFO] [stdout] test screen::tests_screen::autowrap_at_scroll_region_bottom_triggers_region_scroll ... ok [INFO] [stdout] test screen::tests_screen::autowrap_mode_re_enable ... ok [INFO] [stdout] test screen::tests_screen::bell_drained_after_take ... ok [INFO] [stdout] test screen::tests_screen::backspace_clears_wrap_pending ... ok [INFO] [stdout] test screen::tests_screen::bell_forwarded_as_passthrough ... ok [INFO] [stdout] test screen::tests_screen::bell_in_osc_is_terminator_not_separate_bell ... ok [INFO] [stdout] test screen::tests_screen::bell_and_osc_777_interleaved ... ok [INFO] [stdout] test screen::tests_screen::bell_does_not_affect_screen_state ... ok [INFO] [stdout] test screen::tests_screen::bell_not_resent_on_render_with_scrollback ... ok [INFO] [stdout] test screen::tests_screen::csi_cup_params_beyond_screen_clamp ... ok [INFO] [stdout] test screen::tests_screen::bell_not_resent_on_resize ... ok [INFO] [stdout] test screen::tests_screen::combining_mark_at_column_zero_no_previous_cell ... ok [INFO] [stdout] test screen::tests_screen::combining_mark_attaches_to_previous_cell ... ok [INFO] [stdout] test screen::tests_screen::csi_cup_zero_params_default_to_home ... ok [INFO] [stdout] test screen::tests_screen::combining_mark_on_wide_char ... ok [INFO] [stdout] test screen::tests_screen::csi_f_is_alias_for_cup ... ok [INFO] [stdout] test screen::tests_screen::csi_r_reset_restores_full_screen_scroll ... ok [INFO] [stdout] test screen::tests_screen::csi_s_does_not_move_cursor ... ok [INFO] [stdout] test screen::tests_screen::csi_s_u_save_restore_cursor ... ok [INFO] [stdout] test screen::tests_screen::combining_mark_with_wrap_pending ... ok [INFO] [stdout] test screen::tests_screen::combining_mark_renders_in_output ... ok [INFO] [stdout] test screen::tests_screen::bell_not_resent_on_incremental_render ... ok [INFO] [stdout] test screen::tests_screen::continuous_scroll_with_bottom_status_update ... ok [INFO] [stdout] test screen::tests_screen::cr_does_not_scroll ... ok [INFO] [stdout] test screen::tests_resize::resize_cursor_at_top_left_stays ... ok [INFO] [stdout] test screen::tests_screen::csi_s_within_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::csi_t_does_not_move_cursor ... ok [INFO] [stdout] test screen::tests_screen::csi_t_within_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::cursor_movement_beyond_bounds_clamps ... ok [INFO] [stdout] test screen::tests_screen::cursor_position_cup ... ok [INFO] [stdout] test screen::tests_screen::cuu_cud_respects_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::cursor_horizontal_absolute ... ok [INFO] [stdout] test screen::tests_screen::cursor_visibility_toggle ... ok [INFO] [stdout] test screen::tests_screen::cursor_shape_decscusr ... ok [INFO] [stdout] test screen::tests_screen::cursor_visibility_mode_25 ... ok [INFO] [stdout] test screen::tests_screen::cursor_column_preserved_on_bare_lf_scroll ... ok [INFO] [stdout] test screen::tests_screen::da1_primary_device_attributes ... ok [INFO] [stdout] test screen::tests_screen::cursor_movement_cuf_cub ... ok [INFO] [stdout] test screen::tests_screen::cursor_movement_cnl_cpl ... ok [INFO] [stdout] test screen::tests_screen::cursor_movement_with_zero_params_defaults ... ok [INFO] [stdout] test screen::tests_screen::cursor_stays_in_place_during_lf_scroll ... ok [INFO] [stdout] test screen::tests_screen::deferred_wrap_cr_stays_on_same_line ... ok [INFO] [stdout] test screen::tests_screen::dec_line_drawing_charset ... ok [INFO] [stdout] test screen::tests_screen::da2_secondary_device_attributes ... ok [INFO] [stdout] test screen::tests_screen::decstbm_set_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::deferred_wrap_next_print_wraps ... ok [INFO] [stdout] test screen::tests_screen::delete_lines_dl ... ok [INFO] [stdout] test screen::tests_screen::dch_at_end_of_line ... ok [INFO] [stdout] test screen::tests_screen::dch_count_exceeds_remaining_columns ... ok [INFO] [stdout] test screen::tests_screen::dch_through_wide_char_no_orphan ... ok [INFO] [stdout] test screen::tests_screen::delete_character_dch ... ok [INFO] [stdout] test screen::tests_screen::dl_clears_wrap_pending ... ok [INFO] [stdout] test screen::tests_screen::dl_large_count_clamped ... ok [INFO] [stdout] test screen::tests_screen::dl_il_outside_scroll_region_no_op ... ok [INFO] [stdout] test screen::tests_screen::ech_count_exceeds_remaining_columns ... ok [INFO] [stdout] test screen::tests_screen::double_enter_alt_screen ... ok [INFO] [stdout] test screen::tests_screen::dsr_at_boundary_positions ... ok [INFO] [stdout] test screen::tests_screen::dsr_cursor_position_report ... ok [INFO] [stdout] test screen::tests_screen::ed3_passthrough_drained_after_take ... ok [INFO] [stdout] test screen::tests_screen::ed3_clears_scrollback_and_forwards_passthrough ... ok [INFO] [stdout] test screen::tests_screen::delete_lines_preserves_cursor_x ... ok [INFO] [stdout] test screen::tests_screen::bell_not_resent_on_render ... ok [INFO] [stdout] test screen::tests_screen::cursor_save_restore ... ok [INFO] [stdout] test screen::tests_screen::erase_character_ech ... ok [INFO] [stdout] test screen::tests_screen::erase_display_0_from_cursor_ignores_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::erase_display_ignores_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::erase_in_display_j1 ... ok [INFO] [stdout] test screen::tests_screen::erase_in_line_k2 ... ok [INFO] [stdout] test screen::tests_screen::erase_line_preserves_cursor_position ... ok [INFO] [stdout] test screen::tests_screen::erase_scrollback_j3 ... ok [INFO] [stdout] test screen::tests_screen::erase_in_display_j0 ... ok [INFO] [stdout] test screen::tests_screen::ed2_does_not_produce_passthrough ... ok [INFO] [stdout] test screen::tests_screen::erase_in_display_j2 ... ok [INFO] [stdout] test screen::tests_screen::erase_in_line_k1 ... ok [INFO] [stdout] test screen::tests_screen::erase_in_line_k0 ... ok [INFO] [stdout] test screen::tests_screen::ed3_passthrough_even_without_scrollback ... ok [INFO] [stdout] test screen::tests_screen::exit_alt_screen_when_not_in_alt ... ok [INFO] [stdout] test screen::tests_screen::focus_reporting_mode ... ok [INFO] [stdout] test screen::tests_screen::ich_count_exceeds_remaining_columns ... ok [INFO] [stdout] test screen::tests_screen::history_preserved_across_sessions ... ok [INFO] [stdout] test screen::tests_screen::ind_esc_d_at_scroll_bottom_scrolls ... ok [INFO] [stdout] test screen::tests_screen::esc_c_full_reset ... ok [INFO] [stdout] test screen::tests_screen::ich_pushes_wide_char_off_right_edge ... ok [INFO] [stdout] test screen::tests_screen::hts_sets_tab_stop ... ok [INFO] [stdout] test screen::tests_screen::il_large_count_clamped ... ok [INFO] [stdout] test screen::tests_screen::ind_esc_d_mid_screen_just_moves_cursor ... ok [INFO] [stdout] test screen::tests_screen::ind_esc_d_within_scroll_region_nonzero_top ... ok [INFO] [stdout] test screen::tests_screen::insert_character_ich ... ok [INFO] [stdout] test screen::tests_screen::insert_lines_preserves_cursor_x ... ok [INFO] [stdout] test screen::tests_screen::insert_lines_il ... ok [INFO] [stdout] test screen::tests_screen::el_1_cursor_on_wide_char_continuation ... ok [INFO] [stdout] test screen::tests_screen::keypad_app_mode ... ok [INFO] [stdout] test screen::tests_screen::lf_between_scroll_top_and_bottom_just_moves_cursor ... ok [INFO] [stdout] test screen::tests_screen::lf_at_last_row_outside_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::lf_at_bottom_scrolls_content_up ... ok [INFO] [stdout] test screen::tests_screen::lf_scroll_with_styled_content ... ok [INFO] [stdout] test screen::tests_screen::lf_within_scroll_region_only_scrolls_region ... ok [INFO] [stdout] test screen::tests_screen::lf_scroll_captures_scrollback ... ok [INFO] [stdout] test screen::tests_screen::lf_at_last_row_without_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::mode_flags_bracketed_paste ... ok [INFO] [stdout] test screen::tests_screen::ed_0_cursor_on_wide_char_continuation ... ok [INFO] [stdout] test screen::tests_screen::mode_flags_cursor_key_mode ... ok [INFO] [stdout] test screen::tests_screen::il_clears_wrap_pending ... ok [INFO] [stdout] test screen::tests_screen::mode_1048_save_restore_cursor ... ok [INFO] [stdout] test screen::tests_screen::many_lines_overflow_screen ... ok [INFO] [stdout] test screen::tests_screen::erase_display_preserves_cursor_position ... ok [INFO] [stdout] test screen::tests_screen::mouse_mode_multiple_simultaneous ... ok [INFO] [stdout] test screen::tests_screen::interleaved_scroll_and_cup_writes ... ok [INFO] [stdout] test screen::tests_screen::no_scrollback_in_alt_screen ... ok [INFO] [stdout] test screen::tests_screen::mouse_mode_per_mode_toggle ... ok [INFO] [stdout] test screen::tests_screen::mouse_mode_disable_own_mode_only ... ok [INFO] [stdout] test screen::tests_screen::mouse_encoding_disable_resets_to_x10 ... ok [INFO] [stdout] test screen::tests_screen::multiple_combining_marks_on_single_cell ... ok [INFO] [stdout] test screen::tests_screen::mode_flags_mouse ... ok [INFO] [stdout] test screen::tests_screen::mouse_mode_priority_resolution ... ok [INFO] [stdout] test screen::tests_screen::osc_777_drained_after_take ... ok [INFO] [stdout] test screen::tests_screen::multiple_bells_all_forwarded ... ok [INFO] [stdout] test screen::tests_screen::ed3_passthrough_not_resent_on_render ... ok [INFO] [stdout] test screen::tests_screen::osc_777_not_resent_on_render_with_scrollback ... ok [INFO] [stdout] test screen::tests_screen::overwrite_wide_char_first_half ... ok [INFO] [stdout] test screen::tests_screen::osc_passthrough_non_title ... ok [INFO] [stdout] test screen::tests_screen::pending_scrollback_drained_separately ... ok [INFO] [stdout] test screen::tests_screen::overwrite_wide_char_second_half ... ok [INFO] [stdout] test screen::tests_screen::rapid_scroll_up_down_content_integrity ... ok [INFO] [stdout] test screen::tests_screen::osc_title_not_passedthrough ... ok [INFO] [stdout] test screen::tests_screen::reattach_render_after_scroll_and_cup_overwrite ... ok [INFO] [stdout] test screen::tests_screen::osc_777_not_resent_on_resize ... ok [INFO] [stdout] test screen::tests_screen::render_full_reattach_redraws_all ... ok [INFO] [stdout] test screen::tests_screen::render_with_hidden_cursor ... ok [INFO] [stdout] test screen::tests_screen::osc_sets_title ... ok [INFO] [stdout] test screen::tests_screen::osc_777_not_resent_on_render ... ok [INFO] [stdout] test screen::tests_screen::rep_repeats_last_char ... ok [INFO] [stdout] test screen::tests_screen::osc_777_not_resent_on_resize_then_render ... ok [INFO] [stdout] test screen::tests_screen::rep_repeats_wide_char ... ok [INFO] [stdout] test screen::tests_screen::rep_with_no_prior_print ... ok [INFO] [stdout] test screen::tests_screen::restore_cursor_csi_u_with_no_saved_state ... ok [INFO] [stdout] test screen::tests_screen::responses_drained_after_take ... ok [INFO] [stdout] test screen::tests_screen::render_bce_erase_output ... ok [INFO] [stdout] test screen::tests_screen::reverse_index_ri_not_at_top ... ok [INFO] [stdout] test screen::tests_screen::ris_forwards_clear_scrollback_passthrough ... ok [INFO] [stdout] test screen::tests_screen::ris_clears_scrollback ... ok [INFO] [stdout] test screen::tests_screen::save_cursor_resize_then_restore_clamps ... ok [INFO] [stdout] test screen::tests_screen::scroll_and_partial_line_overwrite ... ok [INFO] [stdout] test screen::tests_screen::save_cursor_scroll_restore_cursor_writes_at_shifted_content ... ok [INFO] [stdout] test screen::tests_screen::reverse_index_at_top_of_full_screen_scrolls_down ... ok [INFO] [stdout] test screen::tests_screen::scroll_down_does_not_generate_scrollback ... ok [INFO] [stdout] test screen::tests_screen::reverse_index_ri ... ok [INFO] [stdout] test screen::tests_screen::scroll_down_count_exceeds_region_size ... ok [INFO] [stdout] test screen::tests_screen::scroll_down_sd ... ok [INFO] [stdout] test screen::tests_screen::scroll_down_within_region_does_not_produce_scrollback ... ok [INFO] [stdout] test screen::tests_screen::scroll_region_il_dl_interaction ... ok [INFO] [stdout] test screen::tests_screen::scroll_region_lf_cursor_outside_region_between_bottom_and_last_row ... ok [INFO] [stdout] test screen::tests_screen::scroll_region_lf_no_scrollback_when_top_nonzero ... ok [INFO] [stdout] test screen::tests_screen::restore_cursor_with_no_saved_state ... ok [INFO] [stdout] test screen::tests_screen::scroll_region_preserves_outer_content_on_multiple_scrolls ... ok [INFO] [stdout] test screen::tests_screen::scroll_region_reversed_params_ignored ... ok [INFO] [stdout] test screen::tests_screen::scroll_region_scroll_then_overwrite_fixed_rows ... ok [INFO] [stdout] test screen::tests_screen::scroll_region_top_equals_bottom_accepted ... ok [INFO] [stdout] test screen::tests_screen::scroll_region_reversed_params_rejected ... ok [INFO] [stdout] test screen::tests_screen::scroll_up_count_exceeds_region_size ... ok [INFO] [stdout] test screen::tests_screen::scroll_single_row_region ... ok [INFO] [stdout] test screen::tests_screen::scroll_up_su ... ok [INFO] [stdout] test screen::tests_screen::scroll_with_erase_and_rewrite ... ok [INFO] [stdout] test screen::tests_screen::scroll_then_overwrite_scrolled_line_content_integrity ... ok [INFO] [stdout] test screen::tests_screen::scrollback_captured_with_partial_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::scroll_then_overwrite_last_line ... ok [INFO] [stdout] test screen::tests_screen::scrollback_history_after_scroll_and_cup_overwrite ... ok [INFO] [stdout] test screen::tests_screen::scrollback_limit_enforced_during_scroll ... ok [INFO] [stdout] test screen::tests_screen::scroll_then_cup_overwrite_middle ... ok [INFO] [stdout] test screen::tests_screen::scrollback_limit_zero ... ok [INFO] [stdout] test screen::tests_screen::scrollback_order_preserved ... ok [INFO] [stdout] test screen::tests_screen::tui_app_alt_screen_scroll_region_lf ... ok [INFO] [stdout] test screen::tests_screen::sgr_color_reset_39_49 ... ok [INFO] [stdout] test screen::tests_screen::tui_app_alt_screen_scroll_then_exit_restores_main ... ok [INFO] [stdout] test screen::tests_screen::tui_app_insert_lines_within_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::sgr_hidden_attribute ... ok [INFO] [stdout] test screen::tests_screen::tui_app_reverse_index_in_scroll_region ... ok [INFO] [stdout] test screen::tests_screen::tui_app_scroll_region_with_header_and_footer ... ok [INFO] [stdout] test screen::tests_screen::so_si_charset_switching ... ok [INFO] [stdout] test screen::tests_screen::stale_pending_scrollback_after_reattach_simulation ... ok [INFO] [stdout] test screen::tests_screen::tab_advances_to_next_tab_stop ... ok [INFO] [stdout] test screen::tests_screen::tui_app_scroll_region_change_mid_session ... ok [INFO] [stdout] test screen::tests_screen::tab_at_end_of_line_clamps ... ok [INFO] [stdout] test screen::tests_screen::tbc_clear_all_tab_stops ... ok [INFO] [stdout] test screen::tests_screen::tbc_clear_current_tab_stop ... ok [INFO] [stdout] test screen::tests_screen::tui_app_alt_screen_explicit_scroll_up ... ok [INFO] [stdout] test screen::tests_screen::scrollback_on_scroll ... ok [INFO] [stdout] test screen::tests_screen::vpa_line_position_absolute ... ok [INFO] [stdout] test screen::tests_screen::vt_ff_treated_as_lf ... ok [INFO] [stdout] test screen::tests_screen::wide_char_exactly_fills_line ... ok [INFO] [stdout] test screen::tests_screen::wide_char_on_1_column_terminal ... ok [INFO] [stdout] test screen::tests_screen::wide_char_no_autowrap_at_last_col ... ok [INFO] [stdout] test screen::tests_screen::wide_char_on_2_column_terminal ... ok [INFO] [stdout] test screen::tests_screen::wide_char_scrollback_rendering ... ok [INFO] [stdout] test screen::tests_screen::wide_char_wrap_at_scroll_bottom_triggers_scroll ... ok [INFO] [stdout] test screen::tests_screen::wide_char_wraps_at_end_of_line ... ok [INFO] [stdout] test screen::tests_screen::wide_character_occupies_two_cells ... ok [INFO] [stdout] test screen::tests_screen::window_ops_ignored ... ok [INFO] [stdout] test server::session_bridge::tests::prepend_passthrough_empty ... ok [INFO] [stdout] test server::session_bridge::tests::prepend_passthrough_multiple ... ok [INFO] [stdout] test server::session_bridge::tests::prepend_passthrough_single ... ok [INFO] [stdout] test server::socket::tests::lock_path_format ... ok [INFO] [stdout] test server::client_handler::tests::unexpected_message_returns_error ... ok [INFO] [stdout] test server::client_handler::tests::client_disconnect_before_message ... ok [INFO] [stdout] test server::socket::tests::socket_path_ends_with_sock ... ok [INFO] [stdout] test server::socket::tests::socket_dir_rejects_symlink ... ok [INFO] [stdout] test server::client_handler::tests::list_sessions_empty ... ok [INFO] [stdout] test server::socket::tests::socket_dir_has_correct_permissions ... ok [INFO] [stdout] test screen::tests_screen::tui_app_delete_lines_within_scroll_region ... ok [INFO] [stdout] test server::socket::tests::socket_dir_idempotent ... ok [INFO] [stdout] test server::session_bridge::tests::ed3_included_in_screen_update ... ok [INFO] [stdout] test server::socket::tests::socket_dir_returns_correct_format ... ok [INFO] [stdout] test server::socket::tests::socket_dir_repairs_wrong_permissions ... ok [INFO] [stdout] test server::socket::tests::socket_dir_creates_directory ... ok [INFO] [stdout] test session::tests::session_manager_rejects_invalid_names ... ok [INFO] [stdout] test session::tests::validate_session_name_empty ... ok [INFO] [stdout] test screen::tests_large_updates::incremental_render_after_bulk_scroll ... ok [INFO] [stdout] test server::client_handler::tests::kill_nonexistent_session ... ok [INFO] [stdout] test session::tests::validate_session_name_valid ... ok [INFO] [stdout] test session::tests::validate_session_name_too_long ... ok [INFO] [stdout] test screen::tests_reattach::reattach_render_structure_order ... ok [INFO] [stdout] test session::tests::validate_session_name_invalid_chars ... ok [INFO] [stdout] test screen::tests_reattach::reattach_cursor_visibility_visible ... ok [INFO] [stdout] test session::tests::persistent_reader_detects_child_exit ... ok [INFO] [stdout] test session::tests::session_manager_duplicate_create_fails ... ok [INFO] [stdout] test session::tests::session_manager_get_or_create_zero_dimensions ... ok [INFO] [stdout] test session::tests::session_manager_remove ... ok [INFO] [stdout] test session::tests::session_manager_get_or_create ... ok [INFO] [stdout] test session::tests::persistent_reader_captures_output_without_client ... ok [INFO] [stdout] test session::tests::take_dead_sessions_empty_when_all_alive ... ok [INFO] [stdout] test session::tests::session_manager_create_and_list ... ok [INFO] [stdout] test session::tests::take_dead_sessions_returns_dead ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 648 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "4d4980846b2e5f34df6b91e6cb78281b1b508d65865b0c7d2d67aaf9db85867d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4d4980846b2e5f34df6b91e6cb78281b1b508d65865b0c7d2d67aaf9db85867d", kill_on_drop: false }` [INFO] [stdout] 4d4980846b2e5f34df6b91e6cb78281b1b508d65865b0c7d2d67aaf9db85867d