[INFO] cloning repository https://github.com/georgewhewell/farmbot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/georgewhewell/farmbot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeorgewhewell%2Ffarmbot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeorgewhewell%2Ffarmbot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e864d74e3454e671a5c31c717c623edb70debd87
[INFO] testing georgewhewell/farmbot against beta-2021-08-01 for beta-1.55-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeorgewhewell%2Ffarmbot" "/workspace/builds/worker-95/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-95/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/georgewhewell/farmbot on toolchain beta-2021-08-01
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/georgewhewell/farmbot
[INFO] finished tweaking git repo https://github.com/georgewhewell/farmbot
[INFO] tweaked toml for git repo https://github.com/georgewhewell/farmbot written to /workspace/builds/worker-95/source/Cargo.toml
[INFO] crate git repo https://github.com/georgewhewell/farmbot already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/icewind1991/btleplug.git`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sysfs_gpio v0.5.4
[INFO] [stderr]   Downloaded eeprom24x v0.3.0
[INFO] [stderr]   Downloaded embedded-hal v1.0.0-alpha.1
[INFO] [stderr]   Downloaded pwm-pca9685 v0.2.0
[INFO] [stderr]   Downloaded serde-hex v0.1.0
[INFO] [stderr]   Downloaded nix v0.12.1
[INFO] [stderr]   Downloaded bme280 v0.2.1
[INFO] [stderr]   Downloaded shared-bus v0.2.0
[INFO] [stderr]   Downloaded linux-embedded-hal v0.3.0
[INFO] [stderr]   Downloaded titlecase v1.1.0
[INFO] [stderr]   Downloaded winrt v0.6.0
[INFO] [stderr]   Downloaded mqtt4bytes v0.1.7
[INFO] [stderr]   Downloaded vl53l0x v0.3.1
[INFO] [stderr]   Downloaded rumqttc v0.0.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-95/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-95/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e01266bc4b75129795a55d42eaadb589865eff518f54ca5162f100a3b9b8597c
[INFO] running `Command { std: "docker" "start" "-a" "e01266bc4b75129795a55d42eaadb589865eff518f54ca5162f100a3b9b8597c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e01266bc4b75129795a55d42eaadb589865eff518f54ca5162f100a3b9b8597c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e01266bc4b75129795a55d42eaadb589865eff518f54ca5162f100a3b9b8597c", kill_on_drop: false }`
[INFO] [stdout] e01266bc4b75129795a55d42eaadb589865eff518f54ca5162f100a3b9b8597c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-95/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-95/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 230a34f63e2a8feef2b0049756a2ffa6dcc74274bf7f83fcd0d0d2d416560de8
[INFO] running `Command { std: "docker" "start" "-a" "230a34f63e2a8feef2b0049756a2ffa6dcc74274bf7f83fcd0d0d2d416560de8", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.77
[INFO] [stderr]    Compiling proc-macro2 v1.0.21
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling syn v1.0.41
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling once_cell v1.4.1
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.68
[INFO] [stderr]    Compiling cache-padded v1.1.1
[INFO] [stderr]    Compiling bumpalo v3.4.0
[INFO] [stderr]    Compiling fastrand v1.3.5
[INFO] [stderr]    Compiling nb v1.0.0
[INFO] [stderr]    Compiling waker-fn v1.1.0
[INFO] [stderr]    Compiling futures-io v0.3.5
[INFO] [stderr]    Compiling cc v1.0.60
[INFO] [stderr]    Compiling parking v2.0.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.68
[INFO] [stderr]    Compiling event-listener v2.4.0
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.116
[INFO] [stderr]    Compiling spin v0.5.2
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]    Compiling untrusted v0.7.1
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling atomic-waker v1.0.0
[INFO] [stderr]    Compiling parking v1.0.6
[INFO] [stderr]    Compiling serde v1.0.116
[INFO] [stderr]    Compiling getrandom v0.1.15
[INFO] [stderr]    Compiling winapi v0.3.9
[INFO] [stderr]    Compiling async-task v3.0.0
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling adler v0.2.3
[INFO] [stderr]    Compiling gimli v0.22.0
[INFO] [stderr]    Compiling bytes v0.5.6
[INFO] [stderr]    Compiling vec-arena v0.5.2
[INFO] [stderr]    Compiling scoped-tls v1.0.0
[INFO] [stderr]    Compiling object v0.20.0
[INFO] [stderr]    Compiling send_wrapper v0.4.0
[INFO] [stderr]    Compiling regex-syntax v0.6.18
[INFO] [stderr]    Compiling nix v0.12.1
[INFO] [stderr]    Compiling nodrop v0.1.14
[INFO] [stderr]    Compiling anyhow v1.0.32
[INFO] [stderr]    Compiling serde_json v1.0.57
[INFO] [stderr]    Compiling ppv-lite86 v0.2.9
[INFO] [stderr]    Compiling uuid v0.8.1
[INFO] [stderr]    Compiling termcolor v1.1.0
[INFO] [stderr]    Compiling itoa v0.4.6
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling miniz_oxide v0.4.2
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]    Compiling futures-channel v0.3.5
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]    Compiling async-mutex v1.3.0
[INFO] [stderr]    Compiling concurrent-queue v1.2.2
[INFO] [stderr]    Compiling nb v0.1.3
[INFO] [stderr]    Compiling array-init v0.0.4
[INFO] [stderr]    Compiling embedded-hal v0.2.4
[INFO] [stderr]    Compiling embedded-hal v1.0.0-alpha.1
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling aho-corasick v0.7.13
[INFO] [stderr]    Compiling nom v4.2.3
[INFO] [stderr]    Compiling shared-bus v0.2.0
[INFO] [stderr]    Compiling eeprom24x v0.3.0
[INFO] [stderr]    Compiling bme280 v0.2.1
[INFO] [stderr]    Compiling pwm-pca9685 v0.2.0
[INFO] [stderr]    Compiling async-channel v1.4.2
[INFO] [stderr]    Compiling multitask v0.2.0
[INFO] [stderr]    Compiling futures-lite v0.1.11
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling mqtt4bytes v0.1.7
[INFO] [stderr]    Compiling ring v0.16.15
[INFO] [stderr]    Compiling smallvec v0.6.13
[INFO] [stderr]    Compiling blocking v0.5.2
[INFO] [stderr]    Compiling blocking v0.4.7
[INFO] [stderr]    Compiling cast v0.2.3
[INFO] [stderr]    Compiling kv-log-macro v1.0.7
[INFO] [stderr]    Compiling log v0.3.9
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling net2 v0.2.35
[INFO] [stderr]    Compiling socket2 v0.3.15
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling polling v0.1.9
[INFO] [stderr]    Compiling signal-hook-registry v1.2.1
[INFO] [stderr]    Compiling ioctl-rs v0.1.6
[INFO] [stderr]    Compiling serial-core v0.4.0
[INFO] [stderr]    Compiling termios v0.2.2
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling winrt v0.6.0
[INFO] [stderr]    Compiling regex v1.3.9
[INFO] [stderr]    Compiling mio v0.6.22
[INFO] [stderr]    Compiling bytes v0.4.12
[INFO] [stderr]    Compiling serial-unix v0.4.0
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling async-io v0.1.11
[INFO] [stderr]    Compiling addr2line v0.13.0
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling async-executor v0.1.2
[INFO] [stderr]    Compiling mio-uds v0.6.8
[INFO] [stderr]    Compiling backtrace v0.3.50
[INFO] [stderr]    Compiling num-complex v0.1.43
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling enum_primitive v0.1.1
[INFO] [stderr]    Compiling num-bigint v0.1.44
[INFO] [stderr]    Compiling vl53l0x v0.3.1
[INFO] [stderr]    Compiling titlecase v1.1.0
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling num-rational v0.1.42
[INFO] [stderr]    Compiling num v0.1.42
[INFO] [stderr]    Compiling sct v0.6.0
[INFO] [stderr]    Compiling webpki v0.21.3
[INFO] [stderr]    Compiling rustls v0.17.0
[INFO] [stderr]    Compiling spidev v0.4.0
[INFO] [stderr]    Compiling sysfs_gpio v0.5.4
[INFO] [stderr]    Compiling i2cdev v0.4.4
[INFO] [stderr]    Compiling linux-embedded-hal v0.3.0
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.68
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.68
[INFO] [stderr]    Compiling tokio-macros v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.20
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.68
[INFO] [stderr]    Compiling tokio v0.2.22
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling thiserror v1.0.20
[INFO] [stderr]    Compiling js-sys v0.3.45
[INFO] [stderr]    Compiling web-sys v0.3.45
[INFO] [stderr]    Compiling tokio-rustls v0.13.1
[INFO] [stderr]    Compiling rumqttc v0.0.7
[INFO] [stderr]    Compiling gloo-timers v0.2.1
[INFO] [stderr]    Compiling futures-timer v3.0.2
[INFO] [stderr]    Compiling serde-hex v0.1.0
[INFO] [stderr]    Compiling toml v0.4.10
[INFO] [stderr]    Compiling async-std v1.6.3
[INFO] [stderr]    Compiling btleplug v0.4.0 (https://github.com/icewind1991/btleplug.git?branch=pass-le-discover-info#6152fd3b)
[INFO] [stderr]    Compiling farmbot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/farmbot/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]  --> src/farmbot/mod.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::anyhow`
[INFO] [stdout]  --> src/farmbot/tank.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::anyhow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `linux_embedded_hal::I2cdev`
[INFO] [stdout]  --> src/farmbot/tank.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use linux_embedded_hal::I2cdev;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/farmbot/tank.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]   --> src/farmbot/tank.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let raw = read()?;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/farmbot/tank.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(config: &config::FarmbotConfig) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `handle`
[INFO] [stdout]   --> src/farmbot/btle/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     handle: std::thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `i2cbus`
[INFO] [stdout]   --> src/farmbot/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     i2cbus: &'static BusManager<Mutex<I2cdev>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     farmbot.start_mqtt();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     farmbot.init_sensors();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     farmbot.start_btle();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     farmbot.run();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:111:33
[INFO] [stdout]     |
[INFO] [stdout] 111 | / ...                   pumps.send(PumpStartCommand {
[INFO] [stdout] 112 | | ...                       motor: pump,
[INFO] [stdout] 113 | | ...                       time: self.config.watering_seconds * 1000,
[INFO] [stdout] 114 | | ...                   });
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:218:17
[INFO] [stdout]     |
[INFO] [stdout] 218 |                 self.handle_miflora(data);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:226:33
[INFO] [stdout]     |
[INFO] [stdout] 226 | ...                   pc.send(cmd);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |             self.read_sensors();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |             self.farm();
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/farmbot/btle/mod.rs:67:33
[INFO] [stdout]    |
[INFO] [stdout] 67 | ...                   floradata.lock().unwrap().apply(b, sender.clone());
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/btle/miflora.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |             sender.send(merged);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/pumps.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |             self.run_motor(msg, sender.clone());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/pumps.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 | /         sender.send(PumpEvent {
[INFO] [stdout] 200 | |             pump: cmd.motor,
[INFO] [stdout] 201 | |             state: PumpState::ON,
[INFO] [stdout] 202 | |             total_seconds: self.motors[cmd.motor as usize].total_on.as_secs() as u32,
[INFO] [stdout] 203 | |         });
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/pumps.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         PumpController::write_eeprom(cmd.motor, new_secs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/pumps.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 | /         sender.send(PumpEvent {
[INFO] [stdout] 235 | |             pump: cmd.motor,
[INFO] [stdout] 236 | |             state: PumpState::OFF,
[INFO] [stdout] 237 | |             total_seconds: new_secs,
[INFO] [stdout] 238 | |         });
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/mqtt.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         self.sender.send(data);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/mqtt.rs:112:29
[INFO] [stdout]     |
[INFO] [stdout] 112 | / ...                   sender.send(MQTTCommand::PumpStartCommand {
[INFO] [stdout] 113 | | ...                       cmd: PumpStartCommand {
[INFO] [stdout] 114 | | ...                           motor: pump_num,
[INFO] [stdout] 115 | | ...                           time: 5000,
[INFO] [stdout] 116 | | ...                       },
[INFO] [stdout] 117 | | ...                   });
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 59.75s
[INFO] running `Command { std: "docker" "inspect" "230a34f63e2a8feef2b0049756a2ffa6dcc74274bf7f83fcd0d0d2d416560de8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "230a34f63e2a8feef2b0049756a2ffa6dcc74274bf7f83fcd0d0d2d416560de8", kill_on_drop: false }`
[INFO] [stdout] 230a34f63e2a8feef2b0049756a2ffa6dcc74274bf7f83fcd0d0d2d416560de8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-95/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-95/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2473979fa416445f2dfa9733c2d7fcaa18e21d7698c7b7d7a4317fcd011297ab
[INFO] running `Command { std: "docker" "start" "-a" "2473979fa416445f2dfa9733c2d7fcaa18e21d7698c7b7d7a4317fcd011297ab", kill_on_drop: false }`
[INFO] [stderr]    Compiling farmbot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/farmbot/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]  --> src/farmbot/mod.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::anyhow`
[INFO] [stdout]  --> src/farmbot/tank.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::anyhow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `linux_embedded_hal::I2cdev`
[INFO] [stdout]  --> src/farmbot/tank.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use linux_embedded_hal::I2cdev;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/farmbot/tank.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]   --> src/farmbot/tank.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let raw = read()?;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/farmbot/tank.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(config: &config::FarmbotConfig) -> Result<Self> {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `handle`
[INFO] [stdout]   --> src/farmbot/btle/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     handle: std::thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `i2cbus`
[INFO] [stdout]   --> src/farmbot/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     i2cbus: &'static BusManager<Mutex<I2cdev>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     farmbot.start_mqtt();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     farmbot.init_sensors();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     farmbot.start_btle();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     farmbot.run();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:111:33
[INFO] [stdout]     |
[INFO] [stdout] 111 | / ...                   pumps.send(PumpStartCommand {
[INFO] [stdout] 112 | | ...                       motor: pump,
[INFO] [stdout] 113 | | ...                       time: self.config.watering_seconds * 1000,
[INFO] [stdout] 114 | | ...                   });
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:218:17
[INFO] [stdout]     |
[INFO] [stdout] 218 |                 self.handle_miflora(data);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:226:33
[INFO] [stdout]     |
[INFO] [stdout] 226 | ...                   pc.send(cmd);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |             self.read_sensors();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/mod.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |             self.farm();
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/farmbot/btle/mod.rs:67:33
[INFO] [stdout]    |
[INFO] [stdout] 67 | ...                   floradata.lock().unwrap().apply(b, sender.clone());
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/btle/miflora.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |             sender.send(merged);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/pumps.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |             self.run_motor(msg, sender.clone());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/pumps.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 | /         sender.send(PumpEvent {
[INFO] [stdout] 200 | |             pump: cmd.motor,
[INFO] [stdout] 201 | |             state: PumpState::ON,
[INFO] [stdout] 202 | |             total_seconds: self.motors[cmd.motor as usize].total_on.as_secs() as u32,
[INFO] [stdout] 203 | |         });
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/pumps.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         PumpController::write_eeprom(cmd.motor, new_secs);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/farmbot/pumps.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 | /         sender.send(PumpEvent {
[INFO] [stdout] 235 | |             pump: cmd.motor,
[INFO] [stdout] 236 | |             state: PumpState::OFF,
[INFO] [stdout] 237 | |             total_seconds: new_secs,
[INFO] [stdout] 238 | |         });
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/mqtt.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         self.sender.send(data);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/mqtt.rs:112:29
[INFO] [stdout]     |
[INFO] [stdout] 112 | / ...                   sender.send(MQTTCommand::PumpStartCommand {
[INFO] [stdout] 113 | | ...                       cmd: PumpStartCommand {
[INFO] [stdout] 114 | | ...                           motor: pump_num,
[INFO] [stdout] 115 | | ...                           time: 5000,
[INFO] [stdout] 116 | | ...                       },
[INFO] [stdout] 117 | | ...                   });
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 4.80s
[INFO] running `Command { std: "docker" "inspect" "2473979fa416445f2dfa9733c2d7fcaa18e21d7698c7b7d7a4317fcd011297ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2473979fa416445f2dfa9733c2d7fcaa18e21d7698c7b7d7a4317fcd011297ab", kill_on_drop: false }`
[INFO] [stdout] 2473979fa416445f2dfa9733c2d7fcaa18e21d7698c7b7d7a4317fcd011297ab
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-95/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-95/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 2d331d541eb0c6e27fea29ac0828f9d7f53632b416e76d47a7f2971fd37a9735
[INFO] running `Command { std: "docker" "start" "-a" "2d331d541eb0c6e27fea29ac0828f9d7f53632b416e76d47a7f2971fd37a9735", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr] warning: unused import: `anyhow`
[INFO] [stderr]  --> src/farmbot/mod.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use anyhow::{anyhow, Result};
[INFO] [stderr]   |              ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Arc`
[INFO] [stderr]  --> src/farmbot/mod.rs:9:17
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `anyhow::anyhow`
[INFO] [stderr]  --> src/farmbot/tank.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use anyhow::anyhow;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `linux_embedded_hal::I2cdev`
[INFO] [stderr]  --> src/farmbot/tank.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use linux_embedded_hal::I2cdev;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]   --> src/farmbot/tank.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::thread;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `raw`
[INFO] [stderr]   --> src/farmbot/tank.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |         let raw = read()?;
[INFO] [stderr]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `config`
[INFO] [stderr]   --> src/farmbot/tank.rs:56:16
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub fn new(config: &config::FarmbotConfig) -> Result<Self> {
[INFO] [stderr]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `handle`
[INFO] [stderr]   --> src/farmbot/btle/mod.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     handle: std::thread::JoinHandle<()>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `i2cbus`
[INFO] [stderr]   --> src/farmbot/mod.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 34 |     i2cbus: &'static BusManager<Mutex<I2cdev>>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     farmbot.start_mqtt();
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     farmbot.init_sensors();
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     farmbot.start_btle();
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 |     farmbot.run();
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/mod.rs:111:33
[INFO] [stderr]     |
[INFO] [stderr] 111 | / ...                   pumps.send(PumpStartCommand {
[INFO] [stderr] 112 | | ...                       motor: pump,
[INFO] [stderr] 113 | | ...                       time: self.config.watering_seconds * 1000,
[INFO] [stderr] 114 | | ...                   });
[INFO] [stderr]     | |_________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/mod.rs:218:17
[INFO] [stderr]     |
[INFO] [stderr] 218 |                 self.handle_miflora(data);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/mod.rs:226:33
[INFO] [stderr]     |
[INFO] [stderr] 226 | ...                   pc.send(cmd);
[INFO] [stderr]     |                       ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/mod.rs:234:13
[INFO] [stderr]     |
[INFO] [stderr] 234 |             self.read_sensors();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/mod.rs:235:13
[INFO] [stderr]     |
[INFO] [stderr] 235 |             self.farm();
[INFO] [stderr]     |             ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/farmbot/btle/mod.rs:67:33
[INFO] [stderr]    |
[INFO] [stderr] 67 | ...                   floradata.lock().unwrap().apply(b, sender.clone());
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/btle/miflora.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |             sender.send(merged);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/pumps.rs:163:13
[INFO] [stderr]     |
[INFO] [stderr] 163 |             self.run_motor(msg, sender.clone());
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/pumps.rs:199:9
[INFO] [stderr]     |
[INFO] [stderr] 199 | /         sender.send(PumpEvent {
[INFO] [stderr] 200 | |             pump: cmd.motor,
[INFO] [stderr] 201 | |             state: PumpState::ON,
[INFO] [stderr] 202 | |             total_seconds: self.motors[cmd.motor as usize].total_on.as_secs() as u32,
[INFO] [stderr] 203 | |         });
[INFO] [stderr]     | |___________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/pumps.rs:231:9
[INFO] [stderr]     |
[INFO] [stderr] 231 |         PumpController::write_eeprom(cmd.motor, new_secs);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/farmbot/pumps.rs:234:9
[INFO] [stderr]     |
[INFO] [stderr] 234 | /         sender.send(PumpEvent {
[INFO] [stderr] 235 | |             pump: cmd.motor,
[INFO] [stderr] 236 | |             state: PumpState::OFF,
[INFO] [stderr] 237 | |             total_seconds: new_secs,
[INFO] [stderr] 238 | |         });
[INFO] [stderr]     | |___________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/mqtt.rs:89:9
[INFO] [stderr]    |
[INFO] [stderr] 89 |         self.sender.send(data);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/mqtt.rs:112:29
[INFO] [stderr]     |
[INFO] [stderr] 112 | / ...                   sender.send(MQTTCommand::PumpStartCommand {
[INFO] [stderr] 113 | | ...                       cmd: PumpStartCommand {
[INFO] [stderr] 114 | | ...                           motor: pump_num,
[INFO] [stderr] 115 | | ...                           time: 5000,
[INFO] [stderr] 116 | | ...                       },
[INFO] [stderr] 117 | | ...                   });
[INFO] [stderr]     | |_________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: `farmbot` (bin "farmbot" test) generated 26 warnings
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.98s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/farmbot-08479680e500308b)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test farmbot::btle::miflora::tests::test_extract_conductivity ... ok
[INFO] [stdout] test farmbot::btle::miflora::tests::test_extract_moisture ... ok
[INFO] [stdout] test farmbot::btle::miflora::tests::test_extract_illuminance ... ok
[INFO] [stdout] test farmbot::btle::miflora::tests::test_extract_temperature ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2d331d541eb0c6e27fea29ac0828f9d7f53632b416e76d47a7f2971fd37a9735", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2d331d541eb0c6e27fea29ac0828f9d7f53632b416e76d47a7f2971fd37a9735", kill_on_drop: false }`
[INFO] [stdout] 2d331d541eb0c6e27fea29ac0828f9d7f53632b416e76d47a7f2971fd37a9735
