[INFO] cloning repository https://github.com/TommyHaszard/gabber-chat-rust-lib [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TommyHaszard/gabber-chat-rust-lib" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTommyHaszard%2Fgabber-chat-rust-lib", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTommyHaszard%2Fgabber-chat-rust-lib'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fbf37b47a52322cdf7e4b1cae21f217b66502e79 [INFO] testing TommyHaszard/gabber-chat-rust-lib against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTommyHaszard%2Fgabber-chat-rust-lib" "/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/TommyHaszard/gabber-chat-rust-lib [INFO] finished tweaking git repo https://github.com/TommyHaszard/gabber-chat-rust-lib [INFO] tweaked toml for git repo https://github.com/TommyHaszard/gabber-chat-rust-lib written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/TommyHaszard/gabber-chat-rust-lib on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/TommyHaszard/gabber-chat-rust-lib 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded smawk v0.3.2 [INFO] [stderr] Downloaded uniffi_internal_macros v0.29.1 [INFO] [stderr] Downloaded uuid v1.16.0 [INFO] [stderr] Downloaded uniffi_meta v0.29.1 [INFO] [stderr] Downloaded scroll_derive v0.12.0 [INFO] [stderr] Downloaded cargo_metadata v0.15.4 [INFO] [stderr] Downloaded fs-err v2.11.0 [INFO] [stderr] Downloaded chacha20 v0.9.1 [INFO] [stderr] Downloaded poly1305 v0.8.0 [INFO] [stderr] Downloaded chacha20poly1305 v0.10.1 [INFO] [stderr] Downloaded clap v4.5.41 [INFO] [stderr] Downloaded rinja_derive v0.3.5 [INFO] [stderr] Downloaded uniffi_core v0.29.1 [INFO] [stderr] Downloaded uniffi_macros v0.29.1 [INFO] [stderr] Downloaded uniffi_bindgen v0.29.1 [INFO] [stderr] Downloaded clap_builder v4.5.41 [INFO] [stderr] Downloaded rusqlite v0.35.0 [INFO] [stderr] Downloaded goblin v0.8.2 [INFO] [stderr] Downloaded basic-toml v0.1.10 [INFO] [stderr] Downloaded rinja_parser v0.3.5 [INFO] [stderr] Downloaded rinja v0.3.5 [INFO] [stderr] Downloaded x25519-dalek v2.0.1 [INFO] [stderr] Downloaded r2d2_sqlite v0.28.0 [INFO] [stderr] Downloaded uniffi v0.29.1 [INFO] [stderr] Downloaded scroll v0.12.0 [INFO] [stderr] Downloaded uniffi_build v0.29.1 [INFO] [stderr] Downloaded weedle2 v5.0.0 [INFO] [stderr] Downloaded uniffi_udl v0.29.1 [INFO] [stderr] Downloaded libsqlite3-sys v0.33.0 [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5c334267b53e9f8d7f41d501ab13cca4162222ca4318f17ce6e3e97a355627c8 [INFO] running `Command { std: "docker" "start" "-a" "5c334267b53e9f8d7f41d501ab13cca4162222ca4318f17ce6e3e97a355627c8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5c334267b53e9f8d7f41d501ab13cca4162222ca4318f17ce6e3e97a355627c8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c334267b53e9f8d7f41d501ab13cca4162222ca4318f17ce6e3e97a355627c8", kill_on_drop: false }` [INFO] [stdout] 5c334267b53e9f8d7f41d501ab13cca4162222ca4318f17ce6e3e97a355627c8 [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9e16e088e080915472a754c83ed697054ee61b7590af7f4f2ce662fc7216d32f [INFO] running `Command { std: "docker" "start" "-a" "9e16e088e080915472a754c83ed697054ee61b7590af7f4f2ce662fc7216d32f", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling smawk v0.3.2 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling fs-err v2.11.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Compiling camino v1.1.9 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling glob v0.3.2 [INFO] [stderr] Compiling cc v1.2.10 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling bitflags v2.9.0 [INFO] [stderr] Compiling hashbrown v0.15.2 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling weedle2 v5.0.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustix v1.0.3 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling clap_builder v4.5.41 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling virtue v0.0.18 [INFO] [stderr] Compiling linux-raw-sys v0.9.3 [INFO] [stderr] Compiling scheduled-thread-pool v0.2.7 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling rand v0.9.0 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling uniffi_core v0.29.1 [INFO] [stderr] Compiling r2d2 v0.8.10 [INFO] [stderr] Compiling poly1305 v0.8.0 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling unty v0.0.4 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling bincode_derive v2.0.1 [INFO] [stderr] Compiling uuid v1.16.0 [INFO] [stderr] Compiling libsqlite3-sys v0.33.0 [INFO] [stderr] Compiling chrono v0.4.40 [INFO] [stderr] Compiling tempfile v3.19.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling uniffi_internal_macros v0.29.1 [INFO] [stderr] Compiling scroll_derive v0.12.0 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling uniffi_meta v0.29.1 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling scroll v0.12.0 [INFO] [stderr] Compiling uniffi_udl v0.29.1 [INFO] [stderr] Compiling chacha20 v0.9.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling chacha20poly1305 v0.10.1 [INFO] [stderr] Compiling goblin v0.8.2 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling clap v4.5.41 [INFO] [stderr] Compiling basic-toml v0.1.10 [INFO] [stderr] Compiling rinja_parser v0.3.5 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Compiling cargo-platform v0.1.9 [INFO] [stderr] Compiling bincode v2.0.1 [INFO] [stderr] Compiling rusqlite v0.35.0 [INFO] [stderr] Compiling cargo_metadata v0.15.4 [INFO] [stderr] Compiling r2d2_sqlite v0.28.0 [INFO] [stderr] Compiling uniffi_macros v0.29.1 [INFO] [stderr] Compiling x25519-dalek v2.0.1 [INFO] [stderr] Compiling rinja_derive v0.3.5 [INFO] [stderr] Compiling rinja v0.3.5 [INFO] [stderr] Compiling uniffi_bindgen v0.29.1 [INFO] [stderr] Compiling uniffi v0.29.1 [INFO] [stderr] Compiling uniffi_build v0.29.1 [INFO] [stderr] Compiling gabber-chat-lib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:8:31 [INFO] [stdout] | [INFO] [stdout] 8 | use x25519_dalek::{PublicKey, StaticSecret}; [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: `hmac::digest::typenum::Mod` [INFO] [stdout] --> src/libs/core/models.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use hmac::digest::typenum::Mod; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::DatabaseError` [INFO] [stdout] --> src/libs/core/models.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::DatabaseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Payload` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:44 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug` and `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:16:45 [INFO] [stdout] | [INFO] [stdout] 16 | use x25519_dalek::{PublicKey, SharedSecret, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Connection` [INFO] [stdout] --> src/libs/storage/database/database.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{Connection, Result}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::OnceCell` [INFO] [stdout] --> src/libs/storage/database/database.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::OnceCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/libs/storage/database/database.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Mutex, Once, OnceLock}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage` and `StoreError` [INFO] [stdout] --> src/libs/storage/database/database.rs:6:54 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::libs::storage::database::storage_traits::{Storage, StoreError, Transactional}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection` and `Error` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Error, OptionalExtension, Result, Transaction}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bincode::config::standard` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bincode::config::standard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::params` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use rusqlite::params; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt` and `format` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{fmt, format}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::storage::database::storage_traits::StoreError::Database` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::libs::storage::database::storage_traits::StoreError::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::uniffi::models::Message` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::libs::uniffi::models::Message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DHKeyGenerator` [INFO] [stdout] --> src/libs/storage/records.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage`, `Transactional`, and `UserStore` [INFO] [stdout] --> src/lib.rs:6:47 [INFO] [stdout] | [INFO] [stdout] 6 | use libs::storage::database::storage_traits::{Storage, Transactional, UserStore}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Digest` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use sha2::{Digest, Sha256}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | let bob_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_user_record` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | mut dh_key_pair_gen: &mut DHKeyGen, [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: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut alice_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let alice_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_user_record` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let mut bob_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cks` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | cks: Option, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut chain_manager = SessionChainManager::default(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dhr` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:229:21 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(dhr) = self.dhr { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dhr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nhk` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | let (rk, cks, nhk) = kdf_rk_he(shared_root_key, &dh).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_nhk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:170:30 [INFO] [stdout] | [INFO] [stdout] 170 | let (header, check) = self.try_decrypt_he(&header_enc)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_check` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | header: &CipherText, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_text` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | cipher_text: &CipherText, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `associated_data` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | associated_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_associated_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/libs/storage/database/database.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | if let Some(db) = DATABASE.get() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/libs/storage/database/database.rs:173:42 [INFO] [stdout] | [INFO] [stdout] 173 | sqlite_transaction.commit().map_err(|err| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:17 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_from` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | message_from: &IdentityKey, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `public_key` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:442:32 [INFO] [stdout] | [INFO] [stdout] 442 | fn save_message(&mut self, public_key: &PublicKeyInternal, message: MessageRecord) -> Result<(), StoreError> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_public_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/lib.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | .map_err(|err| DatabaseError::RetrievalError("Try from Slice Error".to_string()))?; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const KEY_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IDENTITY_KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const IDENTITY_KEY_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `QR_KEYS_EXPECTED_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const QR_KEYS_EXPECTED_SIZE: usize = KEY_SIZE * 2 + IDENTITY_KEY_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChatInitError` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum ChatInitError { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn serialize_keys(key1: &Uuid, key2: &PublicKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deserialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn deserialize_keys(data: &[u8]) -> Result<(IdentityKey, PublicKey, KeySecret), ChatInitError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn bob_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn alice_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn alice_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn bob_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_HEADER_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const HKDF_INFO_ENCRYPTION_HEADER_KEY: &[u8] = b"ENCRYPTION_HEADER_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HmacSha256` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:29:6 [INFO] [stdout] | [INFO] [stdout] 29 | type HmacSha256 = Hmac; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const HKDF_INFO_ENCRYPTION_KEY: &[u8] = b"ENCRYPTION_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SECRET_LEN` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const KEY_SECRET_LEN: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `next_header_key_send` is never read [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct DoubleRatchetHE { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 85 | next_header_key_send: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DoubleRatchetHE` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kdf_ck_he` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn kdf_ck_he(chain_key: &KeySecret) -> Result<(KeySecret, KeySecret), DoubleRatchetError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INIT` is never used [INFO] [stdout] --> src/libs/storage/database/database.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | static INIT: Once = Once::new(); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_pub_key_from_bytes` is never used [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:464:4 [INFO] [stdout] | [INFO] [stdout] 464 | fn get_pub_key_from_bytes(pk_bytes: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `ChatLib` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `chat_lib` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:301:13 [INFO] [stdout] | [INFO] [stdout] 301 | self.dh_ratchet(&header, dh_key_generator); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 301 | let _ = self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:172:21 [INFO] [stdout] | [INFO] [stdout] 172 | self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 172 | let _ = self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | self.dh_ratchet(&header); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 173 | let _ = self.dh_ratchet(&header); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | self.skip_message_keys_he(header.message_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 176 | let _ = self.skip_message_keys_he(header.message_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 27 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 42 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 57 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 79 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 109 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 126 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 138 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s [INFO] running `Command { std: "docker" "inspect" "9e16e088e080915472a754c83ed697054ee61b7590af7f4f2ce662fc7216d32f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9e16e088e080915472a754c83ed697054ee61b7590af7f4f2ce662fc7216d32f", kill_on_drop: false }` [INFO] [stdout] 9e16e088e080915472a754c83ed697054ee61b7590af7f4f2ce662fc7216d32f [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b283d69b1d1db1ca639aae2b97a37f5b59c1e3b1ab1dfd88999f57e4c1702c7f [INFO] running `Command { std: "docker" "start" "-a" "b283d69b1d1db1ca639aae2b97a37f5b59c1e3b1ab1dfd88999f57e4c1702c7f", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:8:31 [INFO] [stdout] | [INFO] [stdout] 8 | use x25519_dalek::{PublicKey, StaticSecret}; [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: `hmac::digest::typenum::Mod` [INFO] [stdout] --> src/libs/core/models.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use hmac::digest::typenum::Mod; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::DatabaseError` [INFO] [stdout] --> src/libs/core/models.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::DatabaseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Payload` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:44 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug` and `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:16:45 [INFO] [stdout] | [INFO] [stdout] 16 | use x25519_dalek::{PublicKey, SharedSecret, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Connection` [INFO] [stdout] --> src/libs/storage/database/database.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{Connection, Result}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::OnceCell` [INFO] [stdout] --> src/libs/storage/database/database.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::OnceCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/libs/storage/database/database.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Mutex, Once, OnceLock}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage` and `StoreError` [INFO] [stdout] --> src/libs/storage/database/database.rs:6:54 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::libs::storage::database::storage_traits::{Storage, StoreError, Transactional}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection` and `Error` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Error, OptionalExtension, Result, Transaction}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bincode::config::standard` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bincode::config::standard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::params` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use rusqlite::params; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt` and `format` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{fmt, format}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::storage::database::storage_traits::StoreError::Database` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::libs::storage::database::storage_traits::StoreError::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::uniffi::models::Message` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::libs::uniffi::models::Message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DHKeyGenerator` [INFO] [stdout] --> src/libs/storage/records.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage`, `Transactional`, and `UserStore` [INFO] [stdout] --> src/lib.rs:6:47 [INFO] [stdout] | [INFO] [stdout] 6 | use libs::storage::database::storage_traits::{Storage, Transactional, UserStore}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Digest` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use sha2::{Digest, Sha256}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | let bob_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_user_record` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | mut dh_key_pair_gen: &mut DHKeyGen, [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: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut alice_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let alice_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_user_record` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let mut bob_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cks` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | cks: Option, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut chain_manager = SessionChainManager::default(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dhr` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:229:21 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(dhr) = self.dhr { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dhr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nhk` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | let (rk, cks, nhk) = kdf_rk_he(shared_root_key, &dh).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_nhk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:170:30 [INFO] [stdout] | [INFO] [stdout] 170 | let (header, check) = self.try_decrypt_he(&header_enc)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_check` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | header: &CipherText, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_text` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | cipher_text: &CipherText, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `associated_data` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | associated_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_associated_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/libs/storage/database/database.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | if let Some(db) = DATABASE.get() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/libs/storage/database/database.rs:173:42 [INFO] [stdout] | [INFO] [stdout] 173 | sqlite_transaction.commit().map_err(|err| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:17 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_from` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | message_from: &IdentityKey, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `public_key` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:442:32 [INFO] [stdout] | [INFO] [stdout] 442 | fn save_message(&mut self, public_key: &PublicKeyInternal, message: MessageRecord) -> Result<(), StoreError> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_public_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/lib.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | .map_err(|err| DatabaseError::RetrievalError("Try from Slice Error".to_string()))?; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const KEY_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IDENTITY_KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const IDENTITY_KEY_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `QR_KEYS_EXPECTED_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const QR_KEYS_EXPECTED_SIZE: usize = KEY_SIZE * 2 + IDENTITY_KEY_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChatInitError` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum ChatInitError { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn serialize_keys(key1: &Uuid, key2: &PublicKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deserialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn deserialize_keys(data: &[u8]) -> Result<(IdentityKey, PublicKey, KeySecret), ChatInitError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn bob_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn alice_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn alice_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn bob_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_HEADER_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const HKDF_INFO_ENCRYPTION_HEADER_KEY: &[u8] = b"ENCRYPTION_HEADER_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HmacSha256` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:29:6 [INFO] [stdout] | [INFO] [stdout] 29 | type HmacSha256 = Hmac; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const HKDF_INFO_ENCRYPTION_KEY: &[u8] = b"ENCRYPTION_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SECRET_LEN` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const KEY_SECRET_LEN: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `next_header_key_send` is never read [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct DoubleRatchetHE { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 85 | next_header_key_send: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DoubleRatchetHE` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kdf_ck_he` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn kdf_ck_he(chain_key: &KeySecret) -> Result<(KeySecret, KeySecret), DoubleRatchetError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INIT` is never used [INFO] [stdout] --> src/libs/storage/database/database.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | static INIT: Once = Once::new(); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_pub_key_from_bytes` is never used [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:464:4 [INFO] [stdout] | [INFO] [stdout] 464 | fn get_pub_key_from_bytes(pk_bytes: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `ChatLib` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `chat_lib` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:301:13 [INFO] [stdout] | [INFO] [stdout] 301 | self.dh_ratchet(&header, dh_key_generator); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 301 | let _ = self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:172:21 [INFO] [stdout] | [INFO] [stdout] 172 | self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 172 | let _ = self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | self.dh_ratchet(&header); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 173 | let _ = self.dh_ratchet(&header); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | self.skip_message_keys_he(header.message_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 176 | let _ = self.skip_message_keys_he(header.message_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 27 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 42 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 57 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 79 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 109 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 126 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 138 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling gabber-chat-lib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `rusqlite::Connection` [INFO] [stdout] --> tests/common/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rusqlite::Connection; [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: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stdout] --> tests/common/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> tests/database.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UserRecord` [INFO] [stdout] --> tests/database.rs:13:54 [INFO] [stdout] | [INFO] [stdout] 13 | use ChatLib::libs::storage::records::{SessionRecord, UserRecord}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChatLib::*` [INFO] [stdout] --> tests/database.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use ChatLib::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chacha20poly1305::aead::rand_core::RngCore` [INFO] [stdout] --> tests/integration_test.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::aead::rand_core::RngCore; [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: `DHKeyGenerator` [INFO] [stdout] --> tests/integration_test.rs:5:49 [INFO] [stdout] | [INFO] [stdout] 5 | use ChatLib::libs::encryption::double_ratchet::{DHKeyGenerator, RealKeyGenerator}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::Connection` [INFO] [stdout] --> tests/common/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rusqlite::Connection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stdout] --> tests/common/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_ad` [INFO] [stdout] --> tests/database.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | let alice_ad = b"ALICE_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_ad` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/database.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice` [INFO] [stdout] --> tests/database.rs:67:14 [INFO] [stdout] | [INFO] [stdout] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | let mut real_gen = RealKeyGenerator::new(); [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: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:67:10 [INFO] [stdout] | [INFO] [stdout] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [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] --> tests/database.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_ad` [INFO] [stdout] --> tests/database.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | let alice_ad = b"ALICE_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/database.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 166 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice` [INFO] [stdout] --> tests/database.rs:168:14 [INFO] [stdout] | [INFO] [stdout] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | let mut real_gen = RealKeyGenerator::new(); [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] --> tests/database.rs:168:10 [INFO] [stdout] | [INFO] [stdout] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [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] --> tests/database.rs:168:21 [INFO] [stdout] | [INFO] [stdout] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/integration_test.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | tx_1.commit(); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 54 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | tx_2.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 78 | let _ = tx_2.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 103 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | tx_2.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 118 | let _ = tx_2.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | tx_2.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 179 | let _ = tx_2.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | init_database(db_path.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 32 | let _ = init_database(db_path.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/integration_test.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [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: unused variable: `bob_ad` [INFO] [stdout] --> tests/integration_test.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:8:31 [INFO] [stdout] | [INFO] [stdout] 8 | use x25519_dalek::{PublicKey, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/integration_test.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [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] --> tests/integration_test.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | let mut bob_session_retrieved2 = tx_5 [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/integration_test.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hmac::digest::typenum::Mod` [INFO] [stdout] --> src/libs/core/models.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use hmac::digest::typenum::Mod; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::DatabaseError` [INFO] [stdout] --> src/libs/core/models.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::DatabaseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Payload` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:44 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug` and `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:16:45 [INFO] [stdout] | [INFO] [stdout] 16 | use x25519_dalek::{PublicKey, SharedSecret, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Connection` [INFO] [stdout] --> src/libs/storage/database/database.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{Connection, Result}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::OnceCell` [INFO] [stdout] --> src/libs/storage/database/database.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::OnceCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/integration_test.rs:249:21 [INFO] [stdout] | [INFO] [stdout] 249 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [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] --> tests/integration_test.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | let mut bob_session_retrieved2 = tx_5 [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/libs/storage/database/database.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Mutex, Once, OnceLock}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage` and `StoreError` [INFO] [stdout] --> src/libs/storage/database/database.rs:6:54 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::libs::storage::database::storage_traits::{Storage, StoreError, Transactional}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection` and `Error` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Error, OptionalExtension, Result, Transaction}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bincode::config::standard` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bincode::config::standard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::params` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use rusqlite::params; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt` and `format` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{fmt, format}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::storage::database::storage_traits::StoreError::Database` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::libs::storage::database::storage_traits::StoreError::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::uniffi::models::Message` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::libs::uniffi::models::Message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DHKeyGenerator` [INFO] [stdout] --> src/libs/storage/records.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage`, `Transactional`, and `UserStore` [INFO] [stdout] --> src/lib.rs:6:47 [INFO] [stdout] | [INFO] [stdout] 6 | use libs::storage::database::storage_traits::{Storage, Transactional, UserStore}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | tx_1.commit(); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 36 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 102 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 102 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 132 | let _ = tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | tx_3.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 133 | let _ = tx_3.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | tx_4.store_session(&bob_session_retrieved); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 167 | let _ = tx_4.store_session(&bob_session_retrieved); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | tx_4.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 168 | let _ = tx_4.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 185 | tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 185 | let _ = tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 186 | tx_5.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 186 | let _ = tx_5.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 236 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:266:5 [INFO] [stdout] | [INFO] [stdout] 266 | tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 266 | let _ = tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:267:5 [INFO] [stdout] | [INFO] [stdout] 267 | tx_3.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 267 | let _ = tx_3.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | tx_4.store_session(&bob_session_retrieved); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 301 | let _ = tx_4.store_session(&bob_session_retrieved); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:302:5 [INFO] [stdout] | [INFO] [stdout] 302 | tx_4.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 302 | let _ = tx_4.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:320:5 [INFO] [stdout] | [INFO] [stdout] 320 | tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 320 | let _ = tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | tx_5.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 321 | let _ = tx_5.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | init_database(db_path.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 32 | let _ = init_database(db_path.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::Connection` [INFO] [stdout] --> tests/common/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rusqlite::Connection; [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: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stdout] --> tests/common/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::rngs::OsRng` [INFO] [stdout] --> tests/ratchet_encryption.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use rand::rngs::OsRng; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::TryRngCore` [INFO] [stdout] --> tests/ratchet_encryption.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::TryRngCore; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> tests/ratchet_encryption.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice` [INFO] [stdout] --> tests/ratchet_encryption.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 29 | let (mut alice, mut bob) = ratchet_init(real_gen); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/ratchet_encryption.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | let (mut alice, mut bob) = ratchet_init(real_gen); [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: function `aaa_init` is never used [INFO] [stdout] --> tests/common/mod.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn aaa_init(init: &Once, dir: &str, prefix: &str) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cleanup_test_db` is never used [INFO] [stdout] --> tests/common/mod.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn cleanup_test_db(sqlite_transaction: SqliteTransaction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | init_database(db_path.clone()); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 32 | let _ = init_database(db_path.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chacha20poly1305::aead::rand_core::RngCore` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::aead::rand_core::RngCore; [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: `DHKeyGenerator` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:9:49 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet, RealKeyGenerator}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::Connection` [INFO] [stdout] --> tests/common/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rusqlite::Connection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stdout] --> tests/common/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: renamed to `rng` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:177:25 [INFO] [stdout] | [INFO] [stdout] 177 | let mut rng = rand::thread_rng(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024. [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:209:39 [INFO] [stdout] | [INFO] [stdout] 209 | let message_type = if rng.gen() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | let mut real_gen = RealKeyGenerator::new(); [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: unused variable: `alice` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:246:10 [INFO] [stdout] | [INFO] [stdout] 246 | let (alice, bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:245:9 [INFO] [stdout] | [INFO] [stdout] 245 | let mut real_gen = RealKeyGenerator::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:375:10 [INFO] [stdout] | [INFO] [stdout] 375 | for (i, message) in messages_to_send.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:482:9 [INFO] [stdout] | [INFO] [stdout] 482 | let mut tx = SqliteTransaction::new(connection).expect("Failed to create cleanup transaction"); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `bob_ad` is never read [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 24 | struct TestData { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | bob_ad: &'static [u8], [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_user_creation_and_session_management` is never used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:241:4 [INFO] [stdout] | [INFO] [stdout] 241 | fn test_user_creation_and_session_management() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_message_storage_and_encryption` is never used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:276:4 [INFO] [stdout] | [INFO] [stdout] 276 | fn test_message_storage_and_encryption() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_session_state_persistence` is never used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:427:4 [INFO] [stdout] | [INFO] [stdout] 427 | fn test_session_state_persistence() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cleanup_test_db_connection` is never used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:481:4 [INFO] [stdout] | [INFO] [stdout] 481 | fn cleanup_test_db_connection(connection: &mut PooledConnection) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cleanup_test_db` is never used [INFO] [stdout] --> tests/common/mod.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn cleanup_test_db(sqlite_transaction: SqliteTransaction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | tx.commit(); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 75 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 90 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | tx.store_message(public_key, message_type, content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 106 | let _ = tx.store_message(public_key, message_type, content); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 107 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 121 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 135 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 135 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | tx.store_session(session); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 149 | let _ = tx.store_session(session); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 150 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | init_database(db_path.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 32 | let _ = init_database(db_path.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Digest` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use sha2::{Digest, Sha256}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | let bob_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_user_record` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | mut dh_key_pair_gen: &mut DHKeyGen, [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: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut alice_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let alice_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_user_record` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let mut bob_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cks` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | cks: Option, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut chain_manager = SessionChainManager::default(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dhr` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:229:21 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(dhr) = self.dhr { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dhr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nhk` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | let (rk, cks, nhk) = kdf_rk_he(shared_root_key, &dh).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_nhk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:170:30 [INFO] [stdout] | [INFO] [stdout] 170 | let (header, check) = self.try_decrypt_he(&header_enc)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_check` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | header: &CipherText, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_text` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | cipher_text: &CipherText, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `associated_data` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | associated_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_associated_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/libs/storage/database/database.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | if let Some(db) = DATABASE.get() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/libs/storage/database/database.rs:173:42 [INFO] [stdout] | [INFO] [stdout] 173 | sqlite_transaction.commit().map_err(|err| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:17 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_from` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | message_from: &IdentityKey, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `public_key` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:442:32 [INFO] [stdout] | [INFO] [stdout] 442 | fn save_message(&mut self, public_key: &PublicKeyInternal, message: MessageRecord) -> Result<(), StoreError> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_public_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/lib.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | .map_err(|err| DatabaseError::RetrievalError("Try from Slice Error".to_string()))?; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const KEY_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IDENTITY_KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const IDENTITY_KEY_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `QR_KEYS_EXPECTED_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const QR_KEYS_EXPECTED_SIZE: usize = KEY_SIZE * 2 + IDENTITY_KEY_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChatInitError` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum ChatInitError { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn serialize_keys(key1: &Uuid, key2: &PublicKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deserialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn deserialize_keys(data: &[u8]) -> Result<(IdentityKey, PublicKey, KeySecret), ChatInitError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn bob_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn alice_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn alice_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn bob_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_HEADER_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const HKDF_INFO_ENCRYPTION_HEADER_KEY: &[u8] = b"ENCRYPTION_HEADER_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HmacSha256` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:29:6 [INFO] [stdout] | [INFO] [stdout] 29 | type HmacSha256 = Hmac; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const HKDF_INFO_ENCRYPTION_KEY: &[u8] = b"ENCRYPTION_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SECRET_LEN` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const KEY_SECRET_LEN: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `next_header_key_send` is never read [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct DoubleRatchetHE { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 85 | next_header_key_send: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DoubleRatchetHE` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kdf_ck_he` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn kdf_ck_he(chain_key: &KeySecret) -> Result<(KeySecret, KeySecret), DoubleRatchetError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INIT` is never used [INFO] [stdout] --> src/libs/storage/database/database.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | static INIT: Once = Once::new(); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_pub_key_from_bytes` is never used [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:464:4 [INFO] [stdout] | [INFO] [stdout] 464 | fn get_pub_key_from_bytes(pk_bytes: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:301:13 [INFO] [stdout] | [INFO] [stdout] 301 | self.dh_ratchet(&header, dh_key_generator); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 301 | let _ = self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:172:21 [INFO] [stdout] | [INFO] [stdout] 172 | self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 172 | let _ = self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | self.dh_ratchet(&header); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 173 | let _ = self.dh_ratchet(&header); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | self.skip_message_keys_he(header.message_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 176 | let _ = self.skip_message_keys_he(header.message_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 27 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 42 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 57 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 79 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 109 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 126 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 138 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 3.44s [INFO] running `Command { std: "docker" "inspect" "b283d69b1d1db1ca639aae2b97a37f5b59c1e3b1ab1dfd88999f57e4c1702c7f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b283d69b1d1db1ca639aae2b97a37f5b59c1e3b1ab1dfd88999f57e4c1702c7f", kill_on_drop: false }` [INFO] [stdout] b283d69b1d1db1ca639aae2b97a37f5b59c1e3b1ab1dfd88999f57e4c1702c7f [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9138696f69ee9cca96ebd3b1f74902389b2b68db75930f8832d6e1aae0793694 [INFO] running `Command { std: "docker" "start" "-a" "9138696f69ee9cca96ebd3b1f74902389b2b68db75930f8832d6e1aae0793694", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `StaticSecret` [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:8:31 [INFO] [stderr] | [INFO] [stderr] 8 | use x25519_dalek::{PublicKey, StaticSecret}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `hmac::digest::typenum::Mod` [INFO] [stderr] --> src/libs/core/models.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use hmac::digest::typenum::Mod; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::DatabaseError` [INFO] [stderr] --> src/libs/core/models.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::DatabaseError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AeadCore` [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:2:24 [INFO] [stderr] | [INFO] [stderr] 2 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Key` [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | use hmac::digest::{Key, KeyInit}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `format` [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:10:16 [INFO] [stderr] | [INFO] [stderr] 10 | use std::fmt::{format, Debug, Formatter}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr::write` [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::ptr::write; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Payload` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:5:44 [INFO] [stderr] | [INFO] [stderr] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AeadCore` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:6:24 [INFO] [stderr] | [INFO] [stderr] 6 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Key` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:8:20 [INFO] [stderr] | [INFO] [stderr] 8 | use hmac::digest::{Key, KeyInit}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Debug` and `format` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | use std::fmt::{format, Debug, Formatter}; [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr::write` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use std::ptr::write; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `StaticSecret` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:16:45 [INFO] [stderr] | [INFO] [stderr] 16 | use x25519_dalek::{PublicKey, SharedSecret, StaticSecret}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Connection` [INFO] [stderr] --> src/libs/storage/database/database.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use rusqlite::{Connection, Result}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::OnceCell` [INFO] [stderr] --> src/libs/storage/database/database.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::cell::OnceCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Mutex` [INFO] [stderr] --> src/libs/storage/database/database.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::sync::{Mutex, Once, OnceLock}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Storage` and `StoreError` [INFO] [stderr] --> src/libs/storage/database/database.rs:6:54 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::libs::storage::database::storage_traits::{Storage, StoreError, Transactional}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Connection` and `Error` [INFO] [stderr] --> src/libs/storage/database/storage_sqllite.rs:15:24 [INFO] [stderr] | [INFO] [stderr] 15 | use rusqlite::{params, Connection, Error, OptionalExtension, Result, Transaction}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `bincode::config::standard` [INFO] [stderr] --> src/libs/storage/database/storage_traits.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use bincode::config::standard; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rusqlite::params` [INFO] [stderr] --> src/libs/storage/database/storage_traits.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use rusqlite::params; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `fmt` and `format` [INFO] [stderr] --> src/libs/storage/database/storage_traits.rs:8:11 [INFO] [stderr] | [INFO] [stderr] 8 | use std::{fmt, format}; [INFO] [stderr] | ^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stderr] --> src/libs/storage/database/storage_traits.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use x25519_dalek::PublicKey; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::libs::storage::database::storage_traits::StoreError::Database` [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::libs::storage::database::storage_traits::StoreError::Database; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::format` [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fmt::format; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use x25519_dalek::PublicKey; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::libs::uniffi::models::Message` [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use crate::libs::uniffi::models::Message; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `DHKeyGenerator` [INFO] [stderr] --> src/libs/storage/records.rs:2:47 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Storage`, `Transactional`, and `UserStore` [INFO] [stderr] --> src/lib.rs:6:47 [INFO] [stderr] | [INFO] [stderr] 6 | use libs::storage::database::storage_traits::{Storage, Transactional, UserStore}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Buffer` [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:1:36 [INFO] [stderr] | [INFO] [stderr] 1 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Digest` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:11:12 [INFO] [stderr] | [INFO] [stderr] 11 | use sha2::{Digest, Sha256}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Buffer` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:5:36 [INFO] [stderr] | [INFO] [stderr] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bob_user_record` [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | let bob_user_record = UserRecord::new( [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_user_record` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | mut dh_key_pair_gen: &mut DHKeyGen, [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: variable does not need to be mutable [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | let mut alice_double_ratchet = [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `alice_user_record` [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | let alice_user_record = UserRecord::new( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_user_record` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | let mut bob_double_ratchet = [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cks` [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | cks: Option, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cks` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:207:13 [INFO] [stderr] | [INFO] [stderr] 207 | let mut chain_manager = SessionChainManager::default(); [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dhr` [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:229:21 [INFO] [stderr] | [INFO] [stderr] 229 | if let Some(dhr) = self.dhr { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_dhr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `nhk` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:98:23 [INFO] [stderr] | [INFO] [stderr] 98 | let (rk, cks, nhk) = kdf_rk_he(shared_root_key, &dh).unwrap(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_nhk` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `check` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:170:30 [INFO] [stderr] | [INFO] [stderr] 170 | let (header, check) = self.try_decrypt_he(&header_enc)?; [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_check` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `header` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:199:9 [INFO] [stderr] | [INFO] [stderr] 199 | header: &CipherText, [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cipher_text` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | cipher_text: &CipherText, [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_text` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `associated_data` [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | associated_data: &[u8], [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_associated_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `db` [INFO] [stderr] --> src/libs/storage/database/database.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | if let Some(db) = DATABASE.get() { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/libs/storage/database/database.rs:173:42 [INFO] [stderr] | [INFO] [stderr] 173 | sqlite_transaction.commit().map_err(|err| { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stmt` [INFO] [stderr] --> src/libs/storage/database/storage_sqllite.rs:189:17 [INFO] [stderr] | [INFO] [stderr] 189 | let mut stmt = self.tx.prepare( [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `message_from` [INFO] [stderr] --> src/libs/storage/database/storage_sqllite.rs:187:9 [INFO] [stderr] | [INFO] [stderr] 187 | message_from: &IdentityKey, [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_from` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/libs/storage/database/storage_sqllite.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | let mut stmt = self.tx.prepare( [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `public_key` [INFO] [stderr] --> src/libs/storage/database/storage_sqllite.rs:442:32 [INFO] [stderr] | [INFO] [stderr] 442 | fn save_message(&mut self, public_key: &PublicKeyInternal, message: MessageRecord) -> Result<(), StoreError> { [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_public_key` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/lib.rs:151:19 [INFO] [stderr] | [INFO] [stderr] 151 | .map_err(|err| DatabaseError::RetrievalError("Try from Slice Error".to_string()))?; [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stderr] [INFO] [stderr] warning: constant `KEY_SIZE` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:11:7 [INFO] [stderr] | [INFO] [stderr] 11 | const KEY_SIZE: usize = 32; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: constant `IDENTITY_KEY_SIZE` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:12:7 [INFO] [stderr] | [INFO] [stderr] 12 | const IDENTITY_KEY_SIZE: usize = 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `QR_KEYS_EXPECTED_SIZE` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:13:7 [INFO] [stderr] | [INFO] [stderr] 13 | const QR_KEYS_EXPECTED_SIZE: usize = KEY_SIZE * 2 + IDENTITY_KEY_SIZE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `ChatInitError` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | pub enum ChatInitError { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `serialize_keys` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:27:4 [INFO] [stderr] | [INFO] [stderr] 27 | fn serialize_keys(key1: &Uuid, key2: &PublicKey) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `deserialize_keys` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:34:4 [INFO] [stderr] | [INFO] [stderr] 34 | fn deserialize_keys(data: &[u8]) -> Result<(IdentityKey, PublicKey, KeySecret), ChatInitError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `bob_generate_qr_data` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:57:4 [INFO] [stderr] | [INFO] [stderr] 57 | fn bob_generate_qr_data( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `alice_init_from_qr_data` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:67:4 [INFO] [stderr] | [INFO] [stderr] 67 | fn alice_init_from_qr_data( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `alice_generate_qr_data` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:87:4 [INFO] [stderr] | [INFO] [stderr] 87 | fn alice_generate_qr_data( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `bob_init_from_qr_data` is never used [INFO] [stderr] --> src/libs/core/chat_initalisation.rs:94:4 [INFO] [stderr] | [INFO] [stderr] 94 | fn bob_init_from_qr_data( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `HKDF_INFO_ENCRYPTION_HEADER_KEY` is never used [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:21:7 [INFO] [stderr] | [INFO] [stderr] 21 | const HKDF_INFO_ENCRYPTION_HEADER_KEY: &[u8] = b"ENCRYPTION_HEADER_KEY"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `HmacSha256` is never used [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:29:6 [INFO] [stderr] | [INFO] [stderr] 29 | type HmacSha256 = Hmac; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `HKDF_INFO_ENCRYPTION_KEY` is never used [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:51:7 [INFO] [stderr] | [INFO] [stderr] 51 | const HKDF_INFO_ENCRYPTION_KEY: &[u8] = b"ENCRYPTION_KEY"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `KEY_SECRET_LEN` is never used [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:53:7 [INFO] [stderr] | [INFO] [stderr] 53 | const KEY_SECRET_LEN: usize = 32; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `next_header_key_send` is never read [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 57 | pub struct DoubleRatchetHE { [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 85 | next_header_key_send: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `DoubleRatchetHE` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `kdf_ck_he` is never used [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:304:4 [INFO] [stderr] | [INFO] [stderr] 304 | fn kdf_ck_he(chain_key: &KeySecret) -> Result<(KeySecret, KeySecret), DoubleRatchetError> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `INIT` is never used [INFO] [stderr] --> src/libs/storage/database/database.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | static INIT: Once = Once::new(); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_pub_key_from_bytes` is never used [INFO] [stderr] --> src/libs/storage/database/storage_sqllite.rs:464:4 [INFO] [stderr] | [INFO] [stderr] 464 | fn get_pub_key_from_bytes(pk_bytes: Vec) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `ChatLib` should have a snake case name [INFO] [stderr] | [INFO] [stderr] = help: convert the identifier to snake case: `chat_lib` [INFO] [stderr] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/encryption/double_ratchet.rs:301:13 [INFO] [stderr] | [INFO] [stderr] 301 | self.dh_ratchet(&header, dh_key_generator); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 301 | let _ = self.dh_ratchet(&header, dh_key_generator); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:172:21 [INFO] [stderr] | [INFO] [stderr] 172 | self.skip_message_keys_he(header.prev_chain_number); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 172 | let _ = self.skip_message_keys_he(header.prev_chain_number); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:173:21 [INFO] [stderr] | [INFO] [stderr] 173 | self.dh_ratchet(&header); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 173 | let _ = self.dh_ratchet(&header); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/encryption/double_ratchet_header.rs:176:17 [INFO] [stderr] | [INFO] [stderr] 176 | self.skip_message_keys_he(header.message_number); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 176 | let _ = self.skip_message_keys_he(header.message_number); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/libs/storage/database/storage_sqllite.rs:32:18 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn inner(&self) -> &Transaction { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] | | || [INFO] [stderr] | | |the same lifetime is hidden here [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 32 | pub fn inner(&self) -> &Transaction<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | sqlite_transaction.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 27 | let _ = sqlite_transaction.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | sqlite_transaction.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 42 | let _ = sqlite_transaction.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | sqlite_transaction.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 57 | let _ = sqlite_transaction.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | sqlite_transaction.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 79 | let _ = sqlite_transaction.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:94:5 [INFO] [stderr] | [INFO] [stderr] 94 | sqlite_transaction.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 94 | let _ = sqlite_transaction.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | sqlite_transaction.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 109 | let _ = sqlite_transaction.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | sqlite_transaction.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 126 | let _ = sqlite_transaction.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/libs/storage/lib_sqlite_impl.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | sqlite_transaction.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 138 | let _ = sqlite_transaction.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `gabber-chat-lib` (lib) generated 84 warnings (run `cargo fix --lib -p gabber-chat-lib` to apply 35 suggestions) [INFO] [stderr] warning: `gabber-chat-lib` (lib test) generated 83 warnings (83 duplicates) [INFO] [stderr] warning: unused import: `rusqlite::Connection` [INFO] [stderr] --> tests/common/mod.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use rusqlite::Connection; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stderr] --> tests/common/mod.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `uuid::Uuid` [INFO] [stderr] --> tests/database.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use uuid::Uuid; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `UserRecord` [INFO] [stderr] --> tests/database.rs:13:54 [INFO] [stderr] | [INFO] [stderr] 13 | use ChatLib::libs::storage::records::{SessionRecord, UserRecord}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ChatLib::*` [INFO] [stderr] --> tests/database.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use ChatLib::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `alice_ad` [INFO] [stderr] --> tests/database.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | let alice_ad = b"ALICE_ASSOCIATED_DATA"; [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_ad` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bob_ad` [INFO] [stderr] --> tests/database.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `alice` [INFO] [stderr] --> tests/database.rs:67:14 [INFO] [stderr] | [INFO] [stderr] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/database.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | let mut real_gen = RealKeyGenerator::new(); [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: variable does not need to be mutable [INFO] [stderr] --> tests/database.rs:67:10 [INFO] [stderr] | [INFO] [stderr] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/database.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `alice_ad` [INFO] [stderr] --> tests/database.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | let alice_ad = b"ALICE_ASSOCIATED_DATA"; [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_ad` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bob_ad` [INFO] [stderr] --> tests/database.rs:166:9 [INFO] [stderr] | [INFO] [stderr] 166 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `alice` [INFO] [stderr] --> tests/database.rs:168:14 [INFO] [stderr] | [INFO] [stderr] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/database.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | let mut real_gen = RealKeyGenerator::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/database.rs:168:10 [INFO] [stderr] | [INFO] [stderr] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/database.rs:168:21 [INFO] [stderr] | [INFO] [stderr] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/database.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | tx_1.commit(); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 54 | let _ = tx_1.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/database.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | tx_2.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 78 | let _ = tx_2.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/database.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | tx_1.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 103 | let _ = tx_1.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/database.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | tx_2.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 118 | let _ = tx_2.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/database.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | tx_1.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 155 | let _ = tx_1.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/database.rs:179:5 [INFO] [stderr] | [INFO] [stderr] 179 | tx_2.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 179 | let _ = tx_2.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/common/mod.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | init_database(db_path.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 32 | let _ = init_database(db_path.clone()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/common/mod.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::rngs::OsRng` [INFO] [stderr] --> tests/ratchet_encryption.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use rand::rngs::OsRng; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::TryRngCore` [INFO] [stderr] --> tests/ratchet_encryption.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use rand::TryRngCore; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> tests/ratchet_encryption.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `alice` [INFO] [stderr] --> tests/ratchet_encryption.rs:29:14 [INFO] [stderr] | [INFO] [stderr] 29 | let (mut alice, mut bob) = ratchet_init(real_gen); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/ratchet_encryption.rs:29:10 [INFO] [stderr] | [INFO] [stderr] 29 | let (mut alice, mut bob) = ratchet_init(real_gen); [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: function `aaa_init` is never used [INFO] [stderr] --> tests/common/mod.rs:13:8 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn aaa_init(init: &Once, dir: &str, prefix: &str) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `cleanup_test_db` is never used [INFO] [stderr] --> tests/common/mod.rs:39:8 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn cleanup_test_db(sqlite_transaction: SqliteTransaction) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/common/mod.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | init_database(db_path.clone()); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 32 | let _ = init_database(db_path.clone()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused import: `chacha20poly1305::aead::rand_core::RngCore` [INFO] [stderr] --> tests/integration_test.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use chacha20poly1305::aead::rand_core::RngCore; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `DHKeyGenerator` [INFO] [stderr] --> tests/integration_test.rs:5:49 [INFO] [stderr] | [INFO] [stderr] 5 | use ChatLib::libs::encryption::double_ratchet::{DHKeyGenerator, RealKeyGenerator}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rusqlite::Connection` [INFO] [stderr] --> tests/common/mod.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use rusqlite::Connection; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bob_ad` [INFO] [stderr] --> tests/integration_test.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/integration_test.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [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: unused variable: `bob_ad` [INFO] [stderr] --> tests/integration_test.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/integration_test.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/integration_test.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | let mut bob_session_retrieved2 = tx_5 [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bob_ad` [INFO] [stderr] --> tests/integration_test.rs:247:9 [INFO] [stderr] | [INFO] [stderr] 247 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/integration_test.rs:249:21 [INFO] [stderr] | [INFO] [stderr] 249 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/integration_test.rs:307:9 [INFO] [stderr] | [INFO] [stderr] 307 | let mut bob_session_retrieved2 = tx_5 [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | tx_1.commit(); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 36 | let _ = tx_1.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | tx_1.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 102 | let _ = tx_1.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:132:5 [INFO] [stderr] | [INFO] [stderr] 132 | tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 132 | let _ = tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | tx_3.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 133 | let _ = tx_3.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | tx_4.store_session(&bob_session_retrieved); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 167 | let _ = tx_4.store_session(&bob_session_retrieved); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:168:5 [INFO] [stderr] | [INFO] [stderr] 168 | tx_4.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 168 | let _ = tx_4.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 185 | let _ = tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:186:5 [INFO] [stderr] | [INFO] [stderr] 186 | tx_5.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 186 | let _ = tx_5.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:236:5 [INFO] [stderr] | [INFO] [stderr] 236 | tx_1.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 236 | let _ = tx_1.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:266:5 [INFO] [stderr] | [INFO] [stderr] 266 | tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 266 | let _ = tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:267:5 [INFO] [stderr] | [INFO] [stderr] 267 | tx_3.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 267 | let _ = tx_3.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:301:5 [INFO] [stderr] | [INFO] [stderr] 301 | tx_4.store_session(&bob_session_retrieved); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 301 | let _ = tx_4.store_session(&bob_session_retrieved); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:302:5 [INFO] [stderr] | [INFO] [stderr] 302 | tx_4.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 302 | let _ = tx_4.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:320:5 [INFO] [stderr] | [INFO] [stderr] 320 | tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 320 | let _ = tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/integration_test.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | tx_5.commit(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 321 | let _ = tx_5.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused import: `chacha20poly1305::aead::rand_core::RngCore` [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use chacha20poly1305::aead::rand_core::RngCore; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `DHKeyGenerator` [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:9:49 [INFO] [stderr] | [INFO] [stderr] 9 | use ChatLib::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet, RealKeyGenerator}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: renamed to `rng` [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:177:25 [INFO] [stderr] | [INFO] [stderr] 177 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024. [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:209:39 [INFO] [stderr] | [INFO] [stderr] 209 | let message_type = if rng.gen() { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | let mut real_gen = RealKeyGenerator::new(); [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: unused variable: `alice` [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:246:10 [INFO] [stderr] | [INFO] [stderr] 246 | let (alice, bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | let mut real_gen = RealKeyGenerator::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:375:10 [INFO] [stderr] | [INFO] [stderr] 375 | for (i, message) in messages_to_send.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:482:9 [INFO] [stderr] | [INFO] [stderr] 482 | let mut tx = SqliteTransaction::new(connection).expect("Failed to create cleanup transaction"); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field `bob_ad` is never read [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 24 | struct TestData { [INFO] [stderr] | -------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 29 | bob_ad: &'static [u8], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `test_user_creation_and_session_management` is never used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:241:4 [INFO] [stderr] | [INFO] [stderr] 241 | fn test_user_creation_and_session_management() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `test_message_storage_and_encryption` is never used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:276:4 [INFO] [stderr] | [INFO] [stderr] 276 | fn test_message_storage_and_encryption() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `test_session_state_persistence` is never used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:427:4 [INFO] [stderr] | [INFO] [stderr] 427 | fn test_session_state_persistence() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `cleanup_test_db_connection` is never used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:481:4 [INFO] [stderr] | [INFO] [stderr] 481 | fn cleanup_test_db_connection(connection: &mut PooledConnection) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | tx.commit(); [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)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 71 | let _ = tx.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | tx.commit(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 75 | let _ = tx.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | tx.commit(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 90 | let _ = tx.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | tx.store_message(public_key, message_type, content); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 106 | let _ = tx.store_message(public_key, message_type, content); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | tx.commit(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 107 | let _ = tx.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | tx.commit(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 121 | let _ = tx.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | tx.commit(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 135 | let _ = tx.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | tx.store_session(session); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 149 | let _ = tx.store_session(session); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> tests/load_latest_message_for_user_test.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | tx.commit(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 150 | let _ = tx.commit(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `gabber-chat-lib` (test "database") generated 25 warnings (run `cargo fix --test "database"` to apply 11 suggestions) [INFO] [stderr] warning: `gabber-chat-lib` (test "ratchet_encryption") generated 11 warnings (3 duplicates) (run `cargo fix --test "ratchet_encryption"` to apply 4 suggestions) [INFO] [stderr] warning: `gabber-chat-lib` (test "integration_test") generated 29 warnings (3 duplicates) (run `cargo fix --test "integration_test"` to apply 8 suggestions) [INFO] [stderr] warning: `gabber-chat-lib` (test "load_latest_message_for_user_test") generated 28 warnings (5 duplicates) (run `cargo fix --test "load_latest_message_for_user_test"` to apply 5 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ChatLib-3f21c9736855679a) [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] [stderr] Running unittests uniffi-bindgen.rs (/opt/rustwide/target/debug/deps/uniffi-ea2b221b5ef8dc40) [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] [stderr] Running tests/database.rs (/opt/rustwide/target/debug/deps/database-05476146209fc9ee) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test aaa_db_initalisation ... FAILED [INFO] [stdout] test test_symmetric_chain_storage ... FAILED [INFO] [stdout] test test_storing_retrieving_session ... FAILED [INFO] [stdout] test test_storing_retrieving_message ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- aaa_db_initalisation stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'aaa_db_initalisation' (27) panicked at tests/common/mod.rs:18:33: [INFO] [stdout] Failed to create test directory: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5be56212afb2 - std::backtrace_rs::backtrace::libunwind::trace::h52580dd202462214 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5be56212afb2 - std::backtrace_rs::backtrace::trace_unsynchronized::hc969519abce0f52b [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5be56212afb2 - std::sys::backtrace::_print_fmt::hfd5825900b6e0030 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x5be56212afb2 - ::fmt::h427144ad75cfb218 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x5be56213c31f - core::fmt::rt::Argument::fmt::hd5ccc9cf97cea7f7 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x5be56213c31f - core::fmt::write::h593aaf5adf0f5dae [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/fmt/mod.rs:1468:25 [INFO] [stdout] 6: 0x5be5620f79f1 - std::io::default_write_fmt::h305b5a0727055346 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5be5620f79f1 - std::io::Write::write_fmt::h76f14a8a88733dc5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x5be5621040a2 - std::sys::backtrace::BacktraceLock::print::h3953113552dca3ca [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x5be562108caf - std::panicking::default_hook::{{closure}}::h486b96ad75eafbb8 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:301:27 [INFO] [stdout] 10: 0x5be562108b41 - std::panicking::default_hook::h99456317c5a1a20c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:325:9 [INFO] [stdout] 11: 0x5be561e94a2e - as core::ops::function::Fn>::call::h441e4551014e4cf8 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 12: 0x5be561e94a2e - test::test_main_with_exit_callback::{{closure}}::hdbca54e17f1a00e4 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5be56210936f - as core::ops::function::Fn>::call::h1e57b72c4e1d3045 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 14: 0x5be56210936f - std::panicking::panic_with_hook::h67ab0df20212e4ea [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:842:13 [INFO] [stdout] 15: 0x5be5621091ca - std::panicking::panic_handler::{{closure}}::hc9e4a933ae92e208 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:707:13 [INFO] [stdout] 16: 0x5be5621041e9 - std::sys::backtrace::__rust_end_short_backtrace::hbfa72df9b68c2d19 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:174:18 [INFO] [stdout] 17: 0x5be5620eb76d - __rustc[8cce077e14951490]::rust_begin_unwind [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:698:5 [INFO] [stdout] 18: 0x5be562144600 - core::panicking::panic_fmt::h49931053d20abf41 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x5be562143bd6 - core::result::unwrap_failed::h7f5a2d4cf85d933f [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/result.rs:1854:5 [INFO] [stdout] 20: 0x5be561e6e16c - core::result::Result::expect::hd5f4328bf67f10f7 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/result.rs:1177:23 [INFO] [stdout] 21: 0x5be561e72799 - database::common::aaa_init::{{closure}}::h7bd51c48542b9977 [INFO] [stdout] at /opt/rustwide/workdir/tests/common/mod.rs:18:33 [INFO] [stdout] 22: 0x5be561e6d23d - std::sync::poison::once::Once::call_once::{{closure}}::h22a78f32e0cc0dda [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sync/poison/once.rs:156:41 [INFO] [stdout] 23: 0x5be5620ffb37 - std::sys::sync::once::futex::Once::call::hf8dd2d96011130cd [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/sync/once/futex.rs:178:21 [INFO] [stdout] 24: 0x5be561e6d1c4 - std::sync::poison::once::Once::call_once::h147e3445c28e25a3 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sync/poison/once.rs:156:20 [INFO] [stdout] 25: 0x5be561e724b9 - database::common::aaa_init::h197ae63a07028798 [INFO] [stdout] at /opt/rustwide/workdir/tests/common/mod.rs:14:10 [INFO] [stdout] 26: 0x5be561e6fc88 - database::aaa_db_initalisation::h8ad145a9a82b3122 [INFO] [stdout] at /opt/rustwide/workdir/tests/database.rs:25:5 [INFO] [stdout] 27: 0x5be561e6fca7 - database::aaa_db_initalisation::{{closure}}::ha7204b3330d7b5eb [INFO] [stdout] at /opt/rustwide/workdir/tests/database.rs:24:30 [INFO] [stdout] 28: 0x5be561e6d3b6 - core::ops::function::FnOnce::call_once::h3de04df8f2e9440f [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 29: 0x5be561e947eb - core::ops::function::FnOnce::call_once::h5d9016d521f5aee4 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 30: 0x5be561e947eb - test::__rust_begin_short_backtrace::h123fcee610330442 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:663:18 [INFO] [stdout] 31: 0x5be561eaa2d5 - test::run_test_in_process::{{closure}}::h0442efda2e6359b2 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:686:74 [INFO] [stdout] 32: 0x5be561eaa2d5 - as core::ops::function::FnOnce<()>>::call_once::hfe3528c8dd09682c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 33: 0x5be561eaa2d5 - std::panicking::catch_unwind::do_call::hb1659f7844fe8531 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:590:40 [INFO] [stdout] 34: 0x5be561eaa2d5 - std::panicking::catch_unwind::hdc1f4be0019e72ad [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:553:19 [INFO] [stdout] 35: 0x5be561eaa2d5 - std::panic::catch_unwind::hd6d7ccfa4513e770 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panic.rs:359:14 [INFO] [stdout] 36: 0x5be561eaa2d5 - test::run_test_in_process::h6bbb839ed0802366 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:686:27 [INFO] [stdout] 37: 0x5be561eaa2d5 - test::run_test::{{closure}}::he4fad7398c8acc11 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:607:43 [INFO] [stdout] 38: 0x5be561e80c44 - test::run_test::{{closure}}::h41975797e198d26c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:637:41 [INFO] [stdout] 39: 0x5be561e80c44 - std::sys::backtrace::__rust_begin_short_backtrace::hfb46c397857336f1 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:158:18 [INFO] [stdout] 40: 0x5be561e845ea - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hddf826a64f532bea [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 41: 0x5be561e845ea - as core::ops::function::FnOnce<()>>::call_once::hc3518c3eab91aeb3 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 42: 0x5be561e845ea - std::panicking::catch_unwind::do_call::h7bf3ad6dc012415a [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:590:40 [INFO] [stdout] 43: 0x5be561e845ea - std::panicking::catch_unwind::h8b88f0375c767e36 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:553:19 [INFO] [stdout] 44: 0x5be561e845ea - std::panic::catch_unwind::h66cb5d61a90f7bc5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panic.rs:359:14 [INFO] [stdout] 45: 0x5be561e845ea - std::thread::Builder::spawn_unchecked_::{{closure}}::h65bc9d15fb966bbd [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 46: 0x5be561e845ea - core::ops::function::FnOnce::call_once{{vtable.shim}}::he8d2c9a8796342e5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 47: 0x5be5620fe25f - as core::ops::function::FnOnce>::call_once::hef12b47e5c033835 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1985:9 [INFO] [stdout] 48: 0x5be5620fe25f - std::sys::pal::unix::thread::Thread::new::thread_start::h135087e7c97657bc [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/pal/unix/thread.rs:118:17 [INFO] [stdout] 49: 0x7c9a73dabaa4 - [INFO] [stdout] 50: 0x7c9a73e38a34 - clone [INFO] [stdout] 51: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- test_symmetric_chain_storage stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'test_symmetric_chain_storage' (30) panicked at tests/database.rs:143:40: [INFO] [stdout] called `Option::unwrap()` on a `None` value [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5be56212afb2 - std::backtrace_rs::backtrace::libunwind::trace::h52580dd202462214 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5be56212afb2 - std::backtrace_rs::backtrace::trace_unsynchronized::hc969519abce0f52b [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5be56212afb2 - std::sys::backtrace::_print_fmt::hfd5825900b6e0030 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x5be56212afb2 - ::fmt::h427144ad75cfb218 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x5be56213c31f - core::fmt::rt::Argument::fmt::hd5ccc9cf97cea7f7 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x5be56213c31f - core::fmt::write::h593aaf5adf0f5dae [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/fmt/mod.rs:1468:25 [INFO] [stdout] 6: 0x5be5620f79f1 - std::io::default_write_fmt::h305b5a0727055346 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5be5620f79f1 - std::io::Write::write_fmt::h76f14a8a88733dc5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x5be5621040a2 - std::sys::backtrace::BacktraceLock::print::h3953113552dca3ca [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x5be562108caf - std::panicking::default_hook::{{closure}}::h486b96ad75eafbb8 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:301:27 [INFO] [stdout] 10: 0x5be562108b41 - std::panicking::default_hook::h99456317c5a1a20c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:325:9 [INFO] [stdout] 11: 0x5be561e94a2e - as core::ops::function::Fn>::call::h441e4551014e4cf8 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 12: 0x5be561e94a2e - test::test_main_with_exit_callback::{{closure}}::hdbca54e17f1a00e4 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5be56210936f - as core::ops::function::Fn>::call::h1e57b72c4e1d3045 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 14: 0x5be56210936f - std::panicking::panic_with_hook::h67ab0df20212e4ea [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:842:13 [INFO] [stdout] 15: 0x5be562109196 - std::panicking::panic_handler::{{closure}}::hc9e4a933ae92e208 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:700:13 [INFO] [stdout] 16: 0x5be5621041e9 - std::sys::backtrace::__rust_end_short_backtrace::hbfa72df9b68c2d19 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:174:18 [INFO] [stdout] 17: 0x5be5620eb76d - __rustc[8cce077e14951490]::rust_begin_unwind [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:698:5 [INFO] [stdout] 18: 0x5be562144600 - core::panicking::panic_fmt::h49931053d20abf41 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x5be5621445dc - core::panicking::panic::h5b3f22493728bee0 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panicking.rs:145:5 [INFO] [stdout] 20: 0x5be562143b59 - core::option::unwrap_failed::hf5f16233cd3538b0 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/option.rs:2168:5 [INFO] [stdout] 21: 0x5be561e6fd4d - core::option::Option::unwrap::h929d413e7c821322 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/option.rs:1009:21 [INFO] [stdout] 22: 0x5be561e6fd4d - database::test_symmetric_chain_storage::hf2361584047a97b3 [INFO] [stdout] at /opt/rustwide/workdir/tests/database.rs:143:40 [INFO] [stdout] 23: 0x5be561e70c47 - database::test_symmetric_chain_storage::{{closure}}::he1f74e60aa2778a8 [INFO] [stdout] at /opt/rustwide/workdir/tests/database.rs:142:34 [INFO] [stdout] 24: 0x5be561e6d436 - core::ops::function::FnOnce::call_once::h924994b90d9c10a2 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 25: 0x5be561e947eb - core::ops::function::FnOnce::call_once::h5d9016d521f5aee4 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 26: 0x5be561e947eb - test::__rust_begin_short_backtrace::h123fcee610330442 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:663:18 [INFO] [stdout] 27: 0x5be561eaa2d5 - test::run_test_in_process::{{closure}}::h0442efda2e6359b2 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:686:74 [INFO] [stdout] 28: 0x5be561eaa2d5 - as core::ops::function::FnOnce<()>>::call_once::hfe3528c8dd09682c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 29: 0x5be561eaa2d5 - std::panicking::catch_unwind::do_call::hb1659f7844fe8531 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:590:40 [INFO] [stdout] 30: 0x5be561eaa2d5 - std::panicking::catch_unwind::hdc1f4be0019e72ad [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:553:19 [INFO] [stdout] 31: 0x5be561eaa2d5 - std::panic::catch_unwind::hd6d7ccfa4513e770 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panic.rs:359:14 [INFO] [stdout] 32: 0x5be561eaa2d5 - test::run_test_in_process::h6bbb839ed0802366 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:686:27 [INFO] [stdout] 33: 0x5be561eaa2d5 - test::run_test::{{closure}}::he4fad7398c8acc11 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:607:43 [INFO] [stdout] 34: 0x5be561e80c44 - test::run_test::{{closure}}::h41975797e198d26c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:637:41 [INFO] [stdout] 35: 0x5be561e80c44 - std::sys::backtrace::__rust_begin_short_backtrace::hfb46c397857336f1 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:158:18 [INFO] [stdout] 36: 0x5be561e845ea - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hddf826a64f532bea [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 37: 0x5be561e845ea - as core::ops::function::FnOnce<()>>::call_once::hc3518c3eab91aeb3 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 38: 0x5be561e845ea - std::panicking::catch_unwind::do_call::h7bf3ad6dc012415a [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:590:40 [INFO] [stdout] 39: 0x5be561e845ea - std::panicking::catch_unwind::h8b88f0375c767e36 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:553:19 [INFO] [stdout] 40: 0x5be561e845ea - std::panic::catch_unwind::h66cb5d61a90f7bc5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panic.rs:359:14 [INFO] [stdout] 41: 0x5be561e845ea - std::thread::Builder::spawn_unchecked_::{{closure}}::h65bc9d15fb966bbd [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 42: 0x5be561e845ea - core::ops::function::FnOnce::call_once{{vtable.shim}}::he8d2c9a8796342e5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 43: 0x5be5620fe25f - as core::ops::function::FnOnce>::call_once::hef12b47e5c033835 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1985:9 [INFO] [stdout] 44: 0x5be5620fe25f - std::sys::pal::unix::thread::Thread::new::thread_start::h135087e7c97657bc [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/pal/unix/thread.rs:118:17 [INFO] [stdout] 45: 0x7c9a73dabaa4 - [INFO] [stdout] 46: 0x7c9a73e38a34 - clone [INFO] [stdout] 47: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- test_storing_retrieving_session stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'test_storing_retrieving_session' (29) panicked at tests/database.rs:42:40: [INFO] [stdout] called `Option::unwrap()` on a `None` value [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5be56212afb2 - std::backtrace_rs::backtrace::libunwind::trace::h52580dd202462214 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5be56212afb2 - std::backtrace_rs::backtrace::trace_unsynchronized::hc969519abce0f52b [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5be56212afb2 - std::sys::backtrace::_print_fmt::hfd5825900b6e0030 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x5be56212afb2 - ::fmt::h427144ad75cfb218 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x5be56213c31f - core::fmt::rt::Argument::fmt::hd5ccc9cf97cea7f7 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x5be56213c31f - core::fmt::write::h593aaf5adf0f5dae [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/fmt/mod.rs:1468:25 [INFO] [stdout] 6: 0x5be5620f79f1 - std::io::default_write_fmt::h305b5a0727055346 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5be5620f79f1 - std::io::Write::write_fmt::h76f14a8a88733dc5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x5be5621040a2 - std::sys::backtrace::BacktraceLock::print::h3953113552dca3ca [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x5be562108caf - std::panicking::default_hook::{{closure}}::h486b96ad75eafbb8 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:301:27 [INFO] [stdout] 10: 0x5be562108b41 - std::panicking::default_hook::h99456317c5a1a20c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:325:9 [INFO] [stdout] 11: 0x5be561e94a2e - as core::ops::function::Fn>::call::h441e4551014e4cf8 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 12: 0x5be561e94a2e - test::test_main_with_exit_callback::{{closure}}::hdbca54e17f1a00e4 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5be56210936f - as core::ops::function::Fn>::call::h1e57b72c4e1d3045 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 14: 0x5be56210936f - std::panicking::panic_with_hook::h67ab0df20212e4ea [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:842:13 [INFO] [stdout] 15: 0x5be562109196 - std::panicking::panic_handler::{{closure}}::hc9e4a933ae92e208 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:700:13 [INFO] [stdout] 16: 0x5be5621041e9 - std::sys::backtrace::__rust_end_short_backtrace::hbfa72df9b68c2d19 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:174:18 [INFO] [stdout] 17: 0x5be5620eb76d - __rustc[8cce077e14951490]::rust_begin_unwind [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:698:5 [INFO] [stdout] 18: 0x5be562144600 - core::panicking::panic_fmt::h49931053d20abf41 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x5be5621445dc - core::panicking::panic::h5b3f22493728bee0 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panicking.rs:145:5 [INFO] [stdout] 20: 0x5be562143b59 - core::option::unwrap_failed::hf5f16233cd3538b0 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/option.rs:2168:5 [INFO] [stdout] 21: 0x5be561e716fe - core::option::Option::unwrap::h929d413e7c821322 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/option.rs:1009:21 [INFO] [stdout] 22: 0x5be561e716fe - database::test_storing_retrieving_session::hcf3767a5ca617432 [INFO] [stdout] at /opt/rustwide/workdir/tests/database.rs:42:40 [INFO] [stdout] 23: 0x5be561e72007 - database::test_storing_retrieving_session::{{closure}}::h4a4a7d325d313fb5 [INFO] [stdout] at /opt/rustwide/workdir/tests/database.rs:41:37 [INFO] [stdout] 24: 0x5be561e6d4b6 - core::ops::function::FnOnce::call_once::he75bf2ea31500186 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 25: 0x5be561e947eb - core::ops::function::FnOnce::call_once::h5d9016d521f5aee4 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 26: 0x5be561e947eb - test::__rust_begin_short_backtrace::h123fcee610330442 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:663:18 [INFO] [stdout] 27: 0x5be561eaa2d5 - test::run_test_in_process::{{closure}}::h0442efda2e6359b2 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:686:74 [INFO] [stdout] 28: 0x5be561eaa2d5 - as core::ops::function::FnOnce<()>>::call_once::hfe3528c8dd09682c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 29: 0x5be561eaa2d5 - std::panicking::catch_unwind::do_call::hb1659f7844fe8531 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:590:40 [INFO] [stdout] 30: 0x5be561eaa2d5 - std::panicking::catch_unwind::hdc1f4be0019e72ad [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:553:19 [INFO] [stdout] 31: 0x5be561eaa2d5 - std::panic::catch_unwind::hd6d7ccfa4513e770 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panic.rs:359:14 [INFO] [stdout] 32: 0x5be561eaa2d5 - test::run_test_in_process::h6bbb839ed0802366 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:686:27 [INFO] [stdout] 33: 0x5be561eaa2d5 - test::run_test::{{closure}}::he4fad7398c8acc11 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:607:43 [INFO] [stdout] 34: 0x5be561e80c44 - test::run_test::{{closure}}::h41975797e198d26c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:637:41 [INFO] [stdout] 35: 0x5be561e80c44 - std::sys::backtrace::__rust_begin_short_backtrace::hfb46c397857336f1 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:158:18 [INFO] [stdout] 36: 0x5be561e845ea - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hddf826a64f532bea [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 37: 0x5be561e845ea - as core::ops::function::FnOnce<()>>::call_once::hc3518c3eab91aeb3 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 38: 0x5be561e845ea - std::panicking::catch_unwind::do_call::h7bf3ad6dc012415a [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:590:40 [INFO] [stdout] 39: 0x5be561e845ea - std::panicking::catch_unwind::h8b88f0375c767e36 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:553:19 [INFO] [stdout] 40: 0x5be561e845ea - std::panic::catch_unwind::h66cb5d61a90f7bc5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panic.rs:359:14 [INFO] [stdout] 41: 0x5be561e845ea - std::thread::Builder::spawn_unchecked_::{{closure}}::h65bc9d15fb966bbd [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 42: 0x5be561e845ea - core::ops::function::FnOnce::call_once{{vtable.shim}}::he8d2c9a8796342e5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 43: 0x5be5620fe25f - as core::ops::function::FnOnce>::call_once::hef12b47e5c033835 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1985:9 [INFO] [stdout] 44: 0x5be5620fe25f - std::sys::pal::unix::thread::Thread::new::thread_start::h135087e7c97657bc [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/pal/unix/thread.rs:118:17 [INFO] [stdout] 45: 0x7c9a73dabaa4 - [INFO] [stdout] 46: 0x7c9a73e38a34 - clone [INFO] [stdout] 47: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- test_storing_retrieving_message stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'test_storing_retrieving_message' (28) panicked at tests/database.rs:92:40: [INFO] [stdout] called `Option::unwrap()` on a `None` value [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5be56212afb2 - std::backtrace_rs::backtrace::libunwind::trace::h52580dd202462214 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5be56212afb2 - std::backtrace_rs::backtrace::trace_unsynchronized::hc969519abce0f52b [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5be56212afb2 - std::sys::backtrace::_print_fmt::hfd5825900b6e0030 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x5be56212afb2 - ::fmt::h427144ad75cfb218 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x5be56213c31f - core::fmt::rt::Argument::fmt::hd5ccc9cf97cea7f7 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x5be56213c31f - core::fmt::write::h593aaf5adf0f5dae [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/fmt/mod.rs:1468:25 [INFO] [stdout] 6: 0x5be5620f79f1 - std::io::default_write_fmt::h305b5a0727055346 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5be5620f79f1 - std::io::Write::write_fmt::h76f14a8a88733dc5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x5be5621040a2 - std::sys::backtrace::BacktraceLock::print::h3953113552dca3ca [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x5be562108caf - std::panicking::default_hook::{{closure}}::h486b96ad75eafbb8 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:301:27 [INFO] [stdout] 10: 0x5be562108b41 - std::panicking::default_hook::h99456317c5a1a20c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:325:9 [INFO] [stdout] 11: 0x5be561e94a2e - as core::ops::function::Fn>::call::h441e4551014e4cf8 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 12: 0x5be561e94a2e - test::test_main_with_exit_callback::{{closure}}::hdbca54e17f1a00e4 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5be56210936f - as core::ops::function::Fn>::call::h1e57b72c4e1d3045 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 14: 0x5be56210936f - std::panicking::panic_with_hook::h67ab0df20212e4ea [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:842:13 [INFO] [stdout] 15: 0x5be562109196 - std::panicking::panic_handler::{{closure}}::hc9e4a933ae92e208 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:700:13 [INFO] [stdout] 16: 0x5be5621041e9 - std::sys::backtrace::__rust_end_short_backtrace::hbfa72df9b68c2d19 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:174:18 [INFO] [stdout] 17: 0x5be5620eb76d - __rustc[8cce077e14951490]::rust_begin_unwind [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:698:5 [INFO] [stdout] 18: 0x5be562144600 - core::panicking::panic_fmt::h49931053d20abf41 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x5be5621445dc - core::panicking::panic::h5b3f22493728bee0 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panicking.rs:145:5 [INFO] [stdout] 20: 0x5be562143b59 - core::option::unwrap_failed::hf5f16233cd3538b0 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/option.rs:2168:5 [INFO] [stdout] 21: 0x5be561e70cc0 - core::option::Option::unwrap::h929d413e7c821322 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/option.rs:1009:21 [INFO] [stdout] 22: 0x5be561e70cc0 - database::test_storing_retrieving_message::h15ae16ac75795282 [INFO] [stdout] at /opt/rustwide/workdir/tests/database.rs:92:40 [INFO] [stdout] 23: 0x5be561e71667 - database::test_storing_retrieving_message::{{closure}}::hbb70e192393ffcbd [INFO] [stdout] at /opt/rustwide/workdir/tests/database.rs:91:37 [INFO] [stdout] 24: 0x5be561e6d4f6 - core::ops::function::FnOnce::call_once::hf44995f555d0c038 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 25: 0x5be561e947eb - core::ops::function::FnOnce::call_once::h5d9016d521f5aee4 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 26: 0x5be561e947eb - test::__rust_begin_short_backtrace::h123fcee610330442 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:663:18 [INFO] [stdout] 27: 0x5be561eaa2d5 - test::run_test_in_process::{{closure}}::h0442efda2e6359b2 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:686:74 [INFO] [stdout] 28: 0x5be561eaa2d5 - as core::ops::function::FnOnce<()>>::call_once::hfe3528c8dd09682c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 29: 0x5be561eaa2d5 - std::panicking::catch_unwind::do_call::hb1659f7844fe8531 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:590:40 [INFO] [stdout] 30: 0x5be561eaa2d5 - std::panicking::catch_unwind::hdc1f4be0019e72ad [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:553:19 [INFO] [stdout] 31: 0x5be561eaa2d5 - std::panic::catch_unwind::hd6d7ccfa4513e770 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panic.rs:359:14 [INFO] [stdout] 32: 0x5be561eaa2d5 - test::run_test_in_process::h6bbb839ed0802366 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:686:27 [INFO] [stdout] 33: 0x5be561eaa2d5 - test::run_test::{{closure}}::he4fad7398c8acc11 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:607:43 [INFO] [stdout] 34: 0x5be561e80c44 - test::run_test::{{closure}}::h41975797e198d26c [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/test/src/lib.rs:637:41 [INFO] [stdout] 35: 0x5be561e80c44 - std::sys::backtrace::__rust_begin_short_backtrace::hfb46c397857336f1 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/backtrace.rs:158:18 [INFO] [stdout] 36: 0x5be561e845ea - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hddf826a64f532bea [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 37: 0x5be561e845ea - as core::ops::function::FnOnce<()>>::call_once::hc3518c3eab91aeb3 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 38: 0x5be561e845ea - std::panicking::catch_unwind::do_call::h7bf3ad6dc012415a [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:590:40 [INFO] [stdout] 39: 0x5be561e845ea - std::panicking::catch_unwind::h8b88f0375c767e36 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panicking.rs:553:19 [INFO] [stdout] 40: 0x5be561e845ea - std::panic::catch_unwind::h66cb5d61a90f7bc5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/panic.rs:359:14 [INFO] [stdout] 41: 0x5be561e845ea - std::thread::Builder::spawn_unchecked_::{{closure}}::h65bc9d15fb966bbd [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 42: 0x5be561e845ea - core::ops::function::FnOnce::call_once{{vtable.shim}}::he8d2c9a8796342e5 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 43: 0x5be5620fe25f - as core::ops::function::FnOnce>::call_once::hef12b47e5c033835 [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/alloc/src/boxed.rs:1985:9 [INFO] [stdout] 44: 0x5be5620fe25f - std::sys::pal::unix::thread::Thread::new::thread_start::h135087e7c97657bc [INFO] [stdout] at /rustc/ad85bc524b1ad696e42061ad8338d382dffbdbe5/library/std/src/sys/pal/unix/thread.rs:118:17 [INFO] [stdout] 45: 0x7c9a73dabaa4 - [INFO] [stdout] 46: 0x7c9a73e38a34 - clone [INFO] [stdout] 47: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] aaa_db_initalisation [INFO] [stdout] test_storing_retrieving_message [INFO] [stdout] test_storing_retrieving_session [INFO] [stdout] test_symmetric_chain_storage [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test database` [INFO] running `Command { std: "docker" "inspect" "9138696f69ee9cca96ebd3b1f74902389b2b68db75930f8832d6e1aae0793694", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9138696f69ee9cca96ebd3b1f74902389b2b68db75930f8832d6e1aae0793694", kill_on_drop: false }` [INFO] [stdout] 9138696f69ee9cca96ebd3b1f74902389b2b68db75930f8832d6e1aae0793694