[INFO] cloning repository https://github.com/ThiagoOpaula/Anvil
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ThiagoOpaula/Anvil" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThiagoOpaula%2FAnvil", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThiagoOpaula%2FAnvil'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2669221370d103fa4ee832e3867dd824d45e0b7d
[INFO] testing ThiagoOpaula/Anvil against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThiagoOpaula%2FAnvil" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ThiagoOpaula/Anvil
[INFO] finished tweaking git repo https://github.com/ThiagoOpaula/Anvil
[INFO] tweaked toml for git repo https://github.com/ThiagoOpaula/Anvil written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ThiagoOpaula/Anvil on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ThiagoOpaula/Anvil already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ashpd v0.11.1
[INFO] [stderr]   Downloaded async-fs v2.2.0
[INFO] [stderr]   Downloaded async-net v2.0.0
[INFO] [stderr]   Downloaded rfd v0.15.4
[INFO] [stderr]   Downloaded ecolor v0.31.1
[INFO] [stderr]   Downloaded egui_extras v0.31.1
[INFO] [stderr]   Downloaded mime_guess2 v2.3.1
[INFO] [stderr]   Downloaded emath v0.31.1
[INFO] [stderr]   Downloaded webpki-roots v1.0.7
[INFO] [stderr]   Downloaded epaint v0.31.1
[INFO] [stderr]   Downloaded eframe v0.31.1
[INFO] [stderr]   Downloaded egui v0.31.1
[INFO] [stderr]   Downloaded epaint_default_fonts v0.31.1
[INFO] [stderr]   Downloaded egui-winit v0.31.1
[INFO] [stderr]   Downloaded egui_glow v0.31.1
[INFO] [stderr]   Downloaded egui-wgpu v0.31.1
[INFO] [stderr]   Downloaded wgpu v24.0.5
[INFO] [stderr]   Downloaded wgpu-types v24.0.0
[INFO] [stderr]   Downloaded wgpu-hal v24.0.4
[INFO] [stderr]   Downloaded naga v24.0.0
[INFO] [stderr]   Downloaded wgpu-core v24.0.5
[INFO] [stderr]   Downloaded crossbeam v0.8.4
[INFO] [stderr]   Downloaded fuzzy-matcher v0.3.7
[INFO] [stderr]   Downloaded metal v0.31.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f
[INFO] running `Command { std: "docker" "start" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling http v1.4.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling log v0.4.30
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling winres v0.1.12
[INFO] [stderr]    Compiling anvil v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling dialoguer v0.11.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 10s
[INFO] running `Command { std: "docker" "inspect" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling anvil v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_temp_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn unique_temp_dir(label: &str) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockApi` is never constructed
[INFO] [stdout]   --> tests/common/mocks.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MockApi {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/mocks.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[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 `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_temp_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn unique_temp_dir(label: &str) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_latest`, `set_project`, `set_project_versions`, `set_download_content`, and `set_download_should_fail` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:94:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_temp_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn unique_temp_dir(label: &str) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockApi` is never constructed
[INFO] [stdout]   --> tests/common/mocks.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MockApi {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/mocks.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_temp_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn unique_temp_dir(label: &str) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockApi` is never constructed
[INFO] [stdout]   --> tests/common/mocks.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MockApi {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/mocks.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_temp_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn unique_temp_dir(label: &str) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockApi` is never constructed
[INFO] [stdout]   --> tests/common/mocks.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MockApi {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/mocks.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_temp_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn unique_temp_dir(label: &str) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockApi` is never constructed
[INFO] [stdout]   --> tests/common/mocks.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MockApi {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/mocks.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockApi` is never constructed
[INFO] [stdout]   --> tests/common/mocks.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MockApi {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/mocks.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_temp_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn unique_temp_dir(label: &str) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockApi` is never constructed
[INFO] [stdout]   --> tests/common/mocks.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MockApi {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/mocks.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_project_versions` is never used
[INFO] [stdout]    --> tests/common/mocks.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[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 `make_version` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn make_version(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_file` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_project` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_test_config` is never used
[INFO] [stdout]   --> tests/common/helpers.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_config` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_identified_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_locked_mod` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lockfile` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_temp_mods_dir` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha1_hex` is never used
[INFO] [stdout]    --> tests/common/helpers.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockApi` is never constructed
[INFO] [stdout]   --> tests/common/mocks.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MockApi {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/common/mocks.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl MockApi {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stdout]  60 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MockProgress` is never constructed
[INFO] [stdout]    --> tests/common/mocks.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct MockProgress {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `push_confirm` are never used
[INFO] [stdout]    --> tests/common/mocks.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl MockProgress {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stdout] 275 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tests_common`
[INFO] [stdout]   --> src/tests/test_interactive.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let tests_common = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("tests/common");
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tests_common`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.06s
[INFO] running `Command { std: "docker" "inspect" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `tests_common`
[INFO] [stderr]   --> src/tests/test_interactive.rs:60:9
[INFO] [stderr]    |
[INFO] [stderr] 60 |     let tests_common = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("tests/common");
[INFO] [stderr]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tests_common`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `anvil` (lib test) generated 1 warning (run `cargo fix --lib -p anvil --tests` to apply 1 suggestion)
[INFO] [stderr] warning: function `make_test_version` is never used
[INFO] [stderr]   --> tests/common/helpers.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn make_test_version(id: &str, name: &str, version_number: &str) -> ModVersion {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_version` is never used
[INFO] [stderr]   --> tests/common/helpers.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn make_version(
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_test_project` is never used
[INFO] [stderr]   --> tests/common/helpers.rs:56:8
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn make_test_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_test_file` is never used
[INFO] [stderr]   --> tests/common/helpers.rs:69:8
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub fn make_test_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_file` is never used
[INFO] [stderr]   --> tests/common/helpers.rs:83:8
[INFO] [stderr]    |
[INFO] [stderr] 83 | pub fn make_file(url: &str, filename: &str, sha1: &str) -> ModFile {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_project` is never used
[INFO] [stderr]   --> tests/common/helpers.rs:88:8
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub fn make_project(id: &str, slug: &str, title: &str) -> Project {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_test_config` is never used
[INFO] [stderr]   --> tests/common/helpers.rs:97:8
[INFO] [stderr]    |
[INFO] [stderr] 97 | pub fn make_test_config(mods_dir: &PathBuf) -> ResolvedConfig {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_config` is never used
[INFO] [stderr]    --> tests/common/helpers.rs:119:8
[INFO] [stderr]     |
[INFO] [stderr] 119 | pub fn make_config(mods_dir: &Path) -> ResolvedConfig {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_identified_mod` is never used
[INFO] [stderr]    --> tests/common/helpers.rs:137:8
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub fn make_identified_mod(filename: &str, project_id: &str, name: &str, version: &str) -> IdentifiedMod {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_locked_mod` is never used
[INFO] [stderr]    --> tests/common/helpers.rs:157:8
[INFO] [stderr]     |
[INFO] [stderr] 157 | pub fn make_locked_mod(slug: &str, version: &str) -> LockedMod {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_lockfile` is never used
[INFO] [stderr]    --> tests/common/helpers.rs:171:8
[INFO] [stderr]     |
[INFO] [stderr] 171 | pub fn make_lockfile(mods: Vec<LockedMod>) -> LockFile {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `setup_temp_mods_dir` is never used
[INFO] [stderr]    --> tests/common/helpers.rs:200:8
[INFO] [stderr]     |
[INFO] [stderr] 200 | pub fn setup_temp_mods_dir(jar_contents: &[(&str, &[u8])]) -> PathBuf {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sha1_hex` is never used
[INFO] [stderr]    --> tests/common/helpers.rs:212:8
[INFO] [stderr]     |
[INFO] [stderr] 212 | pub fn sha1_hex(data: &[u8]) -> String {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MockApi` is never constructed
[INFO] [stderr]   --> tests/common/mocks.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct MockApi {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> tests/common/mocks.rs:60:12
[INFO] [stderr]     |
[INFO] [stderr]  58 | impl MockApi {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr]  59 |     /// Create a `MockApi` with empty maps and zeroed call tracking.
[INFO] [stderr]  60 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  85 |     pub fn set_version(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MockProgress` is never constructed
[INFO] [stderr]    --> tests/common/mocks.rs:256:12
[INFO] [stderr]     |
[INFO] [stderr] 256 | pub struct MockProgress {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `push_confirm` are never used
[INFO] [stderr]    --> tests/common/mocks.rs:275:12
[INFO] [stderr]     |
[INFO] [stderr] 273 | impl MockProgress {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 274 |     /// Create a `MockProgress` with empty tracking state.
[INFO] [stderr] 275 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 289 |     pub fn push_confirm(&self, answer: bool) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_project_versions` is never used
[INFO] [stderr]    --> tests/common/mocks.rs:110:12
[INFO] [stderr]     |
[INFO] [stderr]  58 | impl MockApi {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unique_temp_dir` is never used
[INFO] [stderr]    --> tests/common/helpers.rs:189:8
[INFO] [stderr]     |
[INFO] [stderr] 189 | pub fn unique_temp_dir(label: &str) -> PathBuf {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_version` is never used
[INFO] [stderr]   --> tests/common/helpers.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn make_version(
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_latest`, `set_project`, `set_project_versions`, `set_download_content`, and `set_download_should_fail` are never used
[INFO] [stderr]    --> tests/common/mocks.rs:94:12
[INFO] [stderr]     |
[INFO] [stderr]  58 | impl MockApi {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  94 |     pub fn set_latest(&self, sha1: &str, version: Option<ModVersion>) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn set_project(&self, project_id: &str, project: Project) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 110 |     pub fn set_project_versions(&self, project_id: &str, versions: Vec<ModVersion>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 120 |     pub fn set_download_content(&self, content: Vec<u8>, sha1_override: Option<String>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 126 |     pub fn set_download_should_fail(&self, fail: bool) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `anvil` (test "backup") generated 17 warnings
[INFO] [stderr] warning: `anvil` (test "updater") generated 6 warnings (5 duplicates)
[INFO] [stderr] warning: `anvil` (test "types") generated 18 warnings (17 duplicates)
[INFO] [stderr] warning: `anvil` (test "scanner") generated 16 warnings (14 duplicates)
[INFO] [stderr] warning: `anvil` (test "paths") generated 18 warnings (18 duplicates)
[INFO] [stderr] warning: `anvil` (test "filters") generated 18 warnings (18 duplicates)
[INFO] [stderr] warning: `anvil` (test "config") generated 17 warnings (17 duplicates)
[INFO] [stderr] warning: `anvil` (test "cli") generated 18 warnings (18 duplicates)
[INFO] [stderr] warning: `anvil` (test "locking") generated 15 warnings (15 duplicates)
[INFO] [stderr] warning: `anvil` (test "error") generated 18 warnings (18 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/anvil-f1918adb23916878)
[INFO] [stdout] 
[INFO] [stdout] running 40 tests
[INFO] [stdout] test api::tests::base_url_is_modrinth_api ... ok
[INFO] [stdout] test api::tests::client_has_correct_base_url ... ok
[INFO] [stdout] test api::tests::latest_version_path ... ok
[INFO] [stdout] test api::tests::client_construction_succeeds ... ok
[INFO] [stdout] test api::tests::max_retries_is_3 ... ok
[INFO] [stdout] test api::tests::project_path ... ok
[INFO] [stdout] test api::tests::rate_limit_first_call_is_immediate ... ok
[INFO] [stdout] test api::tests::rate_limit_interval_is_250ms ... ok
[INFO] [stdout] test api::tests::user_agent_identifies_anvil ... ok
[INFO] [stdout] test api::tests::version_from_hash_url ... ok
[INFO] [stdout] test cache::tests::project_cache_miss_returns_none ... ok
[INFO] [stdout] test cache::tests::project_cache_round_trip ... ok
[INFO] [stdout] test cache::tests::update_cache_round_trip ... ok
[INFO] [stdout] test cache::tests::update_key_differs_on_loaders ... ok
[INFO] [stdout] test cache::tests::project_path_contains_project_id ... ok
[INFO] [stdout] test cache::tests::update_key_is_deterministic ... ok
[INFO] [stdout] test cache::tests::update_key_differs_on_sha1 ... ok
[INFO] [stdout] test cache::tests::update_key_sorts_game_versions ... ok
[INFO] [stdout] test cache::tests::update_key_sorts_loaders ... ok
[INFO] [stdout] test cache::tests::update_path_contains_sha1 ... ok
[INFO] [stdout] test cache::tests::version_cache_miss_returns_none ... ok
[INFO] [stdout] test cache::tests::version_path_uses_prefix_dir ... ok
[INFO] [stdout] test cache::tests::overwrite_existing_cache_entry ... ok
[INFO] [stdout] test cache::tests::version_cache_round_trip ... ok
[INFO] [stdout] test cache::tests::version_path_contains_sha1 ... ok
[INFO] [stdout] test interactive::tests::fallback_game_versions_includes_recent_releases ... ok
[INFO] [stdout] test interactive::tests::is_interactive_does_not_panic ... ok
[INFO] [stdout] test interactive::tests::pause_before_exit_does_not_panic ... ok
[INFO] [stdout] test output::tests::summary_contains_keys ... ok
[INFO] [stdout] test interactive::tests::fallback_loaders_includes_major_loaders ... ok
[INFO] [stdout] test output::tests::updated_row_contains_arrow ... ok
[INFO] [stdout] test interactive::tests::prompt_if_needed_noop_when_not_tty ... ok
[INFO] [stdout] test output::tests::wrap_long_word_hard_breaks ... ok
[INFO] [stdout] test output::tests::outcome_rows_match_header_count ... ok
[INFO] [stdout] test cache::tests::corrupt_cache_returns_none ... ok
[INFO] [stdout] test output::tests::wrap_short_text_passes_through ... ok
[INFO] [stdout] test output::tests::wrap_preserves_paragraphs ... ok
[INFO] [stdout] test output::tests::wrap_splits_at_width ... ok
[INFO] [stdout] test api::tests::rate_limit_second_call_is_delayed ... ok
[INFO] [stdout] test api::tests::rate_limit_after_delay_is_immediate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/anvil-f43cd10249b0fb9b)
[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/backup.rs (/opt/rustwide/target/debug/deps/backup-8248b9ba962308e1)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test create_backup_dir_timestamp_format ... ok
[INFO] [stdout] test create_backup_dir_creates_directory ... ok
[INFO] [stdout] test find_latest_backup_ignores_non_backup_dirs ... ok
[INFO] [stdout] test create_backup_dir_uses_auto_when_version_empty ... ok
[INFO] [stdout] test move_to_backup_moves_not_copies ... ok
[INFO] [stdout] test create_backup_dir_is_empty ... ok
[INFO] [stdout] test move_to_backup_multiple_files ... ok
[INFO] [stdout] test move_to_backup_nonexistent_backup_dir_errors ... ok
[INFO] [stdout] test move_to_backup_nonexistent_file_errors ... ok
[INFO] [stdout] test no_backups_in_empty_dir ... ok
[INFO] [stdout] test rollback_empty_backup_returns_zero ... ok
[INFO] [stdout] test rollback_no_backups_errors ... ok
[INFO] [stdout] test rollback_overwrites_existing_files ... ok
[INFO] [stdout] test rollback_full_round_trip ... ok
[INFO] [stdout] test finds_latest_backup ... ok
[INFO] [stdout] test find_latest_backup_multiple_returns_newest ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-7a31f20606c1fefd)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test cli_list_with_filters ... ok
[INFO] [stdout] test cli_update_with_flags ... ok
[INFO] [stdout] test cli_short_flags ... ok
[INFO] [stdout] test cli_list_subcommand ... ok
[INFO] [stdout] test cli_rollback_subcommand ... ok
[INFO] [stdout] test cli_verbose_and_quiet_conflict ... ok
[INFO] [stdout] test cli_update_default_subcommand ... ok
[INFO] [stdout] test cli_mods_dir_global ... ok
[INFO] [stdout] test cli_update_include_multiple ... ok
[INFO] [stdout] test cli_no_args_defaults ... ok
[INFO] [stdout] test cli_version_flag ... ok
[INFO] [stderr]      Running tests/config.rs (/opt/rustwide/target/debug/deps/config-5b59abce3eab6252)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test load_missing_file_returns_default ... ok
[INFO] [stdout] test load_empty_toml_is_default ... ok
[INFO] [stdout] test load_valid_toml ... ok
[INFO] [stdout] test log_level_debug_is_lower_than_info ... ok
[INFO] [stdout] test load_invalid_toml_returns_error ... ok
[INFO] [stdout] test log_level_clone_and_debug ... ok
[INFO] [stdout] test resolve_no_subcommand_defaults_to_update ... ok
[INFO] [stdout] test resolve_cli_quiet_sets_log_level_error ... ok
[INFO] [stdout] test resolve_list_ignores_update_only_flags ... ok
[INFO] [stdout] test resolve_cli_include_exclude ... ok
[INFO] [stdout] test resolve_cli_yes_disables_confirm ... ok
[INFO] [stdout] test resolve_cli_verbose_sets_log_level_debug ... ok
[INFO] [stdout] test resolve_rollback_uses_defaults ... ok
[INFO] [stdout] test resolve_cli_dry_run ... ok
[INFO] [stdout] test resolve_defaults_when_no_config_and_no_flags ... ok
[INFO] [stdout] test resolve_cli_overrides_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/error.rs (/opt/rustwide/target/debug/deps/error-d239bb493b7ff65a)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test from_io_error ... ok
[INFO] [stdout] test error_implements_debug ... ok
[INFO] [stdout] test error_is_send_sync ... ok
[INFO] [stdout] test error_config_display ... ok
[INFO] [stdout] test error_api_display ... ok
[INFO] [stdout] test error_cancelled_display ... ok
[INFO] [stdout] test error_no_backups_display ... ok
[INFO] [stdout] test error_unavailable_display ... ok
[INFO] [stdout] test error_download_display ... ok
[INFO] [stdout] test error_io_display ... ok
[INFO] [stdout] test error_hash_not_found_display ... ok
[INFO] [stdout] test error_other_display ... ok
[INFO] [stdout] test error_sha1_mismatch_display ... ok
[INFO] [stdout] test error_http_debug_display ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/filters.rs (/opt/rustwide/target/debug/deps/filters-9c3242c2bfbfe2bf)
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test empty_opts_passes_all ... ok
[INFO] [stdout] test game_version_filter ... ok
[INFO] [stdout] test include_matches_version_number ... ok
[INFO] [stdout] test loader_filter ... ok
[INFO] [stdout] test include_regex ... ok
[INFO] [stdout] test include_substring_match ... ok
[INFO] [stdout] test exclude_filter ... ok
[INFO] [stdout] test include_wildcard ... ok
[INFO] [stdout] test combined_filters ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/locking.rs (/opt/rustwide/target/debug/deps/locking-8f9f3d3e720eef6c)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test build_locked_mods_outcome_no_identified_match ... ok
[INFO] [stdout] test build_locked_mods_empty_inputs ... ok
[INFO] [stdout] test build_locked_mods_mixed_outcomes ... ok
[INFO] [stdout] test build_locked_mods_skips_failed ... ok
[INFO] [stdout] test build_locked_mods_skips_filtered_out ... ok
[INFO] [stdout] test build_locked_mods_unavailable ... ok
[INFO] [stdout] test build_locked_mods_skips_unknown ... ok
[INFO] [stdout] test build_locked_mods_up_to_date ... ok
[INFO] [stdout] test diff_detects_changes ... ok
[INFO] [stdout] test diff_lockfile_no_changes ... ok
[INFO] [stdout] test diff_lockfile_both_empty ... ok
[INFO] [stdout] test diff_lockfile_only_additions ... ok
[INFO] [stdout] test diff_lockfile_only_removals ... ok
[INFO] [stdout] test diff_lockfile_only_updates ... ok
[INFO] [stdout] test diff_lockfile_same_mods_different_order ... ok
[INFO] [stdout] test lockfile_path_ends_with_lock_json ... ok
[INFO] [stdout] test lockfile_path_is_absolute ... ok
[INFO] [stdout] test read_lockfile_missing_returns_none ... ok
[INFO] [stdout] test build_locked_mods_updated ... ok
[INFO] [stdout] test read_lockfile_valid_json_returns_some ... ok
[INFO] [stdout] test write_lockfile_overwrites_existing ... ok
[INFO] [stdout] test read_lockfile_invalid_json_returns_err ... ok
[INFO] [stderr]      Running tests/paths.rs (/opt/rustwide/target/debug/deps/paths-e40017403f3bd6b1)
[INFO] [stdout] test read_lockfile_empty_file_returns_err ... ok
[INFO] [stdout] test write_lockfile_round_trip ... ok
[INFO] [stdout] test write_lockfile_with_none_filters ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test config_dir_ends_with_anvil ... ok
[INFO] [stdout] test default_mods_dir_ends_with_minecraft_mods ... ok
[INFO] [stdout] test paths_are_absolute_or_relative ... ok
[INFO] [stdout] test cache_dir_contains_anvil ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/scanner.rs (/opt/rustwide/target/debug/deps/scanner-702bc2742d8416e8)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stderr]      Running tests/types.rs (/opt/rustwide/target/debug/deps/types-4d600522e0774973)
[INFO] [stderr]      Running tests/updater.rs (/opt/rustwide/target/debug/deps/updater-9d753a8186f640a5)
[INFO] [stdout] test batch_identify_unknown_mod ... ok
[INFO] [stdout] test batch_identify_mixed_results ... ok
[INFO] [stdout] test batch_identify_empty_input ... ok
[INFO] [stdout] test batch_identify_known_mods ... ok
[INFO] [stdout] test compute_sha1_known_content ... ok
[INFO] [stdout] test compute_sha1_nonexistent_file ... ok
[INFO] [stdout] test compute_sha1_known_digest ... ok
[INFO] [stdout] test find_jars_nonexistent_dir ... ok
[INFO] [stdout] test find_jars_empty_directory ... ok
[INFO] [stdout] test hash_all_skips_unreadable_files ... ok
[INFO] [stdout] test hash_all_processes_valid_files ... ok
[INFO] [stdout] test find_jars_discovers_jar_files ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test config_default_all_none ... ok
[INFO] [stdout] test dependency_type_serde_lowercase ... ok
[INFO] [stdout] test filter_opts_default_empty ... ok
[INFO] [stdout] test config_deserialize_from_toml ... ok
[INFO] [stdout] test lock_file_round_trip ... ok
[INFO] [stdout] test locked_mod_partial_eq ... ok
[INFO] [stdout] test mod_version_defaults_missing_fields ... ok
[INFO] [stdout] test mod_version_round_trip ... ok
[INFO] [stdout] test project_round_trip ... ok
[INFO] [stdout] test project_status_approved_is_not_problematic ... ok
[INFO] [stdout] test project_status_archived_is_problematic ... ok
[INFO] [stdout] test project_status_draft_is_not_problematic ... ok
[INFO] [stdout] test project_status_rejected_is_problematic ... ok
[INFO] [stdout] test project_status_unknown_is_not_problematic ... ok
[INFO] [stdout] test project_status_unknown_serde_catch_all ... ok
[INFO] [stdout] test project_status_withheld_is_problematic ... ok
[INFO] [stdout] test run_summary_default_all_zero ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test empty_mods_dir_returns_default_summary ... ok
[INFO] [stdout] test identifies_mods_and_reports_up_to_date ... ok
[INFO] [stdout] test mixed_outcomes_unknown_and_up_to_date ... ok
[INFO] [stdout] test unavailable_outcome_when_no_matching_game_version ... ok
[INFO] [stdout] test no_candidates_no_confirm_prompt ... ok
[INFO] [stdout] test detects_updates_available ... ok
[INFO] [stdout] test sha1_verification_failure_reports_failed ... ok
[INFO] [stdout] test dry_run_mode_no_files_changed ... ok
[INFO] [stdout] test progress_phases_are_recorded ... ok
[INFO] [stdout] test unknown_mods_sha1_not_found ... ok
[INFO] [stdout] test non_jar_files_are_ignored ... ok
[INFO] [stdout] test user_cancellation_returns_error ... ok
[INFO] [stdout] test max_updates_limit ... ok
[INFO] [stdout] test backup_restores_on_sha1_mismatch ... ok
[INFO] [stdout] test unreadable_jar_is_skipped ... ok
[INFO] [stdout] test download_failure_reports_failed ... ok
[INFO] [stdout] test downloads_and_updates_mods ... ok
[INFO] [stderr]    Doc-tests anvil
[INFO] [stdout] test filters_include_exclude_loader ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f", kill_on_drop: false }`
[INFO] [stdout] 8af73fc1ef0708def86e22bfada6c9223951ddb32b07404c3eb16965b6445f4f
