[INFO] fetching crate ecu_diagnostics 0.90.61...
[INFO] testing ecu_diagnostics-0.90.61 against 1.69.0 for beta-1.70-1
[INFO] extracting crate ecu_diagnostics 0.90.61 into /workspace/builds/worker-0-tc1/source
[INFO] validating manifest of crates.io crate ecu_diagnostics 0.90.61 on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate ecu_diagnostics 0.90.61
[INFO] finished tweaking crates.io crate ecu_diagnostics 0.90.61
[INFO] tweaked toml for crates.io crate ecu_diagnostics 0.90.61 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+1.69.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded shellexpand v2.1.2
[INFO] [stderr]   Downloaded try_from v0.2.2
[INFO] [stderr]   Downloaded embedded-can v0.3.0
[INFO] [stderr]   Downloaded socketcan v1.7.0
[INFO] [stderr]   Downloaded nix v0.5.1
[INFO] [stderr]   Downloaded j2534_rust v1.5.0
[INFO] [stderr]   Downloaded itertools v0.4.19
[INFO] [stderr]   Downloaded bitflags v0.4.0
[INFO] [stderr]   Downloaded socketcan-isotp v1.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d1791b9afe6de392a34b05efe0e232c5329826d43e3fe404cec23d4860e0b4cc
[INFO] running `Command { std: "docker" "start" "-a" "d1791b9afe6de392a34b05efe0e232c5329826d43e3fe404cec23d4860e0b4cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d1791b9afe6de392a34b05efe0e232c5329826d43e3fe404cec23d4860e0b4cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d1791b9afe6de392a34b05efe0e232c5329826d43e3fe404cec23d4860e0b4cc", kill_on_drop: false }`
[INFO] [stdout] d1791b9afe6de392a34b05efe0e232c5329826d43e3fe404cec23d4860e0b4cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 60b540dd934747abccb5875bebb0714e39203b33febe9e45d80250e432069668
[INFO] running `Command { std: "docker" "start" "-a" "60b540dd934747abccb5875bebb0714e39203b33febe9e45d80250e432069668", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.160
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling bitflags v0.4.0
[INFO] [stderr]    Compiling nb v1.1.0
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling try_from v0.2.2
[INFO] [stderr]    Compiling hex v0.2.0
[INFO] [stderr]    Compiling nix v0.5.1
[INFO] [stderr]    Compiling embedded-can v0.3.0
[INFO] [stderr]    Compiling itertools v0.4.19
[INFO] [stderr]    Compiling socketcan-isotp v1.0.1
[INFO] [stderr]    Compiling shellexpand v2.1.2
[INFO] [stderr]    Compiling j2534_rust v1.5.0
[INFO] [stderr]    Compiling libloading v0.7.4
[INFO] [stderr]    Compiling strum v0.24.1
[INFO] [stderr]    Compiling socketcan v1.7.0
[INFO] [stderr]    Compiling strum_macros v0.24.3
[INFO] [stderr]    Compiling serde_json v1.0.96
[INFO] [stderr]    Compiling ecu_diagnostics v0.90.61 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/channel.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn from(err: mpsc::RecvTimeoutError) -> Self {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `activity`
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:243:25
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let mut activity = false;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_activity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx`
[INFO] [stdout]    --> src/hardware/passthru/mod.rs:809:26
[INFO] [stdout]     |
[INFO] [stdout] 809 |         if let Some((tx, rx)) = self.cfg.extended_addresses {
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx`
[INFO] [stdout]    --> src/hardware/socketcan.rs:341:34
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 if let Some((tx, rx)) = self.cfg.extended_addresses {
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut can_cfg: Option<(u32, bool)> = None;
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   let mut can = channel.as_mut().unwrap();
[INFO] [stdout]     |                           ----^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let mut activity = false;
[INFO] [stdout]     |                     ----^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stop_filter_fn` is never read
[INFO] [stdout]    --> src/hardware/passthru/lib_funcs.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 76  | pub struct PassthruDrv {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |     stop_filter_fn: PassThruStopMsgFilterFn,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PassthruDrv` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop_msg_filter` is never used
[INFO] [stdout]    --> src/hardware/passthru/lib_funcs.rs:425:12
[INFO] [stdout]     |
[INFO] [stdout] 425 |     pub fn stop_msg_filter(&self, channel_id: u32, filter_id: u32) -> PassthruResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ClearRx` is never constructed
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum ChannelMessage<T, X> {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 16 |     ClearRx,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChannelMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ext_addr` is never read
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct IsoTpPayload {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub ext_addr: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_packet` is never used
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn parse_packet<'a>(cf: &'a CanFrame, iso_tp_ext: bool) -> (u32, &'a[u8]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/uds/scaling_data.rs:472:19
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub(crate) fn new(
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:126:21
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     tx_can_send_res.send(Ok(()));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:247:47
[INFO] [stdout]     |
[INFO] [stdout] 247 |                         for p in &incomming { tx_can_recv.send(*p); }
[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/hardware/passthru/sw_isotp.rs:266:45
[INFO] [stdout]     |
[INFO] [stdout] 266 | ...                   tx_isotp_recv.send((filter.1, data[1+pci_idx..1+pci_idx+pci_raw as usize].to_vec()));
[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/hardware/passthru/sw_isotp.rs:312:53
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   tx_isotp_recv.send((filter.1 ,rx.data.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/hardware/passthru/sw_isotp.rs:425:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |                 c.close();
[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: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 14.44s
[INFO] running `Command { std: "docker" "inspect" "60b540dd934747abccb5875bebb0714e39203b33febe9e45d80250e432069668", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "60b540dd934747abccb5875bebb0714e39203b33febe9e45d80250e432069668", kill_on_drop: false }`
[INFO] [stdout] 60b540dd934747abccb5875bebb0714e39203b33febe9e45d80250e432069668
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5709bbceecb63bc74313fe829b55471144527281dd033c001f740d6556bdc3a2
[INFO] running `Command { std: "docker" "start" "-a" "5709bbceecb63bc74313fe829b55471144527281dd033c001f740d6556bdc3a2", kill_on_drop: false }`
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/channel.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn from(err: mpsc::RecvTimeoutError) -> Self {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `activity`
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:243:25
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let mut activity = false;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_activity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx`
[INFO] [stdout]    --> src/hardware/passthru/mod.rs:809:26
[INFO] [stdout]     |
[INFO] [stdout] 809 |         if let Some((tx, rx)) = self.cfg.extended_addresses {
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx`
[INFO] [stdout]    --> src/hardware/socketcan.rs:341:34
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 if let Some((tx, rx)) = self.cfg.extended_addresses {
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut can_cfg: Option<(u32, bool)> = None;
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   let mut can = channel.as_mut().unwrap();
[INFO] [stdout]     |                           ----^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let mut activity = false;
[INFO] [stdout]     |                     ----^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stop_filter_fn` is never read
[INFO] [stdout]    --> src/hardware/passthru/lib_funcs.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 76  | pub struct PassthruDrv {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |     stop_filter_fn: PassThruStopMsgFilterFn,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PassthruDrv` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop_msg_filter` is never used
[INFO] [stdout]    --> src/hardware/passthru/lib_funcs.rs:425:12
[INFO] [stdout]     |
[INFO] [stdout] 425 |     pub fn stop_msg_filter(&self, channel_id: u32, filter_id: u32) -> PassthruResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ClearRx` is never constructed
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum ChannelMessage<T, X> {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 16 |     ClearRx,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChannelMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ext_addr` is never read
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct IsoTpPayload {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub ext_addr: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_packet` is never used
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn parse_packet<'a>(cf: &'a CanFrame, iso_tp_ext: bool) -> (u32, &'a[u8]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/uds/scaling_data.rs:472:19
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub(crate) fn new(
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:126:21
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     tx_can_send_res.send(Ok(()));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:247:47
[INFO] [stdout]     |
[INFO] [stdout] 247 |                         for p in &incomming { tx_can_recv.send(*p); }
[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/hardware/passthru/sw_isotp.rs:266:45
[INFO] [stdout]     |
[INFO] [stdout] 266 | ...                   tx_isotp_recv.send((filter.1, data[1+pci_idx..1+pci_idx+pci_raw as usize].to_vec()));
[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/hardware/passthru/sw_isotp.rs:312:53
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   tx_isotp_recv.send((filter.1 ,rx.data.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/hardware/passthru/sw_isotp.rs:425:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |                 c.close();
[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: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ecu_diagnostics v0.90.61 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/channel.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn from(err: mpsc::RecvTimeoutError) -> Self {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `activity`
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:243:25
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let mut activity = false;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_activity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx`
[INFO] [stdout]    --> src/hardware/passthru/mod.rs:809:26
[INFO] [stdout]     |
[INFO] [stdout] 809 |         if let Some((tx, rx)) = self.cfg.extended_addresses {
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rx`
[INFO] [stdout]    --> src/hardware/socketcan.rs:341:34
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 if let Some((tx, rx)) = self.cfg.extended_addresses {
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut can_cfg: Option<(u32, bool)> = None;
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:145:37
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   let mut can = channel.as_mut().unwrap();
[INFO] [stdout]     |                           ----^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let mut activity = false;
[INFO] [stdout]     |                     ----^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stop_filter_fn` is never read
[INFO] [stdout]    --> src/hardware/passthru/lib_funcs.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 76  | pub struct PassthruDrv {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |     stop_filter_fn: PassThruStopMsgFilterFn,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PassthruDrv` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop_msg_filter` is never used
[INFO] [stdout]    --> src/hardware/passthru/lib_funcs.rs:425:12
[INFO] [stdout]     |
[INFO] [stdout] 425 |     pub fn stop_msg_filter(&self, channel_id: u32, filter_id: u32) -> PassthruResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ClearRx` is never constructed
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum ChannelMessage<T, X> {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 16 |     ClearRx,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChannelMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ext_addr` is never read
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct IsoTpPayload {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub ext_addr: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_packet` is never used
[INFO] [stdout]   --> src/hardware/passthru/sw_isotp.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn parse_packet<'a>(cf: &'a CanFrame, iso_tp_ext: bool) -> (u32, &'a[u8]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_pid` is never used
[INFO] [stdout]   --> src/obd2/service01.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn print_pid(v: DiagServerResult<ObdValue>) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/uds/scaling_data.rs:472:19
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub(crate) fn new(
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:126:21
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     tx_can_send_res.send(Ok(()));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/hardware/passthru/sw_isotp.rs:247:47
[INFO] [stdout]     |
[INFO] [stdout] 247 |                         for p in &incomming { tx_can_recv.send(*p); }
[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/hardware/passthru/sw_isotp.rs:266:45
[INFO] [stdout]     |
[INFO] [stdout] 266 | ...                   tx_isotp_recv.send((filter.1, data[1+pci_idx..1+pci_idx+pci_raw as usize].to_vec()));
[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/hardware/passthru/sw_isotp.rs:312:53
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   tx_isotp_recv.send((filter.1 ,rx.data.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/hardware/passthru/sw_isotp.rs:425:17
[INFO] [stdout]     |
[INFO] [stdout] 425 |                 c.close();
[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/obd2/service01.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         obd.read_dtcs();
[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: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 3.04s
[INFO] running `Command { std: "docker" "inspect" "5709bbceecb63bc74313fe829b55471144527281dd033c001f740d6556bdc3a2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5709bbceecb63bc74313fe829b55471144527281dd033c001f740d6556bdc3a2", kill_on_drop: false }`
[INFO] [stdout] 5709bbceecb63bc74313fe829b55471144527281dd033c001f740d6556bdc3a2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4f8ebc525d9af190db1e2c383976ddad858342a4f6a2b9c038a7ee3997c07df7
[INFO] running `Command { std: "docker" "start" "-a" "4f8ebc525d9af190db1e2c383976ddad858342a4f6a2b9c038a7ee3997c07df7", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/channel.rs:95:13
[INFO] [stderr]    |
[INFO] [stderr] 95 |     fn from(err: mpsc::RecvTimeoutError) -> Self {
[INFO] [stderr]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `activity`
[INFO] [stderr]    --> src/hardware/passthru/sw_isotp.rs:243:25
[INFO] [stderr]     |
[INFO] [stderr] 243 |                 let mut activity = false;
[INFO] [stderr]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_activity`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rx`
[INFO] [stderr]    --> src/hardware/passthru/mod.rs:809:26
[INFO] [stderr]     |
[INFO] [stderr] 809 |         if let Some((tx, rx)) = self.cfg.extended_addresses {
[INFO] [stderr]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rx`
[INFO] [stderr]    --> src/hardware/socketcan.rs:341:34
[INFO] [stderr]     |
[INFO] [stderr] 341 |                 if let Some((tx, rx)) = self.cfg.extended_addresses {
[INFO] [stderr]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_rx`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/hardware/passthru/sw_isotp.rs:113:17
[INFO] [stderr]     |
[INFO] [stderr] 113 |             let mut can_cfg: Option<(u32, bool)> = None;
[INFO] [stderr]     |                 ----^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/hardware/passthru/sw_isotp.rs:145:37
[INFO] [stderr]     |
[INFO] [stderr] 145 | ...                   let mut can = channel.as_mut().unwrap();
[INFO] [stderr]     |                           ----^^^
[INFO] [stderr]     |                           |
[INFO] [stderr]     |                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/hardware/passthru/sw_isotp.rs:243:21
[INFO] [stderr]     |
[INFO] [stderr] 243 |                 let mut activity = false;
[INFO] [stderr]     |                     ----^^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field `stop_filter_fn` is never read
[INFO] [stderr]    --> src/hardware/passthru/lib_funcs.rs:100:5
[INFO] [stderr]     |
[INFO] [stderr] 76  | pub struct PassthruDrv {
[INFO] [stderr]     |            ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 100 |     stop_filter_fn: PassThruStopMsgFilterFn,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PassthruDrv` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `stop_msg_filter` is never used
[INFO] [stderr]    --> src/hardware/passthru/lib_funcs.rs:425:12
[INFO] [stderr]     |
[INFO] [stderr] 425 |     pub fn stop_msg_filter(&self, channel_id: u32, filter_id: u32) -> PassthruResult<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ClearRx` is never constructed
[INFO] [stderr]   --> src/hardware/passthru/sw_isotp.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | enum ChannelMessage<T, X> {
[INFO] [stderr]    |      -------------- variant in this enum
[INFO] [stderr] 16 |     ClearRx,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ChannelMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `ext_addr` is never read
[INFO] [stderr]   --> src/hardware/passthru/sw_isotp.rs:62:9
[INFO] [stderr]    |
[INFO] [stderr] 55 | struct IsoTpPayload {
[INFO] [stderr]    |        ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub ext_addr: bool,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_packet` is never used
[INFO] [stderr]   --> src/hardware/passthru/sw_isotp.rs:70:4
[INFO] [stderr]    |
[INFO] [stderr] 70 | fn parse_packet<'a>(cf: &'a CanFrame, iso_tp_ext: bool) -> (u32, &'a[u8]) {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/uds/scaling_data.rs:472:19
[INFO] [stderr]     |
[INFO] [stderr] 472 |     pub(crate) fn new(
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/hardware/passthru/sw_isotp.rs:126:21
[INFO] [stderr]     |
[INFO] [stderr] 126 |                     tx_can_send_res.send(Ok(()));
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/hardware/passthru/sw_isotp.rs:247:47
[INFO] [stderr]     |
[INFO] [stderr] 247 |                         for p in &incomming { tx_can_recv.send(*p); }
[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/hardware/passthru/sw_isotp.rs:266:45
[INFO] [stderr]     |
[INFO] [stderr] 266 | ...                   tx_isotp_recv.send((filter.1, data[1+pci_idx..1+pci_idx+pci_raw as usize].to_vec()));
[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/hardware/passthru/sw_isotp.rs:312:53
[INFO] [stderr]     |
[INFO] [stderr] 312 | ...                   tx_isotp_recv.send((filter.1 ,rx.data.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/hardware/passthru/sw_isotp.rs:425:17
[INFO] [stderr]     |
[INFO] [stderr] 425 |                 c.close();
[INFO] [stderr]     |                 ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_pid` is never used
[INFO] [stderr]   --> src/obd2/service01.rs:78:8
[INFO] [stderr]    |
[INFO] [stderr] 78 |     fn print_pid(v: DiagServerResult<ObdValue>) {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/obd2/service01.rs:123:9
[INFO] [stderr]     |
[INFO] [stderr] 123 |         obd.read_dtcs();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: `ecu_diagnostics` (lib) generated 18 warnings (run `cargo fix --lib -p ecu_diagnostics` to apply 7 suggestions)
[INFO] [stderr] warning: `ecu_diagnostics` (lib test) generated 20 warnings (18 duplicates)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ecu_diagnostics-10bdf0766ee026a6)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test obd2::service01::service_09_test::test_init ... ignored
[INFO] [stdout] test obd2::service09::service_09_test::test_init ... ignored
[INFO] [stdout] test dtc::test::test_dtc_parse_raw ... ok
[INFO] [stdout] test obd2::obd_test::test_pid_support_decoding ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ecu_diagnostics
[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" "4f8ebc525d9af190db1e2c383976ddad858342a4f6a2b9c038a7ee3997c07df7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f8ebc525d9af190db1e2c383976ddad858342a4f6a2b9c038a7ee3997c07df7", kill_on_drop: false }`
[INFO] [stdout] 4f8ebc525d9af190db1e2c383976ddad858342a4f6a2b9c038a7ee3997c07df7
