[INFO] cloning repository https://github.com/rubberduck203/duklog
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rubberduck203/duklog" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frubberduck203%2Fduklog", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frubberduck203%2Fduklog'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 90f0321101482fd96009c3d7d5efcaabe319c727
[INFO] testing rubberduck203/duklog against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frubberduck203%2Fduklog" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rubberduck203/duklog
[INFO] finished tweaking git repo https://github.com/rubberduck203/duklog
[INFO] tweaked toml for git repo https://github.com/rubberduck203/duklog written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rubberduck203/duklog on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rubberduck203/duklog 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tui-textarea v0.7.0
[INFO] [stderr]   Downloaded env_filter v1.0.0
[INFO] [stderr]   Downloaded mutants v0.0.3
[INFO] [stderr]   Downloaded difa v0.1.1
[INFO] [stderr]   Downloaded env_logger v0.11.9
[INFO] [stderr]   Downloaded insta v1.46.3
[INFO] [stderr]   Downloaded toml_parser v1.0.8+spec-1.1.0
[INFO] [stderr]   Downloaded rust_decimal v1.40.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] abce0ed11e44fd000fe93b8f1341766a6faff451e4c16e58d296c7615455c325
[INFO] running `Command { std: "docker" "start" "-a" "abce0ed11e44fd000fe93b8f1341766a6faff451e4c16e58d296c7615455c325", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "abce0ed11e44fd000fe93b8f1341766a6faff451e4c16e58d296c7615455c325", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "abce0ed11e44fd000fe93b8f1341766a6faff451e4c16e58d296c7615455c325", kill_on_drop: false }`
[INFO] [stdout] abce0ed11e44fd000fe93b8f1341766a6faff451e4c16e58d296c7615455c325
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 78f0413e496a08811acdf993db3327055bb72ffee9e0805b93b0b21fb539eca9
[INFO] running `Command { std: "docker" "start" "-a" "78f0413e496a08811acdf993db3327055bb72ffee9e0805b93b0b21fb539eca9", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling rust_decimal v1.40.0
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling mutants v0.0.3
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[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 dirs-sys v0.5.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling difa v0.1.1
[INFO] [stderr]    Compiling tui-textarea v0.7.0
[INFO] [stderr]    Compiling duklog v0.7.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.45s
[INFO] running `Command { std: "docker" "inspect" "78f0413e496a08811acdf993db3327055bb72ffee9e0805b93b0b21fb539eca9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78f0413e496a08811acdf993db3327055bb72ffee9e0805b93b0b21fb539eca9", kill_on_drop: false }`
[INFO] [stdout] 78f0413e496a08811acdf993db3327055bb72ffee9e0805b93b0b21fb539eca9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1d3d218da64224a4fdb201092cc7019c09e1f1386318061db3728ac1ea6cf3c8
[INFO] running `Command { std: "docker" "start" "-a" "1d3d218da64224a4fdb201092cc7019c09e1f1386318061db3728ac1ea6cf3c8", kill_on_drop: false }`
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling env_filter v1.0.0
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling quickcheck_macros v1.2.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling env_logger v0.11.9
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling quickcheck v1.1.0
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling insta v1.46.3
[INFO] [stderr]    Compiling tui-textarea v0.7.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling difa v0.1.1
[INFO] [stderr]    Compiling duklog v0.7.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 18.45s
[INFO] running `Command { std: "docker" "inspect" "1d3d218da64224a4fdb201092cc7019c09e1f1386318061db3728ac1ea6cf3c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d3d218da64224a4fdb201092cc7019c09e1f1386318061db3728ac1ea6cf3c8", kill_on_drop: false }`
[INFO] [stdout] 1d3d218da64224a4fdb201092cc7019c09e1f1386318061db3728ac1ea6cf3c8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c4f8d2a49ca4b7ba79837a7300c4e1b1fd0053f87ceb6433c69a339cf3304571
[INFO] running `Command { std: "docker" "start" "-a" "c4f8d2a49ca4b7ba79837a7300c4e1b1fd0053f87ceb6433c69a339cf3304571", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/duklog-2e5e23c8f9046283)
[INFO] [stdout] 
[INFO] [stdout] running 766 tests
[INFO] [stdout] test adif::reader::tests::fd_log_missing_section_returns_error ... ok
[INFO] [stdout] test adif::reader::tests::empty_adif_file_returns_error ... ok
[INFO] [stdout] test adif::writer::tests::fd_qso_without_frequency_omits_freq ... ok
[INFO] [stdout] test adif::writer::tests::fd_qso_with_frequency_contains_freq_field ... ok
[INFO] [stdout] test adif::writer::tests::field_day_qso_contains_contest_id ... ok
[INFO] [stdout] test adif::reader::tests::wfd_log_round_trips ... ok
[INFO] [stdout] test adif::reader::tests::qso_only_file_without_header_returns_error ... ok
[INFO] [stdout] test adif::reader::tests::missing_log_type_returns_error ... ok
[INFO] [stdout] test adif::writer::tests::adif_header_precedes_records ... ok
[INFO] [stdout] test adif::writer::tests::field_day_qso_with_exchange_contains_srx_string ... ok
[INFO] [stdout] test adif::writer::tests::general_log_excludes_pota_sig_fields ... ok
[INFO] [stdout] test adif::writer::tests::adif_with_two_qsos ... ok
[INFO] [stdout] test adif::writer::tests::field_day_qso_contains_stx_string ... ok
[INFO] [stdout] test adif::writer::tests::general_qso_with_frequency_emits_freq ... ok
[INFO] [stdout] test adif::writer::tests::header_contains_programid ... ok
[INFO] [stdout] test adif::writer::tests::header_contains_adif_ver ... ok
[INFO] [stdout] test adif::writer::tests::adif_empty_log_header_only ... ok
[INFO] [stdout] test adif::writer::tests::header_contains_programversion ... ok
[INFO] [stdout] test adif::writer::tests::header_ends_with_eoh ... ok
[INFO] [stdout] test adif::writer::tests::non_pota_qso_with_their_park_excludes_sig_info ... ok
[INFO] [stdout] test adif::writer::tests::field_day_qso_without_exchange_omits_srx_string ... ok
[INFO] [stdout] test adif::writer::tests::pota_qso_with_frequency_emits_freq ... ok
[INFO] [stdout] test adif::writer::tests::qso_call_field_has_correct_byte_length ... ok
[INFO] [stdout] test adif::writer::tests::general_qso_without_frequency_omits_freq ... ok
[INFO] [stdout] test adif::reader::tests::pota_log_with_freq_qso_round_trips ... ok
[INFO] [stdout] test adif::reader::tests::pota_log_with_qsos_round_trips ... ok
[INFO] [stdout] test adif::writer::tests::qso_contains_required_fields ... ok
[INFO] [stdout] test adif::writer::tests::qso_distinct_operator ... ok
[INFO] [stdout] test adif::writer::tests::qso_none_operator_excludes_operator_field ... ok
[INFO] [stdout] test adif::reader::tests::general_log_round_trips ... ok
[INFO] [stdout] test adif::writer::tests::qso_p2p_includes_sig ... ok
[INFO] [stdout] test adif::writer::tests::header_contains_created_timestamp ... ok
[INFO] [stdout] test adif::writer::tests::qso_same_operator_excludes_operator_field ... ok
[INFO] [stdout] test adif::writer::tests::qso_without_comment_excludes_comment_field ... ok
[INFO] [stdout] test adif::writer::tests::qso_without_their_park_excludes_sig ... ok
[INFO] [stdout] test adif::writer::tests::wfd_log_excludes_pota_sig_fields ... ok
[INFO] [stdout] test adif::writer::tests::wfd_qso_contains_contest_id ... ok
[INFO] [stdout] test adif::writer::tests::qso_ends_with_eor ... ok
[INFO] [stdout] test adif::writer::tests::qso_with_comment ... ok
[INFO] [stdout] test adif::reader::tests::fd_log_round_trips ... ok
[INFO] [stdout] test adif::writer::tests::qso_with_park_includes_my_sig ... ok
[INFO] [stdout] test adif::writer::tests::wfd_qso_contains_stx_and_srx ... ok
[INFO] [stdout] test adif::writer::tests::wfd_qso_with_frequency_contains_freq_field ... ok
[INFO] [stdout] test adif::writer::tests::wfd_qso_without_frequency_omits_freq ... ok
[INFO] [stdout] test model::band::tests::adif_str_all_bands ... ok
[INFO] [stdout] test model::band::tests::all_returns_13_bands ... ok
[INFO] [stdout] test model::band::tests::default_is_20m ... ok
[INFO] [stdout] test model::band::tests::all_starts_with_160m_ends_with_70cm ... ok
[INFO] [stdout] test model::band::tests::from_frequency_khz_gaps_return_none ... ok
[INFO] [stdout] test model::band::tests::from_frequency_khz_returns_valid_band_or_none ... ok
[INFO] [stdout] test model::band::tests::serde_round_trip ... ok
[INFO] [stdout] test model::log::field_day::tests::display_label_field_day_returns_exchange ... ok
[INFO] [stdout] test adif::reader::tests::pota_log_round_trips ... ok
[INFO] [stdout] test model::band::tests::from_adif_str_round_trips_all_bands ... ok
[INFO] [stdout] test model::log::field_day::tests::field_day_find_duplicates_spans_all_dates ... ok
[INFO] [stdout] test model::log::field_day::tests::field_day_zero_tx_count_rejected ... ok
[INFO] [stdout] test model::log::field_day::tests::parse_fd_class_invalid_returns_err ... ok
[INFO] [stdout] test model::log::field_day::tests::parse_fd_class_lowercase_accepted ... ok
[INFO] [stdout] test model::log::field_day::tests::parse_fd_class_lowercase_round_trip ... ok
[INFO] [stdout] test model::log::field_day::tests::parse_fd_class_round_trip ... ok
[INFO] [stdout] test model::log::field_day::tests::parse_fd_class_valid_letters ... ok
[INFO] [stdout] test model::log::field_day::tests::power_category_adif_str_round_trips ... ok
[INFO] [stdout] test model::log::field_day::tests::valid_field_day_log_creation ... ok
[INFO] [stdout] test model::log::general::tests::display_label_general_returns_callsign ... ok
[INFO] [stdout] test model::band::tests::from_frequency_khz_known_frequencies ... ok
[INFO] [stdout] test model::log::field_day::tests::field_day_empty_section_rejected ... ok
[INFO] [stdout] test model::log::general::tests::valid_general_log_creation ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_wrong_class_letter ... ok
[INFO] [stdout] test model::log::field_day::tests::parse_fd_class_invalid_string_returns_err ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_no_section ... ok
[INFO] [stdout] test model::log::general::tests::general_log_is_never_activated ... ok
[INFO] [stdout] test model::log::pota::tests::display_label_returns_park_ref ... ok
[INFO] [stdout] test model::log::pota::tests::invalid_grid_square ... ok
[INFO] [stdout] test model::log::pota::tests::invalid_operator ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_valid_all_classes ... ok
[INFO] [stdout] test model::log::pota::tests::invalid_station_callsign ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_empty_is_invalid ... ok
[INFO] [stdout] test model::log::pota::tests::none_operator_succeeds ... ok
[INFO] [stdout] test model::log::pota::tests::valid_pota_log_creation ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_no_space ... ok
[INFO] [stdout] test model::log::pota::tests::invalid_park_ref ... ok
[INFO] [stdout] test model::log::tests::add_qso_increments_count ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_valid_dx_section ... ok
[INFO] [stdout] test model::log::tests::duplicate_qso_not_counted_for_activation ... ok
[INFO] [stdout] test model::log::tests::different_band_same_call_counts_separately ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_valid_multi_tx ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_case_insensitive_callsign ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_different_band_not_flagged ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_different_mode_not_flagged ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_empty_log_returns_empty ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_exact_match_detected ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_on_none_searches_all_dates ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_no_count ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_on_some_filters_to_date ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_ignores_previous_day_qsos ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_wrong_class_letter_rejected ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_valid_constructed_always_accepted ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_returns_all_matching_qsos ... ok
[INFO] [stdout] test model::log::tests::log_type_name_field_day ... ok
[INFO] [stdout] test model::log::tests::log_type_name_general ... ok
[INFO] [stdout] test model::log::tests::log_type_name_pota ... ok
[INFO] [stdout] test model::log::tests::log_type_name_wfd ... ok
[INFO] [stdout] test model::log::tests::replace_qso_out_of_bounds_returns_none ... ok
[INFO] [stdout] test model::log::tests::qso_count_on_date_filters_correctly ... ok
[INFO] [stdout] test model::log::tests::qso_count_today_empty ... ok
[INFO] [stdout] test model::log::tests::replace_qso_at_valid_index_returns_old ... ok
[INFO] [stdout] test model::log::tests::utc_midnight_boundary ... ok
[INFO] [stdout] test model::log::header::tests::remove_qso_out_of_bounds_returns_none ... ok
[INFO] [stdout] test model::log::wfd::tests::display_label_wfd_returns_exchange ... ok
[INFO] [stdout] test model::log::wfd::tests::valid_wfd_log_creation ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_lowercase_round_trip ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_valid_letters ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_invalid_returns_err ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_no_section ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_no_space ... ok
[INFO] [stdout] test model::log::header::tests::remove_qso_valid_index_returns_correct_qso ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_valid_all_classes ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_valid_constructed_always_accepted ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_lowercase_accepted ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_valid_dx_section ... ok
[INFO] [stdout] test adif::writer::tests::field_day_log_excludes_pota_sig_fields ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_invalid_string_returns_err ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_valid_multi_tx ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_round_trip ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_empty_section_rejected ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_empty_is_invalid ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_no_count ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_find_duplicates_spans_all_dates ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_zero_tx_count_rejected ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_wrong_class_letter ... ok
[INFO] [stdout] test adif::writer::tests::adif_eor_count_matches_qso_count ... ok
[INFO] [stdout] test model::mode::tests::adif_str_all_modes ... ok
[INFO] [stdout] test model::mode::tests::all_returns_10_modes ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_wrong_class_letter_rejected ... ok
[INFO] [stdout] test model::mode::tests::default_is_ssb ... ok
[INFO] [stdout] test model::mode::tests::default_rst_all_modes ... ok
[INFO] [stdout] test model::mode::tests::from_adif_str_round_trips_all_modes ... ok
[INFO] [stdout] test model::qso::tests::contest_qso_with_exchange_and_frequency ... ok
[INFO] [stdout] test model::qso::tests::field_values_preserved ... ok
[INFO] [stdout] test model::mode::tests::serde_round_trip ... ok
[INFO] [stdout] test model::qso::tests::invalid_park_ref_rejected ... ok
[INFO] [stdout] test model::qso::tests::valid_p2p_qso ... ok
[INFO] [stdout] test model::qso::tests::serde_round_trip ... ok
[INFO] [stdout] test model::qso::tests::valid_qso ... ok
[INFO] [stdout] test model::validation::tests::callsign_empty ... ok
[INFO] [stdout] test model::validation::tests::callsign_invalid_chars ... ok
[INFO] [stdout] test model::validation::tests::callsign_simple ... ok
[INFO] [stdout] test model::validation::tests::callsign_with_slash ... ok
[INFO] [stdout] test model::validation::tests::callsign_nonempty_alnum_slash_is_valid ... ok
[INFO] [stdout] test model::validation::tests::grid_boundary_values ... ok
[INFO] [stdout] test model::validation::tests::grid_empty ... ok
[INFO] [stdout] test model::validation::tests::grid_five_chars ... ok
[INFO] [stdout] test model::validation::tests::grid_four_char ... ok
[INFO] [stdout] test model::validation::tests::grid_out_of_range_field ... ok
[INFO] [stdout] test model::validation::tests::grid_six_char ... ok
[INFO] [stdout] test model::validation::tests::grid_subsquare_out_of_range ... ok
[INFO] [stdout] test model::validation::tests::grid_uppercase_subsquare ... ok
[INFO] [stdout] test model::validation::tests::grid_valid_four_char_always_accepted ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_six_char_all_lowercase ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_four_char_lowercase ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_six_char_all_uppercase ... ok
[INFO] [stdout] test model::log::tests::activation_threshold_property ... ok
[INFO] [stdout] test model::qso::tests::empty_callsign_rejected ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_then_validate_accepts_any_case_four_char ... ok
[INFO] [stdout] test model::validation::tests::normalize_park_ref_already_correct ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_square_is_idempotent ... ok
[INFO] [stdout] test model::validation::tests::normalize_park_ref_lowercase ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_then_validate_accepts_uppercase_subsquare ... ok
[INFO] [stdout] test model::validation::tests::park_ref_empty ... ok
[INFO] [stdout] test model::validation::tests::normalize_park_ref_is_idempotent ... ok
[INFO] [stdout] test model::validation::tests::park_ref_lowercase ... ok
[INFO] [stdout] test model::validation::tests::normalize_park_ref_then_validate_accepts_any_lowercase_valid_ref ... ok
[INFO] [stdout] test model::log::header::tests::remove_qso_decrements_length ... ok
[INFO] [stdout] test model::validation::tests::park_ref_no_dash ... ok
[INFO] [stdout] test model::validation::tests::park_ref_too_many_digits ... ok
[INFO] [stdout] test model::validation::tests::park_ref_us ... ok
[INFO] [stdout] test model::validation::tests::park_ref_three_letter ... ok
[INFO] [stdout] test model::validation::tests::park_ref_too_few_digits ... ok
[INFO] [stdout] test model::validation::tests::section_dx_is_valid ... ok
[INFO] [stdout] test model::validation::tests::section_empty_is_invalid ... ok
[INFO] [stdout] test model::log::tests::is_activated_property ... ok
[INFO] [stdout] test model::validation::tests::park_ref_valid_format_always_accepted ... ok
[INFO] [stdout] test storage::export::tests::default_path_is_in_duklog_subdirectory ... ok
[INFO] [stdout] test storage::export::tests::default_path_sanitizes_portable_callsign_with_park_ref ... ok
[INFO] [stdout] test model::validation::tests::tx_count_nonzero_always_valid ... ok
[INFO] [stdout] test model::validation::tests::tx_count_one_is_valid ... ok
[INFO] [stdout] test model::validation::tests::tx_count_zero_is_invalid ... ok
[INFO] [stdout] test model::validation::tests::section_any_nonempty_string_is_valid ... ok
[INFO] [stdout] test storage::export::tests::default_path_general_log ... ok
[INFO] [stdout] test storage::export::tests::default_path_fd_log ... ok
[INFO] [stdout] test storage::export::tests::default_path_general_sanitizes_portable_callsign ... ok
[INFO] [stdout] test storage::export::tests::default_path_wfd_log ... ok
[INFO] [stdout] test storage::export::tests::default_path_with_park_ref ... ok
[INFO] [stdout] test storage::export::tests::export_creates_missing_parent_directories ... ok
[INFO] [stdout] test storage::export::tests::export_empty_log_produces_header_only ... ok
[INFO] [stdout] test storage::export::tests::export_creates_file_with_header_and_records ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_callsign ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_field_day_vs_wfd_same_callsign ... ok
[INFO] [stdout] test model::log::tests::qso_count_today_matches_added ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_wfd_different_tx_count ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_none_vs_some_operator ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_pota_vs_general_same_callsign ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_case_insensitive_callsign ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_case_insensitive_operator ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_park_ref ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_operator ... ok
[INFO] [stdout] test storage::manager::tests::append_qso_adds_to_existing_log ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_grid ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_general_logs ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_field_day_different_section ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_case_insensitive_grid ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_field_day_same_config ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_same_park_ref ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_none_operators ... ok
[INFO] [stdout] test storage::manager::tests::create_log_error_contains_callsign_and_date ... ok
[INFO] [stdout] test storage::manager::tests::create_log_propagates_list_logs_error ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_wfd_same_config ... ok
[INFO] [stdout] test storage::manager::tests::delete_nonexistent_log_returns_error ... ok
[INFO] [stdout] test storage::manager::tests::create_log_succeeds_when_no_existing_logs ... ok
[INFO] [stdout] test storage::manager::tests::fd_jsonl_with_empty_section_is_not_migrated ... ok
[INFO] [stdout] test storage::manager::tests::delete_removes_log_file ... ok
[INFO] [stdout] test model::validation::tests::park_ref_canada ... ok
[INFO] [stdout] test model::validation::tests::section_nonempty_is_valid ... ok
[INFO] [stdout] test storage::manager::tests::list_logs_empty_directory ... ok
[INFO] [stdout] test storage::manager::tests::general_log_round_trips_as_general ... ok
[INFO] [stdout] test storage::manager::tests::list_logs_ignores_non_adif_files ... ok
[INFO] [stdout] test storage::manager::tests::field_day_zero_tx_count_returns_error ... ok
[INFO] [stdout] test model::log::tests::needs_for_activation_property ... ok
[INFO] [stdout] test model::log::tests::qso_count_on_date_equals_added_count ... ok
[INFO] [stdout] test storage::manager::tests::field_day_log_round_trips ... ok
[INFO] [stdout] test storage::manager::tests::field_day_missing_section_returns_error ... ok
[INFO] [stdout] test storage::manager::tests::fd_jsonl_with_valid_section_migrates_to_adif ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_some_vs_none_operator ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_utc_day ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_exact_duplicate_same_day ... ok
[INFO] [stdout] test storage::manager::tests::list_logs_returns_all_sorted_by_created_at_desc ... ok
[INFO] [stdout] test storage::manager::tests::load_corrupt_adif_returns_error ... ok
[INFO] [stdout] test storage::manager::tests::log_id_with_slash_round_trips ... ok
[INFO] [stdout] test storage::manager::tests::metadata_preserves_none_operator ... ok
[INFO] [stdout] test storage::manager::tests::old_format_operator_string_deserializes_to_some ... ok
[INFO] [stdout] test storage::manager::tests::operator_eq::different_callsign_some_differ ... ok
[INFO] [stdout] test storage::manager::tests::operator_eq::different_case_some_are_equal ... ok
[INFO] [stdout] test storage::manager::tests::old_format_without_log_type_deserializes_as_pota ... ok
[INFO] [stdout] test storage::manager::tests::operator_eq::none_and_none_are_equal ... ok
[INFO] [stdout] test storage::manager::tests::operator_eq::none_and_some_differ ... ok
[INFO] [stdout] test storage::manager::tests::operator_eq::same_case_some_are_equal ... ok
[INFO] [stdout] test storage::manager::tests::operator_eq::some_and_none_differ ... ok
[INFO] [stdout] test storage::manager::tests::park_ref_eq::different_case_park_ref_equal ... ok
[INFO] [stdout] test storage::manager::tests::park_ref_eq::different_park_ref_differ ... ok
[INFO] [stdout] test storage::manager::tests::park_ref_eq::same_park_ref_equal ... ok
[INFO] [stdout] test storage::manager::tests::pota_log_preserves_park_ref ... ok
[INFO] [stdout] test storage::manager::tests::save_and_load_empty_log ... ok
[INFO] [stdout] test storage::manager::tests::save_and_load_log_with_qsos ... ok
[INFO] [stdout] test storage::manager::tests::save_overwrites_existing_file ... ok
[INFO] [stdout] test storage::manager::tests::wfd_missing_tx_count_returns_error ... ok
[INFO] [stdout] test storage::manager::tests::with_path_creates_directory ... ok
[INFO] [stdout] test tui::app::tests::accessors::manager_accessor_returns_manager ... ok
[INFO] [stdout] test storage::manager::tests::wfd_zero_tx_count_returns_error ... ok
[INFO] [stdout] test tui::app::tests::construction::starts_on_log_select ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::d_on_empty_list_is_noop ... ok
[INFO] [stdout] test storage::manager::tests::wfd_log_round_trips ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::d_sets_pending_confirmation ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::d_then_esc_preserves_list ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::d_then_y_deletes_log_and_reloads_list ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::d_then_n_preserves_list ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::delete_storage_error_preserves_error_message ... ok
[INFO] [stdout] test tui::app::tests::accessors::current_log_returns_set_log ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::deleting_current_log_clears_current_log ... ok
[INFO] [stdout] test tui::app::tests::delete_qso_integration::apply_delete_qso_without_active_log_is_noop ... ok
[INFO] [stdout] test storage::manager::tests::load_empty_adif_returns_error ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::deleting_only_log_leaves_empty_list_with_no_selection ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::deleting_one_of_two_logs_leaves_one ... ok
[INFO] [stdout] test tui::app::tests::delete_qso_integration::d_then_n_preserves_qso ... ok
[INFO] [stdout] test tui::app::tests::delete_qso_integration::delete_last_qso_clamps_selection_to_zero ... ok
[INFO] [stdout] test tui::app::tests::export_integration::export_log_writes_file ... ok
[INFO] [stdout] test tui::app::tests::export_integration::export_without_current_log_shows_error ... ok
[INFO] [stdout] test tui::app::tests::export_integration::export_screen_shows_path_and_count ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::deleting_different_log_preserves_current_log ... ok
[INFO] [stdout] test tui::app::tests::export_integration::navigate_to_export_prepares_state ... ok
[INFO] [stdout] test tui::app::tests::delete_qso_integration::delete_qso_at_last_index_clamps_selection ... ok
[INFO] [stdout] test tui::app::tests::export_integration::alt_x_navigates_to_export ... ok
[INFO] [stdout] test tui::app::tests::global_keys::ctrl_h_normalized_event_has_no_modifiers ... ok
[INFO] [stdout] test tui::app::tests::global_keys::ctrl_h_acts_as_backspace ... ok
[INFO] [stdout] test tui::app::tests::delete_qso_integration::delete_qso_storage_error_shows_error_on_qso_list ... ok
[INFO] [stdout] test tui::app::tests::export_integration::esc_on_export_returns_to_qso_entry ... ok
[INFO] [stdout] test tui::app::tests::delete_qso_integration::delete_qso_persists_to_storage ... ok
[INFO] [stdout] test tui::app::tests::global_keys::esc_on_help_navigates_to_log_select ... ok
[INFO] [stdout] test tui::app::tests::global_keys::esc_on_help_returns_to_origin_screen ... ok
[INFO] [stdout] test tui::app::tests::export_integration::any_key_after_success_returns_to_qso_entry ... ok
[INFO] [stdout] test tui::app::tests::export_integration::q_on_export_appends_to_path ... ok
[INFO] [stdout] test tui::app::tests::global_keys::f1_on_help_stays_on_help ... ok
[INFO] [stdout] test tui::app::tests::delete_qso_integration::d_then_y_removes_qso ... ok
[INFO] [stdout] test storage::manager::tests::load_nonexistent_log_returns_error ... ok
[INFO] [stdout] test tui::app::tests::global_keys::q_on_log_select_is_ignored ... ok
[INFO] [stdout] test tui::app::tests::global_keys::q_on_qso_list_is_ignored ... ok
[INFO] [stdout] test tui::app::tests::global_keys::navigate_to_qso_list_resets_state ... ok
[INFO] [stdout] test tui::app::tests::export_integration::f1_on_export_navigates_to_help ... ok
[INFO] [stdout] test tui::app::tests::global_keys::esc_on_qso_list_navigates_to_qso_entry ... ok
[INFO] [stdout] test tui::app::tests::global_keys::esc_on_log_select_quits ... ok
[INFO] [stdout] test tui::app::tests::global_keys::q_on_help_does_not_return_to_origin_screen ... ok
[INFO] [stdout] test tui::app::tests::global_keys::unhandled_key_is_ignored ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::f1_on_log_create_navigates_to_help ... ok
[INFO] [stdout] test tui::app::tests::global_keys::release_events_are_ignored ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::invalid_create_log_stays_on_form ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::form_reset_on_navigate_to_log_create ... ok
[INFO] [stdout] test tui::app::tests::global_keys::q_on_help_is_ignored ... ok
[INFO] [stdout] test tui::app::tests::global_keys::plain_h_is_not_normalized_to_backspace ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::valid_create_log_saves_and_navigates ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::n_on_log_select_navigates_to_log_create ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::create_log_persists_to_storage ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::q_on_log_create_types_q_not_quit ... ok
[INFO] [stdout] test tui::app::tests::log_select_integration::enter_on_empty_log_list_is_noop ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::tab_cycles_form_fields ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::esc_on_log_create_returns_to_log_select ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::duplicate_error_cleared_on_navigate_away_and_back ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::add_qso_without_active_log_shows_error ... ok
[INFO] [stdout] test tui::app::tests::log_select_integration::select_log_navigates_to_qso_entry ... ok
[INFO] [stdout] test tui::app::tests::log_select_after_create::n_and_esc_work_on_log_select_after_creating_first_log ... ok
[INFO] [stdout] test tui::app::tests::log_select_integration::log_list_reloads_on_return_to_select ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::duplicate_log_shows_error_on_log_create_screen ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::create_log_then_submit_qso ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::multiple_qsos_persist_and_accumulate ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::duplicate_qso_shows_warning_but_still_logged ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::esc_from_qso_entry_returns_to_log_select ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::f1_on_qso_entry_navigates_to_help ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::navigate_action_to_qso_entry_sets_context ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::no_warning_for_different_band ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::select_log_populates_recent_qsos ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::navigate_to_qso_entry_sets_log_context ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::storage_error_on_append_shows_error ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::submit_qso_adds_to_recent ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::warning_cleared_when_next_qso_is_not_duplicate ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::submit_qso_clears_form ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::cancel_edit_returns_to_list ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::edit_qso_out_of_bounds_shows_error ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::edit_qso_without_active_log_shows_error ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::arrow_keys_navigate_qso_list ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::submit_qso_persists_to_storage ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::enter_on_qso_list_opens_edit_mode ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::enter_on_empty_qso_list_does_nothing ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::esc_on_qso_list_returns_to_qso_entry ... ok
[INFO] [stdout] test tui::screens::export::tests::construction::default_trait ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::edit_save_returns_to_list_with_selection ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::update_qso_storage_error_shows_error ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::edit_persists_to_storage ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::any_key_after_error_returns_to_qso_entry ... ok
[INFO] [stdout] test tui::screens::export::tests::construction::defaults ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::any_key_after_success_returns_to_qso_entry ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::backspace_at_start_is_noop ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::backspace_removes_char_before_cursor ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::delete_at_end_is_noop ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::q_on_qso_list_is_ignored ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::delete_removes_char_at_cursor ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::end_moves_cursor_to_end ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::enter_when_ready_returns_export ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::alt_e_navigates_to_qso_list ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::left_at_start_is_noop ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::q_appends_to_path ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::esc_when_ready_returns_to_qso_entry ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::home_moves_cursor_to_start ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::left_moves_cursor_back ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::right_at_end_is_noop ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::insert_at_mid_cursor ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::right_moves_cursor_forward ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::typing_chars_inserts_at_cursor ... ok
[INFO] [stdout] test tui::app::tests::global_keys::navigate_to_help_while_on_help_preserves_origin ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::unhandled_key_when_ready_returns_none ... ok
[INFO] [stdout] test tui::screens::export::tests::prepare::none_log_clears_state ... ok
[INFO] [stdout] test tui::app::tests::global_keys::f1_on_qso_list_navigates_to_help ... ok
[INFO] [stdout] test tui::app::tests::global_keys::f1_navigates_to_help ... ok
[INFO] [stdout] test tui::screens::export::tests::prepare::populates_path_and_count ... ok
[INFO] [stdout] test tui::screens::export::tests::prepare::resets_status_to_ready ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::navigate_to_qso_list_resets_selected ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::no_warning_for_different_mode ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::update_qso_out_of_bounds_shows_error ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_ready_status ... ok
[INFO] [stdout] test tui::screens::help::tests::construction::new_initializes_origin_to_log_select ... ok
[INFO] [stdout] test tui::screens::help::tests::construction::new_initializes_scroll_to_zero ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_path ... ok
[INFO] [stdout] test tui::screens::help::tests::handle_key::down_increments_scroll ... ok
[INFO] [stdout] test tui::screens::help::tests::handle_key::esc_navigates_to_log_select ... ok
[INFO] [stdout] test tui::screens::export::tests::status_setters::set_success ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_footer_after_completion ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_error_status ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_success_status ... ok
[INFO] [stdout] test tui::screens::help::tests::handle_key::q_is_ignored ... ok
[INFO] [stdout] test tui::screens::help::tests::handle_key::unknown_key_returns_none ... ok
[INFO] [stdout] test tui::screens::help::tests::handle_key::up_at_zero_saturates ... ok
[INFO] [stdout] test tui::screens::help::tests::handle_key::esc_navigates_to_origin ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_qso_count ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_without_log ... ok
[INFO] [stdout] test tui::screens::help::tests::construction::default_works ... ok
[INFO] [stdout] test tui::screens::export::tests::status_setters::set_error ... ok
[INFO] [stdout] test tui::screens::help::tests::handle_key::up_decrements_scroll ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_station_info ... ok
[INFO] [stdout] test tui::screens::help::tests::help_content_fn::content_includes_section_title ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_title ... ok
[INFO] [stdout] test tui::screens::help::tests::screen_name_fn::all_variants_have_expected_names ... ok
[INFO] [stdout] test tui::screens::help::tests::help_content_fn::qso_entry_content_excludes_other_sections ... ok
[INFO] [stdout] test tui::screens::help::tests::help_content_fn::each_screen_returns_nonempty_content ... ok
[INFO] [stdout] test tui::screens::help::tests::set_origin::set_origin_stores_screen ... ok
[INFO] [stdout] test tui::screens::help::tests::set_origin::origin_accessor_returns_value ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_footer_when_ready ... ok
[INFO] [stdout] test tui::screens::log_create::tests::focus_navigation::backtab_at_first_field_returns_to_selector ... ok
[INFO] [stdout] test tui::screens::log_create::tests::focus_navigation::backtab_cycles_backward_through_fields ... ok
[INFO] [stdout] test tui::screens::help::tests::reset::reset_sets_scroll_to_zero ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::title_includes_origin_screen_name ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::content_contains_export ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::content_contains_qso_list ... ok
[INFO] [stdout] test tui::screens::log_create::tests::focus_navigation::backtab_from_selector_enters_last_field ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::title_contains_help ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::renders_only_origin_screen_section ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::footer_contains_esc ... ok
[INFO] [stdout] test tui::app::tests::export_integration::export_to_invalid_path_sets_error ... FAILED
[INFO] [stdout] test tui::screens::log_create::tests::focus_navigation::initial_focus_is_type_selector ... ok
[INFO] [stdout] test tui::screens::log_create::tests::focus_navigation::pota_form_has_four_fields_in_tab_cycle ... ok
[INFO] [stdout] test tui::screens::log_create::tests::focus_navigation::tab_cycles_through_all_general_fields ... ok
[INFO] [stdout] test tui::screens::log_create::tests::focus_navigation::tab_from_selector_enters_first_field ... ok
[INFO] [stdout] test tui::screens::log_create::tests::focus_navigation::tab_at_last_field_returns_to_selector ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::content_contains_qso_entry ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::wfd_empty_submit_shows_errors ... ok
[INFO] [stdout] test tui::screens::log_create::tests::log_type_selection::initial_type_is_general ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::fd_empty_submit_shows_errors ... ok
[INFO] [stdout] test tui::screens::log_create::tests::general_error::set_error_stores_message ... ok
[INFO] [stdout] test tui::screens::log_create::tests::general_error::submit_clears_general_error ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::fd_invalid_class_shows_error ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::errors_cleared_on_resubmit ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::content_contains_log_select ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::fd_invalid_tx_count_shows_error ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::fd_non_numeric_tx_count_shows_error ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::general_empty_submit_shows_errors ... ok
[INFO] [stdout] test tui::screens::log_create::tests::log_type_selection::left_right_are_ignored_in_fields_mode ... ok
[INFO] [stdout] test tui::screens::log_create::tests::log_type_selection::right_cycles_general_through_all_types ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::wfd_invalid_class_shows_error ... ok
[INFO] [stdout] test tui::screens::log_create::tests::log_type_selection::type_switch_preserves_callsign_and_operator ... ok
[INFO] [stdout] test tui::screens::log_create::tests::log_type_selection::right_cycles_to_pota ... ok
[INFO] [stdout] test tui::screens::log_create::tests::navigation::esc_navigates_back_from_fields ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::pota_invalid_park_ref_shows_error ... ok
[INFO] [stdout] test tui::screens::log_create::tests::invalid_submit::pota_empty_submit_shows_errors ... ok
[INFO] [stdout] test tui::screens::log_create::tests::log_type_selection::left_wraps_to_winter_fd ... ok
[INFO] [stdout] test tui::screens::log_create::tests::log_type_selection::type_switch_preserves_grid_square_for_pota ... ok
[INFO] [stdout] test tui::screens::log_create::tests::log_type_selection::type_switch_rebuilds_form_fields ... ok
[INFO] [stdout] test tui::screens::log_create::tests::navigation::esc_navigates_back_from_selector ... ok
[INFO] [stdout] test tui::screens::log_create::tests::navigation::unhandled_key_returns_none ... ok
[INFO] [stdout] test tui::screens::log_create::tests::reset::clears_form_and_focus ... ok
[INFO] [stdout] test tui::screens::log_create::tests::reset::resets_log_type_to_general ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::backspace_deletes_char_in_fields_mode ... ok
[INFO] [stdout] test tui::screens::log_create::tests::reset::clears_general_error ... ok
[INFO] [stdout] test tui::screens::log_create::tests::reset::clears_buffers_so_they_dont_leak ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::backspace_ignored_in_type_selector_mode ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::callsign_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::fd_section_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::chars_fill_focused_field_after_entering_fields ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::fd_tx_count_letter_not_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::fd_class_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::fd_tx_count_not_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::operator_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::grid_square_not_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::pota_park_ref_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::log_create::tests::typing::typing_in_type_selector_jumps_to_callsign ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::field_day_log_created ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::general_log_created ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_wfd_fields_at_standard_width ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::pota_grid_square_uppercase_subsquare_normalised_on_submit ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::pota_grid_square_lowercase_normalised_on_submit ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::pota_lowercase_park_ref_stored_uppercase ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::pota_with_operator ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::wfd_log_created ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::pota_log_created_with_park_ref ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_fd_fields_at_standard_width ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_type_selector ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_general_error ... ok
[INFO] [stdout] test tui::screens::log_select::tests::delete::n_while_pending_cancels ... ok
[INFO] [stdout] test tui::screens::log_select::tests::delete::pending_delete_label_falls_back_to_callsign_when_no_park_ref ... ok
[INFO] [stdout] test tui::screens::log_select::tests::construction::new_starts_empty ... ok
[INFO] [stdout] test tui::screens::log_select::tests::delete::other_keys_while_pending_are_noop ... ok
[INFO] [stdout] test tui::screens::log_select::tests::delete::d_on_empty_list_is_noop ... ok
[INFO] [stdout] test tui::screens::log_select::tests::delete::d_with_selected_log_sets_pending_delete ... ok
[INFO] [stdout] test tui::screens::log_select::tests::delete::esc_while_pending_cancels_not_quits ... ok
[INFO] [stdout] test tui::screens::log_create::tests::valid_submit::pota_empty_operator_creates_log_with_none ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_footer ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_field_values ... ok
[INFO] [stdout] test tui::screens::log_select::tests::delete::pending_delete_label_includes_park_ref_and_date ... ok
[INFO] [stdout] test tui::screens::log_select::tests::error::returns_set_value ... ok
[INFO] [stdout] test tui::screens::log_select::tests::delete::y_while_pending_returns_delete_action ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::down_at_bottom_is_noop ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_pota_fields_when_type_is_pota ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::down_moves_selection ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::up_at_top_is_noop ... ok
[INFO] [stdout] test tui::screens::log_select::tests::quit::esc_quits ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::empty_list_is_noop ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_title_and_fields ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_empty_state ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::up_moves_selection ... ok
[INFO] [stdout] test tui::screens::log_select::tests::load::empty_directory ... ok
[INFO] [stdout] test tui::screens::log_select::tests::load::clears_error ... ok
[INFO] [stdout] test tui::screens::log_select::tests::quit::q_is_ignored ... ok
[INFO] [stdout] test tui::screens::log_select::tests::quit::unhandled_key_returns_none ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::band_cycling::unhandled_alt_falls_through ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::band_cycling::b_types_in_callsign ... ok
[INFO] [stdout] test tui::screens::log_select::tests::selection::n_navigates_to_log_create ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_error_message ... ok
[INFO] [stdout] test tui::screens::log_select::tests::selection::enter_selects_current_log ... ok
[INFO] [stdout] test tui::screens::log_select::tests::load::populates_from_manager ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::band_cycling::alt_b_cycles_forward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::band_cycling::shift_alt_b_cycles_backward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::band_cycling::wraps_backward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::band_mode_persist ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::band_cycling::wraps_forward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::fd_clears_class_section_and_frequency ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::clear_fast_fields_rearms_rst_clear_on_first_input ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::fd_does_not_uppercase_comments_field ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::resets_focus_to_callsign ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::repopulates_rst_defaults ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::rst_matches_current_mode_after_clear ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::clear_fast_fields_rst_is_replaced_on_first_keystroke ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::clears_errors ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::clears_callsign_park_comments ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::default_trait ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_confirmation_prompt_when_pending_delete ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::wfd_clears_class_section_and_frequency ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::clears_storage_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::fd_contest_class_and_section_are_required ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::pota_their_park_is_optional ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::cycle_helper::cycle_backward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::cycle_helper::cycle_forward_wraps_at_end ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::cycle_helper::cycle_modes_backward_wraps ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::cycle_helper::cycle_modes_forward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::defaults ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::wfd_contest_class_and_section_are_required ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::editing_qso_with_stored_lowercase_park_normalises_on_resubmit ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::is_editing_returns_correct_value ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::clear_fast_fields_clears_editing_state ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::start_editing_clears_errors ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::reset_clears_editing_state ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::cycle_helper::cycle_backward_wraps_at_start ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::esc_in_edit_mode_navigates_to_qso_list ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::pota_context_adds_their_park_field ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::confirmation_prompt_replaces_error_when_both_set ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::start_editing_disarms_rst_clear_on_first_input ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::cycle_helper::cycle_forward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::start_editing_fd_exchange_without_space_puts_all_in_class ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::start_editing_fd_populates_class_section_and_frequency ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::start_editing_populates_form ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::start_editing_without_park ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::start_editing_wfd_populates_class_section_and_frequency ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::editing::submit_in_edit_mode_returns_update_qso ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::error_display::set_error_returns_message ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::mode_cycling::m_types_in_park_ref ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::navigation::alt_e_navigates_to_qso_list ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::navigation::alt_x_navigates_to_export ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::mode_cycling::wraps_forward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::mode_cycling::wraps_backward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::recent_qsos::add_recent_qso_caps_at_20 ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_log_table ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::navigation::esc_navigates_to_log_select ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::error_display::set_log_context_with_empty_log ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::recent_qsos::add_recent_qso_newest_first ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::mode_cycling::shift_alt_m_cycles_backward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::mode_cycling::m_types_in_callsign ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::recent_qsos::set_log_context_populates_recent ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::recent_qsos::set_log_context_stores_up_to_20 ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::mode_cycling::alt_m_cycles_forward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::pota_freq_column_independent_of_park ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::pota_no_park_freq_still_visible ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_activated_status ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_footer ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_activation_progress ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_wfd_exchange_and_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_general_with_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_general_no_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_fd_exchange_and_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_pota_freq_no_park ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_wfd_exchange_no_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_fd_exchange_no_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_pota_park_and_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::row_count_adapts_to_height ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_general_tall_terminal_shows_more_rows ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_pota_neither_park_nor_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_dash_for_non_pota_log ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::recent_qsos_rendering::snap_pota_park_no_freq ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_default_form_without_log_context ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_footer_keybindings ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_title_and_form_fields ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_exchange_in_recent_wfd ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_error_message ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_header_with_log_context ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_wfd_log_form ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_without_log_context ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_field_labels_row1 ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_pota_log_form ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_their_park_in_recent_pota ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::snap_full_screen::snap_editing_mode ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::reset::resets_to_defaults ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_exchange_in_recent_fd ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rst_defaults::mode_change_rearms_rst_replace_behavior_when_unedited ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rst_defaults::mode_change_updates_rst_when_unedited ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rst_defaults::mode_change_preserves_edited_rst ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::snap_full_screen::snap_pota_default ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_fd_log_form ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rst_defaults::mode_change_preserves_both_edited ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rst_defaults::mode_change_preserves_edited_rst_and_subsequent_input_appends ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::errors_cleared_on_resubmit ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_backtab_off_non_frequency_does_not_override_manual_band ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::empty_callsign_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_frequency_auto_sets_band_on_backtab ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_frequency_auto_sets_band_on_submit ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_frequency_auto_sets_band_on_tab ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_invalid_frequency_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_invalid_class_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_invalid_frequency_text_does_not_change_band ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_missing_class_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_pota_park_and_freq_both_visible ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::empty_rst_rcvd_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::empty_rst_sent_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_tab_from_non_frequency_field_does_not_trigger_auto_band ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_tab_off_non_frequency_does_not_override_manual_band ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_valid_class_empty_section_no_class_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_zero_frequency_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_valid_exchange_returns_add_qso ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::general_empty_frequency_is_optional ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_missing_section_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::snap_full_screen::snap_fd_default ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::snap_full_screen::snap_wfd_default ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::general_frequency_auto_sets_band_on_tab ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::general_invalid_frequency_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::general_zero_frequency_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::general_form_tab_with_empty_frequency_does_not_change_band ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::general_valid_frequency_is_stored ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::invalid_park_ref_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::pota_empty_frequency_is_optional ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::pota_frequency_auto_sets_band_on_submit ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::fd_out_of_band_frequency_does_not_change_band ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::general_frequency_auto_sets_band_on_submit ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::pota_valid_frequency_is_stored ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::pota_invalid_frequency_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::pota_frequency_auto_sets_band_on_tab ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_general_log_form ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::submit_with_comments ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::snap_full_screen::snap_general_default ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::submit_with_different_band_and_mode ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::pota_zero_frequency_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::valid_qso_returns_add_qso ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::wfd_class_and_section_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::wfd_valid_class_empty_section_no_class_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::backspace_deletes_char ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::wfd_valid_exchange_and_frequency_returns_add_qso ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::chars_fill_focused_field ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::wfd_frequency_auto_sets_band_on_submit ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::wfd_zero_frequency_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::tab_cycles_focus_pota ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::wfd_invalid_frequency_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::backtab_cycles_focus_backward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::comments_not_uppercased ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::callsign_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::general_frequency_not_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::general_rst_sent_not_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::valid_p2p_qso ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::unhandled_key_returns_none ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::park_ref_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::back_navigation::esc_navigates_to_qso_entry ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::back_navigation::q_is_ignored ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::clamp_selection::clamp_when_within_bounds_is_noop ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::clamp_selection::clamp_with_empty_list_sets_zero ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::clamp_selection::clamp_with_nonempty_list ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::construction::default_trait ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::construction::new_starts_at_zero ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::delete::d_on_empty_list_is_noop ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::delete::d_on_populated_list_sets_pending ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::delete::esc_while_pending_cancels ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::delete::n_while_pending_cancels ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::delete::other_key_while_pending_restores_pending ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::delete::y_while_pending_returns_delete_qso ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::edit_navigation::enter_on_empty_list_returns_none ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::edit_navigation::enter_returns_edit_qso ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::edit_navigation::enter_returns_selected_index ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::down_at_bottom_saturates ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::down_increments_selected ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::down_with_empty_list_stays_at_zero ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::end_jumps_to_last ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::end_with_empty_list_stays_at_zero ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::snap_full_screen::snap_with_error ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::home_jumps_to_first ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::up_at_top_saturates ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::up_decrements_selected ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_recent_qsos ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_frequency_in_recent_general ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_empty_state ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_delete_hint_in_normal_footer ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::setters::reset_clears_pending_delete ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::setters::reset_returns_to_zero ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::setters::set_selected_updates_value ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::unhandled::f1_returns_none ... ok
[INFO] [stdout] test tui::widgets::form::tests::editing::delete_char_on_empty_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::editing::delete_char_removes_last ... ok
[INFO] [stdout] test tui::widgets::form::tests::editing::insert_char_appends_to_focused ... ok
[INFO] [stdout] test tui::widgets::form::tests::editing::insert_char_on_different_focus ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::pending_delete_shows_confirmation_prompt ... ok
[INFO] [stdout] test tui::widgets::form::tests::errors::has_errors_false_when_clean ... ok
[INFO] [stdout] test tui::widgets::form::tests::errors::set_error_on_field ... ok
[INFO] [stdout] test tui::widgets::form::tests::errors::clear_errors_removes_all ... ok
[INFO] [stdout] test tui::widgets::form::tests::errors::set_error_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::fields_accessor::required_flags ... ok
[INFO] [stdout] test tui::widgets::form::tests::fields_accessor::returns_correct_labels ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::next_advances ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::next_empty_form_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::next_wraps ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_footer ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::prev_decrements ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_no_log_title ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::prev_empty_form_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::prev_wraps ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::setters::reset_clears_error ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::set_focus_at_len_is_noop ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::unhandled::unhandled_key_returns_none ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::set_focus_changes_focus ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::starts_at_zero ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::set_focus_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::draw_form_field_renders_label ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::draw_form_field_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_zero_qsos_title ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::rst_field_renders_default_value ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::renders_error_message ... ok
[INFO] [stdout] test tui::widgets::form::tests::reset::rst_field_after_reset_first_key_replaces ... ok
[INFO] [stdout] test tui::widgets::form::tests::reset::rst_field_reset_restores_default_not_empty ... ok
[INFO] [stdout] test tui::widgets::form::tests::reset::clears_values_errors_and_focus ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::renders_cursor_on_focused_field ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::backspace_on_default_clears_entirely ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::renders_field_values ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::first_insert_replaces_default ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::non_rst_field_unaffected_by_set_mode_default ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::reset_field_restores_default ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::set_mode_default_preserves_when_edited ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::rst_required_is_always_true ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::set_mode_default_updates_default_for_future_reset ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::set_mode_default_updates_when_unedited ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::set_value_marks_as_edited ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::subsequent_inserts_append_after_first ... ok
[INFO] [stdout] test tui::widgets::form::tests::rst_field::tab_past_preserves_default ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::clear_value_empties_field ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::clear_value_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::out_of_bounds_returns_empty ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::returns_all_field_values ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::set_mode_default_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::set_value_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::set_value_replaces_field ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::from_log::field_day_uses_exchange_as_label_and_total_count ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::renders_field_labels ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::from_log::general_uses_callsign_as_label_and_total_count ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::from_log::pota_mode_is_true_only_for_pota ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::from_log::pota_uses_park_ref_as_label ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::from_log::pota_with_park_uses_park_ref_as_label ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::from_log::wfd_uses_exchange_as_label_and_total_count ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::renders_activated_with_park ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::renders_count_with_park ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::renders_fd_exchange ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::renders_general_log ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::renders_no_log ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::selected_row_has_highlight ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_header_row ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_park_and_comments ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_qso_data ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::tab_cycles_focus_general ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_title_with_count ... ok
[INFO] [stdout] test storage::manager::tests::append_n_qsos_yields_n_total ... ok
[INFO] [stdout] test storage::manager::tests::round_trip_preserves_qso_count ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tui::app::tests::export_integration::export_to_invalid_path_sets_error stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tui::app::tests::export_integration::export_to_invalid_path_sets_error' (425) panicked at src/tui/app.rs:1421:26:
[INFO] [stdout] expected Error, got Success
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d53846d424a - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5d53846d424a - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5d53846d424a - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d53846d424a - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5d53846ecaca - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d53846ecaca - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x5d53846d9012 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5d53846d9012 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5d53846aefbf - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d53846aefbf - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d53846ca699 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d5384164d2c - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5d5384164d2c - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5d53846ca852 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5d53846ca852 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5d53846af078 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5d53846a3e99 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5d53846afe2d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5d53846ed33c - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d53840ceb37 - duklog[2e346f1ccf1110ec]::tui::app::tests::export_integration::export_to_invalid_path_sets_error
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui/app.rs:1421:26
[INFO] [stdout]   20:     0x5d53840ca7d7 - duklog[2e346f1ccf1110ec]::tui::app::tests::export_integration::export_to_invalid_path_sets_error::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui/app.rs:1407:47
[INFO] [stdout]   21:     0x5d5383ff06b6 - <duklog[2e346f1ccf1110ec]::tui::app::tests::export_integration::export_to_invalid_path_sets_error::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5d538415800b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5d538415800b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x5d53841657fb - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x5d53841657fb - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5d53841657fb - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x5d53841657fb - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x5d53841657fb - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5d53841657fb - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x5d53841657fb - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x5d538415ef14 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x5d538415ef14 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5d5384168402 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x5d5384168402 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5d5384168402 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x5d5384168402 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x5d5384168402 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5d5384168402 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x5d5384168402 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5d53846d325f - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x5d53846d325f - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7be1f00a5aa4 - <unknown>
[INFO] [stdout]   43:     0x7be1f0132a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tui::app::tests::export_integration::export_to_invalid_path_sets_error
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 765 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "c4f8d2a49ca4b7ba79837a7300c4e1b1fd0053f87ceb6433c69a339cf3304571", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4f8d2a49ca4b7ba79837a7300c4e1b1fd0053f87ceb6433c69a339cf3304571", kill_on_drop: false }`
[INFO] [stdout] c4f8d2a49ca4b7ba79837a7300c4e1b1fd0053f87ceb6433c69a339cf3304571
