[INFO] fetching crate ftui-render 0.2.1... [INFO] testing ftui-render-0.2.1 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate ftui-render 0.2.1 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate ftui-render 0.2.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate ftui-render 0.2.1 [INFO] tweaked toml for crates.io crate ftui-render 0.2.1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate ftui-render 0.2.1 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate ftui-render 0.2.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap v4.5.59 [INFO] [stderr] Downloaded signal-hook v0.4.3 [INFO] [stderr] Downloaded unicode-display-width v0.3.0 [INFO] [stderr] Downloaded clap_builder v4.5.59 [INFO] [stderr] Downloaded ftui-core v0.2.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 174674c5c7d08222d044f3988c01c56b867814f5bcd9977754964816339c6b0d [INFO] running `Command { std: "docker" "start" "-a" "174674c5c7d08222d044f3988c01c56b867814f5bcd9977754964816339c6b0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "174674c5c7d08222d044f3988c01c56b867814f5bcd9977754964816339c6b0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "174674c5c7d08222d044f3988c01c56b867814f5bcd9977754964816339c6b0d", kill_on_drop: false }` [INFO] [stdout] 174674c5c7d08222d044f3988c01c56b867814f5bcd9977754964816339c6b0d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 907016fbfdf03af4c9360dc21a18c005d2f67e8748b5dc9649f2b6654cf58383 [INFO] running `Command { std: "docker" "start" "-a" "907016fbfdf03af4c9360dc21a18c005d2f67e8748b5dc9649f2b6654cf58383", kill_on_drop: false }` [INFO] [stderr] Compiling signal-hook v0.4.3 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling web-time v1.1.0 [INFO] [stderr] Compiling bumpalo v3.20.1 [INFO] [stderr] Compiling unicode-display-width v0.3.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling arc-swap v1.8.2 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling ftui-core v0.2.1 [INFO] [stderr] Compiling ftui-render v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.28s [INFO] running `Command { std: "docker" "inspect" "907016fbfdf03af4c9360dc21a18c005d2f67e8748b5dc9649f2b6654cf58383", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "907016fbfdf03af4c9360dc21a18c005d2f67e8748b5dc9649f2b6654cf58383", kill_on_drop: false }` [INFO] [stdout] 907016fbfdf03af4c9360dc21a18c005d2f67e8748b5dc9649f2b6654cf58383 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2e2af9830588841562baf0af7a1c7b4750757af8e3678367d9d3d3a6a1699b63 [INFO] running `Command { std: "docker" "start" "-a" "2e2af9830588841562baf0af7a1c7b4750757af8e3678367d9d3d3a6a1699b63", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling clap_builder v4.5.59 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling clap v4.5.59 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling ftui-core v0.2.1 [INFO] [stderr] Compiling proptest v1.10.0 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling ftui-render v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Compiling criterion v0.8.2 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 45.58s [INFO] running `Command { std: "docker" "inspect" "2e2af9830588841562baf0af7a1c7b4750757af8e3678367d9d3d3a6a1699b63", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e2af9830588841562baf0af7a1c7b4750757af8e3678367d9d3d3a6a1699b63", kill_on_drop: false }` [INFO] [stdout] 2e2af9830588841562baf0af7a1c7b4750757af8e3678367d9d3d3a6a1699b63 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 8b20ed6e041d1135761cfad032ebb29c63f51daf6e626c4f1a129d0dbd0532af [INFO] running `Command { std: "docker" "start" "-a" "8b20ed6e041d1135761cfad032ebb29c63f51daf6e626c4f1a129d0dbd0532af", 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/ftui_render-bc4f8288e1149156) [INFO] [stdout] [INFO] [stdout] running 1733 tests [INFO] [stdout] test alloc_budget::tests::config_default_field_values ... ok [INFO] [stdout] test alloc_budget::tests::config_debug_contains_fields ... ok [INFO] [stdout] test alloc_budget::tests::evalue_starts_at_one_and_stays_during_warmup ... ok [INFO] [stdout] test alloc_budget::tests::evidence_entry_clone_is_independent ... ok [INFO] [stdout] test alloc_budget::tests::evidence_entry_debug_format ... ok [INFO] [stdout] test alloc_budget::tests::infinity_input_does_not_panic ... ok [INFO] [stdout] test alloc_budget::tests::jsonl_contains_e_value_key ... ok [INFO] [stdout] test alloc_budget::tests::lcg_different_seeds_differ ... ok [INFO] [stdout] test alloc_budget::tests::jsonl_field_values_accurate ... ok [INFO] [stdout] test alloc_budget::tests::lcg_is_deterministic ... ok [INFO] [stdout] test alloc_budget::tests::leak_alert_clone ... ok [INFO] [stdout] test alloc_budget::tests::leak_alert_debug ... ok [INFO] [stdout] test alloc_budget::tests::constant_input_no_trigger ... ok [INFO] [stdout] test alloc_budget::tests::leak_alert_no_alert_fields ... ok [INFO] [stdout] test alloc_budget::tests::detection_speed_proportional_to_shift ... ok [INFO] [stdout] test alloc_budget::tests::cusum_detects_downward_shift ... ok [INFO] [stdout] test alloc_budget::tests::e2e_stable_run_no_alerts ... ok [INFO] [stdout] test alloc_budget::tests::cusum_lower_accessor_matches_alert ... ok [INFO] [stdout] test alloc_budget::tests::both_detectors_can_trigger_simultaneously ... ok [INFO] [stdout] test alloc_budget::tests::ledger_entries_have_sequential_frames ... ok [INFO] [stdout] test alloc_budget::tests::ledger_entry_mean_estimate_converges ... ok [INFO] [stdout] test alloc_budget::tests::ledger_entry_sigma_estimate_is_positive ... ok [INFO] [stdout] test alloc_budget::tests::e2e_synthetic_leak_detected ... ok [INFO] [stdout] test alloc_budget::tests::eprocess_value_bounded_under_null ... ok [INFO] [stdout] test alloc_budget::tests::frames_increments_per_observe ... ok [INFO] [stdout] test alloc_budget::tests::eprocess_grows_under_sustained_shift ... ok [INFO] [stdout] test alloc_budget::tests::lcg_next_normal_centered ... ok [INFO] [stdout] test alloc_budget::tests::detector_debug_format ... ok [INFO] [stdout] test alloc_budget::tests::cusum_recovers_after_transient_spike ... ok [INFO] [stdout] test alloc_budget::tests::high_alpha_triggers_more_easily ... ok [INFO] [stdout] test alloc_budget::tests::negative_infinity_input_does_not_panic ... ok [INFO] [stdout] test alloc_budget::tests::nan_input_does_not_panic ... ok [INFO] [stdout] test alloc_budget::tests::negative_observations_work ... ok [INFO] [stdout] test alloc_budget::tests::new_detector_starts_clean ... ok [INFO] [stdout] test alloc_budget::tests::ledger_jsonl_valid ... ok [INFO] [stdout] test alloc_budget::tests::reset_clears_cusum_lower ... ok [INFO] [stdout] test alloc_budget::tests::ledger_residuals_sum_near_zero_under_null ... ok [INFO] [stdout] test alloc_budget::tests::ledger_records_all_frames ... ok [INFO] [stdout] test alloc_budget::tests::oscillating_values_no_trigger ... ok [INFO] [stdout] test alloc_budget::tests::mean_tracks_input ... ok [INFO] [stdout] test alloc_budget::tests::reset_clears_state ... ok [INFO] [stdout] test alloc_budget::tests::config_clone_is_independent ... ok [INFO] [stdout] test alloc_budget::tests::reset_then_reuse_works ... ok [INFO] [stdout] test alloc_budget::tests::sigma_floor_prevents_explosion ... ok [INFO] [stdout] test alloc_budget::tests::sigma_respects_floor ... ok [INFO] [stdout] test alloc_budget::tests::threshold_is_inverse_alpha ... ok [INFO] [stdout] test alloc_budget::tests::small_lambda_accumulates_slower ... ok [INFO] [stdout] test alloc_budget::tests::single_observation ... ok [INFO] [stdout] test alloc_budget::tests::very_large_values_no_panic ... ok [INFO] [stdout] test alloc_budget::tests::zero_input_no_panic ... ok [INFO] [stdout] test alloc_budget::tests::unit_cusum_detects_shift ... ok [INFO] [stdout] test ansi::tests::all_dynamic_sequences_start_with_esc ... ok [INFO] [stdout] test alloc_budget::tests::unit_eprocess_threshold ... ok [INFO] [stdout] test alloc_budget::tests::stable_run_no_alert ... ok [INFO] [stdout] test alloc_budget::tests::warmup_does_not_trigger ... ok [INFO] [stdout] test ansi::tests::alt_screen ... ok [INFO] [stdout] test alloc_budget::tests::warmup_ledger_entries_have_zero_cusum ... ok [INFO] [stdout] test ansi::tests::bracketed_paste ... ok [INFO] [stdout] test alloc_budget::tests::very_small_values_no_panic ... ok [INFO] [stdout] test ansi::tests::cup_1_indexed ... ok [INFO] [stdout] test ansi::tests::cha_1_indexed ... ok [INFO] [stdout] test ansi::tests::cup_max_u16 ... ok [INFO] [stdout] test ansi::tests::cr_emits_carriage_return ... ok [INFO] [stdout] test alloc_budget::tests::welford_mean_matches_exact_mean ... ok [INFO] [stdout] test ansi::tests::all_sequences_are_ascii ... ok [INFO] [stdout] test alloc_budget::tests::warmup_zero_frames ... ok [INFO] [stdout] test alloc_budget::tests::warmup_boundary_exact ... ok [INFO] [stdout] test ansi::tests::cha_max_u16 ... ok [INFO] [stdout] test ansi::tests::cursor_relative_moves ... ok [INFO] [stdout] test ansi::tests::cursor_relative_zero_is_noop ... ok [INFO] [stdout] test ansi::tests::cursor_save_restore ... ok [INFO] [stdout] test ansi::tests::cursor_up_max ... ok [INFO] [stdout] test ansi::tests::focus_mode ... ok [INFO] [stdout] test ansi::tests::hyperlink_basic ... ok [INFO] [stdout] test ansi::tests::hyperlink_empty_url ... ok [INFO] [stdout] test ansi::tests::hyperlink_rejects_control_chars ... ok [INFO] [stdout] test ansi::tests::hyperlink_rejects_overlong_fields ... ok [INFO] [stdout] test ansi::tests::hyperlink_with_empty_id ... ok [INFO] [stdout] test ansi::tests::mouse_mode ... ok [INFO] [stdout] test ansi::tests::scroll_region_1_indexed ... ok [INFO] [stdout] test ansi::tests::osc_sequences_are_terminated ... ok [INFO] [stdout] test ansi::tests::scroll_region_reset ... ok [INFO] [stdout] test ansi::tests::scroll_region_same_top_bottom ... ok [INFO] [stdout] test ansi::tests::sgr_bg_16_boundary_7_to_8 ... ok [INFO] [stdout] test ansi::tests::sgr_bg_16_normal ... ok [INFO] [stdout] test ansi::tests::sgr_bg_16_last_bright ... ok [INFO] [stdout] test ansi::tests::sgr_bg_256_bytes ... ok [INFO] [stdout] test ansi::tests::sgr_bg_16_bright ... ok [INFO] [stdout] test ansi::tests::sgr_bg_256_zero ... ok [INFO] [stdout] test ansi::tests::sgr_bg_packed_opaque ... ok [INFO] [stdout] test ansi::tests::sgr_bg_256_max ... ok [INFO] [stdout] test ansi::tests::hyperlink_with_id_rejects_parameter_breakout ... ok [INFO] [stdout] test ansi::tests::sgr_code_single_digit ... ok [INFO] [stdout] test ansi::tests::erase_line_modes ... ok [INFO] [stdout] test ansi::tests::sgr_bg_rgb_bytes ... ok [INFO] [stdout] test ansi::tests::sgr_code_max_u8 ... ok [INFO] [stdout] test ansi::tests::hyperlink_with_id ... ok [INFO] [stdout] test ansi::tests::sgr_code_three_digits ... ok [INFO] [stdout] test ansi::tests::sgr_code_two_digits ... ok [INFO] [stdout] test ansi::tests::sgr_code_zero ... ok [INFO] [stdout] test ansi::tests::sgr_codes_for_all_single_flags ... ok [INFO] [stdout] test ansi::tests::sgr_codes_for_composite_flag_returns_none ... ok [INFO] [stdout] test ansi::tests::sgr_codes_for_empty_flag_returns_none ... ok [INFO] [stdout] test ansi::tests::erase_display_modes ... ok [INFO] [stdout] test ansi::tests::sgr_codes_for_flag_matches_flag_table_entries ... ok [INFO] [stdout] test ansi::tests::lf_emits_line_feed ... ok [INFO] [stdout] test ansi::tests::sgr_flags_bold ... ok [INFO] [stdout] test ansi::tests::sgr_fg_16_normal ... ok [INFO] [stdout] test ansi::tests::sgr_fg_16_first_color ... ok [INFO] [stdout] test ansi::tests::sgr_flags_empty ... ok [INFO] [stdout] test ansi::tests::sgr_fg_16_boundary_7_to_8 ... ok [INFO] [stdout] test ansi::tests::sgr_flags_multiple ... ok [INFO] [stdout] test ansi::tests::sgr_fg_256_zero ... ok [INFO] [stdout] test ansi::tests::sgr_flags_all_eight ... ok [INFO] [stdout] test ansi::tests::sgr_flags_each_single_flag_fast_path ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_blink ... ok [INFO] [stdout] test ansi::tests::cursor_visibility ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_bold_collateral_dim ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_dim_collateral_bold ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_empty_is_noop ... ok [INFO] [stdout] test ansi::tests::sgr_fg_256_bytes ... ok [INFO] [stdout] test ansi::tests::sgr_fg_256_max ... ok [INFO] [stdout] test ansi::tests::sgr_default_colors ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_bold_and_dim_together ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_hidden ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_reverse ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_each_single_flag_fast_path ... ok [INFO] [stdout] test ansi::tests::sgr_fg_16_bright ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_bold_dim_with_dim_kept ... ok [INFO] [stdout] test ansi::tests::sgr_fg_rgb_bytes ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_italic ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_multi_no_bold_dim_overlap ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_overlap_keep_and_disable_does_not_report_collateral ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_single_bold ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_strikethrough ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_single_dim ... ok [INFO] [stdout] test ansi::tests::sgr_flags_off_underline ... ok [INFO] [stdout] test ansi::tests::sgr_packed_transparent_uses_default ... ok [INFO] [stdout] test ansi::tests::sgr_reset_bytes ... ok [INFO] [stdout] test arena::tests::alloc_slice_copies_correctly ... ok [INFO] [stdout] test ansi::tests::sgr_packed_opaque ... ok [INFO] [stdout] test ansi::tests::sync_output ... ok [INFO] [stdout] test arena::tests::alloc_returns_mutable_ref ... ok [INFO] [stdout] test arena::tests::alloc_slice_empty ... ok [INFO] [stdout] test arena::tests::alloc_str_returns_correct_content ... ok [INFO] [stdout] test arena::tests::alloc_with_constructs_value ... ok [INFO] [stdout] test arena::tests::allocated_bytes_tracks_usage ... ok [INFO] [stdout] test arena::tests::as_bump_provides_access ... ok [INFO] [stdout] test arena::tests::debug_impl ... ok [INFO] [stdout] test arena::tests::arena_grows_beyond_initial_capacity ... ok [INFO] [stdout] test arena::tests::new_creates_arena_with_capacity ... ok [INFO] [stdout] test arena::tests::default_uses_256kb ... ok [INFO] [stdout] test arena::tests::reset_allows_reuse ... ok [INFO] [stdout] test arena::tests::multiple_allocations_coexist ... ok [INFO] [stdout] test arena::tests::alloc_str_unicode ... ok [INFO] [stdout] test budget::tests::config_defaults ... ok [INFO] [stdout] test arena::tests::reset_then_heavy_reuse ... ok [INFO] [stdout] test budget::tests::config_relaxed ... ok [INFO] [stdout] test budget::tests::config_strict ... ok [INFO] [stdout] test budget::tests::controller_tests::budget_decision_equality ... ok [INFO] [stdout] test arena::tests::alloc_slice_u8 ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_config_default_valid ... ok [INFO] [stdout] test arena::tests::alloc_str_empty ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_cooldown_prevents_oscillation ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_degrades_under_sustained_overload ... ok [INFO] [stdout] test budget::tests::config_with_total ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_never_goes_below_full ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_no_oscillation_under_constant_load ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_transient_spike_does_not_degrade ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_config_default_valid ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_upgrades_after_recovery ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_holds_under_normal_load ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_gate_blocks_during_warmup ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_reset_restores_full_quality ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_grows_under_overload ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_recovery_after_overload ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_shrinks_under_underload ... ok [INFO] [stdout] test budget::tests::controller_tests::controller_never_exceeds_skip_frame ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_reset_returns_to_initial ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_sigma_floor_prevents_instability ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_gate_allows_after_warmup ... ok [INFO] [stdout] test budget::tests::controller_tests::eprocess_starts_at_one ... ok [INFO] [stdout] test budget::tests::controller_tests::pid_integral_accumulates ... ok [INFO] [stdout] test budget::tests::controller_tests::pid_gains_default_valid ... ok [INFO] [stdout] test budget::tests::controller_tests::pid_integral_anti_windup ... ok [INFO] [stdout] test budget::tests::controller_tests::pid_derivative_responds_to_change ... ok [INFO] [stdout] test budget::tests::controller_tests::pid_step_input_yields_nonzero_output ... ok [INFO] [stdout] test budget::tests::cooldown_prevents_immediate_upgrade ... ok [INFO] [stdout] test budget::tests::controller_tests::pid_zero_error_zero_output ... ok [INFO] [stdout] test budget::tests::degradation_level_as_str ... ok [INFO] [stdout] test budget::tests::controller_tests::pid_settling_after_step ... ok [INFO] [stdout] test budget::tests::controller_tests::pid_reset_clears_state ... ok [INFO] [stdout] test budget::tests::degrade_advances_level ... ok [INFO] [stdout] test budget::tests::edge_case_tests::budget_controller_config_partial_eq ... ok [INFO] [stdout] test budget::tests::edge_case_tests::budget_decision_debug_format ... ok [INFO] [stdout] test budget::tests::edge_case_tests::budget_decision_clone_copy ... ok [INFO] [stdout] test budget::tests::edge_case_tests::budget_telemetry_debug ... ok [INFO] [stdout] test budget::tests::edge_case_tests::budget_telemetry_partial_eq ... ok [INFO] [stdout] test budget::tests::budget_remaining_decreases ... ok [INFO] [stdout] test budget::tests::edge_case_tests::controller_config_accessor ... ok [INFO] [stdout] test budget::tests::edge_case_tests::controller_at_full_level_no_upgrade ... ok [INFO] [stdout] test budget::tests::budget_remaining_never_negative ... ok [INFO] [stdout] test budget::tests::degradation_level_ordering ... ok [INFO] [stdout] test budget::tests::edge_case_tests::controller_frames_observed_accessor ... ok [INFO] [stdout] test budget::tests::edge_case_tests::controller_at_max_degradation_holds ... ok [INFO] [stdout] test budget::tests::edge_case_tests::controller_pid_integral_accessor ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_default_is_full ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_widget_queries_essential_only ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_widget_queries_full ... ok [INFO] [stdout] test budget::tests::degradation_level_is_full ... ok [INFO] [stdout] test budget::tests::degradation_level_is_max ... ok [INFO] [stdout] test budget::tests::degradation_level_never_exceeds_skip_frame ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_widget_queries_simple_borders ... ok [INFO] [stdout] test budget::tests::degradation_level_values ... ok [INFO] [stdout] test budget::tests::edge_case_tests::budget_decision_as_str_coverage ... ok [INFO] [stdout] test budget::tests::edge_case_tests::controller_e_value_accessor ... ok [INFO] [stdout] test budget::tests::edge_case_tests::controller_eprocess_sigma_ms_uses_floor ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_clone_eq ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_debug ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_widget_queries_skeleton ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_widget_queries_skip_frame ... ok [INFO] [stdout] test budget::tests::degradation_level_next ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_config_partial_eq ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_frames_observed_saturates ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_should_upgrade_during_warmup ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_sigma_ema_decay_boundary_one ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_sigma_ema_decay_boundary_zero ... ok [INFO] [stdout] test budget::tests::degradation_level_prev ... ok [INFO] [stdout] test budget::tests::edge_case_tests::frame_budget_config_partial_eq ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_hash_unique ... ok [INFO] [stdout] test budget::tests::edge_case_tests::next_frame_without_recorded_time_uses_elapsed ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_e_value_clamped_at_lower_bound ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_zero_target_no_panic ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_partial_ord_consistent ... ok [INFO] [stdout] test budget::tests::edge_case_tests::degradation_level_widget_queries_no_styling ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_e_value_clamped_at_upper_bound ... ok [INFO] [stdout] test budget::tests::edge_case_tests::eprocess_first_frame_initializes_mean ... ok [INFO] [stdout] test budget::tests::edge_case_tests::phase_eq_and_hash ... ok [INFO] [stdout] test budget::tests::edge_case_tests::pid_alternating_error_derivative_responds ... ok [INFO] [stdout] test budget::tests::edge_case_tests::pid_gains_partial_eq ... ok [INFO] [stdout] test budget::tests::edge_case_tests::phase_budgets_eq_and_copy ... ok [INFO] [stdout] test budget::tests::edge_case_tests::pid_integral_clamping_symmetric ... ok [INFO] [stdout] test budget::tests::edge_case_tests::pid_large_error_stays_finite ... ok [INFO] [stdout] test budget::tests::edge_case_tests::phase_clone_copy ... ok [INFO] [stdout] test budget::tests::edge_case_tests::pid_negative_integral_windup ... ok [INFO] [stdout] test budget::tests::edge_case_tests::phase_debug ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_exhausted_skipframe_with_no_frame_skip ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_full_degrade_cycle_with_controller ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_phase_budgets_accessor ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_should_upgrade_false_at_full ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_should_upgrade_false_during_cooldown ... ok [INFO] [stdout] test budget::tests::exhausted_at_skip_frame ... ok [INFO] [stdout] test budget::tests::from_config ... ok [INFO] [stdout] test budget::tests::infinite_budget_stays_at_full ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_remaining_fraction_zero_total ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_set_degradation_no_op_preserves_cooldown ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_total_accessor ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_upgrade_at_full_stays_at_full ... ok [INFO] [stdout] test budget::tests::edge_case_tests::pid_telemetry_terms_match_after_update ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_degrade_at_max_stays_at_max ... ok [INFO] [stdout] test budget::tests::edge_case_tests::pid_zero_gains_zero_output ... ok [INFO] [stdout] test budget::tests::integration_tests::next_frame_delegates_to_controller_when_attached ... ok [INFO] [stdout] test budget::tests::integration_tests::controller_next_frame_degrades_under_simulated_overload ... ok [INFO] [stdout] test budget::tests::integration_tests::controller_telemetry_tracks_frames_since_change ... ok [INFO] [stdout] test budget::tests::integration_tests::telemetry_is_copy_and_no_alloc ... ok [INFO] [stdout] test budget::tests::integration_tests::telemetry_last_decision_reflects_controller_decision ... ok [INFO] [stdout] test budget::tests::integration_tests::render_budget_with_controller_returns_telemetry ... ok [INFO] [stdout] test budget::tests::integration_tests::telemetry_fields_update_after_next_frame ... ok [INFO] [stdout] test budget::tests::phase_as_str ... ok [INFO] [stdout] test budget::tests::phase_budget_respects_remaining ... ok [INFO] [stdout] test budget::tests::integration_tests::perf_overhead_controller_update_is_fast ... ok [INFO] [stdout] test budget::tests::next_frame_upgrades_when_possible ... ok [INFO] [stdout] test budget::tests::integration_tests::telemetry_warmup_flag_transitions ... ok [INFO] [stdout] test budget::tests::integration_tests::phase_sub_budget_does_not_carry_controller ... ok [INFO] [stdout] test budget::tests::integration_tests::perf_overhead_telemetry_snapshot_is_fast ... ok [INFO] [stdout] test budget::tests::phase_budgets_default ... ok [INFO] [stdout] test budget::tests::integration_tests::render_budget_without_controller_returns_no_telemetry ... ok [INFO] [stdout] test budget::tests::set_degradation_resets_cooldown ... ok [INFO] [stdout] test budget::tests::set_degradation_same_level_preserves_cooldown ... ok [INFO] [stdout] test budget::tests::reset_preserves_degradation ... ok [INFO] [stdout] test budget::tests::should_upgrade_with_remaining_budget ... ok [INFO] [stdout] test budget::tests::stability_tests::e2e_burst_logs_no_oscillation ... ok [INFO] [stdout] test budget::tests::phase_has_budget ... ok [INFO] [stdout] test budget::tests::stability_tests::e2e_burst_recovers_after_moderate_overload ... ok [INFO] [stdout] test budget::tests::stability_tests::e2e_idle_to_burst_no_over_degrade ... ok [INFO] [stdout] test budget::tests::stability_tests::property_deterministic_replay ... ok [INFO] [stdout] test budget::tests::stability_tests::e2e_idle_to_burst_recovery ... ok [INFO] [stdout] test budget::tests::stability_tests::telemetry_jsonl_fields_complete ... ok [INFO] [stdout] test budget::tests::stability_tests::telemetry_pid_components_sum_to_output ... ok [INFO] [stdout] test budget::tests::stability_tests::property_random_load_bounded_transitions ... ok [INFO] [stdout] test budget::tests::upgrade_improves_level ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_height_only_growth ... ok [INFO] [stdout] test budget::tests::upgrade_downgrade_symmetric ... ok [INFO] [stdout] test budget::tests::zero_budget_is_immediately_exhausted ... ok [INFO] [stdout] test budget::tests::stability_tests::property_random_load_hysteresis_bounds ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_current_and_previous_distinct ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_logical_bounds ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_memory_efficiency ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_new_has_over_allocation ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_phase_budget_clamped_by_remaining ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_no_change_returns_false ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_elapsed_increases ... ok [INFO] [stdout] test budget::tests::exhausted_when_no_time_left ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_phase_has_budget_exhausted ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_one_dimension_exceeds_capacity ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_no_ghosting_on_shrink ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_resize_avoids_reallocation_when_within_capacity ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_resize_avoids_reallocation_on_minor_shrink ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_resize_idempotent ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_resize_reallocates_on_significant_shrink ... ok [INFO] [stdout] test budget::tests::edge_case_tests::render_budget_record_frame_time_used_by_next_frame ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_resize_reallocates_on_growth_beyond_capacity ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_resize_within_capacity_clears_previous ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_swap_works ... ok [INFO] [stdout] test buffer::tests::adaptive_stats_avoidance_ratio ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_width_only_growth ... ok [INFO] [stdout] test buffer::tests::buffer_copy_from ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_resize_storm_simulation ... ok [INFO] [stdout] test buffer::tests::buffer_bounds ... ok [INFO] [stdout] test buffer::tests::buffer_clear ... ok [INFO] [stdout] test buffer::tests::buffer_fill ... ok [INFO] [stdout] test buffer::tests::buffer_creation ... ok [INFO] [stdout] test buffer::tests::buffer_content_eq ... ok [INFO] [stdout] test buffer::tests::buffer_out_of_bounds_get ... ok [INFO] [stdout] test buffer::tests::buffer_fill_respects_scissor ... ok [INFO] [stdout] test buffer::tests::buffer_out_of_bounds_set_ignored ... ok [INFO] [stdout] test buffer::tests::buffer_get_and_set ... ok [INFO] [stdout] test buffer::tests::buffer_partial_eq_impl ... ok [INFO] [stdout] test buffer::tests::buffer_set_raw_bypasses_scissor ... ok [INFO] [stdout] test buffer::tests::cells_mut_marks_all_dirty ... ok [INFO] [stdout] test buffer::tests::cells_mut_allows_direct_modification ... ok [INFO] [stdout] test buffer::tests::cells_mut_marks_all_full_spans ... ok [INFO] [stdout] test buffer::tests::clear_dirty_resets_bitmap ... ok [INFO] [stdout] test buffer::tests::buffer_is_not_empty ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_stats_reset ... ok [INFO] [stdout] test buffer::tests::clear_dirty_resets_spans ... ok [INFO] [stdout] test buffer::tests::clear_marks_all_dirty ... ok [INFO] [stdout] test buffer::tests::clear_with_fills_all_cells ... ok [INFO] [stdout] test buffer::tests::content_eq_different_dimensions ... ok [INFO] [stdout] test buffer::tests::content_height_empty_is_zero ... ok [INFO] [stdout] test buffer::tests::content_height_tracks_last_non_empty_row ... ok [INFO] [stdout] test buffer::tests::cells_slice_has_correct_length ... ok [INFO] [stdout] test buffer::tests::copy_from_clips_wide_char_at_boundary ... ok [INFO] [stdout] test buffer::tests::copy_from_out_of_bounds_partial ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_no_ghosting_on_reallocation_shrink ... ok [INFO] [stdout] test buffer::tests::default_buffer_dimensions ... ok [INFO] [stdout] test buffer::tests::degradation_level_accessible ... ok [INFO] [stdout] test buffer::tests::dirty_bitmap_dedupes_cells ... ok [INFO] [stdout] test buffer::tests::dirty_bitmap_starts_full ... ok [INFO] [stdout] test buffer::tests::dirty_bitmap_tracks_single_cell ... ok [INFO] [stdout] test buffer::tests::dirty_clear_between_frames ... ok [INFO] [stdout] test buffer::tests::dirty_rows_slice_length_matches_height ... ok [INFO] [stdout] test buffer::tests::dirty_rows_start_dirty ... ok [INFO] [stdout] test buffer::tests::dirty_span_bounds_clamping ... ok [INFO] [stdout] test buffer::tests::dirty_span_config_disabled_skips_rows ... ok [INFO] [stdout] test buffer::tests::dirty_span_empty_span_is_ignored ... ok [INFO] [stdout] test buffer::tests::dirty_span_guard_band_clamps_bounds ... ok [INFO] [stdout] test buffer::tests::dirty_span_guard_band_expands_span_bounds ... ok [INFO] [stdout] test buffer::tests::dirty_span_max_spans_overflow_triggers_full_row ... ok [INFO] [stdout] test buffer::tests::dirty_span_merge_adjacent ... ok [INFO] [stdout] test buffer::tests::dirty_span_merge_overlapping ... ok [INFO] [stdout] test buffer::tests::dirty_span_merge_with_gap ... ok [INFO] [stdout] test buffer::tests::dirty_span_no_merge_large_gap ... ok [INFO] [stdout] test buffer::tests::dirty_span_overflow_to_full ... ok [INFO] [stdout] test buffer::tests::clear_dirty_resets_flags ... ok [INFO] [stdout] test buffer::tests::dirty_span_stats_counts_full_rows_and_spans ... ok [INFO] [stdout] test buffer::tests::dirty_span_stats_reports_overflow_and_full_row ... ok [INFO] [stdout] test buffer::tests::dirty_spans_start_full_dirty ... ok [INFO] [stdout] test buffer::tests::double_buffer_current_and_previous_are_distinct ... ok [INFO] [stdout] test buffer::tests::double_buffer_new_has_matching_dimensions ... ok [INFO] [stdout] test buffer::tests::double_buffer_resize_changes_dimensions ... ok [INFO] [stdout] test buffer::tests::double_buffer_resize_clears_content ... ok [INFO] [stdout] test buffer::tests::fill_marks_affected_rows_dirty ... ok [INFO] [stdout] test buffer::tests::fill_full_row_marks_full_span ... ok [INFO] [stdout] test buffer::tests::double_buffer_swap_is_o1 ... ok [INFO] [stdout] test buffer::tests::double_buffer_swap_round_trip ... ok [INFO] [stdout] test buffer::tests::get_mut_records_dirty_span ... ok [INFO] [stdout] test buffer::tests::opacity_applied_to_cells ... ok [INFO] [stdout] test buffer::tests::get_mut_modifies_cell ... ok [INFO] [stdout] test buffer::tests::get_mut_out_of_bounds ... ok [INFO] [stdout] test buffer::tests::opacity_base_cannot_be_popped ... ok [INFO] [stdout] test buffer::tests::opacity_clamped ... ok [INFO] [stdout] test buffer::tests::opacity_stack_basic ... ok [INFO] [stdout] test buffer::tests::overwrite_continuation_with_single_clears_head_and_tails ... ok [INFO] [stdout] test buffer::tests::opacity_composites_background_before_storage ... ok [INFO] [stdout] test buffer::tests::overwrite_empty_cell_no_cleanup_needed ... ok [INFO] [stdout] test buffer::tests::out_of_bounds_set_does_not_dirty ... ok [INFO] [stdout] test budget::tests::next_frame_prefers_recorded_frame_time_for_upgrade ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_no_ghosting_on_growth_reallocation ... ok [INFO] [stdout] test buffer::tests::overwrite_continuation_middle_of_wide_sequence ... ok [INFO] [stdout] test buffer::tests::overwrite_wide_with_another_wide ... ok [INFO] [stdout] test buffer::tests::get_mut_marks_row_dirty ... ok [INFO] [stdout] test buffer::tests::overwrite_wide_head_with_single_clears_tails ... ok [INFO] [stdout] test budget::tests::budget_remaining_fraction ... ok [INFO] [stdout] test buffer::tests::property::content_eq_is_reflexive ... ok [INFO] [stdout] test alloc_budget::tests::property_fpr_control ... ok [INFO] [stdout] test budget::tests::should_degrade_when_cost_exceeds_remaining ... ok [INFO] [stdout] test buffer::tests::property::clear_resets_all_cells ... ok [INFO] [stdout] test buffer::tests::property::buffer_get_out_of_bounds_returns_none ... ok [INFO] [stdout] test buffer::tests::property::cells_len_invariant_always_holds ... ok [INFO] [stdout] test buffer::tests::property::buffer_set_get_roundtrip ... ok [INFO] [stdout] test buffer::tests::property::content_eq_detects_single_change ... ok [INFO] [stdout] test buffer::tests::property::double_buffer_swap_content_semantics ... ok [INFO] [stdout] test buffer::tests::property::dimensions_immutable_through_operations ... ok [INFO] [stdout] test buffer::tests::property::double_buffer_current_previous_disjoint ... ok [INFO] [stdout] test buffer::tests::property::opacity_stack_always_has_base ... ok [INFO] [stdout] test buffer::tests::property::opacity_clamp_out_of_range ... ok [INFO] [stdout] test buffer::tests::property::opacity_multiplication_is_monotonic ... ok [INFO] [stdout] test buffer::tests::property::opacity_range_invariant_random_sequence ... ok [INFO] [stdout] test buffer::tests::property::scissor_stack_always_has_base ... ok [INFO] [stdout] test buffer::tests::property::opacity_push_pop_stack_depth ... ok [INFO] [stdout] test buffer::tests::property::double_buffer_resize_clears_both ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_capacity_clamped_for_large_sizes ... ok [INFO] [stdout] test buffer::tests::rect_contains ... ok [INFO] [stdout] test buffer::tests::rect_intersection ... ok [INFO] [stdout] test buffer::tests::property_dirty_soundness ... ok [INFO] [stdout] test buffer::tests::property::scissor_push_pop_stack_depth ... ok [INFO] [stdout] test buffer::tests::row_cells_returns_correct_row ... ok [INFO] [stdout] test buffer::tests::scissor_base_cannot_be_popped ... ok [INFO] [stdout] test buffer::tests::scissor_intersection ... ok [INFO] [stdout] test buffer::tests::scissor_stack_basic ... ok [INFO] [stdout] test buffer::tests::set_composites_background ... ok [INFO] [stdout] test buffer::tests::property::double_buffer_swap_is_involution ... ok [INFO] [stdout] test buffer::tests::set_fast_matches_set_for_opaque_bg ... ok [INFO] [stdout] test buffer::tests::set_fast_matches_set_for_transparent_bg ... ok [INFO] [stdout] test buffer::tests::set_handles_wide_chars_clipped ... ok [INFO] [stdout] test buffer::tests::set_marks_row_dirty ... ok [INFO] [stdout] test buffer::tests::set_merges_adjacent_spans ... ok [INFO] [stdout] test buffer::tests::set_merges_close_spans ... ok [INFO] [stdout] test buffer::tests::set_raw_marks_row_dirty ... ok [INFO] [stdout] test buffer::tests::set_raw_out_of_bounds_is_safe ... ok [INFO] [stdout] test buffer::tests::set_records_dirty_span ... ok [INFO] [stdout] test buffer::tests::span_overflow_sets_full_row ... ok [INFO] [stdout] test buffer::tests::wide_char_at_end_of_buffer_atomic_reject ... ok [INFO] [stdout] test buffer::tests::wide_char_cleanup_with_opacity ... ok [INFO] [stdout] test buffer::tests::wide_char_continuation_not_treated_as_head ... ok [INFO] [stdout] test buffer::tests::wide_char_fill_region ... ok [INFO] [stdout] test buffer::tests::wide_char_overlapping_previous_wide_char ... ok [INFO] [stdout] test buffer::tests::set_handles_wide_chars ... ok [INFO] [stdout] test buffer::tests::three_wide_chars_sequential_cleanup ... ok [INFO] [stdout] test buffer::tests::property::set_outside_scissor_is_noop ... ok [INFO] [stdout] test cell::cell_proptests::cell_bits_eq_detects_fg_difference ... ok [INFO] [stdout] test buffer::tests::property::wide_char_atomic_rejection_at_boundary ... ok [INFO] [stdout] test buffer::tests::adaptive_buffer_invariant_resize_dimensions_correct ... ok [INFO] [stdout] test cell::cell_proptests::cell_attrs_flags_roundtrip ... ok [INFO] [stdout] test buffer::tests::property::scissor_area_never_increases_random_rects ... ok [INFO] [stdout] test cell::cell_proptests::cell_attrs_with_link_preserves_flags ... ok [INFO] [stdout] test cell::cell_proptests::cell_content_continuation_has_zero_width ... ok [INFO] [stdout] test cell::cell_proptests::cell_content_empty_has_zero_width ... ok [INFO] [stdout] test buffer::tests::property::wide_char_overwrites_cleanup_tails ... ok [INFO] [stdout] test cell::cell_proptests::cell_default_is_empty ... ok [INFO] [stdout] test cell::cell_proptests::cell_attrs_with_flags_preserves_link ... ok [INFO] [stdout] test buffer::tests::buffer_zero_height_panics - should panic ... ok [INFO] [stdout] test buffer::tests::row_cells_out_of_bounds_panics - should panic ... ok [INFO] [stdout] test buffer::tests::buffer_zero_width_panics - should panic ... ok [INFO] [stdout] test cell::cell_proptests::cell_bits_eq_is_reflexive ... ok [INFO] [stdout] test cell::cell_proptests::grapheme_id_slot_width_roundtrip ... ok [INFO] [stdout] test cell::cell_proptests::cell_content_bit31_discriminates ... ok [INFO] [stdout] test cell::cell_proptests::cell_bits_eq_is_symmetric ... ok [INFO] [stdout] test cell::tests::cell_all_builder_methods_chain ... ok [INFO] [stdout] test cell::tests::cell_alignment_is_16 ... ok [INFO] [stdout] test cell::tests::cell_attrs_all_flags_combined ... ok [INFO] [stdout] test cell::tests::cell_attrs_all_flags_max_link ... ok [INFO] [stdout] test cell::tests::cell_attrs_chained_mutations ... ok [INFO] [stdout] test cell::tests::cell_attrs_each_flag_isolated ... ok [INFO] [stdout] test cell::tests::cell_attrs_flag_combinations_work ... ok [INFO] [stdout] test cell::tests::cell_attrs_is_4_bytes ... ok [INFO] [stdout] test buffer::tests::property::scissor_monotonic_intersection ... ok [INFO] [stdout] test cell::tests::cell_attrs_link_id_max_boundary ... ok [INFO] [stdout] test cell::tests::cell_attrs_link_id_masks_overflow ... ok [INFO] [stdout] test cell::cell_proptests::packed_rgba_over_identity_transparent ... ok [INFO] [stdout] test cell::cell_proptests::cell_from_char_width_matches_unicode ... ok [INFO] [stdout] test cell::tests::cell_attrs_default_is_none ... ok [INFO] [stdout] test cell::tests::cell_attrs_none_has_no_flags_and_no_link ... ok [INFO] [stdout] test cell::tests::cell_attrs_size_invariant ... ok [INFO] [stdout] test cell::tests::cell_attrs_link_id_zero ... ok [INFO] [stdout] test cell::tests::cell_attrs_new_stores_flags_and_link ... ok [INFO] [stdout] test cell::tests::cell_attrs_link_id_none_is_zero ... ok [INFO] [stdout] test cell::tests::cell_attrs_with_flags_to_empty ... ok [INFO] [stdout] test cell::cell_proptests::grapheme_id_raw_roundtrip ... ok [INFO] [stdout] test cell::tests::cell_attrs_with_link_preserves_flags ... ok [INFO] [stdout] test cell::tests::cell_attrs_with_link_to_none ... ok [INFO] [stdout] test cell::tests::cell_attrs_with_flags_preserves_link_id ... ok [INFO] [stdout] test cell::tests::cell_bits_eq_detects_attrs_difference ... ok [INFO] [stdout] test cell::tests::cell_bits_eq_detects_bg_difference ... ok [INFO] [stdout] test cell::tests::cell_bits_eq_different_cells ... ok [INFO] [stdout] test cell::tests::cell_bits_eq_same_cells ... ok [INFO] [stdout] test cell::tests::cell_builder_methods ... ok [INFO] [stdout] test cell::tests::cell_content_as_char_none_for_continuation ... ok [INFO] [stdout] test cell::tests::cell_content_as_char_none_for_empty ... ok [INFO] [stdout] test cell::tests::cell_content_as_char_none_for_grapheme ... ok [INFO] [stdout] test cell::tests::cell_content_bmp_boundary_chars ... ok [INFO] [stdout] test cell::tests::cell_content_continuation_properties ... ok [INFO] [stdout] test cell::cell_proptests::cell_content_char_roundtrip ... ok [INFO] [stdout] test buffer::tests::property::double_buffer_resize_preserves_invariant ... ok [INFO] [stdout] test cell::cell_proptests::packed_rgba_over_identity_opaque ... ok [INFO] [stdout] test cell::cell_proptests::packed_rgba_roundtrips_all_components ... ok [INFO] [stdout] test cell::cell_proptests::packed_rgba_rgb_always_opaque ... ok [INFO] [stdout] test cell::tests::cell_content_continuation_value_is_max_i31 ... ok [INFO] [stdout] test cell::tests::cell_content_debug_char ... ok [INFO] [stdout] test cell::tests::cell_content_debug_continuation ... ok [INFO] [stdout] test cell::tests::cell_content_debug_empty ... ok [INFO] [stdout] test cell::tests::cell_content_debug_grapheme ... ok [INFO] [stdout] test cell::tests::cell_content_default_is_empty ... ok [INFO] [stdout] test cell::tests::cell_content_empty_and_continuation_are_distinct ... ok [INFO] [stdout] test cell::tests::cell_content_empty_properties ... ok [INFO] [stdout] test buffer::tests::property::buffer_get_in_bounds_always_succeeds ... ok [INFO] [stdout] test cell::tests::cell_content_from_char_ascii ... ok [INFO] [stdout] test cell::tests::cell_content_from_char_unicode ... ok [INFO] [stdout] test cell::tests::cell_content_from_grapheme ... ok [INFO] [stdout] test cell::tests::cell_content_grapheme_id_none_for_char ... ok [INFO] [stdout] test cell::tests::cell_content_grapheme_discriminator_bit ... ok [INFO] [stdout] test cell::tests::cell_content_grapheme_id_none_for_empty ... ok [INFO] [stdout] test cell::tests::cell_content_grapheme_id_strips_high_bit ... ok [INFO] [stdout] test cell::tests::cell_content_grapheme_with_max_width ... ok [INFO] [stdout] test cell::tests::cell_content_grapheme_with_zero_width ... ok [INFO] [stdout] test cell::tests::cell_content_is_4_bytes ... ok [INFO] [stdout] test cell::tests::cell_content_max_unicode_codepoint ... ok [INFO] [stdout] test cell::tests::cell_content_nul_char_equals_empty ... ok [INFO] [stdout] test cell::tests::cell_content_width_control_chars ... ok [INFO] [stdout] test cell::tests::cell_content_raw_value ... ok [INFO] [stdout] test cell::tests::cell_content_width_empty_is_zero ... ok [INFO] [stdout] test cell::tests::cell_content_width_hint_always_1_for_chars ... ok [INFO] [stdout] test cell::tests::cell_continuation_has_transparent_colors ... ok [INFO] [stdout] test cell::tests::cell_content_size_invariant ... ok [INFO] [stdout] test cell::tests::cell_default_properties ... ok [INFO] [stdout] test cell::cell_proptests::cell_content_grapheme_roundtrip ... ok [INFO] [stdout] test cell::tests::cell_eq_matches_bits_eq ... ok [INFO] [stdout] test cell::tests::cell_debug_format ... ok [INFO] [stdout] test cell::tests::cell_from_char ... ok [INFO] [stdout] test cell::tests::cell_is_16_bytes ... ok [INFO] [stdout] test cell::tests::cell_new_vs_from_char ... ok [INFO] [stdout] test cell::tests::cell_is_continuation_for_various ... ok [INFO] [stdout] test cell::tests::cell_new_empty_equals_default ... ok [INFO] [stdout] test cell::tests::cell_content_width_for_chars ... ok [INFO] [stdout] test cell::tests::cell_content_width_for_grapheme ... ok [INFO] [stdout] test cell::tests::cell_from_grapheme_content ... ok [INFO] [stdout] test cell::tests::cell_continuation_constant ... ok [INFO] [stdout] test cell::tests::cell_is_empty_for_various ... ok [INFO] [stdout] test cell::tests::grapheme_id_hash_eq_consistency ... ok [INFO] [stdout] test cell::tests::cell_with_char_preserves_colors_and_attrs ... ok [INFO] [stdout] test cell::tests::cell_size_and_alignment_invariants ... ok [INFO] [stdout] test cell::tests::grapheme_id_adjacent_slots_differ ... ok [INFO] [stdout] test cell::tests::cell_width_hint ... ok [INFO] [stdout] test cell::tests::grapheme_id_max_values ... ok [INFO] [stdout] test cell::tests::cell_width_hint_for_grapheme ... ok [INFO] [stdout] test cell::tests::cell_with_char_on_continuation ... ok [INFO] [stdout] test cell::tests::grapheme_id_default ... ok [INFO] [stdout] test cell::tests::grapheme_id_debug_format ... ok [INFO] [stdout] test cell::tests::grapheme_id_slot_one_width_one ... ok [INFO] [stdout] test cell::tests::grapheme_id_width_isolated_from_slot ... ok [INFO] [stdout] test cell::tests::grapheme_id_is_4_bytes ... ok [INFO] [stdout] test cell::tests::grapheme_id_raw_roundtrip ... ok [INFO] [stdout] test cell::tests::grapheme_id_zero_values ... ok [INFO] [stdout] test cell::tests::grapheme_id_encoding_roundtrip ... ok [INFO] [stdout] test cell::tests::over_both_alpha_1_minimal ... ok [INFO] [stdout] test cell::tests::over_both_partial_alpha_symmetric_colors ... ok [INFO] [stdout] test cell::tests::over_both_transparent_returns_transparent ... ok [INFO] [stdout] test cell::tests::over_matches_reference_for_partial_alpha_cases ... ok [INFO] [stdout] test cell::tests::over_near_opaque_src_alpha_254 ... ok [INFO] [stdout] test cell::tests::over_blends_correctly_for_half_alpha_over_opaque ... ok [INFO] [stdout] test cell::tests::over_partial_alpha_over_transparent_dst ... ok [INFO] [stdout] test cell::tests::over_sweep_matches_reference ... ok [INFO] [stdout] test cell::tests::over_associativity_approximate ... ok [INFO] [stdout] test cell::tests::over_with_opaque_src_returns_src ... ok [INFO] [stdout] test cell::tests::over_with_transparent_src_returns_dst ... ok [INFO] [stdout] test cell::tests::packed_rgba_channel_isolation ... ok [INFO] [stdout] test cell::tests::over_output_alpha_monotonic_with_src_alpha ... ok [INFO] [stdout] test cell::tests::packed_rgba_default_is_transparent ... ok [INFO] [stdout] test cell::tests::over_opaque_self_compositing_is_idempotent ... ok [INFO] [stdout] test cell::tests::packed_rgba_hash_differs_for_different_values ... ok [INFO] [stdout] test cell::tests::over_very_low_alpha ... ok [INFO] [stdout] test cell::tests::over_not_commutative ... ok [INFO] [stdout] test cell::tests::over_white_alpha_0_over_opaque_is_dst ... ok [INFO] [stdout] test cell::tests::packed_rgba_extreme_channel_values ... ok [INFO] [stdout] test cell::tests::packed_rgba_is_4_bytes ... ok [INFO] [stdout] test cell::tests::packed_rgba_named_constants ... ok [INFO] [stdout] test cell::tests::rgba_round_trips_components ... ok [INFO] [stdout] test cell::tests::rgb_sets_alpha_to_255 ... ok [INFO] [stdout] test cell::tests::style_flags_empty_has_no_bits ... ok [INFO] [stdout] test cell::tests::style_flags_from_bits_truncate ... ok [INFO] [stdout] test cell::tests::style_flags_union_and_intersection ... ok [INFO] [stdout] test cell::tests::style_flags_all_has_all_bits ... ok [INFO] [stdout] test cell::tests::with_opacity_exact_zero ... ok [INFO] [stdout] test cell::tests::with_opacity_exact_one ... ok [INFO] [stdout] test cell::tests::with_opacity_nan_clamps_to_zero ... ok [INFO] [stdout] test cell::tests::with_opacity_on_transparent_stays_transparent ... ok [INFO] [stdout] test cell::tests::with_opacity_positive_infinity_clamps_to_original ... ok [INFO] [stdout] test cell::tests::with_opacity_preserves_rgb ... ok [INFO] [stdout] test cell::tests::with_opacity_negative_infinity_clamps_to_zero ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_basic ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_accumulates_u64 ... ok [INFO] [stdout] test counting_writer::tests::constants_values ... ok [INFO] [stdout] test cell::tests::with_opacity_scales_alpha ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_debug ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_initial_state ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_flush ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_inner_mut ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_inner_ref ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_empty_write ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_into_inner_preserves_data ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_into_inner ... ok [INFO] [stdout] test buffer::tests::property::buffer_dimensions_are_preserved ... ok [INFO] [stdout] test cell::tests::cell_default_bits_eq_self ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_multiple_flushes ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_reset ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_write ... ok [INFO] [stdout] test counting_writer::tests::counting_writer_multiple_resets ... ok [INFO] [stdout] test counting_writer::tests::expected_max_bytes_empty ... ok [INFO] [stdout] test counting_writer::tests::full_redraw_budget ... ok [INFO] [stdout] test counting_writer::tests::full_stats_workflow ... ok [INFO] [stdout] test counting_writer::tests::present_stats_bytes_per_cell_fractional ... ok [INFO] [stdout] test counting_writer::tests::expected_max_bytes_calculation ... ok [INFO] [stdout] test counting_writer::tests::present_stats_debug_clone_eq ... ok [INFO] [stdout] test counting_writer::tests::expected_max_bytes_single_cell ... ok [INFO] [stdout] test counting_writer::tests::present_stats_large_values ... ok [INFO] [stdout] test counting_writer::tests::spinner_update_budget ... ok [INFO] [stdout] test counting_writer::tests::present_stats_log_noop ... ok [INFO] [stdout] test counting_writer::tests::stats_bytes_per_cell_zero ... ok [INFO] [stdout] test counting_writer::tests::stats_bytes_per_cell ... ok [INFO] [stdout] test counting_writer::tests::stats_bytes_per_run ... ok [INFO] [stdout] test counting_writer::tests::expected_max_bytes_many_cells_one_run ... ok [INFO] [stdout] test counting_writer::tests::present_stats_bytes_per_run_fractional ... ok [INFO] [stdout] test counting_writer::tests::stats_collector_debug ... ok [INFO] [stdout] test counting_writer::tests::stats_collector_zero_cells_runs ... ok [INFO] [stdout] test counting_writer::tests::stats_collector_immediate_finish ... ok [INFO] [stdout] test counting_writer::tests::stats_collector_basic ... ok [INFO] [stdout] test counting_writer::tests::stats_within_budget_pass ... ok [INFO] [stdout] test counting_writer::tests::status_bar_budget ... ok [INFO] [stdout] test counting_writer::tests::stats_bytes_per_run_zero ... ok [INFO] [stdout] test counting_writer::tests::stats_default ... ok [INFO] [stdout] test counting_writer::tests::stats_within_budget_fail ... ok [INFO] [stdout] test counting_writer::tests::expected_max_bytes_many_runs_few_cells ... ok [INFO] [stdout] test diff::span_edge_cases::test_span_diff_empty_rows ... ok [INFO] [stdout] test counting_writer::tests::present_stats_within_budget_at_exact_boundary ... ok [INFO] [stdout] test diff::tests::bg_only_change_detected ... ok [INFO] [stdout] test diff::tests::block_scan_alignment_exact_block ... ok [INFO] [stdout] test diff::tests::block_scan_alignment_remainder ... ok [INFO] [stdout] test diff::tests::block_scan_full_block_unchanged_skip ... ok [INFO] [stdout] test diff::tests::block_scan_multiple_blocks_sparse ... ok [INFO] [stdout] test diff::tests::block_scan_single_cell_row ... ok [INFO] [stdout] test diff::tests::block_scan_three_cell_row ... ok [INFO] [stdout] test diff::span_edge_cases::test_span_full_row_dirty_overflow ... ok [INFO] [stdout] test diff::tests::block_scan_wide_row_all_changed ... ok [INFO] [stdout] test diff::tests::block_scan_two_cell_row ... ok [INFO] [stdout] test diff::tests::blockwise_scan_preserves_sparse_row_changes ... ok [INFO] [stdout] test diff::tests::buffer_diff_debug_format ... ok [INFO] [stdout] test diff::tests::buffer_diff_clone_preserves_changes ... ok [INFO] [stdout] test diff::tests::buffer_diff_default_is_empty ... ok [INFO] [stdout] test diff::tests::change_run_clone_copy_eq ... ok [INFO] [stdout] test diff::span_edge_cases::test_span_diff_u16_max_width ... ok [INFO] [stdout] test diff::tests::change_run_debug_format ... ok [INFO] [stdout] test diff::tests::change_run_max_u16_values ... ok [INFO] [stdout] test diff::tests::change_run_fields_accessible ... ok [INFO] [stdout] test diff::tests::change_run_len ... ok [INFO] [stdout] test diff::tests::change_run_single_cell_not_empty ... ok [INFO] [stdout] test diff::tests::changes_at_buffer_corners ... ok [INFO] [stdout] test diff::tests::clear_retains_capacity_for_reuse ... ok [INFO] [stdout] test diff::tests::color_changes_detected ... ok [INFO] [stdout] test diff::tests::change_run_ne ... ok [INFO] [stdout] test diff::tests::compute_dirty_into_no_dirty_rows ... ok [INFO] [stdout] test diff::tests::compute_dirty_matches_full_for_single_column_buffer ... ok [INFO] [stdout] test diff::tests::compute_dirty_into_reuse ... ok [INFO] [stdout] test diff::tests::compute_dirty_many_spans_per_row ... ok [INFO] [stdout] test diff::tests::compute_dirty_matches_full_for_single_row_buffer ... ok [INFO] [stdout] test diff::tests::compute_dirty_span_with_false_positive_row ... ok [INFO] [stdout] test diff::tests::compute_dirty_spans_on_multiple_rows ... ok [INFO] [stdout] test diff::tests::compute_dirty_with_targeted_spans ... ok [INFO] [stdout] test diff::tests::compute_into_identical_clears ... ok [INFO] [stdout] test diff::tests::compute_into_replaces_previous_changes ... ok [INFO] [stdout] test diff::tests::compute_dirty_panics_on_width_mismatch - should panic ... ok [INFO] [stdout] test diff::tests::compute_dirty_panics_on_height_mismatch - should panic ... ok [INFO] [stdout] test diff::tests::compute_panics_on_height_mismatch - should panic ... ok [INFO] [stdout] test diff::tests::compute_panics_on_width_mismatch - should panic ... ok [INFO] [stdout] test diff::tests::dense_cells_exact_threshold_triggers_fallback ... ok [INFO] [stdout] test diff::tests::dense_cells_just_below_threshold_passes ... ok [INFO] [stdout] test diff::tests::dense_tiles_exact_threshold_triggers_fallback ... ok [INFO] [stdout] test diff::tests::dense_tiles_just_below_threshold_passes ... ok [INFO] [stdout] test diff::tests::diff_iter ... ok [INFO] [stdout] test diff::tests::dirty_diff_skips_false_positive_rows ... ok [INFO] [stdout] test diff::tests::diff_clear ... ok [INFO] [stdout] test diff::tests::dirty_row_false_positive_skipped ... ok [INFO] [stdout] test diff::tests::empty_diff_when_buffers_identical ... ok [INFO] [stdout] test diff::tests::empty_runs_from_empty_diff ... ok [INFO] [stdout] test diff::tests::full_buffer_change ... ok [INFO] [stdout] test diff::tests::full_diff_marks_all_cells ... ok [INFO] [stdout] test diff::tests::full_diff_runs_one_per_row ... ok [INFO] [stdout] test diff::tests::full_diff_zero_dimensions_runs_empty ... ok [INFO] [stdout] test diff::tests::full_row_major_order ... ok [INFO] [stdout] test diff::tests::full_zero_both_returns_empty ... ok [INFO] [stdout] test diff::tests::full_zero_height_returns_empty ... ok [INFO] [stdout] test diff::tests::full_zero_width_returns_empty ... ok [INFO] [stdout] test diff::proptests::identical_buffers_empty_diff ... ok [INFO] [stdout] test diff::tests::golden_diff_80x24 ... ok [INFO] [stdout] test diff::tests::golden_sparse_update ... ok [INFO] [stdout] test diff::tests::last_tile_stats_none_after_compute_into ... ok [INFO] [stdout] test diff::tests::last_tile_stats_some_after_compute_dirty_into ... ok [INFO] [stdout] test diff::tests::full_single_cell_has_one_change ... ok [INFO] [stdout] test diff::tests::multiple_scattered_changes_detected ... ok [INFO] [stdout] test diff::proptests::diff_contains_only_real_changes ... ok [INFO] [stdout] test diff::tests::e2e_random_scene_replay ... ok [INFO] [stdout] test diff::tests::golden_diff_120x40 ... ok [INFO] [stdout] test diff::tests::row_major_order_preserved ... ok [INFO] [stdout] test diff::tests::row_scan_width_31_below_row_block_size ... ok [INFO] [stdout] test diff::tests::row_scan_width_33_one_past_row_block_size ... ok [INFO] [stdout] test diff::tests::row_scan_width_32_exact_row_block_size ... ok [INFO] [stdout] test diff::proptests::diff_changes_are_monotonic ... ok [INFO] [stdout] test diff::tests::rows_with_no_changes_are_skipped ... ok [INFO] [stdout] test diff::tests::runs_coalesces_adjacent_cells ... ok [INFO] [stdout] test diff::tests::runs_handles_max_column_without_overflow ... ok [INFO] [stdout] test diff::tests::runs_into_clears_previous_content ... ok [INFO] [stdout] test diff::tests::runs_into_matches_runs_output ... ok [INFO] [stdout] test diff::tests::runs_handles_multiple_rows ... ok [INFO] [stdout] test diff::tests::runs_into_reuse_across_multiple_diffs ... ok [INFO] [stdout] test diff::tests::runs_into_preserves_capacity ... ok [INFO] [stdout] test diff::tests::span_diagnostics_with_dirty_cells ... ok [INFO] [stdout] test diff::tests::span_diagnostics_with_full_row ... ok [INFO] [stdout] test diff::tests::single_cell_change_detected ... ok [INFO] [stdout] test diff::tests::span_diagnostics_with_no_dirty_spans ... ok [INFO] [stdout] test diff::tests::switch_between_compute_and_dirty ... ok [INFO] [stdout] test diff::tests::tile_builder_default_matches_new ... ok [INFO] [stdout] test diff::tests::tile_builder_dense_cells_fallback ... ok [INFO] [stdout] test diff::tests::tile_builder_dirty_all_fallback ... ok [INFO] [stdout] test diff::tests::tile_builder_reuse_across_builds ... ok [INFO] [stdout] test diff::tests::tile_config_chain_returns_same_type ... ok [INFO] [stdout] test diff::tests::tile_builder_skips_clean_rows_when_enabled ... ok [INFO] [stdout] test diff::tests::tile_diff_build_debug ... ok [INFO] [stdout] test diff::tests::tile_config_mut_modifies_behavior ... ok [INFO] [stdout] test diff::tests::tile_diff_config_builder_methods ... ok [INFO] [stdout] test diff::tests::tile_diff_config_default_values ... ok [INFO] [stdout] test diff::tests::tile_diff_config_debug_clone ... ok [INFO] [stdout] test diff::tests::tile_diff_equivalence_adjacent_tiles ... ok [INFO] [stdout] test diff::tests::tile_diff_equivalence_large_sparse_random ... ok [INFO] [stdout] test diff::tests::tile_diff_equivalence_small_and_odd_sizes ... ok [INFO] [stdout] test diff::tests::tile_diff_fallback_as_str_all_variants ... ok [INFO] [stdout] test diff::tests::tile_diff_fallback_traits ... ok [INFO] [stdout] test diff::tests::runs_handles_gaps_correctly ... ok [INFO] [stdout] test diff::tests::tile_diff_matches_compute_for_sparse_tiles ... ok [INFO] [stdout] test diff::tests::tile_diff_plan_fields_accessible ... ok [INFO] [stdout] test diff::tests::tile_diff_single_dirty_tile_skips_others ... ok [INFO] [stdout] test diff::tests::tile_diff_stats_debug_copy ... ok [INFO] [stdout] test diff::tests::tile_diff_stats_from_builder ... ok [INFO] [stdout] test diff::tests::tile_diff_input_debug_copy ... ok [INFO] [stdout] test diff::tests::tile_diff_with_dirty_spans_matches_full ... ok [INFO] [stdout] test diff::tests::tile_diff_with_spans_straddling_tile_boundary ... ok [INFO] [stdout] test diff::tests::tile_fallback_disabled_when_config_off ... ok [INFO] [stdout] test diff::tests::tile_fallback_dense_tiles_when_ratio_exceeded ... ok [INFO] [stdout] test diff::tests::tile_diff_equivalence_row_and_full_buffer ... ok [INFO] [stdout] test diff::tests::tile_fallback_small_screen_when_below_threshold ... ok [INFO] [stdout] test diff::tests::tile_params_total_tiles_and_cells ... ok [INFO] [stdout] test diff::tests::tile_size_clamped_to_max_64 ... ok [INFO] [stdout] test diff::tests::tile_size_clamped_to_min_8 ... ok [INFO] [stdout] test diff::tests::unit_run_coalescing_invariants ... ok [INFO] [stdout] test diff::tests::perf_diff_microbench ... ok [INFO] [stdout] test diff::tests::with_capacity ... ok [INFO] [stdout] test diff_strategy::tests::all_dirty_vs_no_dirty_different_evidence ... ok [INFO] [stdout] test diff_strategy::tests::config_default_all_fields ... ok [INFO] [stdout] test diff_strategy::tests::conservative_mode_higher_p_estimate ... ok [INFO] [stdout] test diff_strategy::tests::config_clone_and_debug ... ok [INFO] [stdout] test diff::proptests::runs_are_contiguous ... ok [INFO] [stdout] test diff::tests::tile_fallback_too_many_tiles_when_budget_exceeded ... ok [INFO] [stdout] test diff::proptests::diff_is_idempotent ... ok [INFO] [stdout] test diff::proptests::block_scan_matches_scalar ... ok [INFO] [stdout] test diff_strategy::tests::conservative_quantile_extremes_are_safe ... ok [INFO] [stdout] test diff_strategy::tests::cost_for_strategy_returns_correct_values ... ok [INFO] [stdout] test diff::tests::tile_params_debug_copy ... ok [INFO] [stdout] test diff_strategy::tests::diff_strategy_clone_and_eq ... ok [INFO] [stdout] test diff_strategy::tests::diff_strategy_debug ... ok [INFO] [stdout] test diff::proptests::diff_apply_produces_target ... ok [INFO] [stdout] test diff_strategy::tests::diff_strategy_display ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::cost_full_increases_with_dirty_rows ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::cost_redraw_independent_of_dirty_rows ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::custom_prior_high_alpha_favors_dirty_rows_less ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::conservative_with_zero_dirty_rows ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::decay_one_no_forgetting ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::decay_zero_sanitizes_to_one ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_alternating_observations ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::determinism_across_long_trace ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_observe_zero_scanned_with_min_one ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_mean_formula_correct ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_observe_all_changed ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_upper_quantile_at_extreme_high ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_upper_quantile_clamped_output ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::custom_prior_high_beta_favors_dirty_rows ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_upper_quantile_at_extreme_low ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_upper_quantile_tight_posterior ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::diff_strategy_all_variants_distinct ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::diff_strategy_copy ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_observe_all_unchanged ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_rapid_decay_forgets_quickly ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::evidence_all_fields_populated ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::normalize_cost_accepts_positive_infinity ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::multiple_selects_without_observe ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::evidence_display_format ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::full_change_rate_costs ... ok [INFO] [stdout] test diff::proptests::property_diff_equivalence ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::estimator_variance_formula_correct ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::normalize_cost_rejects_neg_infinity ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::normalize_decay_rejects_neg_infinity ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::override_changes_strategy_and_clears_hysteresis ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::normalize_positive_rejects_infinity ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::normalize_ratio_rejects_infinity ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::posterior_variance_after_reset ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::sanitize_preserves_valid_config ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::reset_clears_frame_count_and_evidence ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::hysteresis_prevents_switch_near_boundary ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::select_dirty_rows_exceeds_height ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::select_large_dimensions ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::select_with_scan_estimate_zero_cells ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::uncertainty_guard_with_fullredraw_hysteresis ... ok [INFO] [stdout] test diff_strategy::tests::estimator_changed_exceeds_scanned_is_clamped ... ok [INFO] [stdout] test diff_strategy::tests::estimator_reset_restores_priors ... ok [INFO] [stdout] test diff_strategy::tests::estimator_updates_with_decay ... ok [INFO] [stdout] test diff_strategy::tests::estimator_upper_quantile_at_50_pct_near_mean ... ok [INFO] [stdout] test diff_strategy::tests::estimator_clone ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::sanitize_all_nan_uses_defaults ... ok [INFO] [stdout] test diff_strategy::tests::estimator_initializes_from_priors ... ok [INFO] [stdout] test diff_strategy::tests::estimator_min_observation_cells_filters ... ok [INFO] [stdout] test diff_strategy::tests::evidence_posterior_matches_selector ... ok [INFO] [stdout] test diff_strategy::tests::frame_count_increments_per_select ... ok [INFO] [stdout] test diff_strategy::tests::frame_count_not_affected_by_observe ... ok [INFO] [stdout] test diff_strategy::tests::hysteresis_can_freeze_strategy_switching ... ok [INFO] [stdout] test diff_strategy::tests::hysteresis_not_applied_on_first_select ... ok [INFO] [stdout] test diff_strategy::tests::no_decay_accumulates_all_evidence ... ok [INFO] [stdout] test diff_strategy::tests::normalize_cost_accepts_zero ... ok [INFO] [stdout] test diff_strategy::tests::normalize_decay_clamps_to_one ... ok [INFO] [stdout] test diff_strategy::tests::normalize_positive_rejects_zero_and_negative ... ok [INFO] [stdout] test diff_strategy::tests::normalize_ratio_clamps_to_unit ... ok [INFO] [stdout] test diff_strategy::tests::evidence_costs_always_finite ... ok [INFO] [stdout] test diff_strategy::tests::override_last_strategy_noop_when_no_evidence ... ok [INFO] [stdout] test diff_strategy::tests::prop_variance_non_negative ... ok [INFO] [stdout] test diff_strategy::tests::override_last_strategy_changes_evidence ... ok [INFO] [stdout] test diff_strategy::tests::sanitize_config_clamps_invalid_values ... ok [INFO] [stdout] test diff_strategy::tests::select_1x1_buffer ... ok [INFO] [stdout] test diff_strategy::tests::select_with_scan_estimate_clamped_to_total ... ok [INFO] [stdout] test diff_strategy::tests::select_with_scan_estimate_custom_cells ... ok [INFO] [stdout] test diff_strategy::tests::select_zero_height ... ok [INFO] [stdout] test diff_strategy::tests::select_zero_width ... ok [INFO] [stdout] test diff_strategy::tests::selector_clone ... ok [INFO] [stdout] test diff_strategy::tests::selector_config_accessor ... ok [INFO] [stdout] test diff_strategy::tests::selector_debug ... ok [INFO] [stdout] test diff_strategy::tests::selector_default_equals_with_defaults ... ok [INFO] [stdout] test diff_strategy::tests::selector_regret_bounded_across_regimes ... ok [INFO] [stdout] test diff_strategy::tests::selector_switching_is_stable_under_constant_load ... ok [INFO] [stdout] test diff_strategy::tests::strategy_evidence_clone ... ok [INFO] [stdout] test diff_strategy::tests::strategy_evidence_debug ... ok [INFO] [stdout] test diff_strategy::tests::prop_posterior_mean_bounded ... ok [INFO] [stdout] test diff_strategy::tests::estimator_upper_quantile_monotonic ... ok [INFO] [stdout] test diff_strategy::tests::test_default_config ... ok [INFO] [stdout] test diff_strategy::tests::estimator_variance_decreases_with_data ... ok [INFO] [stdout] test diff_strategy::tests::test_decay_paused_on_empty_observation ... ok [INFO] [stdout] test diff_strategy::tests::test_posterior_mean_initial ... ok [INFO] [stdout] test diff_strategy::tests::test_deterministic ... ok [INFO] [stdout] test diff_strategy::tests::test_posterior_update ... ok [INFO] [stdout] test diff_strategy::tests::test_select_dirty_rows_when_few_dirty ... ok [INFO] [stdout] test diff_strategy::tests::test_evidence_stored ... ok [INFO] [stdout] test diff_strategy::tests::test_posterior_clamping ... ok [INFO] [stdout] test diff_strategy::tests::test_select_dirty_rows_when_no_dirty ... ok [INFO] [stdout] test diff_strategy::tests::test_reset ... ok [INFO] [stdout] test diff_strategy::tests::test_select_full_redraw_when_high_change ... ok [INFO] [stdout] test diff_strategy::tests::test_upper_quantile_reasonable ... ok [INFO] [stdout] test diff_strategy::tests::uncertainty_guard_avoids_full_redraw ... ok [INFO] [stdout] test drawing::tests::border_chars_ascii_characters ... ok [INFO] [stdout] test drawing::tests::all_border_presets ... ok [INFO] [stdout] test drawing::tests::border_chars_debug_clone_copy_eq ... ok [INFO] [stdout] test drawing::tests::border_chars_double_characters ... ok [INFO] [stdout] test drawing::tests::border_chars_heavy_characters ... ok [INFO] [stdout] test drawing::tests::draw_border_1x1 ... ok [INFO] [stdout] test drawing::tests::draw_border_1x2 ... ok [INFO] [stdout] test drawing::tests::draw_border_1x3_narrow ... ok [INFO] [stdout] test drawing::tests::draw_border_2x1 ... ok [INFO] [stdout] test drawing::tests::draw_border_2x2 ... ok [INFO] [stdout] test drawing::tests::draw_border_3x1_flat ... ok [INFO] [stdout] test drawing::tests::draw_border_clipped_by_scissor ... ok [INFO] [stdout] test drawing::tests::draw_border_empty_rect ... ok [INFO] [stdout] test drawing::tests::draw_border_preserves_style ... ok [INFO] [stdout] test drawing::tests::draw_border_rounded ... ok [INFO] [stdout] test drawing::tests::draw_border_then_print_title ... ok [INFO] [stdout] test drawing::tests::draw_border_square ... ok [INFO] [stdout] test drawing::tests::draw_box_1x1 ... ok [INFO] [stdout] test drawing::tests::draw_box_3x3_minimal_interior ... ok [INFO] [stdout] test drawing::tests::draw_box_border_overwrites_fill ... ok [INFO] [stdout] test drawing::tests::draw_box_basic ... ok [INFO] [stdout] test drawing::tests::draw_box_empty ... ok [INFO] [stdout] test drawing::tests::draw_box_too_small_for_interior ... ok [INFO] [stdout] test drawing::tests::drawing_on_1x1_buffer ... ok [INFO] [stdout] test drawing::tests::horizontal_line_basic ... ok [INFO] [stdout] test drawing::tests::horizontal_line_clipped_by_scissor ... ok [INFO] [stdout] test drawing::tests::horizontal_line_at_buffer_bottom ... ok [INFO] [stdout] test drawing::tests::draw_nested_borders ... ok [INFO] [stdout] test drawing::tests::horizontal_line_exceeds_buffer ... ok [INFO] [stdout] test drawing::tests::horizontal_line_zero_width ... ok [INFO] [stdout] test drawing::tests::paint_area_beyond_buffer ... ok [INFO] [stdout] test drawing::tests::paint_area_empty_rect ... ok [INFO] [stdout] test drawing::tests::paint_area_no_colors ... ok [INFO] [stdout] test drawing::tests::paint_area_sets_both_fg_and_bg ... ok [INFO] [stdout] test drawing::tests::paint_area_sets_colors ... ok [INFO] [stdout] test drawing::tests::paint_area_sets_fg ... ok [INFO] [stdout] test drawing::tests::print_text_basic ... ok [INFO] [stdout] test drawing::tests::print_text_clipped_stops_at_max_x ... ok [INFO] [stdout] test drawing::tests::print_text_clips_at_buffer_edge ... ok [INFO] [stdout] test drawing::tests::print_text_empty_string ... ok [INFO] [stdout] test drawing::tests::print_text_max_x_zero ... ok [INFO] [stdout] test drawing::tests::print_text_multi_codepoint_grapheme_fills_width ... ok [INFO] [stdout] test drawing::tests::print_text_preserves_style ... ok [INFO] [stdout] test diff_strategy::tests::test_select_dirty_rows_with_single_dirty_row_large_screen ... ok [INFO] [stdout] test drawing::tests::print_text_single_char ... ok [INFO] [stdout] test drawing::tests::print_text_start_past_max_x ... ok [INFO] [stdout] test drawing::tests::print_text_wide_char_clipped ... ok [INFO] [stdout] test drawing::tests::rect_filled_clipped_by_scissor ... ok [INFO] [stdout] test drawing::tests::print_text_wide_chars ... ok [INFO] [stdout] test drawing::tests::rect_filled ... ok [INFO] [stdout] test drawing::tests::rect_outline_1x1 ... ok [INFO] [stdout] test drawing::tests::rect_outline_1xn_tall ... ok [INFO] [stdout] test drawing::tests::rect_outline_basic ... ok [INFO] [stdout] test drawing::tests::rect_outline_2x2 ... ok [INFO] [stdout] test drawing::tests::rect_outline_nx1_wide ... ok [INFO] [stdout] test drawing::tests::vertical_line_at_buffer_right_edge ... ok [INFO] [stdout] test drawing::tests::vertical_line_basic ... ok [INFO] [stdout] test drawing::tests::vertical_line_clipped_by_scissor ... ok [INFO] [stdout] test drawing::tests::rect_outline_3x3 ... ok [INFO] [stdout] test drawing::tests::rect_outline_empty_rect ... ok [INFO] [stdout] test drawing::tests::vertical_line_exceeds_buffer ... ok [INFO] [stdout] test drawing::tests::vertical_line_zero_height ... ok [INFO] [stdout] test fit_metrics::tests::cell_metrics_default_is_monospace ... ok [INFO] [stdout] test fit_metrics::tests::cell_metrics_display ... ok [INFO] [stdout] test fit_metrics::tests::cell_metrics_from_px ... ok [INFO] [stdout] test fit_metrics::tests::cell_metrics_from_px_fractional ... ok [INFO] [stdout] test fit_metrics::tests::cell_metrics_rejects_nan ... ok [INFO] [stdout] test fit_metrics::tests::cell_metrics_rejects_zero ... ok [INFO] [stdout] test fit_metrics::tests::cell_metrics_large_preset ... ok [INFO] [stdout] test fit_metrics::tests::cell_metrics_rejects_negative_px ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::cost_dirty_increases_with_dirty_rows ... ok [INFO] [stdout] test fit_metrics::tests::fit_at_2x_dpr ... ok [INFO] [stdout] test fit_metrics::tests::fit_default_80x24_terminal ... ok [INFO] [stdout] test fit_metrics::tests::fit_error_display ... ok [INFO] [stdout] test fit_metrics::tests::fit_fixed_ignores_container ... ok [INFO] [stdout] test fit_metrics::tests::fit_result_display ... ok [INFO] [stdout] test fit_metrics::tests::fit_result_is_valid ... ok [INFO] [stdout] test fit_metrics::tests::fit_deterministic_across_calls ... ok [INFO] [stdout] test diff_strategy::tests::edge_case_tests::zero_change_rate_costs ... ok [INFO] [stdout] test diff_strategy::tests::estimator_clamps_bounds ... ok [INFO] [stdout] test diff_strategy::tests::estimator_debug ... ok [INFO] [stdout] test diff_strategy::tests::strategy_evidence_display_contains_all_sections ... ok [INFO] [stdout] test drawing::tests::rect_filled_empty ... ok [INFO] [stdout] test fit_metrics::tests::fit_with_minimum_guarantees_min_size ... ok [INFO] [stdout] test fit_metrics::tests::fit_with_minimum_uses_actual_when_larger ... ok [INFO] [stdout] test fit_metrics::tests::fit_with_remainder ... ok [INFO] [stdout] test fit_metrics::tests::invalidation_requires_rasterization ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_dpr_change_affects_fit ... ok [INFO] [stdout] test diff::proptests::runs_cover_all_changes ... ok [INFO] [stdout] test fit_metrics::tests::fit_small_container_clamps_to_1x1 ... ok [INFO] [stdout] test fit_metrics::tests::generation_display ... ok [INFO] [stdout] test fit_metrics::tests::fit_at_3x_dpr ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_font_size_change_affects_fit ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_initial_state ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_invalidate_bumps_generation ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_invalidate_with_new_metrics ... ok [INFO] [stdout] test fit_metrics::tests::generation_increments ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_refit_computes_grid ... ok [INFO] [stdout] test fit_metrics::tests::generation_ordering ... ok [INFO] [stdout] test fit_metrics::tests::generation_starts_at_zero ... ok [INFO] [stdout] test fit_metrics::tests::invalidation_display ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_refit_no_change_returns_none ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_refit_without_viewport_returns_none ... ok [INFO] [stdout] test fit_metrics::tests::subpx_conversion_nan ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_refit_detects_dimension_change ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_set_policy_marks_pending ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_set_viewport_marks_pending ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_set_viewport_same_no_change ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_snapshot ... ok [INFO] [stdout] test fit_metrics::tests::subpx_conversion_negative ... ok [INFO] [stdout] test fit_metrics::tests::lifecycle_multiple_invalidations ... ok [INFO] [stdout] test fit_metrics::tests::subpx_conversion_infinity ... ok [INFO] [stdout] test fit_metrics::tests::viewport_display ... ok [INFO] [stdout] test fit_metrics::tests::subpx_conversion_zero ... ok [INFO] [stdout] test fit_metrics::tests::viewport_effective_1x_dpr ... ok [INFO] [stdout] test fit_metrics::tests::subpx_conversion_precise ... ok [INFO] [stdout] test fit_metrics::tests::viewport_effective_zoom_150 ... ok [INFO] [stdout] test fit_metrics::tests::viewport_effective_2x_dpr ... ok [INFO] [stdout] test fit_metrics::tests::viewport_rejects_zero_dpr ... ok [INFO] [stdout] test fit_metrics::tests::viewport_rejects_zero_dims ... ok [INFO] [stdout] test fit_metrics::tests::viewport_simple ... ok [INFO] [stdout] test frame::tests::cost_estimate_source_traits ... ok [INFO] [stdout] test frame::tests::frame_draw_horizontal_line ... ok [INFO] [stdout] test frame::tests::frame_bounds ... ok [INFO] [stdout] test frame::tests::frame_clear ... ok [INFO] [stdout] test frame::tests::frame_cursor_beyond_bounds ... ok [INFO] [stdout] test frame::tests::frame_debug ... ok [INFO] [stdout] test frame::tests::frame_creation ... ok [INFO] [stdout] test frame::tests::frame_draw_rect_filled ... ok [INFO] [stdout] test frame::tests::frame_draw_vertical_line ... ok [INFO] [stdout] test frame::tests::frame_enable_hit_testing ... ok [INFO] [stdout] test frame::tests::frame_enable_hit_testing_then_register ... ok [INFO] [stdout] test frame::tests::frame_from_buffer ... ok [INFO] [stdout] test frame::tests::frame_paint_area ... ok [INFO] [stdout] test frame::tests::frame_print_text_at_right_edge ... ok [INFO] [stdout] test frame::tests::frame_print_text_clipped_at_boundary ... ok [INFO] [stdout] test frame::tests::frame_print_text_emoji_presentation_sets_continuation ... ok [INFO] [stdout] test frame::tests::frame_print_text_interns_complex_graphemes ... ok [INFO] [stdout] test frame::tests::frame_register_hit_respects_nested_scissor ... ok [INFO] [stdout] test frame::tests::frame_register_hit_with_all_regions ... ok [INFO] [stdout] test frame::tests::frame_print_text_empty_string ... ok [INFO] [stdout] test frame::tests::frame_intern_with_width ... ok [INFO] [stdout] test frame::tests::frame_intern ... ok [INFO] [stdout] test frame::tests::frame_set_links ... ok [INFO] [stdout] test frame::tests::frame_set_degradation_propagates_to_buffer ... ok [INFO] [stdout] test frame::tests::frame_set_widget_budget ... ok [INFO] [stdout] test frame::tests::frame_clear_resets_signals_and_cursor ... ok [INFO] [stdout] test frame::tests::frame_with_hit_grid ... ok [INFO] [stdout] test frame::tests::frame_with_links ... ok [INFO] [stdout] test frame::tests::hit_cell_debug_clone_copy_eq ... ok [INFO] [stdout] test frame::tests::frame_with_hit_grid_zero_size_panics - should panic ... ok [INFO] [stdout] test frame::tests::frame_zero_dimensions_panics - should panic ... ok [INFO] [stdout] test frame::tests::hit_cell_default_is_empty ... ok [INFO] [stdout] test frame::tests::hit_data_large_values ... ok [INFO] [stdout] test frame::tests::hit_grid_boundary_clipping ... ok [INFO] [stdout] test frame::tests::hit_grid_clone ... ok [INFO] [stdout] test frame::tests::hit_grid_creation ... ok [INFO] [stdout] test frame::tests::hit_grid_debug ... ok [INFO] [stdout] test frame::tests::hit_grid_clear ... ok [INFO] [stdout] test frame::tests::hit_grid_get_mut ... ok [INFO] [stdout] test frame::tests::frame_cursor_operations ... ok [INFO] [stdout] test frame::tests::hit_grid_edge_and_corner_cells ... ok [INFO] [stdout] test frame::tests::frame_cursor ... ok [INFO] [stdout] test frame::tests::hit_grid_hits_in_area ... ok [INFO] [stdout] test frame::tests::hit_grid_hits_in_empty_area ... ok [INFO] [stdout] test frame::tests::hit_grid_hits_in_outside_rect ... ok [INFO] [stdout] test frame::tests::hit_grid_hits_in_zero_rect ... ok [INFO] [stdout] test frame::tests::hit_grid_initial_cells_empty ... ok [INFO] [stdout] test frame::tests::hit_grid_overlapping_regions ... ok [INFO] [stdout] test frame::tests::frame_widget_signals_lifecycle ... ok [INFO] [stdout] test frame::tests::hit_grid_hits_in_clipped_area ... ok [INFO] [stdout] test frame::tests::hit_grid_out_of_bounds ... ok [INFO] [stdout] test frame::tests::hit_grid_registration ... ok [INFO] [stdout] test frame::tests::hit_grid_single_cell ... ok [INFO] [stdout] test frame::tests::hit_grid_register_past_bounds ... ok [INFO] [stdout] test frame::tests::hit_grid_register_overwrite ... ok [INFO] [stdout] test frame::tests::hit_grid_zero_dimensions ... ok [INFO] [stdout] test frame::tests::hit_id_debug_clone_copy_hash ... ok [INFO] [stdout] test frame::tests::hit_id_default ... ok [INFO] [stdout] test frame::tests::hit_id_eq_and_ne ... ok [INFO] [stdout] test frame::tests::hit_id_large_value ... ok [INFO] [stdout] test frame::tests::hit_grid_register_zero_width_rect ... ok [INFO] [stdout] test frame::tests::hit_region_variants ... ok [INFO] [stdout] test frame::tests::hit_id_properties ... ok [INFO] [stdout] test frame::tests::hit_test_no_grid_returns_none ... ok [INFO] [stdout] test frame::tests::register_hit_region_no_grid ... ok [INFO] [stdout] test frame::tests::register_hit_region_with_grid ... ok [INFO] [stdout] test frame::tests::widget_budget_allow_only ... ok [INFO] [stdout] test frame::tests::widget_budget_allow_only_dedup ... ok [INFO] [stdout] test frame::tests::hit_region_debug_clone_copy_hash ... ok [INFO] [stdout] test frame::tests::widget_budget_allow_only_empty ... ok [INFO] [stdout] test frame::tests::widget_budget_debug_clone ... ok [INFO] [stdout] test frame::tests::widget_budget_default_is_allow_all ... ok [INFO] [stdout] test frame::tests::widget_budget_essential_always_allowed ... ok [INFO] [stdout] test frame::tests::widget_signal_debug_clone ... ok [INFO] [stdout] test frame::tests::widget_signal_default ... ok [INFO] [stdout] test frame::tests::widget_signal_new ... ok [INFO] [stdout] test frame_guardrails::tests::buffer_memory_large_terminal ... ok [INFO] [stdout] test frame_guardrails::tests::buffer_memory_typical_terminal ... ok [INFO] [stdout] test frame_guardrails::tests::buffer_memory_zero_dimension ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_alert_rate ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_both_alerts_combine ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_alert_rate_zero_frames ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_clear_when_healthy ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_emergency_recommends_skip ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_frame_counting ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_memory_alert_propagates ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_queue_alert_propagates ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_reset_clears_all ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_snapshot_jsonl ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_deterministic_for_same_inputs ... ok [INFO] [stdout] test frame_guardrails::tests::guardrails_subsystem_access ... ok [INFO] [stdout] test frame_guardrails::tests::memory_at_hard_limit_critical ... ok [INFO] [stdout] test frame_guardrails::tests::memory_at_soft_limit_warns ... ok [INFO] [stdout] test frame_guardrails::tests::memory_below_soft_no_alert ... ok [INFO] [stdout] test frame_guardrails::tests::memory_config_large_preset ... ok [INFO] [stdout] test frame_guardrails::tests::memory_config_small_preset ... ok [INFO] [stdout] test frame::tests::hit_cell_new_is_not_empty ... ok [INFO] [stdout] test frame::tests::frame_register_link_no_registry ... ok [INFO] [stdout] test frame::tests::frame_register_link_with_registry ... ok [INFO] [stdout] test frame_guardrails::tests::memory_reset_clears_state ... ok [INFO] [stdout] test frame_guardrails::tests::memory_usage_fraction_zero_limit ... ok [INFO] [stdout] test frame_guardrails::tests::memory_usage_fraction ... ok [INFO] [stdout] test frame_guardrails::tests::memory_violation_counts ... ok [INFO] [stdout] test frame_guardrails::tests::queue_action_drops_frames ... ok [INFO] [stdout] test frame_guardrails::tests::queue_at_max_depth_drop_newest ... ok [INFO] [stdout] test frame_guardrails::tests::queue_at_max_depth_backpressure ... ok [INFO] [stdout] test frame_guardrails::tests::queue_at_max_depth_drop_oldest ... ok [INFO] [stdout] test frame_guardrails::tests::queue_at_warn_depth ... ok [INFO] [stdout] test frame_guardrails::tests::queue_backpressure_counting ... ok [INFO] [stdout] test frame_guardrails::tests::queue_config_accessors ... ok [INFO] [stdout] test frame_guardrails::tests::queue_config_relaxed_preset ... ok [INFO] [stdout] test frame_guardrails::tests::queue_config_strict_preset ... ok [INFO] [stdout] test frame_guardrails::tests::queue_drop_counting ... ok [INFO] [stdout] test frame_guardrails::tests::queue_drop_policy_default_is_drop_oldest ... ok [INFO] [stdout] test frame_guardrails::tests::queue_emergency_drops_to_latest ... ok [INFO] [stdout] test frame_guardrails::tests::queue_peak_tracking ... ok [INFO] [stdout] test frame_guardrails::tests::queue_below_warn_no_alert ... ok [INFO] [stdout] test frame_guardrails::tests::queue_reset_clears_state ... ok [INFO] [stdout] test frame_guardrails::tests::severity_ordering ... ok [INFO] [stdout] test frame_guardrails::tests::verdict_max_severity_none_when_clear ... ok [INFO] [stdout] test frame_guardrails::tests::verdict_max_severity_picks_highest ... ok [INFO] [stdout] test grapheme_pool::tests::clear_then_intern_reuses_from_scratch ... ok [INFO] [stdout] test grapheme_pool::tests::capacity_grows_with_interns ... ok [INFO] [stdout] test grapheme_pool::tests::clear_pool ... ok [INFO] [stdout] test grapheme_pool::tests::double_release_is_safe ... ok [INFO] [stdout] test grapheme_pool::tests::clone_independence ... ok [INFO] [stdout] test grapheme_pool::tests::deduplication ... ok [INFO] [stdout] test grapheme_pool::tests::empty_pool ... ok [INFO] [stdout] test grapheme_pool::tests::gc_double_run_idempotent ... ok [INFO] [stdout] test grapheme_pool::tests::free_list_ordering ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_lookup_table_stays_consistent ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_freed_slots_are_reusable ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_frees_unreferenced_grapheme ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_with_empty_pool ... ok [INFO] [stdout] test frame::tests::hit_grid_nonzero_width_zero_height ... ok [INFO] [stdout] test frame_guardrails::tests::memory_at_emergency_limit ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_retains_referenced_grapheme ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_with_multiple_references_in_buffer ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_with_no_buffers ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_resets_refcounts_accurately ... ok [INFO] [stdout] test frame::tests::hit_grid_zero_width_nonzero_height ... ok [INFO] [stdout] test frame_guardrails::tests::memory_peak_tracking ... ok [INFO] [stdout] test frame::tests::hit_grid_full_coverage ... ok [INFO] [stdout] test grapheme_pool::tests::gc_tests::gc_with_multiple_buffers ... ok [INFO] [stdout] test frame::tests::hit_grid_register_zero_height_rect ... ok [INFO] [stdout] test frame_guardrails::tests::memory_config_accessors ... ok [INFO] [stdout] test grapheme_pool::tests::intern_after_release_deduplicates_correctly ... ok [INFO] [stdout] test grapheme_pool::tests::intern_and_get ... ok [INFO] [stdout] test grapheme_pool::tests::intern_width_zero ... ok [INFO] [stdout] test grapheme_pool::tests::intern_long_string ... ok [INFO] [stdout] test grapheme_pool::tests::len_after_mixed_operations ... ok [INFO] [stdout] test grapheme_pool::tests::gc_with_already_freed_slots ... ok [INFO] [stdout] test grapheme_pool::tests::intern_width_max ... ok [INFO] [stdout] test grapheme_pool::tests::multiple_slot_reuse_cycles ... ok [INFO] [stdout] test grapheme_pool::tests::pool_debug_and_clone ... ok [INFO] [stdout] test grapheme_pool::tests::pool_default_is_new ... ok [INFO] [stdout] test grapheme_pool::tests::intern_empty_string ... ok [INFO] [stdout] test grapheme_pool::tests::invalid_id_returns_none ... ok [INFO] [stdout] test grapheme_pool::tests::multiple_graphemes ... ok [INFO] [stdout] test grapheme_pool::tests::property::intern_get_roundtrip ... ok [INFO] [stdout] test grapheme_pool::tests::property::over_release_does_not_corrupt ... ok [INFO] [stdout] test grapheme_pool::tests::property::deduplication_same_id ... ok [INFO] [stdout] test grapheme_pool::tests::property::cross_pool_id_is_invalid ... ok [INFO] [stdout] test grapheme_pool::tests::property::clear_resets_all ... ok [INFO] [stdout] test grapheme_pool::tests::property::deduplication_refcount ... ok [INFO] [stdout] test grapheme_pool::tests::refcount_of_invalid_id_is_zero ... ok [INFO] [stdout] test grapheme_pool::tests::refcount_of_freed_slot_is_zero ... ok [INFO] [stdout] test grapheme_pool::tests::release_invalid_id_is_safe ... ok [INFO] [stdout] test grapheme_pool::tests::retain_freed_slot_is_noop ... ok [INFO] [stdout] test grapheme_pool::tests::retain_invalid_id_is_safe ... ok [INFO] [stdout] test grapheme_pool::tests::retain_and_release ... ok [INFO] [stdout] test grapheme_pool::tests::slot_reuse ... ok [INFO] [stdout] test grapheme_pool::tests::stress_100_graphemes ... ok [INFO] [stdout] test grapheme_pool::tests::width_preserved ... ok [INFO] [stdout] test grapheme_pool::tests::with_capacity ... ok [INFO] [stdout] test grapheme_pool::tests::width_overflow_panics - should panic ... ok [INFO] [stdout] test grapheme_pool::tests::property::release_decrements_by_one ... ok [INFO] [stdout] test headless::tests::assert_cursor_passes_on_match ... ok [INFO] [stdout] test grapheme_pool::tests::with_capacity_then_intern ... ok [INFO] [stdout] test grapheme_pool::tests::property::retain_release_refcount ... ok [INFO] [stdout] test headless::tests::assert_matches_passes_on_match ... ok [INFO] [stdout] test headless::tests::assert_matches_panics_on_mismatch - should panic ... ok [INFO] [stdout] test headless::tests::assert_row_passes_on_match ... ok [INFO] [stdout] test headless::tests::captured_output_records_all_bytes ... ok [INFO] [stdout] test headless::tests::cursor_absolute_column_cha ... ok [INFO] [stdout] test headless::tests::assert_cursor_panics_on_mismatch - should panic ... ok [INFO] [stdout] test headless::tests::cursor_absolute_row_vpa ... ok [INFO] [stdout] test headless::tests::assert_matches_panics_on_wrong_line_count - should panic ... ok [INFO] [stdout] test headless::tests::assert_row_panics_on_mismatch - should panic ... ok [INFO] [stdout] test headless::tests::cursor_clamped_at_right ... ok [INFO] [stdout] test headless::tests::cursor_clamped_at_left ... ok [INFO] [stdout] test headless::tests::cursor_clamped_at_top ... ok [INFO] [stdout] test headless::tests::cursor_move_back ... ok [INFO] [stdout] test headless::tests::cursor_move_down ... ok [INFO] [stdout] test headless::tests::cursor_move_default_count ... ok [INFO] [stdout] test headless::tests::cursor_move_then_write ... ok [INFO] [stdout] test headless::tests::cursor_move_forward ... ok [INFO] [stdout] test headless::tests::cursor_move_up ... ok [INFO] [stdout] test headless::tests::cursor_multiple_directions ... ok [INFO] [stdout] test headless::tests::diff_detects_character_difference ... ok [INFO] [stdout] test headless::tests::cursor_clamped_at_bottom ... ok [INFO] [stdout] test headless::tests::export_string_contains_dimensions_and_content ... ok [INFO] [stdout] test headless::tests::diff_returns_none_on_match ... ok [INFO] [stdout] test headless::tests::diff_returns_mismatches ... ok [INFO] [stdout] test headless::tests::erase_operations_work ... ok [INFO] [stdout] test headless::tests::export_to_file ... ok [INFO] [stdout] test headless::tests::format_diff_shows_column_of_first_difference ... ok [INFO] [stdout] test grapheme_pool::tests::property::slot_reuse_after_free ... ok [INFO] [stdout] test headless::tests::new_creates_blank_screen ... ok [INFO] [stdout] test headless::tests::format_diff_shows_length_difference ... ok [INFO] [stdout] test headless::tests::presenter_incremental_update_roundtrips ... ok [INFO] [stdout] test headless::tests::multiline_content ... ok [INFO] [stdout] test grapheme_pool::tests::property::distinct_strings_distinct_ids ... ok [INFO] [stdout] test headless::tests::presenter_output_roundtrips ... ok [INFO] [stdout] test headless::tests::process_cup_and_text ... ok [INFO] [stdout] test headless::tests::process_writes_text ... ok [INFO] [stdout] test headless::tests::screen_diff_display_format ... ok [INFO] [stdout] test headless::tests::screen_string_joins_with_newlines ... ok [INFO] [stdout] test headless::tests::screen_text_returns_all_rows ... ok [INFO] [stdout] test headless::tests::sgr_styling_tracked ... ok [INFO] [stdout] test link_registry::tests::clear ... ok [INFO] [stdout] test link_registry::tests::clear_multiple_times ... ok [INFO] [stdout] test link_registry::tests::clone_preserves_free_list ... ok [INFO] [stdout] test link_registry::tests::clone_independence ... ok [INFO] [stdout] test link_registry::tests::contains_invalid_id ... ok [INFO] [stdout] test link_registry::tests::contains_after_unregister ... ok [INFO] [stdout] test link_registry::tests::contains_zero_always_false ... ok [INFO] [stdout] test headless::tests::reset_clears_everything ... ok [INFO] [stdout] test link_registry::tests::dedup_still_works_after_cycle ... ok [INFO] [stdout] test link_registry::tests::dedup_after_unregister_gets_new_id ... ok [INFO] [stdout] test link_registry::tests::default_trait_creates_empty_registry ... ok [INFO] [stdout] test link_registry::tests::free_list_lifo_order ... ok [INFO] [stdout] test link_registry::tests::free_list_mixed_with_fresh_allocation ... ok [INFO] [stdout] test link_registry::tests::get_out_of_bounds_returns_none ... ok [INFO] [stdout] test link_registry::tests::get_returns_none_after_clear ... ok [INFO] [stdout] test link_registry::tests::id_zero_is_reserved ... ok [INFO] [stdout] test link_registry::tests::ids_sequential_when_no_free_list ... ok [INFO] [stdout] test link_registry::tests::is_empty_after_register_unregister ... ok [INFO] [stdout] test link_registry::tests::is_empty_on_fresh_registry ... ok [INFO] [stdout] test link_registry::tests::len_tracks_operations ... ok [INFO] [stdout] test link_registry::tests::multiple_urls ... ok [INFO] [stdout] test headless::tests::hyperlink_tracking ... ok [INFO] [stdout] test link_registry::tests::deduplication ... ok [INFO] [stdout] test headless::tests::line_wrap_at_boundary ... ok [INFO] [stdout] test link_registry::tests::many_registrations ... ok [INFO] [stdout] test link_registry::tests::debug_formatting ... ok [INFO] [stdout] test grapheme_pool::tests::property::positive_refcount_implies_valid_slot ... ok [INFO] [stdout] test link_registry::tests::register_after_clear_works ... ok [INFO] [stdout] test link_registry::tests::register_all_freed_then_register_new ... ok [INFO] [stdout] test link_registry::tests::register_and_get ... ok [INFO] [stdout] test link_registry::tests::register_empty_url ... ok [INFO] [stdout] test link_registry::tests::register_rejects_control_chars ... ok [INFO] [stdout] test link_registry::tests::register_rejects_overlong_urls ... ok [INFO] [stdout] test link_registry::tests::register_returns_nonzero ... ok [INFO] [stdout] test grapheme_pool::tests::property::intern_preserves_width ... ok [INFO] [stdout] test link_registry::tests::property::len_invariant ... ok [INFO] [stdout] test link_registry::tests::register_very_long_url ... FAILED [INFO] [stdout] test link_registry::tests::unregister_does_not_affect_others ... ok [INFO] [stdout] test link_registry::tests::unregister_out_of_bounds_is_safe ... ok [INFO] [stdout] test link_registry::tests::unregister_reuses_id ... ok [INFO] [stdout] test grapheme_pool::tests::property::len_invariant ... ok [INFO] [stdout] test link_registry::tests::register_url_with_unicode ... ok [INFO] [stdout] test link_registry::tests::unregister_twice_is_safe ... ok [INFO] [stdout] test link_registry::tests::unregister_zero_is_noop ... ok [INFO] [stdout] test link_registry::tests::property::clear_resets ... ok [INFO] [stdout] test link_registry::tests::property::distinct_urls_distinct_ids ... ok [INFO] [stdout] test link_registry::tests::register_url_with_special_chars ... ok [INFO] [stdout] test grapheme_pool::tests::property::release_to_zero_frees ... ok [INFO] [stdout] test link_registry::tests::property::dedup_same_id ... ok [INFO] [stdout] test presenter::tests::capabilities_accessor ... ok [INFO] [stdout] test presenter::tests::cell_style_default_is_transparent_no_attrs ... ok [INFO] [stdout] test presenter::tests::cell_style_eq_and_clone ... ok [INFO] [stdout] test link_registry::tests::property::register_get_roundtrip ... ok [INFO] [stdout] test presenter::proptests::diff_size_bounds ... ok [INFO] [stdout] test presenter::tests::clear_line_positions_cursor_and_erases ... ok [INFO] [stdout] test presenter::tests::clear_screen_works ... ok [INFO] [stdout] test presenter::tests::continuation_at_run_start_advances_cursor_without_overwriting ... ok [INFO] [stdout] test presenter::tests::continuation_cell_cursor_already_past ... ok [INFO] [stdout] test presenter::tests::continuation_cell_cursor_x_none ... ok [INFO] [stdout] test presenter::tests::continuation_cells_skipped ... ok [INFO] [stdout] test presenter::tests::cost_cha_digit_boundaries ... ok [INFO] [stdout] test presenter::tests::cost_cha_max ... ok [INFO] [stdout] test presenter::tests::cost_cha_zero ... ok [INFO] [stdout] test presenter::tests::cost_cheapest_move_already_at_target ... ok [INFO] [stdout] test presenter::tests::cost_cheapest_move_backward_same_row ... ok [INFO] [stdout] test presenter::tests::cost_cheapest_move_known_y_unknown_x ... ok [INFO] [stdout] test presenter::tests::cost_cheapest_move_same_row_same_col ... ok [INFO] [stdout] test presenter::tests::cost_cheapest_move_unknown_position ... ok [INFO] [stdout] test presenter::tests::cost_cuf_digit_boundaries ... ok [INFO] [stdout] test presenter::tests::cost_cuf_max ... ok [INFO] [stdout] test presenter::tests::cost_cuf_one_is_three ... ok [INFO] [stdout] test presenter::tests::cost_cuf_two_has_digit ... ok [INFO] [stdout] test presenter::tests::cost_cuf_zero_is_free ... ok [INFO] [stdout] test presenter::tests::cost_cup_digit_boundaries ... ok [INFO] [stdout] test presenter::tests::cost_cup_max_max ... ok [INFO] [stdout] test presenter::tests::cost_cup_zero_zero ... ok [INFO] [stdout] test presenter::tests::cost_model_adjacent_runs_merge ... ok [INFO] [stdout] test presenter::tests::cost_model_chooses_full_row_when_cheaper ... ok [INFO] [stdout] test presenter::tests::cost_model_cup_vs_cha_vs_cuf ... ok [INFO] [stdout] test presenter::tests::cost_model_digit_estimation_accuracy ... ok [INFO] [stdout] test presenter::tests::cost_model_empty_row_single_run ... ok [INFO] [stdout] test presenter::tests::cost_model_full_row_merges ... ok [INFO] [stdout] test presenter::tests::cost_model_merged_row_produces_correct_output ... ok [INFO] [stdout] test presenter::tests::cost_model_optimal_cursor_uses_cha_on_same_row_backward ... ok [INFO] [stdout] test presenter::tests::cost_model_optimal_cursor_uses_cuf_on_same_row ... ok [INFO] [stdout] test presenter::tests::cost_model_optimal_cursor_uses_cup_on_row_change ... ok [INFO] [stdout] test presenter::tests::cost_model_single_cell_stays_sparse ... ok [INFO] [stdout] test presenter::tests::cursor_position_after_multiple_runs ... ok [INFO] [stdout] test presenter::tests::cursor_position_optimized ... ok [INFO] [stdout] test presenter::tests::cursor_visibility ... ok [INFO] [stdout] test presenter::proptests::presenter_cursor_consistency ... ok [INFO] [stdout] test presenter::tests::cell_style_from_cell_captures_all ... ok [INFO] [stdout] test presenter::tests::cursor_tracking_after_wide_char ... ok [INFO] [stdout] test presenter::tests::e2e_style_stress_with_byte_metrics ... ok [INFO] [stdout] test presenter::tests::emit_content_empty_cell_emits_space ... ok [INFO] [stdout] test presenter::tests::emit_content_grapheme_sanitizes_escape_sequences ... ok [INFO] [stdout] test presenter::tests::emit_style_full_default_is_just_reset ... ok [INFO] [stdout] test presenter::tests::dec_len_u8_boundaries ... ok [INFO] [stdout] test presenter::tests::emit_cell_control_char_replaced_with_fffd ... ok [INFO] [stdout] test diff::proptests::no_ghosting_after_clear ... ok [INFO] [stdout] test presenter::tests::emit_style_full_with_all_properties ... ok [INFO] [stdout] test presenter::tests::empty_diff_produces_minimal_output ... ok [INFO] [stdout] test presenter::tests::flush_succeeds_on_empty_presenter ... ok [INFO] [stdout] test presenter::proptests::style_reset_after_present ... ok [INFO] [stdout] test presenter::tests::hyperlink_closed_at_frame_end ... ok [INFO] [stdout] test presenter::tests::hyperlink_not_emitted_for_unknown_id ... ok [INFO] [stdout] test presenter::tests::hyperlink_emitted_with_registry ... ok [INFO] [stdout] test presenter::tests::hyperlink_sequences_emitted_and_closed ... ok [INFO] [stdout] test presenter::tests::hyperlink_transitions_between_links ... ok [INFO] [stdout] test presenter::tests::into_inner_returns_accumulated_output ... ok [INFO] [stdout] test presenter::tests::hyperlink_overlong_url_not_emitted ... ok [INFO] [stdout] test presenter::tests::hyperlink_obeys_mux_policy_even_when_capability_flag_set ... ok [INFO] [stdout] test presenter::tests::link_state_cleared_after_reset ... ok [INFO] [stdout] test link_registry::tests::property::slot_reuse ... ok [INFO] [stdout] test presenter::tests::hyperlink_not_emitted_without_registry ... ok [INFO] [stdout] test presenter::tests::link_closed_at_frame_end_even_if_all_cells_linked ... ok [INFO] [stdout] test presenter::tests::link_at_buffer_boundaries ... FAILED [INFO] [stdout] test presenter::tests::link_transitions_linked_unlinked_linked ... FAILED [INFO] [stdout] test presenter::tests::multiple_presents_maintain_correct_state ... ok [INFO] [stdout] test presenter::tests::perf_emit_style_delta_microbench ... ok [INFO] [stdout] test presenter::tests::move_cursor_optimal_same_row_forward_large ... ok [INFO] [stdout] test presenter::tests::move_cursor_optimal_unknown_cursor_uses_cup ... ok [INFO] [stdout] test presenter::tests::move_cursor_optimal_same_row_backward_to_zero ... ok [INFO] [stdout] test presenter::tests::plan_row_gap_exactly_32_cells ... ok [INFO] [stdout] test presenter::tests::hyperlink_unsafe_url_not_emitted ... ok [INFO] [stdout] test presenter::tests::plan_row_gap_33_cells_stays_sparse ... ok [INFO] [stdout] test presenter::tests::e2e_presenter_stress_deterministic ... ok [INFO] [stdout] test presenter::tests::plan_row_many_sparse_spans ... ok [INFO] [stdout] test presenter::tests::position_cursor ... ok [INFO] [stdout] test presenter::tests::plan_row_reuse_across_different_sizes ... ok [INFO] [stdout] test presenter::tests::plan_row_reuse_matches_plan_row ... ok [INFO] [stdout] test presenter::tests::present_stats_empty_diff ... ok [INFO] [stdout] test presenter::tests::present_stats_full_row ... ok [INFO] [stdout] test presenter::tests::present_stats_reports_cells_and_bytes ... ok [INFO] [stdout] test presenter::tests::reset_clears_state ... ok [INFO] [stdout] test presenter::tests::reset_reapplies_style_after_clear ... ok [INFO] [stdout] test presenter::tests::row_plan_total_cost_matches_dp ... ok [INFO] [stdout] test presenter::tests::sgr_delta_all_attrs_removed_at_once ... ok [INFO] [stdout] test presenter::tests::present_multiple_rows_different_strategies ... ok [INFO] [stdout] test presenter::tests::sgr_delta_bg_only_change_no_reset ... ok [INFO] [stdout] test presenter::tests::sgr_delta_attr_addition_no_reset ... ok [INFO] [stdout] test presenter::tests::sgr_delta_attr_removal_uses_off_code ... ok [INFO] [stdout] test presenter::tests::sgr_delta_bg_to_transparent ... ok [INFO] [stdout] test presenter::tests::sgr_delta_bold_dim_collateral_re_enables ... ok [INFO] [stdout] test presenter::tests::sgr_delta_cost_dominance_never_exceeds_baseline ... ok [INFO] [stdout] test presenter::tests::sgr_delta_dim_removed_bold_stays ... ok [INFO] [stdout] test presenter::tests::present_flushes_buffered_output ... ok [INFO] [stdout] test presenter::tests::sgr_delta_fallback_to_full_reset_when_cheaper ... ok [INFO] [stdout] test presenter::tests::sgr_delta_hot_path_both_colors_change ... ok [INFO] [stdout] test presenter::tests::sgr_delta_hot_path_only_fg_change ... ok [INFO] [stdout] test presenter::tests::sgr_delta_evidence_ledger ... ok [INFO] [stdout] test presenter::tests::sgr_flags_len_empty ... ok [INFO] [stdout] test presenter::tests::sgr_flags_len_multiple ... ok [INFO] [stdout] test presenter::tests::sgr_flags_len_single ... ok [INFO] [stdout] test presenter::tests::sgr_flags_off_len_empty ... ok [INFO] [stdout] test presenter::tests::sgr_rgb_len_large_values ... ok [INFO] [stdout] test presenter::tests::sgr_rgb_len_matches_actual ... ok [INFO] [stdout] test presenter::tests::single_cell_change ... ok [INFO] [stdout] test presenter::tests::skip_cursor_move_when_already_at_position ... ok [INFO] [stdout] test presenter::tests::snapshot_presenter_equivalence ... ok [INFO] [stdout] test presenter::tests::sgr_delta_same_style_no_output ... ok [INFO] [stdout] test presenter::tests::style_state_persists_across_frames ... ok [INFO] [stdout] test presenter::tests::style_tracking_avoids_redundant_sgr ... ok [INFO] [stdout] test presenter::tests::style_none_after_each_frame ... ok [INFO] [stdout] test presenter::tests::style_transitions_between_different_colors ... ok [INFO] [stdout] test presenter::tests::style_with_all_flags ... ok [INFO] [stdout] test presenter::tests::sync_output_not_wrapped_when_unsupported ... ok [INFO] [stdout] test presenter::tests::sync_output_obeys_mux_policy ... ok [INFO] [stdout] test presenter::tests::sgr_delta_fg_only_change_no_reset ... ok [INFO] [stdout] test presenter::tests::sgr_delta_fg_to_transparent ... ok [INFO] [stdout] test presenter::tests::sync_output_wraps_frame ... ok [INFO] [stdout] test presenter::tests::zero_width_chars_replaced_with_placeholder ... ok [INFO] [stdout] test presenter::tests::wide_char_missing_continuation_causes_drift ... ok [INFO] [stdout] test roaring_bitmap::tests::bitmap_iteration_correctness ... ok [INFO] [stdout] test roaring_bitmap::tests::array_to_bitmap_promotion ... ok [INFO] [stdout] test presenter::tests::sync_wrap_order_begin_content_reset_end ... ok [INFO] [stdout] test roaring_bitmap::tests::cell_index_dirty_tracking ... ok [INFO] [stdout] test roaring_bitmap::tests::default_is_empty ... ok [INFO] [stdout] test roaring_bitmap::tests::empty_bitmap ... ok [INFO] [stdout] test roaring_bitmap::tests::insert_and_contains ... ok [INFO] [stdout] test roaring_bitmap::tests::insert_multiple_containers ... ok [INFO] [stdout] test roaring_bitmap::tests::insert_range_basic ... ok [INFO] [stdout] test roaring_bitmap::tests::intersection_basic ... ok [INFO] [stdout] test roaring_bitmap::tests::intersection_empty ... ok [INFO] [stdout] test roaring_bitmap::tests::iteration_across_containers ... ok [INFO] [stdout] test roaring_bitmap::tests::iteration_order ... ok [INFO] [stdout] test roaring_bitmap::tests::clear ... ok [INFO] [stdout] test roaring_bitmap::tests::union_across_containers ... ok [INFO] [stdout] test roaring_bitmap::tests::union_basic ... ok [INFO] [stdout] test sanitize::tests::adversarial_all_c1_controls_stripped ... ok [INFO] [stdout] test sanitize::tests::adversarial_all_forbidden_c0_in_sequence ... ok [INFO] [stdout] test sanitize::tests::adversarial_alt_screen_disable ... ok [INFO] [stdout] test sanitize::tests::adversarial_alt_screen_enable ... ok [INFO] [stdout] test sanitize::tests::adversarial_bel_vs_st_terminator ... ok [INFO] [stdout] test sanitize::tests::adversarial_alternating_esc_and_text ... ok [INFO] [stdout] test sanitize::tests::adversarial_c1_apc_byte ... ok [INFO] [stdout] test sanitize::tests::adversarial_c1_dcs_byte ... ok [INFO] [stdout] test sanitize::tests::adversarial_bracketed_paste_enable ... ok [INFO] [stdout] test roaring_bitmap::tests::large_screen_dirty_tracking ... ok [INFO] [stdout] test presenter::tests::sync_output_wrapped_when_supported ... ok [INFO] [stdout] test sanitize::tests::adversarial_c1_fast_path_triggers_slow_path ... ok [INFO] [stdout] test sanitize::tests::adversarial_c1_osc_byte ... ok [INFO] [stdout] test sanitize::tests::adversarial_c1_pm_byte ... ok [INFO] [stdout] test sanitize::tests::adversarial_c1_st_byte ... ok [INFO] [stdout] test sanitize::tests::adversarial_c1_single_byte_csi ... ok [INFO] [stdout] test sanitize::tests::adversarial_combined_title_clear_clipboard ... ok [INFO] [stdout] test sanitize::tests::adversarial_control_char_near_escape ... ok [INFO] [stdout] test sanitize::tests::adversarial_csi_many_params_then_final ... ok [INFO] [stdout] test sanitize::tests::adversarial_csi_without_final_byte ... ok [INFO] [stdout] test sanitize::tests::adversarial_cursor_absolute_position ... ok [INFO] [stdout] test sanitize::tests::adversarial_clear_screen ... ok [INFO] [stdout] test sanitize::tests::adversarial_dec_set_reset_barrage ... ok [INFO] [stdout] test sanitize::tests::adversarial_decrpm_query ... ok [INFO] [stdout] test sanitize::tests::adversarial_device_attributes_query_da1 ... ok [INFO] [stdout] test sanitize::tests::adversarial_device_attributes_query_da2 ... ok [INFO] [stdout] test sanitize::tests::adversarial_device_status_report ... ok [INFO] [stdout] test sanitize::tests::adversarial_erase_line ... ok [INFO] [stdout] test sanitize::tests::adversarial_fake_password_prompt ... ok [INFO] [stdout] test sanitize::tests::adversarial_fake_shell_prompt ... ok [INFO] [stdout] test sanitize::tests::adversarial_focus_events_enable ... ok [INFO] [stdout] test sanitize::tests::adversarial_home_cursor ... ok [INFO] [stdout] test sanitize::tests::adversarial_hyperlink_wrapping_attack ... ok [INFO] [stdout] test sanitize::tests::adversarial_kitty_graphics_protocol ... ok [INFO] [stdout] test sanitize::tests::adversarial_insert_delete_lines ... ok [INFO] [stdout] test sanitize::tests::adversarial_cursor_hide_show ... ok [INFO] [stdout] test sanitize::tests::adversarial_mixed_valid_utf8_and_escapes ... ok [INFO] [stdout] test sanitize::tests::adversarial_mouse_enable ... ok [INFO] [stdout] test sanitize::tests::adversarial_nested_osc_in_osc ... ok [INFO] [stdout] test sanitize::tests::adversarial_only_escape_bytes ... ok [INFO] [stdout] test sanitize::tests::adversarial_osc0_title_injection ... ok [INFO] [stdout] test sanitize::tests::adversarial_osc1_icon_title ... ok [INFO] [stdout] test sanitize::tests::adversarial_osc2_window_title ... ok [INFO] [stdout] test sanitize::tests::adversarial_osc52_clipboard_query ... ok [INFO] [stdout] test sanitize::tests::adversarial_osc52_clipboard_set_bel ... ok [INFO] [stdout] test sanitize::tests::adversarial_osc52_clipboard_set_st ... ok [INFO] [stdout] test sanitize::tests::adversarial_osc_color_query ... ok [INFO] [stdout] test sanitize::tests::adversarial_overwrite_existing_content ... ok [INFO] [stdout] test sanitize::tests::adversarial_save_restore_cursor_attack ... ok [INFO] [stdout] test sanitize::tests::adversarial_raw_mode_sequence ... ok [INFO] [stdout] test sanitize::tests::adversarial_many_short_sequences ... ok [INFO] [stdout] test sanitize::tests::adversarial_sixel_data ... ok [INFO] [stdout] test sanitize::tests::adversarial_st_inside_dcs ... ok [INFO] [stdout] test sanitize::tests::adversarial_very_long_csi_params ... ok [INFO] [stdout] test sanitize::tests::adversarial_scroll_down ... ok [INFO] [stdout] test sanitize::tests::adversarial_very_long_dcs_content ... ok [INFO] [stdout] test sanitize::tests::allowed_controls_preserved_in_output ... ok [INFO] [stdout] test sanitize::tests::dcs_with_proper_st_fully_consumed ... ok [INFO] [stdout] test sanitize::tests::decode_ascii ... ok [INFO] [stdout] test sanitize::tests::decode_four_byte ... ok [INFO] [stdout] test sanitize::tests::decode_invalid_continuation ... ok [INFO] [stdout] test sanitize::tests::decode_invalid_lead ... ok [INFO] [stdout] test sanitize::tests::decode_three_byte ... ok [INFO] [stdout] test sanitize::tests::decode_truncated ... ok [INFO] [stdout] test sanitize::tests::decode_two_byte ... ok [INFO] [stdout] test sanitize::tests::fast_path_empty ... ok [INFO] [stdout] test sanitize::tests::fast_path_no_escape ... ok [INFO] [stdout] test sanitize::tests::fast_path_printable_ascii ... ok [INFO] [stdout] test sanitize::tests::fast_path_unicode ... ok [INFO] [stdout] test presenter::proptests::presenter_roundtrip_characters ... ok [INFO] [stdout] test presenter::proptests::sgr_delta_transition_equivalence ... ok [INFO] [stdout] test sanitize::tests::adversarial_scroll_up ... ok [INFO] [stdout] test diff::tests::perf_dirty_diff_large_screen_regression ... ok [INFO] [stdout] test sanitize::tests::handles_esc_at_end ... ok [INFO] [stdout] test sanitize::tests::handles_lone_esc ... ok [INFO] [stdout] test sanitize::tests::handles_truncated_apc ... ok [INFO] [stdout] test sanitize::tests::handles_truncated_osc ... ok [INFO] [stdout] test sanitize::tests::handles_truncated_pm ... ok [INFO] [stdout] test sanitize::tests::handles_unknown_escape ... ok [INFO] [stdout] test sanitize::tests::mixed_unicode_and_escapes ... ok [INFO] [stdout] test sanitize::tests::output_never_contains_esc ... ok [INFO] [stdout] test sanitize::tests::output_never_contains_forbidden_c0 ... ok [INFO] [stdout] test sanitize::tests::handles_truncated_csi ... ok [INFO] [stdout] test sanitize::tests::handles_truncated_dcs ... ok [INFO] [stdout] test sanitize::tests::preserves_combining_characters ... ok [INFO] [stdout] test sanitize::tests::preserves_emoji ... ok [INFO] [stdout] test sanitize::tests::preserves_unicode_characters ... ok [INFO] [stdout] test sanitize::tests::fast_path_with_allowed_controls ... ok [INFO] [stdout] test sanitize::tests::handles_single_char_escape ... ok [INFO] [stdout] test sanitize::tests::adversarial_sgr_color_soup ... ok [INFO] [stdout] test sanitize::tests::adversarial_very_long_osc_content ... ok [INFO] [stdout] test presenter::proptests::empty_diff_minimal_output ... ok [INFO] [stdout] test presenter::tests::perf_legacy_vs_dp_worst_case_sparse ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_output_never_contains_esc ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_output_never_contains_del ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_output_is_valid_utf8 ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_output_len_lte_input ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_never_panics ... ok [INFO] [stdout] test sanitize::tests::slow_path_preserves_tab_lf_cr ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_apc ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_backspace ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_bel ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_dcs ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_cursor_movement ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_del ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_erase ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_form_feed ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_nul ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_osc52_clipboard ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_osc8_hyperlink ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_multiple_sequences ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::escape_sequences_fully_stripped ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_osc52_clipboard_st ... ok [INFO] [stdout] test presenter::proptests::dp_emit_equivalence ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_preserves_clean_input ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_osc_title_st ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_pm ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_osc_title_bel ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_sgr_color ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_private_modes ... ok [INFO] [stdout] test sanitize::tests::slow_path_strips_vertical_tab ... ok [INFO] [stdout] test sanitize::tests::text_trusted ... ok [INFO] [stdout] test spatial_hit_index::tests::all_hit_region_variants_returned ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_invalidated_by_invalidate_all_then_same_position ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_hit_on_same_position ... ok [INFO] [stdout] test sanitize::tests::text_display ... ok [INFO] [stdout] test sanitize::tests::text_into_owned ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_output_no_c1_controls ... ok [INFO] [stdout] test sanitize::tests::text_sanitized ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_idempotent ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_invalidated_on_register ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_not_updated_by_readonly ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_stats_100_percent_hit_rate ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_stats_default ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_stats_debug_copy ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_updates_on_different_positions ... ok [INFO] [stdout] test spatial_hit_index::tests::cache_stats_0_percent_hit_rate ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_entry_contains_zero_height ... ok [INFO] [stdout] test spatial_hit_index::tests::clear_on_empty_is_idempotent ... ok [INFO] [stdout] test spatial_hit_index::tests::config_debug_clone ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_entry_debug_clone_copy_eq ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_entry_ne ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_test_at_exact_screen_boundary ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_test_at_grid_cell_boundaries ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_test_border_inclusive ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_test_readonly_equivalent_to_mutable_for_grid ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_test_readonly_matches_mutable ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_test_readonly_out_of_bounds ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_test_readonly_skips_removed ... ok [INFO] [stdout] test spatial_hit_index::tests::index_debug_format ... ok [INFO] [stdout] test spatial_hit_index::tests::initial_state_empty ... ok [INFO] [stdout] test spatial_hit_index::tests::invalidate_all ... ok [INFO] [stdout] test spatial_hit_index::tests::invalidate_non_overlapping_region_preserves_cache ... ok [INFO] [stdout] test spatial_hit_index::tests::invalidate_region ... ok [INFO] [stdout] test spatial_hit_index::tests::invalidate_region_outside_screen ... ok [INFO] [stdout] test spatial_hit_index::tests::invalidate_region_zero_size ... ok [INFO] [stdout] test spatial_hit_index::tests::large_rect_spans_many_buckets ... ok [INFO] [stdout] test spatial_hit_index::tests::new_with_cell_size_one ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_entry_contains ... ok [INFO] [stdout] test spatial_hit_index::tests::new_with_cell_size_zero_clamped_to_one ... ok [INFO] [stdout] test spatial_hit_index::tests::new_with_large_cell_size ... ok [INFO] [stdout] test spatial_hit_index::tests::new_zero_dimensions ... ok [INFO] [stdout] test spatial_hit_index::tests::double_remove_returns_false ... ok [INFO] [stdout] test spatial_hit_index::tests::out_of_bounds_returns_none ... ok [INFO] [stdout] test spatial_hit_index::tests::rebuild_counted_in_stats ... ok [INFO] [stdout] test spatial_hit_index::tests::property_random_layout_correctness ... ok [INFO] [stdout] test spatial_hit_index::tests::register_and_hit_test ... ok [INFO] [stdout] test spatial_hit_index::tests::clear_all ... ok [INFO] [stdout] test spatial_hit_index::tests::config_defaults ... ok [INFO] [stdout] test spatial_hit_index::tests::register_rect_extending_past_screen ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_entry_contains_at_saturating_boundary ... ok [INFO] [stdout] test spatial_hit_index::tests::register_many_widgets ... ok [INFO] [stdout] test spatial_hit_index::tests::register_zero_height_rect_not_in_buckets ... ok [INFO] [stdout] test spatial_hit_index::tests::register_zero_width_rect_not_in_buckets ... ok [INFO] [stdout] test spatial_hit_index::tests::hit_entry_contains_zero_width ... ok [INFO] [stdout] test spatial_hit_index::tests::remove_middle_entry_compacts ... ok [INFO] [stdout] test spatial_hit_index::tests::register_remove_register_cycle ... ok [INFO] [stdout] test spatial_hit_index::tests::remove_widget ... ok [INFO] [stdout] test spatial_hit_index::tests::reset_stats_clears_counters ... ok [INFO] [stdout] test spatial_hit_index::tests::single_cell_screen ... ok [INFO] [stdout] test spatial_hit_index::tests::stats_hit_rate ... ok [INFO] [stdout] test spatial_hit_index::tests::single_pixel_widget ... ok [INFO] [stdout] test spatial_hit_index::tests::three_overlapping_widgets_z_order ... ok [INFO] [stdout] test spatial_hit_index::tests::remove_nonexistent_returns_false ... ok [INFO] [stdout] test spatial_hit_index::tests::same_z_order_later_wins ... ok [INFO] [stdout] test spatial_hit_index::tests::update_nonexistent_returns_false ... ok [INFO] [stdout] test spatial_hit_index::tests::update_shrinks_widget ... ok [INFO] [stdout] test spatial_hit_index::tests::with_defaults_uses_default_config ... ok [INFO] [stdout] test spatial_hit_index::tests::z_order_higher_z_beats_later_registration ... ok [INFO] [stdout] test spatial_hit_index::tests::update_to_zero_size_rect ... ok [INFO] [stdout] test spatial_hit_index::tests::z_order_tie_broken_by_registration_order ... ok [INFO] [stdout] test spatial_hit_index::tests::zero_size_rect_ignored ... ok [INFO] [stdout] test spatial_hit_index::tests::update_widget_rect ... ok [INFO] [stdout] test spatial_hit_index::tests::z_order_topmost_wins ... ok [INFO] [stdout] test spatial_hit_index::tests::register_simple_uses_z_order_zero ... ok [INFO] [stdout] test spatial_hit_index::tests::register_hit_update_hit_remove_clear ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::sanitize_output_no_forbidden_c0 ... ok [INFO] [stdout] test terminal_model::tests::alt_screen_toggle_is_tracked ... ok [INFO] [stdout] test terminal_model::tests::backspace_at_column_zero_no_move ... ok [INFO] [stdout] test terminal_model::tests::backspace_moves_cursor_back ... ok [INFO] [stdout] test terminal_model::tests::bel_in_ground_is_ignored ... ok [INFO] [stdout] test terminal_model::tests::cell_in_bounds_returns_some ... ok [INFO] [stdout] test terminal_model::tests::cell_out_of_bounds_returns_none ... ok [INFO] [stdout] test terminal_model::tests::cha_clamps_to_width ... ok [INFO] [stdout] test terminal_model::tests::cha_moves_to_column ... ok [INFO] [stdout] test terminal_model::tests::cr_lf_handling ... ok [INFO] [stdout] test terminal_model::tests::csi_save_restore_cursor_no_panic ... ok [INFO] [stdout] test terminal_model::tests::csi_unknown_final_byte_ignored ... ok [INFO] [stdout] test terminal_model::tests::csi_with_intermediate_no_crash ... ok [INFO] [stdout] test terminal_model::tests::cub_at_left_stays ... ok [INFO] [stdout] test terminal_model::tests::cud_at_bottom_stays ... ok [INFO] [stdout] test terminal_model::tests::cuf_at_right_stays ... ok [INFO] [stdout] test terminal_model::tests::cup_clamps_large_row_col ... ok [INFO] [stdout] test terminal_model::tests::cup_moves_cursor ... ok [INFO] [stdout] test terminal_model::tests::cup_with_defaults ... ok [INFO] [stdout] test terminal_model::tests::cup_with_f_final_byte ... ok [INFO] [stdout] test terminal_model::tests::current_cell_at_cursor ... ok [INFO] [stdout] test terminal_model::tests::cursor_visibility ... ok [INFO] [stdout] test terminal_model::tests::cuu_at_top_stays ... ok [INFO] [stdout] test terminal_model::tests::dangling_link_detection ... ok [INFO] [stdout] test terminal_model::tests::diff_grid_different_returns_some ... ok [INFO] [stdout] test terminal_model::tests::diff_grid_identical_returns_none ... ok [INFO] [stdout] test terminal_model::tests::diff_grid_size_mismatch ... ok [INFO] [stdout] test terminal_model::tests::dump_sequences_c0_controls ... ok [INFO] [stdout] test terminal_model::tests::dump_sequences_osc ... ok [INFO] [stdout] test terminal_model::tests::dump_sequences_osc_st ... ok [INFO] [stdout] test terminal_model::tests::dump_sequences_readable ... ok [INFO] [stdout] test terminal_model::tests::dump_sequences_trailing_esc ... ok [INFO] [stdout] test terminal_model::tests::dump_sequences_unknown_escape ... ok [INFO] [stdout] test terminal_model::tests::ed_mode_0_erases_from_cursor_to_end ... ok [INFO] [stdout] test terminal_model::tests::ed_mode_1_erases_from_start_to_cursor ... ok [INFO] [stdout] test terminal_model::tests::el_mode_1_erases_from_start_to_cursor ... ok [INFO] [stdout] test terminal_model::tests::el_mode_2_erases_entire_line ... ok [INFO] [stdout] test terminal_model::tests::erase_display ... ok [INFO] [stdout] test terminal_model::tests::erase_line ... ok [INFO] [stdout] test terminal_model::tests::erase_line_uses_current_bg ... ok [INFO] [stdout] test terminal_model::tests::erase_scrollback_mode_clears_screen ... ok [INFO] [stdout] test terminal_model::tests::esc_7_8_do_not_panic ... ok [INFO] [stdout] test terminal_model::tests::esc_equals_greater_ignored ... ok [INFO] [stdout] test terminal_model::tests::esc_esc_double_escape_handled ... ok [INFO] [stdout] test sanitize::tests::proptest_adversarial::adversarial_mixed_input_safe ... ok [INFO] [stdout] test terminal_model::tests::lf_at_bottom_row_stays ... ok [INFO] [stdout] test terminal_model::tests::line_wrap ... ok [INFO] [stdout] test terminal_model::tests::link_url_invalid_id_returns_none ... ok [INFO] [stdout] test terminal_model::tests::link_url_zero_is_empty ... ok [INFO] [stdout] test terminal_model::tests::mode_flags_default_vs_new ... ok [INFO] [stdout] test terminal_model::tests::has_dangling_link_initially_false ... ok [INFO] [stdout] test terminal_model::tests::model_cell_clone ... ok [INFO] [stdout] test terminal_model::tests::model_cell_default_is_space ... ok [INFO] [stdout] test terminal_model::tests::model_cell_eq ... ok [INFO] [stdout] test terminal_model::tests::model_cell_with_char ... ok [INFO] [stdout] test terminal_model::tests::multiple_hyperlinks_get_different_ids ... ok [INFO] [stdout] test terminal_model::tests::new_1x1 ... ok [INFO] [stdout] test terminal_model::tests::new_creates_empty_grid ... ok [INFO] [stdout] test terminal_model::tests::new_zero_dimensions_clamped ... ok [INFO] [stdout] test terminal_model::tests::osc8_hyperlinks ... ok [INFO] [stdout] test terminal_model::tests::osc8_with_st_terminator ... ok [INFO] [stdout] test terminal_model::tests::printable_text_writes_to_grid ... ok [INFO] [stdout] test terminal_model::tests::relative_cursor_moves ... ok [INFO] [stdout] test terminal_model::tests::reset_clears_state ... ok [INFO] [stdout] test terminal_model::tests::reset_preserves_dimensions ... ok [INFO] [stdout] test terminal_model::tests::row_out_of_bounds_returns_none ... ok [INFO] [stdout] test terminal_model::tests::row_text_trims_trailing_spaces ... ok [INFO] [stdout] test terminal_model::tests::scroll_region_invalid_params_do_not_corrupt_state ... ok [INFO] [stdout] test terminal_model::proptests::relative_moves_in_bounds ... ok [INFO] [stdout] test terminal_model::tests::sgr_256_basic_range ... ok [INFO] [stdout] test terminal_model::tests::sgr_256_bright_range ... ok [INFO] [stdout] test terminal_model::tests::sgr_256_colors ... ok [INFO] [stdout] test terminal_model::tests::sgr_256_grayscale ... ok [INFO] [stdout] test terminal_model::proptests::hyperlinks_balance ... ok [INFO] [stdout] test terminal_model::tests::sgr_basic_background ... ok [INFO] [stdout] test terminal_model::tests::sgr_bright_fg ... ok [INFO] [stdout] test terminal_model::tests::sgr_default_bg_49 ... ok [INFO] [stdout] test terminal_model::tests::sgr_default_fg_39 ... ok [INFO] [stdout] test terminal_model::tests::sgr_dim ... ok [INFO] [stdout] test terminal_model::tests::sgr_empty_params_resets ... ok [INFO] [stdout] test terminal_model::tests::sgr_italic ... ok [INFO] [stdout] test terminal_model::tests::sgr_bright_bg ... ok [INFO] [stdout] test terminal_model::tests::sgr_remove_italic ... ok [INFO] [stdout] test terminal_model::tests::sgr_reverse ... ok [INFO] [stdout] test terminal_model::tests::sgr_rgb_colors ... ok [INFO] [stdout] test terminal_model::tests::sgr_sets_colors ... ok [INFO] [stdout] test terminal_model::tests::sgr_sets_style_flags ... ok [INFO] [stdout] test terminal_model::tests::sgr_state_default_fields ... ok [INFO] [stdout] test terminal_model::tests::sgr_state_reset ... ok [INFO] [stdout] test terminal_model::tests::sgr_strikethrough ... ok [INFO] [stdout] test terminal_model::tests::sgr_underline ... ok [INFO] [stdout] test terminal_model::tests::sync_output_extra_end_saturates ... ok [INFO] [stdout] test terminal_model::tests::sync_output_nested ... ok [INFO] [stdout] test terminal_model::tests::sync_output_tracking ... ok [INFO] [stdout] test terminal_model::proptests::sgr_reset_clears_flags ... ok [INFO] [stdout] test terminal_model::tests::tab_clamps_at_right_edge ... ok [INFO] [stdout] test terminal_model::tests::terminal_model_debug ... ok [INFO] [stdout] test terminal_model::tests::unknown_escape_returns_to_ground ... ok [INFO] [stdout] test terminal_model::tests::tab_moves_to_next_tab_stop ... ok [INFO] [stdout] test terminal_model::tests::utf8_multibyte_stream_is_decoded ... ok [INFO] [stdout] test terminal_model::tests::scroll_region_sequences_are_ignored_but_safe ... ok [INFO] [stdout] test terminal_model::tests::mode_flags_new_defaults ... ok [INFO] [stdout] test terminal_model::tests::sgr_remove_bold ... ok [INFO] [stdout] test terminal_model::tests::utf8_sequence_can_span_process_calls ... ok [INFO] [stdout] test terminal_model::tests::wide_char_occupies_two_cells ... ok [INFO] [stdout] test tests::char_width_ascii_control ... ok [INFO] [stdout] test tests::char_width_ascii_whitespace ... ok [INFO] [stdout] test tests::char_width_bidi_controls ... ok [INFO] [stdout] test tests::char_width_euro_sign ... ok [INFO] [stdout] test tests::char_width_normal_non_ascii ... ok [INFO] [stdout] test tests::char_width_variation_selectors ... ok [INFO] [stdout] test tests::char_width_zero_width_combining ... ok [INFO] [stdout] test tests::char_width_zero_width_special ... ok [INFO] [stdout] test terminal_model::tests::vpa_moves_to_row ... ok [INFO] [stdout] test terminal_model::tests::vpa_clamps_to_height ... ok [INFO] [stdout] test tests::display_width_ascii_with_tabs ... ok [INFO] [stdout] test tests::display_width_empty_string ... ok [INFO] [stdout] test tests::display_width_combining_characters ... ok [INFO] [stdout] test tests::display_width_matches_expected_samples ... ok [INFO] [stdout] test tests::display_width_mixed_ascii_emoji ... ok [INFO] [stdout] test tests::display_width_multiple_emoji ... ok [INFO] [stdout] test tests::display_width_pure_ascii_fast_path ... ok [INFO] [stdout] test tests::display_width_single_ascii_char ... ok [INFO] [stdout] test tests::grapheme_width_ascii_space ... ok [INFO] [stdout] test tests::grapheme_width_combining_accent ... ok [INFO] [stdout] test tests::grapheme_width_newline ... ok [INFO] [stdout] test tests::grapheme_width_ascii_tilde ... ok [INFO] [stdout] test tests::grapheme_width_skin_tone_modifier ... ok [INFO] [stdout] test tests::grapheme_width_tab ... ok [INFO] [stdout] test tests::display_width_zero_width_chars_in_string ... ok [INFO] [stdout] test tests::grapheme_width_matches_expected_samples ... ok [INFO] [stdout] test terminal_model::proptests::sync_output_balances ... ok [INFO] [stdout] test tests::grapheme_width_zero_width_space ... ok [INFO] [stdout] test tests::grapheme_width_zero_width_joiner ... ok [INFO] [stdout] test tests::char_width_ascii_printable ... ok [INFO] [stdout] test terminal_model::proptests::cup_cursor_in_bounds ... ok [INFO] [stdout] test terminal_model::proptests::random_bytes_no_panic ... ok [INFO] [stdout] test terminal_model::proptests::erase_operations_safe ... ok [INFO] [stdout] test diff::tests::perf_block_scan_vs_scalar_baseline ... FAILED [INFO] [stdout] test terminal_model::proptests::printable_ascii_no_crash ... ok [INFO] [stdout] test diff::proptests::property_diff_equivalence_complex_spans ... ok [INFO] [stdout] test presenter::tests::perf_cost_model_overhead ... FAILED [INFO] [stdout] test buffer::tests::adaptive_buffer_invariant_capacity_geq_logical ... ok [INFO] [stdout] test presenter::tests::perf_presenter_microbench ... ok [INFO] [stdout] test diff::span_edge_cases::property_span_diff_equivalence_large ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- link_registry::tests::register_very_long_url stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'link_registry::tests::register_very_long_url' (1271) panicked at src/link_registry.rs:412:9: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: None [INFO] [stdout] right: Some("https://example.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5f58c7b826ea - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5f58c7b826ea - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5f58c7b99d4a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5f58c7b99d4a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x5f58c7b87542 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5f58c7b87542 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5f58c7b5f7df - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5f58c7b5f7df - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5f58c7b7a139 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5f58c7a09cac - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x5f58c7a09cac - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5f58c7b7a2f2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x5f58c7b7a2f2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5f58c7b5f898 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5f58c7b54849 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5f58c7b605ad - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5f58c7b9a58c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5f58c7b9a443 - core[fa0eadad68403074]::panicking::assert_failed_inner [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:439:17 [INFO] [stdout] 20: 0x5f58c77159d1 - core[fa0eadad68403074]::panicking::assert_failed::, core[fa0eadad68403074]::option::Option<&str>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:394:5 [INFO] [stdout] 21: 0x5f58c773fd60 - ftui_render[e6c482009d76d214]::link_registry::tests::register_very_long_url [INFO] [stdout] at /opt/rustwide/workdir/src/link_registry.rs:412:9 [INFO] [stdout] 22: 0x5f58c7721957 - ftui_render[e6c482009d76d214]::link_registry::tests::register_very_long_url::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/link_registry.rs:408:32 [INFO] [stdout] 23: 0x5f58c79e6246 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5f58c79fdd8b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x5f58c79fdd8b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x5f58c7a0a77b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x5f58c7a04bd4 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x5f58c7a04bd4 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x5f58c7a0d382 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x5f58c7a0d382 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x5f58c7b81c9f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 43: 0x5f58c7b81c9f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x741531b31aa4 - [INFO] [stdout] 45: 0x741531bbea64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- presenter::tests::link_at_buffer_boundaries stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'presenter::tests::link_at_buffer_boundaries' (1345) panicked at src/presenter.rs:2062:9: [INFO] [stdout] assertion failed: output_str.contains("https://boundary.test") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5f58c7b826ea - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5f58c7b826ea - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5f58c7b99d4a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5f58c7b99d4a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x5f58c7b87542 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5f58c7b87542 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5f58c7b5f7df - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5f58c7b5f7df - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5f58c7b7a139 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5f58c7a09cac - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x5f58c7a09cac - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5f58c7b7a2f2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x5f58c7b7a2f2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5f58c7b5f8ca - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x5f58c7b54849 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5f58c7b605ad - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5f58c7b9a58c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5f58c7b9a552 - core[fa0eadad68403074]::panicking::panic [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:150:5 [INFO] [stdout] 20: 0x5f58c78067ba - ftui_render[e6c482009d76d214]::presenter::tests::link_at_buffer_boundaries [INFO] [stdout] at /opt/rustwide/workdir/src/presenter.rs:2062:9 [INFO] [stdout] 21: 0x5f58c77e87d7 - ftui_render[e6c482009d76d214]::presenter::tests::link_at_buffer_boundaries::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/presenter.rs:2032:35 [INFO] [stdout] 22: 0x5f58c79f85c6 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x5f58c79fdd8b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5f58c79fdd8b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 25: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 26: 0x5f58c7a0a77b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 27: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 28: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 29: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 30: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 31: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 32: 0x5f58c7a04bd4 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 33: 0x5f58c7a04bd4 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 34: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 35: 0x5f58c7a0d382 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 36: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 37: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 38: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 39: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 40: 0x5f58c7a0d382 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 41: 0x5f58c7b81c9f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 42: 0x5f58c7b81c9f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 43: 0x741531b31aa4 - [INFO] [stdout] 44: 0x741531bbea64 - clone [INFO] [stdout] 45: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- presenter::tests::link_transitions_linked_unlinked_linked stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'presenter::tests::link_transitions_linked_unlinked_linked' (1348) panicked at src/presenter.rs:2133:9: [INFO] [stdout] Expected link to open at least twice, got 0 occurrences [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5f58c7b826ea - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5f58c7b826ea - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5f58c7b99d4a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5f58c7b99d4a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x5f58c7b87542 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5f58c7b87542 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5f58c7b5f7df - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5f58c7b5f7df - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5f58c7b7a139 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5f58c7a09cac - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x5f58c7a09cac - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5f58c7b7a2f2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x5f58c7b7a2f2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5f58c7b5f898 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5f58c7b54849 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5f58c7b605ad - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5f58c7b9a58c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5f58c781cfdb - ftui_render[e6c482009d76d214]::presenter::tests::link_transitions_linked_unlinked_linked [INFO] [stdout] at /opt/rustwide/workdir/src/presenter.rs:2133:9 [INFO] [stdout] 20: 0x5f58c77e9467 - ftui_render[e6c482009d76d214]::presenter::tests::link_transitions_linked_unlinked_linked::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/presenter.rs:2102:49 [INFO] [stdout] 21: 0x5f58c79f9686 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 22: 0x5f58c79fdd8b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x5f58c79fdd8b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 24: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 25: 0x5f58c7a0a77b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 26: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 27: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 28: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 29: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 30: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 31: 0x5f58c7a04bd4 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 32: 0x5f58c7a04bd4 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 33: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 34: 0x5f58c7a0d382 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 35: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 36: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 37: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 38: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 39: 0x5f58c7a0d382 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 40: 0x5f58c7b81c9f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 41: 0x5f58c7b81c9f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 42: 0x741531b31aa4 - [INFO] [stdout] 43: 0x741531bbea64 - clone [INFO] [stdout] 44: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- diff::tests::perf_block_scan_vs_scalar_baseline stdout ---- [INFO] [stdout] {"ts":"2026-02-04T00:00:00Z","event":"block_scan_baseline","width":200,"height":50,"samples":50,"iters_per_sample":20,"p50_us":1878,"p95_us":3969,"p99_us":4569,"mean_us":1906.52,"variance_us":1058945.57,"checksum":"0xc658cab7b01987e5"} [INFO] [stdout] [INFO] [stdout] thread 'diff::tests::perf_block_scan_vs_scalar_baseline' (730) panicked at src/diff.rs:1751:9: [INFO] [stdout] Diff too slow: p50=1878µs (budget 500µs) for 200x50 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5f58c7b826ea - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5f58c7b826ea - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5f58c7b99d4a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5f58c7b99d4a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x5f58c7b87542 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5f58c7b87542 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5f58c7b5f7df - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5f58c7b5f7df - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5f58c7b7a139 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5f58c7a09cac - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x5f58c7a09cac - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5f58c7b7a2f2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x5f58c7b7a2f2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5f58c7b5f898 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5f58c7b54849 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5f58c7b605ad - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5f58c7b9a58c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5f58c778d7dc - ftui_render[e6c482009d76d214]::diff::tests::perf_block_scan_vs_scalar_baseline [INFO] [stdout] at /opt/rustwide/workdir/src/diff.rs:1751:9 [INFO] [stdout] 20: 0x5f58c776bb57 - ftui_render[e6c482009d76d214]::diff::tests::perf_block_scan_vs_scalar_baseline::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/diff.rs:1672:44 [INFO] [stdout] 21: 0x5f58c79efa86 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 22: 0x5f58c79fdd8b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x5f58c79fdd8b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 24: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 25: 0x5f58c7a0a77b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 26: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 27: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 28: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 29: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 30: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 31: 0x5f58c7a04bd4 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 32: 0x5f58c7a04bd4 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 33: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 34: 0x5f58c7a0d382 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 35: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 36: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 37: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 38: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 39: 0x5f58c7a0d382 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 40: 0x5f58c7b81c9f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 41: 0x5f58c7b81c9f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 42: 0x741531b31aa4 - [INFO] [stdout] 43: 0x741531bbea64 - clone [INFO] [stdout] 44: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- presenter::tests::perf_cost_model_overhead stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'presenter::tests::perf_cost_model_overhead' (1353) panicked at src/presenter.rs:2903:9: [INFO] [stdout] Cost model planning too slow: 1.397059505s for 1000 iterations [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5f58c7b826ea - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5f58c7b826ea - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5f58c7b826ea - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5f58c7b99d4a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5f58c7b99d4a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x5f58c7b87542 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5f58c7b87542 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5f58c7b5f7df - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5f58c7b5f7df - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5f58c7b7a139 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5f58c7a09cac - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x5f58c7a09cac - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5f58c7b7a2f2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x5f58c7b7a2f2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5f58c7b5f898 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5f58c7b54849 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5f58c7b605ad - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5f58c7b9a58c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5f58c7804e49 - ftui_render[e6c482009d76d214]::presenter::tests::perf_cost_model_overhead [INFO] [stdout] at /opt/rustwide/workdir/src/presenter.rs:2903:9 [INFO] [stdout] 20: 0x5f58c77e8687 - ftui_render[e6c482009d76d214]::presenter::tests::perf_cost_model_overhead::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/presenter.rs:2882:34 [INFO] [stdout] 21: 0x5f58c79f8406 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 22: 0x5f58c79fdd8b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x5f58c79fdd8b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 24: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 25: 0x5f58c7a0a77b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 26: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 27: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 28: 0x5f58c7a0a77b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 29: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 30: 0x5f58c7a0a77b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 31: 0x5f58c7a04bd4 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 32: 0x5f58c7a04bd4 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 33: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 34: 0x5f58c7a0d382 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 35: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 36: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 37: 0x5f58c7a0d382 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 38: 0x5f58c7a0d382 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 39: 0x5f58c7a0d382 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 40: 0x5f58c7b81c9f - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 41: 0x5f58c7b81c9f - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 42: 0x741531b31aa4 - [INFO] [stdout] 43: 0x741531bbea64 - clone [INFO] [stdout] 44: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] diff::tests::perf_block_scan_vs_scalar_baseline [INFO] [stdout] link_registry::tests::register_very_long_url [INFO] [stdout] presenter::tests::link_at_buffer_boundaries [INFO] [stdout] presenter::tests::link_transitions_linked_unlinked_linked [INFO] [stdout] presenter::tests::perf_cost_model_overhead [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1728 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.08s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] running `Command { std: "docker" "inspect" "8b20ed6e041d1135761cfad032ebb29c63f51daf6e626c4f1a129d0dbd0532af", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8b20ed6e041d1135761cfad032ebb29c63f51daf6e626c4f1a129d0dbd0532af", kill_on_drop: false }` [INFO] [stdout] 8b20ed6e041d1135761cfad032ebb29c63f51daf6e626c4f1a129d0dbd0532af