[INFO] cloning repository https://github.com/wavefunk/allowthem [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wavefunk/allowthem" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwavefunk%2Fallowthem", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwavefunk%2Fallowthem'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 50fead642cbd95c339231f0a9d385c649c8abcb1 [INFO] testing wavefunk/allowthem against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwavefunk%2Fallowthem" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/wavefunk/allowthem [INFO] finished tweaking git repo https://github.com/wavefunk/allowthem [INFO] tweaked toml for git repo https://github.com/wavefunk/allowthem written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/wavefunk/allowthem on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/wavefunk/allowthem 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded http-range-header v0.4.2 [INFO] [stderr] Downloaded tracing-serde v0.2.0 [INFO] [stderr] Downloaded unicase v2.9.0 [INFO] [stderr] Downloaded mime_guess v2.0.5 [INFO] [stderr] Downloaded assert-json-diff v2.0.2 [INFO] [stderr] Downloaded ref-cast-impl v1.0.25 [INFO] [stderr] Downloaded no-std-compat v0.4.1 [INFO] [stderr] Downloaded num-cmp v0.1.0 [INFO] [stderr] Downloaded base32 v0.5.1 [INFO] [stderr] Downloaded crc v3.4.0 [INFO] [stderr] Downloaded constant_time_eq v0.3.1 [INFO] [stderr] Downloaded memo-map v0.3.3 [INFO] [stderr] Downloaded uncased v0.9.10 [INFO] [stderr] Downloaded proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Downloaded home v0.5.12 [INFO] [stderr] Downloaded borrow-or-share v0.2.4 [INFO] [stderr] Downloaded indenter v0.3.4 [INFO] [stderr] Downloaded rustls-platform-verifier-android v0.1.1 [INFO] [stderr] Downloaded rustc-hash v2.1.2 [INFO] [stderr] Downloaded pear_codegen v0.2.9 [INFO] [stderr] Downloaded colorchoice v1.0.5 [INFO] [stderr] Downloaded aead v0.5.2 [INFO] [stderr] Downloaded atoi v2.0.0 [INFO] [stderr] Downloaded atomic v0.6.1 [INFO] [stderr] Downloaded nonzero_ext v0.3.0 [INFO] [stderr] Downloaded outref v0.5.2 [INFO] [stderr] Downloaded etcetera v0.10.0 [INFO] [stderr] Downloaded ref-cast v1.0.25 [INFO] [stderr] Downloaded ghash v0.5.1 [INFO] [stderr] Downloaded universal-hash v0.5.1 [INFO] [stderr] Downloaded openssl-probe v0.2.1 [INFO] [stderr] Downloaded uuid-simd v0.8.0 [INFO] [stderr] Downloaded hyper-rustls v0.27.9 [INFO] [stderr] Downloaded argon2 v0.5.3 [INFO] [stderr] Downloaded crossbeam-queue v0.3.12 [INFO] [stderr] Downloaded fs_extra v1.3.0 [INFO] [stderr] Downloaded clap_lex v1.1.0 [INFO] [stderr] Downloaded vsimd v0.8.0 [INFO] [stderr] Downloaded whoami v1.6.1 [INFO] [stderr] Downloaded sqlx-macros v0.9.0-alpha.1 [INFO] [stderr] Downloaded anstyle v1.0.14 [INFO] [stderr] Downloaded anstream v1.0.0 [INFO] [stderr] Downloaded anstyle-parse v1.0.0 [INFO] [stderr] Downloaded simple_asn1 v0.6.4 [INFO] [stderr] Downloaded cmake v0.1.58 [INFO] [stderr] Downloaded security-framework-sys v2.17.0 [INFO] [stderr] Downloaded bytecount v0.6.9 [INFO] [stderr] Downloaded axum-htmx v0.8.1 [INFO] [stderr] Downloaded polyval v0.6.2 [INFO] [stderr] Downloaded deadpool-runtime v0.1.4 [INFO] [stderr] Downloaded serde_html_form v0.2.8 [INFO] [stderr] Downloaded pear v0.2.9 [INFO] [stderr] Downloaded inlinable_string v0.1.15 [INFO] [stderr] Downloaded schannel v0.1.29 [INFO] [stderr] Downloaded totp-rs v5.7.1 [INFO] [stderr] Downloaded tokio-stream v0.1.18 [INFO] [stderr] Downloaded multer v3.1.0 [INFO] [stderr] Downloaded blake2 v0.10.6 [INFO] [stderr] Downloaded clap_derive v4.6.1 [INFO] [stderr] Downloaded unicode-general-category v1.1.0 [INFO] [stderr] Downloaded email_address v0.2.9 [INFO] [stderr] Downloaded quanta v0.12.6 [INFO] [stderr] Downloaded clap v4.6.1 [INFO] [stderr] Downloaded rustls-native-certs v0.8.3 [INFO] [stderr] Downloaded referencing v0.46.1 [INFO] [stderr] Downloaded micromap v0.3.0 [INFO] [stderr] Downloaded wiremock v0.6.5 [INFO] [stderr] Downloaded deadpool v0.12.3 [INFO] [stderr] Downloaded flume v0.11.1 [INFO] [stderr] Downloaded sqlx-mysql v0.9.0-alpha.1 [INFO] [stderr] Downloaded sqlx-macros-core v0.9.0-alpha.1 [INFO] [stderr] Downloaded jsonwebtoken v9.3.1 [INFO] [stderr] Downloaded rustls-platform-verifier v0.6.2 [INFO] [stderr] Downloaded fluent-uri v0.4.1 [INFO] [stderr] Downloaded spinning_top v0.3.0 [INFO] [stderr] Downloaded qrcode v0.14.1 [INFO] [stderr] Downloaded iri-string v0.7.12 [INFO] [stderr] Downloaded zerocopy-derive v0.8.42 [INFO] [stderr] Downloaded rsa v0.9.10 [INFO] [stderr] Downloaded figment v0.10.19 [INFO] [stderr] Downloaded yansi v1.0.1 [INFO] [stderr] Downloaded rustls-webpki v0.103.12 [INFO] [stderr] Downloaded security-framework v3.7.0 [INFO] [stderr] Downloaded fancy-regex v0.17.0 [INFO] [stderr] Downloaded fraction v0.15.3 [INFO] [stderr] Downloaded sqlx-sqlite v0.9.0-alpha.1 [INFO] [stderr] Downloaded reqwest v0.13.2 [INFO] [stderr] Downloaded governor v0.8.1 [INFO] [stderr] Downloaded aes-gcm v0.10.3 [INFO] [stderr] Downloaded webpki-root-certs v1.0.7 [INFO] [stderr] Downloaded sqlx-core v0.9.0-alpha.1 [INFO] [stderr] Downloaded sqlx-postgres v0.9.0-alpha.1 [INFO] [stderr] Downloaded clap_builder v4.6.0 [INFO] [stderr] Downloaded minijinja v2.19.0 [INFO] [stderr] Downloaded sqlx v0.9.0-alpha.1 [INFO] [stderr] Downloaded jsonschema v0.46.1 [INFO] [stderr] Downloaded aws-lc-rs v1.16.3 [INFO] [stderr] Downloaded moka v0.12.15 [INFO] [stderr] Downloaded zerocopy v0.8.42 [INFO] [stderr] Downloaded rustls v0.23.38 [INFO] [stderr] Downloaded aws-lc-sys v0.40.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9952dea2620498400d5e3a241f27cbe31dee0bb70e4c5f365353bcfaf1eb8b97 [INFO] running `Command { std: "docker" "start" "-a" "9952dea2620498400d5e3a241f27cbe31dee0bb70e4c5f365353bcfaf1eb8b97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9952dea2620498400d5e3a241f27cbe31dee0bb70e4c5f365353bcfaf1eb8b97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9952dea2620498400d5e3a241f27cbe31dee0bb70e4c5f365353bcfaf1eb8b97", kill_on_drop: false }` [INFO] [stdout] 9952dea2620498400d5e3a241f27cbe31dee0bb70e4c5f365353bcfaf1eb8b97 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d42ad9c60805f2b683cb7761efd549624dc3c4124c85c12396e0a13bbd0b1c13 [INFO] running `Command { std: "docker" "start" "-a" "d42ad9c60805f2b683cb7761efd549624dc3c4124c85c12396e0a13bbd0b1c13", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling const-oid v0.9.6 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling aws-lc-sys v0.40.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling aws-lc-rs v1.16.3 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [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 displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling crc-catalog v2.4.0 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling crc v3.4.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling libsqlite3-sys v0.35.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling der v0.7.10 [INFO] [stderr] Compiling sqlx-core v0.9.0-alpha.1 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling flume v0.11.1 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling http-range-header v0.4.2 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling spki v0.7.3 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling num-bigint-dig v0.8.6 [INFO] [stderr] Compiling opaque-debug v0.3.1 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling sqlx-sqlite v0.9.0-alpha.1 [INFO] [stderr] Compiling pkcs8 v0.10.2 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling simple_asn1 v0.6.4 [INFO] [stderr] Compiling sqlx-macros-core v0.9.0-alpha.1 [INFO] [stderr] Compiling pkcs1 v0.7.5 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling sqlx-macros v0.9.0-alpha.1 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling pem v3.0.6 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling base32 v0.5.1 [INFO] [stderr] Compiling constant_time_eq v0.3.1 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling totp-rs v5.7.1 [INFO] [stderr] Compiling jsonwebtoken v9.3.1 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling rsa v0.9.10 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling unicode-general-category v1.1.0 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling borrow-or-share v0.2.4 [INFO] [stderr] Compiling fluent-uri v0.4.1 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling num v0.4.3 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling spinning_top v0.3.0 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Compiling vsimd v0.8.0 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling micromap v0.3.0 [INFO] [stderr] Compiling outref v0.5.2 [INFO] [stderr] Compiling nonzero_ext v0.3.0 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling web-time v1.1.0 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling no-std-compat v0.4.1 [INFO] [stderr] Compiling uuid-simd v0.8.0 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling referencing v0.46.1 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling governor v0.8.1 [INFO] [stderr] Compiling pear_codegen v0.2.9 [INFO] [stderr] Compiling async-lock v3.4.2 [INFO] [stderr] Compiling fraction v0.15.3 [INFO] [stderr] Compiling fancy-regex v0.17.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling email_address v0.2.9 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling figment v0.10.19 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling num-cmp v0.1.0 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling inlinable_string v0.1.15 [INFO] [stderr] Compiling tagptr v0.2.0 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling memo-map v0.3.3 [INFO] [stderr] Compiling pear v0.2.9 [INFO] [stderr] Compiling minijinja v2.19.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling moka v0.12.15 [INFO] [stderr] Compiling sqlx v0.9.0-alpha.1 [INFO] [stderr] Compiling axum-htmx v0.8.1 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling indenter v0.3.4 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling qrcode v0.14.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling serde_html_form v0.2.8 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling rustls-webpki v0.103.12 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.2 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling allowthem-core v0.0.5 (/opt/rustwide/workdir/crates/core) [INFO] [stderr] Compiling jsonschema v0.46.1 [INFO] [stderr] Compiling allowthem-saas v0.0.5 (/opt/rustwide/workdir/crates/saas) [INFO] [stderr] Compiling allowthem-server v0.0.5 (/opt/rustwide/workdir/crates/server) [INFO] [stderr] Compiling allowthem-teams v0.0.5 (/opt/rustwide/workdir/crates/teams) [INFO] [stderr] Compiling allowthem-client v0.0.5 (/opt/rustwide/workdir/crates/client) [INFO] [stderr] Compiling allowthem v0.0.5 (/opt/rustwide/workdir/binaries) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7m 30s [INFO] running `Command { std: "docker" "inspect" "d42ad9c60805f2b683cb7761efd549624dc3c4124c85c12396e0a13bbd0b1c13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d42ad9c60805f2b683cb7761efd549624dc3c4124c85c12396e0a13bbd0b1c13", kill_on_drop: false }` [INFO] [stdout] d42ad9c60805f2b683cb7761efd549624dc3c4124c85c12396e0a13bbd0b1c13 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4ffd583ec3e9f3f17f0ad191a54061b35f4adc54daffb9614a3771478e12cb1c [INFO] running `Command { std: "docker" "start" "-a" "4ffd583ec3e9f3f17f0ad191a54061b35f4adc54daffb9614a3771478e12cb1c", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling governor v0.8.1 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling allowthem-core v0.0.5 (/opt/rustwide/workdir/crates/core) [INFO] [stderr] Compiling jsonschema v0.46.1 [INFO] [stderr] Compiling allowthem-saas v0.0.5 (/opt/rustwide/workdir/crates/saas) [INFO] [stderr] Compiling allowthem-client v0.0.5 (/opt/rustwide/workdir/crates/client) [INFO] [stderr] Compiling allowthem-teams v0.0.5 (/opt/rustwide/workdir/crates/teams) [INFO] [stderr] Compiling allowthem-server v0.0.5 (/opt/rustwide/workdir/crates/server) [INFO] [stderr] Compiling allowthem v0.0.5 (/opt/rustwide/workdir/binaries) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 40s [INFO] running `Command { std: "docker" "inspect" "4ffd583ec3e9f3f17f0ad191a54061b35f4adc54daffb9614a3771478e12cb1c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4ffd583ec3e9f3f17f0ad191a54061b35f4adc54daffb9614a3771478e12cb1c", kill_on_drop: false }` [INFO] [stdout] 4ffd583ec3e9f3f17f0ad191a54061b35f4adc54daffb9614a3771478e12cb1c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 6a280264dfc1e38d07f961ce8e75b4979c582fc65ccbea600f60c2f90a786da6 [INFO] running `Command { std: "docker" "start" "-a" "6a280264dfc1e38d07f961ce8e75b4979c582fc65ccbea600f60c2f90a786da6", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.75s [INFO] [stderr] Running unittests standalone/main.rs (/opt/rustwide/target/debug/deps/allowthem-8083f37d4f2ced0c) [INFO] [stdout] [INFO] [stdout] running 91 tests [INFO] [stdout] test admin_applications::tests::create_rejects_invalid_logo_url ... ok [INFO] [stdout] test admin_applications::tests::create_empty_name_shows_error ... ok [INFO] [stdout] test admin_applications::tests::detail_not_found_returns_404 ... ok [INFO] [stdout] test admin_applications::tests::create_rejects_invalid_primary_color ... ok [INFO] [stdout] test admin_applications::tests::create_filters_empty_redirect_uris ... ok [INFO] [stdout] test admin_applications::tests::create_accepts_valid_branding ... ok [INFO] [stdout] test admin_applications::tests::list_page_renders_empty ... ok [INFO] [stdout] test admin_applications::tests::delete_redirects_to_list ... ok [INFO] [stdout] test admin_applications::tests::create_returns_secret ... ok [INFO] [stdout] test admin_applications::tests::new_form_renders ... ok [INFO] [stdout] test admin_applications::tests::non_admin_gets_403 ... ok [INFO] [stdout] test admin_applications::tests::detail_page_renders ... ok [INFO] [stdout] test admin_applications::tests::list_page_renders_with_apps ... ok [INFO] [stdout] test admin_audit::tests::csv_field_escapes_inner_quotes ... ok [INFO] [stdout] test admin_audit::tests::csv_field_no_quoting_needed ... ok [INFO] [stdout] test admin_audit::tests::csv_field_quotes_on_comma ... ok [INFO] [stdout] test admin_applications::tests::edit_form_pre_populates ... ok [INFO] [stdout] test admin_applications::tests::unauthenticated_redirects_to_login ... ok [INFO] [stdout] test admin_applications::tests::update_redirects_to_detail ... ok [INFO] [stdout] test admin_applications::tests::update_unchecked_checkbox_sets_false ... ok [INFO] [stdout] test admin_audit::tests::csv_export_contains_data ... ok [INFO] [stdout] test admin_applications::tests::regenerate_secret_shows_new_secret ... ok [INFO] [stdout] test admin_audit::tests::csv_export_returns_correct_headers ... ok [INFO] [stdout] test admin_audit::tests::list_page_combined_filters ... ok [INFO] [stdout] test admin_audit::tests::export_respects_filters ... ok [INFO] [stdout] test admin_audit::tests::json_export_is_valid ... ok [INFO] [stdout] test admin_audit::tests::list_page_renders_empty ... ok [INFO] [stdout] test admin_audit::tests::list_page_invalid_filters_ignored ... ok [INFO] [stdout] test admin_audit::tests::list_page_filters_by_date_range ... ok [INFO] [stdout] test admin_audit::tests::page_numbers_few_pages ... ok [INFO] [stdout] test admin_audit::tests::page_numbers_windowed_first_page ... ok [INFO] [stdout] test admin_audit::tests::page_numbers_windowed_last_page ... ok [INFO] [stdout] test admin_audit::tests::page_numbers_windowed_middle ... ok [INFO] [stdout] test admin_audit::tests::page_numbers_zero_total ... ok [INFO] [stdout] test admin_audit::tests::list_page_filters_by_event_type ... ok [INFO] [stdout] test admin_audit::tests::list_page_filters_by_date_range_excludes_future ... ok [INFO] [stdout] test admin_audit::tests::unauthenticated_redirects_to_login ... ok [INFO] [stdout] test admin_audit::tests::list_page_filters_by_outcome ... ok [INFO] [stdout] test admin_audit::tests::list_page_paginates ... ok [INFO] [stdout] test admin_audit::tests::non_admin_gets_403 ... ok [INFO] [stdout] test admin_sessions::tests::list_page_renders_empty ... ok [INFO] [stdout] test admin_sessions::tests::non_admin_gets_403 ... ok [INFO] [stdout] test admin_audit::tests::list_page_filters_by_user ... ok [INFO] [stdout] test admin_audit::tests::list_page_renders_with_entries ... ok [INFO] [stdout] test admin_sessions::tests::list_page_invalid_user_filter_shows_all ... ok [INFO] [stdout] test admin_sessions::tests::revoke_all_nonexistent_user_returns_404 ... ok [INFO] [stdout] test admin_template_render_tests::admin_templates_emit_non_default_accent_vars ... ok [INFO] [stdout] test admin_template_render_tests::admin_templates_pass_guardrail ... ok [INFO] [stdout] test admin_template_render_tests::audit_log_truncate_filter_renders ... ok [INFO] [stdout] test admin_template_render_tests::dashboard_template_hides_admin_link_for_non_admin ... ok [INFO] [stdout] test admin_sessions::tests::list_page_renders_with_sessions ... ok [INFO] [stdout] test admin_template_render_tests::privacy_template_renders ... ok [INFO] [stdout] test admin_template_render_tests::dashboard_template_renders_and_passes_guardrail ... ok [INFO] [stdout] test admin_sessions::tests::list_page_filters_by_user_id ... ok [INFO] [stdout] test admin_template_render_tests::settings_template_admin_context_emits_non_default_accent_vars ... ok [INFO] [stdout] test admin_template_render_tests::settings_template_admin_context_passes_guardrail ... ok [INFO] [stdout] test admin_template_render_tests::settings_template_user_context_passes_guardrail ... ok [INFO] [stdout] test admin_template_render_tests::terms_template_renders ... ok [INFO] [stdout] test admin_template_render_tests::welcome_template_renders ... ok [INFO] [stdout] test admin_users::tests::user_detail_template_renders ... ok [INFO] [stdout] test all_standalone_templates_guard_tests::all_standalone_templates_are_tailwind_free ... ok [INFO] [stdout] test admin_sessions::tests::revoke_nonexistent_returns_404 ... ok [INFO] [stdout] test admin_sessions::tests::revoke_all_deletes_all_user_sessions ... ok [INFO] [stdout] test admin_sessions::tests::unauthenticated_redirects_to_login ... ok [INFO] [stdout] test admin_sessions::tests::revoke_deletes_session_and_redirects ... ok [INFO] [stdout] test consent_tests::consent_screen_redirects_to_login_unauthenticated ... ok [INFO] [stdout] test consent_tests::create_application_rejects_http_logo_url ... ok [INFO] [stdout] test tests::app_error_template_returns_500 ... ok [INFO] [stdout] test tests::base_html_has_fouc_free_mode_bootstrap ... ok [INFO] [stdout] test tests::base_html_renders_unchanged_when_body_content_not_overridden ... ok [INFO] [stdout] test tests::base_html_renders_without_tailwind ... ok [INFO] [stdout] test tests::base_html_without_forced_mode_emits_no_html_attrs ... ok [INFO] [stdout] test tests::config_defaults ... ok [INFO] [stdout] test tests::config_from_env ... ok [INFO] [stdout] test tests::decode_hex_key_invalid_hex ... ok [INFO] [stdout] test tests::decode_hex_key_odd_length ... ok [INFO] [stdout] test tests::decode_hex_key_valid ... ok [INFO] [stdout] test tests::decode_hex_key_wrong_length ... ok [INFO] [stdout] test tests::from_ref_impls ... ok [INFO] [stdout] test tests::health_endpoint ... ok [INFO] [stdout] test tests::render_helper_injects_shared_context ... ok [INFO] [stdout] test tests::render_preserves_caller_context ... ok [INFO] [stdout] test tests::static_file_serving ... ok [INFO] [stdout] test tests::template_env_loads ... ok [INFO] [stdout] test admin_sessions::tests::revoke_preserves_page_and_filter ... ok [INFO] [stdout] test consent_tests::consent_screen_hx_request_returns_fragment ... ok [INFO] [stdout] test consent_tests::consent_screen_redirects_for_trusted_app ... ok [INFO] [stdout] test consent_tests::consent_screen_applies_primary_color ... ok [INFO] [stdout] test consent_tests::consent_screen_default_button_color ... ok [INFO] [stdout] test consent_tests::consent_screen_renders_html_with_scope_descriptions ... ok [INFO] [stdout] test consent_tests::consent_screen_renders_logo_for_https_url ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 91 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 75.70s [INFO] [stdout] [INFO] [stderr] Running unittests saas/main.rs (/opt/rustwide/target/debug/deps/allowthem_saas-0b5dadae1759c4ca) [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test config::tests::saas_config_defaults ... ok [INFO] [stdout] test config::tests::decode_hex_key_valid ... ok [INFO] [stdout] test config::tests::decode_hex_key_wrong_length ... ok [INFO] [stdout] test tests::verify_domain_match ... ok [INFO] [stdout] test tests::verify_domain_exact_base ... ok [INFO] [stdout] test tests::health_returns_ok ... ok [INFO] [stdout] test tests::verify_domain_no_match ... ok [INFO] [stdout] test config::tests::saas_config_env_override ... ok [INFO] [stdout] test config::tests::decode_hex_key_invalid_chars ... ok [INFO] [stdout] test cli::tests::list_tenants_empty ... ok [INFO] [stdout] test cli::tests::mint_key_unknown_tenant ... ok [INFO] [stdout] test cli::tests::mint_key_prints_token ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.20s [INFO] [stdout] [INFO] [stderr] Running unittests standalone/bin/seed_branding.rs (/opt/rustwide/target/debug/deps/seed_branding-0b7b205cd13e0a5f) [INFO] [stderr] Running unittests client.rs (/opt/rustwide/target/debug/deps/allowthem_client-af011891a658b046) [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] [stdout] [INFO] [stdout] running 5 tests [INFO] [stderr] Running unittests core.rs (/opt/rustwide/target/debug/deps/allowthem_core-87de6d8eb9a5be85) [INFO] [stdout] test tests::builder_overrides ... ok [INFO] [stdout] test tests::clone_is_cheap ... ok [INFO] [stdout] test tests::builder_defaults ... ok [INFO] [stdout] test tests::authorize_url_unique_per_call ... ok [INFO] [stdout] test tests::authorize_url_contains_pkce ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 400 tests [INFO] [stdout] test access_tokens::tests::has_scope_absent ... ok [INFO] [stdout] test access_tokens::tests::has_scope_no_partial_match ... ok [INFO] [stdout] test access_tokens::tests::has_scope_present ... ok [INFO] [stdout] test api_tokens::tests::test_cascade_delete_removes_api_tokens ... ok [INFO] [stdout] test api_tokens::tests::test_create_and_validate_api_token ... ok [INFO] [stdout] test api_tokens::tests::test_deleted_api_token_rejected ... ok [INFO] [stdout] test api_tokens::tests::test_create_with_metadata ... ok [INFO] [stdout] test api_tokens::tests::test_expired_api_token_rejected ... ok [INFO] [stdout] test applications::tests::accent_hex_rejects_named_color ... ok [INFO] [stdout] test applications::tests::accent_hex_rejects_non_hex_chars ... ok [INFO] [stdout] test applications::tests::accent_hex_rejects_shorthand ... ok [INFO] [stdout] test applications::tests::accent_hex_valid ... ok [INFO] [stdout] test api_tokens::tests::test_list_api_tokens ... ok [INFO] [stdout] test applications::tests::branding_config_builder_tests::new_sets_application_name_leaves_rest_none ... ok [INFO] [stdout] test applications::tests::branding_config_builder_tests::with_accent_sets_hex_and_ink ... ok [INFO] [stdout] test applications::tests::branding_config_builder_tests::with_logo_url_sets_field ... ok [INFO] [stdout] test applications::tests::branding_config_builder_tests::with_primary_color_sets_field ... ok [INFO] [stdout] test applications::tests::branding_config_builder_tests::with_shader_cell_scale_sets_field ... ok [INFO] [stdout] test applications::tests::branding_config_builder_tests::with_splash_image_url_sets_field ... ok [INFO] [stdout] test applications::tests::branding_config_builder_tests::with_splash_primitive_sets_field ... ok [INFO] [stdout] test applications::tests::branding_config_builder_tests::with_splash_text_sets_field ... ok [INFO] [stdout] test applications::tests::application_serialization_omits_secret ... ok [INFO] [stdout] test applications::tests::client_id_chars_are_url_safe ... ok [INFO] [stdout] test applications::tests::client_id_has_ath_prefix ... ok [INFO] [stdout] test applications::tests::client_id_length_is_36 ... ok [INFO] [stdout] test applications::tests::branding_extracts_correct_fields ... ok [INFO] [stdout] test applications::tests::font_css_url_rejects_localhost ... ok [INFO] [stdout] test applications::tests::https_url_accepts_https ... ok [INFO] [stdout] test applications::tests::https_url_rejects_http ... ok [INFO] [stdout] test applications::tests::https_url_rejects_invalid ... ok [INFO] [stdout] test applications::tests::logo_url_http_127_is_valid ... ok [INFO] [stdout] test applications::tests::logo_url_http_localhost_is_valid ... ok [INFO] [stdout] test applications::tests::logo_url_http_non_localhost_is_rejected ... ok [INFO] [stdout] test applications::tests::logo_url_https_is_valid ... ok [INFO] [stdout] test applications::tests::logo_url_loopback_hostname_accepted ... ok [INFO] [stdout] test applications::tests::logo_url_loopback_ip_accepted ... ok [INFO] [stdout] test applications::tests::logo_url_not_a_url_is_rejected ... ok [INFO] [stdout] test applications::tests::logo_url_relative_is_rejected ... ok [INFO] [stdout] test applications::tests::primary_color_lowercase_hex ... ok [INFO] [stdout] test applications::tests::primary_color_missing_hash ... ok [INFO] [stdout] test applications::tests::primary_color_named_color_rejected ... ok [INFO] [stdout] test applications::tests::primary_color_non_hex_chars ... ok [INFO] [stdout] test applications::tests::primary_color_still_valid_after_refactor ... ok [INFO] [stdout] test applications::tests::primary_color_too_long ... ok [INFO] [stdout] test applications::tests::primary_color_too_short ... ok [INFO] [stdout] test applications::tests::primary_color_valid_hex ... ok [INFO] [stdout] test applications::tests::redirect_uri_empty_list_is_rejected ... ok [INFO] [stdout] test applications::tests::redirect_uri_exact_match_passes ... ok [INFO] [stdout] test applications::tests::redirect_uri_http_127_0_0_1_is_valid ... ok [INFO] [stdout] test applications::tests::redirect_uri_http_localhost_is_valid ... ok [INFO] [stdout] test applications::tests::redirect_uri_http_localhost_with_port_is_valid ... ok [INFO] [stdout] test applications::tests::redirect_uri_http_non_localhost_is_rejected ... ok [INFO] [stdout] test applications::tests::redirect_uri_https_is_valid ... ok [INFO] [stdout] test applications::tests::redirect_uri_list_parses_valid_json ... ok [INFO] [stdout] test access_tokens::tests::validate_access_token_missing_kid ... ok [INFO] [stdout] test applications::tests::redirect_uri_not_in_registered_is_rejected ... ok [INFO] [stdout] test applications::tests::redirect_uri_relative_is_rejected ... ok [INFO] [stdout] test applications::tests::redirect_uri_with_fragment_is_rejected ... ok [INFO] [stdout] test applications::tests::two_client_ids_differ ... ok [INFO] [stdout] test applications::tests::client_secret_verifies_round_trip ... ok [INFO] [stdout] test applications::tests::redirect_uri_list_returns_error_on_malformed_json ... ok [INFO] [stdout] test audit::tests::audit_cursor_encode_decode_roundtrip ... ok [INFO] [stdout] test audit::tests::list_audit_paginated_cursor_advances ... ok [INFO] [stdout] test audit::tests::list_audit_paginated_returns_first_page ... ok [INFO] [stdout] test access_tokens::tests::validate_access_token_valid ... ok [INFO] [stdout] test auth_client::tests::check_permission_returns_false_when_missing ... ok [INFO] [stdout] test auth_client::tests::check_permission_returns_true_direct ... ok [INFO] [stdout] test applications::tests::two_client_secrets_differ ... ok [INFO] [stdout] test applications::tests::wrong_secret_does_not_verify ... ok [INFO] [stdout] test auth_client::tests::login_url_returns_configured_path ... ok [INFO] [stdout] test access_tokens::tests::validate_access_token_unknown_kid ... ok [INFO] [stdout] test auth_client::tests::logout_nonexistent_token_succeeds ... ok [INFO] [stdout] test auth_client::tests::check_permission_returns_true_via_role ... ok [INFO] [stdout] test access_tokens::tests::validate_access_token_wrong_issuer ... ok [INFO] [stdout] test access_tokens::tests::validate_access_token_bad_signature has been running for over 60 seconds [INFO] [stdout] test access_tokens::tests::validate_access_token_expired has been running for over 60 seconds [INFO] [stdout] test auth_client::tests::check_role_returns_false_when_not_assigned ... ok [INFO] [stdout] test auth_client::tests::session_cookie_name_returns_config_name ... ok [INFO] [stdout] test auth_client::tests::check_role_returns_true_when_assigned ... ok [INFO] [stdout] test auth_client::tests::logout_deletes_session ... ok [INFO] [stdout] test auth_client::tests::resolve_highest_role_returns_correct_role_via_trait ... ok [INFO] [stdout] test auth_client::tests::validate_session_invalid_token_returns_none ... ok [INFO] [stdout] test auth_client::tests::resolve_highest_role_returns_none_via_trait ... ok [INFO] [stdout] test auth_client::tests::works_as_arc_dyn_auth_client ... ok [INFO] [stdout] test authorization::tests::code_is_43_chars ... ok [INFO] [stdout] test authorization::tests::code_is_url_safe ... ok [INFO] [stdout] test authorization::tests::different_codes_produce_different_hashes ... ok [INFO] [stdout] test authorization::tests::duplicate_openid_is_fine ... ok [INFO] [stdout] test authorization::tests::empty_scope_is_rejected ... ok [INFO] [stdout] test authorization::tests::hash_is_deterministic ... ok [INFO] [stdout] test authorization::tests::missing_openid_is_rejected ... ok [INFO] [stdout] test authorization::tests::two_codes_differ ... ok [INFO] [stdout] test authorization::tests::unknown_scope_is_rejected ... ok [INFO] [stdout] test authorization::tests::valid_scopes_all_three ... ok [INFO] [stdout] test authorization::tests::valid_scopes_openid_only ... ok [INFO] [stdout] test authorization::tests::whitespace_only_scope_is_rejected ... ok [INFO] [stdout] test csrf::tests::derive_differs_for_different_secrets ... ok [INFO] [stdout] test csrf::tests::derive_differs_for_different_tokens ... ok [INFO] [stdout] test csrf::tests::derive_is_deterministic ... ok [INFO] [stdout] test csrf::tests::output_is_64_hex_chars ... ok [INFO] [stdout] test csrf::tests::verify_accepts_correct_token ... ok [INFO] [stdout] test csrf::tests::verify_rejects_different_length ... ok [INFO] [stdout] test csrf::tests::verify_rejects_wrong_token ... ok [INFO] [stdout] test auth_client::tests::resolve_highest_role_works_as_arc_dyn ... ok [INFO] [stdout] test auth_client::tests::validate_session_expired_token_returns_none ... ok [INFO] [stdout] test auth_client::tests::validate_session_deleted_user_returns_none ... ok [INFO] [stdout] test access_tokens::tests::validate_access_token_expired ... ok [INFO] [stdout] test auth_client::tests::validate_session_inactive_user_returns_none ... ok [INFO] [stdout] test auth_client::tests::validate_session_valid_token_returns_user ... ok [INFO] [stdout] test db_tests::create_and_fetch_application_with_branding ... ok [INFO] [stdout] test db_tests::delete_application_not_found ... ok [INFO] [stdout] test db_tests::create_authorization_code_and_lookup_by_hash ... ok [INFO] [stdout] test db_tests::create_authorization_code_with_nonce ... ok [INFO] [stdout] test db_tests::create_application_returns_app_and_secret ... ok [INFO] [stdout] test db_tests::get_application_by_client_id_not_found ... ok [INFO] [stdout] test db_tests::get_application_not_found ... ok [INFO] [stdout] test db_tests::get_authorization_code_by_hash_returns_none ... ok [INFO] [stdout] test db_tests::create_user_without_custom_data ... ok [INFO] [stdout] test db_tests::create_user_with_custom_data ... ok [INFO] [stdout] test db_tests::get_branding_returns_none_for_missing_app ... ok [INFO] [stdout] test db_tests::custom_data_lifecycle ... ok [INFO] [stdout] test db_tests::delete_application_removes_row ... ok [INFO] [stdout] test db_tests::get_application_by_client_id_finds_app ... ok [INFO] [stdout] test db_tests::get_branding_returns_config_for_active_app ... ok [INFO] [stdout] test db_tests::get_branding_returns_none_for_inactive_app ... ok [INFO] [stdout] test db_tests::delete_custom_data_is_idempotent ... ok [INFO] [stdout] test db_tests::mark_authorization_code_used_not_found ... ok [INFO] [stdout] test db_tests::get_consent_returns_none_when_absent ... ok [INFO] [stdout] test db_tests::regenerate_client_secret_not_found ... ok [INFO] [stdout] test db_tests::regenerate_client_secret_rejects_public_client ... ok [INFO] [stdout] test db_tests::get_user_includes_custom_data ... ok [INFO] [stdout] test db_tests::search_audit_log_filters_by_event_type ... ok [INFO] [stdout] test db_tests::search_audit_log_filters_by_success ... ok [INFO] [stdout] test db_tests::search_audit_log_filters_by_user_id ... ok [INFO] [stdout] test db_tests::search_audit_log_null_user_email ... ok [INFO] [stdout] test db_tests::has_sufficient_consent_false_when_missing_scope ... ok [INFO] [stdout] test db_tests::search_audit_log_paginates ... ok [INFO] [stdout] test db_tests::search_audit_log_resolves_email ... ok [INFO] [stdout] test db_tests::search_audit_log_returns_all_when_no_filters ... ok [INFO] [stdout] test db_tests::set_custom_data_nonexistent_user_returns_not_found ... ok [INFO] [stdout] test db_tests::test_application_round_trip ... ok [INFO] [stdout] test db_tests::test_assign_and_unassign_role ... ok [INFO] [stdout] test db_tests::test_audit_log_filter_by_event_type ... ok [INFO] [stdout] test db_tests::test_audit_log_filter_by_user ... ok [INFO] [stdout] test db_tests::test_audit_log_null_user_id ... ok [INFO] [stdout] test db_tests::test_audit_log_round_trip ... ok [INFO] [stdout] test db_tests::test_audit_log_pagination ... ok [INFO] [stdout] test db_tests::test_composite_primary_key ... ok [INFO] [stdout] test db_tests::test_connect_invalid_url ... ok [INFO] [stdout] test db_tests::test_cascade_delete_user ... ok [INFO] [stdout] test db_tests::test_create_and_get_permission ... ok [INFO] [stdout] test db_tests::test_create_and_get_role ... ok [INFO] [stdout] test db_tests::test_create_and_lookup_session ... ok [INFO] [stdout] test db_tests::has_sufficient_consent_false_when_no_consent ... ok [INFO] [stdout] test db_tests::test_delete_nonexistent_user ... ok [INFO] [stdout] test db_tests::test_delete_role ... ok [INFO] [stdout] test db_tests::test_delete_session ... ok [INFO] [stdout] test db_tests::mark_authorization_code_used_sets_used_at ... ok [INFO] [stdout] test db_tests::has_sufficient_consent_true_when_superset ... ok [INFO] [stdout] test db_tests::test_delete_user_sessions ... ok [INFO] [stdout] test db_tests::test_double_init_is_safe ... ok [INFO] [stdout] test db_tests::test_duplicate_permission_name_returns_conflict ... ok [INFO] [stdout] test db_tests::test_duplicate_role_name_returns_conflict ... ok [INFO] [stdout] test db_tests::test_create_user ... ok [INFO] [stdout] test db_tests::test_email_validation ... ok [INFO] [stdout] test db_tests::test_expired_session_not_returned ... ok [INFO] [stdout] test db_tests::list_applications_ordered_by_created_at ... ok [INFO] [stdout] test db_tests::test_create_user_without_username ... ok [INFO] [stdout] test db_tests::test_find_for_login_not_found ... ok [INFO] [stdout] test db_tests::test_delete_user_crud ... ok [INFO] [stdout] test db_tests::test_foreign_key_enforcement ... ok [INFO] [stdout] test db_tests::test_foreign_keys_enabled_via_connect ... ok [INFO] [stdout] test db_tests::test_generate_token_length ... ok [INFO] [stdout] test db_tests::test_duplicate_email_returns_conflict ... ok [INFO] [stdout] test db_tests::test_find_for_login_by_email ... ok [INFO] [stdout] test db_tests::test_find_for_login_by_username ... ok [INFO] [stdout] test db_tests::test_get_user_not_found ... ok [INFO] [stdout] test db_tests::test_get_user_permissions_deduplicated ... ok [INFO] [stdout] test db_tests::test_get_user_roles ... ok [INFO] [stdout] test db_tests::test_duplicate_username_returns_conflict ... ok [INFO] [stdout] test db_tests::test_has_permission_no_assignment_returns_false ... ok [INFO] [stdout] test db_tests::test_has_permission_via_direct_assignment ... ok [INFO] [stdout] test db_tests::test_has_permission_via_role ... ok [INFO] [stdout] test db_tests::test_hash_differs_from_token ... ok [INFO] [stdout] test db_tests::test_has_role_true_and_false ... ok [INFO] [stdout] test db_tests::test_list_roles_empty_and_populated ... ok [INFO] [stdout] test db_tests::test_parse_session_cookie_missing ... ok [INFO] [stdout] test db_tests::test_parse_session_cookie_present ... ok [INFO] [stdout] test db_tests::test_get_user ... ok [INFO] [stdout] test db_tests::test_migrations_create_all_tables ... ok [INFO] [stdout] test db_tests::test_permission_round_trip ... ok [INFO] [stdout] test db_tests::test_session_cookie_format ... ok [INFO] [stdout] test db_tests::test_session_cookie_no_secure_in_dev ... ok [INFO] [stdout] test db_tests::test_role_permission_round_trip ... ok [INFO] [stdout] test db_tests::test_two_tokens_differ ... ok [INFO] [stdout] test db_tests::test_role_round_trip ... ok [INFO] [stdout] test db_tests::test_session_round_trip ... ok [INFO] [stdout] test db_tests::test_unassign_permission_from_role_and_user ... ok [INFO] [stdout] test db_tests::test_unique_email_constraint ... ok [INFO] [stdout] test db_tests::test_unique_username_constraint ... ok [INFO] [stdout] test db_tests::test_update_nonexistent_user ... ok [INFO] [stdout] test db_tests::regenerate_client_secret_returns_new_secret ... ok [INFO] [stdout] test db_tests::test_user_permission_round_trip ... ok [INFO] [stdout] test db_tests::test_user_role_round_trip ... ok [INFO] [stdout] test db_tests::test_user_round_trip ... ok [INFO] [stdout] test db_tests::test_validate_session_before_halfway_does_not_extend ... ok [INFO] [stdout] test access_tokens::tests::validate_access_token_bad_signature ... ok [INFO] [stdout] test db_tests::test_validate_session_non_expired_returns_session ... ok [INFO] [stdout] test db_tests::test_validate_session_past_halfway_extends ... ok [INFO] [stdout] test db_tests::test_validate_session_expired_returns_none ... ok [INFO] [stdout] test db_tests::update_application_not_found ... ok [INFO] [stdout] test db_tests::test_get_user_by_email ... ok [INFO] [stdout] test db_tests::test_update_user_username ... ok [INFO] [stdout] test db_tests::test_update_user_email ... ok [INFO] [stdout] test email::tests::log_sender_succeeds ... ok [INFO] [stdout] test email::tests::log_sender_succeeds_with_html ... ok [INFO] [stdout] test email::tests::trait_object_dispatch_works ... ok [INFO] [stdout] test db_tests::test_get_user_by_username ... ok [INFO] [stdout] test db_tests::test_update_user_active ... ok [INFO] [stdout] test db_tests::update_application_changes_fields ... ok [INFO] [stdout] test db_tests::test_find_for_login_verify_password ... ok [INFO] [stdout] test db_tests::upsert_consent_creates_and_retrieves ... ok [INFO] [stdout] test email_verification::tests::verify_email_fails_when_already_used ... ok [INFO] [stdout] test events::tests::oauth_source_carries_provider ... ok [INFO] [stdout] test events::tests::registered_event_constructs_and_clones ... ok [INFO] [stdout] test handle::tests::base_url_configured_returns_value ... ok [INFO] [stdout] test handle::tests::base_url_not_configured_returns_error ... ok [INFO] [stdout] test handle::tests::build_with_bad_url_fails ... ok [INFO] [stdout] test db_tests::update_application_sets_logo_url_and_primary_color ... ok [INFO] [stdout] test handle::tests::build_with_overrides ... ok [INFO] [stdout] test email_verification::tests::create_verification_returns_token ... ok [INFO] [stdout] test handle::tests::build_with_url_defaults ... ok [INFO] [stdout] test handle::tests::clear_session_cookie_defaults ... ok [INFO] [stdout] test handle::tests::clear_session_cookie_name_matches_session_cookie ... ok [INFO] [stdout] test handle::tests::clear_session_cookie_with_domain_and_no_secure ... ok [INFO] [stdout] test email_verification::tests::send_verification_email_succeeds ... ok [INFO] [stdout] test handle::tests::create_session_cookie_unknown_user ... ok [INFO] [stdout] test db_tests::upsert_consent_merges_scopes ... ok [INFO] [stdout] test handle::tests::login_no_password_hash ... ok [INFO] [stdout] test email_verification::tests::verify_email_fails_with_expired_token ... ok [INFO] [stdout] test handle::tests::login_unknown_identifier ... ok [INFO] [stdout] test email_verification::tests::verify_email_fails_with_garbage_token ... ok [INFO] [stdout] test handle::tests::parse_session_cookie_uses_config ... ok [INFO] [stdout] test email_verification::tests::verify_email_succeeds_with_valid_token ... ok [INFO] [stdout] test handle::tests::session_cookie_uses_config ... ok [INFO] [stdout] test handle::tests::signing_key_not_configured_returns_error ... ok [INFO] [stdout] test invitations::tests::consume_marks_invitation_consumed ... ok [INFO] [stdout] test invitations::tests::consume_twice_returns_gone ... ok [INFO] [stdout] test invitations::tests::consume_nonexistent_returns_not_found ... ok [INFO] [stdout] test invitations::tests::create_invitation_returns_raw_token_and_invitation ... ok [INFO] [stdout] test invitations::tests::create_open_invitation_has_no_email ... ok [INFO] [stdout] test invitations::tests::delete_invitation_removes_it ... ok [INFO] [stdout] test invitations::tests::delete_nonexistent_returns_not_found ... ok [INFO] [stdout] test invitations::tests::list_pending_excludes_expired_and_consumed ... ok [INFO] [stdout] test handle::tests::clone_shares_state ... ok [INFO] [stdout] test invitations::tests::validate_returns_invitation_for_valid_token ... ok [INFO] [stdout] test invitations::tests::validate_returns_none_for_expired_token ... ok [INFO] [stdout] test jwt::tests::test_claims_contain_roles_and_permissions ... ok [INFO] [stdout] test jwt::tests::test_expired_token_returns_error ... ok [INFO] [stdout] test jwt::tests::test_generate_and_validate_round_trip ... ok [INFO] [stdout] test jwt::tests::test_jti_is_unique_per_token ... ok [INFO] [stdout] test jwt::tests::test_wrong_secret_returns_error ... ok [INFO] [stdout] test mfa_encrypt::tests::decrypt_garbage_fails ... ok [INFO] [stdout] test mfa_encrypt::tests::decrypt_truncated_fails ... ok [INFO] [stdout] test mfa_encrypt::tests::decrypt_with_wrong_key_fails ... ok [INFO] [stdout] test mfa_encrypt::tests::different_encryptions_differ ... ok [INFO] [stdout] test mfa_encrypt::tests::encrypt_decrypt_round_trip ... ok [INFO] [stdout] test invitations::tests::validate_returns_none_for_garbage_token ... ok [INFO] [stdout] test oauth::tests::create_oauth_user_creates_linked_account ... ok [INFO] [stdout] test oauth::tests::create_oauth_user_creates_user_without_password ... ok [INFO] [stdout] test handle::tests::login_inactive_user ... ok [INFO] [stdout] test handle::tests::create_session_cookie_success ... ok [INFO] [stdout] test oauth::tests::create_state_returns_nonempty_string ... ok [INFO] [stdout] test oauth::tests::find_user_by_oauth_does_not_return_password_hash ... ok [INFO] [stdout] test oauth::tests::find_user_by_oauth_returns_none_when_not_linked ... ok [INFO] [stdout] test handle::tests::build_with_pool ... ok [INFO] [stdout] test invitations::tests::create_invitation_with_invited_by_stores_user_id ... ok [INFO] [stdout] test oauth::tests::pkce_challenge_differs_from_verifier ... ok [INFO] [stdout] test oauth::tests::pkce_challenge_is_base64url ... ok [INFO] [stdout] test oauth::tests::pkce_challenge_is_deterministic ... ok [INFO] [stdout] test oauth::tests::pkce_verifier_is_43_chars ... ok [INFO] [stdout] test oauth::tests::link_oauth_account_conflict_on_duplicate_provider_id ... ok [INFO] [stdout] test handle::tests::login_success ... ok [INFO] [stdout] test oauth::tests::create_oauth_user_conflict_on_duplicate_email ... ok [INFO] [stdout] test oauth::tests::validate_state_is_single_use ... ok [INFO] [stdout] test oauth::tests::validate_state_linking_user_id_is_none_for_login_flow ... ok [INFO] [stdout] test oauth::tests::validate_state_preserves_linking_user_id ... ok [INFO] [stdout] test oauth::tests::get_user_oauth_accounts_returns_empty_for_no_links ... ok [INFO] [stdout] test handle::tests::login_wrong_password ... ok [INFO] [stdout] test oauth::tests::validate_state_preserves_post_login_redirect ... ok [INFO] [stdout] test oauth_github::tests::authorize_url_contains_required_params ... ok [INFO] [stdout] test oauth_github::tests::authorize_url_does_not_contain_secret ... ok [INFO] [stdout] test oauth_github::tests::name_returns_github ... ok [INFO] [stdout] test oauth_google::tests::authorize_url_contains_required_params ... ok [INFO] [stdout] test oauth_google::tests::authorize_url_starts_with_google_endpoint ... ok [INFO] [stdout] test oauth_google::tests::name_returns_google ... ok [INFO] [stdout] test oauth_google::tests::new_accepts_string_and_str ... ok [INFO] [stdout] test oauth::tests::validate_state_returns_info_for_valid_state ... ok [INFO] [stdout] test oauth::tests::validate_state_returns_none_for_garbage ... ok [INFO] [stdout] test oauth::tests::validate_state_returns_none_for_post_login_redirect_when_not_set ... ok [INFO] [stdout] test password::tests::test_verify_garbage_hash_returns_error ... ok [INFO] [stdout] test password_reset::tests::create_reset_returns_none_for_unknown_email ... ok [INFO] [stdout] test oauth::tests::link_oauth_account_links_to_existing_user ... ok [INFO] [stdout] test oauth::tests::get_user_oauth_accounts_returns_linked_providers ... ok [INFO] [stdout] test password_reset::tests::send_password_reset_is_silent_for_unknown_email ... ok [INFO] [stdout] test oauth::tests::unlink_oauth_account_returns_false_when_not_linked ... ok [INFO] [stdout] test password_reset::tests::create_reset_returns_token_for_known_email ... ok [INFO] [stdout] test oauth::tests::unlink_oauth_account_removes_link ... ok [INFO] [stdout] test password_reset::tests::send_password_reset_succeeds_for_known_email ... ok [INFO] [stdout] test roles::tests::bootstrap_roles_creates_missing_roles ... ok [INFO] [stdout] test roles::tests::bootstrap_roles_empty_slice_returns_empty_vec ... ok [INFO] [stdout] test roles::tests::bootstrap_roles_mixed_existing_and_new ... ok [INFO] [stdout] test roles::tests::bootstrap_roles_idempotent ... ok [INFO] [stdout] test roles::tests::bootstrap_roles_returns_in_input_order ... ok [INFO] [stdout] test password::tests::test_verify_wrong_password_returns_false ... ok [INFO] [stdout] test password_reset::tests::validate_reset_token_returns_ids_for_valid_token ... ok [INFO] [stdout] test password_reset::tests::validate_reset_token_returns_none_for_garbage ... ok [INFO] [stdout] test password::tests::test_hash_and_verify_correct_password ... ok [INFO] [stdout] test roles::tests::update_role_changes_name_and_description ... ok [INFO] [stdout] test roles::tests::update_role_not_found_returns_error ... ok [INFO] [stdout] test signing_keys::tests::activate_nonexistent_returns_not_found ... ok [INFO] [stdout] test password::tests::test_two_hashes_of_same_password_differ ... ok [INFO] [stdout] test signing_keys::tests::build_discovery_fields ... ok [INFO] [stdout] test signing_keys::tests::build_jwks_empty ... ok [INFO] [stdout] test roles::tests::resolve_highest_role_returns_first_match ... ok [INFO] [stdout] test roles::tests::resolve_highest_role_only_considers_listed_roles ... ok [INFO] [stdout] test roles::tests::resolve_highest_role_returns_highest_when_user_has_all ... ok [INFO] [stdout] test roles::tests::resolve_highest_role_returns_none_for_empty_hierarchy ... ok [INFO] [stdout] test roles::tests::resolve_highest_role_returns_none_when_no_roles ... ok [INFO] [stdout] test password_reset::tests::execute_reset_changes_password_and_marks_token_used ... ok [INFO] [stdout] test signing_keys::tests::build_jwks_use_field_serializes_correctly ... ok [INFO] [stdout] test signing_keys::tests::decrypt_wrong_key_fails ... ok [INFO] [stdout] test signing_keys::tests::create_signing_key_stores_row ... ok [INFO] [stdout] test signing_keys::tests::build_jwks_output_format ... ok [INFO] [stdout] test token_cleanup::tests::cleanup_preserves_active_tokens ... ok [INFO] [stdout] test signing_keys::tests::decrypt_round_trip ... ok [INFO] [stdout] test token_cleanup::tests::cleanup_removes_expired_tokens ... ok [INFO] [stdout] test token_issuance::tests::compute_at_hash_deterministic ... ok [INFO] [stdout] test token_issuance::tests::compute_at_hash_known_value ... ok [INFO] [stdout] test token_cleanup::tests::cleanup_removes_used_tokens ... ok [INFO] [stdout] test signing_keys::tests::get_active_signing_key_no_active_returns_not_found ... ok [INFO] [stdout] test signing_keys::tests::create_and_decrypt_round_trip_through_db ... ok [INFO] [stdout] test signing_keys::tests::activate_signing_key_marks_active has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_bad_pkce ... ok [INFO] [stdout] test token_issuance::tests::access_token_has_correct_typ_header ... ok [INFO] [stdout] test signing_keys::tests::get_all_signing_keys_returns_all has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_id_token_at_hash_matches_access_token ... ok [INFO] [stdout] test signing_keys::tests::rotate_signing_key_single_active has been running for over 60 seconds [INFO] [stdout] test signing_keys::tests::get_all_signing_keys_returns_all ... ok [INFO] [stdout] test token_issuance::tests::exchange_expired_code ... ok [INFO] [stdout] test token_issuance::tests::exchange_creates_refresh_token_in_db has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_invalid_code has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_chained_rotation_succeeds ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_expired_fails has been running for over 60 seconds [INFO] [stdout] test signing_keys::tests::rotate_signing_key_single_active ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_invalid_hash_fails has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_no_scope_uses_original has been running for over 60 seconds [INFO] [stdout] test signing_keys::tests::activate_signing_key_marks_active ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_expired_fails ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_propagates_authorization_code_id ... ok [INFO] [stdout] test token_issuance::tests::exchange_creates_refresh_token_in_db ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_no_scope_uses_original ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_revoked_token_fails has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_revokes_old_token ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_scope_subset_succeeds ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_invalid_hash_fails ... ok [INFO] [stdout] test token_issuance::tests::exchange_invalid_code ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_scope_escalation_fails ... ok [INFO] [stdout] test token_issuance::tests::get_refresh_token_by_hash_returns_none_for_unknown ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_revoked_token_fails ... ok [INFO] [stdout] test token_issuance::tests::hash_refresh_token_deterministic ... ok [INFO] [stdout] test token_issuance::tests::exchange_valid_code ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_valid has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_wrong_client_fails has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_wrong_client_fails ... ok [INFO] [stdout] test token_issuance::tests::exchange_used_code_triggers_revocation has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_wrong_client has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::exchange_wrong_redirect_uri has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::get_refresh_token_by_hash_returns_token has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::get_refresh_token_by_hash_returns_token ... ok [INFO] [stdout] test token_issuance::tests::exchange_used_code_triggers_revocation ... ok [INFO] [stdout] test token_issuance::tests::refresh_token_is_43_chars ... ok [INFO] [stdout] test token_issuance::tests::refresh_token_is_url_safe ... ok [INFO] [stdout] test token_issuance::tests::mint_access_token_roundtrip ... ok [INFO] [stdout] test token_issuance::tests::id_token_has_correct_typ_header has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::id_token_has_correct_typ_header ... ok [INFO] [stdout] test token_issuance::tests::verify_pkce_s256_empty_verifier ... ok [INFO] [stdout] test token_issuance::tests::verify_pkce_s256_valid ... ok [INFO] [stdout] test token_issuance::tests::verify_pkce_s256_wrong_verifier ... ok [INFO] [stdout] test token_issuance::tests::exchange_wrong_client ... ok [INFO] [stdout] test totp::tests::abandoned_setup_replacement ... ok [INFO] [stdout] test totp::tests::create_and_enable_flow ... ok [INFO] [stdout] test totp::tests::disable_mfa_cleans_up ... ok [INFO] [stdout] test totp::tests::enable_rejects_wrong_code ... ok [INFO] [stdout] test totp::tests::double_enable_blocked ... ok [INFO] [stdout] test token_issuance::tests::exchange_wrong_redirect_uri ... ok [INFO] [stdout] test totp::tests::recovery_code_case_insensitive ... ok [INFO] [stdout] test totp::tests::mfa_not_configured_without_key ... ok [INFO] [stdout] test totp::tests::totp_uri_format ... ok [INFO] [stdout] test totp::tests::totp_validation ... ok [INFO] [stdout] test totp::tests::recovery_code_consumption ... ok [INFO] [stdout] test token_issuance::tests::mint_id_token_contains_nonce has been running for over 60 seconds [INFO] [stdout] test totp::tests::recovery_code_wrong ... ok [INFO] [stdout] test totp::tests::user_deletion_cascades ... ok [INFO] [stdout] test types::tests::userid_fromstr_parses_valid_uuid ... ok [INFO] [stdout] test types::tests::userid_fromstr_rejects_invalid ... ok [INFO] [stdout] test types::wavefunk_enum_tests::accent_ink_round_trip ... ok [INFO] [stdout] test types::wavefunk_enum_tests::mode_round_trip ... ok [INFO] [stdout] test types::wavefunk_enum_tests::splash_primitive_round_trip ... ok [INFO] [stdout] test totp::tests::verify_totp_no_mfa ... ok [INFO] [stdout] test token_issuance::tests::exchange_refresh_token_valid ... ok [INFO] [stdout] test token_issuance::tests::mint_id_token_contains_nonce ... ok [INFO] [stdout] test totp::tests::verify_totp_valid_and_invalid ... ok [INFO] [stdout] test users::tests::user_cursor_encode_decode_roundtrip ... ok [INFO] [stdout] test token_issuance::tests::mint_id_token_omits_nonce_when_none has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::revoke_refresh_token_idempotent has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::revoke_refresh_token_sets_revoked_at has been running for over 60 seconds [INFO] [stdout] test token_issuance::tests::mint_id_token_omits_nonce_when_none ... ok [INFO] [stdout] test users::tests::list_users_paginated_cursor_advances ... ok [INFO] [stdout] test users::tests::list_users_paginated_returns_first_page ... ok [INFO] [stdout] test token_issuance::tests::revoke_refresh_token_idempotent ... ok [INFO] [stdout] test token_issuance::tests::revoke_refresh_token_sets_revoked_at ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 400 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 522.66s [INFO] [stdout] [INFO] [stderr] Running unittests saas.rs (/opt/rustwide/target/debug/deps/allowthem_saas-e56a26726da64fbc) [INFO] [stdout] [INFO] [stdout] running 92 tests [INFO] [stdout] test api_keys::tests::mint_returns_raw_key_with_prefix ... ok [INFO] [stdout] test api_keys::tests::verify_expired_key_returns_none ... ok [INFO] [stdout] test api_keys::tests::verify_valid_key_returns_some ... ok [INFO] [stdout] test cache::tests::handle_cache_error_propagates ... ok [INFO] [stdout] test api_keys::tests::verify_updates_last_used_at ... ok [INFO] [stdout] test cache::tests::slug_cache_hit_skips_init ... ok [INFO] [stdout] test cache::tests::slug_cache_miss_calls_init ... ok [INFO] [stdout] test control_db::tests::control_db_runs_migrations ... ok [INFO] [stdout] test cache::tests::handle_cache_coalesces_concurrent ... ok [INFO] [stdout] test control_db::tests::api_key_hash_unique ... ok [INFO] [stdout] test control_db::tests::member_role_check_rejects_invalid ... ok [INFO] [stdout] test control_db::tests::tenant_slug_unique ... ok [INFO] [stdout] test control_db::tests::tenant_status_check_rejects_invalid ... ok [INFO] [stdout] test cache::tests::handle_cache_invalidate_forces_reinit ... ok [INFO] [stdout] test api_keys::tests::verify_revoked_key_returns_none ... ok [INFO] [stdout] test control_db::tests::usage_for_tenant_returns_records ... ok [INFO] [stdout] test manage::applications::tests::cursor_encodes_and_decodes ... ok [INFO] [stdout] test manage::applications::tests::http_create_returns_201 ... ok [INFO] [stdout] test api_keys::tests::verify_garbage_key_returns_none ... ok [INFO] [stdout] test api_keys::tests::list_excludes_revoked_keys ... ok [INFO] [stdout] test manage::applications::tests::http_delete_returns_204 ... ok [INFO] [stdout] test manage::applications::tests::http_get_missing_returns_404 ... ok [INFO] [stdout] test api_keys::tests::revoke_is_idempotent ... ok [INFO] [stdout] test manage::applications::tests::http_update_returns_204 ... ok [INFO] [stdout] test manage::applications::tests::list_returns_items_in_created_at_order ... ok [INFO] [stdout] test manage::applications::tests::list_empty_returns_empty_vec ... ok [INFO] [stdout] test manage::permissions::tests::create_permission_conflict_returns_409 ... ok [INFO] [stdout] test manage::applications::tests::http_list_empty_returns_200 ... ok [INFO] [stdout] test manage::logs::tests::list_logs_returns_empty ... ok [INFO] [stdout] test manage::permissions::tests::create_permission_returns_201 ... ok [INFO] [stdout] test manage::roles::tests::create_role_conflict_returns_409 ... ok [INFO] [stdout] test manage::applications::tests::list_cursor_paginates_correctly ... ok [INFO] [stdout] test manage::permissions::tests::list_permissions_returns_empty ... ok [INFO] [stdout] test manage::roles::tests::create_role_returns_201 ... ok [INFO] [stdout] test manage::roles::tests::delete_role_returns_204 ... ok [INFO] [stdout] test manage::tests::admin_key_extractor_passes_admin_scope ... ok [INFO] [stdout] test manage::tests::admin_key_extractor_rejects_missing_key ... ok [INFO] [stdout] test manage::tests::list_response_serializes_correctly ... ok [INFO] [stdout] test manage::tests::malformed_bearer_returns_401 ... ok [INFO] [stdout] test manage::tests::manage_error_conflict_is_409 ... ok [INFO] [stdout] test manage::tests::manage_error_invalid_request_is_400 ... ok [INFO] [stdout] test manage::roles::tests::delete_role_not_found_returns_404 ... ok [INFO] [stdout] test manage::roles::tests::list_roles_returns_empty ... ok [INFO] [stdout] test manage::tests::missing_auth_header_returns_401 ... ok [INFO] [stdout] test manage::tests::rate_limit_triggers_429 ... ok [INFO] [stdout] test manage::tests::unknown_key_returns_401 ... ok [INFO] [stdout] test manage::usage::tests::usage_returns_empty_for_new_tenant ... ok [INFO] [stdout] test manage::sessions::tests::revoke_session_not_found_returns_404 ... ok [INFO] [stdout] test manage::roles::tests::patch_role_updates_name ... ok [INFO] [stdout] test manage::users::tests::get_user_not_found_returns_404 ... ok [INFO] [stdout] test manage::users::tests::delete_user_not_found_returns_404 ... ok [INFO] [stdout] test manage::users::tests::list_users_returns_empty ... ok [INFO] [stdout] test manage::users::tests::get_user_returns_data ... ok [INFO] [stdout] test router::tests::debounce_inserts_into_seen_times ... ok [INFO] [stdout] test router::tests::debounce_suppresses_rapid_repeat ... ok [INFO] [stdout] test router::tests::extractor_passes_when_active ... ok [INFO] [stdout] test router::tests::extractor_passes_when_no_meta ... ok [INFO] [stdout] test router::tests::extractor_returns_503_when_suspended ... ok [INFO] [stdout] test router::tests::parse_slug_does_not_reject_reserved ... ok [INFO] [stdout] test router::tests::parse_slug_empty_host_returns_none ... ok [INFO] [stdout] test router::tests::parse_slug_lowercases_slug ... ok [INFO] [stdout] test router::tests::parse_slug_multi_level_returns_none ... ok [INFO] [stdout] test router::tests::parse_slug_root_domain_returns_root ... ok [INFO] [stdout] test router::tests::parse_slug_root_with_port ... ok [INFO] [stdout] test router::tests::parse_slug_strips_port ... ok [INFO] [stdout] test router::tests::parse_slug_subdomain_returns_slug ... ok [INFO] [stdout] test router::tests::parse_slug_unknown_domain_returns_none ... ok [INFO] [stdout] test router::tests::parse_slug_unrelated_subdomain_returns_none ... ok [INFO] [stdout] test router::tests::pre_warm_noop_when_no_active_tenants ... ok [INFO] [stdout] test router::tests::pre_warm_swallows_error_for_missing_tenant_db ... ok [INFO] [stdout] test tenants::tests::delete_sets_status ... ok [INFO] [stdout] test manage::sessions::tests::list_sessions_returns_list ... ok [INFO] [stdout] test manage::users::tests::patch_user_diff_roles ... ok [INFO] [stdout] test tenants::tests::provision_slug_invalid ... ok [INFO] [stdout] test manage::sessions::tests::revoke_session_returns_204 ... ok [INFO] [stdout] test tenants::tests::provision_slug_reserved ... ok [INFO] [stdout] test tenants::tests::suspend_sets_status ... ok [INFO] [stdout] test tenants::tests::tenant_by_id_found ... ok [INFO] [stdout] test tenants::tests::tenant_by_owner_email ... ok [INFO] [stdout] test tenants::tests::tenant_by_slug_found ... ok [INFO] [stdout] test tenants::tests::tenant_by_slug_not_found ... ok [INFO] [stdout] test tenants::tests::update_name_persists ... ok [INFO] [stdout] test tenants::tests::update_name_unknown_id ... ok [INFO] [stdout] test manage::users::tests::delete_user_returns_204 ... ok [INFO] [stdout] test tenants::tests::provision_happy_path ... ok [INFO] [stdout] test manage::users::tests::patch_user_toggles_active ... ok [INFO] [stdout] test tenants::tests::provision_slug_conflict ... ok [INFO] [stdout] test tenants::tests::update_slug_no_sessions ... ok [INFO] [stdout] test tenants::tests::provision_unwind_no_row_on_slug_conflict ... ok [INFO] [stdout] test tenants::tests::update_slug_with_sessions ... ok [INFO] [stdout] test manage::logs::tests::list_logs_cursor_returns_next ... ok [INFO] [stdout] test manage::users::tests::list_users_cursor_returns_next ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 92 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.27s [INFO] [stdout] [INFO] [stderr] Running unittests server.rs (/opt/rustwide/target/debug/deps/allowthem_server-1c045f84a483d31a) [INFO] [stdout] [INFO] [stdout] running 378 tests [INFO] [stdout] test all_routes::tests::build_fails_no_routes_selected ... ok [INFO] [stdout] test all_routes::tests::default_branding_absent_by_default ... ok [INFO] [stdout] test all_routes::tests::default_branding_setter_stores_value ... ok [INFO] [stdout] test all_routes::tests::build_fails_mfa_without_issuer ... ok [INFO] [stdout] test all_routes::tests::build_fails_events_without_base_url ... ok [INFO] [stdout] test all_routes::tests::build_fails_oauth_without_providers ... ok [INFO] [stdout] test all_routes::tests::build_fails_password_reset_without_email_sender ... ok [INFO] [stdout] test all_routes::tests::build_fails_missing_base_url ... ok [INFO] [stdout] test auth_template_guard_tests::accent_mfa_recovery ... ok [INFO] [stdout] test auth_template_guard_tests::accent_mfa_challenge ... ok [INFO] [stdout] test auth_template_guard_tests::accent_consent ... ok [INFO] [stdout] test all_routes::tests::build_with_invalid_schema_returns_error ... ok [INFO] [stdout] test auth_template_guard_tests::accent_register ... ok [INFO] [stdout] test auth_template_guard_tests::accent_forgot_password ... ok [INFO] [stdout] test auth_template_guard_tests::accent_reset_password ... ok [INFO] [stdout] test auth_template_guard_tests::accent_login ... ok [INFO] [stdout] test auth_template_guard_tests::login_uses_design_system_form_components ... ok [INFO] [stdout] test auth_template_guard_tests::page_consent ... ok [INFO] [stdout] test auth_template_guard_tests::oob_head_renders_title_and_screen_label ... ok [INFO] [stdout] test auth_template_guard_tests::css_cascade_order ... ok [INFO] [stdout] test auth_template_guard_tests::page_forgot_password ... ok [INFO] [stdout] test all_routes::tests::build_succeeds_for_simple_routes ... ok [INFO] [stdout] test auth_template_guard_tests::accent_mfa_setup ... ok [INFO] [stdout] test auth_template_guard_tests::page_mfa_challenge ... ok [INFO] [stdout] test auth_template_guard_tests::page_register ... ok [INFO] [stdout] test auth_template_guard_tests::page_login ... ok [INFO] [stdout] test auth_template_guard_tests::page_mfa_recovery ... ok [INFO] [stdout] test auth_template_guard_tests::page_mfa_setup ... ok [INFO] [stdout] test auth_template_guard_tests::partial_forgot_password ... ok [INFO] [stdout] test auth_template_guard_tests::partial_consent ... ok [INFO] [stdout] test auth_template_guard_tests::partial_mfa_recovery ... ok [INFO] [stdout] test auth_template_guard_tests::page_reset_password ... ok [INFO] [stdout] test auth_template_guard_tests::partial_login ... ok [INFO] [stdout] test auth_template_guard_tests::register_uses_design_system_form_components ... ok [INFO] [stdout] test auth_template_guard_tests::partial_register ... ok [INFO] [stdout] test auth_template_guard_tests::partial_reset_password ... ok [INFO] [stdout] test all_server_templates_guard_tests::all_server_templates_are_tailwind_free ... ok [INFO] [stdout] test auth_template_guard_tests::partial_mfa_challenge ... ok [INFO] [stdout] test auth_template_guard_tests::partial_mfa_setup ... ok [INFO] [stdout] test authorize_routes::tests::missing_client_id_returns_400 ... ok [INFO] [stdout] test authorize_routes::tests::missing_state_redirects_with_error ... ok [INFO] [stdout] test authorize_routes::tests::inactive_application_returns_400 ... ok [INFO] [stdout] test authorize_routes::tests::missing_pkce_redirects_with_error ... ok [INFO] [stdout] test authorize_routes::tests::bad_response_type_redirects_with_error ... ok [INFO] [stdout] test authorize_routes::tests::invalid_scope_redirects_with_error ... ok [INFO] [stdout] test authorize_routes::tests::unknown_client_id_returns_400 ... ok [INFO] [stdout] test authorize_routes::tests::post_deny_redirects_with_access_denied_303 ... ok [INFO] [stdout] test authorize_routes::tests::post_with_invalid_client_id_returns_400 ... ok [INFO] [stdout] test authorize_routes::tests::post_approve_creates_code_and_redirects_303 ... ok [INFO] [stdout] test authorize_routes::tests::existing_consent_skips_consent_screen ... ok [INFO] [stdout] test authorize_routes::tests::post_unauthenticated_redirects_to_login ... ok [INFO] [stdout] test bearer::tests::test_expired_token_returns_401 ... ok [INFO] [stdout] test authorize_routes::tests::trusted_app_skips_consent_and_redirects_with_code ... ok [INFO] [stdout] test authorize_routes::tests::unauthenticated_redirects_to_login ... ok [INFO] [stdout] test bearer::tests::test_inactive_user_returns_401 ... ok [INFO] [stdout] test branding::tests::branding_context_none_emits_allowthem_defaults ... ok [INFO] [stdout] test branding::tests::branding_context_some_projects_all_keys ... ok [INFO] [stdout] test branding::tests::branding_ctx_none_gives_allowthem_defaults ... ok [INFO] [stdout] test branding::tests::branding_ctx_some_projects_fields ... ok [INFO] [stdout] test branding::tests::default_branding_ref_none_passes_through ... ok [INFO] [stdout] test branding::tests::default_branding_ref_some_unwraps_to_inner_branding ... ok [INFO] [stdout] test branding::tests::derive_ink_invalid_hex_defaults_to_white ... ok [INFO] [stdout] test branding::tests::derive_ink_pastels_pair_with_black ... ok [INFO] [stdout] test branding::tests::derive_ink_pure_white_pairs_with_black ... ok [INFO] [stdout] test branding::tests::derive_ink_saturated_darks_pair_with_white ... ok [INFO] [stdout] test branding::tests::resolve_accent_branded_quad_pins_color_in_both_modes ... ok [INFO] [stdout] test branding::tests::resolve_accent_defaults_without_branding ... ok [INFO] [stdout] test branding::tests::resolve_accent_falls_back_to_primary_color ... ok [INFO] [stdout] test branding::tests::resolve_accent_honors_explicit_ink ... ok [INFO] [stdout] test branding::tests::resolve_accent_uses_accent_hex_over_primary_color ... ok [INFO] [stdout] test branding::tests::resolve_branding_returns_default_when_client_id_does_not_match ... ok [INFO] [stdout] test branding::tests::resolve_branding_returns_default_when_client_id_is_none ... ok [INFO] [stdout] test branding::tests::resolve_branding_returns_none_when_no_client_and_no_default ... ok [INFO] [stdout] test browser_templates::tests::default_env_loads_all_browser_templates ... ok [INFO] [stdout] test browser_templates::tests::render_produces_html ... ok [INFO] [stdout] test consent_routes::tests::render_consent_fragment_composes_main_and_oob_head ... ok [INFO] [stdout] test consent_routes::tests::render_consent_fragment_renders_nonce_when_present ... ok [INFO] [stdout] test authorize_routes::tests::unregistered_redirect_uri_returns_400 ... ok [INFO] [stdout] test bearer::tests::test_no_auth_header_returns_401 ... ok [INFO] [stdout] test bearer::tests::test_invalid_token_returns_401 ... ok [INFO] [stdout] test bearer::tests::test_malformed_bearer_returns_401 ... ok [INFO] [stdout] test authorize_routes::tests::wrong_pkce_method_redirects_with_error ... ok [INFO] [stdout] test cors::tests::t6_empty_application_list_rejects_all_origins ... ok [INFO] [stdout] test bearer::tests::test_valid_bearer_returns_user ... ok [INFO] [stdout] test csrf::tests::head_does_not_require_csrf ... ok [INFO] [stdout] test csrf::tests::pre_auth_get_does_not_reset_existing_csrf_pre_cookie ... ok [INFO] [stdout] test csrf::tests::pre_auth_get_sets_csrf_pre_cookie ... ok [INFO] [stdout] test csrf::tests::pre_auth_post_accepts_form_token ... ok [INFO] [stdout] test csrf::tests::pre_auth_post_accepts_matching_cookie_and_header ... ok [INFO] [stdout] test csrf::tests::pre_auth_post_rejects_mismatched_token ... ok [INFO] [stdout] test csrf::tests::returns_500_when_csrf_key_not_configured ... ok [INFO] [stdout] test csrf::tests::pre_auth_post_rejects_missing_cookie ... ok [INFO] [stdout] test cors::tests::t2_disallowed_origin_returns_403 ... ok [INFO] [stdout] test cors::tests::t1_allowed_origin_passes_through ... ok [INFO] [stdout] test cors::tests::t3_preflight_allowed_origin_returns_204 ... ok [INFO] [stdout] test custom_fields::tests::extract_and_coerce_checkbox_absent_is_false ... ok [INFO] [stdout] test custom_fields::tests::extract_and_coerce_checkbox_present ... ok [INFO] [stdout] test custom_fields::tests::extract_and_coerce_integer_fields ... ok [INFO] [stdout] test custom_fields::tests::extract_and_coerce_number_fields ... ok [INFO] [stdout] test custom_fields::tests::extract_and_coerce_string_fields ... ok [INFO] [stdout] test custom_fields::tests::extract_field_descriptors_produces_correct_types ... ok [INFO] [stdout] test custom_fields::tests::extract_ignores_non_custom_data_keys ... ok [INFO] [stdout] test custom_fields::tests::extract_includes_empty_required_strings ... ok [INFO] [stdout] test custom_fields::tests::extract_omits_empty_optional_strings ... ok [INFO] [stdout] test custom_fields::tests::format_validation_errors_maps_to_fields ... ok [INFO] [stdout] test custom_fields::tests::title_case_conversion ... ok [INFO] [stdout] test custom_fields::tests::validate_custom_schema_accepts_empty_properties ... ok [INFO] [stdout] test custom_fields::tests::validate_custom_schema_accepts_flat_object ... ok [INFO] [stdout] test custom_fields::tests::validate_custom_schema_accepts_no_properties ... ok [INFO] [stdout] test custom_fields::tests::validate_custom_schema_rejects_arrays ... ok [INFO] [stdout] test custom_fields::tests::validate_custom_schema_rejects_nested_objects ... ok [INFO] [stdout] test custom_fields::tests::validate_custom_schema_rejects_non_object_type ... ok [INFO] [stdout] test authorize_routes::tests::untrusted_app_without_consent_returns_consent_needed ... ok [INFO] [stdout] test cors::tests::t4_preflight_disallowed_origin_returns_403 ... ok [INFO] [stdout] test cors::tests::t5_no_origin_passes_through_unchanged ... ok [INFO] [stdout] test csrf::tests::session_bound_get_does_not_set_csrf_pre_cookie ... ok [INFO] [stdout] test csrf::tests::session_bound_post_accepts_derived_token_in_header ... ok [INFO] [stdout] test csrf::tests::session_bound_post_accepts_form_token ... ok [INFO] [stdout] test csrf::tests::session_bound_post_rejects_wrong_token ... ok [INFO] [stdout] test extractors::tests::browser_admin_user_admin_succeeds ... ok [INFO] [stdout] test extractors::tests::browser_admin_user_non_admin_gets_403 ... ok [INFO] [stdout] test extractors::tests::browser_admin_user_unauthenticated_redirects ... ok [INFO] [stdout] test extractors::tests::browser_auth_expired_session_redirects ... ok [INFO] [stdout] test extractors::tests::browser_auth_valid_session_returns_user ... ok [INFO] [stdout] test extractors::tests::expired_session_returns_401 ... ok [INFO] [stdout] test extractors::tests::browser_auth_no_cookie_redirects ... ok [INFO] [stdout] test login_routes::tests::get_login_preserves_next_param ... ok [INFO] [stdout] test extractors::tests::garbage_cookie_returns_401 ... ok [INFO] [stdout] test login_routes::tests::get_login_renders_form ... ok [INFO] [stdout] test extractors::tests::inactive_user_returns_401 ... ok [INFO] [stdout] test login_routes::tests::login_default_emits_light_mode_accent_override ... ok [INFO] [stdout] test extractors::tests::no_cookie_returns_401 ... ok [INFO] [stdout] test extractors::tests::optional_no_cookie_returns_none ... ok [INFO] [stdout] test login_routes::tests::login_with_invalid_client_id_shows_default ... ok [INFO] [stdout] test login_routes::tests::login_without_client_id_shows_default ... ok [INFO] [stdout] test login_routes::tests::post_login_csrf_required ... ok [INFO] [stdout] test extractors::tests::optional_valid_session_returns_user ... ok [INFO] [stdout] test extractors::tests::valid_session_returns_user ... ok [INFO] [stdout] test login_routes::tests::get_login_redirects_when_authenticated ... ok [INFO] [stdout] test login_routes::tests::login_branded_emits_same_accent_in_both_modes ... ok [INFO] [stdout] test login_routes::tests::login_register_link_carries_client_id ... ok [INFO] [stdout] test login_routes::tests::login_with_client_id_shows_branding ... ok [INFO] [stdout] test login_routes::tests::post_login_nonexistent_user_shows_error ... ok [INFO] [stdout] test login_routes::tests::render_login_fragment_composes_main_and_oob_head ... ok [INFO] [stdout] test login_routes::tests::validate_next_allows_simple_paths ... ok [INFO] [stdout] test login_routes::tests::validate_next_rejects_open_redirects ... ok [INFO] [stdout] test logout_routes::tests::logout_clears_session_cookie ... ok [INFO] [stdout] test login_routes::tests::post_login_inactive_user_shows_error ... ok [INFO] [stdout] test login_routes::tests::post_login_success_redirects ... ok [INFO] [stdout] test login_routes::tests::branded_login_post_failure_preserves_branding ... ok [INFO] [stdout] test login_routes::tests::post_login_success_redirects_to_next ... ok [INFO] [stdout] test logout_routes::tests::logout_without_cookie_redirects_gracefully ... ok [INFO] [stdout] test mfa_page_routes::tests::derive_issuer_strips_http_scheme ... ok [INFO] [stdout] test mfa_page_routes::tests::derive_issuer_strips_https_scheme ... ok [INFO] [stdout] test mfa_page_routes::tests::derive_issuer_strips_path ... ok [INFO] [stdout] test mfa_page_routes::tests::derive_issuer_strips_port ... ok [INFO] [stdout] test login_routes::tests::post_login_with_mfa_enabled_redirects_to_challenge_without_session ... ok [INFO] [stdout] test mfa_page_routes::tests::get_mfa_challenge_with_invalid_token_redirects_to_login ... ok [INFO] [stdout] test logout_routes::tests::logout_records_audit_event ... ok [INFO] [stdout] test login_routes::tests::post_login_wrong_password_shows_error ... ok [INFO] [stdout] test logout_routes::tests::logout_destroys_session_in_db ... ok [INFO] [stdout] test logout_routes::tests::logout_redirects_to_login_with_303 ... ok [INFO] [stdout] test mfa_page_routes::tests::post_mfa_challenge_invalid_token_redirects_to_login ... ok [INFO] [stdout] test logout_routes::tests::post_logout_redirects_to_login ... ok [INFO] [stdout] test mfa_page_routes::tests::get_mfa_challenge_with_valid_token_renders_form ... ok [INFO] [stdout] test mfa_page_routes::tests::get_mfa_challenge_hx_request_returns_fragment ... ok [INFO] [stdout] test mfa_page_routes::tests::get_mfa_setup_hx_request_returns_fragment ... ok [INFO] [stdout] test mfa_page_routes::tests::get_mfa_setup_is_idempotent ... ok [INFO] [stdout] test mfa_page_routes::tests::get_mfa_setup_renders_secret ... ok [INFO] [stdout] test mfa_page_routes::tests::post_mfa_challenge_valid_totp_creates_session_and_emits_login ... ok [INFO] [stdout] test mfa_page_routes::tests::post_mfa_challenge_wrong_totp_does_not_consume_challenge ... ok [INFO] [stdout] test mfa_page_routes::tests::post_mfa_challenge_wrong_recovery_code_shows_error ... ok [INFO] [stdout] test mfa_page_routes::tests::qr_data_uri_empty_input_still_works ... ok [INFO] [stdout] test mfa_page_routes::tests::qr_data_uri_produces_svg_data_uri ... ok [INFO] [stdout] test mfa_page_routes::tests::render_mfa_challenge_fragment_composes_main_and_oob_head ... ok [INFO] [stdout] test mfa_page_routes::tests::render_mfa_recovery_fragment_composes_main_and_oob_head ... ok [INFO] [stdout] test mfa_page_routes::tests::render_mfa_setup_fragment_composes_main_and_oob_head ... ok [INFO] [stdout] test mfa_page_routes::tests::post_mfa_confirm_hx_request_returns_recovery_fragment ... ok [INFO] [stdout] test mfa_page_routes::tests::post_mfa_confirm_invalid_code_shows_error_and_does_not_enable ... ok [INFO] [stdout] test mfa_page_routes::tests::post_mfa_disable_removes_mfa_and_redirects ... ok [INFO] [stdout] test mfa_page_routes::tests::post_mfa_confirm_valid_code_enables_mfa_and_renders_recovery_codes ... ok [INFO] [stdout] test mfa_page_routes::tests::post_regenerate_recovery_codes_renders_new_codes ... ok [INFO] [stdout] test mfa_page_routes::tests::post_regenerate_recovery_codes_without_mfa_redirects ... ok [INFO] [stdout] test mfa_routes::tests::confirm_with_invalid_code_fails ... ok [INFO] [stdout] test mfa_routes::tests::count_returns_remaining_codes ... ok [INFO] [stdout] test mfa_routes::tests::setup_requires_auth ... ok [INFO] [stdout] test mfa_routes::tests::confirm_with_valid_code_enables_mfa ... ok [INFO] [stdout] test mfa_routes::tests::verify_with_invalid_token_fails ... ok [INFO] [stdout] test mfa_routes::tests::disable_removes_mfa ... ok [INFO] [stdout] test mfa_routes::tests::recover_with_valid_recovery_code_creates_session ... ok [INFO] [stdout] test mfa_routes::tests::recover_with_already_used_code_fails ... ok [INFO] [stdout] test mfa_routes::tests::recover_with_invalid_code_fails ... ok [INFO] [stdout] test mfa_routes::tests::regenerate_returns_10_new_codes ... ok [INFO] [stdout] test mfa_routes::tests::verify_with_recovery_code_creates_session ... ok [INFO] [stdout] test mfa_routes::tests::setup_returns_otpauth_uri ... ok [INFO] [stdout] test mfa_routes::tests::verify_with_valid_totp_creates_session ... ok [INFO] [stdout] test mfa_routes::tests::verify_wrong_code_does_not_consume_challenge ... ok [INFO] [stdout] test mfa_routes::tests::verify_with_wrong_code_fails ... ok [INFO] [stdout] test nav::tests::admin_deep_path_highlights_applications ... ok [INFO] [stdout] test nav::tests::admin_nav_omits_users_until_route_lands ... ok [INFO] [stdout] test nav::tests::logout_path_marks_sign_out_active ... ok [INFO] [stdout] test nav::tests::unrelated_path_has_no_active_item ... ok [INFO] [stdout] test nav::tests::user_gets_account_group_only_settings_active ... ok [INFO] [stdout] test oauth_bearer::tests::test_invalid_jwt_returns_401 ... ok [INFO] [stdout] test oauth_bearer::tests::test_malformed_bearer_returns_401 ... ok [INFO] [stdout] test oauth_bearer::tests::test_missing_auth_header_returns_401_with_www_authenticate ... ok [INFO] [stdout] test oauth_routes::tests::authorize_redirects_to_provider ... ok [INFO] [stdout] test oauth_routes::tests::authorize_unknown_provider_returns_404 ... ok [INFO] [stdout] test middleware::tests::authenticated_request_passes_through ... ok [INFO] [stdout] test oauth_routes::tests::callback_creates_new_user_and_session ... ok [INFO] [stdout] test oauth_routes::tests::callback_fresh_user_publishes_oauth_registered ... ok [INFO] [stdout] test oauth_routes::tests::callback_invalid_state_returns_400 ... ok [INFO] [stdout] test middleware::tests::require_role_with_correct_role_passes ... ok [INFO] [stdout] test oauth_routes::tests::callback_respects_post_login_redirect ... ok [INFO] [stdout] test oauth_routes::tests::callback_returning_oauth_user_does_not_publish ... ok [INFO] [stdout] test oauth_routes::tests::callback_returns_existing_user_on_repeat_login ... ok [INFO] [stdout] test middleware::tests::require_permission_with_correct_permission_passes ... ok [INFO] [stdout] test middleware::tests::require_permission_with_missing_permission_returns_403 ... ok [INFO] [stdout] test middleware::tests::require_role_with_wrong_role_returns_403 ... ok [INFO] [stdout] test oauth_routes::tests::link_authorize_requires_authentication ... ok [INFO] [stdout] test oauth_routes::tests::list_linked_providers_requires_authentication ... ok [INFO] [stdout] test oauth_routes::tests::callback_links_existing_password_user_by_email ... ok [INFO] [stdout] test middleware::tests::unauthenticated_request_returns_401 ... ok [INFO] [stdout] test oauth_routes::tests::sanitize_redirect_absolute_url ... ok [INFO] [stdout] test oauth_routes::tests::sanitize_redirect_no_leading_slash ... ok [INFO] [stdout] test oauth_routes::tests::sanitize_redirect_none ... ok [INFO] [stdout] test oauth_routes::tests::sanitize_redirect_protocol_relative ... ok [INFO] [stdout] test oauth_routes::tests::sanitize_redirect_root ... ok [INFO] [stdout] test oauth_routes::tests::sanitize_redirect_scheme_in_path ... ok [INFO] [stdout] test oauth_routes::tests::sanitize_redirect_valid_path ... ok [INFO] [stdout] test oauth_routes::tests::callback_linking_existing_email_does_not_publish ... ok [INFO] [stdout] test oauth_routes::tests::unlink_requires_authentication ... ok [INFO] [stdout] test oauth_routes::tests::callback_with_linking_user_id_links_provider ... ok [INFO] [stdout] test partials_tests::app_shell_with_forced_mode_emits_locked_attrs ... ok [INFO] [stdout] test partials_tests::app_shell_without_forced_mode_emits_no_html_attrs ... ok [INFO] [stdout] test partials_tests::app_shell_wraps_content_block_and_renders_sidebar ... ok [INFO] [stdout] test partials_tests::auth_shell_with_forced_mode_emits_locked_attrs ... ok [INFO] [stdout] test partials_tests::auth_shell_without_forced_mode_emits_no_html_attrs ... ok [INFO] [stdout] test partials_tests::auth_shell_wraps_form_block_and_includes_splash_and_modeline ... ok [INFO] [stdout] test oauth_routes::tests::callback_with_already_linked_provider_returns_conflict ... ok [INFO] [stdout] test partials_tests::flash_partial_reads_locally_set_flash_from_including_template ... ok [INFO] [stdout] test partials_tests::flash_renders_nothing_when_unset ... ok [INFO] [stdout] test partials_tests::flash_renders_error_variant ... ok [INFO] [stdout] test partials_tests::modeline_renders_defaults ... ok [INFO] [stdout] test partials_tests::splash_cell_scale_is_pluggable ... ok [INFO] [stdout] test partials_tests::splash_falls_back_to_application_name_when_no_branding ... ok [INFO] [stdout] test partials_tests::splash_empty_branding_falls_back_to_application_name ... ok [INFO] [stdout] test partials_tests::splash_image_beats_primitive_and_text ... ok [INFO] [stdout] test partials_tests::splash_primitive_beats_text ... ok [INFO] [stdout] test partials_tests::splash_text_is_the_default_when_nothing_else_set ... ok [INFO] [stdout] test partials_tests::splash_url_wins_and_renders_iframe ... ok [INFO] [stdout] test password_reset_page_routes::tests::get_forgot_password_hx_request_returns_fragment ... ok [INFO] [stdout] test password_reset_page_routes::tests::get_forgot_password_renders_form ... ok [INFO] [stdout] test login_routes::tests::post_login_rate_limit has been running for over 60 seconds [INFO] [stdout] test oauth_routes::tests::link_authorize_redirects_to_provider_when_authenticated ... ok [INFO] [stdout] test password_reset_page_routes::tests::get_reset_password_invalid_token_shows_error ... ok [INFO] [stdout] test oauth_routes::tests::list_linked_providers_returns_empty_when_none_linked ... ok [INFO] [stdout] test password_reset_page_routes::tests::post_forgot_password_invalid_email_shows_error ... ok [INFO] [stdout] test password_reset_page_routes::tests::post_forgot_password_unknown_email_shows_success ... ok [INFO] [stdout] test oauth_routes::tests::list_linked_providers_returns_linked_accounts ... ok [INFO] [stdout] test oauth_routes::tests::unlink_removes_linked_provider ... ok [INFO] [stdout] test oauth_routes::tests::unlink_returns_404_when_not_linked ... ok [INFO] [stdout] test password_reset_page_routes::tests::get_reset_password_hx_request_returns_fragment ... ok [INFO] [stdout] test password_reset_page_routes::tests::get_forgot_password_logged_in_redirects_to_root ... ok [INFO] [stdout] test password_reset_page_routes::tests::render_forgot_password_fragment_composes_main_and_oob_head ... ok [INFO] [stdout] test password_reset_page_routes::tests::render_reset_password_fragment_composes_main_and_oob_head ... ok [INFO] [stdout] test password_reset_page_routes::tests::get_reset_password_valid_token_renders_form ... ok [INFO] [stdout] test password_reset_page_routes::tests::post_forgot_password_valid_email_shows_success ... ok [INFO] [stdout] test password_reset_routes::tests::forgot_password_unknown_email_returns_200 ... ok [INFO] [stdout] test password_reset_page_routes::tests::post_reset_password_passwords_mismatch_shows_error ... ok [INFO] [stdout] test password_reset_routes::tests::validate_reset_invalid_token_returns_false ... ok [INFO] [stdout] test password_reset_page_routes::tests::post_reset_password_too_short_shows_error ... ok [INFO] [stdout] test rate_limit::tests::different_keys_have_independent_limits ... ok [INFO] [stdout] test rate_limit::tests::extract_client_ip_returns_unknown_without_connect_info ... ok [INFO] [stdout] test rate_limit::tests::requests_exceeding_burst_get_429 ... ok [INFO] [stdout] test rate_limit::tests::requests_within_burst_are_allowed ... ok [INFO] [stdout] test login_routes::tests::post_login_rate_limit ... ok [INFO] [stdout] test register_routes::tests::get_register_renders_form ... ok [INFO] [stdout] test register_routes::tests::get_register_with_schema_renders_custom_fields ... ok [INFO] [stdout] test password_reset_routes::tests::forgot_password_valid_email_returns_200 ... ok [INFO] [stdout] test password_reset_page_routes::tests::post_reset_password_success_shows_confirmation ... ok [INFO] [stdout] test password_reset_routes::tests::validate_reset_valid_token_returns_true ... ok [INFO] [stdout] test password_reset_page_routes::tests::post_reset_password_used_token_shows_invalid ... ok [INFO] [stdout] test register_routes::tests::get_register_logged_in_redirects_to_root ... ok [INFO] [stdout] test register_routes::tests::post_register_invalid_email ... ok [INFO] [stdout] test register_routes::tests::post_register_creates_user ... ok [INFO] [stdout] test register_routes::tests::post_register_password_mismatch ... ok [INFO] [stdout] test register_routes::tests::post_register_password_too_short ... ok [INFO] [stdout] test password_reset_routes::tests::execute_reset_used_token_fails ... ok [INFO] [stdout] test register_routes::tests::post_register_creates_session ... ok [INFO] [stdout] test register_routes::tests::post_register_does_not_hang_when_receiver_dropped ... ok [INFO] [stdout] test register_routes::tests::post_register_without_csrf_returns_403 ... ok [INFO] [stdout] test register_routes::tests::post_register_logs_audit ... ok [INFO] [stdout] test register_routes::tests::post_register_success_redirects ... ok [INFO] [stdout] test register_routes::tests::post_register_session_cookie_authenticates ... ok [INFO] [stdout] test password_reset_routes::tests::execute_reset_valid_token_changes_password ... ok [INFO] [stdout] test register_routes::tests::post_register_publishes_registered_event ... ok [INFO] [stdout] test register_routes::tests::register_with_invalid_custom_fields_shows_error ... ok [INFO] [stdout] test register_routes::tests::register_without_client_id_shows_default ... ok [INFO] [stdout] test register_routes::tests::post_register_duplicate_email ... ok [INFO] [stdout] test register_routes::tests::render_register_fragment_composes_main_and_oob_head ... ok [INFO] [stdout] test register_routes::tests::post_register_without_events_sender_succeeds ... ok [INFO] [stdout] test register_routes::tests::post_register_duplicate_username ... ok [INFO] [stdout] test register_routes::tests::register_with_custom_fields_stores_json ... ok [INFO] [stdout] test register_routes::tests::register_custom_field_type_coercion ... ok [INFO] [stdout] test register_routes::tests::register_sign_in_link_carries_client_id ... ok [INFO] [stdout] test register_routes::tests::register_with_client_id_shows_branding ... ok [INFO] [stdout] test register_routes::tests::register_without_schema_works_as_before ... ok [INFO] [stdout] test settings_routes::tests::get_settings_renders_page ... ok [INFO] [stdout] test settings_routes::tests::get_settings_admin_user_sees_admin_nav ... ok [INFO] [stdout] test settings_routes::tests::get_settings_shows_csrf_token ... ok [INFO] [stdout] test settings_routes::tests::get_settings_non_admin_user_has_no_admin_nav ... ok [INFO] [stdout] test settings_routes::tests::get_settings_shows_mfa_section ... ok [INFO] [stdout] test settings_routes::tests::get_settings_shows_oauth_section ... ok [INFO] [stdout] test settings_routes::tests::post_password_oauth_only_user_shows_error ... ok [INFO] [stdout] test settings_routes::tests::get_settings_unauthenticated_redirects ... ok [INFO] [stdout] test settings_routes::tests::post_password_mismatch ... ok [INFO] [stdout] test settings_routes::tests::post_password_requires_csrf ... ok [INFO] [stdout] test settings_routes::tests::post_password_too_short ... ok [INFO] [stdout] test settings_routes::tests::post_password_wrong_current ... ok [INFO] [stdout] test settings_routes::tests::post_settings_clears_username ... ok [INFO] [stdout] test settings_routes::tests::post_password_logs_audit ... ok [INFO] [stdout] test settings_routes::tests::post_password_new_cookie_authenticates ... ok [INFO] [stdout] test settings_routes::tests::post_settings_invalid_email_shows_error ... ok [INFO] [stdout] test settings_routes::tests::post_password_invalidates_other_sessions ... ok [INFO] [stdout] test settings_routes::tests::post_settings_duplicate_username_shows_error ... ok [INFO] [stdout] test shell_context::tests::builds_admin_shell_with_five_items ... ok [INFO] [stdout] test shell_context::tests::builds_user_shell_with_two_items ... ok [INFO] [stdout] test shell_context::tests::with_session_sets_status ... ok [INFO] [stdout] test static_routes::tests::serves_echo_js ... ok [INFO] [stdout] test static_routes::tests::serves_layout_css ... ok [INFO] [stdout] test static_routes::tests::serves_martian_grotesk_woff2 ... ok [INFO] [stdout] test static_routes::tests::serves_mode_toggle_js ... ok [INFO] [stdout] test static_routes::tests::serves_shader_ascii_js ... ok [INFO] [stdout] test static_routes::tests::serves_tokens_css ... ok [INFO] [stdout] test static_routes::tests::unknown_asset_returns_404 ... ok [INFO] [stdout] test settings_routes::tests::post_settings_duplicate_email_shows_error ... ok [INFO] [stdout] test settings_routes::tests::post_settings_logs_audit ... ok [INFO] [stdout] test settings_routes::tests::post_settings_no_changes_succeeds ... ok [INFO] [stdout] test settings_routes::tests::post_password_change_success ... ok [INFO] [stdout] test settings_routes::tests::post_settings_requires_csrf ... ok [INFO] [stdout] test settings_routes::tests::post_settings_updates_email ... ok [INFO] [stdout] test settings_routes::tests::post_settings_updates_username ... ok [INFO] [stdout] test token_route::tests::missing_client_credentials_returns_401 ... ok [INFO] [stdout] test token_route::tests::invalid_client_id_returns_401_with_www_authenticate ... ok [INFO] [stdout] test token_route::tests::basic_auth_valid ... ok [INFO] [stdout] test token_route::tests::basic_auth_malformed_returns_401 has been running for over 60 seconds [INFO] [stdout] test token_route::tests::missing_code_returns_400 has been running for over 60 seconds [INFO] [stdout] test token_route::tests::missing_redirect_uri_returns_400 ... ok [INFO] [stdout] test token_route::tests::missing_code_verifier_returns_400 has been running for over 60 seconds [INFO] [stdout] test token_route::tests::missing_grant_type_returns_400 has been running for over 60 seconds [INFO] [stdout] test token_route::tests::missing_code_returns_400 ... ok [INFO] [stdout] test token_route::tests::public_client_gets_token_without_secret has been running for over 60 seconds [INFO] [stdout] test token_route::tests::missing_grant_type_returns_400 ... ok [INFO] [stdout] test token_route::tests::public_client_gets_token_without_secret ... ok [INFO] [stdout] test token_route::tests::missing_code_verifier_returns_400 ... ok [INFO] [stdout] test token_route::tests::public_client_rejected_when_code_verifier_missing has been running for over 60 seconds [ERROR] error running command: command timed out after 900 seconds [INFO] running `Command { std: "docker" "inspect" "6a280264dfc1e38d07f961ce8e75b4979c582fc65ccbea600f60c2f90a786da6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6a280264dfc1e38d07f961ce8e75b4979c582fc65ccbea600f60c2f90a786da6", kill_on_drop: false }` [INFO] [stdout] 6a280264dfc1e38d07f961ce8e75b4979c582fc65ccbea600f60c2f90a786da6