[INFO] cloning repository https://github.com/vouchrs/vouchrs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vouchrs/vouchrs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvouchrs%2Fvouchrs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvouchrs%2Fvouchrs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b072eb499e970b42e2b2ec6d24a3ef372be772e3 [INFO] testing vouchrs/vouchrs/b072eb499e970b42e2b2ec6d24a3ef372be772e3 against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvouchrs%2Fvouchrs" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-3-tc2/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/vouchrs/vouchrs [INFO] removed 0 missing tests [INFO] finished tweaking git repo https://github.com/vouchrs/vouchrs [INFO] tweaked toml for git repo https://github.com/vouchrs/vouchrs written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/vouchrs/vouchrs on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/vouchrs/vouchrs 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3f297ef5b7713d9cdec59c4399facb0ea138ec454f52d6bd4fa822954648061b [INFO] running `Command { std: "docker" "start" "-a" "3f297ef5b7713d9cdec59c4399facb0ea138ec454f52d6bd4fa822954648061b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3f297ef5b7713d9cdec59c4399facb0ea138ec454f52d6bd4fa822954648061b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3f297ef5b7713d9cdec59c4399facb0ea138ec454f52d6bd4fa822954648061b", kill_on_drop: false }` [INFO] [stdout] 3f297ef5b7713d9cdec59c4399facb0ea138ec454f52d6bd4fa822954648061b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e5c0a5b3568482082522d1f7bca11a08894d12796acc5a440968ad0ce9464e66 [INFO] running `Command { std: "docker" "start" "-a" "e5c0a5b3568482082522d1f7bca11a08894d12796acc5a440968ad0ce9464e66", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling smallvec v1.15.0 [INFO] [stderr] Compiling cc v1.2.25 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling base64ct v1.7.3 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling const-oid v0.10.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling rusticata-macros v4.1.0 [INFO] [stderr] Compiling asn1-rs-impl v0.2.0 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling pem-rfc7468 v1.0.0-rc.3 [INFO] [stderr] Compiling ff v0.14.0-pre.0 [INFO] [stderr] Compiling pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling der v0.8.0-rc.3 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling openssl-src v300.5.0+3.5.0 [INFO] [stderr] Compiling asn1-rs-derive v0.5.1 [INFO] [stderr] Compiling oid-registry v0.7.1 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling hybrid-array v0.3.1 [INFO] [stderr] Compiling group v0.14.0-pre.0 [INFO] [stderr] Compiling der v0.7.10 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling num-bigint-dig v0.8.4 [INFO] [stderr] Compiling half v1.8.3 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling block-buffer v0.11.0-rc.4 [INFO] [stderr] Compiling crypto-common v0.2.0-rc.3 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling crypto-bigint v0.7.0-pre.4 [INFO] [stderr] Compiling asn1-rs v0.6.2 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling rand v0.9.1 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling webpki-roots v1.0.0 [INFO] [stderr] Compiling half v2.6.0 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling spki v0.8.0-rc.2 [INFO] [stderr] Compiling pkcs8 v0.11.0-rc.4 [INFO] [stderr] Compiling digest v0.11.0-rc.0 [INFO] [stderr] Compiling sec1 v0.8.0-rc.5 [INFO] [stderr] Compiling spki v0.7.3 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling hmac v0.13.0-rc.0 [INFO] [stderr] Compiling signature v3.0.0-rc.1 [INFO] [stderr] Compiling sha2 v0.11.0-rc.0 [INFO] [stderr] Compiling pkcs8 v0.10.2 [INFO] [stderr] Compiling rfc6979 v0.5.0-rc.0 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling pkcs1 v0.7.5 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling base64urlsafedata v0.5.1 [INFO] [stderr] Compiling uuid v1.17.0 [INFO] [stderr] Compiling der-parser v9.0.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_cbor_2 v0.12.0-dev [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling elliptic-curve v0.14.0-rc.5 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling primefield v0.14.0-pre.2 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling x509-parser v0.16.0 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling env_filter v0.1.3 [INFO] [stderr] Compiling primeorder v0.14.0-pre.4 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling actix-rt v2.10.0 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling ecdsa v0.17.0-rc.0 [INFO] [stderr] Compiling vouchrs v0.4.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling actix-server v2.6.0 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling actix-codec v0.5.2 [INFO] [stderr] Compiling tower-http v0.6.5 [INFO] [stderr] Compiling rustls-webpki v0.103.3 [INFO] [stderr] Compiling actix-http v3.11.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling hyper-util v0.1.13 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling p256 v0.14.0-pre.5 [INFO] [stderr] Compiling webauthn-attestation-ca v0.5.1 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling webauthn-rs-core v0.5.1 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling rsa v0.9.8 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling env_logger v0.11.8 [INFO] [stderr] Compiling webauthn-rs-proto v0.5.1 [INFO] [stderr] Compiling basic-toml v0.1.10 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling cbor-codec v0.7.1 [INFO] [stderr] Compiling actix-web v4.11.0 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling hyper-rustls v0.27.6 [INFO] [stderr] Compiling reqwest v0.12.19 [INFO] [stderr] Compiling actix-cors v0.7.1 [INFO] [stderr] Compiling compact_jwt v0.4.3 [INFO] [stderr] Compiling webauthn-rs v0.5.1 [INFO] [stdout] warning: struct `AppleJwtClaims` is never constructed [INFO] [stdout] --> src/oauth/config.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | struct AppleJwtClaims { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(dead_code)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:91:34 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn create_session_cookie(&self, session: &VouchrsSession) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` implied by `#[warn(warnings)]` [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 91 | pub fn create_session_cookie(&self, session: &VouchrsSession) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:172:44 [INFO] [stdout] | [INFO] [stdout] 172 | pub fn create_refreshed_session_cookie(&self, session: &VouchrsSession) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 172 | pub fn create_refreshed_session_cookie(&self, session: &VouchrsSession) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:381:31 [INFO] [stdout] | [INFO] [stdout] 381 | pub fn create_user_cookie(&self, user_data: &VouchrsUserData) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 381 | pub fn create_user_cookie(&self, user_data: &VouchrsUserData) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:410:9 [INFO] [stdout] | [INFO] [stdout] 410 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 413 | ) -> Result { [INFO] [stdout] | ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 413 | ) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:1013:9 [INFO] [stdout] | [INFO] [stdout] 1013 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 1016 | ) -> Result { [INFO] [stdout] | ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 1016 | ) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 49s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "e5c0a5b3568482082522d1f7bca11a08894d12796acc5a440968ad0ce9464e66", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e5c0a5b3568482082522d1f7bca11a08894d12796acc5a440968ad0ce9464e66", kill_on_drop: false }` [INFO] [stdout] e5c0a5b3568482082522d1f7bca11a08894d12796acc5a440968ad0ce9464e66 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c162b2f723300823098503f800396393820c6546b6835efe3e2c275e0639db4c [INFO] running `Command { std: "docker" "start" "-a" "c162b2f723300823098503f800396393820c6546b6835efe3e2c275e0639db4c", kill_on_drop: false }` [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling actix-codec v0.5.2 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling sdd v3.0.8 [INFO] [stderr] Compiling serial_test_derive v3.2.0 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling actix-http v3.11.0 [INFO] [stderr] Compiling scc v2.3.4 [INFO] [stderr] Compiling tempfile v3.20.0 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling actix-server v2.6.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling compact_jwt v0.4.3 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling serial_test v3.2.0 [INFO] [stderr] Compiling tower-http v0.6.5 [INFO] [stderr] Compiling actix-web v4.11.0 [INFO] [stderr] Compiling hyper-util v0.1.13 [INFO] [stderr] Compiling webauthn-attestation-ca v0.5.1 [INFO] [stderr] Compiling webauthn-rs-core v0.5.1 [INFO] [stderr] Compiling hyper-rustls v0.27.6 [INFO] [stderr] Compiling reqwest v0.12.19 [INFO] [stderr] Compiling actix-cors v0.7.1 [INFO] [stderr] Compiling webauthn-rs v0.5.1 [INFO] [stderr] Compiling vouchrs v0.4.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: struct `AppleJwtClaims` is never constructed [INFO] [stdout] --> src/oauth/config.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | struct AppleJwtClaims { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(dead_code)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:91:34 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn create_session_cookie(&self, session: &VouchrsSession) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` implied by `#[warn(warnings)]` [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 91 | pub fn create_session_cookie(&self, session: &VouchrsSession) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:172:44 [INFO] [stdout] | [INFO] [stdout] 172 | pub fn create_refreshed_session_cookie(&self, session: &VouchrsSession) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 172 | pub fn create_refreshed_session_cookie(&self, session: &VouchrsSession) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:381:31 [INFO] [stdout] | [INFO] [stdout] 381 | pub fn create_user_cookie(&self, user_data: &VouchrsUserData) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 381 | pub fn create_user_cookie(&self, user_data: &VouchrsUserData) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:410:9 [INFO] [stdout] | [INFO] [stdout] 410 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 413 | ) -> Result { [INFO] [stdout] | ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 413 | ) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:1013:9 [INFO] [stdout] | [INFO] [stdout] 1013 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 1016 | ) -> Result { [INFO] [stdout] | ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 1016 | ) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AppleJwtClaims` is never constructed [INFO] [stdout] --> src/oauth/config.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | struct AppleJwtClaims { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(dead_code)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:91:34 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn create_session_cookie(&self, session: &VouchrsSession) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` implied by `#[warn(warnings)]` [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 91 | pub fn create_session_cookie(&self, session: &VouchrsSession) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:172:44 [INFO] [stdout] | [INFO] [stdout] 172 | pub fn create_refreshed_session_cookie(&self, session: &VouchrsSession) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 172 | pub fn create_refreshed_session_cookie(&self, session: &VouchrsSession) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:381:31 [INFO] [stdout] | [INFO] [stdout] 381 | pub fn create_user_cookie(&self, user_data: &VouchrsUserData) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 381 | pub fn create_user_cookie(&self, user_data: &VouchrsUserData) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:410:9 [INFO] [stdout] | [INFO] [stdout] 410 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 413 | ) -> Result { [INFO] [stdout] | ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 413 | ) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/session/manager.rs:1013:9 [INFO] [stdout] | [INFO] [stdout] 1013 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 1016 | ) -> Result { [INFO] [stdout] | ^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 1016 | ) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 47.38s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "c162b2f723300823098503f800396393820c6546b6835efe3e2c275e0639db4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c162b2f723300823098503f800396393820c6546b6835efe3e2c275e0639db4c", kill_on_drop: false }` [INFO] [stdout] c162b2f723300823098503f800396393820c6546b6835efe3e2c275e0639db4c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 2e314262b1a9fb2fb749c43d1ba2cd3a6574ffb95e9f03f0dae06cc273ccc96d [INFO] running `Command { std: "docker" "start" "-a" "2e314262b1a9fb2fb749c43d1ba2cd3a6574ffb95e9f03f0dae06cc273ccc96d", kill_on_drop: false }` [INFO] [stderr] warning: struct `AppleJwtClaims` is never constructed [INFO] [stderr] --> src/oauth/config.rs:74:8 [INFO] [stderr] | [INFO] [stderr] 74 | struct AppleJwtClaims { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:3:9 [INFO] [stderr] | [INFO] [stderr] 3 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(dead_code)]` implied by `#[warn(warnings)]` [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/session/manager.rs:91:34 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn create_session_cookie(&self, session: &VouchrsSession) -> Result { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` implied by `#[warn(warnings)]` [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 91 | pub fn create_session_cookie(&self, session: &VouchrsSession) -> Result> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/session/manager.rs:172:44 [INFO] [stderr] | [INFO] [stderr] 172 | pub fn create_refreshed_session_cookie(&self, session: &VouchrsSession) -> Result { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 172 | pub fn create_refreshed_session_cookie(&self, session: &VouchrsSession) -> Result> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/session/manager.rs:381:31 [INFO] [stderr] | [INFO] [stderr] 381 | pub fn create_user_cookie(&self, user_data: &VouchrsUserData) -> Result { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 381 | pub fn create_user_cookie(&self, user_data: &VouchrsUserData) -> Result> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/session/manager.rs:410:9 [INFO] [stderr] | [INFO] [stderr] 410 | &self, [INFO] [stderr] | ^^^^^ the lifetime is elided here [INFO] [stderr] ... [INFO] [stderr] 413 | ) -> Result { [INFO] [stderr] | ^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 413 | ) -> Result> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/session/manager.rs:1013:9 [INFO] [stderr] | [INFO] [stderr] 1013 | &self, [INFO] [stderr] | ^^^^^ the lifetime is elided here [INFO] [stderr] ... [INFO] [stderr] 1016 | ) -> Result { [INFO] [stderr] | ^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 1016 | ) -> Result> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `vouchrs` (lib) generated 6 warnings (run `cargo fix --lib -p vouchrs` to apply 5 suggestions) [INFO] [stderr] warning: `vouchrs` (lib test) generated 6 warnings (6 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vouchrs-2e868efb7df02c86) [INFO] [stdout] [INFO] [stdout] running 153 tests [INFO] [stdout] test handlers::proxy_upstream::tests::test_401_redirect_for_browser_requests ... ok [INFO] [stdout] test handlers::proxy_upstream::tests::test_hop_by_hop_headers ... ok [INFO] [stdout] test handlers::proxy_upstream::tests::test_cookie_filtering ... ok [INFO] [stdout] test handlers::proxy_upstream::tests::test_sign_in_url_generation ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_extract_key_id_from_jwt ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_jwt_header_parsing ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_jwt_validation_config ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_validate_issuer_claim_helper ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_validate_audience_claim_helper ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_jwt_claims_parsing ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_unsupported_algorithms ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_validate_expiration_claims_helper ... ok [INFO] [stdout] test models::tests::test_vouchrs_session_type_detection ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_extract_audiences_from_claims ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_claims_validation_logic ... ok [INFO] [stdout] test oauth::providers::tests::test_provider_config_creation ... ok [INFO] [stdout] test oauth::token_processor::tests::test_extract_name_apple_format ... ok [INFO] [stdout] test oauth::token_processor::tests::test_extract_name_google_format ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_jwt_validator_creation ... ok [INFO] [stdout] test passkey::service::tests::test_service_creation ... ok [INFO] [stdout] test oauth::token_processor::tests::test_process_id_token_with_apple_info ... ok [INFO] [stdout] test oauth::token_processor::tests::test_extract_name_missing ... ok [INFO] [stdout] test session::cookie::tests::test_filter_vouchrs_cookies ... ok [INFO] [stdout] test passkey::service::tests::test_start_registration_validation ... ok [INFO] [stdout] test session::cookie::tests::test_create_expired_cookie ... ok [INFO] [stdout] test passkey::settings::tests::test_create_webauthn ... ok [INFO] [stdout] test oauth::token_processor::tests::test_extract_subject_missing ... ok [INFO] [stdout] test session::manager::tests::test_client_context_hashing ... ok [INFO] [stdout] test oauth::token_processor::tests::test_extract_subject_success ... ok [INFO] [stdout] test session::manager::tests::test_create_session_cookie ... ok [INFO] [stdout] test passkey::service::tests::test_disabled_service ... ok [INFO] [stdout] test session::manager::tests::test_ip_binding_validation ... ok [INFO] [stdout] test session::manager::tests::test_expired_session_with_refresh_token ... ok [INFO] [stdout] test session::manager::tests::test_ip_binding_getter ... ok [INFO] [stdout] test session::manager::tests::test_needs_token_refresh ... ok [INFO] [stdout] test session::passkey::tests::test_passkey_session_user_data_conversion ... ok [INFO] [stdout] test session::passkey::tests::test_usernameless_passkey_session_creation ... ok [INFO] [stdout] test settings::tests::test_jwt_validation_disabled_without_discovery_url ... ok [INFO] [stdout] test settings::tests::test_jwt_validation_explicit_override ... ok [INFO] [stdout] test session::manager::tests::test_session_expiration_validation ... ok [INFO] [stdout] test settings::tests::test_session_env_override ... ok [INFO] [stdout] test session::manager::tests::test_token_encryption_decryption ... ok [INFO] [stdout] test settings::tests::test_session_secret_env_override ... ok [INFO] [stdout] test session::manager::tests::test_session_cookie_creation_with_ip_binding ... ok [INFO] [stdout] test session::manager::tests::test_session_hijacking_prevention ... ok [INFO] [stdout] test settings::tests::test_jwt_validation_config_overrides ... ok [INFO] [stdout] test settings::tests::test_jwt_validation_explicit_enable_without_discovery ... ok [INFO] [stdout] test session::manager::tests::test_session_extraction_with_ip_validation ... ok [INFO] [stdout] test session::passkey::tests::test_passkey_session_creation ... ok [INFO] [stdout] test settings::tests::test_jwt_validation_auto_enabled_with_discovery_url ... ok [INFO] [stdout] test settings::tests::test_session_secret_auto_generation ... ok [INFO] [stdout] test settings::tests::test_session_refresh_env_override ... ok [INFO] [stdout] test settings::tests::test_session_duration_env_override ... ok [INFO] [stdout] test settings::tests::test_settings_dir_precedence ... ok [INFO] [stdout] test testing::builders::tests::test_session_builder_passkey ... ok [INFO] [stdout] test settings::tests::test_vouchrs_secrets_dir_precedence ... ok [INFO] [stdout] test testing::builders::tests::test_session_manager_builder ... ok [INFO] [stdout] test testing::mock::tests::test_mock_jwt_config ... ok [INFO] [stdout] test testing::mock::tests::test_mock_oauth_callback ... ok [INFO] [stdout] test testing::builders::tests::test_session_builder_expired ... ok [INFO] [stdout] test testing::builders::tests::test_session_builder_oauth ... ok [INFO] [stdout] test testing::builders::tests::test_settings_builder ... ok [INFO] [stdout] test testing::builders::tests::test_user_data_builder ... ok [INFO] [stdout] test settings::tests::test_session_secret_configuration ... ok [INFO] [stdout] test testing::builders::tests::test_user_data_builder_minimal ... ok [INFO] [stdout] test utils::apple::tests::test_process_apple_user_info_with_fallback ... ok [INFO] [stdout] test testing::mock::tests::test_mock_user_agents ... ok [INFO] [stdout] test testing::mock::tests::test_mock_validation_data ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_hs256_verification ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_invalid_es256_key ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_header_hs256 ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_malformed_es256_key ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_hs256 ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_payload_with_additional_claims ... ok [INFO] [stdout] test utils::crypto::tests::test_empty_jwt_payload ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_payload ... ok [INFO] [stdout] test utils::crypto::tests::test_hmac_sha256_different_messages ... ok [INFO] [stdout] test utils::crypto::tests::test_hmac_sha256_signing ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_header_es256_with_kid ... ok [INFO] [stdout] test utils::crypto::tests::test_jwt_algorithm_debug ... ok [INFO] [stdout] test utils::crypto::tests::test_large_jwt_payload ... ok [INFO] [stdout] test utils::headers::tests::test_authorization_header_filtering ... ok [INFO] [stdout] test utils::apple::tests::test_process_apple_user_info_from_object ... ok [INFO] [stdout] test utils::apple::tests::test_process_apple_user_info_from_string ... ok [INFO] [stdout] test utils::headers::tests::test_hop_by_hop_headers ... ok [INFO] [stdout] test utils::headers::tests::test_hop_by_hop_header_filtering ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_audience_validation ... ok [INFO] [stdout] test utils::headers::tests::test_platform_derivation_from_user_agent ... ok [INFO] [stdout] test utils::headers::tests::test_is_browser_request ... ok [INFO] [stdout] test utils::headers::tests::test_processor_configuration ... ok [INFO] [stdout] test session::manager::tests::test_cookie_refresh ... ok [INFO] [stdout] test utils::responses::tests::test_backward_compatibility ... ok [INFO] [stdout] test testing::mock::tests::test_mock_oauth_state ... ok [INFO] [stdout] test utils::responses::tests::test_cached_response_shortcuts ... ok [INFO] [stdout] test utils::headers::tests::test_user_agent_extraction ... ok [INFO] [stdout] test utils::responses::tests::test_convenience_functions ... ok [INFO] [stdout] test utils::responses::tests::test_redirect_with_cookies_direct ... ok [INFO] [stdout] test utils::responses::tests::test_json_response_builder ... ok [INFO] [stdout] test utils::responses::tests::test_unified_error_responses ... ok [INFO] [stdout] test utils::responses::tests::test_upstream_url_building ... ok [INFO] [stdout] test utils::responses::tests::test_redirect_builder ... ok [INFO] [stdout] test validation::core::tests::test_decode_and_parse_jwt_part_invalid_base64 ... ok [INFO] [stdout] test validation::core::tests::test_decode_and_parse_jwt_part_success ... ok [INFO] [stdout] test utils::responses::tests::test_utility_functions ... ok [INFO] [stdout] test validation::core::tests::test_extract_audiences_from_claim_invalid ... ok [INFO] [stdout] test validation::core::tests::test_extract_name_from_claims_direct ... ok [INFO] [stdout] test validation::core::tests::test_extract_name_from_claims_parts ... ok [INFO] [stdout] test validation::core::tests::test_extract_optional_field_missing ... ok [INFO] [stdout] test validation::core::tests::test_extract_audiences_from_claim_array ... ok [INFO] [stdout] test validation::core::tests::test_extract_name_from_claims_missing ... ok [INFO] [stdout] test validation::core::tests::test_extract_optional_field_present ... ok [INFO] [stdout] test validation::core::tests::test_extract_required_field_missing ... ok [INFO] [stdout] test validation::core::tests::test_extract_audiences_from_claim_string ... ok [INFO] [stdout] test validation::core::tests::test_extract_optional_field_null ... ok [INFO] [stdout] test oauth::jwt_validation::tests::test_jwks_cache_operations ... ok [INFO] [stdout] test validation::core::tests::test_extract_required_field_invalid ... ok [INFO] [stdout] test testing::mock::tests::test_mock_passkey_data ... ok [INFO] [stdout] test utils::crypto::tests::test_hmac_invalid_key_length ... ok [INFO] [stdout] test utils::crypto::tests::test_hmac_sha256_deterministic ... ok [INFO] [stdout] test utils::crypto::tests::test_jwt_algorithm_clone ... ok [INFO] [stdout] test utils::headers::tests::test_cookie_filtering ... ok [INFO] [stdout] test utils::responses::tests::test_custom_error_responses ... ok [INFO] [stdout] test validation::core::tests::test_extract_required_field_success ... ok [INFO] [stdout] test validation::oauth_callback::tests::test_callback_data_extraction ... ok [INFO] [stdout] test validation::oauth_callback::tests::test_oauth_error_validation ... ok [INFO] [stdout] test validation::oauth_callback::tests::test_state_parameter_extraction ... ok [INFO] [stdout] test validation::passkey::tests::test_traditional_authentication_handling ... ok [INFO] [stdout] test utils::crypto::tests::test_create_jwt_es256 ... ok [INFO] [stdout] test testing::mock::tests::test_create_test_key_file_with_dynamic_generation ... ok [INFO] [stdout] test validation::core::tests::test_extract_required_string_missing ... ok [INFO] [stdout] test validation::core::tests::test_validate_all_required_macro ... ok [INFO] [stdout] test validation::passkey::tests::test_registration_request_validation ... ok [INFO] [stdout] test validation::redirect::tests::test_complex_valid_paths ... ok [INFO] [stdout] test validation::passkey::tests::test_user_handle_extraction ... ok [INFO] [stdout] test validation::passkey::tests::test_email_validation ... ok [INFO] [stdout] test validation::passkey::tests::test_validation_method_separation ... ok [INFO] [stdout] test testing::mock::tests::test_dynamic_key_generation ... ok [INFO] [stdout] test validation::oauth_callback::tests::test_validation_step_independence ... ok [INFO] [stdout] test validation::oauth_callback::tests::test_authorization_code_extraction ... ok [INFO] [stdout] test validation::core::tests::test_extract_required_string_success ... ok [INFO] [stdout] test validation::redirect::tests::test_empty_redirect ... ok [INFO] [stdout] test validation::redirect::tests::test_double_slash ... ok [INFO] [stdout] test validation::passkey::tests::test_name_validation ... ok [INFO] [stdout] test validation::redirect::tests::test_edge_cases ... ok [INFO] [stdout] test validation::redirect::tests::test_protocol_injection ... ok [INFO] [stdout] test validation::redirect::tests::test_path_traversal ... ok [INFO] [stdout] test validation::redirect::tests::test_query_string_redirects ... ok [INFO] [stdout] test validation::redirect::tests::test_length_limit ... ok [INFO] [stdout] test validation::redirect::tests::test_control_characters ... ok [INFO] [stdout] test validation::redirect::tests::test_unicode_tricks ... ok [INFO] [stdout] test validation::redirect::tests::test_valid_redirects ... ok [INFO] [stdout] test utils::crypto::tests::test_es256_signing_deterministic_within_same_key ... ok [INFO] [stdout] test utils::crypto::tests::test_generate_test_es256_key_produces_different_keys ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 153 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s [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] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/vouchrs-93992a28ef7e7b16) [INFO] [stdout] [INFO] [stderr] Running tests/persistent_user_data_test.rs (/opt/rustwide/target/debug/deps/persistent_user_data_test-4e8e59bd2e4699a2) [INFO] [stdout] running 3 tests [INFO] [stdout] test test_new_values_override_existing ... ok [INFO] [stdout] test test_persistent_user_data_preservation ... ok [INFO] [stdout] test test_no_persistence_different_provider_id ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests vouchrs [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test src/validation/mod.rs - validation (line 23) ... ignored [INFO] [stdout] test src/validation/core.rs - validation::core::extract_credential_response (line 160) - compile ... ok [INFO] [stdout] test src/validation/core.rs - validation::core::extract_required_string (line 87) - compile ... ok [INFO] [stdout] test src/validation/core.rs - validation::core::validate_all_required (line 267) - compile ... ok [INFO] [stdout] test src/validation/core.rs - validation::core::decode_and_parse_jwt_part (line 314) - compile ... ok [INFO] [stdout] test src/validation/core.rs - validation::core::extract_state (line 198) - compile ... ok [INFO] [stdout] test src/validation/core.rs - validation::core::extract_required_field (line 39) - compile ... ok [INFO] [stdout] test src/validation/core.rs - validation::core::extract_and_decode_user_data (line 235) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.50s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "2e314262b1a9fb2fb749c43d1ba2cd3a6574ffb95e9f03f0dae06cc273ccc96d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e314262b1a9fb2fb749c43d1ba2cd3a6574ffb95e9f03f0dae06cc273ccc96d", kill_on_drop: false }` [INFO] [stdout] 2e314262b1a9fb2fb749c43d1ba2cd3a6574ffb95e9f03f0dae06cc273ccc96d