[INFO] cloning repository https://github.com/KAHU-radar/kahu-daemon
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KAHU-radar/kahu-daemon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKAHU-radar%2Fkahu-daemon", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKAHU-radar%2Fkahu-daemon'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 822215772d18b68b7c703efd647d376312c42321
[INFO] testing KAHU-radar/kahu-daemon against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKAHU-radar%2Fkahu-daemon" "/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/KAHU-radar/kahu-daemon
[INFO] finished tweaking git repo https://github.com/KAHU-radar/kahu-daemon
[INFO] tweaked toml for git repo https://github.com/KAHU-radar/kahu-daemon written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KAHU-radar/kahu-daemon on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KAHU-radar/kahu-daemon 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" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-tungstenite v0.24.0
[INFO] [stderr]   Downloaded whoami v2.1.1
[INFO] [stderr]   Downloaded tungstenite v0.24.0
[INFO] [stderr]   Downloaded block-buffer v0.12.0
[INFO] [stderr]   Downloaded crypto-common v0.2.1
[INFO] [stderr]   Downloaded cmov v0.5.3
[INFO] [stderr]   Downloaded postgres-protocol v0.6.11
[INFO] [stderr]   Downloaded quad-rand v0.2.3
[INFO] [stderr]   Downloaded libflate_lz77 v2.2.0
[INFO] [stderr]   Downloaded wasite v1.0.2
[INFO] [stderr]   Downloaded wasi v0.14.7+wasi-0.2.4
[INFO] [stderr]   Downloaded digest v0.11.2
[INFO] [stderr]   Downloaded typed-builder-macro v0.19.1
[INFO] [stderr]   Downloaded md-5 v0.11.0
[INFO] [stderr]   Downloaded typed-builder v0.19.1
[INFO] [stderr]   Downloaded objc2-system-configuration v0.3.2
[INFO] [stderr]   Downloaded postgres-types v0.2.13
[INFO] [stderr]   Downloaded hybrid-array v0.4.10
[INFO] [stderr]   Downloaded pcap v2.4.0
[INFO] [stderr]   Downloaded nmea-parser v0.10.0
[INFO] [stderr]   Downloaded libflate v2.2.1
[INFO] [stderr]   Downloaded tokio-postgres v0.7.17
[INFO] [stderr]   Downloaded cc v1.2.59
[INFO] [stderr]   Downloaded regex-lite v0.1.9
[INFO] [stderr]   Downloaded bigdecimal v0.4.10
[INFO] [stderr]   Downloaded apache-avro v0.17.0
[INFO] [stderr]   Downloaded rusqlite v0.31.0
[INFO] [stderr]   Downloaded nalgebra v0.33.3
[INFO] [stderr]   Downloaded web-sys v0.3.94
[INFO] [stderr]   Downloaded libsqlite3-sys v0.28.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" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4bc586695503f8e62ee9612db37828a1698f52c3fc66d55816d2ec874f60dd71
[INFO] running `Command { std: "docker" "start" "-a" "4bc586695503f8e62ee9612db37828a1698f52c3fc66d55816d2ec874f60dd71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4bc586695503f8e62ee9612db37828a1698f52c3fc66d55816d2ec874f60dd71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4bc586695503f8e62ee9612db37828a1698f52c3fc66d55816d2ec874f60dd71", kill_on_drop: false }`
[INFO] [stdout] 4bc586695503f8e62ee9612db37828a1698f52c3fc66d55816d2ec874f60dd71
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f7409181af5937b36a3b31ce8c96211fb0fc82affc847ae6b215ca9e8d31d4cf
[INFO] running `Command { std: "docker" "start" "-a" "f7409181af5937b36a3b31ce8c96211fb0fc82affc847ae6b215ca9e8d31d4cf", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling cmov v0.5.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling protobuf v3.7.2
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling ctutils v0.4.2
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling core2 v0.4.0
[INFO] [stderr]    Compiling bigdecimal v0.4.10
[INFO] [stderr]    Compiling hybrid-array v0.4.10
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling uuid v1.23.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling tap v1.0.1
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]    Compiling fallible-iterator v0.2.0
[INFO] [stderr]    Compiling rle-decode-fast v1.0.3
[INFO] [stderr]    Compiling libflate_lz77 v2.2.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling wyz v0.5.1
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling hmac v0.13.0
[INFO] [stderr]    Compiling md-5 v0.11.0
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling postgres-protocol v0.6.11
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling funty v2.0.0
[INFO] [stderr]    Compiling adler32 v1.2.0
[INFO] [stderr]    Compiling dary_heap v0.3.8
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling libflate v2.2.1
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling bitvec v1.0.1
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling phf v0.13.1
[INFO] [stderr]    Compiling whoami v2.1.1
[INFO] [stderr]    Compiling errno v0.2.8
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling serde_bytes v0.11.19
[INFO] [stderr]    Compiling jiff v0.2.23
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling typed-builder-macro v0.19.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling pcap v2.4.0
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling tokio v1.51.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling protobuf-support v3.7.2
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling typed-builder v0.19.1
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling nalgebra v0.33.3
[INFO] [stderr]    Compiling postgres-types v0.2.13
[INFO] [stderr]    Compiling nmea-parser v0.10.0
[INFO] [stderr]    Compiling protobuf-parse v3.7.2
[INFO] [stderr]    Compiling apache-avro v0.17.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling tokio-postgres v0.7.17
[INFO] [stderr]    Compiling protobuf-codegen v3.7.2
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling kahu-daemon v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/output/timescale.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/output/spoke_store.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/output/spoke_store.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_ts_us` is never read
[INFO] [stdout]    --> src/input/pcap.rs:367:9
[INFO] [stdout]     |
[INFO] [stdout] 367 |         prev_ts_us = None; // Reset timestamps at loop boundary.
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_cells` is never used
[INFO] [stdout]    --> src/clutter.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl ClutterMap {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn active_cells(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/input/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct SpokeFrame {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub source: SourceKind,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpokeFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WebSocket` and `Stdin` are never constructed
[INFO] [stdout]   --> src/input/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum SourceKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 30 |     WebSocket,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 31 |     Stdin,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SourceKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cog_deg` and `sog_kts` are never read
[INFO] [stdout]   --> src/input/mod.rs:47:31
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Rmc { lat: f64, lon: f64, cog_deg: f64, sog_kts: f64 },
[INFO] [stdout]    |     ---                       ^^^^^^^       ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NmeaSentence` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `speed_kts` is never read
[INFO] [stdout]   --> src/input/mod.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     Rattm {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 55 |         speed_kts: f64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NmeaSentence` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `raw` is never read
[INFO] [stdout]   --> src/input/mod.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Aivdm { raw: String },
[INFO] [stdout]    |     -----   ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NmeaSentence` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPOKE_PIXELS` is never used
[INFO] [stdout]   --> src/input/pcap.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub const SPOKE_PIXELS: usize = 1024;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAVICO_SPOKES_PER_FRAME` is never used
[INFO] [stdout]   --> src/input/pcap.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub const NAVICO_SPOKES_PER_FRAME: usize = 32;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAVICO_SPOKES_RAW` is never used
[INFO] [stdout]   --> src/input/pcap.rs:59:11
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub const NAVICO_SPOKES_RAW: u32 = 4096;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SinkEvent` is never used
[INFO] [stdout]   --> src/output/mod.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum SinkEvent {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OutputSink` is never used
[INFO] [stdout]   --> src/output/mod.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub trait OutputSink: Send {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OutputRouter` is never constructed
[INFO] [stdout]   --> src/output/mod.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct OutputRouter {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `spawn` are never used
[INFO] [stdout]   --> src/output/mod.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | impl OutputRouter {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 80 |     pub fn new(sinks: Vec<Box<dyn OutputSink>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn spawn(mut self) -> mpsc::Sender<SinkEvent> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrackServerSink` is never constructed
[INFO] [stdout]   --> src/output/trackserver.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TrackServerSink {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/output/trackserver.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl TrackServerSink {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(host: &str, port: u16, api_key: &str, min_fixes: usize) -> anyhow::Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BATCH_SIZE` is never used
[INFO] [stdout]   --> src/output/timescale.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const BATCH_SIZE: usize = 50;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BATCH_TIMEOUT` is never used
[INFO] [stdout]   --> src/output/timescale.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const BATCH_TIMEOUT: Duration = Duration::from_millis(500);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TargetRow` is never constructed
[INFO] [stdout]   --> src/output/timescale.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct TargetRow {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `track_to_rows` is never used
[INFO] [stdout]   --> src/output/timescale.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn track_to_rows(track: &Track) -> Vec<TargetRow> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimescaleSink` is never constructed
[INFO] [stdout]   --> src/output/timescale.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct TimescaleSink {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `ensure_connected`, `flush`, and `should_flush` are never used
[INFO] [stdout]    --> src/output/timescale.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl TimescaleSink {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  79 |     pub fn new(url: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     async fn ensure_connected(&mut self) -> anyhow::Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     async fn flush(&mut self) -> anyhow::Result<()> {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn should_flush(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn` is never used
[INFO] [stdout]   --> src/output/spoke_store.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn spawn(dir: impl Into<PathBuf>) -> mpsc::Sender<Bytes> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Session` is never constructed
[INFO] [stdout]   --> src/output/spoke_store.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | struct Session {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `write_frame` are never used
[INFO] [stdout]    --> src/output/spoke_store.rs:82:8
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl Session {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  82 |     fn new(dir: &Path) -> anyhow::Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn write_frame(&mut self, bytes: &Bytes) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/output/spoke_store.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn run(mut rx: mpsc::Receiver<Bytes>, dir: &Path) -> anyhow::Result<()> {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_schema` is never used
[INFO] [stdout]    --> src/output/spoke_store.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn init_schema(db: &Connection) -> anyhow::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_session` is never used
[INFO] [stdout]    --> src/output/spoke_store.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn insert_session(db: &Connection, s: &Session) -> anyhow::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_session` is never used
[INFO] [stdout]    --> src/output/spoke_store.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn update_session(db: &Connection, s: &Session) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.35s
[INFO] running `Command { std: "docker" "inspect" "f7409181af5937b36a3b31ce8c96211fb0fc82affc847ae6b215ca9e8d31d4cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f7409181af5937b36a3b31ce8c96211fb0fc82affc847ae6b215ca9e8d31d4cf", kill_on_drop: false }`
[INFO] [stdout] f7409181af5937b36a3b31ce8c96211fb0fc82affc847ae6b215ca9e8d31d4cf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 40426dca4bc734f13994b13e4bb6d10765d4bc3b72b0714c33fedd3d29c3d5f1
[INFO] running `Command { std: "docker" "start" "-a" "40426dca4bc734f13994b13e4bb6d10765d4bc3b72b0714c33fedd3d29c3d5f1", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling protobuf-parse v3.7.2
[INFO] [stderr]    Compiling protobuf-codegen v3.7.2
[INFO] [stderr]    Compiling kahu-daemon v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/output/spoke_store.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_ts_us` is never read
[INFO] [stdout]    --> src/input/pcap.rs:367:9
[INFO] [stdout]     |
[INFO] [stdout] 367 |         prev_ts_us = None; // Reset timestamps at loop boundary.
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/input/pcap.rs:540:17
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let mut h = make_header(
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_cells` is never used
[INFO] [stdout]    --> src/clutter.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl ClutterMap {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn active_cells(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/input/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct SpokeFrame {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub source: SourceKind,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpokeFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WebSocket` and `Stdin` are never constructed
[INFO] [stdout]   --> src/input/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum SourceKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 30 |     WebSocket,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 31 |     Stdin,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SourceKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cog_deg` and `sog_kts` are never read
[INFO] [stdout]   --> src/input/mod.rs:47:31
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Rmc { lat: f64, lon: f64, cog_deg: f64, sog_kts: f64 },
[INFO] [stdout]    |     ---                       ^^^^^^^       ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NmeaSentence` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `raw` is never read
[INFO] [stdout]   --> src/input/mod.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |     Aivdm { raw: String },
[INFO] [stdout]    |     -----   ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NmeaSentence` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAVICO_SPOKES_PER_FRAME` is never used
[INFO] [stdout]   --> src/input/pcap.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub const NAVICO_SPOKES_PER_FRAME: usize = 32;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAVICO_SPOKES_RAW` is never used
[INFO] [stdout]   --> src/input/pcap.rs:59:11
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub const NAVICO_SPOKES_RAW: u32 = 4096;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.73s
[INFO] running `Command { std: "docker" "inspect" "40426dca4bc734f13994b13e4bb6d10765d4bc3b72b0714c33fedd3d29c3d5f1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "40426dca4bc734f13994b13e4bb6d10765d4bc3b72b0714c33fedd3d29c3d5f1", kill_on_drop: false }`
[INFO] [stdout] 40426dca4bc734f13994b13e4bb6d10765d4bc3b72b0714c33fedd3d29c3d5f1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d6697b2a118c311844834fc73a2655c7c9841d6f9eb569bfaf5b444e3579a012
[INFO] running `Command { std: "docker" "start" "-a" "d6697b2a118c311844834fc73a2655c7c9841d6f9eb569bfaf5b444e3579a012", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]   --> src/output/spoke_store.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 40 | use std::sync::Arc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `prev_ts_us` is never read
[INFO] [stderr]    --> src/input/pcap.rs:367:9
[INFO] [stderr]     |
[INFO] [stderr] 367 |         prev_ts_us = None; // Reset timestamps at loop boundary.
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/input/pcap.rs:540:17
[INFO] [stderr]     |
[INFO] [stderr] 540 |             let mut h = make_header(
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `active_cells` is never used
[INFO] [stderr]    --> src/clutter.rs:106:12
[INFO] [stderr]     |
[INFO] [stderr]  46 | impl ClutterMap {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub fn active_cells(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `source` is never read
[INFO] [stderr]   --> src/input/mod.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct SpokeFrame {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub source: SourceKind,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SpokeFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `WebSocket` and `Stdin` are never constructed
[INFO] [stderr]   --> src/input/mod.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub enum SourceKind {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] 30 |     WebSocket,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 31 |     Stdin,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SourceKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `cog_deg` and `sog_kts` are never read
[INFO] [stderr]   --> src/input/mod.rs:47:31
[INFO] [stderr]    |
[INFO] [stderr] 47 |     Rmc { lat: f64, lon: f64, cog_deg: f64, sog_kts: f64 },
[INFO] [stderr]    |     ---                       ^^^^^^^       ^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `NmeaSentence` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `raw` is never read
[INFO] [stderr]   --> src/input/mod.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |     Aivdm { raw: String },
[INFO] [stderr]    |     -----   ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `NmeaSentence` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NAVICO_SPOKES_PER_FRAME` is never used
[INFO] [stderr]   --> src/input/pcap.rs:57:11
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub const NAVICO_SPOKES_PER_FRAME: usize = 32;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NAVICO_SPOKES_RAW` is never used
[INFO] [stderr]   --> src/input/pcap.rs:59:11
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub const NAVICO_SPOKES_RAW: u32 = 4096;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `kahu-daemon` (bin "kahu-daemon" test) generated 10 warnings (run `cargo fix --bin "kahu-daemon" -p kahu-daemon --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kahu_daemon-5f34cfbb36f83f8d)
[INFO] [stdout] 
[INFO] [stdout] running 98 tests
[INFO] [stdout] test clutter::tests::fresh_map_passes_all_detections ... ok
[INFO] [stdout] test clutter::tests::stationary_target_suppressed_after_window ... ok
[INFO] [stdout] test clutter::tests::moving_target_not_suppressed ... ok
[INFO] [stdout] test config::tests::empty_toml_uses_defaults ... ok
[INFO] [stdout] test config::tests::pcap_mode_parsed ... ok
[INFO] [stdout] test config::tests::load_returns_error_for_missing_file ... ok
[INFO] [stdout] test config::tests::rattm_mode_parsed ... ok
[INFO] [stdout] test config::tests::spoke_store_section_parsed ... ok
[INFO] [stdout] test detect::tests::all_noise_returns_no_detections ... ok
[INFO] [stdout] test config::tests::timescale_section_parsed ... ok
[INFO] [stdout] test detect::tests::bearing_converted_correctly ... ok
[INFO] [stdout] test detect::tests::blob_below_min_size_ignored ... ok
[INFO] [stdout] test detect::tests::blob_in_main_bang_zone_ignored ... ok
[INFO] [stdout] test detect::tests::empty_spoke_returns_no_detections ... ok
[INFO] [stdout] test detect::tests::single_blob_detected ... ok
[INFO] [stdout] test detect::tests::two_blobs_detected ... ok
[INFO] [stdout] test geo::tests::east_displacement ... ok
[INFO] [stdout] test geo::tests::haversine_known_distance ... ok
[INFO] [stdout] test geo::tests::haversine_zero_for_same_point ... ok
[INFO] [stdout] test geo::tests::north_displacement ... ok
[INFO] [stdout] test input::nmea::tests::gga_parsed ... ok
[INFO] [stdout] test input::nmea::tests::hdt_parsed ... ok
[INFO] [stdout] test input::nmea::tests::non_nmea_returns_none ... ok
[INFO] [stdout] test input::nmea::tests::rattm_parsed ... ok
[INFO] [stdout] test input::nmea::tests::southern_hemisphere_lat_is_negative ... ok
[INFO] [stdout] test input::pcap::tests::bearing_absent_when_flag_not_set ... ok
[INFO] [stdout] test input::nmea::tests::unknown_sentence_returns_none ... ok
[INFO] [stdout] test input::pcap::tests::both_valid_status_bytes_accepted ... ok
[INFO] [stdout] test input::nmea::tests::rmc_invalid_status_rejected ... ok
[INFO] [stdout] test input::pcap::tests::frame_parse_and_proto_roundtrip ... ok
[INFO] [stdout] test input::pcap::tests::invalid_status_rejected ... ok
[INFO] [stdout] test input::pcap::tests::frame_too_short_returns_empty ... ok
[INFO] [stdout] test input::pcap::tests::frame_with_bad_headers_skipped ... ok
[INFO] [stdout] test input::pcap::tests::range_large_mode ... ok
[INFO] [stdout] test input::pcap::tests::full_32_spoke_frame_parsed ... ok
[INFO] [stdout] test input::pcap::tests::bearing_present_when_flag_set ... ok
[INFO] [stdout] test input::pcap::tests::is_navico_frame_rejects_nmea_packet ... ok
[INFO] [stdout] test input::pcap::tests::range_small_mode_half_mile ... ok
[INFO] [stdout] test input::pcap::tests::is_navico_frame_rejects_short_payload ... ok
[INFO] [stdout] test input::pcap::tests::range_small_mode_max ... ok
[INFO] [stdout] test input::pcap::tests::short_header_slice_rejected ... ok
[INFO] [stdout] test input::pcap::tests::is_navico_frame_recognises_valid_frame ... ok
[INFO] [stdout] test input::pcap::tests::range_large_mode_typical_3nm ... ok
[INFO] [stdout] test input::pcap::tests::spoke_angles_increment_correctly ... ok
[INFO] [stdout] test input::pcap::tests::spokes_to_proto_empty_input_produces_empty_message ... ok
[INFO] [stdout] test input::pcap::tests::udp_payload_extracted_correctly ... ok
[INFO] [stdout] test input::pcap::tests::udp_payload_rejects_non_udp_protocol ... ok
[INFO] [stdout] test input::pcap::tests::unpack_512_packed_bytes_gives_1024_pixels ... ok
[INFO] [stdout] test input::pcap::tests::pcap_fixture_two_loops_more_spokes_than_one ... ok
[INFO] [stdout] test input::pcap::tests::pcap_fixture_contains_navico_frames ... ok
[INFO] [stdout] test input::pcap::tests::unpack_nibbles_all_ff ... ok
[INFO] [stdout] test input::pcap::tests::partial_frame_parses_available_spokes ... ok
[INFO] [stdout] test input::pcap::tests::spokes_to_proto_roundtrips_via_protobuf ... ok
[INFO] [stdout] test input::pcap::tests::unpack_nibbles_all_zeros ... ok
[INFO] [stdout] test input::pcap::tests::pcap_loop_doubles_spoke_count ... ok
[INFO] [stdout] test input::pcap::tests::pcap_fixture_yields_at_least_one_full_revolution ... ok
[INFO] [stdout] test input::pcap::tests::udp_payload_rejects_non_ipv4 ... ok
[INFO] [stdout] test input::pcap::tests::udp_payload_rejects_short_packet ... ok
[INFO] [stdout] test input::pcap::tests::unpack_nibbles_expands_to_double_length ... ok
[INFO] [stdout] test input::pcap::tests::unpack_nibbles_values_capped_at_15 ... ok
[INFO] [stdout] test input::pcap::tests::valid_header_parses_correctly ... ok
[INFO] [stdout] test input::pcap::tests::wrong_header_len_rejected ... ok
[INFO] [stdout] test input::pcap::tests::unpack_nibbles_low_nibble_is_first ... ok
[INFO] [stdout] test input::pcap::tests::zero_range_rejected ... ok
[INFO] [stdout] test nav_state::tests::starts_empty ... ok
[INFO] [stdout] test nav_state::tests::write_then_read_pos ... ok
[INFO] [stdout] test nav_state::tests::clone_shares_the_same_data ... ok
[INFO] [stdout] test output::timescale::tests::should_flush_false_when_empty ... ok
[INFO] [stdout] test output::timescale::tests::should_flush_false_when_small_batch_within_timeout ... ok
[INFO] [stdout] test output::timescale::tests::handle_accumulates_rows_in_batch_without_db ... ok
[INFO] [stdout] test output::spoke_store::tests::init_schema_is_idempotent ... ok
[INFO] [stdout] test output::timescale::tests::should_flush_true_when_batch_full ... ok
[INFO] [stdout] test output::timescale::tests::should_flush_true_when_timeout_expired ... ok
[INFO] [stdout] test output::timescale::tests::track_to_rows_empty_track_gives_empty_vec ... ok
[INFO] [stdout] test output::timescale::tests::track_to_rows_preserves_coordinates ... ok
[INFO] [stdout] test output::timescale::tests::unnest_query_has_four_parameters ... ok
[INFO] [stdout] test output::timescale::tests::track_to_rows_preserves_track_id ... ok
[INFO] [stdout] test output::trackserver::tests::upload_track_built_correctly ... ok
[INFO] [stdout] test output::timescale::tests::track_to_rows_produces_one_row_per_fix ... ok
[INFO] [stdout] test tracker::tests::drain_returns_all_tracks ... ok
[INFO] [stdout] test tracker::tests::far_detection_births_second_track ... ok
[INFO] [stdout] test tracker::tests::missed_sweeps_causes_loss ... ok
[INFO] [stdout] test tracker::tests::repeated_detection_extends_track ... ok
[INFO] [stdout] test tracker::tests::single_detection_births_track ... ok
[INFO] [stdout] test output::trackserver::tests::short_track_dropped_below_min_fixes ... ok
[INFO] [stdout] test output::timescale::tests::flush_with_no_client_clears_batch_gracefully ... ok
[INFO] [stdout] test output::tests::router_handles_zero_sinks ... ok
[INFO] [stdout] test output::tests::router_exits_when_channel_closes ... ok
[INFO] [stdout] test output::tests::router_delivers_to_all_sinks ... ok
[INFO] [stdout] test output::spoke_store::tests::multiple_frames_written_in_order ... ok
[INFO] [stdout] test output::spoke_store::tests::empty_session_still_creates_index_row ... ok
[INFO] [stdout] test output::spoke_store::tests::session_end_time_set_on_close ... ok
[INFO] [stdout] test output::spoke_store::tests::written_file_is_replayable_as_stdin_frames ... ok
[INFO] [stdout] test output::spoke_store::tests::written_frames_are_length_prefixed_le ... ok
[INFO] [stdout] test output::spoke_store::tests::session_indexed_in_sqlite ... ok
[INFO] [stdout] test pipeline::rattm::tests::rattm_target_produces_track ... ok
[INFO] [stdout] test pipeline::rattm::tests::rattm_without_own_pos_produces_no_track ... ok
[INFO] [stdout] test pipeline::rattm::tests::two_targets_stay_separate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 98 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.51s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d6697b2a118c311844834fc73a2655c7c9841d6f9eb569bfaf5b444e3579a012", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d6697b2a118c311844834fc73a2655c7c9841d6f9eb569bfaf5b444e3579a012", kill_on_drop: false }`
[INFO] [stdout] d6697b2a118c311844834fc73a2655c7c9841d6f9eb569bfaf5b444e3579a012
