[INFO] cloning repository https://github.com/Barogthor/hprof-visualizer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Barogthor/hprof-visualizer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBarogthor%2Fhprof-visualizer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBarogthor%2Fhprof-visualizer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a8e1e33393271d6e1ae0776d81d07bd80629117b [INFO] testing Barogthor/hprof-visualizer against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBarogthor%2Fhprof-visualizer" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Barogthor/hprof-visualizer [INFO] finished tweaking git repo https://github.com/Barogthor/hprof-visualizer [INFO] tweaked toml for git repo https://github.com/Barogthor/hprof-visualizer written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Barogthor/hprof-visualizer 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 git repo https://github.com/Barogthor/hprof-visualizer 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 line-clipping v0.3.5 [INFO] [stderr] Downloaded unicode-truncate v2.0.1 [INFO] [stderr] Downloaded tracing-appender v0.2.4 [INFO] [stderr] Downloaded lru v0.16.3 [INFO] [stderr] Downloaded lab v0.11.0 [INFO] [stderr] Downloaded vtparse v0.6.2 [INFO] [stderr] Downloaded memmem v0.1.1 [INFO] [stderr] Downloaded ratatui v0.30.0 [INFO] [stderr] Downloaded xorf v0.11.0 [INFO] [stderr] Downloaded ratatui-termwiz v0.1.0 [INFO] [stderr] Downloaded wezterm-bidi v0.2.3 [INFO] [stderr] Downloaded euclid v0.22.13 [INFO] [stderr] Downloaded ntapi v0.4.3 [INFO] [stderr] Downloaded finl_unicode v1.4.0 [INFO] [stderr] Downloaded compact_str v0.9.0 [INFO] [stderr] Downloaded ratatui-core v0.1.0 [INFO] [stderr] Downloaded ratatui-crossterm v0.1.0 [INFO] [stderr] Downloaded sysinfo v0.34.2 [INFO] [stderr] Downloaded ratatui-widgets v0.3.0 [INFO] [stderr] Downloaded ratatui-macros v0.7.0 [INFO] [stderr] Downloaded atomic v0.6.1 [INFO] [stderr] Downloaded csscolorparser v0.6.2 [INFO] [stderr] Downloaded wezterm-input-types v0.1.0 [INFO] [stderr] Downloaded wezterm-blob-leases v0.1.1 [INFO] [stderr] Downloaded kasuari v0.4.11 [INFO] [stderr] Downloaded mac_address v1.1.8 [INFO] [stderr] Downloaded wezterm-color-types v0.3.0 [INFO] [stderr] Downloaded termwiz v0.23.3 [INFO] [stderr] Downloaded wezterm-dynamic-derive v0.1.1 [INFO] [stderr] Downloaded wezterm-dynamic v0.2.1 [INFO] [stderr] Downloaded deltae v0.3.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 7a3a7c4167623f657fc0752df95f7b16de5ab0cb7d1996255b03b3c494c51f40 [INFO] running `Command { std: "docker" "start" "-a" "7a3a7c4167623f657fc0752df95f7b16de5ab0cb7d1996255b03b3c494c51f40", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7a3a7c4167623f657fc0752df95f7b16de5ab0cb7d1996255b03b3c494c51f40", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7a3a7c4167623f657fc0752df95f7b16de5ab0cb7d1996255b03b3c494c51f40", kill_on_drop: false }` [INFO] [stdout] 7a3a7c4167623f657fc0752df95f7b16de5ab0cb7d1996255b03b3c494c51f40 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] befa3b3cac59a92aa4a50015cd48a59564ec03e5640b7329cf14b972c34b4e7b [INFO] running `Command { std: "docker" "start" "-a" "befa3b3cac59a92aa4a50015cd48a59564ec03e5640b7329cf14b972c34b4e7b", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling hprof-api v0.1.0 (/opt/rustwide/workdir/crates/hprof-api) [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling number_prefix v0.4.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling memmap2 v0.9.10 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling sysinfo v0.34.2 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling indicatif v0.17.11 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling kasuari v0.4.11 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling xorf v0.11.0 [INFO] [stderr] Compiling hprof-parser v0.1.0 (/opt/rustwide/workdir/crates/hprof-parser) [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling hprof-engine v0.1.0 (/opt/rustwide/workdir/crates/hprof-engine) [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling hprof-tui v0.1.0 (/opt/rustwide/workdir/crates/hprof-tui) [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling hprof-cli v0.1.0 (/opt/rustwide/workdir/crates/hprof-cli) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.91s [INFO] running `Command { std: "docker" "inspect" "befa3b3cac59a92aa4a50015cd48a59564ec03e5640b7329cf14b972c34b4e7b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "befa3b3cac59a92aa4a50015cd48a59564ec03e5640b7329cf14b972c34b4e7b", kill_on_drop: false }` [INFO] [stdout] befa3b3cac59a92aa4a50015cd48a59564ec03e5640b7329cf14b972c34b4e7b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 4771328c3c27638883e4fad3713613033831a12325bc0bb7722c19dfa9ae1d2b [INFO] running `Command { std: "docker" "start" "-a" "4771328c3c27638883e4fad3713613033831a12325bc0bb7722c19dfa9ae1d2b", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling zerocopy-derive v0.8.40 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling hprof-api v0.1.0 (/opt/rustwide/workdir/crates/hprof-api) [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling xorf v0.11.0 [INFO] [stderr] Compiling hprof-parser v0.1.0 (/opt/rustwide/workdir/crates/hprof-parser) [INFO] [stderr] Compiling hprof-engine v0.1.0 (/opt/rustwide/workdir/crates/hprof-engine) [INFO] [stderr] Compiling hprof-tui v0.1.0 (/opt/rustwide/workdir/crates/hprof-tui) [INFO] [stderr] Compiling hprof-cli v0.1.0 (/opt/rustwide/workdir/crates/hprof-cli) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 45.05s [INFO] running `Command { std: "docker" "inspect" "4771328c3c27638883e4fad3713613033831a12325bc0bb7722c19dfa9ae1d2b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4771328c3c27638883e4fad3713613033831a12325bc0bb7722c19dfa9ae1d2b", kill_on_drop: false }` [INFO] [stdout] 4771328c3c27638883e4fad3713613033831a12325bc0bb7722c19dfa9ae1d2b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 12044b41ff11f5a86fc16e55fc30294d96e934f73e74f0ee7e12229771a414bc [INFO] running `Command { std: "docker" "start" "-a" "12044b41ff11f5a86fc16e55fc30294d96e934f73e74f0ee7e12229771a414bc", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.35s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hprof_api-53f2a7b1a7f297c5) [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/hprof_visualizer-a69bef1687ae12e8) [INFO] [stdout] running 13 tests [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hprof_engine-7fc0570d94f6c18b) [INFO] [stdout] test budget::tests::bytes_zero_returns_some_zero ... ok [INFO] [stdout] test budget::tests::bytes_variant_returns_value ... ok [INFO] [stdout] test budget::tests::unlimited_bytes_is_none ... ok [INFO] [stdout] test memory_size::tests::fxhashmap_helper_u64_u64_calculation ... ok [INFO] [stdout] test memory_size::tests::fxhashmap_helper_includes_control_bytes ... ok [INFO] [stdout] test memory_size::tests::fxhashmap_helper_zero_capacity_returns_zero ... ok [INFO] [stdout] test memory_size::tests::trait_can_be_implemented_and_called ... ok [INFO] [stdout] test progress::test_utils_tests::test_observer_captures_phase_changed ... ok [INFO] [stdout] test progress::test_utils_tests::test_observer_collects_all_event_types ... ok [INFO] [stdout] test progress::tests::notifier_delegates_phase_changed_to_observer ... ok [INFO] [stdout] test budget::tests::copy_and_clone ... ok [INFO] [stdout] test progress::tests::null_observer_compiles_and_is_callable ... ok [INFO] [stdout] test budget::tests::default_is_unlimited ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 48 tests [INFO] [stdout] test progress::tests::cli_observer_constructs_without_panic ... ok [INFO] [stdout] test progress::tests::on_heap_bytes_extracted_finishes_bar_at_done_eq_total ... ok [INFO] [stdout] test config::tests::no_file_returns_defaults ... ok [INFO] [stdout] test config::tests::unreadable_config_emits_warning_and_defaults ... ok [INFO] [stdout] test config::tests::config_loaded_from_cwd ... ok [INFO] [stdout] test progress::tests::cli_observer_on_segment_completed_does_not_panic ... ok [INFO] [stdout] test progress::tests::on_names_resolved_subsequent_calls_do_not_recreate_bar ... ok [INFO] [stdout] test splash::tests::build_splash_contains_tool_name ... ok [INFO] [stdout] test config::tests::keymap_absent_is_none ... ok [INFO] [stdout] test config::tests::keymap_qwerty_deserializes ... ok [INFO] [stdout] test progress::tests::on_phase_changed_reuses_spinner_and_updates_msg ... ok [INFO] [stdout] test splash::tests::build_splash_ends_with_newline ... ok [INFO] [stdout] test splash::tests::build_splash_contains_version ... ok [INFO] [stdout] test config::tests::malformed_toml_emits_warning ... ok [INFO] [stdout] test config::tests::malformed_toml_returns_defaults ... ok [INFO] [stdout] test config::tests::cwd_takes_priority_over_binary_dir ... ok [INFO] [stdout] test config::tests::keymap_azerty_deserializes ... ok [INFO] [stdout] test tests::both_absent_defaults_to_azerty ... ok [INFO] [stdout] test splash::tests::build_splash_max_line_width ... ok [INFO] [stdout] test tests::both_absent_is_none ... ok [INFO] [stdout] test progress::tests::cli_observer_on_bytes_scanned_does_not_panic ... ok [INFO] [stdout] test config::tests::unknown_key_ignored ... ok [INFO] [stdout] test config::tests::config_loaded_from_binary_dir ... ok [INFO] [stdout] test tests::cli_keymap_azerty_parses_to_preset ... ok [INFO] [stdout] test tests::cli_keymap_bogus_is_rejected ... ok [INFO] [stdout] test progress::tests::on_names_resolved_clears_phase_bar_on_first_call ... ok [INFO] [stdout] test tests::cli_keymap_overrides_config_keymap ... ok [INFO] [stdout] test progress::tests::on_phase_changed_creates_spinner_without_panic ... ok [INFO] [stdout] test progress::tests::finish_clears_all_bars_without_panic ... ok [INFO] [stdout] test tests::cli_memory_limit_wires_to_engine_config_budget ... ok [INFO] [stdout] test tests::cli_overrides_config_memory_limit ... ok [INFO] [stdout] test tests::cli_parse_extra_positional_is_error ... ok [INFO] [stdout] test tests::cli_parse_file_only ... ok [INFO] [stdout] test tests::cli_parse_missing_file_is_error ... ok [INFO] [stdout] test tests::cli_parse_with_keymap_flag ... ok [INFO] [stdout] test tests::cli_parse_with_memory_limit ... ok [INFO] [stdout] test tests::config_bad_value_error_message_names_source ... ok [INFO] [stdout] test tests::config_keymap_used_when_cli_absent ... ok [INFO] [stdout] test tests::parse_memory_size_empty_is_error ... ok [INFO] [stdout] test tests::parse_memory_size_gigabytes ... ok [INFO] [stdout] test tests::config_used_when_cli_absent ... ok [INFO] [stdout] test tests::parse_memory_size_invalid_is_error ... ok [INFO] [stdout] test tests::parse_memory_size_kilobytes ... ok [INFO] [stdout] test tests::parse_memory_size_megabytes ... ok [INFO] [stdout] test tests::parse_memory_size_overflow_is_error ... ok [INFO] [stdout] test tests::parse_memory_size_plain_bytes ... ok [INFO] [stdout] test tests::parse_memory_size_terabytes ... ok [INFO] [stdout] test tests::parse_memory_size_zero ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 234 tests [INFO] [stdout] test cache::budget::tests::add_increments ... ok [INFO] [stdout] test cache::budget::tests::budget_getter_returns_construction_value ... ok [INFO] [stdout] test cache::budget::tests::default_is_zero_with_max_budget ... ok [INFO] [stdout] test cache::budget::tests::new_counter_is_zero ... ok [INFO] [stdout] test cache::budget::tests::reset_sets_to_zero_but_keeps_budget ... ok [INFO] [stdout] test cache::budget::tests::usage_ratio_full ... ok [INFO] [stdout] test cache::budget::tests::usage_ratio_half_at_midpoint ... ok [INFO] [stdout] test cache::budget::tests::usage_ratio_zero_budget_returns_zero_not_nan ... ok [INFO] [stdout] test cache::lru::tests::cache_hit_promotes_to_mru ... ok [INFO] [stdout] test cache::budget::tests::usage_ratio_zero_when_empty ... ok [INFO] [stdout] test cache::lru::tests::cache_hit_returns_same_fields ... ok [INFO] [stdout] test cache::lru::tests::insert_returns_nonzero_size_for_nonempty_fields ... ok [INFO] [stdout] test cache::lru::tests::is_empty_true_on_new_cache ... ok [INFO] [stdout] test cache::lru::tests::evict_lru_returns_precomputed_size ... ok [INFO] [stdout] test engine::tests::enum_variants::thread_state_variants_are_distinct ... ok [INFO] [stdout] test engine::tests::enum_variants::field_value_variants_exist ... ok [INFO] [stdout] test engine::tests::enum_variants::variable_value_null_and_object_ref_variants_exist ... ok [INFO] [stdout] test engine::tests::line_number::line_number_from_raw_less_than_minus_two_gives_native ... ok [INFO] [stdout] test engine::tests::memory_size::collection_page_memory_size_includes_entries ... ok [INFO] [stdout] test cache::system_memory::tests::auto_budget_returns_half_of_total ... ok [INFO] [stdout] test cache::lru::tests::len_reflects_inserted_entries ... ok [INFO] [stdout] test engine::tests::line_number::line_number_from_raw_positive_gives_line ... ok [INFO] [stdout] test cache::lru::tests::cache_miss_returns_none ... ok [INFO] [stdout] test engine::tests::line_number::line_number_from_raw_minus_two_gives_compiled ... ok [INFO] [stdout] test cache::system_memory::tests::auto_budget_is_reasonable ... ok [INFO] [stdout] test engine::tests::line_number::line_number_from_raw_zero_gives_no_info ... ok [INFO] [stdout] test engine::tests::memory_size::entry_info_memory_size ... ok [INFO] [stdout] test engine::tests::line_number::line_number_from_raw_minus_one_gives_unknown ... ok [INFO] [stdout] test cache::lru::tests::evict_lru_on_empty_returns_none ... ok [INFO] [stdout] test engine::tests::memory_size::entry_info_memory_size_key_and_value_object_refs ... ok [INFO] [stdout] test engine::tests::memory_size::entry_info_memory_size_object_ref_value_includes_heap ... ok [INFO] [stdout] test engine::tests::memory_size::field_info_memory_size_includes_name_and_value ... ok [INFO] [stdout] test engine::tests::memory_size::field_value_null_returns_static_size ... ok [INFO] [stdout] test engine::tests::memory_size::field_value_object_ref_includes_strings ... ok [INFO] [stdout] test engine::tests::memory_size::frame_info_memory_size_includes_strings ... ok [INFO] [stdout] test engine::tests::memory_size::thread_info_memory_size_includes_name ... ok [INFO] [stdout] test engine::tests::memory_size::variable_info_memory_size ... ok [INFO] [stdout] test engine::tests::memory_size::variable_value_null_returns_static_size ... ok [INFO] [stdout] test engine::tests::memory_size::variable_value_obj_ref_includes_class_name ... ok [INFO] [stdout] test engine::tests::navigation_engine_trait::indexing_ratio_100_for_complete_file ... ok [INFO] [stdout] test engine::tests::navigation_engine_trait::is_fully_indexed_true_for_complete_file ... ok [INFO] [stdout] test engine::tests::navigation_engine_trait::navigation_engine_trait_compiles_with_all_methods ... ok [INFO] [stdout] test engine::tests::navigation_engine_trait::skeleton_bytes_zero_for_dummy ... ok [INFO] [stdout] test engine::tests::struct_construction::field_info_has_name_and_value ... ok [INFO] [stdout] test engine::tests::struct_construction::frame_info_has_required_fields ... ok [INFO] [stdout] test engine::tests::struct_construction::thread_info_has_state_field_of_type_thread_state ... ok [INFO] [stdout] test engine::tests::struct_construction::variable_info_has_index_and_value ... ok [INFO] [stdout] test engine_impl::tests::collection_tests::arraylist_with_size_field_returns_entry_count ... ok [INFO] [stdout] test engine_impl::tests::collection_tests::collection_detection_is_case_insensitive ... ok [INFO] [stdout] test engine_impl::tests::collection_tests::hashmap_size_is_not_shifted_by_super_fields ... ok [INFO] [stdout] test engine_impl::tests::collection_tests::hashmap_with_size_field_returns_entry_count ... ok [INFO] [stdout] test engine_impl::tests::collection_tests::linked_hashmap_reads_size_from_super_hashmap ... ok [INFO] [stdout] test engine_impl::tests::collection_tests::negative_size_field_returns_none ... ok [INFO] [stdout] test engine_impl::tests::decode_prim_array_tests::byte_array_latin1_decodes_correctly ... ok [INFO] [stdout] test engine_impl::tests::builder_tests::list_threads_returns_three_threads_with_resolved_names ... ok [INFO] [stdout] test engine_impl::tests::builder_tests::list_threads_synthetic_from_stack_trace_shows_thread_serial_name ... ok [INFO] [stdout] test engine_impl::tests::decode_prim_array_tests::char_array_utf16_big_endian_decodes_correctly ... ok [INFO] [stdout] test engine_impl::tests::builder_tests::select_thread_returns_some_for_known_serial ... ok [INFO] [stdout] test cache::budget::tests::subtract_decrements ... ok [INFO] [stdout] test engine_impl::tests::budget_e2e_through_engine ... ok [INFO] [stdout] test engine_impl::tests::collection_tests::plain_object_returns_none ... ok [INFO] [stdout] test engine_impl::tests::collection_tests::unknown_class_id_returns_none ... ok [INFO] [stdout] test engine_impl::tests::builder_tests::list_threads_unknown_name_string_id_returns_thread_serial_fallback ... ok [INFO] [stdout] test engine_impl::tests::builder_tests::list_threads_returns_unknown_state_for_all_threads ... ok [INFO] [stdout] test engine_impl::tests::decode_prim_array_tests::unknown_elem_type_returns_non_empty_placeholder ... ok [INFO] [stdout] test engine_impl::tests::decode_prim_array_tests::char_array_with_surrogate_pair_uses_replacement_char ... ok [INFO] [stdout] test engine_impl::tests::indexing_ratio_partial_for_truncated_file ... ok [INFO] [stdout] test cache::budget::tests::concurrent_add_subtract_is_consistent ... ok [INFO] [stdout] test engine_impl::tests::is_fully_indexed_false_for_partial_file ... ok [INFO] [stdout] test engine_impl::tests::expand_object_tests::expand_object_single_int_field_returns_correct_field_info ... ok [INFO] [stdout] test engine_impl::tests::expand_object_tests::expand_object_object_ref_with_unknown_child_id_uses_object_fallback ... ok [INFO] [stdout] test engine_impl::tests::expand_object_tests::expand_object_string_field_without_array_has_no_inline_value ... ok [INFO] [stdout] test engine_impl::tests::expand_object_tests::expand_object_object_ref_field_returns_object_ref_not_expanded ... ok [INFO] [stdout] test engine_impl::tests::from_file_on_missing_path_returns_mmap_failed ... ok [INFO] [stdout] test engine_impl::tests::lru_eviction_tests::expand_object_cached_does_not_double_count_memory ... ok [INFO] [stdout] test engine_impl::tests::from_file_on_valid_hprof_returns_ok ... ok [INFO] [stdout] test engine_impl::tests::from_file_with_progress_reports_monotonic_name_resolution ... ok [INFO] [stdout] test engine_impl::tests::lru_eviction_tests::multi_cycle_no_panic_no_counter_overflow ... ok [INFO] [stdout] test engine_impl::tests::expand_object_tests::expand_object_super_sub_class_returns_fields_in_leaf_first_order ... ok [INFO] [stdout] test engine_impl::tests::lru_eviction_tests::expand_object_ac4_usage_below_target_after_eviction ... ok [INFO] [stdout] test engine_impl::tests::lru_eviction_tests::expand_object_with_tiny_budget_triggers_eviction ... ok [INFO] [stdout] test engine_impl::tests::memory_used_equals_precise_index_static_size_for_empty_file ... ok [INFO] [stdout] test engine_impl::tests::memory_budget_default_uses_auto_calc ... ok [INFO] [stdout] test engine_impl::tests::real_dump_thread_states ... ignored [INFO] [stdout] test engine_impl::tests::indexing_ratio_100_for_complete_file ... ok [INFO] [stdout] test engine_impl::tests::expand_object_tests::expand_object_enriches_object_ref_with_class_name ... ok [INFO] [stdout] test engine_impl::tests::lru_eviction_tests::expand_object_lru_order_respected ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::byte_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::integer_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::boolean_true_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::from_file_with_progress_on_valid_file_calls_observer ... ok [INFO] [stdout] test engine_impl::tests::is_fully_indexed_false_when_file_truncated_mid_record ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::boxed_type_without_value_field_returns_none ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::character_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::boolean_false_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::double_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::float_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::memory_budget_explicit_override ... ok [INFO] [stdout] test engine_impl::tests::is_fully_indexed_true_for_complete_file ... ok [INFO] [stdout] test engine_impl::tests::lru_eviction_tests::re_parse_after_eviction_produces_identical_fields ... ok [INFO] [stdout] test engine_impl::tests::lru_eviction_tests::eviction_loop_terminates_when_cache_empty ... ok [INFO] [stdout] test engine_impl::tests::list_threads_on_file_with_no_threads_returns_empty ... ok [INFO] [stdout] test engine_impl::tests::memory_used_positive_after_from_file ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::short_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::unknown_class_returns_no_inline_value ... ok [INFO] [stdout] test engine_impl::tests::resolve_string_tests::resolve_string_with_byte_array_returns_decoded_content ... ok [INFO] [stdout] test engine_impl::tests::expand_object_tests::expand_object_unknown_id_returns_none ... ok [INFO] [stdout] test engine_impl::tests::resolve_string_tests::resolve_string_with_char_array_returns_decoded_content ... ok [INFO] [stdout] test engine_impl::tests::skip_index_lazy_creation_via_engine ... ok [INFO] [stdout] test engine_impl::tests::select_thread_returns_none_for_missing_serial ... ok [INFO] [stdout] test engine_impl::tests::resolve_string_tests::resolve_string_backing_array_absent_returns_none ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_linked_list_root_has_entry_count ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_empty_object_array_has_entry_count_zero ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_non_null_root_returns_object_ref ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_plain_object_has_no_entry_count ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_frame_with_no_roots_returns_empty ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_prim_array_root_has_entry_count ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_null_root_returns_null ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_stack_frames_class_name_is_human_readable ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_unknown_instance_falls_back_to_object ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_stack_frames_line_number_42_gives_line_variant ... ok [INFO] [stdout] test engine_impl::tests::static_fields_tests::class_of_object_returns_class_id ... ok [INFO] [stdout] test engine_impl::tests::static_fields_tests::class_of_object_returns_none_for_unknown_object ... ok [INFO] [stdout] test engine_impl::tests::static_fields_tests::get_static_fields_empty_when_no_statics ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_object_array_root_has_entry_count ... ok [INFO] [stdout] test engine_impl::tests::resolve_inline_value_tests::long_field_shows_inline_value ... ok [INFO] [stdout] test engine_impl::tests::thread_state_mapping::status_blocked ... ok [INFO] [stdout] test engine_impl::tests::thread_state_mapping::status_new_is_unknown ... ok [INFO] [stdout] test engine_impl::tests::thread_state_mapping::status_runnable ... ok [INFO] [stdout] test engine_impl::tests::thread_state_mapping::status_terminated_is_unknown ... ok [INFO] [stdout] test engine_impl::tests::thread_state_mapping::status_timed_waiting ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_stack_frames_line_number_minus_one_gives_unknown ... ok [INFO] [stdout] test engine_impl::tests::thread_state_mapping::status_zero_is_unknown ... ok [INFO] [stdout] test engine_impl::tests::static_fields_tests::get_static_fields_prefers_preloaded_field_name_cache ... ok [INFO] [stdout] test engine_impl::tests::thread_state_mapping::runnable_takes_priority_over_other_bits ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_stack_frames_method_name_resolves_from_string_id ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_stack_frames_line_number_0_gives_no_info ... ok [INFO] [stdout] test engine_impl::tests::static_fields_tests::get_static_fields_returns_resolved_fields ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_stack_frames_unknown_thread_serial_returns_empty ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::list_threads_resolves_real_name_via_root_thread_obj ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_local_variables_resolves_class_name ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::memory_used_with_populated_fixture ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::get_stack_frames_returns_one_frame_for_thread_with_one_frame ... ok [INFO] [stdout] test engine_impl::tests::resolve_string_tests::resolve_string_no_value_field_returns_none ... ok [INFO] [stdout] test engine_impl::tests::skeleton_bytes_positive_for_real_file ... ok [INFO] [stdout] test engine_impl::tests::truncate_inline_tests::exactly_80_chars_returned_unchanged ... ok [INFO] [stdout] test engine_impl::tests::truncate_inline_tests::multi_byte_utf8_exactly_80_chars_returned_unchanged ... ok [INFO] [stdout] test engine_impl::tests::truncate_inline_tests::over_80_ascii_chars_truncated_with_dotdot ... ok [INFO] [stdout] test engine_impl::tests::truncate_inline_tests::short_ascii_string_returned_unchanged ... ok [INFO] [stdout] test engine_impl::tests::thread_state_mapping::status_waiting ... ok [INFO] [stdout] test engine_impl::tests::truncate_inline_tests::multi_byte_utf8_does_not_panic_and_truncates_at_char_boundary ... ok [INFO] [stdout] test pagination::background_walker::tests::walk_empty_hashmap ... ok [INFO] [stdout] test pagination::background_walker::tests::walker_handle_progress ... ok [INFO] [stdout] test pagination::background_walker::tests::walk_hashmap_50_entries ... ok [INFO] [stdout] test engine_impl::tests::warnings_returns_empty_slice_for_clean_file ... ok [INFO] [stdout] test pagination::background_walker::tests::walk_linked_list_30_entries ... ok [INFO] [stdout] test pagination::background_walker::tests::walker_handle_try_drain_disconnected ... ok [INFO] [stdout] test pagination::background_walker::tests::walker_handle_try_drain_returns_pending ... ok [INFO] [stdout] test pagination::skip_index::tests::gap_skipping_no_ops ... ok [INFO] [stdout] test pagination::skip_index::tests::duplicate_record_is_idempotent ... ok [INFO] [stdout] test pagination::skip_index::tests::hashmap_checkpoint_variant ... ok [INFO] [stdout] test pagination::skip_index::tests::mark_complete_and_is_complete ... ok [INFO] [stdout] test pagination::skip_index::tests::record_and_nearest_before_interval_3 ... ok [INFO] [stdout] test pagination::tests::array_pagination::find_object_array_returns_elements ... ok [INFO] [stdout] test engine_impl::tests::walker_integration::spawn_walker_dedup ... ok [INFO] [stdout] test engine_impl::tests::walker_integration::walker_progress_lifecycle ... ok [INFO] [stdout] test engine_impl::tests::walker_integration::spawn_walker_completes_and_drain_applies ... ok [INFO] [stdout] test pagination::skip_index::tests::nearest_before_between_first_two ... ok [INFO] [stdout] test pagination::skip_index::tests::nearest_before_empty_returns_none ... ok [INFO] [stdout] test pagination::background_walker::tests::walk_hashmap_cyclic_chain_terminates ... ok [INFO] [stdout] test engine_impl::tests::walker_integration::cancel_walker_removes_handle ... ok [INFO] [stdout] test pagination::background_walker::tests::walker_handle_cancel_sets_flag ... ok [INFO] [stdout] test pagination::background_walker::tests::walk_hashmap_depth2_chains ... ok [INFO] [stdout] test pagination::tests::array_pagination::has_more_flag_correct_at_boundary ... ok [INFO] [stdout] test engine_impl::tests::stack_frame_tests::list_threads_falls_back_when_instance_not_found ... ok [INFO] [stdout] test pagination::tests::array_pagination::offset_beyond_bounds_returns_empty ... ok [INFO] [stdout] test pagination::tests::array_pagination::prim_array_int_pagination ... ok [INFO] [stdout] test pagination::tests::array_pagination::small_array_returns_all ... ok [INFO] [stdout] test pagination::tests::array_pagination::find_object_array_unknown_returns_none ... ok [INFO] [stdout] test pagination::tests::array_pagination::object_array_last_partial_page ... ok [INFO] [stdout] test engine_impl::tests::walker_integration::spawn_walker_cap ... ok [INFO] [stdout] test pagination::tests::array_pagination::id_to_field_value_for_prim_array_id_sets_entry_count ... ok [INFO] [stdout] test pagination::background_walker::tests::walk_hashmap_counting_invariant ... ok [INFO] [stdout] test pagination::tests::dispatch::nonexistent_id_returns_none ... ok [INFO] [stdout] test pagination::tests::list_extractors::arraylist_uses_size_not_capacity ... ok [INFO] [stdout] test pagination::tests::array_pagination::id_to_field_value_for_object_array_id_sets_entry_count ... ok [INFO] [stdout] test pagination::tests::list_extractors::get_page_with_arraylist_instance_id_returns_elements ... ok [INFO] [stdout] test pagination::tests::array_pagination::object_array_first_page ... ok [INFO] [stdout] test pagination::tests::batch_pre_resolution::hashmap_below_threshold_all_nodes_cached ... ok [INFO] [stdout] test pagination::background_walker::tests::walk_hashmap_cancel_midway ... ok [INFO] [stdout] test pagination::tests::array_pagination::object_array_middle_page ... ok [INFO] [stdout] test pagination::tests::dispatch::unknown_type_returns_none ... ok [INFO] [stdout] test pagination::tests::batch_pre_resolution::hashset_inherits_batch_from_hashmap ... ok [INFO] [stdout] test pagination::tests::batch_pre_resolution::hashmap_at_threshold_all_nodes_cached ... ok [INFO] [stdout] test pagination::tests::list_extractors::linked_list_walks_chain ... ok [INFO] [stdout] test pagination::tests::map_extractors::concurrent_hashmap_uses_val_field ... ok [INFO] [stdout] test pagination::tests::list_extractors::linked_list_offset_into_chain ... ok [INFO] [stdout] test pagination::tests::map_extractors::hashset_returns_keys_only ... ok [INFO] [stdout] test pagination::tests::list_extractors::vector_uses_elementcount_field ... ok [INFO] [stdout] test pagination::tests::object_array_pagination::empty_object_array_paginate ... ok [INFO] [stdout] test pagination::tests::map_extractors::linkedhashmap_delegates_to_hashmap ... ok [INFO] [stdout] test pagination::tests::batch_pre_resolution::hashmap_30_entries_caches_head_node_ids ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::empty_linked_list_with_skip_index ... ok [INFO] [stdout] test pagination::tests::dispatch::unsupported_collection_type_returns_none ... ok [INFO] [stdout] test pagination::tests::map_extractors::hashmap_null_slots_skipped ... ok [INFO] [stdout] test pagination::tests::object_array_pagination::try_object_array_mid_page ... ok [INFO] [stdout] test pagination::tests::object_array_pagination::try_object_array_beyond_end ... ok [INFO] [stdout] test pagination::tests::object_array_pagination::arraylist_size_less_than_capacity ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::linked_list_cycle_full_traversal ... ok [INFO] [stdout] test resolver::tests::decode_fields_bool_true_returns_bool_true ... ok [INFO] [stdout] test resolver::tests::decode_fields_inherited_field_leaf_first_order ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::hashmap_skip_index_records_checkpoints ... ok [INFO] [stdout] test resolver::tests::decode_fields_object_ref_non_null_returns_object_ref ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::linked_list_skip_index_records_checkpoints ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::linked_list_cycle_resumed_walk_max_iter_guard ... ok [INFO] [stdout] test resolver::tests::decode_fields_prefers_preloaded_field_name_cache ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::partial_skip_index_extension ... ok [INFO] [stdout] test resolver::tests::decode_fields_truncated_data_returns_empty ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::hashmap_50pct_empty_slots ... ok [INFO] [stdout] test resolver::tests::decode_fields_long_field_returns_long_value ... ok [INFO] [stdout] test tests::engine_config_effective_budget_uses_override ... ok [INFO] [stdout] test tests::index_summary_struct_has_expected_fields ... ok [INFO] [stdout] test tests::open_hprof_file_with_progress_on_valid_file_calls_observer ... ok [INFO] [stdout] test tests::test_observer_captures_event_sequence ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::skip_index_activation_smoke_test ... ok [INFO] [stdout] test tests::engine_config_effective_budget_auto_calculates ... ok [INFO] [stdout] test pagination::tests::map_extractors::get_page_object_array_resolves_instance_refs ... ok [INFO] [stdout] test resolver::tests::decode_fields_int_field_returns_field_info ... ok [INFO] [stdout] test resolver::tests::decode_fields_missing_cache_entry_uses_placeholder_without_string_fallback ... ok [INFO] [stdout] test tests::engine_config_default_has_no_budget_override ... ok [INFO] [stdout] test tests::open_hprof_file_with_progress_on_missing_path_returns_mmap_failed ... ok [INFO] [stdout] test pagination::tests::batch_pre_resolution::linked_list_caches_walked_node_ids ... ok [INFO] [stdout] test pagination::tests::skip_index_integration::offset_beyond_known_checkpoints_falls_back ... ok [INFO] [stdout] test resolver::tests::decode_fields_object_ref_zero_returns_null ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 233 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hprof_parser-fdb3bdb17f486f52) [INFO] [stdout] [INFO] [stdout] running 296 tests [INFO] [stdout] test error::tests::corrupted_data_display ... ok [INFO] [stdout] test error::tests::mmap_failed_display ... ok [INFO] [stdout] test error::tests::io_error_from_conversion ... ok [INFO] [stdout] test error::tests::invalid_id_display ... ok [INFO] [stdout] test error::tests::truncated_record_display ... ok [INFO] [stdout] test error::tests::unknown_record_type_display ... ok [INFO] [stdout] test error::tests::unknown_record_type_display_zero_padded ... ok [INFO] [stdout] test header::builder_tests::parse_valid_102_8byte_ids_from_builder ... ok [INFO] [stdout] test header::builder_tests::parse_valid_101_4byte_ids_from_builder ... ok [INFO] [stdout] test header::tests::empty_input_returns_truncated_record ... ok [INFO] [stdout] test header::tests::invalid_id_size_0_returns_corrupted_data ... ok [INFO] [stdout] test error::tests::unsupported_version_display ... ok [INFO] [stdout] test header::tests::invalid_id_size_3_returns_corrupted_data ... ok [INFO] [stdout] test header::tests::invalid_version_returns_unsupported_version ... ok [INFO] [stdout] test header::tests::truncated_after_version_string_returns_truncated_record ... ok [INFO] [stdout] test header::tests::truncated_missing_timestamp_returns_truncated_record ... ok [INFO] [stdout] test header::tests::truncated_no_null_returns_truncated_record ... ok [INFO] [stdout] test header::tests::valid_101_4byte_ids ... ok [INFO] [stdout] test header::tests::valid_102_8byte_ids ... ok [INFO] [stdout] test hprof_file::builder_tests::find_instance_non_empty_field_data_returns_correct_bytes ... ok [INFO] [stdout] test hprof_file::builder_tests::find_instance_returns_none_for_unknown_object_id ... ok [INFO] [stdout] test hprof_file::builder_tests::find_instance_returns_some_for_known_object_id ... ok [INFO] [stdout] test hprof_file::builder_tests::batch_find_deduplicates_across_ranges ... ok [INFO] [stdout] test hprof_file::builder_tests::batch_find_single_id_matches_find_instance ... ok [INFO] [stdout] test hprof_file::builder_tests::find_instance_returns_valid_offset ... ok [INFO] [stdout] test hprof_file::builder_tests::batch_find_tolerates_truncated_sub_record ... ok [INFO] [stdout] test hprof_file::builder_tests::batch_find_mix_existing_and_nonexistent ... ok [INFO] [stdout] test hprof_file::builder_tests::batch_find_five_instances_returns_all_with_correct_data ... ok [INFO] [stdout] test hprof_file::builder_tests::find_instance_two_instances_returns_correct_one ... ok [INFO] [stdout] test hprof_file::builder_tests::batch_find_nonexistent_ids_returns_empty ... ok [INFO] [stdout] test hprof_file::builder_tests::find_object_array_meta_empty_array ... ok [INFO] [stdout] test hprof_file::builder_tests::find_object_array_meta_id_size_4 ... ok [INFO] [stdout] test hprof_file::builder_tests::find_object_array_meta_id_size_8 ... ok [INFO] [stdout] test hprof_file::builder_tests::find_object_array_meta_skips_preceding_sub_records ... ok [INFO] [stdout] test hprof_file::builder_tests::find_object_array_meta_truncated_returns_none ... ok [INFO] [stdout] test hprof_file::builder_tests::find_prim_array_byte_array_returns_elem_type_and_bytes ... ok [INFO] [stdout] test hprof_file::builder_tests::find_prim_array_char_array_returns_elem_type_and_bytes ... ok [INFO] [stdout] test hprof_file::builder_tests::from_path_preloads_field_name_cache_with_specific_string_id_mapping ... ok [INFO] [stdout] test hprof_file::builder_tests::find_object_array_composition_matches_original ... ok [INFO] [stdout] test hprof_file::builder_tests::from_path_with_instance_produces_one_segment_filter ... ok [INFO] [stdout] test hprof_file::builder_tests::from_path_with_string_record_indexed ... ok [INFO] [stdout] test hprof_file::builder_tests::heap_record_ranges_populated_for_instance_dump ... ok [INFO] [stdout] test hprof_file::builder_tests::find_prim_array_unknown_id_returns_none ... ok [INFO] [stdout] test hprof_file::builder_tests::hprof_file_has_records_start_field_and_records_bytes ... ok [INFO] [stdout] test hprof_file::builder_tests::parallel_batch_empty_slice_returns_empty ... ok [INFO] [stdout] test hprof_file::builder_tests::parallel_batch_single_filter_returns_all_items ... ok [INFO] [stdout] test hprof_file::builder_tests::read_instance_at_offset_returns_correct_data ... ok [INFO] [stdout] test hprof_file::builder_tests::read_prim_array_at_offset_returns_correct_data ... ok [INFO] [stdout] test hprof_file::tests::from_path_non_existent_returns_mmap_failed ... ok [INFO] [stdout] test hprof_file::builder_tests::parallel_batch_correctness_small_segment_size ... ok [INFO] [stdout] test id::tests::read_id_4_byte ... ok [INFO] [stdout] test id::tests::read_id_8_byte ... ok [INFO] [stdout] test id::tests::read_id_insufficient_bytes_4_returns_truncated ... ok [INFO] [stdout] test id::tests::read_id_insufficient_bytes_8_returns_truncated ... ok [INFO] [stdout] test id::tests::read_id_unsupported_size_returns_corrupted ... ok [INFO] [stdout] test indexer::first_pass::hprof_primitives::tests::parse_class_dump_unknown_static_field_type_returns_partial_info ... ok [INFO] [stdout] test indexer::first_pass::hprof_primitives::tests::parse_class_dump_with_static_fields_returns_correct_count_and_values ... ok [INFO] [stdout] test hprof_file::tests::from_path_with_progress_on_valid_file_calls_observer ... ok [INFO] [stdout] test hprof_file::tests::from_path_valid_file_parses_header ... ok [INFO] [stdout] test hprof_file::tests::from_path_truncated_record_returns_partial_with_warning ... ok [INFO] [stdout] test indexer::first_pass::offset_lookup::tests::batch_lookup_finds_known_objects ... ok [INFO] [stdout] test indexer::first_pass::offset_lookup::tests::batch_lookup_missing_id_absent_from_result ... ok [INFO] [stdout] test indexer::first_pass::offset_lookup::tests::batch_lookup_multiple_ids_same_segment ... ok [INFO] [stdout] test indexer::first_pass::offset_lookup::tests::scan_finds_instance_dump ... ok [INFO] [stdout] test indexer::first_pass::offset_lookup::tests::scan_finds_prim_array_dump ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::batch_single_oversized_segment ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::batch_split_across_two ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::batch_unlimited_budget ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_all_oversized_extraction_succeeds ... ok [INFO] [stdout] test hprof_file::tests::from_path_on_valid_file_compiles_and_succeeds ... ok [INFO] [stdout] test indexer::first_pass::offset_lookup::tests::scan_skips_non_target_objects ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::batch_all_fit_single_batch ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::batch_all_oversized ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::batch_empty_ranges ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::batch_exact_fit ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::batch_realistic_distribution ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_all_segments_exceed_individually ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_batching_progress_events_cumulative ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_batching_results_identical ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_e2e_through_hprof_file ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_zero_floor_kicks_in ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::multi_batch_bytes_monotonicity ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::class_dump_parsed_into_index_class_dumps ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::hprof_file_from_path_uses_unlimited_budget ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::class_dump_two_fields_correctly_parsed ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::extract_class_dumps_only_returns_class_dumps ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::field_names_preloaded_for_all_instance_and_static_field_name_ids ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_none_regression ... ok [INFO] [stdout] test indexer::first_pass::hprof_primitives::tests::parse_class_dump_no_static_fields_returns_empty_vec ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_single_oversized_segment_processed ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::extract_heap_segment_skips_class_dump ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::full_index_round_trip ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::heap_dump_segment_instance_dump_produces_one_filter_containing_id ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::heap_record_ranges_populated_for_heap_dump_segment ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::instance_offsets_contains_thread_object_after_first_pass ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::java_frame_root_at_frame_number_0_is_indexed_to_correct_frame_id ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::java_frame_root_with_negative_frame_number_is_not_stored ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::java_frame_root_with_out_of_range_frame_number_is_not_stored ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::no_heap_dump_records_produces_empty_segment_filters ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::object_array_in_heap_dump_segment_filter_contains_array_id ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::prim_array_in_heap_dump_segment_filter_contains_array_id ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::progress_interleaved_segments_monotonic ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::root_thread_obj_populates_thread_object_ids ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::root_thread_obj_updates_synthetic_thread_object_id ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::subdivide_segment_no_split_below_threshold ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::small_file_uses_sequential_path ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::synthetic_thread_enables_frame_root_correlation ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::truncated_file_returns_partial_index_with_warning ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::truncated_second_heap_dump_segment_partial_filter_has_first_id ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::chunk_boundary_at_exact_record_end ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::two_instances_same_small_file_one_segment_containing_both ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::progress_heap_only_dump_two_segments ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::progress_heap_dump_tag_variant ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::data_offset_correctness_across_chunks ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::empty_payload_zero_chunks ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::segment_done_never_exceeds_total ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::chunked_extraction_truncated_sub_record ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::no_chunking_when_max_exceeds_payload ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::progress_small_heap_segment_no_extra_event ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::sequential_path_reports_all_segments ... ok [INFO] [stdout] test indexer::first_pass::tests::entry_points_at_segment_boundary_large ... ignored [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::run_first_pass_with_budget_bytes ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::chunked_6_instances_3_chunks ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::run_first_pass_none_budget_regression ... ok [INFO] [stdout] test indexer::first_pass::tests::entry_points_across_multiple_heap_segments ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::subdivide_segment_splits_at_sub_record_boundaries ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::single_chunk_merge_same_as_direct ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::progress_reports_after_heap_segment_skip ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::empty_data_no_warnings_no_records ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::eof_mid_header_produces_warning_and_no_records ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::extra_payload_bytes_produces_warning_and_continues ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::too_short_declared_length_stops_with_warning ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::two_records_first_corrupt_second_valid_gives_one_indexed ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::start_thread_with_extra_bytes_is_indexed_with_warning ... ok [INFO] [stdout] test indexer::first_pass::tests::extract_heap_segment_records_entry_points ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::payload_end_exceeds_data_produces_warning_and_stops ... ok [INFO] [stdout] test indexer::first_pass::tests::extract_heap_segment_cross_segment_entry_points ... ok [INFO] [stdout] test indexer::first_pass::tests::post_extraction_tests::all_fixtures_profiling ... ignored [INFO] [stdout] test indexer::first_pass::tests::heap_parsing_tests::heap_dump_0x0c_record_produces_segment_filter ... ok [INFO] [stdout] test indexer::first_pass::tests::heap_parsing_tests::truncated_gc_root_java_frame_sub_record_adds_warning ... ok [INFO] [stdout] test indexer::first_pass::tests::post_extraction_tests::manual_large_dump_profiling ... ignored [INFO] [stdout] test indexer::first_pass::tests::phase_events_ordered_on_jvisualvm_dump ... ok [INFO] [stdout] test indexer::first_pass::tests::chunked_extraction_tests::mixed_records_single_vs_multi_chunk_identical ... ok [INFO] [stdout] test indexer::first_pass::tests::progress_tests::progress_observer_called_for_single_record ... ok [INFO] [stdout] test indexer::first_pass::tests::progress_tests::progress_observer_called_once_with_zero_for_empty_data ... ok [INFO] [stdout] test indexer::first_pass::tests::heap_parsing_tests::class_dump_before_instance_dump_cursor_advances_correctly ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::string_declared_length_smaller_than_id_size_stops_with_warning ... ok [INFO] [stdout] test indexer::first_pass::tests::filter_lookup_matches_expected ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::corrupted_payload_within_window_produces_warning_and_continues ... ok [INFO] [stdout] test indexer::first_pass::tests::post_extraction_tests::diagnostics_fields_present ... ok [INFO] [stdout] test indexer::first_pass::tests::error_handling_tests::valid_single_record_no_warnings ... ok [INFO] [stdout] test indexer::first_pass::tests::progress_tests::progress_observer_reports_partial_position_for_truncated_data ... ok [INFO] [stdout] test indexer::first_pass::tests::heap_parsing_tests::gc_root_before_instance_dump_cursor_advances_correctly ... ok [INFO] [stdout] test indexer::first_pass::tests::heap_parsing_tests::truncated_heap_dump_segment_mid_sub_record_partial_filter_built ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::load_class_with_unknown_string_id_inserts_empty_name ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::single_stack_frame_indexed ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::single_stack_trace_indexed ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::single_string_record_indexed ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::single_load_class_indexed ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::single_start_thread_indexed ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::zgc_high_bit_ids_indexed_through_first_pass ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::three_string_records_all_indexed ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::load_class_populates_class_names_by_id_with_dot_notation ... ok [INFO] [stdout] test indexer::first_pass::tests::thread_resolution_tests::stack_trace_without_start_thread_synthesises_thread_entry ... ok [INFO] [stdout] test indexer::first_pass::tests::thread_resolution_tests::start_thread_record_takes_priority_over_synthetic_thread ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::unknown_tag_skipped_index_empty ... ok [INFO] [stdout] test indexer::precise::tests::field_names_map_is_string_id_to_name ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::empty_data_returns_empty_index ... ok [INFO] [stdout] test indexer::first_pass::tests::thread_resolution_tests::stack_trace_thread_serial_zero_does_not_synthesise_thread ... ok [INFO] [stdout] test indexer::first_pass::tests::thread_resolution_tests::scan_records_parse_failure_emits_warning ... ok [INFO] [stdout] test indexer::first_pass::tests::record_parsing_tests::id_size_4_string_and_class_both_indexed ... ok [INFO] [stdout] test indexer::first_pass::tests::run_first_pass_emits_phase_changed_events_with_threads ... ok [INFO] [stdout] test indexer::precise::tests::insert_and_retrieve_stack_frame_by_id ... ok [INFO] [stdout] test indexer::precise::tests::insert_and_retrieve_class_by_serial ... ok [INFO] [stdout] test indexer::precise::tests::memory_size_accounts_for_field_name_capacity ... ok [INFO] [stdout] test indexer::precise::tests::memory_size_accounts_for_string_capacity ... ok [INFO] [stdout] test indexer::precise::tests::insert_and_retrieve_stack_trace_by_serial ... ok [INFO] [stdout] test indexer::precise::tests::insert_and_retrieve_string_ref_by_id ... ok [INFO] [stdout] test indexer::precise::tests::memory_size_empty_index_equals_static_size ... ok [INFO] [stdout] test indexer::precise::tests::insert_and_retrieve_thread_by_serial ... ok [INFO] [stdout] test indexer::first_pass::tests::thread_resolution_tests::scan_records_partial_consumption_emits_warning ... ok [INFO] [stdout] test indexer::precise::tests::offset_cache_get_returns_inserted_offset ... ok [INFO] [stdout] test indexer::precise::tests::offset_cache_insert_batch_and_contains ... ok [INFO] [stdout] test indexer::segment::tests::add_single_id_produces_one_filter_segment_0 ... ok [INFO] [stdout] test indexer::precise::tests::memory_size_populated_exceeds_static_size ... ok [INFO] [stdout] test indexer::segment::tests::build_empty_returns_empty_vec ... ok [INFO] [stdout] test indexer::segment::tests::filters_sorted_by_segment_index ... ok [INFO] [stdout] test indexer::precise::tests::new_creates_empty_index ... ok [INFO] [stdout] test indexer::segment::tests::inline_filter_built_on_segment_change ... ok [INFO] [stdout] test indexer::segment::tests::raw_ids_freed_after_segment_finalized ... ok [INFO] [stdout] test indexer::segment::tests::add_id_at_segment_size_offset_produces_segment_1 ... ok [INFO] [stdout] test indexer::segment::tests::duplicate_ids_same_segment_deduped ... ok [INFO] [stdout] test indexer::precise::tests::offset_cache_concurrent_insert_batch_and_read ... ok [INFO] [stdout] test indexer::tests::percent_indexed_all_indexed_returns_100 ... ok [INFO] [stdout] test java_types::tests::already_simple_name_returned_as_is ... ok [INFO] [stdout] test indexer::tests::percent_indexed_partial_returns_correct_ratio ... ok [INFO] [stdout] test java_types::tests::primitives ... ok [INFO] [stdout] test java_types::tests::binary_name_with_package ... ok [INFO] [stdout] test indexer::segment::tests::two_segments_two_filters_correct_membership ... ok [INFO] [stdout] test mmap::builder_tests::builder_bytes_mmap_then_parse_header ... ok [INFO] [stdout] test mmap::tests::non_existent_path_returns_mmap_failed ... ok [INFO] [stdout] test java_types::tests::array_of_object ... ok [INFO] [stdout] test java_types::tests::empty_input_returns_empty ... ok [INFO] [stdout] test java_types::tests::multidimensional_primitive_array ... ok [INFO] [stdout] test java_types::tests::prim_type_constants_have_expected_values ... ok [INFO] [stdout] test record::builder_tests::round_trip_string_record_header_and_skip ... ok [INFO] [stdout] test record::builder_tests::skip_unknown_record_does_not_error ... ok [INFO] [stdout] test record::tests::parse_record_header_empty_returns_error ... ok [INFO] [stdout] test record::tests::parse_record_header_preserves_tag_and_length ... ok [INFO] [stdout] test record::tests::parse_record_header_truncated_on_time_offset_returns_error ... ok [INFO] [stdout] test record::tests::parse_record_header_truncated_on_length_returns_error ... ok [INFO] [stdout] test record::tests::skip_record_from_non_zero_cursor_position ... ok [INFO] [stdout] test java_types::tests::object_descriptor_with_package ... ok [INFO] [stdout] test indexer::tests::percent_indexed_zero_attempted_returns_100 ... ok [INFO] [stdout] test record::tests::skip_record_length_exceeds_remaining_returns_truncated ... ok [INFO] [stdout] test record::tests::parse_valid_record_header ... ok [INFO] [stdout] test record::tests::skip_record_unknown_tag_with_valid_length_succeeds ... ok [INFO] [stdout] test strings::builder_tests::round_trip_string_ref_id_size_4 ... ok [INFO] [stdout] test strings::tests::parse_string_ref_empty_content ... ok [INFO] [stdout] test strings::tests::parse_string_ref_id_size_8 ... ok [INFO] [stdout] test strings::tests::parse_string_ref_id_size_4 ... ok [INFO] [stdout] test strings::tests::parse_string_ref_payload_shorter_than_id_size_returns_truncated ... ok [INFO] [stdout] test strings::tests::hprof_string_ref_returns_static_size ... ok [INFO] [stdout] test record::tests::skip_record_zero_length_is_noop ... ok [INFO] [stdout] test strings::builder_tests::round_trip_string_ref ... ok [INFO] [stdout] test strings::tests::parse_string_ref_content_beyond_buffer_returns_truncated ... ok [INFO] [stdout] test strings::tests::parse_string_ref_cursor_advances_past_content ... ok [INFO] [stdout] test strings::tests::parse_string_ref_truncated_payload ... ok [INFO] [stdout] test record::tests::skip_record_advances_cursor_correctly ... ok [INFO] [stdout] test tags::tests::heap_sub_tag_display_instance_dump ... ok [INFO] [stdout] test tags::tests::heap_sub_tag_round_trip_known_variants ... ok [INFO] [stdout] test tags::tests::heap_sub_tag_unknown_round_trip ... ok [INFO] [stdout] test mmap::builder_tests::valid_temp_file_returns_ok_mmap_with_correct_length ... ok [INFO] [stdout] test tags::tests::heap_sub_tag_display_unknown ... ok [INFO] [stdout] test tags::tests::record_tag_display_known ... ok [INFO] [stdout] test tags::tests::record_tag_display_unknown ... ok [INFO] [stdout] test tags::tests::record_tag_heap_dump_end_maps_to_unknown ... ok [INFO] [stdout] test tags::tests::record_tag_round_trip_known_variants ... ok [INFO] [stdout] test tags::tests::record_tag_unknown_round_trip ... ok [INFO] [stdout] test test_utils::tests::ac4_header_and_string_record ... ok [INFO] [stdout] test test_utils::tests::add_instance_wraps_in_heap_dump_segment ... ok [INFO] [stdout] test test_utils::tests::add_object_array_produces_heap_dump_segment_with_0x22_subtag ... ok [INFO] [stdout] test test_utils::tests::add_stack_frame_record_tag ... ok [INFO] [stdout] test test_utils::tests::add_stack_trace_record_tag ... ok [INFO] [stdout] test test_utils::tests::add_prim_array_produces_heap_dump_segment_with_0x23_subtag ... ok [INFO] [stdout] test test_utils::tests::corrupt_second_record ... ok [INFO] [stdout] test test_utils::tests::corrupt_record_at_overwrites_tag_with_ff ... ok [INFO] [stdout] test test_utils::tests::header_id_size_4 ... ok [INFO] [stdout] test test_utils::tests::header_magic_at_offset_0 ... ok [INFO] [stdout] test test_utils::tests::add_class_dump_produces_heap_dump_segment_with_0x20_subtag_and_correct_field_count ... ok [INFO] [stdout] test test_utils::tests::add_class_record_tag ... ok [INFO] [stdout] test test_utils::tests::add_thread_record_tag ... ok [INFO] [stdout] test test_utils::tests::header_id_size_correct_offset ... ok [INFO] [stdout] test test_utils::tests::string_record_payload_correct ... ok [INFO] [stdout] test test_utils::tests::string_record_tag_at_correct_offset ... ok [INFO] [stdout] test test_utils::tests::truncate_at_beyond_length_is_noop ... ok [INFO] [stdout] test types::builder_tests::round_trip_load_class ... ok [INFO] [stdout] test types::builder_tests::round_trip_stack_frame ... ok [INFO] [stdout] test types::builder_tests::round_trip_start_thread ... ok [INFO] [stdout] test types::memory_size_tests::class_dump_info_includes_fields_capacity ... ok [INFO] [stdout] test types::memory_size_tests::empty_stack_trace_returns_static_size ... ok [INFO] [stdout] test types::memory_size_tests::field_def_returns_static_size ... ok [INFO] [stdout] test types::memory_size_tests::raw_instance_includes_data_capacity ... ok [INFO] [stdout] test types::memory_size_tests::stack_trace_includes_vec_capacity ... ok [INFO] [stdout] test types::memory_size_tests::stack_frame_returns_static_size ... ok [INFO] [stdout] test test_utils::tests::string_record_payload_id_size_4 ... ok [INFO] [stdout] test types::new_type_compile_tests::field_def_has_required_fields ... ok [INFO] [stdout] test types::new_type_compile_tests::raw_instance_has_required_fields ... ok [INFO] [stdout] test test_utils::tests::truncate_at_produces_correct_length ... ok [INFO] [stdout] test types::memory_size_tests::class_def_returns_static_size ... ok [INFO] [stdout] test types::tests::parse_load_class_truncated ... ok [INFO] [stdout] test types::tests::parse_load_class_id_size_4 ... ok [INFO] [stdout] test types::tests::parse_load_class_id_size_8 ... ok [INFO] [stdout] test types::tests::parse_stack_frame_id_size_8 ... ok [INFO] [stdout] test types::tests::parse_stack_frame_line_number_zero ... ok [INFO] [stdout] test types::tests::parse_stack_frame_truncated ... ok [INFO] [stdout] test types::tests::parse_stack_trace_truncated_frames ... ok [INFO] [stdout] test types::builder_tests::round_trip_stack_trace ... ok [INFO] [stdout] test types::tests::parse_stack_trace_zero_frames ... ok [INFO] [stdout] test types::tests::parse_start_thread_id_size_8 ... ok [INFO] [stdout] test types::tests::parse_start_thread_id_size_4 ... ok [INFO] [stdout] test types::tests::parse_stack_frame_id_size_4 ... ok [INFO] [stdout] test types::tests::parse_stack_trace_id_size_8_three_frames ... ok [INFO] [stdout] test types::tests::parse_start_thread_truncated ... ok [INFO] [stdout] test types::tests::parse_stack_frame_line_number_negative ... ok [INFO] [stdout] test types::new_type_compile_tests::class_dump_info_has_required_fields ... ok [INFO] [stdout] test types::memory_size_tests::hprof_thread_returns_static_size ... ok [INFO] [stdout] test types::tests::parse_stack_trace_id_size_4 ... ok [INFO] [stdout] test indexer::first_pass::tests::progress_tests::scan_phase_reports_monotonic_bytes ... ok [INFO] [stdout] test test_utils::tests::encode_id_panics_on_invalid_id_size - should panic ... ok [INFO] [stdout] test test_utils::tests::new_panics_on_invalid_id_size_without_records - should panic ... ok [INFO] [stdout] test indexer::first_pass::tests::story_13_0_tests::extract_all_terminates_no_deadlock ... ok [INFO] [stdout] test indexer::first_pass::tests::budget_batching_tests::budget_parallel_path_single_batch ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::parallel_path_produces_correct_results ... ok [INFO] [stdout] test indexer::first_pass::tests::story_13_0_tests::single_threaded_fallback_emits_bytes_events ... ok [INFO] [stdout] test indexer::first_pass::tests::builder_tests::parallel_path_reports_all_segments ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 293 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.31s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hprof_tui-ad396ca8a66918bd) [INFO] [stdout] [INFO] [stdout] running 490 tests [INFO] [stdout] test app::tests::async_navigation::poll_resume_uses_pending_thread_id_not_selection ... ok [INFO] [stdout] test app::tests::async_navigation::second_navigate_to_source_cancels_first ... ok [INFO] [stdout] test app::tests::async_navigation::escape_during_pending_nav_clears_state_cursor_stays ... ok [INFO] [stdout] test app::tests::async_navigation::navigate_to_path_defers_on_unexpanded_object ... ok [INFO] [stdout] test app::tests::camera::camera_center_in_thread_list_is_noop ... ok [INFO] [stdout] test app::tests::camera::camera_center_in_stack_frames_centers_view_without_moving_cursor ... ok [INFO] [stdout] test app::tests::async_navigation::integration_navigate_to_source_positions_cursor_and_scroll ... ok [INFO] [stdout] test app::tests::camera::camera_page_scroll_in_stack_frames_shifts_offset_without_moving_cursor ... ok [INFO] [stdout] test app::tests::async_navigation::cursor_index_matches_target_after_full_walk ... ok [INFO] [stdout] test app::tests::camera::camera_scroll_in_stack_frames_shifts_offset_without_moving_cursor ... ok [INFO] [stdout] test app::tests::async_navigation::single_deferred_segment_completes_on_resume ... ok [INFO] [stdout] test app::tests::async_navigation::async_expansion_failure_clears_nav_and_shows_error ... ok [INFO] [stdout] test app::tests::camera::camera_scroll_in_thread_list_is_noop ... ok [INFO] [stdout] test app::tests::camera::page_up_down_scrolls_tree_by_visible_height ... ok [INFO] [stdout] test app::tests::async_navigation::in_frame_cap_yields_after_10_steps ... ok [INFO] [stdout] test app::tests::collection_paging::collection_2348_last_chunk_truncated ... ok [INFO] [stdout] test app::tests::collection_paging::collection_3000_chunk_layout ... ok [INFO] [stdout] test app::tests::camera::camera_scroll_in_search_mode_is_noop_and_keeps_filter ... ok [INFO] [stdout] test app::tests::camera::camera_page_scroll_in_thread_list_is_noop ... ok [INFO] [stdout] test app::tests::async_navigation::walk_completes_in_one_pass_when_steps_cached ... ok [INFO] [stdout] test app::tests::collection_paging::enter_on_empty_collection_var_is_noop ... ok [INFO] [stdout] test app::tests::async_navigation::stale_prereq_triggers_retry_with_original_path ... ok [INFO] [stdout] test app::tests::async_navigation::scroll_positions_cursor_in_upper_third_after_navigation ... ok [INFO] [stdout] test app::tests::collection_paging::enter_on_empty_collection_static_field_is_noop ... ok [INFO] [stdout] test app::tests::collection_paging::collection_enter_triggers_get_page_not_expand ... ok [INFO] [stdout] test app::tests::collection_paging::enter_on_empty_collection_field_is_noop ... ok [INFO] [stdout] test app::tests::collection_paging::collection_250_chunk_layout ... ok [INFO] [stdout] test app::tests::collection_paging::collection_entry_objectref_shows_plus_prefix ... ok [INFO] [stdout] test app::tests::collection_paging::entry_rendering_map_vs_list_format ... ok [INFO] [stdout] test app::tests::collection_paging::escape_from_collection_returns_to_thread_list ... ok [INFO] [stdout] test app::tests::collection_paging::collection_small_no_chunk_sections ... ok [INFO] [stdout] test app::tests::collection_paging::escape_from_var_collection_returns_to_thread_list ... ok [INFO] [stdout] test app::tests::collection_paging::right_on_empty_collection_var_is_noop ... ok [INFO] [stdout] test app::tests::collection_paging::collection_entry_object_field_collection_opens_without_failed_resolve ... ok [INFO] [stdout] test app::tests::collection_paging::left_on_primitive_collection_entry_navigates_to_parent_var ... ok [INFO] [stdout] test app::tests::collection_paging::enter_on_empty_collection_entry_is_noop ... ok [INFO] [stdout] test app::tests::collection_paging::first_collection_page_shows_loading_indicator_after_threshold ... ok [INFO] [stdout] test app::tests::collection_paging::collection_entry_objectref_expanded_fields_appear_in_tree ... ok [INFO] [stdout] test app::tests::favorites::bn_keys_noop_when_no_pinned_items ... ok [INFO] [stdout] test app::tests::construction::app_new_builds_without_panic_with_zero_threads ... ok [INFO] [stdout] test app::tests::collection_paging::right_on_empty_collection_static_field_is_noop ... ok [INFO] [stdout] test app::tests::favorites::c_key_expands_collapsed_pinned_subtree ... ok [INFO] [stdout] test app::tests::favorites::favorites_f_last_item_empty_panel_focus ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_frame_positioning_found ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_navigates_by_thread_id_when_names_duplicate ... ok [INFO] [stdout] test app::tests::collection_paging::right_on_empty_collection_entry_is_noop ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_empty_list_no_panic ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_positions_on_collection_entry ... ok [INFO] [stdout] test app::tests::collection_paging::right_on_collection_entry_object_field_collection_starts_collection_paging ... ok [INFO] [stdout] test app::tests::collection_paging::right_on_nested_collection_entry_starts_collection_paging ... ok [INFO] [stdout] test app::tests::collection_paging::nested_collection_entry_object_array_opens_and_renders_children ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_positions_on_collection_entry_obj_field ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_positions_on_field_when_possible ... ok [INFO] [stdout] test app::tests::collection_paging::left_on_primitive_collection_entry_object_field_navigates_to_parent_entry ... ok [INFO] [stdout] test app::tests::collection_paging::var_prim_array_triggers_collection_paging_not_expand ... ok [INFO] [stdout] test app::tests::collection_paging::chunk_loading_indicator ... ok [INFO] [stdout] test app::tests::collection_paging::unsupported_type_falls_back_to_expand_object ... ok [INFO] [stdout] test app::tests::favorites::handle_favorites_input_h_noop_when_no_pinned_items ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_zero_match_emits_warning ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_selects_correct_thread ... ok [INFO] [stdout] test app::tests::construction::app_new_builds_without_panic_with_three_threads ... ok [INFO] [stdout] test app::tests::focus::quit_from_stack_frames_returns_quit ... ok [INFO] [stdout] test app::tests::favorites::quit_returns_app_action_quit_when_show_help_is_true ... ok [INFO] [stdout] test app::tests::focus::quit_from_thread_list_with_search_active_returns_quit ... ok [INFO] [stdout] test app::tests::focus::search_activate_in_non_search_mode_activates_search ... ok [INFO] [stdout] test app::tests::focus::tab_from_stack_frames_returns_to_thread_list ... ok [INFO] [stdout] test app::tests::favorites::tab_from_favorites_cycles_to_thread_list ... ok [INFO] [stdout] test app::tests::favorites::toggle_help_sets_show_help_true ... ok [INFO] [stdout] test app::tests::favorites::toggle_help_twice_sets_show_help_false ... ok [INFO] [stdout] test app::tests::favorites::up_still_routes_when_show_help_is_true ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_collection_entry_with_stale_path_uses_semantic_match ... ok [INFO] [stdout] test app::tests::focus::tab_from_thread_list_with_no_stack_state_is_noop ... ok [INFO] [stdout] test app::tests::focus::tab_from_thread_list_with_stack_state_moves_to_stack_frames ... ok [INFO] [stdout] test app::tests::focus::toggle_object_ids_in_stack_frames_focus_toggles_flag ... ok [INFO] [stdout] test app::tests::focus::handle_input_quit_returns_app_action_quit ... ok [INFO] [stdout] test app::tests::focus::toggle_object_ids_noop_outside_stack_frames_focus ... ok [INFO] [stdout] test app::tests::loading_and_warnings::disconnected_expansion_adds_warning_to_log ... ok [INFO] [stdout] test app::tests::loading_and_warnings::format_memory_log_rounds_down_to_mb ... ok [INFO] [stdout] test app::tests::collection_paging::escape_from_chunk_section_returns_to_thread_list ... ok [INFO] [stdout] test app::tests::collection_paging::re_enter_on_loaded_chunk_toggles_collapse ... ok [INFO] [stdout] test app::tests::favorites::favorites_navigate_to_source_nested_collection_entry_uses_restore_cursor_chain ... ok [INFO] [stdout] test app::tests::favorites::snapshot_chunk_page_limit_respected ... ok [INFO] [stdout] test app::tests::favorites::hidden_favorites_panel_forces_focus_back_to_previous_panel ... ok [INFO] [stdout] test app::tests::object_expansion::collapse_object_recursive_called_on_enter_for_expanded_root_obj ... ok [INFO] [stdout] test app::tests::object_expansion::enter_on_nested_object_field_starts_expansion ... ok [INFO] [stdout] test app::tests::loading_and_warnings::format_memory_log_produces_correct_output ... ok [INFO] [stdout] test app::tests::object_expansion::poll_expansions_after_collapse_does_not_reinsert_expanded ... ok [INFO] [stdout] test app::tests::object_expansion::start_object_expansion_registers_pending_but_no_loading_before_threshold ... ok [INFO] [stdout] test app::tests::object_expansion::escape_on_loading_node_cancels_expansion_without_leaving_stack_frames ... ok [INFO] [stdout] test app::tests::loading_and_warnings::loading_indicator_shown_if_not_yet_complete_after_threshold ... ok [INFO] [stdout] test app::tests::object_expansion::switching_thread_flushes_pending_expansions ... ok [INFO] [stdout] test app::tests::object_expansion::enter_twice_on_nested_object_field_collapses_it ... ok [INFO] [stdout] test app::tests::loading_and_warnings::failed_expansion_adds_warning_to_log ... ok [INFO] [stdout] test app::tests::loading_and_warnings::loading_indicator_not_shown_before_threshold ... ok [INFO] [stdout] test app::tests::spinner_state_tests::escape_during_nav_removes_awaited_expansion ... ok [INFO] [stdout] test app::tests::spinner_state_tests::escape_during_nav_with_unrelated_ops_transitions_to_resolving ... ok [INFO] [stdout] test app::tests::spinner_state_tests::escape_during_nav_without_pending_ops_goes_idle ... ok [INFO] [stdout] test app::tests::object_expansion::enter_on_static_object_field_starts_and_collapses_expansion ... ok [INFO] [stdout] test app::tests::spinner_state_tests::escape_during_resolving_stays_resolving ... ok [INFO] [stdout] test app::tests::object_expansion::poll_expansions_completes_and_moves_to_expanded ... ok [INFO] [stdout] test app::tests::spinner_state_tests::fast_operation_loading_shown_stays_false ... ok [INFO] [stdout] test app::tests::spinner_state_tests::minimum_spinner_duration_prevents_early_clear ... ok [INFO] [stdout] test app::tests::spinner_state_tests::navigating_to_pin_also_arms_minimum_display_timer ... ok [INFO] [stdout] test app::tests::spinner_state_tests::navigating_to_pin_takes_priority_over_resolving ... ok [INFO] [stdout] test app::tests::spinner_state_tests::operation_over_threshold_shows_loading ... ok [INFO] [stdout] test app::tests::spinner_state_tests::operation_under_threshold_never_shows_loading ... ok [INFO] [stdout] test app::tests::spinner_state_tests::resolving_to_navigating_does_not_reset_timer ... ok [INFO] [stdout] test app::tests::spinner_state_tests::spinner_stays_when_one_of_two_operations_completes ... ok [INFO] [stdout] test app::tests::spinner_state_tests::spinner_tick_increments_when_not_idle ... ok [INFO] [stdout] test app::tests::stack_navigation::app_new_initializes_stack_preview_for_selected_thread ... ok [INFO] [stdout] test app::tests::stack_navigation::c_key_on_collapsed_frame_expands_it ... ok [INFO] [stdout] test app::tests::stack_navigation::c_key_on_expanded_frame_with_object_var_triggers_pending_expansion ... ok [INFO] [stdout] test app::tests::spinner_state_tests::status_bar_idle_shows_no_spinner_text ... ok [INFO] [stdout] test app::tests::stack_navigation::handle_input_enter_in_stack_frames_expands_then_collapses ... ok [INFO] [stdout] test app::tests::stack_navigation::handle_input_escape_in_stack_frames_returns_to_thread_list_preserving_state ... ok [INFO] [stdout] test app::tests::stack_navigation::handle_input_up_down_in_stack_frames_moves_cursor ... ok [INFO] [stdout] test app::tests::stack_navigation::stack_state_is_none_on_construction ... ok [INFO] [stdout] test app::tests::stack_navigation::variable_value_variants_accessible_via_hprof_engine ... ok [INFO] [stdout] test app::tests::spinner_state_tests::spinner_tick_divides_by_four_for_frame_index ... ok [INFO] [stdout] test app::tests::spinner_state_tests::status_bar_renders_resolving_spinner ... ok [INFO] [stdout] test app::tests::thread_navigation::esc_from_stack_frames_to_thread_list_preserves_filter ... ok [INFO] [stdout] test app::tests::stack_navigation::moving_thread_selection_updates_stack_preview_without_enter ... ok [INFO] [stdout] test app::tests::thread_navigation::handle_input_enter_with_no_selected_thread_does_not_transition ... ok [INFO] [stdout] test app::tests::thread_navigation::handle_input_down_in_thread_list_updates_selection ... ok [INFO] [stdout] test app::tests::static_section_toggle_tests::enter_toggles_static_section ... ok [INFO] [stdout] test app::tests::static_section_toggle_tests::left_on_expanded_collapses_without_parent_nav ... ok [INFO] [stdout] test app::tests::thread_navigation::search_backspace_uses_pop_for_utf8_safety ... ok [INFO] [stdout] test app::tests::thread_navigation::thread_list_enter_in_search_mode_deactivates_input_keeps_filter ... ok [INFO] [stdout] test app::tests::thread_navigation::handle_input_search_char_appends_to_filter_query ... ok [INFO] [stdout] test app::tests::thread_navigation::handle_input_search_activate_sets_search_active ... ok [INFO] [stdout] test app::tests::thread_navigation::app_new_captures_thread_count_without_repeated_list_calls ... ok [INFO] [stdout] test app::tests::static_section_toggle_tests::flat_and_display_alignment_after_toggle ... ok [INFO] [stdout] test app::tests::static_section_toggle_tests::right_on_expanded_section_is_noop ... ok [INFO] [stdout] test app::tests::thread_navigation::thread_list_esc_in_search_mode_preserves_filter ... ok [INFO] [stdout] test app::tests::thread_navigation::thread_list_esc_routing_does_not_clear_filter_from_other_focus ... ok [INFO] [stdout] test app::tests::thread_navigation::thread_list_search_bar_visible_when_filter_active_not_in_input_mode ... ok [INFO] [stdout] test favorites::tests::pin_key_different_thread_id_not_equal ... ok [INFO] [stdout] test app::tests::thread_navigation::thread_list_second_esc_clears_filter ... ok [INFO] [stdout] test favorites::tests::pinned_item_hidden_fields_reset_noop_when_empty ... ok [INFO] [stdout] test favorites::tests::pinned_item_hidden_fields_toggle_hides_and_restores ... ok [INFO] [stdout] test favorites::tests::pin_key_same_thread_and_path_are_equal ... ok [INFO] [stdout] test favorites::tests::snapshot_on_cyclic_node_returns_none ... ok [INFO] [stdout] test favorites::tests::pinned_item_hidden_fields_reset_clears_multiple ... ok [INFO] [stdout] test favorites::tests::snapshot_from_cursor_initializes_hidden_fields_empty ... ok [INFO] [stdout] test favorites::tests::snapshot_on_frame_cursor_produces_frame_snapshot ... ok [INFO] [stdout] test favorites::tests::snapshot_on_loading_node_returns_none ... ok [INFO] [stdout] test favorites::tests::snapshot_on_var_expanded_objectref_produces_subtree ... ok [INFO] [stdout] test favorites::tests::snapshot_on_object_field_resolves_field_and_builds_correct_key ... ok [INFO] [stdout] test app::tests::static_section_toggle_tests::right_on_collapsed_section_expands ... ok [INFO] [stdout] test app::tests::thread_navigation::handle_input_enter_in_thread_list_loads_frames_and_transitions_to_stack_frames ... ok [INFO] [stdout] test favorites::tests::hide_key_var_and_field_are_distinct ... ok [INFO] [stdout] test app::tests::static_section_toggle_tests::left_on_collapsed_navigates_to_parent ... ok [INFO] [stdout] test favorites::tests::snapshot_on_var_null_produces_primitive ... ok [INFO] [stdout] test favorites::tests::snapshot_on_var_unexpanded_objectref_produces_unexpanded_ref ... ok [INFO] [stdout] test input::tests::ctrl_up_does_not_map_to_up ... ok [INFO] [stdout] test input::tests::from_key_maps_arrow_keys ... ok [INFO] [stdout] test input::tests::from_key_maps_backspace_to_search_backspace ... ok [INFO] [stdout] test input::tests::from_key_maps_b_to_prev_pin ... ok [INFO] [stdout] test input::tests::from_key_maps_ctrl_l_to_camera_center_selection ... ok [INFO] [stdout] test input::tests::from_key_maps_ctrl_page_down_to_camera_page_down ... ok [INFO] [stdout] test input::tests::from_key_maps_ctrl_page_up_to_camera_page_up ... ok [INFO] [stdout] test input::tests::from_key_maps_ctrl_up_to_camera_scroll_up ... ok [INFO] [stdout] test input::tests::from_key_maps_enter_and_escape ... ok [INFO] [stdout] test input::tests::from_key_maps_h_to_hide_field ... ok [INFO] [stdout] test input::tests::from_key_maps_f_to_toggle_favorite ... ok [INFO] [stdout] test input::tests::from_key_maps_n_to_next_pin ... ok [INFO] [stdout] test input::tests::from_key_maps_page_up_and_page_down ... ok [INFO] [stdout] test input::tests::from_key_maps_printable_chars_to_search_char ... ok [INFO] [stdout] test input::tests::from_key_maps_question_mark_to_toggle_help ... ok [INFO] [stdout] test input::tests::from_key_maps_quit_on_ctrl_c ... ok [INFO] [stdout] test input::tests::from_key_maps_i_to_toggle_object_ids ... ok [INFO] [stdout] test input::tests::from_key_maps_g_to_navigate_to_source ... ok [INFO] [stdout] test input::tests::from_key_maps_c_to_batch_expand ... ok [INFO] [stdout] test input::tests::from_key_maps_quit_on_q ... ok [INFO] [stdout] test app::tests::collection_paging::chunk_section_enter_loads_correct_range ... ok [INFO] [stdout] test input::tests::from_key_maps_s_to_search_activate ... ok [INFO] [stdout] test input::tests::from_key_maps_search_activate_on_slash ... ok [INFO] [stdout] test input::tests::from_key_maps_shift_down_to_camera_scroll_down ... ok [INFO] [stdout] test input::tests::from_key_maps_shift_f_to_focus_favorites ... ok [INFO] [stdout] test input::tests::from_key_maps_shift_h_to_reveal_hidden ... ok [INFO] [stdout] test input::tests::from_key_maps_shift_page_down_to_camera_page_down ... ok [INFO] [stdout] test input::tests::from_key_maps_shift_page_up_to_camera_page_up ... ok [INFO] [stdout] test input::tests::from_key_maps_shift_up_to_camera_scroll_up ... ok [INFO] [stdout] test input::tests::from_key_maps_tab_to_tab ... ok [INFO] [stdout] test input::tests::from_key_plain_up_still_maps_to_up ... ok [INFO] [stdout] test input::tests::from_key_returns_none_for_unbound_keys ... ok [INFO] [stdout] test keymap::tests::azerty_from_str_roundtrip ... ok [INFO] [stdout] test keymap::tests::default_keymap_uses_azerty_preset ... ok [INFO] [stdout] test input::tests::from_key_maps_search_activate_on_shift_slash ... ok [INFO] [stdout] test keymap::tests::default_preset_is_azerty ... ok [INFO] [stdout] test keymap::tests::error_message_lists_valid_options ... ok [INFO] [stdout] test views::cursor::tests::move_up_at_start_clamps ... ok [INFO] [stdout] test views::cursor::tests::page_down_clamps_to_last_when_height_exceeds_len ... ok [INFO] [stdout] test views::cursor::tests::page_down_moves_by_visible_height ... ok [INFO] [stdout] test views::cursor::tests::page_down_single_item_does_not_underflow ... ok [INFO] [stdout] test views::cursor::tests::page_down_uses_default_height_one ... ok [INFO] [stdout] test views::cursor::tests::page_down_with_visible_height_zero_is_noop ... ok [INFO] [stdout] test keymap::tests::no_two_actions_share_same_keycode_azerty ... ok [INFO] [stdout] test keymap::tests::no_two_actions_share_same_keycode_qwerty ... ok [INFO] [stdout] test views::cursor::tests::scroll_to_cursor_cursor_near_top_sets_zero_offset ... ok [INFO] [stdout] test keymap::tests::qwerty_from_str_roundtrip ... ok [INFO] [stdout] test views::cursor::tests::scroll_to_cursor_places_cursor_in_upper_third ... ok [INFO] [stdout] test keymap::tests::unknown_preset_from_str_error ... ok [INFO] [stdout] test theme::tests::all_theme_fields_are_of_type_style ... ok [INFO] [stdout] test views::cursor::tests::move_down_at_end_clamps ... ok [INFO] [stdout] test views::cursor::tests::move_down_moves_cursor_and_list_state ... ok [INFO] [stdout] test views::cursor::tests::move_down_on_orphan_cursor_reanchors_first ... ok [INFO] [stdout] test views::cursor::tests::move_home_and_end_select_bounds ... ok [INFO] [stdout] test views::cursor::tests::move_methods_are_noop_on_empty_items ... ok [INFO] [stdout] test views::cursor::tests::scroll_to_cursor_clamps_offset_at_end_of_list ... ok [INFO] [stdout] test views::cursor::tests::scroll_to_cursor_zero_visible_height_is_noop ... ok [INFO] [stdout] test views::cursor::tests::sync_or_select_first_reanchors_orphan_cursor ... ok [INFO] [stdout] test views::favorites_panel::tests::hide_field_tests::collect_row_metadata_field_row_map_populated ... ok [INFO] [stdout] test views::favorites_panel::tests::hide_field_tests::collect_row_metadata_truncated_offset_shifts_field_row_map ... ok [INFO] [stdout] test views::favorites_panel::tests::hide_field_tests::collect_row_metadata_hidden_var_row_shows_is_hidden_true ... ok [INFO] [stdout] test views::favorites_panel::tests::hide_field_tests::collect_row_metadata_hidden_objectref_row_count_decreases ... ok [INFO] [stdout] test views::favorites_panel::tests::jump_pin_tests::jump_to_next_pin_at_last_item_is_noop ... ok [INFO] [stdout] test app::tests::focus::tab_from_thread_list_with_search_active_moves_to_stack_frames ... ok [INFO] [stdout] test views::favorites_panel::tests::hide_field_tests::favorites_panel_state_field_key_at_cursor_correct ... ok [INFO] [stdout] test views::favorites_panel::tests::hide_field_tests::favorites_panel_state_field_key_at_cursor_none_for_header ... ok [INFO] [stdout] test views::favorites_panel::tests::jump_pin_tests::jump_to_prev_pin_at_first_item_is_noop ... ok [INFO] [stdout] test views::favorites_panel::tests::jump_pin_tests::jump_to_next_pin_resets_sub_row ... ok [INFO] [stdout] test views::favorites_panel::tests::jump_pin_tests::jump_to_next_pin_empty_items_no_panic ... ok [INFO] [stdout] test views::favorites_panel::tests::jump_pin_tests::jump_to_next_pin_from_item_0 ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::collapse_state_preserved_across_rerender ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::differential_same_object_different_visual_output ... ok [INFO] [stdout] test views::favorites_panel::tests::jump_pin_tests::jump_to_prev_pin_from_item_2 ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::collapse_one_path_other_stays_expanded ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::metadata_render_row_count_match_with_collapse ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::enum_self_ref_collapse_independent ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::path_map_correct_indexation ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::path_map_correct_with_hidden_fields ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::sequential_collapse_both_independent ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::subtree_snapshot_path_collapse ... ok [INFO] [stdout] test views::favorites_panel::tests::path_based_collapse_tests::toggle_round_trip_collapse_then_expand ... ok [INFO] [stdout] test app::tests::favorites::favorites_snapshot_hides_unloaded_chunk_sentinels ... ok [INFO] [stdout] test views::favorites_panel::tests::rendering_tests::favorites_panel_renders_expanded_shows_minus ... ok [INFO] [stdout] test views::favorites_panel::tests::rendering_tests::favorites_panel_renders_with_local_collapsed_shows_plus ... ok [INFO] [stdout] test views::favorites_panel::tests::scroll_state_tests::favorites_panel_state_abs_row_correct ... ok [INFO] [stdout] test views::favorites_panel::tests::scroll_state_tests::favorites_panel_state_move_down_before_first_render_advances_item ... ok [INFO] [stdout] test views::favorites_panel::tests::scroll_state_tests::favorites_panel_state_move_down_crosses_item_boundary ... ok [INFO] [stdout] test views::favorites_panel::tests::rendering_tests::favorites_panel_renders_static_fields_for_pinned_object ... ok [INFO] [stdout] test views::favorites_panel::tests::scroll_state_tests::favorites_panel_state_move_up_crosses_item_boundary ... ok [INFO] [stdout] test views::favorites_panel::tests::rendering_tests::panel_shows_frame_header_with_f_prefix ... ok [INFO] [stdout] test views::favorites_panel::tests::rendering_tests::panel_shows_primitive_value ... ok [INFO] [stdout] test views::favorites_panel::tests::scroll_state_tests::sub_row_clamped_after_collapse ... ok [INFO] [stdout] test views::favorites_panel::tests::toggle_tests::favorites_item_toggle_collapse_adds_to_local_collapsed ... ok [INFO] [stdout] test views::favorites_panel::tests::rendering_tests::favorites_panel_renders_unavailable_object_with_question_marker ... ok [INFO] [stdout] test views::favorites_panel::tests::row_metadata_tests::collect_row_metadata_matches_render_count_flat ... ok [INFO] [stdout] test views::favorites_panel::tests::row_metadata_tests::collect_row_metadata_primitive_and_unexpanded_ref_row_count ... ok [INFO] [stdout] test views::favorites_panel::tests::row_metadata_tests::collect_row_metadata_matches_render_count_nested ... ok [INFO] [stdout] test views::favorites_panel::tests::row_metadata_tests::collect_row_metadata_subtree_collection_root_matches_render_count ... ok [INFO] [stdout] test views::favorites_panel::tests::rendering_tests::panel_shows_variable_header_with_v_prefix ... ok [INFO] [stdout] test views::favorites_panel::tests::row_metadata_tests::collect_row_metadata_cyclic_object_emits_one_row_not_infinite ... ok [INFO] [stdout] test views::favorites_panel::tests::toggle_tests::favorites_item_toggle_expand_removes_from_local_collapsed ... ok [INFO] [stdout] test views::help_bar::tests::build_rows_navigating_same_line_count ... ok [INFO] [stdout] test views::help_bar::tests::entry_count_matches_help_entries_for_qwerty ... ok [INFO] [stdout] test views::help_bar::tests::entry_count_matches_help_entries_for_azerty ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_camera_scroll_applicable_only_in_stack_frames ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_bn_keys_applicable_only_in_favorites ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_context_bit_returns_correct_value ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_global_entries_applicable_in_all_contexts ... ok [INFO] [stdout] test views::favorites_panel::tests::row_metadata_tests::collect_row_metadata_unavailable_object_is_not_toggleable ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_H_key_applicable_only_in_favorites ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_all_entries_have_valid_mask ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_h_key_applicable_only_in_favorites ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_c_key_applicable_in_stack_and_favorites ... ok [INFO] [stdout] test views::help_bar::tests::build_rows_produces_correct_line_count ... ok [INFO] [stdout] test views::help_bar::tests::navigating_context_uses_stack_bit ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_search_entry_applicable_only_in_thread_list ... ok [INFO] [stdout] test views::help_bar::tests::required_height_returns_sixteen_for_twenty_three_entries ... ok [INFO] [stdout] test views::stack_view::format::tests::empty_collection_shows_empty_label ... ok [INFO] [stdout] test views::help_bar::tests::navigating_context_overrides_esc_label ... ok [INFO] [stdout] test views::stack_view::format::tests::empty_collection_entry_value_shows_empty_label ... ok [INFO] [stdout] test views::stack_view::format::tests::render_expanded_object_ref_shows_id_when_enabled ... ok [INFO] [stdout] test views::stack_view::format::tests::render_collection_entry_null_id_never_shows_address ... ok [INFO] [stdout] test views::stack_view::format::tests::render_object_ref_id_toggle ... ok [INFO] [stdout] test views::stack_view::format::tests::render_collection_entry_id_toggle ... ok [INFO] [stdout] test views::stack_view::format::tests::render_object_ref_null_id_never_shows_address ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::chunk_ranges_total_1000 ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::chunk_ranges_total_150 ... ok [INFO] [stdout] test views::stack_view::format::tests::render_expanded_object_ref_hides_id_when_disabled ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::chunk_ranges_total_2348 ... ok [INFO] [stdout] test views::stack_view::tests::collapse_all_for_object_clears_static_section_state ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::chunk_ranges_total_100_no_sections ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::chunk_ranges_total_50_no_sections ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::chunk_ranges_total_500 ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::chunk_ranges_total_3000 ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::page_down_clamps_to_last_item ... ok [INFO] [stdout] test views::stack_view::tests::collapse_object_clears_static_section_state ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::page_up_clamps_to_first_item ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::cursor_collection_id_on_entry_with_field_path_returns_object_field_restore ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::flat_items_include_nested_collection_entries_for_multidimensional_arrays ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::page_up_jumps_by_visible_height ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::flat_items_collection_entry_self_ref_emits_terminal_obj_field_row ... ok [INFO] [stdout] test views::stack_view::tests::chunk_ranges_tests::page_down_jumps_by_visible_height ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::object_array_var_has_correct_entry_count_and_object_id ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::left_from_collection_entry_inside_object_field_navigates_to_field_row ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::parent_cursor_on_collection_entry_uses_path_parent_for_nested_collection ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::build_items_collection_entry_self_ref_renders_marker ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_collection_entry_count_returns_none_when_cursor_not_on_entry ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_collection_entry_count_returns_none_when_entry_not_collection ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::right_on_collection_var_dispatches_start_collection ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_collection_entry_obj_field_collection_info_returns_none_without_entry_count ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_collection_entry_count_returns_some_for_nested_array_entry ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_collection_entry_obj_field_ref_id_is_none_for_cyclic_row ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_var_entry_count_returns_some_when_on_var_with_entry_count ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_var_entry_count_returns_none_when_cursor_not_on_var ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::move_down_past_last_var_of_expanded_frame_moves_to_next_frame ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::move_up_at_frame_0_does_nothing ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::format_frame_label_keeps_line_metadata_when_source_file_missing ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::move_down_on_three_frames_with_no_expanded_moves_to_frame_1 ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::format_frame_label_with_source_file_and_line_number ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::new_with_three_frames_selects_frame_0 ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::selected_frame_id_returns_correct_frame_id ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_var_entry_count_returns_none_when_on_var_without_entry_count ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::new_with_empty_frames_returns_none_for_selected_frame_id ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::selected_collection_entry_obj_field_collection_info_returns_some_for_array_field ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::toggle_expand_with_vars_then_move_down_moves_to_var_0 ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::collapse_nested_non_recursive_preserves_parent ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::collapse_object_recursive_cycle_guard_does_not_infinite_loop ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::toggle_expand_collapse_from_var_cursor_resets_to_frame_and_navigation_works ... ok [INFO] [stdout] test views::stack_view::tests::cursor_tests::toggle_expand_on_already_expanded_frame_collapses_it ... ok [INFO] [stdout] test views::favorites_panel::tests::rendering_tests::favorites_panel_collapsed_collection_row_shows_plus_not_question ... ok [INFO] [stdout] test views::stack_view::tests::collection_tests::left_on_collection_entry_obj_field_with_open_collection_detects_collapse ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::build_items_indirect_cycle_renders_cyclic_marker ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::collapse_cyclic_child_resyncs_cursor_to_var ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::build_items_self_ref_renders_self_ref_marker ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::toggle_expand_collapse_frame_clears_nested_object_phases ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::flat_items_self_ref_emits_cyclic_node ... ok [INFO] [stdout] test views::stack_view::tests::emit_collection_entry_static_rows_collapsed ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::flat_items_multi_self_ref_emits_two_cyclic_nodes ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::collapse_object_recursive_removes_nested_expanded_child ... ok [INFO] [stdout] test views::stack_view::tests::emit_static_rows_collapsed_only_section_header ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::flat_items_acyclic_tree_no_cyclic_nodes ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::flat_items_diamond_shared_object_no_false_positive ... ok [INFO] [stdout] test views::stack_view::tests::expand_target_at_collection_entry_child_field ... ok [INFO] [stdout] test input::tests::from_key_maps_ctrl_down_to_camera_scroll_down ... ok [INFO] [stdout] test views::stack_view::tests::emit_static_rows_after_toggle_shows_fields ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::move_down_up_across_cyclic_node ... ok [INFO] [stdout] test favorites::tests::snapshot_freezes_loading_chunks_to_collapsed ... ok [INFO] [stdout] test views::stack_view::tests::expansion_lifecycle_tests::cancel_expansion_on_loading_reverts_to_collapsed ... ok [INFO] [stdout] test views::favorites_panel::tests::scroll_state_tests::favorites_panel_state_move_down_noop_at_last_row ... ok [INFO] [stdout] test views::stack_view::tests::expansion_lifecycle_tests::set_expansion_done_changes_phase_to_expanded ... ok [INFO] [stdout] test views::stack_view::tests::cycle_tests::flat_items_indirect_cycle_emits_cyclic_node ... ok [INFO] [stdout] test views::stack_view::tests::expansion_lifecycle_tests::set_expansion_failed_changes_phase_to_failed ... ok [INFO] [stdout] test views::stack_view::tests::expansion_lifecycle_tests::set_expansion_failed_recovers_cursor_from_loading_node_top_level ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::build_items_depth1_field_has_correct_indent ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::build_items_failed_expansion_shows_error_inline_on_var_row ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::build_items_depth2_field_has_correct_indent ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::enter_on_failed_collection_entry_is_noop ... ok [INFO] [stdout] test views::stack_view::tests::expansion_lifecycle_tests::set_expansion_failed_recovers_cursor_from_loading_node_nested_field ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::flat_items_loading_object_includes_loading_node ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::failed_var_label_uses_stored_error_message ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::move_down_from_on_var_expanded_moves_to_first_object_field ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::flat_items_depth2_expansion_emits_correct_cursor_sequence ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::failed_var_style_is_error_indicator ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::flat_items_expanded_with_two_fields_includes_two_object_field_nodes ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::flat_items_build_items_equal_length_invariant ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::failed_collection_entry_obj_no_phantom_cursor ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::enter_on_failed_var_is_noop ... ok [INFO] [stdout] test views::stack_view::tests::expansion_lifecycle_tests::set_expansion_loading_changes_phase_to_loading ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::selected_field_ref_id_returns_none_for_non_object_ref_field ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::selected_field_ref_id_returns_object_ref_id_for_nested_field ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::flat_items_expanded_with_zero_fields_has_no_loading_node ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::selected_loading_object_id_on_loading_node_returns_object_id ... ok [INFO] [stdout] test views::stack_view::tests::flat_items_tests::move_down_past_last_object_field_moves_to_next_frame ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::left_on_expanded_var_collapses_not_navigates ... ok [INFO] [stdout] test views::stack_view::tests::is_static_section_expanded_returns_false_on_unknown_path ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::expansion_at_path_a_does_not_affect_path_b ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::left_on_non_expanded_frame_is_noop ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::nav_path_parent_returns_frame_only_on_depth_2 ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::nav_path_parent_returns_none_on_frame_only ... ok [INFO] [stdout] test views::stack_view::tests::frame_collapse_clears_static_section_state ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::nav_path_two_builders_same_logical_path_are_eq_and_same_hash ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::left_on_non_expanded_var_navigates_to_frame ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::left_on_primitive_var_navigates_to_frame ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::parent_cursor_on_object_field_depth1_returns_on_var ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::parent_cursor_on_collection_entry_with_empty_field_path_returns_on_var ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::parent_cursor_on_collection_entry_obj_field_depth2_returns_shallow_obj_field ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::parent_cursor_on_object_field_depth2_returns_shallower_field ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::parent_cursor_on_collection_entry_obj_field_returns_collection_entry ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::parent_cursor_on_frame_returns_none ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::parent_cursor_on_var_returns_on_frame ... ok [INFO] [stdout] test views::stack_view::tests::path_isolation_tests::collapse_last_path_phase_collapsed_data_deferred ... ok [INFO] [stdout] test views::stack_view::tests::path_isolation_tests::collapse_at_path_removes_only_that_path ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::parent_cursor_on_collection_entry_with_field_path_returns_object_field ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::nav_path_frame_only_builds_valid_depth1_path ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::nav_path_parent_truncates_at_depth_3_plus ... ok [INFO] [stdout] test views::stack_view::tests::render_variable_tree_snapshot_static_collapsed ... ok [INFO] [stdout] test views::stack_view::tests::path_isolation_tests::collapse_static_field_parent_stays_expanded ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_down_clamps_stale_offset_before_increment ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::center_view_on_selection_clamps_at_bottom ... ok [INFO] [stdout] test views::stack_view::tests::scenario_expand_through_collection_field_into_entry_children ... ok [INFO] [stdout] test views::stack_view::tests::path_isolation_tests::data_sharing_same_object_shares_cache ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::center_view_on_selection_clamps_at_top ... ok [INFO] [stdout] test views::stack_view::tests::path_isolation_tests::phase_isolation_expand_a_b_stays_collapsed ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::center_view_on_selection_no_op_when_visible_height_zero ... ok [INFO] [stdout] test views::stack_view::tests::path_isolation_tests::stale_path_expansion_does_not_panic ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_down_shifts_offset_without_moving_cursor ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_down_no_op_when_list_fits_in_viewport ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_down_snaps_back_when_cursor_would_leave_viewport ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_page_down_shifts_offset_without_moving_cursor ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_page_down_snaps_back_when_cursor_would_leave_viewport ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_page_up_shifts_offset_without_moving_cursor ... ok [INFO] [stdout] test views::stack_view::tests::expand_target_at_collection_entry_path ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_up_shifts_offset_without_moving_cursor ... ok [INFO] [stdout] test views::help_bar::tests::help_bar_f_key_applicable_in_stack_and_favorites_not_thread ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::center_view_on_selection_places_cursor_near_middle ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_up_snaps_when_cursor_at_bottom_of_viewport ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_no_op_when_visible_height_zero ... ok [INFO] [stdout] test views::stack_view::tests::toggle_static_section_on_fresh_registry_returns_true ... ok [INFO] [stdout] test views::stack_view::tests::static_fields_rendering_tests::render_static_overflow_row_not_navigable ... ok [INFO] [stdout] test views::stack_view::tests::toggle_static_section_twice_returns_false ... ok [INFO] [stdout] test views::stack_view::tests::static_fields_rendering_tests::render_collection_entry_static_helper_rows_not_navigable ... ok [INFO] [stdout] test views::stack_view::tests::value_style_tests::value_style_bool_returns_primitive_value ... ok [INFO] [stdout] test views::stack_view::tests::value_style_tests::value_style_char_returns_string_value ... ok [INFO] [stdout] test views::stack_view::tests::value_style_tests::value_style_int_returns_primitive_value ... ok [INFO] [stdout] test views::stack_view::tests::static_fields_rendering_tests::collection_entry_static_object_field_rows_are_emitted ... ok [INFO] [stdout] test views::stack_view::tests::static_fields_rendering_tests::render_static_section_for_collection_entry_object ... ok [INFO] [stdout] test views::stack_view::tests::static_fields_rendering_tests::static_object_field_rows_are_emitted_and_navigable ... ok [INFO] [stdout] test views::stack_view::tests::value_style_tests::value_style_null_returns_null_value ... ok [INFO] [stdout] test views::stack_view::tests::static_fields_rendering_tests::render_static_section_separator_not_navigable ... ok [INFO] [stdout] test views::stack_view::tests::thread_switch_resets_static_section ... ok [INFO] [stdout] test views::stack_view::tests::static_section_per_path_isolation ... ok [INFO] [stdout] test views::stack_view::tests::value_style_tests::value_style_object_ref_without_inline_returns_default ... ok [INFO] [stdout] test views::stack_view::tests::value_style_tests::value_style_object_ref_with_inline_value_returns_string_value ... ok [INFO] [stdout] test views::stack_view::tests::static_header_shows_uncapped_field_count ... ok [INFO] [stdout] test views::status_bar::tests::fmt_bytes_formats_correctly ... ok [INFO] [stdout] test views::status_bar::tests::navigating_to_pin_shows_spinner_in_status_bar ... ok [INFO] [stdout] test views::status_bar::tests::memory_stats_rendered_in_status_bar ... ok [INFO] [stdout] test views::status_bar::tests::not_navigating_shows_no_spinner ... ok [INFO] [stdout] test views::status_bar::tests::incomplete_file_shown_in_status_bar ... ok [INFO] [stdout] test views::status_bar::tests::last_warning_truncated_at_40_chars ... ok [INFO] [stdout] test views::status_bar::tests::state_label_covers_all_thread_state_variants ... ok [INFO] [stdout] test views::status_bar::tests::state_label_returns_correct_string_for_each_variant ... ok [INFO] [stdout] test views::status_bar::tests::status_bar_selected_part_uses_thread_name_and_state ... ok [INFO] [stdout] test views::thread_list::tests::apply_filter_empty_restores_full_list ... ok [INFO] [stdout] test views::thread_list::tests::move_up_at_top_does_nothing ... ok [INFO] [stdout] test views::status_bar::tests::warning_count_nonzero_renders_warning_indicator ... ok [INFO] [stdout] test views::status_bar::tests::warning_count_zero_produces_no_warning_indicator ... ok [INFO] [stdout] test views::thread_list::tests::page_down_clamps_at_last_item ... ok [INFO] [stdout] test views::thread_list::tests::page_up_clamps_at_first_item ... ok [INFO] [stdout] test views::status_bar::tests::last_warning_appended_in_status_bar ... ok [INFO] [stdout] test views::thread_list::tests::apply_filter_worker_keeps_both_workers ... ok [INFO] [stdout] test views::thread_list::tests::apply_filter_xyz_yields_empty_list ... ok [INFO] [stdout] test views::thread_list::tests::move_up_from_last_moves_to_second_to_last ... ok [INFO] [stdout] test views::thread_list::tests::new_with_three_threads_selects_first ... ok [INFO] [stdout] test views::thread_list::tests::page_up_jumps_by_n_items ... ok [INFO] [stdout] test views::thread_list::tests::select_serial_sets_cursor_when_visible ... ok [INFO] [stdout] test views::thread_list::tests::selection_tracks_serial_not_index ... ok [INFO] [stdout] test views::thread_list::tests::thread_list_reopen_search_preserves_existing_filter_in_input ... ok [INFO] [stdout] test views::thread_list::tests::select_serial_noop_when_hidden_by_filter ... ok [INFO] [stdout] test views::thread_list::tests::selected_serial_returns_none_when_filtered_list_is_empty ... ok [INFO] [stdout] test views::tree_render::tests::empty_collections::empty_collection_field_renders_without_toggle ... ok [INFO] [stdout] test views::thread_list::tests::page_down_jumps_by_n_items ... ok [INFO] [stdout] test views::tree_render::tests::frame_rendering::frame_with_collapsed_object_ref_shows_plus ... ok [INFO] [stdout] test views::tree_render::tests::frame_rendering::frame_with_expanded_object_ref_shows_minus_and_fields ... ok [INFO] [stdout] test views::tree_render::tests::empty_collections::empty_collection_var_renders_without_toggle ... ok [INFO] [stdout] test views::tree_render::tests::helpers::split_object_id_range_handles_inline_value_suffix ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_page_up_snaps_when_cursor_at_bottom_edge ... ok [INFO] [stdout] test views::stack_view::tests::scroll_tests::scroll_view_no_op_when_no_frames ... ok [INFO] [stdout] test views::thread_list::tests::move_down_moves_to_second_thread ... ok [INFO] [stdout] test views::thread_list::tests::thread_list_clear_filter_on_empty_result_syncs_cursor ... ok [INFO] [stdout] test views::thread_list::tests::separators_char_and_style_at_expected_rows ... ok [INFO] [stdout] test views::tree_render::tests::frame_rendering::frame_with_no_vars_renders_no_locals ... ok [INFO] [stdout] test views::tree_render::tests::frame_rendering::frame_with_null_var_renders_null ... ok [INFO] [stdout] test views::thread_list::tests::separators_fill_full_inner_width ... ok [INFO] [stdout] test views::tree_render::tests::hidden_fields_tests::render_variable_tree_hidden_var_absent_when_show_hidden_false ... ok [INFO] [stdout] test views::tree_render::tests::snapshot_mode::snapshot_mode_unavailable_var_shows_question_toggle ... ok [INFO] [stdout] test views::tree_render::tests::snapshot_mode::snapshot_mode_collapsed_collection_shows_plus_not_question ... ok [INFO] [stdout] test views::tree_render::tests::subtree_root::failed_collection_entry_shows_error_message_inline ... ok [INFO] [stdout] test views::tree_render::tests::hidden_fields_tests::render_variable_tree_hidden_var_shows_placeholder ... ok [INFO] [stdout] test views::tree_render::tests::hidden_fields_tests::render_variable_tree_not_hidden_var_shows_normal ... ok [INFO] [stdout] test views::thread_list::tests::separators_visible_when_list_empty_due_to_filter ... ok [INFO] [stdout] test views::thread_list::tests::separators_use_unfocused_style_regardless_of_focus ... ok [INFO] [stdout] test views::tree_render::tests::object_display::cyclic_object_ref_does_not_recurse_infinitely ... ok [INFO] [stdout] test views::tree_render::tests::live_mode_phase_lookup::expanded_var_shows_minus_toggle_in_live_mode ... ok [INFO] [stdout] test views::tree_render::tests::object_display::failed_var_label_uses_short_class_without_local_variable_prefix ... ok [INFO] [stdout] test views::tree_render::tests::object_display::nested_object_field_respects_object_id_toggle ... ok [INFO] [stdout] test views::tree_render::tests::hidden_fields_tests::render_variable_tree_hidden_field_suppresses_children ... ok [INFO] [stdout] test views::tree_render::tests::subtree_root::subtree_root_renders_fields_at_two_space_indent ... ok [INFO] [stdout] test warnings::tests::add_and_count ... ok [INFO] [stdout] test warnings::tests::add_drops_message_when_cap_reached ... ok [INFO] [stdout] test warnings::tests::last_on_empty_returns_none ... ok [INFO] [stdout] test warnings::tests::last_returns_most_recent ... ok [INFO] [stdout] test views::tree_render::tests::subtree_root::subtree_root_collection_renders_entries_without_object_fields ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::nav_path_build_panics_when_var_at_position_2 - should panic ... ok [INFO] [stdout] test views::stack_view::tests::navigation_path_tests::nav_path_build_panics_when_frame_at_position_2 - should panic ... ok [INFO] [stdout] test favorites::tests::snapshot_respects_object_limit_truncation ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 490 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s [INFO] [stdout] [INFO] [stderr] Doc-tests hprof_api [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests hprof_engine [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests hprof_parser [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test crates/hprof-parser/src/mmap.rs - mmap (line 12) - compile ... ok [INFO] [stdout] test crates/hprof-parser/src/test_utils.rs - test_utils (line 11) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.44s; merged doctests compilation took 0.43s [INFO] [stderr] Doc-tests hprof_tui [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test crates/hprof-tui/src/theme.rs - theme::THEME (line 86) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.35s; merged doctests compilation took 0.35s [INFO] running `Command { std: "docker" "inspect" "12044b41ff11f5a86fc16e55fc30294d96e934f73e74f0ee7e12229771a414bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "12044b41ff11f5a86fc16e55fc30294d96e934f73e74f0ee7e12229771a414bc", kill_on_drop: false }` [INFO] [stdout] 12044b41ff11f5a86fc16e55fc30294d96e934f73e74f0ee7e12229771a414bc