[INFO] fetching crate retroglyph-core 0.8.1...
[INFO] testing retroglyph-core-0.8.1 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate retroglyph-core 0.8.1 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate retroglyph-core 0.8.1
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate retroglyph-core 0.8.1
[INFO] tweaked toml for crates.io crate retroglyph-core 0.8.1 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate retroglyph-core 0.8.1 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate retroglyph-core 0.8.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ixy v0.8.0
[INFO] [stderr]   Downloaded grixy v0.7.0
[INFO] [stderr]   Downloaded gem v0.2.2
[INFO] [stderr]   Downloaded ixy v0.7.1
[INFO] [stderr]   Downloaded alpha-blend v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52
[INFO] running `Command { std: "docker" "start" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling ixy v0.7.1
[INFO] [stderr]    Compiling ixy v0.8.0
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling alpha-blend v0.3.0
[INFO] [stderr]    Compiling gem v0.2.2
[INFO] [stderr]    Compiling grixy v0.7.0
[INFO] [stderr]    Compiling retroglyph-core v0.8.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.89s
[INFO] running `Command { std: "docker" "inspect" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling cc v1.4.4
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling console v0.16.4
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling retroglyph-core v0.8.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling insta v1.48.0
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 33.04s
[INFO] running `Command { std: "docker" "inspect" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/retroglyph_core-c0a2a0699f7af7f0)
[INFO] [stdout] 
[INFO] [stdout] running 607 tests
[INFO] [stdout] test app::tests::run_on_event_driven_idle_wait_does_not_consume_the_waking_event ... ok
[INFO] [stdout] test app::tests::run_on_presents_automatically ... ok
[INFO] [stdout] test app::tests::run_builds_the_terminal_and_exits_on_flow_exit ... ok
[INFO] [stdout] test app::tests::run_on_calls_init_once_before_the_first_update_with_the_real_size ... ok
[INFO] [stdout] test app::tests::run_on_with_non_event_driven_options_does_not_block_on_idle ... ok
[INFO] [stdout] test app::tests::run_options_animated_sets_fields ... ok
[INFO] [stdout] test app::tests::run_on_with_target_fps_zero_runs_uncapped_instead_of_panicking ... ok
[INFO] [stdout] test app::tests::run_on_skips_present_on_idle ... ok
[INFO] [stdout] test app::tests::run_on_with_default_options_matches_run_on ... ok
[INFO] [stdout] test app::tests::run_on_exits_on_flow_exit ... ok
[INFO] [stdout] test app::tests::run_options_setters_override_defaults ... ok
[INFO] [stdout] test backend::headless::tests::consecutive_moved_events_coalesce_to_one ... ok
[INFO] [stdout] test app::tests::run_options_event_driven_false_switches_to_spin ... ok
[INFO] [stdout] test backend::headless::tests::single_layer_stream_skips_the_composited_grid ... ok
[INFO] [stdout] test backend::headless::tests::test_format_styled_emits_fg_and_bg_sgr_on_change ... ok
[INFO] [stdout] test backend::headless::tests::test_format_styled_rgb_and_indexed ... ok
[INFO] [stdout] test backend::headless::tests::draw_layers_reveals_the_layer_below_when_an_occluder_is_erased ... ok
[INFO] [stdout] test backend::headless::tests::test_format_styled_spacer_cells_carry_no_style ... ok
[INFO] [stdout] test backend::headless::tests::test_format_styled_unstyled_matches_format_view_text ... ok
[INFO] [stdout] test backend::headless::tests::draw_layers_treats_empty_higher_layer_cells_as_transparent ... ok
[INFO] [stdout] test color::ansi::tests::test_ansi_try_from_invalid ... ok
[INFO] [stdout] test backend::headless::tests::layer_grid_exposes_the_raw_per_layer_stream ... ok
[INFO] [stdout] test color::ansi::tests::test_ansi_try_from_roundtrip ... ok
[INFO] [stdout] test color::ansi::tests::test_ansi_values ... ok
[INFO] [stdout] test color::ansi::tests::test_cube_map_to_indexed_pure_black ... ok
[INFO] [stdout] test backend::headless::tests::test_headless_cursor_style_defaults_and_records_set_cursor_style ... ok
[INFO] [stdout] test backend::headless::tests::draw_layers_keeps_an_explicit_space_on_a_higher_layer_opaque ... ok
[INFO] [stdout] test color::ansi::tests::test_cube_map_to_indexed_pure_white ... ok
[INFO] [stdout] test backend::headless::tests::test_headless_events ... ok
[INFO] [stdout] test color::ansi::tests::test_cube_map_to_indexed_cube_interior ... ok
[INFO] [stdout] test backend::headless::tests::test_headless_new ... ok
[INFO] [stdout] test color::ansi::tests::test_indexed_to_rgb_ansi_range ... ok
[INFO] [stdout] test color::ansi::tests::test_nearest_cube_step_boundaries ... ok
[INFO] [stdout] test color::ansi::tests::test_indexed_to_rgb_cube_range ... ok
[INFO] [stdout] test color::ansi::tests::test_indexed_to_rgb_grayscale_range ... ok
[INFO] [stdout] test app::tests::run_with_builds_the_terminal_and_honors_options ... ok
[INFO] [stdout] test color::ansi::tests::test_rgb_distance_sq_symmetry ... ok
[INFO] [stdout] test color::ansi::tests::test_rgb_distance_sq_zero_for_identical ... ok
[INFO] [stdout] test color::convert::tests::test_color_defaults ... ok
[INFO] [stdout] test color::ansi::tests::test_palette_oklab_matches_computed_table ... ok
[INFO] [stdout] test color::convert::tests::test_darken_black_is_black ... ok
[INFO] [stdout] test color::convert::tests::test_complement_red ... ok
[INFO] [stdout] test color::convert::tests::test_darken_resolves_non_rgb ... ok
[INFO] [stdout] test color::convert::tests::test_complement_resolves_non_rgb ... ok
[INFO] [stdout] test color::convert::tests::test_darken_rgb ... ok
[INFO] [stdout] test color::convert::tests::test_every_metric_maps_each_ansi_reference_color_to_itself ... ok
[INFO] [stdout] test color::convert::tests::test_from_srgb_roundtrip ... ok
[INFO] [stdout] test color::convert::tests::test_lighten_resolves_non_rgb ... ok
[INFO] [stdout] test color::convert::tests::test_quantize_non_rgb_passthrough_under_every_metric ... ok
[INFO] [stdout] test color::convert::tests::test_lerp ... ok
[INFO] [stdout] test color::convert::tests::test_lerp_resolves_non_rgb ... ok
[INFO] [stdout] test color::convert::tests::test_lerp_endpoints ... ok
[INFO] [stdout] test color::convert::tests::test_quantize_metrics_disagree ... ok
[INFO] [stdout] test color::convert::tests::test_resolve_rgb ... ok
[INFO] [stdout] test color::convert::tests::test_rgb_and_hex_agree ... ok
[INFO] [stdout] test color::convert::tests::test_saturate_desaturate ... ok
[INFO] [stdout] test color::convert::tests::test_saturate_desaturate_resolves_non_rgb ... ok
[INFO] [stdout] test color::convert::tests::test_to_ansi_pure_primaries ... ok
[INFO] [stdout] test color::convert::tests::test_to_ansi_returns_ansi_variant ... ok
[INFO] [stdout] test color::convert::tests::test_to_indexed_and_to_ansi_default_to_perceptual ... ok
[INFO] [stdout] test color::convert::tests::test_lighten_rgb ... ok
[INFO] [stdout] test color::convert::tests::test_to_ansi_all_16_roundtrip ... ok
[INFO] [stdout] test color::convert::tests::test_quantize_default_is_perceptual ... ok
[INFO] [stdout] test color::convert::tests::test_to_indexed_mid_gray ... ok
[INFO] [stdout] test color::convert::tests::test_to_indexed_non_rgb_passthrough ... ok
[INFO] [stdout] test color::convert::tests::test_to_indexed_returns_indexed_variant ... ok
[INFO] [stdout] test color::convert::tests::test_to_ansi_non_rgb_passthrough ... ok
[INFO] [stdout] test color::convert::tests::test_to_indexed_black_and_white ... ok
[INFO] [stdout] test color::convert::tests::test_to_srgb_conversion ... ok
[INFO] [stdout] test color::convert::tests::test_to_srgb_non_rgb_returns_none ... ok
[INFO] [stdout] test color::named::tests::test_from_hex_invalid ... ok
[INFO] [stdout] test color::named::tests::test_from_hex_full ... ok
[INFO] [stdout] test color::named::tests::test_from_hex_short ... ok
[INFO] [stdout] test color::named::tests::test_from_named_color_invalid ... ok
[INFO] [stdout] test color::named::tests::test_from_named_color_case_insensitive ... ok
[INFO] [stdout] test color::named::tests::test_gray_grey_synonyms ... ok
[INFO] [stdout] test color::parse::tests::test_display ... ok
[INFO] [stdout] test color::parse::tests::test_from_str_invalid ... ok
[INFO] [stdout] test color::parse::tests::test_from_str_round_trips_display ... ok
[INFO] [stdout] test color::sgr::tests::push_sgr_combines_fg_and_bg_into_one_escape ... ok
[INFO] [stdout] test color::parse::tests::from_str_rejects_plus_signed_index_and_hex ... ok
[INFO] [stdout] test color::sgr::tests::sgr_color_is_none_for_default ... ok
[INFO] [stdout] test color::parse::tests::test_ansi_name_and_parse_are_inverses ... ok
[INFO] [stdout] test color::sgr::tests::push_sgr_emits_nothing_for_a_fully_default_style ... ok
[INFO] [stdout] test color::named::tests::test_from_named_color ... ok
[INFO] [stdout] test color::sgr::tests::push_sgr_emits_only_the_non_default_channel ... ok
[INFO] [stdout] test color::sgr::tests::sgr_color_indexed_and_rgb ... ok
[INFO] [stdout] test color::sgr::tests::sgr_color_bright_ansi_uses_90_100_base ... ok
[INFO] [stdout] test color::parse::tests::test_from_str_aliases_and_separators ... ok
[INFO] [stdout] test color::style::tests::test_style_builder ... ok
[INFO] [stdout] test color::tint::tests::doc_example_values_are_what_apply_actually_returns ... ok
[INFO] [stdout] test color::tint::tests::mix_at_zero_amount_is_identity_for_every_colour ... ok
[INFO] [stdout] test color::tint::tests::mix_can_brighten_which_multiply_cannot ... ok
[INFO] [stdout] test color::style::tests::test_patch_cannot_reset_a_field_to_default ... ok
[INFO] [stdout] test color::sgr::tests::sgr_color_standard_ansi_uses_30_40_base ... ok
[INFO] [stdout] test color::style::tests::test_patch_keeps_non_default_fields ... ok
[INFO] [stdout] test color::style::tests::test_reset_fg_and_reset_bg_clear_to_default ... ok
[INFO] [stdout] test color::tint::tests::apply_is_usable_in_const_context ... ok
[INFO] [stdout] test color::tint::tests::identity_variants_never_change_a_pixel ... ok
[INFO] [stdout] test color::tint::tests::mix_endpoints_are_exact ... ok
[INFO] [stdout] test color::tint::tests::mix_halfway_is_the_midpoint ... ok
[INFO] [stdout] test color::tint::tests::multiply_by_white_is_exact ... ok
[INFO] [stdout] test color::tint::tests::multiply_can_only_darken ... ok
[INFO] [stdout] test color::tint::tests::multiply_scales_per_channel ... ok
[INFO] [stdout] test color::tint::tests::none_is_the_identity ... ok
[INFO] [stdout] test dev::tests::current_matches_dev_const ... ok
[INFO] [stdout] test dev::tests::dev_only_body_runs_iff_dev ... ok
[INFO] [stdout] test color::tint::tests::multiply_by_black_is_black ... ok
[INFO] [stdout] test dev::tests::is_dev_discriminates_variants ... ok
[INFO] [stdout] test dev::tests::dev_only_early_return_runs_iff_dev ... ok
[INFO] [stdout] test dev::tests::is_release_discriminates_variants ... ok
[INFO] [stdout] test dev::tests::tests_run_in_a_reporting_build ... ok
[INFO] [stdout] test dev::tests::dev_only_accepts_bare_statements ... ok
[INFO] [stdout] test event::key::tests::test_key_event_kind_helpers ... ok
[INFO] [stdout] test event::key::tests::test_event_construction ... ok
[INFO] [stdout] test event::key::tests::test_key_modifiers ... ok
[INFO] [stdout] test color::tint::tests::mix_rounds_symmetrically_in_both_directions ... ok
[INFO] [stdout] test event::key::tests::test_key_modifiers_bits_round_trip ... ok
[INFO] [stdout] test event::key::tests::test_key_modifiers_from_parts ... ok
[INFO] [stdout] test event::key::tests::test_key_modifiers_not_masks_unused_bits ... ok
[INFO] [stdout] test event::key::tests::test_key_modifiers_super ... ok
[INFO] [stdout] test event::key::tests::test_key_state_apply_event_clears_on_focus_lost ... ok
[INFO] [stdout] test event::key::tests::test_key_modifiers_from_bits_truncate ... ok
[INFO] [stdout] test event::key::tests::test_key_state_clear ... ok
[INFO] [stdout] test event::key::tests::test_key_state_double_press_without_release_does_not_duplicate ... ok
[INFO] [stdout] test event::key::tests::test_key_state_held_is_in_first_pressed_order ... ok
[INFO] [stdout] test event::key::tests::test_key_state_release_of_unpressed_key_is_a_no_op ... ok
[INFO] [stdout] test event::mouse::tests::test_mouse_event_new_has_no_pixel_position ... ok
[INFO] [stdout] test event::mouse::tests::test_mouse_event_with_pixel_position ... ok
[INFO] [stdout] test event::mouse::tests::test_mouse_event_with_pixel_position_constructor ... ok
[INFO] [stdout] test event::key::tests::test_key_state_apply_event_ignores_non_key ... ok
[INFO] [stdout] test event::tests::coalesces_with_false_for_non_mouse_events ... ok
[INFO] [stdout] test event::tests::coalesces_with_false_for_non_moved_mouse_events ... ok
[INFO] [stdout] test event::tests::coalesces_with_false_for_scroll_events ... ok
[INFO] [stdout] test event::tests::coalesces_with_true_for_two_consecutive_drag_events_same_button ... ok
[INFO] [stdout] test event::tests::coalesces_with_true_for_two_consecutive_moved_events ... ok
[INFO] [stdout] test event::tests::test_custom_event_carries_opaque_id ... ok
[INFO] [stdout] test event::mouse::tests::test_mouse_event_no_pixel_position ... ok
[INFO] [stdout] test event::tests::test_focus_gained_and_lost_are_distinct ... ok
[INFO] [stdout] test backend::headless::tests::test_format_view_snapshot ... ok
[INFO] [stdout] test backend::headless::tests::test_format_view_renders_span_fallback_glyphs ... ok
[INFO] [stdout] test event::tests::test_paste_event_carries_text ... ok
[INFO] [stdout] test frames::clock::tests::a_huge_hz_does_not_produce_a_zero_step ... ok
[INFO] [stdout] test event::mouse::tests::test_physical_pos_is_copy ... ok
[INFO] [stdout] test frames::clock::tests::caps_catch_up ... ok
[INFO] [stdout] test event::key::tests::test_key_state_tracks_held_keys ... ok
[INFO] [stdout] test event::tests::coalesces_with_false_for_drag_events_with_different_buttons ... ok
[INFO] [stdout] test frames::clock::tests::reset_clears_accumulator ... ok
[INFO] [stdout] test event::key::tests::test_key_state_distinguishes_numpad_from_standard ... ok
[INFO] [stdout] test frames::clock::tests::drains_expected_steps ... ok
[INFO] [stdout] test event::tests::coalesces_with_false_for_two_non_mouse_events ... ok
[INFO] [stdout] test frames::stats::tests::min_and_max_track_the_extremes_of_a_varying_window ... ok
[INFO] [stdout] test frames::stats::tests::fps_reflects_a_varying_not_just_steady_window ... ok
[INFO] [stdout] test frames::stats::tests::default_matches_new ... ok
[INFO] [stdout] test frames::stats::tests::ring_buffer_wraps_and_drops_the_oldest_sample ... ok
[INFO] [stdout] test frames::stats::tests::steady_frames_report_consistent_stats ... ok
[INFO] [stdout] test frames::stats::tests::sub_millisecond_precision_is_not_rounded_away ... ok
[INFO] [stdout] test grid::api::tests::from_charmap_ragged_map_mixing_wide_and_narrow_rows ... ok
[INFO] [stdout] test grid::api::tests::from_charmap_wide_char_mid_line ... ok
[INFO] [stdout] test grid::api::tests::new_zero_height_is_allowed ... ok
[INFO] [stdout] test grid::api::tests::clear_drops_every_tint_on_the_layer ... ok
[INFO] [stdout] test grid::api::tests::new_reports_the_requested_width_and_height ... ok
[INFO] [stdout] test grid::api::tests::resize_expand_preserves_existing_cells_and_defaults_new_ones ... ok
[INFO] [stdout] test grid::api::tests::resize_narrower_resets_a_wide_char_split_by_the_new_last_column ... ok
[INFO] [stdout] test grid::api::tests::resize_remaps_a_tint_to_the_new_stride ... ok
[INFO] [stdout] test grid::api::tests::from_charmap_lone_wide_char ... ok
[INFO] [stdout] test frames::stats::tests::zero_capacity_window_still_counts_frames_without_panicking ... ok
[INFO] [stdout] test grid::api::tests::resize_remaps_extras_to_new_stride ... ok
[INFO] [stdout] test grid::api::tests::put_tile_overwrite_clears_extra ... ok
[INFO] [stdout] test grid::api::tests::from_charmap_wide_char_at_end_of_line_fits_exactly ... ok
[INFO] [stdout] test frames::stats::tests::empty_stats_read_as_zero ... ok
[INFO] [stdout] test grid::api::tests::write_grapheme_in_bounds_still_writes ... ok
[INFO] [stdout] test grid::api::tests::write_grapheme_overwrite_resets_a_prior_sub_cell_offset ... ok
[INFO] [stdout] test grid::api::tests::write_grapheme_refused_at_the_last_column_does_not_allocate_the_layer ... ok
[INFO] [stdout] test grid::api::tests::write_grapheme_refuses_a_wide_glyph_at_the_last_column ... ok
[INFO] [stdout] test grid::api::tests::resize_shrink_drops_cells_that_fall_outside_the_new_bounds ... ok
[INFO] [stdout] test grid::api::tests::resize_shrink_preserves_cells_still_in_bounds ... ok
[INFO] [stdout] test grid::api::tests::resize_to_zero_width_is_allowed ... ok
[INFO] [stdout] test grid::api::tests::resize_to_zero_by_zero_is_allowed ... ok
[INFO] [stdout] test grid::api::tests::write_grapheme_x_past_width_wraps_onto_the_next_row ... ok
[INFO] [stdout] test grid::api::tests::resize_to_zero_height_is_allowed ... ok
[INFO] [stdout] test grid::diff::tests::diff_detects_tint_only_change ... ok
[INFO] [stdout] test grid::diff::tests::diff_layer_major_order ... ok
[INFO] [stdout] test grid::diff::tests::diff_mismatched_sizes_yields_full_diff ... ok
[INFO] [stdout] test grid::diff::tests::diff_new_layer_yields_all_cells ... ok
[INFO] [stdout] test grid::diff::tests::diff_reports_a_written_cell_as_a_draw_cell ... ok
[INFO] [stdout] test grid::diff::tests::diff_reports_changed_cell ... ok
[INFO] [stdout] test grid::diff::tests::diff_reports_layer_that_stopped_being_written ... ok
[INFO] [stdout] test grid::api::tests::write_grapheme_stores_and_reads_extra ... ok
[INFO] [stdout] test grid::api::tests::write_grapheme_y_past_height_is_refused ... ok
[INFO] [stdout] test grid::diff::tests::diff_detects_grapheme_only_change ... ok
[INFO] [stdout] test grid::api::tests::write_grapheme_zero_width_is_refused ... ok
[INFO] [stdout] test grid::diff::tests::diff_empty_when_identical ... ok
[INFO] [stdout] test grid::layers::blit::tests::blend_separable_channel_burn_darkens_toward_black ... ok
[INFO] [stdout] test grid::layers::blit::tests::blend_separable_channel_overlay_switches_between_multiply_and_screen ... ok
[INFO] [stdout] test grid::layers::blit::tests::blend_separable_channel_screen_lightens_toward_the_combined_color ... ok
[INFO] [stdout] test grid::diff::tests::diff_stopped_layer_with_size_mismatch_yields_nothing_for_that_layer ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_alpha_degrades_a_wide_char_pair_clipped_by_src_rect ... ok
[INFO] [stdout] test grid::layers::blit::tests::blend_color_non_rgb_passthrough_all_modes ... ok
[INFO] [stdout] test grid::layers::blit::tests::blend_separable_channel_dodge_brightens_toward_white ... ok
[INFO] [stdout] test grid::layers::blit::tests::blend_separable_channel_multiply_darkens_toward_the_product ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_alpha_dest_origin_near_u16_max_does_not_wrap ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_alpha_leaves_a_dangling_wide_char_lead_in_the_destination ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_alpha_linear_direction ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_alpha_leaves_a_dangling_span_anchor_in_the_destination ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_alpha_screen_blends_bg ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_alpha_screen_blends_fg ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_carries_a_tint_across_grids ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_clears_a_destination_tint_where_the_source_has_none ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_copies_a_whole_wide_char_pair_intact ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_clamp_matches_grixys_copy_rect_clamped_on_shared_clipped_rect_cases ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_degrades_a_bare_wide_char_spacer_clipped_by_src_rect ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_cross_layer_reads_a_different_source_layer_than_it_writes ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_degrades_a_span_to_its_fallback_glyphs ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_dest_origin_near_u16_max_does_not_wrap ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_empty_rect_is_a_no_op ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_degrades_a_wide_char_pair_clipped_by_src_rect ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_degrades_a_wide_char_pair_clipped_by_the_destinations_edge ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_normal_offset_unaffected_by_overflow_fix ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_preserves_extra ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_skips_out_of_bounds_source_and_dest_regions ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_sub_cell_offset_and_transparency ... ok
[INFO] [stdout] test grid::layers::flatten::tests::clone_preserves_extra ... ok
[INFO] [stdout] test grid::layers::flatten::tests::copy_layer_from_clears_the_destination_when_the_source_layer_is_unallocated ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_alpha_degrades_a_wide_char_pair_clipped_by_the_destinations_edge ... ok
[INFO] [stdout] test grid::layers::flatten::tests::copy_layer_from_is_a_noop_when_neither_side_has_the_layer_allocated ... ok
[INFO] [stdout] test grid::layers::flatten::tests::copy_layer_from_lowers_max_layer_when_the_source_layer_is_unallocated ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_fully_transparent_source_does_not_allocate_dst_layer ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_leaves_a_dangling_span_anchor_in_the_destination ... ok
[INFO] [stdout] test grid::layers::flatten::tests::copy_layer_from_overwrites_a_cell_the_destination_wrote_this_frame ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_leaves_a_dangling_wide_char_lead_in_the_destination ... ok
[INFO] [stdout] test grid::layers::blit::tests::blit_multi_layer_independent ... ok
[INFO] [stdout] test grid::layers::flatten::tests::flatten_into_carries_span ... ok
[INFO] [stdout] test grid::layers::flatten::tests::flatten_into_higher_layer_overwrites_glyph_and_fg_but_not_default_bg ... ok
[INFO] [stdout] test grid::layers::flatten::tests::flatten_into_empty_higher_layer_cell_is_transparent ... ok
[INFO] [stdout] test grid::layers::flatten::tests::flatten_into_multi_layer_stale_dst_extra_is_cleared ... ok
[INFO] [stdout] test grid::layers::flatten::tests::copy_layer_from_preserves_span_flags_verbatim ... ok
[INFO] [stdout] test grid::layers::flatten::tests::flatten_into_single_layer_is_a_plain_copy ... ok
[INFO] [stdout] test grid::layers::tests::clear_all_resets_every_layer ... ok
[INFO] [stdout] test grid::layers::flatten::tests::flatten_into_carries_extra_from_higher_layer ... ok
[INFO] [stdout] test grid::layers::tests::clear_beyond_table_length_is_a_no_op ... ok
[INFO] [stdout] test grid::layers::tests::clear_layer_resets_only_that_layer ... ok
[INFO] [stdout] test grid::layers::tests::deallocate_layer_reads_back_as_unallocated ... ok
[INFO] [stdout] test grid::layers::tests::clone_is_independent ... ok
[INFO] [stdout] test grid::layers::tests::deallocate_layer_the_top_layer_lowers_max_layer ... ok
[INFO] [stdout] test grid::layers::tests::deallocate_layer_already_unallocated_is_a_no_op ... ok
[INFO] [stdout] test grid::layers::tests::deallocate_layer_below_the_top_leaves_max_layer_unchanged ... ok
[INFO] [stdout] test grid::layers::tests::fill_rect_clears_a_multi_row_span_it_fully_covers ... ok
[INFO] [stdout] test grid::layers::tests::fill_rect_clears_a_span_it_partially_overwrites ... ok
[INFO] [stdout] test grid::layers::tests::fill_rect_clears_a_wide_char_it_partially_overwrites ... ok
[INFO] [stdout] test grid::layers::tests::fill_rect_clips_to_grid_bounds ... ok
[INFO] [stdout] test grid::layers::tests::fill_rect_drops_stale_extras ... ok
[INFO] [stdout] test grid::layers::tests::fill_rect_on_an_empty_rect_does_not_allocate_the_layer ... ok
[INFO] [stdout] test grid::layers::tests::fill_rect_refuses_a_wide_tile ... ok
[INFO] [stdout] test grid::layers::tests::layer_beyond_table_length_reads_as_none ... ok
[INFO] [stdout] test grid::layers::tests::layer_table_growth_is_monotonic_across_writes ... ok
[INFO] [stdout] test grid::layers::tests::layer_or_alloc_grows_table_lazily_to_the_written_id ... ok
[INFO] [stdout] test grid::layers::tests::layer_zero_always_allocated ... ok
[INFO] [stdout] test grid::layers::tests::new_layer_table_starts_at_a_single_slot ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_allocates_layer ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_clears_the_lead_of_a_wide_glyph_whose_spacer_it_overwrites ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_clears_the_spacer_of_a_wide_glyph_it_overwrites ... ok
[INFO] [stdout] test grid::layers::tests::layers_yields_every_allocated_cell_in_layer_then_row_major_order ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_draws_a_spacer_rebuilt_through_with_glyph ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_on_layer_2_reads_back_independently_of_layer_0 ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_narrowed_through_with_glyph_does_not_clobber_its_neighbour ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_out_of_bounds_does_not_allocate_the_layer ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_out_of_bounds_returns_none ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_strips_a_span_anchor_replayed_from_elsewhere ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_strips_a_span_anchor_so_clear_span_cannot_destroy_a_neighbour ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_refuses_a_wide_glyph_at_the_last_column ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_strips_a_span_covered_role_replayed_from_elsewhere ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_then_tile_reads_back_the_written_glyph_and_out_of_bounds_is_none ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_then_index_reads_back_the_written_glyph ... ok
[INFO] [stdout] test grid::layers::tests::set_extra_out_of_bounds_does_not_allocate_the_layer ... ok
[INFO] [stdout] test grid::layers::tests::set_tint_out_of_bounds_does_not_allocate_the_layer ... ok
[INFO] [stdout] test grid::layers::tests::tile_mut_writes_in_place_without_clearing_spans ... ok
[INFO] [stdout] test grid::layers::tint::tests::a_tint_alone_keeps_grapheme_reads_answering_none ... ok
[INFO] [stdout] test grid::layers::tint::tests::a_tint_and_a_grapheme_share_one_entry_without_clobbering_each_other ... ok
[INFO] [stdout] test grid::layers::tint::tests::put_tile_drops_the_tint ... ok
[INFO] [stdout] test grid::layers::tint::tests::tint_is_per_layer_and_per_cell ... ok
[INFO] [stdout] test grid::layers::tint::tests::tint_out_of_bounds_reads_none_and_writes_nothing ... ok
[INFO] [stdout] test grid::layers::tint::tests::tint_round_trips_and_defaults_to_none ... ok
[INFO] [stdout] test grid::layers::tint::tests::writing_a_glyph_over_a_tinted_cell_drops_the_tint ... ok
[INFO] [stdout] test grid::spans::tests::clear_region_clears_a_span_it_only_partly_covers ... ok
[INFO] [stdout] test grid::spans::tests::clear_span_overlap_rect_clears_a_span_spanning_every_row_it_touches ... ok
[INFO] [stdout] test grid::spans::tests::clear_span_overlap_rect_on_an_unallocated_layer_is_a_no_op ... ok
[INFO] [stdout] test grid::spans::tests::clear_span_overlap_rect_skips_a_covered_cell_whose_offset_underflows ... ok
[INFO] [stdout] test grid::spans::tests::clear_span_overlap_rect_skips_out_of_bounds_cells_without_panicking ... ok
[INFO] [stdout] test grid::spans::tests::clear_span_works_from_any_cell_of_the_span ... ok
[INFO] [stdout] test grid::layers::tests::put_tile_writes_a_spacer_for_a_wide_glyph ... ok
[INFO] [stdout] test grid::spans::tests::overlapping_spans_erase_the_old_one_entirely ... ok
[INFO] [stdout] test grid::spans::tests::resize_narrower_clears_a_span_anchor_whose_footprint_no_longer_fits ... ok
[INFO] [stdout] test grid::spans::tests::resize_shorter_clears_a_span_anchor_whose_footprint_no_longer_fits ... ok
[INFO] [stdout] test grid::spans::tests::resize_wider_leaves_a_span_anchor_untouched ... ok
[INFO] [stdout] test grid::spans::tests::span_owner_reports_the_anchor_from_every_cell_of_the_span ... ok
[INFO] [stdout] test grid::spans::tests::spans_are_layer_scoped ... ok
[INFO] [stdout] test grid::spans::tests::write_span_clears_a_wide_char_it_partially_overwrites ... ok
[INFO] [stdout] test grid::spans::tests::write_span_keeps_the_fallback_glyphs_readable ... ok
[INFO] [stdout] test grid::spans::tests::write_span_marks_anchor_and_covered_cells ... ok
[INFO] [stdout] test grid::spans::tests::write_span_rejects_malformed_input_without_writing ... ok
[INFO] [stdout] test grid::spans::tests::write_span_takes_any_as_ref_str_row ... ok
[INFO] [stdout] test grid::spans::tests::write_span_uniform_matches_the_equivalent_write_span ... ok
[INFO] [stdout] test grid::spans::tests::write_span_uniform_rejects_a_degenerate_or_oversized_footprint ... ok
[INFO] [stdout] test grid::spans::tests::write_span_uniform_writes_the_anchor_once_and_fills_the_rest ... ok
[INFO] [stdout] test grid::spans::tests::writing_into_a_covered_cell_clears_the_whole_span ... ok
[INFO] [stdout] test grid::spans::tests::resize_narrower_skips_unallocated_layers_between_allocated_ones ... ok
[INFO] [stdout] test grid::spans::tests::writing_over_the_anchor_clears_the_whole_span ... ok
[INFO] [stdout] test grid::tests::area_is_width_times_height_and_zero_for_default ... ok
[INFO] [stdout] test grid::tests::intersect_is_non_empty_only_when_rects_overlap ... ok
[INFO] [stdout] test grid::tests::offset_converts_to_and_from_a_tuple ... ok
[INFO] [stdout] test grid::tests::offset_default_is_zero ... ok
[INFO] [stdout] test grid::tests::pos_converts_to_and_from_a_tuple ... ok
[INFO] [stdout] test grid::tests::pos_iter_yields_every_position_row_major ... ok
[INFO] [stdout] test grid::tests::pos_ord_sorts_row_major ... ok
[INFO] [stdout] test grid::tests::size_converts_to_and_from_a_tuple ... ok
[INFO] [stdout] test grid::tests::size_orders_by_width_then_height ... ok
[INFO] [stdout] test grid::tests::top_left_and_bottom_right_reflect_position_and_size ... ok
[INFO] [stdout] test grid::trait_impls::tests::debug_reports_layer_and_span_state ... ok
[INFO] [stdout] test grid::trait_impls::tests::display_renders_glyphs_row_major_with_a_middle_dot_for_empty_cells ... ok
[INFO] [stdout] test grid::trait_impls::tests::display_wide_char_spacer_renders_as_a_plain_space ... ok
[INFO] [stdout] test grid::trait_impls::tests::index_by_pos_reads_back_the_written_glyph ... ok
[INFO] [stdout] test grid::tests::contains_pos_is_true_for_edges_and_false_for_the_exclusive_far_edge ... ok
[INFO] [stdout] test layout::align::tests::h_align_offset_places_content_per_alignment ... ok
[INFO] [stdout] test layout::align::tests::h_align_offset_wider_than_area_saturates_to_zero ... ok
[INFO] [stdout] test layout::align::tests::v_align_offset_places_content_per_alignment ... ok
[INFO] [stdout] test layout::align::tests::v_align_offset_taller_than_area_saturates_to_zero ... ok
[INFO] [stdout] test layout::text_layout::tests::test_measure_single_line ... ok
[INFO] [stdout] test layout::text_layout::tests::test_measure_wraps ... ok
[INFO] [stdout] test layout::text_layout::tests::test_render_bottom_v ... ok
[INFO] [stdout] test layout::text_layout::tests::test_render_center_h ... ok
[INFO] [stdout] test backend::headless::tests::non_moved_event_breaks_coalescing ... ok
[INFO] [stdout] test layout::text_layout::tests::test_render_left_top ... ok
[INFO] [stdout] test layout::text_layout::tests::test_render_clips_to_height ... ok
[INFO] [stdout] test color::ansi::tests::test_palette_oklab_quantizes_identically_to_computed_table ... ok
[INFO] [stdout] test layout::text_layout::tests::test_render_right_h ... ok
[INFO] [stdout] test layout::text_layout::tests::test_render_middle_v ... ok
[INFO] [stdout] test layout::text_layout::tests::text_layout_wide_glyph_stays_inside_the_rect ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_force_break_drops_the_triggering_space ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_hard_newline ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_multi_span ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_force_break_no_space ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_no_wrap_needed ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_soft_break_on_space ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_str_hard_newline ... ok
[INFO] [stdout] test layout::text_layout::tests::text_layout_render_to_surface_escapes_the_surface_clip ... ok
[INFO] [stdout] test app::tests::run_on_with_animated_options_runs_to_completion ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_str_no_wrap_needed_returns_owned ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_str_soft_break_on_space ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_wide_chars ... ok
[INFO] [stdout] test surface::tests::a_wide_char_at_the_clip_edge_refuses_to_write_its_spacer_outside_the_clip ... ok
[INFO] [stdout] test surface::tests::a_widget_placed_via_local_area_lands_the_same_way_at_the_origin_and_at_an_offset ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_str_wide_chars ... ok
[INFO] [stdout] test surface::tests::an_untinted_surface_leaves_the_side_table_alone ... ok
[INFO] [stdout] test surface::tests::blit_is_a_no_op_for_a_zero_sized_grid ... ok
[INFO] [stdout] test surface::tests::blit_is_a_no_op_when_the_destination_footprint_misses_the_clip_entirely ... ok
[INFO] [stdout] test surface::tests::blit_is_a_no_op_when_the_shifted_x_origin_overflows_u16 ... ok
[INFO] [stdout] test surface::tests::blit_is_a_no_op_when_the_whole_footprint_is_cropped_before_the_translated_origin ... ok
[INFO] [stdout] test surface::tests::blit_clips_to_this_surfaces_clip_instead_of_skipping_the_whole_call ... ok
[INFO] [stdout] test surface::tests::blit_reads_the_sources_layer_0_even_when_this_surface_is_on_a_different_layer ... ok
[INFO] [stdout] test surface::tests::blit_is_a_no_op_when_the_shifted_y_origin_overflows_u16 ... ok
[INFO] [stdout] test surface::tests::clear_on_a_scoped_surface_clears_the_scoped_area_intersected_with_the_parent_clip ... ok
[INFO] [stdout] test surface::tests::clear_is_unaffected_by_translate ... ok
[INFO] [stdout] test surface::tests::clear_only_clears_the_intersection_of_area_and_clip ... ok
[INFO] [stdout] test surface::tests::blit_stamps_a_grid_at_a_local_offset ... ok
[INFO] [stdout] test surface::tests::clear_region_clears_a_span_it_partially_overwrites ... ok
[INFO] [stdout] test surface::tests::clip_does_not_widen_the_visible_region_after_scope_narrows_it ... ok
[INFO] [stdout] test app::tests::run_on_with_animated_options_paces_updates_to_the_target_fps ... ok
[INFO] [stdout] test surface::tests::clip_intersects_rather_than_replaces_so_it_cannot_widen ... ok
[INFO] [stdout] test surface::tests::clip_makes_put_span_measure_its_footprint_against_the_sub_rect ... ok
[INFO] [stdout] test surface::tests::clip_makes_put_span_uniform_measure_its_footprint_against_the_sub_rect ... ok
[INFO] [stdout] test surface::tests::clear_region_with_a_zero_sized_rect_is_a_no_op ... ok
[INFO] [stdout] test surface::tests::clip_narrows_the_visible_rect_but_not_the_area ... ok
[INFO] [stdout] test surface::tests::clip_nests_monotonically ... ok
[INFO] [stdout] test surface::tests::clip_keeps_the_layer ... ok
[INFO] [stdout] test surface::tests::clip_to_a_disjoint_rect_is_empty_and_drops_every_write ... ok
[INFO] [stdout] test surface::tests::clip_to_one_row_drops_print_overflow_instead_of_wrapping_it ... ok
[INFO] [stdout] test surface::tests::clip_to_a_zero_width_rect_is_empty_and_drops_every_write ... ok
[INFO] [stdout] test surface::tests::clip_translate_does_not_change_area_local_area_width_or_height ... ok
[INFO] [stdout] test surface::tests::fill_rect_clears_a_span_it_partially_overwrites ... ok
[INFO] [stdout] test surface::tests::clip_writes_outside_the_sub_rect_are_dropped ... ok
[INFO] [stdout] test surface::tests::fill_rect_with_a_zero_sized_rect_is_a_no_op ... ok
[INFO] [stdout] test surface::tests::grid_is_the_read_only_counterpart_of_grid_mut ... ok
[INFO] [stdout] test surface::tests::layer_as_u8_matches_the_documented_grid_layer_ids ... ok
[INFO] [stdout] test surface::tests::fill_rect_with_a_wide_glyph_falls_back_to_the_put_loop ... ok
[INFO] [stdout] test surface::tests::layer_default_is_world ... ok
[INFO] [stdout] test surface::tests::local_area_is_always_zero_origin_regardless_of_where_area_sits ... ok
[INFO] [stdout] test surface::tests::layer_variants_order_low_to_high ... ok
[INFO] [stdout] test surface::tests::on_tier_matches_on_layer_with_the_tiers_u8 ... ok
[INFO] [stdout] test surface::tests::on_tier_writes_land_on_the_tiers_grid_layer ... ok
[INFO] [stdout] test surface::tests::layer_into_u8_matches_as_u8 ... ok
[INFO] [stdout] test surface::tests::print_aligned_center_on_an_offset_surface_uses_area_local_coordinates ... ok
[INFO] [stdout] test surface::tests::print_advances_past_an_embedded_newline_to_the_next_row_at_the_original_column ... ok
[INFO] [stdout] test surface::tests::print_aligned_centers_matching_text_layouts_own_saturating_formula ... ok
[INFO] [stdout] test surface::tests::print_aligned_ignores_translate_and_still_lands_at_the_plain_local_position ... ok
[INFO] [stdout] test surface::tests::print_aligned_does_not_panic_or_underflow_on_text_wider_than_the_rect ... ok
[INFO] [stdout] test surface::tests::print_aligned_left_aligns_by_default ... ok
[INFO] [stdout] test surface::tests::print_aligned_right_on_an_offset_surface_uses_area_local_coordinates ... ok
[INFO] [stdout] test surface::tests::print_aligned_right_aligns_flush_to_the_rects_right_edge ... ok
[INFO] [stdout] test surface::tests::print_and_fill_rect_are_no_ops_on_a_surface_with_an_empty_area ... ok
[INFO] [stdout] test surface::tests::print_skips_a_leading_zero_width_grapheme_without_writing_or_advancing_the_column ... ok
[INFO] [stdout] test surface::tests::print_line_measures_its_span_skip_threshold_against_the_surfaces_own_width ... ok
[INFO] [stdout] test surface::tests::print_line_with_an_empty_line_is_a_no_op ... ok
[INFO] [stdout] test surface::tests::print_with_an_empty_string_is_a_no_op ... ok
[INFO] [stdout] test surface::tests::put_does_not_tint_a_foreign_tile_when_write_grapheme_refuses_the_write ... ok
[INFO] [stdout] test surface::tests::put_offset_applies_the_surfaces_tint ... ok
[INFO] [stdout] test surface::tests::print_wraps_at_the_surfaces_own_width_not_at_clip_right ... ok
[INFO] [stdout] test surface::tests::put_offset_does_not_move_a_pre_existing_tile_when_its_own_write_is_refused ... ok
[INFO] [stdout] test surface::tests::put_grapheme_writes_a_combining_sequence_and_respects_this_surfaces_clip ... ok
[INFO] [stdout] test surface::tests::put_signed_does_wide_char_bookkeeping_like_put ... ok
[INFO] [stdout] test surface::tests::put_signed_drops_a_coordinate_inside_area_but_outside_a_narrower_clip ... ok
[INFO] [stdout] test surface::tests::put_signed_drops_a_coordinate_past_this_surfaces_width_or_height ... ok
[INFO] [stdout] test surface::tests::put_signed_drops_a_coordinate_whose_shifted_offset_overflows_u16 ... ok
[INFO] [stdout] test surface::tests::put_signed_drops_a_negative_coordinate ... ok
[INFO] [stdout] test surface::tests::put_signed_lands_a_valid_coordinate_at_the_area_origin ... ok
[INFO] [stdout] test surface::tests::put_offset_on_a_refused_write_leaves_the_targets_glyph_and_offset_alone ... ok
[INFO] [stdout] test grid::api::tests::new_zero_by_zero_panics - should panic ... ok
[INFO] [stdout] test surface::tests::put_span_refuses_an_axis_wider_than_255_cells ... ok
[INFO] [stdout] test surface::tests::put_span_reports_why_a_span_did_not_draw ... ok
[INFO] [stdout] test surface::tests::print_aligned_clips_to_this_surfaces_own_area_as_well_as_rect ... ok
[INFO] [stdout] test surface::tests::put_span_takes_any_as_ref_str_row ... ok
[INFO] [stdout] test surface::tests::put_span_refuses_and_writes_nothing_when_a_later_row_is_longer_than_the_first ... ok
[INFO] [stdout] test surface::tests::put_span_uniform_refuses_a_footprint_that_leaves_the_surfaces_area ... ok
[INFO] [stdout] test color::ansi::tests::test_cube_map_to_ansi_matches_reference ... ok
[INFO] [stdout] test color::convert::tests::test_hex_ignores_the_high_byte_and_does_not_expand_short_form ... ok
[INFO] [stdout] test grid::layers::tests::deallocate_layer_rescans_down_to_the_next_allocated_layer ... ok
[INFO] [stdout] test grid::layers::tests::fill_rect_strips_a_span_anchor_replayed_from_elsewhere ... ok
[INFO] [stdout] test surface::tests::put_offset_still_carries_the_pixel_offset ... ok
[INFO] [stdout] test surface::tests::put_span_uniform_writes_the_anchor_once_and_fills_the_rest ... ok
[INFO] [stdout] test grid::api::tests::new_zero_width_panics - should panic ... ok
[INFO] [stdout] test surface::tests::scope_sets_the_area_and_intersects_the_clip ... ok
[INFO] [stdout] test surface::tests::styled_surface_forwards_put_print_fill_rect_and_put_offset ... ok
[INFO] [stdout] test surface::tests::scope_writes_outside_the_inherited_clip_are_dropped ... ok
[INFO] [stdout] test surface::tests::test_put_offset_accepts_pos_and_offset_tuples ... ok
[INFO] [stdout] test surface::tests::scope_to_a_zero_height_rect_is_empty_and_drops_every_write ... ok
[INFO] [stdout] test surface::tests::test_put_accepts_a_pos_or_a_tuple ... ok
[INFO] [stdout] test surface::tests::styled_surface_forwards_both_span_calls ... ok
[INFO] [stdout] test surface::tests::test_put_wide_char_at_last_column_does_not_overflow ... ok
[INFO] [stdout] test surface::tests::test_print_advances_by_char_width ... ok
[INFO] [stdout] test surface::tests::test_print_styled_basic ... ok
[INFO] [stdout] test surface::tests::test_print_styled_wide_chars ... ok
[INFO] [stdout] test surface::tests::put_span_uniform_writes_to_this_surfaces_layer ... ok
[INFO] [stdout] test surface::tests::scope_inside_a_clipped_surface_cannot_widen_the_visible_region ... ok
[INFO] [stdout] test surface::tests::test_put_wide_char_sets_continuation ... ok
[INFO] [stdout] test surface::tests::translate_does_not_change_area_width_or_height ... ok
[INFO] [stdout] test surface::tests::translate_saturates_at_i32_max_across_repeated_calls_instead_of_overflowing ... ok
[INFO] [stdout] test surface::tests::translate_saturates_at_i32_min_across_repeated_calls_instead_of_overflowing ... ok
[INFO] [stdout] test surface::tests::translate_shifts_fill_rect_print_and_clear_region_via_put ... ok
[INFO] [stdout] test surface::tests::tinted_fill_rect_clips_a_rect_much_larger_than_the_area ... ok
[INFO] [stdout] test surface::tests::translate_shifts_clear_region ... ok
[INFO] [stdout] test surface::tests::translate_composes_additively_across_two_calls ... ok
[INFO] [stdout] test surface::tests::translate_composes_with_clip_and_shifts_put_the_same_way_as_put_signed ... ok
[INFO] [stdout] test surface::tests::translate_composes_with_scope_and_lets_a_negative_signed_coordinate_land ... ok
[INFO] [stdout] test surface::tests::translate_composes_with_scope_and_clip_rect ... ok
[INFO] [stdout] test surface::tests::translate_shifts_put_span_and_put_span_uniform ... ok
[INFO] [stdout] test surface::tests::translate_composes_with_with_style ... ok
[INFO] [stdout] test surface::tests::translated_clear_region_crops_a_rect_that_starts_before_the_translated_origin ... ok
[INFO] [stdout] test surface::tests::test_print_str_styled_applies_style_to_every_cell ... ok
[INFO] [stdout] test grid::layers::flatten::tests::flatten_into_mismatched_dimensions_panics - should panic ... ok
[INFO] [stdout] test surface::tests::translate_shifts_print_line_which_still_emits_its_spans ... ok
[INFO] [stdout] test surface::tests::translate_shifts_print_line ... ok
[INFO] [stdout] test surface::tests::translate_shifts_print_wrap_to_the_areas_own_width_not_the_local_offset_width ... ok
[INFO] [stdout] test surface::tests::with_tint_on_a_write_outside_the_clip_does_not_allocate_the_layer ... ok
[INFO] [stdout] test surface::tests::translate_shifts_put_by_subtracting_the_origin ... ok
[INFO] [stdout] test surface::tests::with_tint_survives_clip_and_on_layer ... ok
[INFO] [stdout] test surface::tests::with_tint_lands_on_the_span_anchor_only ... ok
[INFO] [stdout] test surface::tests::translate_shifts_print_and_still_wraps_at_the_surfaces_own_width ... ok
[INFO] [stdout] test surface::tests::with_tint_replaces_rather_than_composes ... ok
[INFO] [stdout] test symbols::braille::tests::glyph_covers_the_full_byte_range ... ok
[INFO] [stdout] test symbols::braille::tests::glyph_zero_is_blank ... ok
[INFO] [stdout] test symbols::subcell::tests::distance_sq_matches_manual_euclidean ... ok
[INFO] [stdout] test symbols::subcell::tests::half_block_top_bottom_split ... ok
[INFO] [stdout] test symbols::subcell::tests::half_block_uniform_color_picks_space_with_that_color ... ok
[INFO] [stdout] test grid::layers::tests::deallocate_layer_zero_panics - should panic ... ok
[INFO] [stdout] test symbols::subcell::tests::quadrant_picks_bottom_left_glyph ... ok
[INFO] [stdout] test symbols::braille::tests::dots_table_has_eight_distinct_bits ... ok
[INFO] [stdout] test surface::tests::with_tint_is_not_applied_to_a_refused_span ... ok
[INFO] [stdout] test symbols::subcell::tests::quadrant_uniform_color_picks_space_with_that_color ... ok
[INFO] [stdout] test surface::tests::translated_fill_rect_and_clear_region_clip_a_rect_much_larger_than_the_area ... ok
[INFO] [stdout] test grid::trait_impls::tests::index_panics_out_of_bounds - should panic ... ok
[INFO] [stdout] test symbols::subcell::tests::sextant_single_pixel_set ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_drain_events_into_applies_a_backend_resize ... ok
[INFO] [stdout] test symbols::subcell::tests::sextant_prefers_lower_pattern_on_exact_ties ... ok
[INFO] [stdout] test symbols::tests::bar_nine_levels_matches_named_constants ... ok
[INFO] [stdout] test symbols::tests::border_sets_share_field_shape ... ok
[INFO] [stdout] test symbols::tests::line_sets_are_internally_consistent_weights ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_drain_events_into ... ok
[INFO] [stdout] test surface::tests::translated_fill_rect_crops_a_rect_that_starts_before_the_translated_origin ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_drain_events_into_does_not_reapply_a_requeued_resize ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_poll_does_not_reapply_resize_buffered_by_wait_for_input ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_drain_events_is_one_shot_and_fused ... ok
[INFO] [stdout] test surface::tests::wide_glyph_fill_rect_clips_a_rect_much_larger_than_the_area ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_has_input ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_retain_layer_survives_wait_for_input_then_poll_of_a_resize ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_poll_and_read ... ok
[INFO] [stdout] test surface::tests::with_tint_applies_to_a_uniform_span_anchor ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_poll_does_not_reapply_resize_from_requeue_events ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_poll_does_not_reapply_resize_already_matching_current_size ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_requeue_events_interleaves_with_wait_for_input_lookahead ... ok
[INFO] [stdout] test terminal::present::tests::present_failure_does_not_leak_the_failed_frames_content_into_the_next_frame ... ok
[INFO] [stdout] test surface::tests::with_tint_applies_to_every_cell_fill_rect_touches ... ok
[INFO] [stdout] test surface::tests::with_tint_applies_to_the_cell_it_writes ... ok
[INFO] [stdout] test terminal::present::tests::present_marks_flatten_buffers_stale_after_a_composites_layers_present ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_requeue_events_replays_before_the_backend ... ok
[INFO] [stdout] test terminal::present::tests::present_resends_cells_after_a_failed_draw_layers_on_the_multi_layer_path ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_wait_for_input_buffers_the_event_instead_of_consuming_it ... ok
[INFO] [stdout] test terminal::input::tests::test_terminal_wait_for_input_applies_pending_resize ... ok
[INFO] [stdout] test terminal::present::tests::present_resends_cells_after_a_failed_flush_on_the_multi_layer_path ... ok
[INFO] [stdout] test terminal::present::tests::present_resends_cells_after_a_failed_flush_on_the_compositing_path ... ok
[INFO] [stdout] test terminal::present::tests::test_present_untouched_higher_layer_is_transparent ... ok
[INFO] [stdout] test symbols::subcell::tests::quantize_fns_accept_rgb888_directly ... ok
[INFO] [stdout] test terminal::present::tests::test_draw_single_layer_fast_path_matches_backend ... ok
[INFO] [stdout] test terminal::present::tests::test_terminal_present_count_advances_once_per_present_call ... ok
[INFO] [stdout] test terminal::retain::tests::test_drop_layer_clears_pending_retention_for_that_layer ... ok
[INFO] [stdout] test terminal::present::tests::test_present_transition_multi_to_single_to_multi_layer ... ok
[INFO] [stdout] test terminal::retain::tests::test_drop_layer_erases_content_from_the_backend_on_the_next_present ... ok
[INFO] [stdout] test terminal::present::tests::test_present_transition_single_to_multi_layer ... ok
[INFO] [stdout] test terminal::retain::tests::test_drop_layer_never_drawn_is_a_no_op ... ok
[INFO] [stdout] test terminal::retain::tests::test_drop_layer_reallocates_on_the_next_write_after_it_takes_effect ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_accepts_raw_u8_and_layer ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_deallocates_when_previous_lacks_it ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_is_one_shot ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_never_drawn_is_a_no_op ... ok
[INFO] [stdout] test terminal::retain::tests::test_drop_layer_is_cancelled_by_a_redraw_before_the_next_present ... ok
[INFO] [stdout] test terminal::retain::tests::test_drop_layer_restores_the_single_layer_fast_path ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_preserves_multi_cell_span_flags ... ok
[INFO] [stdout] test terminal::present::tests::test_composites_layers_diff_dispatches_only_changed_cells ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_replaces_a_cell_the_app_draws_at_an_empty_previous_cell ... ok
[INFO] [stdout] test terminal::present::tests::present_resends_cells_after_a_failed_flush_on_the_single_layer_fast_path ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_skips_redraw_on_a_compositing_backend ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_restores_a_cell_the_app_erases_with_an_explicit_space ... ok
[INFO] [stdout] test terminal::tests::test_terminal_area ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_survives_repeated_retention_without_desync ... ok
[INFO] [stdout] test terminal::tests::test_terminal_new_zero_height_backend_does_not_panic ... ok
[INFO] [stdout] test terminal::retain::tests::test_retain_layer_skips_redraw_and_keeps_backend_content ... ok
[INFO] [stdout] test terminal::tests::test_terminal_cursor_passthroughs_forward_to_backend ... ok
[INFO] [stdout] test terminal::tests::test_terminal_grid_mut ... ok
[INFO] [stdout] test terminal::present::tests::present_stale_flag_survives_a_failed_bypass_present ... ok
[INFO] [stdout] test terminal::present::tests::test_composites_layers_full_frame_dispatches_every_allocated_cell ... ok
[INFO] [stdout] test terminal::retain::tests::test_drop_layer_zero_panics - should panic ... ok
[INFO] [stdout] test terminal::tests::test_terminal_resize_after_flatten_buffers_allocated ... ok
[INFO] [stdout] test terminal::tests::test_terminal_resize_new_cells_accessible ... ok
[INFO] [stdout] test terminal::present::tests::test_draw_explicit_space_on_higher_layer_erases_and_sets_bg ... ok
[INFO] [stdout] test terminal::present::tests::test_draw_composites_layers_for_cell_backend ... ok
[INFO] [stdout] test text::tests::char_width_matches_unicode_width ... ok
[INFO] [stdout] test terminal::tests::test_terminal_size ... ok
[INFO] [stdout] test terminal::tests::test_terminal_resize_preserves_current_content ... ok
[INFO] [stdout] test terminal::tests::test_terminal_resize_changes_dimensions ... ok
[INFO] [stdout] test terminal::tests::test_terminal_resize_clears_pending_retention ... ok
[INFO] [stdout] test terminal::tests::test_terminal_resize_event_auto_applies ... ok
[INFO] [stdout] test terminal::tests::test_terminal_resize_to_zero_by_zero_is_allowed ... ok
[INFO] [stdout] test terminal::retain::tests::test_drop_then_retain_is_last_call_wins ... ok
[INFO] [stdout] test text::tests::split_at_width_returns_the_longest_prefix_that_fits ... ok
[INFO] [stdout] test text::tests::split_at_width_stops_at_the_column_budget ... ok
[INFO] [stdout] test text::tests::test_line_empty ... ok
[INFO] [stdout] test symbols::subcell::tests::average_rounds_to_nearest_and_handles_empty_mask ... ok
[INFO] [stdout] test terminal::tests::test_terminal_new_zero_width_backend_panics - should panic ... ok
[INFO] [stdout] test text::tests::test_line_width_wide_chars ... ok
[INFO] [stdout] test text::tests::test_line_from_spans ... ok
[INFO] [stdout] test text::tests::test_span_raw ... ok
[INFO] [stdout] test text::tests::truncate_measured_matches_split_at_width_plus_a_separate_measurement ... ok
[INFO] [stdout] test text::tests::test_span_styled ... ok
[INFO] [stdout] test text::tests::test_line_from_str ... ok
[INFO] [stdout] test terminal::tests::test_terminal_new_zero_by_zero_backend_panics - should panic ... ok
[INFO] [stdout] test text::tests::test_span_width_wide_chars ... ok
[INFO] [stdout] test text::tests::char_width_treats_control_characters_as_one_column ... ok
[INFO] [stdout] test text::tests::split_at_width_counts_wide_characters_as_two_columns ... ok
[INFO] [stdout] test text::tests::width_matches_span_width ... ok
[INFO] [stdout] test tile::tests::test_cap_grapheme_truncates_past_the_cap_on_a_codepoint_boundary ... ok
[INFO] [stdout] test tile::tests::test_tile_clear_span_keeps_the_glyph ... ok
[INFO] [stdout] test tile::tests::test_tile_builder ... ok
[INFO] [stdout] test terminal::tests::test_terminal_present_multi_layer_at_zero_width_panics - should panic ... ok
[INFO] [stdout] test tile::tests::test_tile_defaults ... ok
[INFO] [stdout] test text::tests::split_at_width_prefix_can_exceed_max_cols ... ok
[INFO] [stdout] test tile::tests::test_tile_empty_semantics ... ok
[INFO] [stdout] test tile::tests::test_tile_flag_predicates ... ok
[INFO] [stdout] test tile::tests::test_tile_span_accessors_are_keyed_by_role ... ok
[INFO] [stdout] test tile::tests::test_tile_reset_clears_span ... ok
[INFO] [stdout] test tile::tests::test_tile_span_anchor_index_does_not_detect_crossing_a_row_block ... ok
[INFO] [stdout] test tile::tests::test_tile_span_anchor_index_does_not_detect_a_zero_stride ... ok
[INFO] [stdout] test tile::tests::test_tile_flags_default_is_not_empty_flag ... ok
[INFO] [stdout] test tile::tests::test_cap_grapheme_leaves_short_input_unchanged ... ok
[INFO] [stdout] test text::tests::width_counts_wide_characters_as_two_columns ... ok
[INFO] [stdout] test tile::tests::test_tile_width_falls_back_to_one_for_control_characters ... ok
[INFO] [stdout] test tile::tests::test_tile_span_anchor_index_resolves_a_covered_cell_to_its_anchor ... ok
[INFO] [stdout] test tile::tests::test_tile_span_anchor_index_is_none_past_the_buffer_start ... ok
[INFO] [stdout] test tile::tests::test_tile_width_is_precomputed_from_glyph ... ok
[INFO] [stdout] test tile::tests::test_tile_span_anchor_index_is_none_when_not_covered ... ok
[INFO] [stdout] test tile::tests::test_tile_span_defaults_to_one_by_one ... ok
[INFO] [stdout] test tile::tests::test_tile_width_is_zero_for_zero_width_glyphs ... ok
[INFO] [stdout] test tile::tests::test_tile_with_glyph_clears_stale_wide_char_flag ... ok
[INFO] [stdout] test tile::tests::test_tile_with_glyph_clears_stale_wide_char_spacer_flag ... ok
[INFO] [stdout] test tile::tests::test_tile_with_glyph_recomputes_width ... ok
[INFO] [stdout] test tile::tests::test_tile_with_offset ... ok
[INFO] [stdout] test tile::tests::test_tile_reset ... ok
[INFO] [stdout] test tile::tests::test_tile_wide_flag ... ok
[INFO] [stdout] test tile::tests::test_tile_size_is_stable_and_small ... ok
[INFO] [stdout] test tile::tests::test_cap_grapheme_leaves_exactly_the_cap_unchanged ... ok
[INFO] [stdout] test tile::tests::test_tile_with_offset_preserves_glyph_and_width ... ok
[INFO] [stdout] test tile::tests::test_tile_with_offset_chain_does_not_leak_prior_values ... ok
[INFO] [stdout] test text::tests::width_saturates_at_u16_max ... ok
[INFO] [stdout] test tile::tests::test_tile_with_style_preserves_glyph_and_width ... ok
[INFO] [stdout] test grid::api::tests::wide_char_proptests::wide_char_bookkeeping_never_desyncs_across_resizes ... ok
[INFO] [stdout] test text::tests::truncate_measured_width_matches_a_direct_measurement ... ok
[INFO] [stdout] test text::tests::split_at_width_prefix_never_exceeds_max_cols ... ok
[INFO] [stdout] test layout::word_wrap::tests::test_wrap_str_max_width_does_not_overflow ... ok
[INFO] [stdout] test grid::api::tests::wide_char_proptests::wide_char_bookkeeping_never_desyncs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 607 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/no_drift.rs (/opt/rustwide/target/debug/deps/no_drift-d1cc844909eea5cc)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test repeated_composite_never_settles_darker_than_the_source_for_any_color ... ok
[INFO] [stdout] test repeated_translucent_composite_converges_to_the_exact_fixed_point_not_a_darker_one ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rounding_conformance.rs (/opt/rustwide/target/debug/deps/rounding_conformance-1e88e09c5f9f9d4b)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test from_srgb_rounds_to_nearest_not_truncates ... ok
[INFO] [stdout] test multiply_and_scale_are_round_to_nearest_for_every_input ... ok
[INFO] [stderr]    Doc-tests retroglyph_core
[INFO] [stdout] test mix_and_lerp_are_round_to_nearest_for_every_input ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.12s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 76 tests
[INFO] [stdout] test src/app.rs - app::Launch (line 436) - compile ... ok
[INFO] [stdout] test src/backend/mod.rs - backend::Cursor (line 365) ... ok
[INFO] [stdout] test src/backend/mod.rs - backend::Input (line 315) ... ok
[INFO] [stdout] test src/backend/mod.rs - backend::Backend (line 435) ... ok
[INFO] [stdout] test src/../README.md - ReadmeDoctests (line 22) ... ok
[INFO] [stdout] test src/app.rs - app::App (line 83) ... ok
[INFO] [stdout] test src/color/ansi.rs - color::ansi::Quantize (line 22) ... ok
[INFO] [stdout] test src/color/mod.rs - color::Color (line 33) ... ok
[INFO] [stdout] test src/backend/mod.rs - backend::BackendError (line 31) ... ok
[INFO] [stdout] test src/color/convert.rs - color::convert::Color::to_indexed (line 212) ... ok
[INFO] [stdout] test src/color/convert.rs - color::convert::Color::to_indexed_with (line 243) ... ok
[INFO] [stdout] test src/color/convert.rs - color::convert::Color::to_ansi (line 266) ... ok
[INFO] [stdout] test src/color/convert.rs - color::convert::Color::to_ansi_with (line 295) ... ok
[INFO] [stdout] test src/color/parse.rs - color::parse::Color::from_str (line 104) ... ok
[INFO] [stdout] test src/frames/clock.rs - frames::clock (line 11) ... ok
[INFO] [stdout] test src/color/tint.rs - color::tint::Tint::apply_rgb888 (line 174) ... ok
[INFO] [stdout] test src/color/named.rs - color::named::Color::from_hex (line 182) ... ok
[INFO] [stdout] test src/backend/mod.rs - backend::Output (line 155) ... ok
[INFO] [stdout] test src/color/ansi.rs - color::ansi::AnsiColor (line 64) ... ok
[INFO] [stdout] test src/color/parse.rs - color::parse::Color::fmt (line 62) ... ok
[INFO] [stdout] test src/grid/layers/mod.rs - grid::layers::Grid::fill_rect (line 150) ... ok
[INFO] [stdout] test src/color/tint.rs - color::tint::Tint (line 69) ... ok
[INFO] [stdout] test src/dev.rs - dev::dev_only (line 168) ... ok
[INFO] [stdout] test src/frames/stats.rs - frames::stats (line 11) ... ok
[INFO] [stdout] test src/color/style.rs - color::style::Style::patch (line 80) ... ok
[INFO] [stdout] test src/color/style.rs - color::style::Style (line 11) ... ok
[INFO] [stdout] test src/grid/mod.rs - grid::Grid (line 459) ... ok
[INFO] [stdout] test src/frames/clock.rs - frames::clock::FrameClock::tick (line 86) ... ok
[INFO] [stdout] test src/grid/api.rs - grid::api::Grid::from_charmap (line 63) ... ok
[INFO] [stdout] test src/color/named.rs - color::named::Color::from_named (line 16) ... ok
[INFO] [stdout] test src/grid/spans.rs - grid::spans::Grid::write_span_uniform (line 124) ... ok
[INFO] [stdout] test src/grid/mod.rs - grid::Offset (line 287) ... ok
[INFO] [stdout] test src/layout/text_layout.rs - layout::text_layout::TextLayout (line 18) ... ok
[INFO] [stdout] test src/dev.rs - dev::dev_only (line 152) ... ok
[INFO] [stdout] test src/grid/mod.rs - grid::Size (line 215) ... ok
[INFO] [stdout] test src/lib.rs - dev (line 159) ... ok
[INFO] [stdout] test src/layout/word_wrap.rs - layout::word_wrap::wrap_str (line 167) ... ok
[INFO] [stdout] test src/surface/draw/cells.rs - surface::draw::cells::Surface<'_>::put (line 108) ... ok
[INFO] [stdout] test src/surface/draw/cells.rs - surface::draw::cells::Surface<'_>::put_signed (line 143) ... ok
[INFO] [stdout] test src/surface/draw/cells.rs - surface::draw::cells::Surface<'_>::fill_rect (line 176) ... ok
[INFO] [stdout] test src/surface/draw/spans.rs - surface::draw::spans::Surface<'_>::put_offset (line 143) ... ok
[INFO] [stdout] test src/surface/draw/mod.rs - surface::draw::Surface<'_>::put_grapheme (line 99) ... ok
[INFO] [stdout] test src/surface/draw/cells.rs - surface::draw::cells::Surface<'_>::blit (line 239) ... ok
[INFO] [stdout] test src/surface/draw/cells.rs - surface::draw::cells::Surface<'_>::clear_region (line 297) ... ok
[INFO] [stdout] test src/surface/draw/text.rs - surface::draw::text::Surface<'_>::print (line 22) ... ok
[INFO] [stdout] test src/surface/draw/text.rs - surface::draw::text::Surface<'_>::print_line (line 111) ... ok
[INFO] [stdout] test src/surface/draw/text.rs - surface::draw::text::Surface<'_>::print_aligned (line 171) ... ok
[INFO] [stdout] test src/surface/geometry.rs - surface::geometry::Surface<'a>::clip (line 199) ... ok
[INFO] [stdout] test src/surface/draw/spans.rs - surface::draw::spans::Surface<'_>::put_span_uniform (line 85) ... ok
[INFO] [stdout] test src/surface/geometry.rs - surface::geometry::Surface<'a>::scope (line 245) ... ok
[INFO] [stdout] test src/surface/geometry.rs - surface::geometry::Surface<'a>::clip_translate (line 360) ... ok
[INFO] [stdout] test src/surface/geometry.rs - surface::geometry::Surface<'a>::area (line 29) ... ok
[INFO] [stdout] test src/surface/mod.rs - surface::Layer (line 93) ... ok
[INFO] [stdout] test src/surface/geometry.rs - surface::geometry::Surface<'a>::translate (line 300) ... ok
[INFO] [stdout] test src/symbols/subcell.rs - symbols::subcell (line 41) ... ok
[INFO] [stdout] test src/terminal/retain.rs - terminal::retain::Terminal<B>::drop_layer (line 87) ... ok
[INFO] [stdout] test src/surface/geometry.rs - surface::geometry::Surface<'a>::with_tint (line 134) ... ok
[INFO] [stdout] test src/terminal/retain.rs - terminal::retain::Terminal<B>::retain_layer (line 33) ... ok
[INFO] [stdout] test src/terminal/mod.rs - terminal::Terminal (line 32) ... ok
[INFO] [stdout] test src/symbols/subcell.rs - symbols::subcell::quantize_quadrant (line 204) ... ok
[INFO] [stdout] test src/text.rs - text::Span (line 170) ... ok
[INFO] [stdout] test src/symbols/subcell.rs - symbols::subcell::quantize_sextant (line 236) ... ok
[INFO] [stdout] test src/text.rs - text::Line (line 222) ... ok
[INFO] [stdout] test src/grid/mod.rs - grid::Rect (line 260) ... ok
[INFO] [stdout] test src/layout/text_layout.rs - layout::text_layout::TextLayout<'a>::render_to_surface (line 97) ... ok
[INFO] [stdout] test src/grid/mod.rs - grid::Pos (line 238) ... ok
[INFO] [stdout] test src/grid/spans.rs - grid::spans::Grid::write_span (line 60) ... ok
[INFO] [stdout] test src/grid/spans.rs - grid::spans::Grid::span_owner (line 235) ... ok
[INFO] [stdout] test src/text.rs - text::width (line 19) ... ok
[INFO] [stdout] test src/text.rs - text::truncate_measured (line 149) ... ok
[INFO] [stdout] test src/text.rs - text::char_width (line 52) ... ok
[INFO] [stdout] test src/tile.rs - tile::Tile (line 79) ... ok
[INFO] [stdout] test src/symbols/subcell.rs - symbols::subcell::quantize_half_block (line 171) ... ok
[INFO] [stdout] test src/text.rs - text::split_at_width (line 98) ... ok
[INFO] [stdout] test src/layout/word_wrap.rs - layout::word_wrap::wrap (line 121) ... ok
[INFO] [stdout] test src/text.rs - text::spans (line 297) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 76 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.22s; merged doctests compilation took 1.11s
[INFO] running `Command { std: "docker" "inspect" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52", kill_on_drop: false }`
[INFO] [stdout] f29aede5e9f52a9e7c5f2d81076e33eb60b3d10a7ff4f0b857a9a8b45b7a5f52
