[INFO] cloning repository https://github.com/devel-hm/laser_controller
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/devel-hm/laser_controller" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevel-hm%2Flaser_controller", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevel-hm%2Flaser_controller'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cc5a2775821f509859d45501f59105cb11394197
[INFO] testing devel-hm/laser_controller against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevel-hm%2Flaser_controller" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/devel-hm/laser_controller
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/devel-hm/laser_controller
[INFO] tweaked toml for git repo https://github.com/devel-hm/laser_controller written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/devel-hm/laser_controller on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/devel-hm/laser_controller 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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 119a3c330453a5fcee9499ba1aeb61dc3c5907306fd5008415166504ca21da35
[INFO] running `Command { std: "docker" "start" "-a" "119a3c330453a5fcee9499ba1aeb61dc3c5907306fd5008415166504ca21da35", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "119a3c330453a5fcee9499ba1aeb61dc3c5907306fd5008415166504ca21da35", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "119a3c330453a5fcee9499ba1aeb61dc3c5907306fd5008415166504ca21da35", kill_on_drop: false }`
[INFO] [stdout] 119a3c330453a5fcee9499ba1aeb61dc3c5907306fd5008415166504ca21da35
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 51f0c06453eba2a0dbefad43a08ddf8de8fcf8fa7e1da0f48963446415c2fd19
[INFO] running `Command { std: "docker" "start" "-a" "51f0c06453eba2a0dbefad43a08ddf8de8fcf8fa7e1da0f48963446415c2fd19", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling mio v1.1.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling laser_controller v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Duration`, `Instant`, and `interval_at`
[INFO] [stdout]  --> src/adc_interface.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio::time::{interval_at, Duration, Instant};
[INFO] [stdout]   |                   ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/adc_interface.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         _ => {
[INFO] [stdout]     |                         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/adc_interface.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 211 |                         AdcFeedback::SetAmplitude(amplitude) => {
[INFO] [stdout]     |                         ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |                         AdcFeedback::SetFrequency(frequency) => {
[INFO] [stdout]     |                         ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 223 |                         _ => {
[INFO] [stdout]     |                         ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/adc_interface.rs:173:119
[INFO] [stdout]     |
[INFO] [stdout] 173 | ... adc_command_tx: BroadcastSender<ControlCommand>, mut dac_data_rx: Receiver<Vec<f32>>, runtime: Arc<Runtime>) -> Result<(), anyh...
[INFO] [stdout]     |                                                      ----^^^^^^^^^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sample_rate` is never read
[INFO] [stdout]    --> src/dac_interface.rs:94:31
[INFO] [stdout]     |
[INFO] [stdout]  94 |         let mut sample_rate = self.config.lock().await.sample_rate;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 122 |                             sample_rate = new_sample_rate;
[INFO] [stdout]     |                             ----------------------------- `sample_rate` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SetPhaseOffset` and `SetDefaultSampleArray` are never constructed
[INFO] [stdout]   --> src/dac_interface.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum DacCommand {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     SetPhaseOffset(f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 77 |     SetDefaultSampleArray(Vec<f32>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DacCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdcConfig` is never constructed
[INFO] [stdout]   --> src/adc_interface.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct AdcConfig {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/adc_interface.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl AdcConfig {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 34 |     fn new(sample_rate: f32, expected_amplitude: f32, expected_frequency: f32) -> Result<Self, anyhow::Error> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Adc` is never constructed
[INFO] [stdout]   --> src/adc_interface.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Adc {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdcSample` is never constructed
[INFO] [stdout]   --> src/adc_interface.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct AdcSample {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/adc_interface.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl AdcSample {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 59 |     fn new(amplitude: f32, frequency: f32) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `run`, and `process_samples` are never used
[INFO] [stdout]    --> src/adc_interface.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl Adc {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout]  68 |     fn new(config: Arc<Mutex<AdcConfig>>, command_rx: Receiver<AdcCommand>, adc_feedback_tx: Sender<AdcFeedback>, dac_data_rx: Rece...
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     async fn run(&mut self) {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     async fn process_samples(&self, samples: Vec<f32>) -> Result<AdcSample, anyhow::Error> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdcCommand` is never used
[INFO] [stdout]    --> src/adc_interface.rs:158:10
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub enum AdcCommand {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdcFeedback` is never used
[INFO] [stdout]    --> src/adc_interface.rs:168:10
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub enum AdcFeedback {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adc_interface` is never used
[INFO] [stdout]    --> src/adc_interface.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub async fn adc_interface(mut control_rx: Receiver<ControlCommand>, adc_command_tx: BroadcastSender<ControlCommand>, mut dac_data_...
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.84s
[INFO] running `Command { std: "docker" "inspect" "51f0c06453eba2a0dbefad43a08ddf8de8fcf8fa7e1da0f48963446415c2fd19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "51f0c06453eba2a0dbefad43a08ddf8de8fcf8fa7e1da0f48963446415c2fd19", kill_on_drop: false }`
[INFO] [stdout] 51f0c06453eba2a0dbefad43a08ddf8de8fcf8fa7e1da0f48963446415c2fd19
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 476f142805a71e9636ef1f6d7155757d0949e92f72b3025d5b5f3c6a6123f81c
[INFO] running `Command { std: "docker" "start" "-a" "476f142805a71e9636ef1f6d7155757d0949e92f72b3025d5b5f3c6a6123f81c", kill_on_drop: false }`
[INFO] [stdout] warning: unused imports: `Duration`, `Instant`, and `interval_at`
[INFO] [stdout]  --> src/adc_interface.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio::time::{interval_at, Duration, Instant};
[INFO] [stdout]   |                   ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/adc_interface.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         _ => {
[INFO] [stdout]     |                         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/adc_interface.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 211 |                         AdcFeedback::SetAmplitude(amplitude) => {
[INFO] [stdout]     |                         ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |                         AdcFeedback::SetFrequency(frequency) => {
[INFO] [stdout]     |                         ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 223 |                         _ => {
[INFO] [stdout]     |                         ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/adc_interface.rs:173:119
[INFO] [stdout]     |
[INFO] [stdout] 173 | ... adc_command_tx: BroadcastSender<ControlCommand>, mut dac_data_rx: Receiver<Vec<f32>>, runtime: Arc<Runtime>) -> Result<(), anyh...
[INFO] [stdout]     |                                                      ----^^^^^^^^^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sample_rate` is never read
[INFO] [stdout]    --> src/dac_interface.rs:94:31
[INFO] [stdout]     |
[INFO] [stdout]  94 |         let mut sample_rate = self.config.lock().await.sample_rate;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 122 |                             sample_rate = new_sample_rate;
[INFO] [stdout]     |                             ----------------------------- `sample_rate` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SetPhaseOffset` and `SetDefaultSampleArray` are never constructed
[INFO] [stdout]   --> src/dac_interface.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum DacCommand {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     SetPhaseOffset(f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 77 |     SetDefaultSampleArray(Vec<f32>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DacCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdcConfig` is never constructed
[INFO] [stdout]   --> src/adc_interface.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct AdcConfig {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/adc_interface.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl AdcConfig {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 34 |     fn new(sample_rate: f32, expected_amplitude: f32, expected_frequency: f32) -> Result<Self, anyhow::Error> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Adc` is never constructed
[INFO] [stdout]   --> src/adc_interface.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Adc {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdcSample` is never constructed
[INFO] [stdout]   --> src/adc_interface.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct AdcSample {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling laser_controller v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/adc_interface.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl AdcSample {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 59 |     fn new(amplitude: f32, frequency: f32) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `run`, and `process_samples` are never used
[INFO] [stdout]    --> src/adc_interface.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl Adc {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout]  68 |     fn new(config: Arc<Mutex<AdcConfig>>, command_rx: Receiver<AdcCommand>, adc_feedback_tx: Sender<AdcFeedback>, dac_data_rx: Rece...
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     async fn run(&mut self) {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     async fn process_samples(&self, samples: Vec<f32>) -> Result<AdcSample, anyhow::Error> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdcCommand` is never used
[INFO] [stdout]    --> src/adc_interface.rs:158:10
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub enum AdcCommand {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdcFeedback` is never used
[INFO] [stdout]    --> src/adc_interface.rs:168:10
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub enum AdcFeedback {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adc_interface` is never used
[INFO] [stdout]    --> src/adc_interface.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub async fn adc_interface(mut control_rx: Receiver<ControlCommand>, adc_command_tx: BroadcastSender<ControlCommand>, mut dac_data_...
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subscriber`
[INFO] [stdout]   --> examples/laser_controller.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let subscriber = FmtSubscriber::builder()
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscriber`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration`, `Instant`, and `interval_at`
[INFO] [stdout]  --> src/adc_interface.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio::time::{interval_at, Duration, Instant};
[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: `sleep`
[INFO] [stdout]    --> src/adc_interface.rs:259:33
[INFO] [stdout]     |
[INFO] [stdout] 259 |     use tokio::time::{Duration, sleep};
[INFO] [stdout]     |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/adc_interface.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 223 |                         _ => {
[INFO] [stdout]     |                         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/adc_interface.rs:223:25
[INFO] [stdout]     |
[INFO] [stdout] 211 |                         AdcFeedback::SetAmplitude(amplitude) => {
[INFO] [stdout]     |                         ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |                         AdcFeedback::SetFrequency(frequency) => {
[INFO] [stdout]     |                         ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 223 |                         _ => {
[INFO] [stdout]     |                         ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/adc_interface.rs:173:119
[INFO] [stdout]     |
[INFO] [stdout] 173 | ... adc_command_tx: BroadcastSender<ControlCommand>, mut dac_data_rx: Receiver<Vec<f32>>, runtime: Arc<Runtime>) -> Result<(), anyh...
[INFO] [stdout]     |                                                      ----^^^^^^^^^^^
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sample_rate` is never read
[INFO] [stdout]    --> src/dac_interface.rs:94:31
[INFO] [stdout]     |
[INFO] [stdout]  94 |         let mut sample_rate = self.config.lock().await.sample_rate;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 122 |                             sample_rate = new_sample_rate;
[INFO] [stdout]     |                             ----------------------------- `sample_rate` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `control_tx`
[INFO] [stdout]    --> src/adc_interface.rs:419:14
[INFO] [stdout]     |
[INFO] [stdout] 419 |         let (control_tx, control_rx) = mpsc::channel(4);
[INFO] [stdout]     |              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_control_tx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.89s
[INFO] running `Command { std: "docker" "inspect" "476f142805a71e9636ef1f6d7155757d0949e92f72b3025d5b5f3c6a6123f81c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "476f142805a71e9636ef1f6d7155757d0949e92f72b3025d5b5f3c6a6123f81c", kill_on_drop: false }`
[INFO] [stdout] 476f142805a71e9636ef1f6d7155757d0949e92f72b3025d5b5f3c6a6123f81c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5ef4c96729f1f47972679bcd8b809051e446a284f4bd337b6ea8a4865d2c12e5
[INFO] running `Command { std: "docker" "start" "-a" "5ef4c96729f1f47972679bcd8b809051e446a284f4bd337b6ea8a4865d2c12e5", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Duration`, `Instant`, and `interval_at`
[INFO] [stderr]  --> src/adc_interface.rs:5:19
[INFO] [stderr]   |
[INFO] [stderr] 5 | use tokio::time::{interval_at, Duration, Instant};
[INFO] [stderr]   |                   ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/adc_interface.rs:223:25
[INFO] [stderr]     |
[INFO] [stderr] 223 |                         _ => {
[INFO] [stderr]     |                         ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/adc_interface.rs:223:25
[INFO] [stderr]     |
[INFO] [stderr] 211 |                         AdcFeedback::SetAmplitude(amplitude) => {
[INFO] [stderr]     |                         ------------------------------------ matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 217 |                         AdcFeedback::SetFrequency(frequency) => {
[INFO] [stderr]     |                         ------------------------------------ matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 223 |                         _ => {
[INFO] [stderr]     |                         ^ collectively making this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/adc_interface.rs:173:119
[INFO] [stderr]     |
[INFO] [stderr] 173 | ... adc_command_tx: BroadcastSender<ControlCommand>, mut dac_data_rx: Receiver<Vec<f32>>, runtime: Arc<Runtime>) -> Result<(), anyh...
[INFO] [stderr]     |                                                      ----^^^^^^^^^^^
[INFO] [stderr]     |                                                      |
[INFO] [stderr]     |                                                      help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `sample_rate` is never read
[INFO] [stderr]    --> src/dac_interface.rs:94:31
[INFO] [stderr]     |
[INFO] [stderr]  94 |         let mut sample_rate = self.config.lock().await.sample_rate;
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 122 |                             sample_rate = new_sample_rate;
[INFO] [stderr]     |                             ----------------------------- `sample_rate` is overwritten here before the previous value is read
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variants `SetPhaseOffset` and `SetDefaultSampleArray` are never constructed
[INFO] [stderr]   --> src/dac_interface.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub enum DacCommand {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 76 |     SetPhaseOffset(f32),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 77 |     SetDefaultSampleArray(Vec<f32>),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DacCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AdcConfig` is never constructed
[INFO] [stderr]   --> src/adc_interface.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct AdcConfig {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/adc_interface.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 33 | impl AdcConfig {
[INFO] [stderr]    | -------------- associated function in this implementation
[INFO] [stderr] 34 |     fn new(sample_rate: f32, expected_amplitude: f32, expected_frequency: f32) -> Result<Self, anyhow::Error> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Adc` is never constructed
[INFO] [stderr]   --> src/adc_interface.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 44 | struct Adc {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AdcSample` is never constructed
[INFO] [stderr]   --> src/adc_interface.rs:53:8
[INFO] [stderr]    |
[INFO] [stderr] 53 | struct AdcSample {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/adc_interface.rs:59:8
[INFO] [stderr]    |
[INFO] [stderr] 58 | impl AdcSample {
[INFO] [stderr]    | -------------- associated function in this implementation
[INFO] [stderr] 59 |     fn new(amplitude: f32, frequency: f32) -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `run`, and `process_samples` are never used
[INFO] [stderr]    --> src/adc_interface.rs:68:8
[INFO] [stderr]     |
[INFO] [stderr]  67 | impl Adc {
[INFO] [stderr]     | -------- associated items in this implementation
[INFO] [stderr]  68 |     fn new(config: Arc<Mutex<AdcConfig>>, command_rx: Receiver<AdcCommand>, adc_feedback_tx: Sender<AdcFeedback>, dac_data_rx: Rece...
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr]  79 |     async fn run(&mut self) {
[INFO] [stderr]     |              ^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     async fn process_samples(&self, samples: Vec<f32>) -> Result<AdcSample, anyhow::Error> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AdcCommand` is never used
[INFO] [stderr]    --> src/adc_interface.rs:158:10
[INFO] [stderr]     |
[INFO] [stderr] 158 | pub enum AdcCommand {
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AdcFeedback` is never used
[INFO] [stderr]    --> src/adc_interface.rs:168:10
[INFO] [stderr]     |
[INFO] [stderr] 168 | pub enum AdcFeedback {
[INFO] [stderr]     |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `adc_interface` is never used
[INFO] [stderr]    --> src/adc_interface.rs:173:14
[INFO] [stderr]     |
[INFO] [stderr] 173 | pub async fn adc_interface(mut control_rx: Receiver<ControlCommand>, adc_command_tx: BroadcastSender<ControlCommand>, mut dac_data_...
[INFO] [stderr]     |              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sleep`
[INFO] [stderr]    --> src/adc_interface.rs:259:33
[INFO] [stderr]     |
[INFO] [stderr] 259 |     use tokio::time::{Duration, sleep};
[INFO] [stderr]     |                                 ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `control_tx`
[INFO] [stderr]    --> src/adc_interface.rs:419:14
[INFO] [stderr]     |
[INFO] [stderr] 419 |         let (control_tx, control_rx) = mpsc::channel(4);
[INFO] [stderr]     |              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_control_tx`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `laser_controller` (lib) generated 14 warnings (run `cargo fix --lib -p laser_controller` to apply 2 suggestions)
[INFO] [stderr] warning: `laser_controller` (lib test) generated 6 warnings (4 duplicates) (run `cargo fix --lib -p laser_controller --tests` to apply 2 suggestions)
[INFO] [stderr] warning: unused variable: `subscriber`
[INFO] [stderr]   --> examples/laser_controller.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let subscriber = FmtSubscriber::builder()
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscriber`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `laser_controller` (example "laser_controller") generated 1 warning (run `cargo fix --example "laser_controller" -p laser_controller` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/laser_controller-20ade8b2645ab6d3)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] [2m2026-05-04T15:27:51.831456Z[0m [31mERROR[0m [2mlaser_controller::dac_interface[0m[2m:[0m sample_array_default length must be equal to sample_count
[INFO] [stdout] test adc_interface::tests::test_adc_command_variants ... ok
[INFO] [stdout] [2m2026-05-04T15:27:51.832892Z[0m [31mERROR[0m [2mlaser_controller::dac_interface[0m[2m:[0m sample_count must be greater than 0
[INFO] [stdout] test adc_interface::tests::test_adc_config_default ... ok
[INFO] [stdout] test adc_interface::tests::test_adc_config_new ... ok
[INFO] [stdout] test adc_interface::tests::test_adc_process_samples_amplitude_calculation ... ok
[INFO] [stdout] test adc_interface::tests::test_adc_error_handling ... ok
[INFO] [stdout] test adc_interface::tests::test_adc_process_samples_correct_count ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_config_custom_array_valid ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_config_custom_array_length_mismatch ... ok
[INFO] [stdout] test adc_interface::tests::test_adc_sample_new ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_config_invalid_sample_rate ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_config_invalid_sample_count ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_config_new_valid ... ok
[INFO] [stdout] [2m2026-05-04T15:27:51.834100Z[0m [31mERROR[0m [2mlaser_controller::dac_interface[0m[2m:[0m sample_count must be less than or equal to sample_rate
[INFO] [stdout] test adc_interface::tests::test_adc_process_samples_success ... ok
[INFO] [stdout] test dac_interface::tests::test_sample_generation_sine_wave ... ok
[INFO] [stdout] test dac_interface::tests::test_timer_interval_calculation ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_config_default ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_config_sample_count_exceeds_rate ... ok
[INFO] [stdout] test dac_interface::tests::test_sample_generation_with_phase_offset ... ok
[INFO] [stdout] test dac_interface::tests::test_sample_generation_with_custom_array ... ok
[INFO] [stdout] test adc_interface::tests::test_adc_feedback_variants ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_command_variants ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_running_state ... ok
[INFO] [stdout] test dac_interface::tests::test_dac_command_handling ... ok
[INFO] [stdout] [2m2026-05-04T15:27:51.975074Z[0m [31mERROR[0m [2mlaser_controller::dac_interface::tests[0m[2m:[0m Broadcast receiver lagged by 994 messages
[INFO] [stdout] [2m2026-05-04T15:27:51.975150Z[0m [31mERROR[0m [2mlaser_controller::dac_interface::tests[0m[2m:[0m Broadcast receiver lagged by 4 messages
[INFO] [stdout] [2m2026-05-04T15:27:52.366677Z[0m [31mERROR[0m [2mlaser_controller::dac_interface::tests[0m[2m:[0m Broadcast receiver lagged by 2 messages
[INFO] [stdout] [2m2026-05-04T15:27:52.369188Z[0m [31mERROR[0m [2mlaser_controller::dac_interface::tests[0m[2m:[0m Broadcast receiver lagged by 3 messages
[INFO] [stdout] [2m2026-05-04T15:27:52.370527Z[0m [31mERROR[0m [2mlaser_controller::dac_interface::tests[0m[2m:[0m Broadcast receiver lagged by 1 messages
[INFO] [stdout] [2m2026-05-04T15:27:52.408558Z[0m [31mERROR[0m [2mlaser_controller::dac_interface::tests[0m[2m:[0m Broadcast receiver lagged by 1 messages
[INFO] [stdout] [2m2026-05-04T15:27:52.408611Z[0m [31mERROR[0m [2mlaser_controller::dac_interface::tests[0m[2m:[0m Broadcast receiver lagged by 3 messages
[INFO] [stdout] [2m2026-05-04T15:27:52.408625Z[0m [31mERROR[0m [2mlaser_controller::dac_interface::tests[0m[2m:[0m Broadcast receiver lagged by 1 messages
[INFO] [stdout] test dac_interface::tests::test_dac_interface_integration ... ok
[INFO] [stdout] test adc_interface::tests::test_adc_interface_creation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests laser_controller
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5ef4c96729f1f47972679bcd8b809051e446a284f4bd337b6ea8a4865d2c12e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ef4c96729f1f47972679bcd8b809051e446a284f4bd337b6ea8a4865d2c12e5", kill_on_drop: false }`
[INFO] [stdout] 5ef4c96729f1f47972679bcd8b809051e446a284f4bd337b6ea8a4865d2c12e5
