[INFO] fetching crate gamebox 0.1.1...
[INFO] testing gamebox-0.1.1 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] extracting crate gamebox 0.1.1 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate gamebox 0.1.1
[INFO] finished tweaking crates.io crate gamebox 0.1.1
[INFO] tweaked toml for crates.io crate gamebox 0.1.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate gamebox 0.1.1 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate gamebox 0.1.1 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 07414851c9d71d3f55a706186875fc957248e29ecfce00baaaa9a2fb7839c6a3
[INFO] running `Command { std: "docker" "start" "-a" "07414851c9d71d3f55a706186875fc957248e29ecfce00baaaa9a2fb7839c6a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "07414851c9d71d3f55a706186875fc957248e29ecfce00baaaa9a2fb7839c6a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07414851c9d71d3f55a706186875fc957248e29ecfce00baaaa9a2fb7839c6a3", kill_on_drop: false }`
[INFO] [stdout] 07414851c9d71d3f55a706186875fc957248e29ecfce00baaaa9a2fb7839c6a3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 47f886685f71bb3f087de816a61c36a595127a7bd0ac262062a58e3c597ead18
[INFO] running `Command { std: "docker" "start" "-a" "47f886685f71bb3f087de816a61c36a595127a7bd0ac262062a58e3c597ead18", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling cc v1.2.43
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling openssl v0.10.74
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling dtoa v1.0.10
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling tendril v0.4.3
[INFO] [stderr]    Compiling selectors v0.26.0
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling servo_arc v0.4.1
[INFO] [stderr]    Compiling markup5ever v0.14.1
[INFO] [stderr]    Compiling rustls-pki-types v1.13.0
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling openssl-sys v0.9.110
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling ordered-float v2.10.1
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling ego-tree v0.10.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling lru v0.16.2
[INFO] [stderr]    Compiling serde_ignored v0.1.14
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling ignore v0.4.24
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling cssparser v0.34.0
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling match_token v0.1.0
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling serde_with_macros v3.15.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling serde-value v0.7.0
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serde_with v3.15.1
[INFO] [stderr]    Compiling html5ever v0.29.1
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling serde-aux v4.7.0
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling scraper v0.23.1
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling hyper-util v0.1.17
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.24
[INFO] [stderr]    Compiling dlsite-gamebox v0.3.0
[INFO] [stderr]    Compiling gamebox v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `scan::scanner::walk_path`: 请使用 GameScanner::new().scan(path) 代替
[INFO] [stdout]   --> src/scan/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use scanner::{GameScanner, walk_path};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cache_ttl` is never read
[INFO] [stdout]    --> src/providers/mod.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub struct GameDatabaseMiddleware {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 195 |     cache_ttl: std::time::Duration,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expires_in` and `token_type` are never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct TwitchTokenResponse {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] 11 |     access_token: String,
[INFO] [stdout] 12 |     expires_in: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     token_type: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TwitchTokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct IGDBGame {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] 39 |     id: Option<u64>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IGDBGame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 16s
[INFO] running `Command { std: "docker" "inspect" "47f886685f71bb3f087de816a61c36a595127a7bd0ac262062a58e3c597ead18", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "47f886685f71bb3f087de816a61c36a595127a7bd0ac262062a58e3c597ead18", kill_on_drop: false }`
[INFO] [stdout] 47f886685f71bb3f087de816a61c36a595127a7bd0ac262062a58e3c597ead18
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cc47003d130278f22d4c03d0dbf378136b3619b167da9cd08338166f225ed654
[INFO] running `Command { std: "docker" "start" "-a" "cc47003d130278f22d4c03d0dbf378136b3619b167da9cd08338166f225ed654", kill_on_drop: false }`
[INFO] [stdout] warning: use of deprecated function `scan::scanner::walk_path`: 请使用 GameScanner::new().scan(path) 代替
[INFO] [stdout]   --> src/scan/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use scanner::{GameScanner, walk_path};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cache_ttl` is never read
[INFO] [stdout]    --> src/providers/mod.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub struct GameDatabaseMiddleware {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 195 |     cache_ttl: std::time::Duration,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expires_in` and `token_type` are never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct TwitchTokenResponse {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] 11 |     access_token: String,
[INFO] [stdout] 12 |     expires_in: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     token_type: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TwitchTokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct IGDBGame {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] 39 |     id: Option<u64>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IGDBGame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gamebox v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `scan::scanner::walk_path`: 请使用 GameScanner::new().scan(path) 代替
[INFO] [stdout]   --> src/scan/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use scanner::{GameScanner, walk_path};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cache_ttl` is never read
[INFO] [stdout]    --> src/providers/mod.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub struct GameDatabaseMiddleware {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 195 |     cache_ttl: std::time::Duration,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expires_in` and `token_type` are never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct TwitchTokenResponse {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] 11 |     access_token: String,
[INFO] [stdout] 12 |     expires_in: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     token_type: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TwitchTokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct IGDBGame {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] 39 |     id: Option<u64>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IGDBGame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.21s
[INFO] running `Command { std: "docker" "inspect" "cc47003d130278f22d4c03d0dbf378136b3619b167da9cd08338166f225ed654", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cc47003d130278f22d4c03d0dbf378136b3619b167da9cd08338166f225ed654", kill_on_drop: false }`
[INFO] [stdout] cc47003d130278f22d4c03d0dbf378136b3619b167da9cd08338166f225ed654
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d6a49952262fd353ae6b0d07eafe2db7d4b78159f1991123e44ec999433e8fad
[INFO] running `Command { std: "docker" "start" "-a" "d6a49952262fd353ae6b0d07eafe2db7d4b78159f1991123e44ec999433e8fad", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated function `scan::scanner::walk_path`: 请使用 GameScanner::new().scan(path) 代替
[INFO] [stderr]   --> src/scan/mod.rs:34:32
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub use scanner::{GameScanner, walk_path};
[INFO] [stderr]    |                                ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `cache_ttl` is never read
[INFO] [stderr]    --> src/providers/mod.rs:195:5
[INFO] [stderr]     |
[INFO] [stderr] 192 | pub struct GameDatabaseMiddleware {
[INFO] [stderr]     |            ---------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 195 |     cache_ttl: std::time::Duration,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `expires_in` and `token_type` are never read
[INFO] [stderr]   --> src/providers/igdb_provider.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | struct TwitchTokenResponse {
[INFO] [stderr]    |        ------------------- fields in this struct
[INFO] [stderr] 11 |     access_token: String,
[INFO] [stderr] 12 |     expires_in: u64,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 13 |     token_type: String,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TwitchTokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `id` is never read
[INFO] [stderr]   --> src/providers/igdb_provider.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | struct IGDBGame {
[INFO] [stderr]    |        -------- field in this struct
[INFO] [stderr] 39 |     id: Option<u64>,
[INFO] [stderr]    |     ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `IGDBGame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `gamebox` (lib) generated 4 warnings
[INFO] [stderr] warning: `gamebox` (lib test) generated 4 warnings (4 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gamebox-827c22389ad90816)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test providers::thegamesdb_provider::tests::test_thegamesdb_provider_search ... ok
[INFO] [stdout] test providers::thegamesdb_provider::tests::test_thegamesdb_provider_priority ... ok
[INFO] [stdout] test providers::thegamesdb_provider::tests::test_thegamesdb_provider_get_by_id ... ok
[INFO] [stdout] test scan::game_grouping::tests::test_path_group_result_serialization ... ok
[INFO] [stdout] test providers::thegamesdb_provider::tests::test_thegamesdb_provider_supports_game_type ... ok
[INFO] [stdout] test scan::utils::tests::test_find_common_parent_dir ... ok
[INFO] [stdout] test scan::utils::tests::test_extract_version ... ok
[INFO] [stdout] test scan::utils::tests::test_extract_search_key ... ok
[INFO] [stdout] test providers::igdb_provider::tests::test_igdb_provider_supports_game_type ... ok
[INFO] [stdout] test providers::igdb_provider::tests::test_igdb_provider_no_credentials ... ok
[INFO] [stdout] test providers::igdb_provider::tests::test_igdb_provider_priority ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests gamebox
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/scan/utils.rs - scan::utils::find_common_parent_dir (line 137) ... FAILED
[INFO] [stdout] test src/scan/mod.rs - scan (line 13) - compile ... FAILED
[INFO] [stdout] test src/scan/utils.rs - scan::utils::extract_search_key (line 81) ... FAILED
[INFO] [stdout] test src/scan/scanner.rs - scan::scanner::GameScanner (line 24) - compile ... FAILED
[INFO] [stdout] test src/scan/scanner.rs - scan::scanner::GameScanner::search (line 134) - compile ... FAILED
[INFO] [stdout] test src/traits/json_output.rs - traits::json_output::JsonOutput::out_json (line 28) - compile ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/scan/utils.rs - scan::utils::find_common_parent_dir (line 137) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]    --> src/scan/utils.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 | use scanners::scan::find_common_parent_dir;
[INFO] [stdout]     |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/scan/mod.rs - scan (line 13) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]   --> src/scan/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use scanners::scan::GameScanner;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/scan/mod.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 |       let game_infos = GameScanner::new()
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 19 | |         .with_dlsite_provider().await
[INFO] [stdout]    | |_____________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/scan/mod.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 |       let game_infos = GameScanner::new()
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 19 | |         .with_dlsite_provider().await
[INFO] [stdout] 20 | |         .with_igdb_provider("client_id".to_string(), "client_secret".to_string()).await
[INFO] [stdout]    | |_______________________________________________________________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/scan/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let game_infos = GameScanner::new()
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     println!("找到 {} 个游戏", game_infos.len());
[INFO] [stdout]    |                                ---------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `game_infos` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let game_infos: /* Type */ = GameScanner::new()
[INFO] [stdout]    |                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/scan/utils.rs - scan::utils::extract_search_key (line 81) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]   --> src/scan/utils.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | use scanners::scan::extract_search_key;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/scan/scanner.rs - scan::scanner::GameScanner (line 24) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]   --> src/scan/scanner.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use scanners::scan::GameScanner;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/scan/scanner.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |       let game_infos = GameScanner::new()
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 30 | |         .with_dlsite_provider().await
[INFO] [stdout]    | |_____________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/scan/scanner.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |       let game_infos = GameScanner::new()
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 30 | |         .with_dlsite_provider().await
[INFO] [stdout] 31 | |         .with_igdb_provider("client_id".to_string(), "client_secret".to_string()).await
[INFO] [stdout]    | |_______________________________________________________________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/scan/scanner.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let game_infos = GameScanner::new()
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     println!("找到 {} 个游戏", game_infos.len());
[INFO] [stdout]    |                                ---------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `game_infos` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let game_infos: /* Type */ = GameScanner::new()
[INFO] [stdout]    |                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/scan/scanner.rs - scan::scanner::GameScanner::search (line 134) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]    --> src/scan/scanner.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | use scanners::scan::GameScanner;
[INFO] [stdout]     |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/scan/scanner.rs:139:19
[INFO] [stdout]     |
[INFO] [stdout] 139 |       let results = GameScanner::new()
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 140 | |         .with_dlsite_provider().await
[INFO] [stdout]     | |_____________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/traits/json_output.rs - traits::json_output::JsonOutput::out_json (line 28) stdout ----
[INFO] [stdout] error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied
[INFO] [stdout]   --> src/traits/json_output.rs:40:38
[INFO] [stdout]    |
[INFO] [stdout] 40 |     game_infos.out_json::<&str>(None)?;  // 输出到 ./scan_result.json
[INFO] [stdout]    |                ----------------------^ doesn't have a size known at compile-time
[INFO] [stdout]    |                |
[INFO] [stdout]    |                this can't be annotated with `?` because it has type `Result<_, Box<(dyn std::error::Error + Send + Sync + 'static)>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied
[INFO] [stdout]   --> src/traits/json_output.rs:45:47
[INFO] [stdout]    |
[INFO] [stdout] 43 |       let results = GameScanner::new()
[INFO] [stdout]    |  ___________________-
[INFO] [stdout] 44 | |         .with_dlsite_provider().await
[INFO] [stdout] 45 | |         .search("game name".to_string()).await?;
[INFO] [stdout]    | |                                              -^ doesn't have a size known at compile-time
[INFO] [stdout]    | |______________________________________________|
[INFO] [stdout]    |                                                this can't be annotated with `?` because it has type `Result<_, Box<dyn std::error::Error + Send + Sync>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied
[INFO] [stdout]   --> src/traits/json_output.rs:47:46
[INFO] [stdout]    |
[INFO] [stdout] 47 |     results.out_json(Some("my_results.json"))?;  // 输出到 ./my_results.json
[INFO] [stdout]    |             ---------------------------------^ doesn't have a size known at compile-time
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this can't be annotated with `?` because it has type `Result<_, Box<(dyn std::error::Error + Send + Sync + 'static)>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/scan/mod.rs - scan (line 13)
[INFO] [stdout]     src/scan/scanner.rs - scan::scanner::GameScanner (line 24)
[INFO] [stdout]     src/scan/scanner.rs - scan::scanner::GameScanner::search (line 134)
[INFO] [stdout]     src/scan/utils.rs - scan::utils::extract_search_key (line 81)
[INFO] [stdout]     src/scan/utils.rs - scan::utils::find_common_parent_dir (line 137)
[INFO] [stdout]     src/traits/json_output.rs - traits::json_output::JsonOutput::out_json (line 28)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "d6a49952262fd353ae6b0d07eafe2db7d4b78159f1991123e44ec999433e8fad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d6a49952262fd353ae6b0d07eafe2db7d4b78159f1991123e44ec999433e8fad", kill_on_drop: false }`
[INFO] [stdout] d6a49952262fd353ae6b0d07eafe2db7d4b78159f1991123e44ec999433e8fad
