[INFO] cloning repository https://github.com/matthicks05/battsim2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/matthicks05/battsim2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatthicks05%2Fbattsim2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatthicks05%2Fbattsim2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fb7fb064505e02c2048e6e90addcc1336bdbba8e
[INFO] testing matthicks05/battsim2 against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatthicks05%2Fbattsim2" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/matthicks05/battsim2
[INFO] finished tweaking git repo https://github.com/matthicks05/battsim2
[INFO] tweaked toml for git repo https://github.com/matthicks05/battsim2 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/matthicks05/battsim2 on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/matthicks05/battsim2 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.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1
[INFO] running `Command { std: "docker" "start" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling deranged v0.5.3
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling nu-ansi-term v0.50.1
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling indoc v2.0.6
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling time v0.3.43
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.25.3
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tracing-appender v0.2.3
[INFO] [stderr]    Compiling strum v0.25.0
[INFO] [stderr]    Compiling ratatui v0.24.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling tokio-modbus v0.11.0
[INFO] [stderr]    Compiling battsim2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `registers::*`
[INFO] [stdout]  --> src/modbus/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use registers::*;
[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: `app::*`
[INFO] [stdout]  --> src/ui/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use app::*;
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `widgets::*`
[INFO] [stdout]  --> src/ui/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use widgets::*;
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `terminal::*`
[INFO] [stdout]  --> src/ui/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use terminal::*;
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bitmap` is never used
[INFO] [stdout]    --> src/battery/types.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl FaultCode {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn from_bitmap(bitmap: u32) -> Vec<FaultCode> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bitmap` is never used
[INFO] [stdout]    --> src/battery/types.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl WarningCode {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn from_bitmap(bitmap: u32) -> Vec<WarningCode> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_ambient_temperature` is never used
[INFO] [stdout]   --> src/battery/simulation.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl BatterySimulator {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn set_ambient_temperature(&mut self, temp: f64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/battery/state.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl BatteryStateManager {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn update_config(&self, config: BatteryConfig) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn update_state(&self, new_state: BatteryState) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn time_since_update(&self) -> Result<Duration> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn is_stale(&self) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn add_fault(&self, fault: FaultCode) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn clear_fault(&self, fault: FaultCode) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn add_warning(&self, warning: WarningCode) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn clear_warning(&self, warning: WarningCode) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn clear_all_faults_and_warnings(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn set_system_state(&self, new_state: SystemState) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn set_modbus_clients(&self, count: u32) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionCode` is never used
[INFO] [stdout]   --> src/modbus/server.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum FunctionCode {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `protocol_id` and `length` are never read
[INFO] [stdout]   --> src/modbus/server.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ModbusRequest {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 33 |     pub transaction_id: u16,
[INFO] [stdout] 34 |     pub protocol_id: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 35 |     pub length: u16,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModbusRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_client_count` is never used
[INFO] [stdout]    --> src/modbus/server.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl ModbusTcpServer {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn get_client_count(&self) -> u32 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `int16_to_f64_scaled` is never used
[INFO] [stdout]   --> src/modbus/registers.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl ModbusConverter {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn int16_to_f64_scaled(value: i16, scale: f64) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_input_register` and `read_holding_register` are never used
[INFO] [stdout]    --> src/modbus/registers.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl ModbusRegisterMap {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn read_input_register(&self, address: u16) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn read_holding_register(&self, address: u16) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `take_pending_setpoints` is never used
[INFO] [stdout]    --> src/ui/app.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl App {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn take_pending_setpoints(&mut self) -> Option<ControlSetpoints> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Tui` is never used
[INFO] [stdout]   --> src/ui/terminal.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub type Tui = Terminal<CrosstermBackend<std::io::Stdout>>;
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init` is never used
[INFO] [stdout]   --> src/ui/terminal.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn init() -> io::Result<Tui> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore` is never used
[INFO] [stdout]   --> src/ui/terminal.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn restore() -> io::Result<()> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 51.17s
[INFO] running `Command { std: "docker" "inspect" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling battsim2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `registers::*`
[INFO] [stdout]  --> src/modbus/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use registers::*;
[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: `app::*`
[INFO] [stdout]  --> src/ui/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use app::*;
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `widgets::*`
[INFO] [stdout]  --> src/ui/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use widgets::*;
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `terminal::*`
[INFO] [stdout]  --> src/ui/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use terminal::*;
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state_tx`
[INFO] [stdout]    --> src/modbus/server.rs:512:14
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let (state_tx, state_rx) = watch::channel(BatteryState::default());
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state_tx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state_tx`
[INFO] [stdout]    --> src/modbus/server.rs:538:14
[INFO] [stdout]     |
[INFO] [stdout] 538 |         let (state_tx, state_rx) = watch::channel(BatteryState::default());
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state_tx`
[INFO] [stdout]    --> src/modbus/server.rs:512:14
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let (state_tx, state_rx) = watch::channel(BatteryState::default());
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state_tx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state_tx`
[INFO] [stdout]    --> src/modbus/server.rs:538:14
[INFO] [stdout]     |
[INFO] [stdout] 538 |         let (state_tx, state_rx) = watch::channel(BatteryState::default());
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bitmap` is never used
[INFO] [stdout]    --> src/battery/types.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl FaultCode {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn from_bitmap(bitmap: u32) -> Vec<FaultCode> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bitmap` is never used
[INFO] [stdout]    --> src/battery/types.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl WarningCode {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn from_bitmap(bitmap: u32) -> Vec<WarningCode> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_ambient_temperature` is never used
[INFO] [stdout]   --> src/battery/simulation.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl BatterySimulator {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn set_ambient_temperature(&mut self, temp: f64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/battery/state.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl BatteryStateManager {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn update_config(&self, config: BatteryConfig) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn update_state(&self, new_state: BatteryState) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn time_since_update(&self) -> Result<Duration> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn is_stale(&self) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn add_warning(&self, warning: WarningCode) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn clear_warning(&self, warning: WarningCode) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn clear_all_faults_and_warnings(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn set_system_state(&self, new_state: SystemState) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn set_modbus_clients(&self, count: u32) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionCode` is never used
[INFO] [stdout]   --> src/modbus/server.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum FunctionCode {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `protocol_id` and `length` are never read
[INFO] [stdout]   --> src/modbus/server.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ModbusRequest {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 33 |     pub transaction_id: u16,
[INFO] [stdout] 34 |     pub protocol_id: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 35 |     pub length: u16,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModbusRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_client_count` is never used
[INFO] [stdout]    --> src/modbus/server.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl ModbusTcpServer {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn get_client_count(&self) -> u32 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `read_holding_register` is never used
[INFO] [stdout]    --> src/modbus/registers.rs:255:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl ModbusRegisterMap {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn read_holding_register(&self, address: u16) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `take_pending_setpoints` is never used
[INFO] [stdout]    --> src/ui/app.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl App {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn take_pending_setpoints(&mut self) -> Option<ControlSetpoints> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Tui` is never used
[INFO] [stdout]   --> src/ui/terminal.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub type Tui = Terminal<CrosstermBackend<std::io::Stdout>>;
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init` is never used
[INFO] [stdout]   --> src/ui/terminal.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn init() -> io::Result<Tui> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore` is never used
[INFO] [stdout]   --> src/ui/terminal.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn restore() -> io::Result<()> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 4.12s
[INFO] running `Command { std: "docker" "inspect" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `state_tx`
[INFO] [stderr]    --> src/modbus/server.rs:512:14
[INFO] [stderr]     |
[INFO] [stderr] 512 |         let (state_tx, state_rx) = watch::channel(BatteryState::default());
[INFO] [stderr]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state_tx`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state_tx`
[INFO] [stderr]    --> src/modbus/server.rs:538:14
[INFO] [stderr]     |
[INFO] [stderr] 538 |         let (state_tx, state_rx) = watch::channel(BatteryState::default());
[INFO] [stderr]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state_tx`
[INFO] [stderr] 
[INFO] [stderr] warning: `battsim2` (lib test) generated 2 warnings (run `cargo fix --lib -p battsim2 --tests` to apply 2 suggestions)
[INFO] [stderr] warning: unused import: `registers::*`
[INFO] [stderr]  --> src/modbus/mod.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub use registers::*;
[INFO] [stderr]   |         ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `app::*`
[INFO] [stderr]  --> src/ui/mod.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub use app::*;
[INFO] [stderr]   |         ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `widgets::*`
[INFO] [stderr]  --> src/ui/mod.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use widgets::*;
[INFO] [stderr]   |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `terminal::*`
[INFO] [stderr]  --> src/ui/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use terminal::*;
[INFO] [stderr]   |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_bitmap` is never used
[INFO] [stderr]    --> src/battery/types.rs:150:12
[INFO] [stderr]     |
[INFO] [stderr] 145 | impl FaultCode {
[INFO] [stderr]     | -------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub fn from_bitmap(bitmap: u32) -> Vec<FaultCode> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_bitmap` is never used
[INFO] [stderr]    --> src/battery/types.rs:176:12
[INFO] [stderr]     |
[INFO] [stderr] 171 | impl WarningCode {
[INFO] [stderr]     | ---------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 176 |     pub fn from_bitmap(bitmap: u32) -> Vec<WarningCode> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_ambient_temperature` is never used
[INFO] [stderr]   --> src/battery/simulation.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl BatterySimulator {
[INFO] [stderr]    | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn set_ambient_temperature(&mut self, temp: f64) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/battery/state.rs:93:12
[INFO] [stderr]     |
[INFO] [stderr]  18 | impl BatteryStateManager {
[INFO] [stderr]     | ------------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  93 |     pub fn update_config(&self, config: BatteryConfig) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub fn update_state(&self, new_state: BatteryState) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn time_since_update(&self) -> Result<Duration> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 248 |     pub fn is_stale(&self) -> Result<bool> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 287 |     pub fn add_warning(&self, warning: WarningCode) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 301 |     pub fn clear_warning(&self, warning: WarningCode) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 313 |     pub fn clear_all_faults_and_warnings(&self) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 330 |     pub fn set_system_state(&self, new_state: SystemState) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 350 |     pub fn set_modbus_clients(&self, count: u32) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `FunctionCode` is never used
[INFO] [stderr]   --> src/modbus/server.rs:14:10
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub enum FunctionCode {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `protocol_id` and `length` are never read
[INFO] [stderr]   --> src/modbus/server.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub struct ModbusRequest {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 33 |     pub transaction_id: u16,
[INFO] [stderr] 34 |     pub protocol_id: u16,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 35 |     pub length: u16,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ModbusRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_client_count` is never used
[INFO] [stderr]    --> src/modbus/server.rs:131:18
[INFO] [stderr]     |
[INFO] [stderr]  62 | impl ModbusTcpServer {
[INFO] [stderr]     | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub async fn get_client_count(&self) -> u32 {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `read_holding_register` is never used
[INFO] [stderr]    --> src/modbus/registers.rs:255:12
[INFO] [stderr]     |
[INFO] [stderr] 132 | impl ModbusRegisterMap {
[INFO] [stderr]     | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 255 |     pub fn read_holding_register(&self, address: u16) -> Option<u16> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `take_pending_setpoints` is never used
[INFO] [stderr]    --> src/ui/app.rs:125:12
[INFO] [stderr]     |
[INFO] [stderr]  57 | impl App {
[INFO] [stderr]     | -------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn take_pending_setpoints(&mut self) -> Option<ControlSetpoints> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Tui` is never used
[INFO] [stderr]   --> src/ui/terminal.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub type Tui = Terminal<CrosstermBackend<std::io::Stdout>>;
[INFO] [stderr]    |          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `init` is never used
[INFO] [stderr]   --> src/ui/terminal.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub fn init() -> io::Result<Tui> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `restore` is never used
[INFO] [stderr]   --> src/ui/terminal.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub fn restore() -> io::Result<()> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `battsim2` (bin "battsim2" test) generated 18 warnings (2 duplicates) (run `cargo fix --bin "battsim2" -p battsim2 --tests` to apply 4 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/battsim2-8a86ecadfdc4c284)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test battery::state::tests::test_fault_management ... ok
[INFO] [stdout] test battery::simulation::tests::test_fault_detection ... ok
[INFO] [stdout] test battery::state::tests::test_electrical_update ... ok
[INFO] [stdout] test modbus::registers::tests::test_data_type_conversions ... ok
[INFO] [stdout] test modbus::server::tests::test_request_parsing ... ok
[INFO] [stdout] test modbus::server::tests::test_response_serialization ... ok
[INFO] [stdout] test battery::state::tests::test_state_manager_creation ... FAILED
[INFO] [stdout] test modbus::registers::tests::test_register_mapping ... FAILED
[INFO] [stdout] test battery::simulation::tests::test_simulator_creation ... FAILED
[INFO] [stdout] test battery::simulation::tests::test_soc_update ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- battery::state::tests::test_state_manager_creation stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'battery::state::tests::test_state_manager_creation' (1167) panicked at src/battery/state.rs:385:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: Offline
[INFO] [stdout]  right: Standby
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5863c9fdc4d1 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5863c9ff11ea - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x5863c9fe0fbc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5863c9fb8046 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5863c9fd4999 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x5863c9f4aea0 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5863c9fd4b52 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5863c9fb80f2 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5863c9fb0509 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5863c9fb8dfd - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x5863c9ff194c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5863c9ff1863 - core[7c831bd917ebf35f]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x5863c9f2e11f - core[7c831bd917ebf35f]::panicking::assert_failed::<battsim2[7711702b7eeca3f3]::battery::types::SystemState, battsim2[7711702b7eeca3f3]::battery::types::SystemState>
[INFO] [stdout]   13:     0x5863c9f2f799 - battsim2[7711702b7eeca3f3]::battery::state::tests::test_state_manager_creation
[INFO] [stdout]   14:     0x5863c9f36f29 - <battsim2[7711702b7eeca3f3]::battery::state::tests::test_state_manager_creation::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   15:     0x5863c9f3e18b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   16:     0x5863c9f4b7f5 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   17:     0x5863c9f44bb4 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   18:     0x5863c9f4e952 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   19:     0x5863c9fdbd79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   20:     0x7abb002d107a - <unknown>
[INFO] [stdout]   21:     0x7abb00364534 - clone
[INFO] [stdout]   22:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- modbus::registers::tests::test_register_mapping stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'modbus::registers::tests::test_register_mapping' (1169) panicked at src/modbus/registers.rs:399:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: Some(850)
[INFO] [stdout]  right: Some(500)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5863c9fdc4d1 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5863c9ff11ea - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x5863c9fe0fbc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5863c9fb8046 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5863c9fd4999 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x5863c9f4aea0 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5863c9fd4b52 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5863c9fb80f2 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5863c9fb0509 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5863c9fb8dfd - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x5863c9ff194c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5863c9ff1863 - core[7c831bd917ebf35f]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x5863c9f2e0b9 - core[7c831bd917ebf35f]::panicking::assert_failed::<core[7c831bd917ebf35f]::option::Option<u16>, core[7c831bd917ebf35f]::option::Option<u16>>
[INFO] [stdout]   13:     0x5863c9f3a405 - battsim2[7711702b7eeca3f3]::modbus::registers::tests::test_register_mapping
[INFO] [stdout]   14:     0x5863c9f36e59 - <battsim2[7711702b7eeca3f3]::modbus::registers::tests::test_register_mapping::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   15:     0x5863c9f3e18b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   16:     0x5863c9f4b7f5 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   17:     0x5863c9f44bb4 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   18:     0x5863c9f4e952 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   19:     0x5863c9fdbd79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   20:     0x7abb002d107a - <unknown>
[INFO] [stdout]   21:     0x7abb00364534 - clone
[INFO] [stdout]   22:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- battery::simulation::tests::test_simulator_creation stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'battery::simulation::tests::test_simulator_creation' (1163) panicked at src/battery/simulation.rs:435:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 85.0
[INFO] [stdout]  right: 50.0
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5863c9fdc4d1 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5863c9ff11ea - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x5863c9fe0fbc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5863c9fb8046 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5863c9fd4999 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x5863c9f4aea0 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5863c9fd4b52 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5863c9fb80f2 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5863c9fb0509 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5863c9fb8dfd - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x5863c9ff194c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5863c9ff1863 - core[7c831bd917ebf35f]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x5863c9f2e152 - core[7c831bd917ebf35f]::panicking::assert_failed::<f64, f64>
[INFO] [stdout]   13:     0x5863c9f3dc15 - battsim2[7711702b7eeca3f3]::battery::simulation::tests::test_simulator_creation::{closure#0}
[INFO] [stdout]   14:     0x5863c9f33ad3 - <tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::Context>::enter::<core[7c831bd917ebf35f]::task::poll::Poll<()>, <tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   15:     0x5863c9f3bab9 - <std[104cf6e2632825ea]::thread::local::LocalKey<tokio[e27ced5cfdc79d34]::runtime::context::Context>>::with::<tokio[e27ced5cfdc79d34]::runtime::context::set_scheduler<(alloc[2fdc3f7464fcf288]::boxed::Box<tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::Core>, core[7c831bd917ebf35f]::option::Option<()>), <tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}, core[7c831bd917ebf35f]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[2fdc3f7464fcf288]::boxed::Box<tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::Core>, core[7c831bd917ebf35f]::option::Option<()>)>
[INFO] [stdout]   16:     0x5863c9f340d7 - <tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>
[INFO] [stdout]   17:     0x5863c9f38c57 - tokio[e27ced5cfdc79d34]::runtime::context::runtime::enter_runtime::<<tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]   18:     0x5863c9f3704a - <tokio[e27ced5cfdc79d34]::runtime::runtime::Runtime>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>
[INFO] [stdout]   19:     0x5863c9f3e095 - battsim2[7711702b7eeca3f3]::battery::simulation::tests::test_simulator_creation
[INFO] [stdout]   20:     0x5863c9f36ec9 - <battsim2[7711702b7eeca3f3]::battery::simulation::tests::test_simulator_creation::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   21:     0x5863c9f3e18b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   22:     0x5863c9f4b7f5 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   23:     0x5863c9f44bb4 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   24:     0x5863c9f4e952 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   25:     0x5863c9fdbd79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   26:     0x7abb002d107a - <unknown>
[INFO] [stdout]   27:     0x7abb00364534 - clone
[INFO] [stdout]   28:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- battery::simulation::tests::test_soc_update stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'battery::simulation::tests::test_soc_update' (1164) panicked at src/battery/simulation.rs:454:9:
[INFO] [stdout] assertion failed: state.electrical.soc < 50.0
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5863c9fdc4d1 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5863c9ff11ea - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x5863c9fe0fbc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5863c9fb8046 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5863c9fd4999 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x5863c9f4aea0 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5863c9fd4b52 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5863c9fb8124 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5863c9fb0509 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5863c9fb8dfd - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x5863c9ff194c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5863c9ff1912 - core[7c831bd917ebf35f]::panicking::panic
[INFO] [stdout]   12:     0x5863c9f3d223 - battsim2[7711702b7eeca3f3]::battery::simulation::tests::test_soc_update::{closure#0}
[INFO] [stdout]   13:     0x5863c9f33ad3 - <tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::Context>::enter::<core[7c831bd917ebf35f]::task::poll::Poll<()>, <tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5863c9f3bab9 - <std[104cf6e2632825ea]::thread::local::LocalKey<tokio[e27ced5cfdc79d34]::runtime::context::Context>>::with::<tokio[e27ced5cfdc79d34]::runtime::context::set_scheduler<(alloc[2fdc3f7464fcf288]::boxed::Box<tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::Core>, core[7c831bd917ebf35f]::option::Option<()>), <tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}, core[7c831bd917ebf35f]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[2fdc3f7464fcf288]::boxed::Box<tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::Core>, core[7c831bd917ebf35f]::option::Option<()>)>
[INFO] [stdout]   15:     0x5863c9f340d7 - <tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>
[INFO] [stdout]   16:     0x5863c9f38c57 - tokio[e27ced5cfdc79d34]::runtime::context::runtime::enter_runtime::<<tokio[e27ced5cfdc79d34]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]   17:     0x5863c9f3704a - <tokio[e27ced5cfdc79d34]::runtime::runtime::Runtime>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>
[INFO] [stdout]   18:     0x5863c9f3dd5b - battsim2[7711702b7eeca3f3]::battery::simulation::tests::test_soc_update
[INFO] [stdout]   19:     0x5863c9f36e89 - <battsim2[7711702b7eeca3f3]::battery::simulation::tests::test_soc_update::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   20:     0x5863c9f3e18b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   21:     0x5863c9f4b7f5 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   22:     0x5863c9f44bb4 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   23:     0x5863c9f4e952 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   24:     0x5863c9fdbd79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   25:     0x7abb002d107a - <unknown>
[INFO] [stdout]   26:     0x7abb00364534 - clone
[INFO] [stdout]   27:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     battery::simulation::tests::test_simulator_creation
[INFO] [stdout]     battery::simulation::tests::test_soc_update
[INFO] [stdout]     battery::state::tests::test_state_manager_creation
[INFO] [stdout]     modbus::registers::tests::test_register_mapping
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout] test result: FAILED. 6 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1", kill_on_drop: false }`
[INFO] [stdout] d4854907aaa0f1b65566340f59613d5e8868bcfa38157a5352a28bc004e871b1
