[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] 84bb1e932c51fe80b28cdaaa91a249bd935602dc
[INFO] testing rubberduck203/duklog against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frubberduck203%2Fduklog" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-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-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rubberduck203/duklog on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "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" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unicode-truncate v1.1.0
[INFO] [stderr]   Downloaded errno v0.3.14
[INFO] [stderr]   Downloaded borsh-derive v1.6.0
[INFO] [stderr]   Downloaded futures-core v0.3.32
[INFO] [stderr]   Downloaded proc-macro-crate v3.4.0
[INFO] [stderr]   Downloaded autocfg v1.5.0
[INFO] [stderr]   Downloaded rkyv_derive v0.7.46
[INFO] [stderr]   Downloaded strum v0.26.3
[INFO] [stderr]   Downloaded toml_parser v1.0.8+spec-1.1.0
[INFO] [stderr]   Downloaded windows-implement v0.60.2
[INFO] [stderr]   Downloaded windows-result v0.4.1
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.9
[INFO] [stderr]   Downloaded windows-core v0.62.2
[INFO] [stderr]   Downloaded borsh v1.6.0
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.39
[INFO] [stderr]   Downloaded winnow v0.7.14
[INFO] [stderr]   Downloaded cc v1.2.56
[INFO] [stderr]   Downloaded futures v0.3.32
[INFO] [stderr]   Downloaded dirs-sys v0.5.0
[INFO] [stderr]   Downloaded js-sys v0.3.85
[INFO] [stderr]   Downloaded quickcheck v1.1.0
[INFO] [stderr]   Downloaded wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06
[INFO] [stderr]   Downloaded rustix v1.1.3
[INFO] [stderr]   Downloaded linux-raw-sys v0.11.0
[INFO] [stderr]   Downloaded bytes v1.11.1
[INFO] [stderr]   Downloaded chrono v0.4.43
[INFO] [stderr]   Downloaded rustix v0.38.44
[INFO] [stderr]   Downloaded rand v0.10.0
[INFO] [stderr]   Downloaded compact_str v0.8.1
[INFO] [stderr]   Downloaded ratatui v0.29.0
[INFO] [stderr]   Downloaded zerocopy v0.8.39
[INFO] [stderr]   Downloaded option-ext v0.2.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.108
[INFO] [stderr]   Downloaded libredox v0.1.12
[INFO] [stderr]   Downloaded futures-channel v0.3.32
[INFO] [stderr]   Downloaded wit-bindgen v0.51.0
[INFO] [stderr]   Downloaded tokio-util v0.7.18
[INFO] [stderr]   Downloaded env_logger v0.11.9
[INFO] [stderr]   Downloaded regex v1.12.3
[INFO] [stderr]   Downloaded futures-macro v0.3.32
[INFO] [stderr]   Downloaded anyhow v1.0.101
[INFO] [stderr]   Downloaded indoc v2.0.7
[INFO] [stderr]   Downloaded slab v0.4.12
[INFO] [stderr]   Downloaded mutants v0.0.3
[INFO] [stderr]   Downloaded serde_json v1.0.149
[INFO] [stderr]   Downloaded leb128fmt v0.1.0
[INFO] [stderr]   Downloaded getrandom v0.4.1
[INFO] [stderr]   Downloaded crossterm_winapi v0.9.1
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.8
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.5
[INFO] [stderr]   Downloaded darling_macro v0.23.0
[INFO] [stderr]   Downloaded instability v0.3.11
[INFO] [stderr]   Downloaded futures-util v0.3.32
[INFO] [stderr]   Downloaded wasip2 v1.0.2+wasi-0.2.9
[INFO] [stderr]   Downloaded tokio v1.49.0
[INFO] [stderr]   Downloaded castaway v0.2.4
[INFO] [stderr]   Downloaded linux-raw-sys v0.4.15
[INFO] [stderr]   Downloaded wasm-encoder v0.244.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.108
[INFO] [stderr]   Downloaded wasm-metadata v0.244.0
[INFO] [stderr]   Downloaded semver v1.0.27
[INFO] [stderr]   Downloaded ryu v1.0.23
[INFO] [stderr]   Downloaded dirs v6.0.0
[INFO] [stderr]   Downloaded futures-executor v0.3.32
[INFO] [stderr]   Downloaded futures-task v0.3.32
[INFO] [stderr]   Downloaded env_filter v1.0.0
[INFO] [stderr]   Downloaded regex-syntax v0.8.9
[INFO] [stderr]   Downloaded wit-bindgen-core v0.51.0
[INFO] [stderr]   Downloaded id-arena v2.3.0
[INFO] [stderr]   Downloaded parking_lot_core v0.9.12
[INFO] [stderr]   Downloaded bitflags v2.11.0
[INFO] [stderr]   Downloaded libc v0.2.182
[INFO] [stderr]   Downloaded darling v0.23.0
[INFO] [stderr]   Downloaded rustversion v1.0.22
[INFO] [stderr]   Downloaded tui-textarea v0.7.0
[INFO] [stderr]   Downloaded quickcheck_macros v1.2.0
[INFO] [stderr]   Downloaded rand_core v0.10.0
[INFO] [stderr]   Downloaded zmij v1.0.21
[INFO] [stderr]   Downloaded wit-bindgen-rust-macro v0.51.0
[INFO] [stderr]   Downloaded lock_api v0.4.14
[INFO] [stderr]   Downloaded lru v0.12.5
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.108
[INFO] [stderr]   Downloaded uuid v1.21.0
[INFO] [stderr]   Downloaded regex-automata v0.4.14
[INFO] [stderr]   Downloaded itoa v1.0.17
[INFO] [stderr]   Downloaded wasi v0.11.1+wasi-snapshot-preview1
[INFO] [stderr]   Downloaded syn v2.0.116
[INFO] [stderr]   Downloaded unicode-width v0.1.14
[INFO] [stderr]   Downloaded getrandom v0.2.17
[INFO] [stderr]   Downloaded futures-io v0.3.32
[INFO] [stderr]   Downloaded wasmparser v0.244.0
[INFO] [stderr]   Downloaded wit-parser v0.244.0
[INFO] [stderr]   Downloaded wit-component v0.244.0
[INFO] [stderr]   Downloaded futures-sink v0.3.32
[INFO] [stderr]   Downloaded tokio-macros v2.6.1
[INFO] [stderr]   Downloaded redox_syscall v0.5.18
[INFO] [stderr]   Downloaded mio v1.1.1
[INFO] [stderr]   Downloaded crossterm v0.28.1
[INFO] [stderr]   Downloaded itertools v0.13.0
[INFO] [stderr]   Downloaded bumpalo v3.19.1
[INFO] [stderr]   Downloaded rkyv v0.7.46
[INFO] [stderr]   Downloaded rust_decimal v1.40.0
[INFO] [stderr]   Downloaded memchr v2.8.0
[INFO] [stderr]   Downloaded tempfile v3.25.0
[INFO] [stderr]   Downloaded signal-hook v0.3.18
[INFO] [stderr]   Downloaded unicode-ident v1.0.24
[INFO] [stderr]   Downloaded tinyvec v1.10.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.108
[INFO] [stderr]   Downloaded difa v0.1.1
[INFO] [stderr]   Downloaded wit-bindgen-rust v0.51.0
[INFO] [stderr]   Downloaded darling_core v0.23.0
[INFO] [stderr]   Downloaded iana-time-zone v0.1.65
[INFO] [stderr]   Downloaded toml_edit v0.23.10+spec-1.0.0
[INFO] [stderr]   Downloaded strum_macros v0.26.4
[INFO] [stderr]   Downloaded windows-interface v0.59.3
[INFO] [stderr]   Downloaded toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]   Downloaded parking_lot v0.12.5
[INFO] [stderr]   Downloaded windows-strings v0.5.1
[INFO] [stderr]   Downloaded redox_users v0.5.2
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9ac81623ba01c7c454aa6ed1de63ad5bf852c001681514974edbe14702ec73f9
[INFO] running `Command { std: "docker" "start" "-a" "9ac81623ba01c7c454aa6ed1de63ad5bf852c001681514974edbe14702ec73f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9ac81623ba01c7c454aa6ed1de63ad5bf852c001681514974edbe14702ec73f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9ac81623ba01c7c454aa6ed1de63ad5bf852c001681514974edbe14702ec73f9", kill_on_drop: false }`
[INFO] [stdout] 9ac81623ba01c7c454aa6ed1de63ad5bf852c001681514974edbe14702ec73f9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 71373606250a3dd040fd175939c60f0fc64e02e2a497b0f6079f446cc524b5e5
[INFO] running `Command { std: "docker" "start" "-a" "71373606250a3dd040fd175939c60f0fc64e02e2a497b0f6079f446cc524b5e5", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling rust_decimal v1.40.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling mutants v0.0.3
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[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 tokio-util v0.7.18
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling regex v1.12.3
[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.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 15s
[INFO] running `Command { std: "docker" "inspect" "71373606250a3dd040fd175939c60f0fc64e02e2a497b0f6079f446cc524b5e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71373606250a3dd040fd175939c60f0fc64e02e2a497b0f6079f446cc524b5e5", kill_on_drop: false }`
[INFO] [stdout] 71373606250a3dd040fd175939c60f0fc64e02e2a497b0f6079f446cc524b5e5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f2e314d8fc3ca57fada9ea0f80ea38d2fd9cb4af0b03684671676a8e2cc776f2
[INFO] running `Command { std: "docker" "start" "-a" "f2e314d8fc3ca57fada9ea0f80ea38d2fd9cb4af0b03684671676a8e2cc776f2", kill_on_drop: false }`
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling quickcheck_macros v1.2.0
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling env_filter v1.0.0
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling env_logger v0.11.9
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling quickcheck v1.1.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[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.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 32.18s
[INFO] running `Command { std: "docker" "inspect" "f2e314d8fc3ca57fada9ea0f80ea38d2fd9cb4af0b03684671676a8e2cc776f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f2e314d8fc3ca57fada9ea0f80ea38d2fd9cb4af0b03684671676a8e2cc776f2", kill_on_drop: false }`
[INFO] [stdout] f2e314d8fc3ca57fada9ea0f80ea38d2fd9cb4af0b03684671676a8e2cc776f2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0d0f2d026287a15d9226e3bde9d8a983d545e4ef408cf87c89bd38e9964fddb3
[INFO] running `Command { std: "docker" "start" "-a" "0d0f2d026287a15d9226e3bde9d8a983d545e4ef408cf87c89bd38e9964fddb3", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/duklog-9bdff247a551e9c5)
[INFO] [stdout] running 726 tests
[INFO] [stdout] test adif::reader::tests::empty_adif_file_returns_error ... ok
[INFO] [stdout] test adif::reader::tests::fd_log_round_trips ... ok
[INFO] [stdout] test adif::reader::tests::qso_only_file_without_header_returns_error ... ok
[INFO] [stdout] test adif::reader::tests::general_log_round_trips ... ok
[INFO] [stdout] test adif::reader::tests::missing_log_type_returns_error ... ok
[INFO] [stdout] test adif::reader::tests::fd_log_missing_section_returns_error ... ok
[INFO] [stdout] test adif::reader::tests::wfd_log_round_trips ... ok
[INFO] [stdout] test adif::writer::tests::adif_header_precedes_records ... ok
[INFO] [stdout] test adif::writer::tests::fd_qso_with_frequency_contains_freq_field ... ok
[INFO] [stdout] test adif::reader::tests::pota_log_with_qsos_round_trips ... ok
[INFO] [stdout] test adif::writer::tests::adif_with_two_qsos ... ok
[INFO] [stdout] test adif::writer::tests::adif_empty_log_header_only ... ok
[INFO] [stdout] test adif::writer::tests::field_day_qso_with_exchange_contains_srx_string ... ok
[INFO] [stdout] test adif::reader::tests::pota_log_with_freq_qso_round_trips ... ok
[INFO] [stdout] test adif::writer::tests::general_log_excludes_pota_sig_fields ... ok
[INFO] [stdout] test adif::reader::tests::pota_log_round_trips ... ok
[INFO] [stdout] test adif::writer::tests::general_qso_with_frequency_emits_freq ... ok
[INFO] [stdout] test adif::writer::tests::header_contains_adif_ver ... ok
[INFO] [stdout] test adif::writer::tests::header_contains_created_timestamp ... ok
[INFO] [stdout] test adif::writer::tests::header_contains_programid ... 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::fd_qso_without_frequency_omits_freq ... ok
[INFO] [stdout] test adif::writer::tests::pota_qso_with_frequency_emits_freq ... ok
[INFO] [stdout] test adif::writer::tests::field_day_log_excludes_pota_sig_fields ... ok
[INFO] [stdout] test adif::writer::tests::field_day_qso_contains_contest_id ... ok
[INFO] [stdout] test adif::writer::tests::field_day_qso_contains_stx_string ... ok
[INFO] [stdout] test adif::writer::tests::field_day_qso_without_exchange_omits_srx_string ... ok
[INFO] [stdout] test adif::writer::tests::general_qso_without_frequency_omits_freq ... ok
[INFO] [stdout] test adif::writer::tests::qso_contains_required_fields ... ok
[INFO] [stdout] test adif::writer::tests::qso_ends_with_eor ... ok
[INFO] [stdout] test adif::writer::tests::qso_same_operator_excludes_operator_field ... ok
[INFO] [stdout] test adif::writer::tests::qso_none_operator_excludes_operator_field ... ok
[INFO] [stdout] test adif::writer::tests::qso_with_comment ... ok
[INFO] [stdout] test adif::writer::tests::qso_with_park_includes_my_sig ... ok
[INFO] [stdout] test adif::writer::tests::qso_call_field_has_correct_byte_length ... ok
[INFO] [stdout] test adif::writer::tests::qso_distinct_operator ... 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_p2p_includes_sig ... 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 model::band::tests::all_starts_with_160m_ends_with_70cm ... 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::from_frequency_khz_known_frequencies ... ok
[INFO] [stdout] test model::band::tests::from_frequency_khz_gaps_return_none ... ok
[INFO] [stdout] test model::band::tests::from_adif_str_round_trips_all_bands ... ok
[INFO] [stdout] test model::log::field_day::tests::display_label_field_day_returns_exchange ... 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 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 model::log::field_day::tests::fd_exchange_empty_is_invalid ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_valid_all_classes ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_valid_dx_section ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_valid_multi_tx ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_wrong_class_letter ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_valid_constructed_always_accepted ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_no_space ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_no_section ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_no_count ... ok
[INFO] [stdout] test model::log::field_day::tests::fd_exchange_wrong_class_letter_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::field_day_empty_section_rejected ... 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_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::log::general::tests::general_log_is_never_activated ... ok
[INFO] [stdout] test model::log::general::tests::valid_general_log_creation ... 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::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_lowercase_round_trip ... ok
[INFO] [stdout] test model::log::pota::tests::invalid_grid_square ... ok
[INFO] [stdout] test model::log::pota::tests::display_label_returns_park_ref ... ok
[INFO] [stdout] test model::log::pota::tests::invalid_park_ref ... 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::pota::tests::invalid_operator ... ok
[INFO] [stdout] test model::log::tests::add_qso_increments_count ... ok
[INFO] [stdout] test model::log::tests::different_band_same_call_counts_separately ... ok
[INFO] [stdout] test model::log::tests::duplicate_qso_not_counted_for_activation ... 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_ignores_previous_day_qsos ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_on_none_searches_all_dates ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_on_some_filters_to_date ... ok
[INFO] [stdout] test model::log::tests::find_duplicates_returns_all_matching_qsos ... ok
[INFO] [stdout] test model::log::header::tests::remove_qso_decrements_length ... 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 adif::writer::tests::non_pota_qso_with_their_park_excludes_sig_info ... ok
[INFO] [stdout] test model::log::pota::tests::invalid_station_callsign ... 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::header::tests::remove_qso_out_of_bounds_returns_none ... ok
[INFO] [stdout] test model::log::tests::replace_qso_at_valid_index_returns_old ... ok
[INFO] [stdout] test model::log::tests::replace_qso_out_of_bounds_returns_none ... ok
[INFO] [stdout] test model::log::header::tests::remove_qso_valid_index_returns_correct_qso ... ok
[INFO] [stdout] test model::log::wfd::tests::display_label_wfd_returns_exchange ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_invalid_returns_err ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_invalid_string_returns_err ... ok
[INFO] [stdout] test model::log::wfd::tests::parse_wfd_class_lowercase_accepted ... ok
[INFO] [stdout] test model::log::tests::utc_midnight_boundary ... 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_round_trip ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_empty_section_rejected ... ok
[INFO] [stdout] test model::log::wfd::tests::valid_wfd_log_creation ... ok
[INFO] [stdout] test model::log::tests::qso_count_today_matches_added ... 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_exchange_no_section ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_no_space ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_valid_all_classes ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_valid_multi_tx ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_valid_constructed_always_accepted ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_valid_dx_section ... 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::mode::tests::adif_str_all_modes ... ok
[INFO] [stdout] test model::mode::tests::all_returns_10_modes ... 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::mode::tests::serde_round_trip ... ok
[INFO] [stdout] test model::qso::tests::contest_qso_with_exchange_and_frequency ... ok
[INFO] [stdout] test model::qso::tests::empty_callsign_rejected ... ok
[INFO] [stdout] test model::qso::tests::field_values_preserved ... ok
[INFO] [stdout] test model::qso::tests::invalid_park_ref_rejected ... ok
[INFO] [stdout] test model::qso::tests::serde_round_trip ... ok
[INFO] [stdout] test model::qso::tests::valid_p2p_qso ... 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_nonempty_alnum_slash_is_valid ... ok
[INFO] [stdout] test model::validation::tests::callsign_simple ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_wrong_class_letter ... ok
[INFO] [stdout] test model::validation::tests::grid_boundary_values ... ok
[INFO] [stdout] test model::validation::tests::callsign_with_slash ... 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_six_char ... ok
[INFO] [stdout] test model::validation::tests::grid_out_of_range_field ... ok
[INFO] [stdout] test model::validation::tests::grid_subsquare_out_of_range ... ok
[INFO] [stdout] test model::log::wfd::tests::wfd_exchange_wrong_class_letter_rejected ... ok
[INFO] [stdout] test model::validation::tests::grid_uppercase_subsquare ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_four_char_lowercase ... ok
[INFO] [stdout] test model::validation::tests::grid_valid_four_char_always_accepted ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_square_is_idempotent ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_then_validate_accepts_any_case_four_char ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_then_validate_accepts_uppercase_subsquare ... ok
[INFO] [stdout] test model::validation::tests::normalize_park_ref_already_correct ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_six_char_all_lowercase ... ok
[INFO] [stdout] test model::validation::tests::normalize_grid_six_char_all_uppercase ... ok
[INFO] [stdout] test model::validation::tests::normalize_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::validation::tests::park_ref_canada ... ok
[INFO] [stdout] test model::validation::tests::park_ref_empty ... ok
[INFO] [stdout] test model::validation::tests::park_ref_lowercase ... ok
[INFO] [stdout] test model::validation::tests::park_ref_no_dash ... 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::park_ref_too_many_digits ... ok
[INFO] [stdout] test model::validation::tests::park_ref_us ... ok
[INFO] [stdout] test model::validation::tests::section_any_nonempty_string_is_valid ... ok
[INFO] [stdout] test model::validation::tests::park_ref_valid_format_always_accepted ... ok
[INFO] [stdout] test model::validation::tests::section_dx_is_valid ... ok
[INFO] [stdout] test model::validation::tests::section_nonempty_is_valid ... ok
[INFO] [stdout] test model::validation::tests::section_empty_is_invalid ... ok
[INFO] [stdout] test model::validation::tests::tx_count_one_is_valid ... ok
[INFO] [stdout] test model::validation::tests::tx_count_nonzero_always_valid ... ok
[INFO] [stdout] test model::validation::tests::normalize_park_ref_is_idempotent ... ok
[INFO] [stdout] test storage::export::tests::default_path_general_log ... ok
[INFO] [stdout] test storage::export::tests::default_path_general_sanitizes_portable_callsign ... 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 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_file_with_header_and_records ... ok
[INFO] [stdout] test storage::export::tests::default_path_fd_log ... ok
[INFO] [stdout] test storage::export::tests::export_creates_missing_parent_directories ... ok
[INFO] [stdout] test model::validation::tests::tx_count_zero_is_invalid ... ok
[INFO] [stdout] test storage::export::tests::export_empty_log_produces_header_only ... ok
[INFO] [stdout] test storage::manager::tests::append_qso_adds_to_existing_log ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_callsign ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_grid ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_operator ... ok
[INFO] [stdout] test model::log::tests::activation_threshold_property ... ok
[INFO] [stdout] test model::log::tests::needs_for_activation_property ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_park_ref ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_none_vs_some_operator ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_field_day_vs_wfd_same_callsign ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_different_utc_day ... ok
[INFO] [stdout] test model::log::tests::qso_count_on_date_equals_added_count ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_wfd_different_tx_count ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_field_day_different_section ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_pota_vs_general_same_callsign ... ok
[INFO] [stdout] test storage::manager::tests::create_log_propagates_list_logs_error ... 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_grid ... ok
[INFO] [stdout] test model::log::tests::is_activated_property ... ok
[INFO] [stdout] test storage::manager::tests::create_log_error_contains_callsign_and_date ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_case_insensitive_operator ... 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_exact_duplicate_same_day ... ok
[INFO] [stdout] test storage::manager::tests::create_log_succeeds_when_no_existing_logs ... ok
[INFO] [stdout] test storage::manager::tests::delete_nonexistent_log_returns_error ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_wfd_same_config ... ok
[INFO] [stdout] test storage::manager::tests::delete_removes_log_file ... ok
[INFO] [stdout] test storage::manager::tests::fd_jsonl_with_valid_section_migrates_to_adif ... ok
[INFO] [stdout] test storage::manager::tests::fd_jsonl_with_empty_section_is_not_migrated ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_none_operators ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_general_logs ... ok
[INFO] [stdout] test storage::manager::tests::create_log_rejects_duplicate_same_park_ref ... ok
[INFO] [stdout] test storage::manager::tests::create_log_allows_some_vs_none_operator ... ok
[INFO] [stdout] test storage::manager::tests::list_logs_empty_directory ... ok
[INFO] [stdout] test storage::manager::tests::field_day_zero_tx_count_returns_error ... ok
[INFO] [stdout] test storage::manager::tests::field_day_missing_section_returns_error ... ok
[INFO] [stdout] test adif::writer::tests::adif_eor_count_matches_qso_count ... ok
[INFO] [stdout] test storage::manager::tests::field_day_log_round_trips ... ok
[INFO] [stdout] test storage::manager::tests::general_log_round_trips_as_general ... ok
[INFO] [stdout] test storage::manager::tests::load_corrupt_adif_returns_error ... ok
[INFO] [stdout] test storage::manager::tests::load_nonexistent_log_returns_error ... ok
[INFO] [stdout] test storage::manager::tests::list_logs_ignores_non_adif_files ... ok
[INFO] [stdout] test storage::manager::tests::list_logs_returns_all_sorted_by_created_at_desc ... ok
[INFO] [stdout] test storage::manager::tests::metadata_preserves_none_operator ... ok
[INFO] [stdout] test storage::manager::tests::operator_eq::different_case_some_are_equal ... 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::different_callsign_some_differ ... 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::same_park_ref_equal ... ok
[INFO] [stdout] test storage::manager::tests::park_ref_eq::different_park_ref_differ ... ok
[INFO] [stdout] test storage::manager::tests::old_format_without_log_type_deserializes_as_pota ... ok
[INFO] [stdout] test storage::manager::tests::log_id_with_slash_round_trips ... 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::load_empty_adif_returns_error ... 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::old_format_operator_string_deserializes_to_some ... ok
[INFO] [stdout] test storage::manager::tests::wfd_log_round_trips ... ok
[INFO] [stdout] test storage::manager::tests::wfd_zero_tx_count_returns_error ... ok
[INFO] [stdout] test tui::app::tests::accessors::current_log_returns_set_log ... ok
[INFO] [stdout] test tui::app::tests::accessors::manager_accessor_returns_manager ... ok
[INFO] [stdout] test storage::manager::tests::wfd_missing_tx_count_returns_error ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::d_on_empty_list_is_noop ... ok
[INFO] [stdout] test tui::app::tests::construction::starts_on_log_select ... ok
[INFO] [stdout] test storage::manager::tests::with_path_creates_directory ... 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::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_qso_integration::apply_delete_qso_without_active_log_is_noop ... 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_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::delete_qso_integration::d_then_y_removes_qso ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::deleting_different_log_preserves_current_log ... 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::delete_qso_integration::delete_qso_at_last_index_clamps_selection ... ok
[INFO] [stdout] test tui::app::tests::delete_qso_integration::delete_qso_persists_to_storage ... ok
[INFO] [stdout] test tui::app::tests::export_integration::alt_x_navigates_to_export ... 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::esc_on_export_returns_to_qso_entry ... ok
[INFO] [stdout] test tui::app::tests::delete_log_integration::delete_storage_error_preserves_error_message ... 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_current_log_clears_current_log ... 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::f1_on_export_navigates_to_help ... ok
[INFO] [stdout] test tui::app::tests::export_integration::q_on_export_appends_to_path ... 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::esc_on_help_navigates_to_log_select ... ok
[INFO] [stdout] test tui::app::tests::export_integration::navigate_to_export_prepares_state ... ok
[INFO] [stdout] test tui::app::tests::global_keys::ctrl_h_acts_as_backspace ... 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::delete_log_integration::deleting_one_of_two_logs_leaves_one ... 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::esc_on_help_returns_to_origin_screen ... ok
[INFO] [stdout] test tui::app::tests::global_keys::f1_navigates_to_help ... ok
[INFO] [stdout] test tui::app::tests::global_keys::f1_on_help_stays_on_help ... ok
[INFO] [stdout] test tui::app::tests::global_keys::navigate_to_help_while_on_help_preserves_origin ... ok
[INFO] [stdout] test tui::app::tests::global_keys::plain_h_is_not_normalized_to_backspace ... 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::q_on_help_is_ignored ... ok
[INFO] [stdout] test tui::app::tests::global_keys::navigate_to_qso_list_resets_state ... 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::unhandled_key_is_ignored ... 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::esc_on_log_create_returns_to_log_select ... ok
[INFO] [stdout] test tui::app::tests::global_keys::release_events_are_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::log_create_integration::duplicate_error_cleared_on_navigate_away_and_back ... 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::log_create_integration::form_reset_on_navigate_to_log_create ... 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_create_integration::tab_cycles_form_fields ... 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::n_on_log_select_navigates_to_log_create ... ok
[INFO] [stdout] test tui::app::tests::log_create_integration::valid_create_log_saves_and_navigates ... 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_select_after_create::n_and_esc_work_on_log_select_after_creating_first_log ... ok
[INFO] [stdout] test tui::app::tests::log_select_integration::select_log_navigates_to_qso_entry ... 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::log_list_reloads_on_return_to_select ... 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::duplicate_qso_shows_warning_but_still_logged ... 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::multiple_qsos_persist_and_accumulate ... 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::no_warning_for_different_band ... 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::navigate_action_to_qso_entry_sets_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::select_log_populates_recent_qsos ... 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::no_warning_for_different_mode ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::submit_qso_clears_form ... ok
[INFO] [stdout] test tui::app::tests::qso_entry_integration::submit_qso_persists_to_storage ... 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_list_integration::edit_qso_out_of_bounds_shows_error ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::alt_e_navigates_to_qso_list ... 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_list_integration::cancel_edit_returns_to_list ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::edit_persists_to_storage ... 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::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::app::tests::qso_list_integration::navigate_to_qso_list_resets_selected ... ok
[INFO] [stdout] test tui::screens::export::tests::construction::default_trait ... ok
[INFO] [stdout] test tui::screens::export::tests::construction::defaults ... 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::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::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::screens::export::tests::handle_key::esc_when_ready_returns_to_qso_entry ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::update_qso_storage_error_shows_error ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::insert_at_mid_cursor ... 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_at_start_is_noop ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::left_moves_cursor_back ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::q_appends_to_path ... 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::right_moves_cursor_forward ... 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::screens::export::tests::prepare::populates_path_and_count ... ok
[INFO] [stdout] test tui::screens::export::tests::handle_key::typing_chars_inserts_at_cursor ... ok
[INFO] [stdout] test tui::screens::export::tests::prepare::resets_status_to_ready ... 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::update_qso_out_of_bounds_shows_error ... ok
[INFO] [stdout] test tui::app::tests::qso_list_integration::q_on_qso_list_is_ignored ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_footer_when_ready ... 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::export::tests::rendering::renders_ready_status ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_path ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_station_info ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_qso_count ... ok
[INFO] [stdout] test tui::screens::export::tests::status_setters::set_error ... ok
[INFO] [stdout] test tui::screens::export::tests::status_setters::set_success ... ok
[INFO] [stdout] test tui::screens::help::tests::construction::default_works ... 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::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::help::tests::handle_key::esc_navigates_to_origin ... 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::up_decrements_scroll ... ok
[INFO] [stdout] test tui::screens::help::tests::help_content_fn::content_includes_section_title ... ok
[INFO] [stdout] test tui::screens::help::tests::help_content_fn::qso_entry_content_excludes_other_sections ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_without_log ... ok
[INFO] [stdout] test tui::screens::help::tests::help_content_fn::each_screen_returns_nonempty_content ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::content_contains_log_select ... ok
[INFO] [stdout] test tui::app::tests::export_integration::export_to_invalid_path_sets_error ... FAILED
[INFO] [stdout] test tui::screens::help::tests::rendering::content_contains_export ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::renders_only_origin_screen_section ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::content_contains_qso_entry ... ok
[INFO] [stdout] test tui::screens::help::tests::reset::reset_sets_scroll_to_zero ... ok
[INFO] [stdout] test tui::screens::help::tests::screen_name_fn::all_variants_have_expected_names ... ok
[INFO] [stdout] test tui::screens::help::tests::set_origin::origin_accessor_returns_value ... ok
[INFO] [stdout] test tui::screens::help::tests::set_origin::set_origin_stores_screen ... 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::log_create::tests::focus_navigation::backtab_from_selector_enters_last_field ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::content_contains_qso_list ... ok
[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_at_last_field_returns_to_selector ... 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::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::errors_cleared_on_resubmit ... 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::invalid_submit::fd_invalid_class_shows_error ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::title_includes_origin_screen_name ... 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::invalid_submit::pota_empty_submit_shows_errors ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::title_contains_help ... 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::wfd_invalid_class_shows_error ... 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::initial_type_is_general ... 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::right_cycles_general_through_all_types ... 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::log_type_selection::type_switch_preserves_callsign_and_operator ... 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_rebuilds_form_fields ... 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::navigation::esc_navigates_back_from_fields ... ok
[INFO] [stdout] test tui::screens::log_create::tests::navigation::unhandled_key_returns_none ... ok
[INFO] [stdout] test tui::screens::log_create::tests::navigation::esc_navigates_back_from_selector ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_footer ... ok
[INFO] [stdout] test tui::screens::export::tests::rendering::renders_title ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_field_values ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_general_error ... 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_pota_fields_when_type_is_pota ... 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::reset::clears_form_and_focus ... ok
[INFO] [stdout] test tui::screens::log_create::tests::reset::clears_general_error ... 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::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::chars_fill_focused_field_after_entering_fields ... 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_section_auto_uppercased ... 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_tx_count_not_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::operator_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_type_selector ... ok
[INFO] [stdout] test tui::screens::help::tests::rendering::footer_contains_esc ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_title_and_fields ... 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::reset::resets_log_type_to_general ... 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_grid_square_uppercase_subsquare_normalised_on_submit ... 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::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_select::tests::construction::new_starts_empty ... 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_select::tests::delete::n_while_pending_cancels ... 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::pending_delete_label_falls_back_to_callsign_when_no_park_ref ... 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::delete::y_while_pending_returns_delete_action ... ok
[INFO] [stdout] test tui::screens::log_select::tests::error::returns_set_value ... ok
[INFO] [stdout] test tui::screens::log_select::tests::load::clears_error ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::down_at_bottom_is_noop ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::down_moves_selection ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::empty_list_is_noop ... ok
[INFO] [stdout] test tui::screens::log_select::tests::load::empty_directory ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::up_at_top_is_noop ... ok
[INFO] [stdout] test tui::screens::log_select::tests::navigation::up_moves_selection ... ok
[INFO] [stdout] test tui::screens::log_select::tests::quit::esc_quits ... ok
[INFO] [stdout] test tui::screens::log_select::tests::load::populates_from_manager ... 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::log_create::tests::valid_submit::pota_lowercase_park_ref_stored_uppercase ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_empty_state ... ok
[INFO] [stdout] test tui::screens::log_create::tests::rendering::renders_wfd_fields_at_standard_width ... ok
[INFO] [stdout] test tui::screens::log_select::tests::selection::enter_selects_current_log ... 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::confirmation_prompt_replaces_error_when_both_set ... 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::b_types_in_callsign ... 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::unhandled_alt_falls_through ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::band_cycling::wraps_backward ... 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::band_mode_persist ... 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::clear_fast_fields::clears_errors ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::clear_fast_fields::clears_storage_error ... 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::fd_does_not_uppercase_comments_field ... 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::resets_focus_to_callsign ... 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::wfd_clears_class_section_and_frequency ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::default_trait ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::defaults ... 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_context_adds_their_park_field ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::construction::pota_their_park_is_optional ... 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::cycle_helper::cycle_backward ... 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::cycle_helper::cycle_forward ... 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::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::cycle_helper::cycle_forward_wraps_at_end ... 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::editing_qso_with_stored_lowercase_park_normalises_on_resubmit ... 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::editing::reset_clears_editing_state ... 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::start_editing_clears_errors ... 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_fd_exchange_without_space_puts_all_in_class ... 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::start_editing_without_park ... 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_log_context_with_empty_log ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::mode_cycling::alt_m_cycles_forward ... 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::mode_cycling::m_types_in_callsign ... 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::wraps_backward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::mode_cycling::wraps_forward ... 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::navigation::esc_navigates_to_log_select ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::recent_qsos::add_recent_qso_caps_at_3 ... 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::recent_qsos::set_log_context_caps_at_3 ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::recent_qsos::set_log_context_populates_recent ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_error_message ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_footer ... 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::error_display::set_error_returns_message ... 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_activated_status ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_activation_progress ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_error_message ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_exchange_in_recent_fd ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_fd_log_form ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_exchange_in_recent_wfd ... ok
[INFO] [stdout] test tui::screens::log_select::tests::rendering::renders_log_table ... 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_frequency_in_recent_general ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_general_log_form ... 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_footer_keybindings ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_recent_qsos ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::reset::resets_to_defaults ... 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 ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_title_and_form_fields ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::empty_callsign_shows_error ... 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::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::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_class_shows_error ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_pota_park_priority_over_frequency ... 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::submit::fd_missing_section_shows_error ... 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::fd_invalid_frequency_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_valid_class_empty_section_no_class_error ... 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::rst_defaults::mode_change_updates_rst_when_unedited ... 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::fd_zero_frequency_shows_error ... 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::general_form_tab_with_empty_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::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::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::pota_frequency_auto_sets_band_on_tab ... 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_valid_frequency_is_stored ... 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::general_valid_frequency_is_stored ... 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::valid_p2p_qso ... 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_frequency_auto_sets_band_on_submit ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::wfd_invalid_frequency_shows_error ... 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::submit::wfd_valid_exchange_and_frequency_returns_add_qso ... 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::backspace_deletes_char ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::backtab_cycles_focus_backward ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::callsign_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::chars_fill_focused_field ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::comments_not_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::typing::park_ref_auto_uppercased ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::tab_cycles_focus_general ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::tab_cycles_focus_pota ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::typing::unhandled_key_returns_none ... 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_entry::tests::submit::general_frequency_auto_sets_band_on_tab ... 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_entry::tests::rendering::renders_wfd_log_form ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::submit::submit_with_comments ... 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_entry::tests::rendering::renders_without_log_context ... 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::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_list::tests::rendering::renders_empty_state ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_footer ... ok
[INFO] [stdout] test storage::manager::tests::append_n_qsos_yields_n_total ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::navigation::up_decrements_selected ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_no_log_title ... 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::rendering::renders_zero_qsos_title ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_header_row ... ok
[INFO] [stdout] test tui::screens::qso_entry::tests::rendering::renders_their_park_in_recent_pota ... 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::reset_clears_error ... 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::screens::qso_list::tests::unhandled::unhandled_key_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::insert_char_appends_to_focused ... ok
[INFO] [stdout] test tui::widgets::form::tests::editing::insert_char_on_different_focus ... ok
[INFO] [stdout] test tui::widgets::form::tests::errors::clear_errors_removes_all ... 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::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::widgets::form::tests::focus::prev_decrements ... 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::widgets::form::tests::focus::set_focus_at_len_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::set_focus_changes_focus ... ok
[INFO] [stdout] test tui::widgets::form::tests::editing::delete_char_removes_last ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::set_focus_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::widgets::form::tests::focus::starts_at_zero ... 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_qso_data ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::draw_form_field_renders_label ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::renders_error_message ... ok
[INFO] [stdout] test tui::widgets::form::tests::rendering::renders_cursor_on_focused_field ... ok
[INFO] [stdout] test tui::widgets::form::tests::reset::clears_values_errors_and_focus ... 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::rendering::renders_field_values ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::returns_all_field_values ... ok
[INFO] [stdout] test tui::widgets::form::tests::values::set_value_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::renders_park_and_comments ... 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::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_uses_park_ref_as_label ... 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_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_count_with_park ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::renders_activated_with_park ... 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::widgets::form::tests::rendering::renders_field_labels ... ok
[INFO] [stdout] test tui::widgets::status_bar::tests::renders_fd_exchange ... 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_title_with_count ... ok
[INFO] [stdout] test storage::manager::tests::round_trip_preserves_qso_count ... ok
[INFO] [stdout] test tui::screens::qso_list::tests::rendering::pending_delete_shows_confirmation_prompt ... 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' (433) panicked at src/tui/app.rs:1421:26:
[INFO] [stdout] expected Error, got Success
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x563249770ce2 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x563249770ce2 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x563249770ce2 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x563249770ce2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56324978378a - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56324978378a - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x56324973d926 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x56324973d926 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x56324974fd69 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56324974fd69 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56324974fc01 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x563249331eae - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x563249331eae - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x56324974ffe2 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x56324974ffe2 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x56324974fe28 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x56324974af89 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5632497314bd - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56324978d54c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5632491e5657 - duklog::tui::app::tests::export_integration::export_to_invalid_path_sets_error::h55ffb9a940b3a1f7
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui/app.rs:1421:26
[INFO] [stdout]   20:     0x5632491e5687 - duklog::tui::app::tests::export_integration::export_to_invalid_path_sets_error::{{closure}}::h0436a80c54060e42
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui/app.rs:1407:47
[INFO] [stdout]   21:     0x563249263156 - core::ops::function::FnOnce::call_once::h22f8b169118145a6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x563249331c6b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x563249331c6b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x56324934567a - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x56324934567a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   26:     0x56324934567a - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x56324934567a - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x56324934567a - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x56324934567a - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x56324934567a - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x56324931fad4 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x56324931fad4 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x563249323472 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x563249323472 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   35:     0x563249323472 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x563249323472 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x563249323472 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x563249323472 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x563249323472 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5632497460df - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   41:     0x5632497460df - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x7f804bb04aa4 - <unknown>
[INFO] [stdout]   43:     0x7f804bb91a64 - 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. 725 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.05s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "0d0f2d026287a15d9226e3bde9d8a983d545e4ef408cf87c89bd38e9964fddb3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d0f2d026287a15d9226e3bde9d8a983d545e4ef408cf87c89bd38e9964fddb3", kill_on_drop: false }`
[INFO] [stdout] 0d0f2d026287a15d9226e3bde9d8a983d545e4ef408cf87c89bd38e9964fddb3
