[INFO] cloning repository https://github.com/marmot-protocol/transponder
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/marmot-protocol/transponder" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarmot-protocol%2Ftransponder", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarmot-protocol%2Ftransponder'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aecb6353eee8959f577ffc9b73b5c47211eebb89
[INFO] testing marmot-protocol/transponder against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarmot-protocol%2Ftransponder" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/marmot-protocol/transponder
[INFO] finished tweaking git repo https://github.com/marmot-protocol/transponder
[INFO] tweaked toml for git repo https://github.com/marmot-protocol/transponder written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/marmot-protocol/transponder on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/marmot-protocol/transponder already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.116
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.116
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.116
[INFO] [stderr]   Downloaded sentry-backtrace v0.48.3
[INFO] [stderr]   Downloaded sentry-panic v0.48.3
[INFO] [stderr]   Downloaded sentry-contexts v0.48.3
[INFO] [stderr]   Downloaded os_info v3.15.0
[INFO] [stderr]   Downloaded sentry-tracing v0.48.3
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.66
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.116
[INFO] [stderr]   Downloaded js-sys v0.3.93
[INFO] [stderr]   Downloaded sentry v0.48.3
[INFO] [stderr]   Downloaded sentry-core v0.48.3
[INFO] [stderr]   Downloaded sentry-types v0.48.3
[INFO] [stderr]   Downloaded tor-general-addr v0.28.0
[INFO] [stderr]   Downloaded retry-error v0.6.5
[INFO] [stderr]   Downloaded futures-rustls v0.26.0
[INFO] [stderr]   Downloaded x509-signature v0.5.0
[INFO] [stderr]   Downloaded tor-error v0.28.0
[INFO] [stderr]   Downloaded nix v0.31.2
[INFO] [stderr]   Downloaded tor-rtcompat v0.28.0
[INFO] [stderr]   Downloaded quinn-proto v0.11.15
[INFO] [stderr]   Downloaded asynchronous-codec v0.7.0
[INFO] [stderr]   Downloaded blanket v0.3.0
[INFO] [stderr]   Downloaded async_executors v0.7.0
[INFO] [stderr]   Downloaded web-sys v0.3.93
[INFO] [stderr]   Downloaded visibility v0.1.1
[INFO] [stderr]   Downloaded tor-units v0.28.0
[INFO] [stderr]   Downloaded tor-log-ratelim v0.28.0
[INFO] [stderr]   Downloaded weak-table v0.3.2
[INFO] [stderr]   Downloaded tor-basic-utils v0.28.0
[INFO] [stderr]   Downloaded notify v8.2.0
[INFO] [stderr]   Downloaded notify-types v2.1.0
[INFO] [stderr]   Downloaded inotify v0.11.1
[INFO] [stderr]   Downloaded darling_macro v0.14.4
[INFO] [stderr]   Downloaded oneshot-fused-workaround v0.2.3
[INFO] [stderr]   Downloaded fs-mistrust v0.9.3
[INFO] [stderr]   Downloaded tor-config v0.28.0
[INFO] [stderr]   Downloaded fluid-let v1.0.0
[INFO] [stderr]   Downloaded tor-memquota v0.28.0
[INFO] [stderr]   Downloaded pwd-grp v1.0.2
[INFO] [stderr]   Downloaded toml_parser v1.1.0+spec-1.1.0
[INFO] [stderr]   Downloaded derive_builder_fork_arti v0.11.2
[INFO] [stderr]   Downloaded darling v0.14.4
[INFO] [stderr]   Downloaded amplify v4.9.0
[INFO] [stderr]   Downloaded tracing-test-macro v0.2.6
[INFO] [stderr]   Downloaded cookie-factory v0.3.3
[INFO] [stderr]   Downloaded tracing-test v0.2.6
[INFO] [stderr]   Downloaded arti-client v0.28.0
[INFO] [stderr]   Downloaded toml_datetime v1.1.0+spec-1.1.0
[INFO] [stderr]   Downloaded derive_builder_macro_fork_arti v0.11.2
[INFO] [stderr]   Downloaded uncased v0.9.10
[INFO] [stderr]   Downloaded amplify_derive v4.0.1
[INFO] [stderr]   Downloaded amplify_syn v2.0.1
[INFO] [stderr]   Downloaded tor-async-utils v0.28.0
[INFO] [stderr]   Downloaded slotmap-careful v0.2.5
[INFO] [stderr]   Downloaded tor-llcrypto v0.28.0
[INFO] [stderr]   Downloaded safelog v0.4.8
[INFO] [stderr]   Downloaded amplify_num v0.5.3
[INFO] [stderr]   Downloaded tor-protover v0.28.0
[INFO] [stderr]   Downloaded derive-deftly-macros v1.0.1
[INFO] [stderr]   Downloaded priority-queue v2.7.0
[INFO] [stderr]   Downloaded asn1-rs-derive v0.6.0
[INFO] [stderr]   Downloaded caret v0.5.3
[INFO] [stderr]   Downloaded derive-deftly v1.0.1
[INFO] [stderr]   Downloaded toml_edit v0.25.8+spec-1.1.0
[INFO] [stderr]   Downloaded darling_core v0.14.4
[INFO] [stderr]   Downloaded tor-bytes v0.28.0
[INFO] [stderr]   Downloaded serde_with_macros v3.18.0
[INFO] [stderr]   Downloaded ssh-encoding v0.2.0
[INFO] [stderr]   Downloaded ssh-cipher v0.2.0
[INFO] [stderr]   Downloaded tor-proto v0.28.0
[INFO] [stderr]   Downloaded derive_builder_core_fork_arti v0.11.2
[INFO] [stderr]   Downloaded figment v0.10.19
[INFO] [stderr]   Downloaded tor-rtmock v0.28.0
[INFO] [stderr]   Downloaded der-parser v10.0.0
[INFO] [stderr]   Downloaded asn1-rs v0.7.1
[INFO] [stderr]   Downloaded tor-linkspec v0.28.0
[INFO] [stderr]   Downloaded tor-hscrypto v0.28.0
[INFO] [stderr]   Downloaded tor-key-forge v0.28.0
[INFO] [stderr]   Downloaded tor-checkable v0.28.0
[INFO] [stderr]   Downloaded tor-cert v0.28.0
[INFO] [stderr]   Downloaded ssh-key v0.6.7
[INFO] [stderr]   Downloaded p521 v0.13.3
[INFO] [stderr]   Downloaded downcast-rs v2.0.2
[INFO] [stderr]   Downloaded fslock v0.2.1
[INFO] [stderr]   Downloaded postage v0.5.0
[INFO] [stderr]   Downloaded tor-cell v0.28.0
[INFO] [stderr]   Downloaded tor-persist v0.28.0
[INFO] [stderr]   Downloaded tor-netdir v0.28.0
[INFO] [stderr]   Downloaded typed-index-collections v3.1.0
[INFO] [stderr]   Downloaded tor-config-path v0.28.0
[INFO] [stderr]   Downloaded tor-netdoc v0.28.0
[INFO] [stderr]   Downloaded tor-keymgr v0.28.0
[INFO] [stderr]   Downloaded inventory v0.3.24
[INFO] [stderr]   Downloaded glob-match v0.2.1
[INFO] [stderr]   Downloaded tor-hsclient v0.28.0
[INFO] [stderr]   Downloaded tor-dirclient v0.28.0
[INFO] [stderr]   Downloaded tor-relay-selection v0.28.0
[INFO] [stderr]   Downloaded humantime-serde v1.1.1
[INFO] [stderr]   Downloaded bounded-vec-deque v0.1.1
[INFO] [stderr]   Downloaded tor-circmgr v0.28.0
[INFO] [stderr]   Downloaded tor-guardmgr v0.28.0
[INFO] [stderr]   Downloaded tor-socksproto v0.28.0
[INFO] [stderr]   Downloaded tor-dirmgr v0.28.0
[INFO] [stderr]   Downloaded tor-consdiff v0.28.0
[INFO] [stderr]   Downloaded tor-chanmgr v0.28.0
[INFO] [stderr]   Downloaded rusqlite v0.32.1
[INFO] [stderr]   Downloaded nostr-relay-builder v0.44.0
[INFO] [stderr]   Downloaded simple_asn1 v0.6.4
[INFO] [stderr]   Downloaded pem v3.0.6
[INFO] [stderr]   Downloaded serde_spanned v1.1.0
[INFO] [stderr]   Downloaded toml v1.1.0+spec-1.1.0
[INFO] [stderr]   Downloaded rust-ini v0.21.3
[INFO] [stderr]   Downloaded ron v0.12.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7
[INFO] running `Command { std: "docker" "start" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling bitcoin-io v0.1.4
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling hex-conservative v0.2.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling secp256k1-sys v0.10.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling rustc-demangle v0.1.27
[INFO] [stderr]    Compiling bech32 v0.11.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling erased-serde v0.4.10
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling sentry-contexts v0.48.3
[INFO] [stderr]    Compiling dlv-list v0.5.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling uuid v1.23.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling protobuf v3.7.2
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling sentry v0.48.3
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling ordered-multimap v0.7.3
[INFO] [stderr]    Compiling toml_datetime v1.1.0+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.0
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling hostname v0.4.2
[INFO] [stderr]    Compiling uname v0.1.1
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling negentropy v0.5.0
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling prometheus v0.14.0
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling arraydeque v0.5.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling atomic-destructor v0.3.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling yaml-rust2 v0.10.4
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling serde-untagged v0.1.9
[INFO] [stderr]    Compiling rust-ini v0.21.3
[INFO] [stderr]    Compiling toml_parser v1.1.0+spec-1.1.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling toml v1.1.0+spec-1.1.0
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling pathdiff v0.2.3
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.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 zeroize_derive v1.4.3
[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 tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling simple_asn1 v0.6.4
[INFO] [stderr]    Compiling protobuf-support v3.7.2
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling debugid v0.8.0
[INFO] [stderr]    Compiling bitcoin_hashes v0.14.1
[INFO] [stderr]    Compiling secp256k1 v0.29.1
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling json5 v0.4.1
[INFO] [stderr]    Compiling ron v0.12.1
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling config v0.15.22
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling sentry-types v0.48.3
[INFO] [stderr]    Compiling nostr v0.44.2
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-socks v0.5.2
[INFO] [stderr]    Compiling async-utility v0.3.1
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tungstenite v0.26.2
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling tokio-tungstenite v0.26.2
[INFO] [stderr]    Compiling async-wsocket v0.13.2
[INFO] [stderr]    Compiling sentry-core v0.48.3
[INFO] [stderr]    Compiling nostr-database v0.44.0
[INFO] [stderr]    Compiling nostr-gossip v0.44.0
[INFO] [stderr]    Compiling sentry-backtrace v0.48.3
[INFO] [stderr]    Compiling nostr-relay-pool v0.44.0
[INFO] [stderr]    Compiling sentry-panic v0.48.3
[INFO] [stderr]    Compiling sentry-tracing v0.48.3
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling nostr-sdk v0.44.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling transponder v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 23s
[INFO] running `Command { std: "docker" "inspect" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[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 hkdf v0.12.4
[INFO] [stderr]    Compiling sentry-tracing v0.48.3
[INFO] [stderr]    Compiling ron v0.12.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling config v0.15.22
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-socks v0.5.2
[INFO] [stderr]    Compiling nostr-database v0.44.0
[INFO] [stderr]    Compiling async-utility v0.3.1
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling tokio-tungstenite v0.26.2
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling async-wsocket v0.13.2
[INFO] [stderr]    Compiling nostr-relay-pool v0.44.0
[INFO] [stderr]    Compiling nostr-relay-builder v0.44.0
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling nostr-sdk v0.44.1
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling sentry v0.48.3
[INFO] [stderr]    Compiling transponder v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 50s
[INFO] running `Command { std: "docker" "inspect" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.92s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/transponder-b346e5a8eb447438)
[INFO] [stdout] 
[INFO] [stdout] running 705 tests
[INFO] [stdout] test app::tests::event_processing_permits_preserves_configured_values ... ok
[INFO] [stdout] test app::tests::event_loop_shutdown_exit_is_expected ... ok
[INFO] [stdout] test app::tests::event_loop_channel_close_exit_is_a_supervised_failure ... ok
[INFO] [stdout] test app::tests::event_semaphore_caps_in_flight_permits ... ok
[INFO] [stdout] test app::tests::init_logging_builds_layer_for_each_format ... ok
[INFO] [stdout] test app::tests::event_permit_wait_acquires_available_permit ... ok
[INFO] [stdout] test app::tests::logging_filter_uses_configured_filter_without_env_filter ... ok
[INFO] [stdout] test app::tests::notification_receive_close_does_not_record_metrics ... ok
[INFO] [stdout] test app::tests::logging_filter_rejects_invalid_env_filter_without_using_config ... ok
[INFO] [stdout] test app::tests::logging_filter_prefers_env_filter_over_invalid_configured_filter ... ok
[INFO] [stdout] test app::tests::healthcheck_command_reports_unreachable_endpoint ... ok
[INFO] [stdout] test app::tests::notification_receive_lag_is_recoverable ... ok
[INFO] [stdout] test app::tests::parse_server_secret_key_accepts_nsec_format ... ok
[INFO] [stdout] test app::tests::notification_receive_lag_records_metrics ... ok
[INFO] [stdout] test app::tests::notification_receive_close_is_terminal ... ok
[INFO] [stdout] test app::tests::parse_server_secret_key_accepts_resolved_file_value ... ok
[INFO] [stdout] test app::tests::healthcheck_command_rejects_error_status ... ok
[INFO] [stdout] test app::tests::event_permit_wait_exits_when_shutdown_arrives ... ok
[INFO] [stdout] test app::tests::relay_status_refresher_reports_closed_shutdown_channel ... ok
[INFO] [stdout] test app::tests::logging_filter_rejects_invalid_configured_filter_without_panic ... ok
[INFO] [stdout] test app::tests::healthcheck_command_accepts_success_status ... ok
[INFO] [stdout] test app::tests::resolve_server_private_key_reads_secret_file ... ok
[INFO] [stdout] test app::tests::resolve_server_private_key_reports_missing_secret_file ... ok
[INFO] [stdout] test app::tests::resolve_server_private_key_returns_empty_when_unset ... ok
[INFO] [stdout] test app::tests::run_startup_or_shutdown_prefers_shutdown_when_both_ready ... ok
[INFO] [stdout] test app::tests::run_startup_or_shutdown_surfaces_startup_error ... ok
[INFO] [stdout] test app::tests::run_startup_or_shutdown_returns_connected_when_startup_finishes_first ... ok
[INFO] [stdout] test app::tests::resolve_server_private_key_reads_0600_key_file ... ok
[INFO] [stdout] test app::tests::resolve_server_private_key_treats_whitespace_inline_value_as_empty ... ok
[INFO] [stdout] test app::tests::relay_status_refresher_exits_cleanly_on_shutdown ... ok
[INFO] [stdout] test app::tests::run_startup_or_shutdown_returns_shutdown_when_signal_arrives_first ... ok
[INFO] [stdout] test app::tests::shutdown_result_treats_internal_trigger_as_failure ... ok
[INFO] [stdout] test app::tests::shutdown_result_treats_signal_as_clean_exit ... ok
[INFO] [stdout] test app::tests::validate_startup_config_accepts_clearnet_relays ... ok
[INFO] [stdout] test app::tests::validate_startup_config_rejects_missing_private_key ... ok
[INFO] [stdout] test app::tests::supervise_critical_task_leaves_clean_exits_alone ... ok
[INFO] [stdout] test app::tests::supervise_critical_task_triggers_shutdown_on_error ... ok
[INFO] [stdout] test app::tests::resolve_server_private_key_prefers_inline_value ... ok
[INFO] [stdout] test app::tests::periodic_cleanup_reports_closed_shutdown_channel ... ok
[INFO] [stdout] test app::tests::verify_private_key_file_permissions_accepts_0600 ... ok
[INFO] [stdout] test config::tests::test_apns_config_defaults ... ok
[INFO] [stdout] test config::tests::test_apns_config_helpers ... ok
[INFO] [stdout] test config::tests::test_apns_enabled_with_whitespace_credential_rejected ... ok
[INFO] [stdout] test config::tests::test_apns_enabled_without_credentials_rejected ... ok
[INFO] [stdout] test config::tests::test_apns_environment_display ... ok
[INFO] [stdout] test config::tests::test_apns_environment_parses_sandbox_from_env ... ok
[INFO] [stdout] test config::tests::test_apns_environment_rejects_unknown_env_value ... ok
[INFO] [stdout] test config::tests::test_apns_environment_parses_sandbox_from_file ... ok
[INFO] [stdout] test config::tests::test_apns_environment_rejects_unknown_file_value ... ok
[INFO] [stdout] test config::tests::test_apns_is_production_false ... ok
[INFO] [stdout] test app::tests::periodic_cleanup_exits_cleanly_on_shutdown ... ok
[INFO] [stdout] test config::tests::test_apns_is_production_true ... ok
[INFO] [stdout] test config::tests::test_apns_payload_mode_defaults_to_silent ... ok
[INFO] [stdout] test config::tests::test_apns_payload_mode_parses_nse_prototype_alert ... ok
[INFO] [stdout] test config::tests::test_apns_sandbox_url ... ok
[INFO] [stdout] test config::tests::test_bounded_dedup_cache_smaller_than_event_concurrency_rejected ... ok
[INFO] [stdout] test config::tests::test_completely_empty_toml_table_loads_defaults ... ok
[INFO] [stdout] test config::tests::test_apns_payload_mode_rejects_unknown_value ... ok
[INFO] [stdout] test config::tests::test_app_config_debug_redacts_server_private_key ... ok
[INFO] [stdout] test config::tests::test_config_nonexistent_file ... ok
[INFO] [stdout] test config::tests::test_config_invalid_toml ... ok
[INFO] [stdout] test config::tests::test_dedup_retention_equal_to_notification_age_accepted ... ok
[INFO] [stdout] test config::tests::test_dedup_retention_shorter_than_notification_age_rejected ... ok
[INFO] [stdout] test config::tests::test_default_values ... ok
[INFO] [stdout] test config::tests::test_config_partial_sections ... ok
[INFO] [stdout] test app::tests::run_event_loop_exits_when_shutdown_signal_fires ... ok
[INFO] [stdout] test config::tests::test_durable_replay_state_allows_small_volatile_dedup_cache ... ok
[INFO] [stdout] test config::tests::test_extract_inline_private_key_absent_is_none ... ok
[INFO] [stdout] test config::tests::test_empty_toml_loads_all_serde_defaults ... ok
[INFO] [stdout] test config::tests::test_extract_inline_private_key_removes_from_doc ... ok
[INFO] [stdout] test config::tests::test_fcm_enabled_without_credentials_rejected ... ok
[INFO] [stdout] test config::tests::test_from_env_ignores_ambient_service_discovery_variables ... ok
[INFO] [stdout] test config::tests::test_from_env_ignores_malformed_prefixed_variable ... ok
[INFO] [stdout] test config::tests::test_from_env_ignores_unknown_prefixed_variable ... ok
[INFO] [stdout] test config::tests::test_from_env_non_unicode_private_key_value_is_not_leaked ... ok
[INFO] [stdout] test config::tests::test_from_env_overrides_keys_with_underscores ... ok
[INFO] [stdout] test config::tests::test_from_env_parses_comma_separated_relay_lists ... ok
[INFO] [stdout] test config::tests::test_env_glitchtip_dsn_overrides_inline_file_value ... ok
[INFO] [stdout] test config::tests::test_from_env_rejects_json_relay_lists ... ok
[INFO] [stdout] test config::tests::test_from_env_with_defaults ... ok
[INFO] [stdout] test config::tests::test_env_private_key_overrides_inline_file_value ... ok
[INFO] [stdout] test config::tests::test_glitchtip_config_debug_redacts_dsn ... ok
[INFO] [stdout] test config::tests::test_glitchtip_config_debug_shows_empty_dsn_as_disabled ... ok
[INFO] [stdout] test config::tests::test_glitchtip_defaults_disable_reporting ... ok
[INFO] [stdout] test config::tests::test_glitchtip_env_overrides ... ok
[INFO] [stdout] test config::tests::test_glitchtip_traces_sample_rate_above_one_rejected ... ok
[INFO] [stdout] test config::tests::test_glitchtip_traces_sample_rate_negative_rejected ... ok
[INFO] [stdout] test config::tests::test_global_unwrap_admission_env_overrides ... ok
[INFO] [stdout] test config::tests::test_glitchtip_traces_sample_rate_nan_rejected ... ok
[INFO] [stdout] test config::tests::test_health_bind_address_hostname_rejected ... ok
[INFO] [stdout] test app::tests::run_event_loop_processes_events_through_the_task_tracker ... ok
[INFO] [stdout] test config::tests::test_health_config_defaults ... ok
[INFO] [stdout] test config::tests::test_health_bind_address_zero_port_rejected ... ok
[INFO] [stdout] test config::tests::test_health_bind_address_out_of_range_port_rejected ... ok
[INFO] [stdout] test config::tests::test_health_bind_address_valid_accepted ... ok
[INFO] [stdout] test config::tests::test_health_bind_address_validated_even_when_disabled ... ok
[INFO] [stdout] test config::tests::test_load_env_overrides_file_values ... ok
[INFO] [stdout] test config::tests::test_inline_private_key_resolved_from_file ... ok
[INFO] [stdout] test config::tests::test_inline_glitchtip_dsn_resolved_from_file ... ok
[INFO] [stdout] test config::tests::test_load_minimal_config ... ok
[INFO] [stdout] test config::tests::test_log_format_off_is_rejected ... ok
[INFO] [stdout] test config::tests::test_log_format_parses_json_and_pretty ... ok
[INFO] [stdout] test app::tests::run_event_loop_reports_channel_close_as_unexpected_exit ... ok
[INFO] [stdout] test config::tests::test_load_full_config ... ok
[INFO] [stdout] test config::tests::test_log_format_display_round_trips ... ok
[INFO] [stdout] test config::tests::test_malformed_inline_private_key_parse_error_does_not_leak_secret_line ... ok
[INFO] [stdout] test config::tests::test_log_format_rejected_from_env ... ok
[INFO] [stdout] test app::tests::staged_teardown_waits_for_in_flight_event_tasks ... ok
[INFO] [stdout] test config::tests::test_log_format_unknown_value_is_rejected ... ok
[INFO] [stdout] test config::tests::test_logging_config_defaults ... ok
[INFO] [stdout] test config::tests::test_max_concurrent_event_processing_upper_bound_accepted ... ok
[INFO] [stdout] test app::tests::staged_teardown_joins_the_event_loop_before_closing_the_tracker ... ok
[INFO] [stdout] test config::tests::test_max_dedup_cache_size_custom ... ok
[INFO] [stdout] test config::tests::test_max_dedup_cache_size_default ... ok
[INFO] [stdout] test config::tests::test_metrics_config_defaults ... ok
[INFO] [stdout] test config::tests::test_minimal_cache_and_token_sizes_accepted ... ok
[INFO] [stdout] test config::tests::test_minimal_shutdown_timeout_accepted ... ok
[INFO] [stdout] test config::tests::test_nonzero_server_fields_accepted ... ok
[INFO] [stdout] test config::tests::test_non_string_inline_glitchtip_dsn_rejected ... ok
[INFO] [stdout] test config::tests::test_oversized_connection_timeout_rejected ... ok
[INFO] [stdout] test config::tests::test_oversized_reconnect_interval_rejected ... ok
[INFO] [stdout] test config::tests::test_oversized_max_concurrent_event_processing_rejected_from_env ... ok
[INFO] [stdout] test config::tests::test_non_string_inline_private_key_rejected ... ok
[INFO] [stdout] test config::tests::test_rate_limit_cache_size_custom ... ok
[INFO] [stdout] test config::tests::test_rate_limit_cache_size_default ... ok
[INFO] [stdout] test app::tests::run_event_loop_continues_after_lagged_notifications ... ok
[INFO] [stdout] test config::tests::test_relay_config_defaults ... ok
[INFO] [stdout] test config::tests::test_relay_duration_upper_bound_accepted ... ok
[INFO] [stdout] test config::tests::test_replay_default_helpers_match_event_defaults ... ok
[INFO] [stdout] test config::tests::test_server_config_debug_redacts_private_key ... ok
[INFO] [stdout] test config::tests::test_rate_limit_defaults ... ok
[INFO] [stdout] test config::tests::test_zero_connection_timeout_rejected ... ok
[INFO] [stdout] test config::tests::test_rate_limit_custom ... ok
[INFO] [stdout] test config::tests::test_server_config_defaults ... ok
[INFO] [stdout] test config::tests::test_zero_max_tokens_per_event_rejected_from_env ... ok
[INFO] [stdout] test config::tests::test_zero_max_tokens_per_event_rejected_from_file ... ok
[INFO] [stdout] test config::tests::test_unbounded_connection_timeout_rejected ... ok
[INFO] [stdout] test config::tests::test_zero_max_dedup_cache_size_rejected_from_file ... ok
[INFO] [stdout] test config::tests::test_zero_max_rate_limit_cache_size_rejected ... ok
[INFO] [stdout] test config::tests::test_zero_notification_age_does_not_require_zero_dedup_retention ... ok
[INFO] [stdout] test config::tests::test_zero_reconnect_interval_rejected ... ok
[INFO] [stdout] test config::tests::test_unbounded_max_concurrent_event_processing_rejected ... ok
[INFO] [stdout] test config::tests::test_server_private_key_is_zeroizing_and_debug_redacted ... ok
[INFO] [stdout] test config::tests::test_zero_max_dedup_cache_size_rejected_from_env ... ok
[INFO] [stdout] test config::tests::test_zero_shutdown_timeout_rejected_from_env ... ok
[INFO] [stdout] test crypto::nip59::tests::test_handler_creation ... ok
[INFO] [stdout] test config::tests::test_zero_server_fields_rejected_from_env ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_rejects_invalid_blob_length ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_rejects_invalid_encoding_tag ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_rejects_malformed_encoding_tag_missing_value ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_empty_token_blob ... ok
[INFO] [stdout] test config::tests::test_zero_shutdown_timeout_rejected_from_file ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_rejects_duplicate_conflicting_encoding_tags ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_invalid_base64 ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_rejects_missing_version_tag ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_rejects_missing_version_tag_value ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_succeeds_with_encoding_tag ... ok
[INFO] [stdout] test config::tests::test_zero_server_fields_rejected_from_file ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_single_token ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_many_tokens ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_succeeds_without_encoding_tag ... ok
[INFO] [stdout] test crypto::nip59::tests::test_sanitize_for_error_escapes_and_truncates ... ok
[INFO] [stdout] test crypto::nip59::tests::test_tag_value_error_escapes_and_truncates_attacker_content ... ok
[INFO] [stdout] test crypto::nip59::tests::test_sanitize_for_error_keeps_short_printable_values ... ok
[INFO] [stdout] test crypto::nip59::tests::test_sanitize_for_error_no_marker_at_exact_limit ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_accepts_default_max_tokens ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_tokens ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_tokens_with_custom_limit ... ok
[INFO] [stdout] test crypto::nip59::tests::test_parse_rejects_more_than_default_max_tokens_before_decode ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_accepts_valid_gift_wrap ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_accepts_manually_built_seal_of_kind_13 ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_non_gift_wrap_event ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrapped_notification_debug_excludes_sender_metadata ... ok
[INFO] [stdout] test crypto::token::tests::test_device_token_hex ... ok
[INFO] [stdout] test crypto::token::tests::test_device_token_string ... ok
[INFO] [stdout] test crypto::token::tests::test_device_token_string_invalid_utf8 ... ok
[INFO] [stdout] test crypto::token::tests::test_encrypted_token_correct_size ... ok
[INFO] [stdout] test crypto::token::tests::test_encrypted_token_debug_redacts_all_bytes ... ok
[INFO] [stdout] test crypto::token::tests::test_encrypted_token_empty ... ok
[INFO] [stdout] test crypto::token::tests::test_encrypted_token_parses_correctly ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_non_event_seal_payload ... ok
[INFO] [stdout] test crypto::token::tests::test_encrypted_token_too_large ... ok
[INFO] [stdout] test crypto::token::tests::test_encrypted_token_too_small ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_wrong_rumor_kind ... ok
[INFO] [stdout] test crypto::token::tests::test_encrypted_token_wrong_size ... ok
[INFO] [stdout] test crypto::token::tests::test_platform_from_byte ... ok
[INFO] [stdout] test crypto::token::tests::test_platform_display_coverage ... ok
[INFO] [stdout] test crypto::token::tests::test_token_decryptor_creation ... ok
[INFO] [stdout] test crypto::token::tests::test_platform_byte_roundtrip ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_seal_of_wrong_kind ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_gift_wrap_for_other_recipient ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_non_json_rumor ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_undecryptable_seal_content ... ok
[INFO] [stdout] test crypto::token::tests::test_token_decryptor_stores_secret_as_zeroizing_bytes ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_accepts_variable_apns_length ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_fcm_length_zero ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_debug_redacts_device_token ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_device_token_length_too_large ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_wrong_size ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_empty_data ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_empty_device_token ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_fcm_platform ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_parsing ... ok
[INFO] [stdout] test defaults::tests::dedup_retention_matches_nip59_window_plus_skew ... ok
[INFO] [stdout] test error::tests::test_error_display_apns ... ok
[INFO] [stdout] test error::tests::test_error_debug_impl ... ok
[INFO] [stdout] test error::tests::test_error_display_invalid_token ... ok
[INFO] [stdout] test error::tests::test_error_display_nostr ... ok
[INFO] [stdout] test error::tests::test_error_display_crypto ... ok
[INFO] [stdout] test error::tests::test_error_from_base64 ... ok
[INFO] [stdout] test error::tests::test_error_display_dispatch ... ok
[INFO] [stdout] test error::tests::test_error_display_fcm ... ok
[INFO] [stdout] test error::tests::test_error_from_io ... ok
[INFO] [stdout] test error::tests::test_error_from_json ... ok
[INFO] [stdout] test error::tests::test_error_from_hex ... ok
[INFO] [stdout] test error::tests::test_redact_transport_url_is_noop_for_non_http_errors ... ok
[INFO] [stdout] test metrics::tests::test_disabled_metrics_observers_are_no_ops ... ok
[INFO] [stdout] test crypto::token::tests::test_token_payload_accepts_large_fcm_token ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_tampered_seal ... ok
[INFO] [stdout] test error::tests::test_redact_transport_url_strips_device_token_from_http_error ... ok
[INFO] [stdout] test crypto::nip59::tests::test_unwrap_rejects_forged_rumor_author ... ok
[INFO] [stdout] test metrics::tests::test_dedup_cache_metrics ... ok
[INFO] [stdout] test metrics::tests::test_metrics_creation ... ok
[INFO] [stdout] test metrics::tests::test_event_metrics ... ok
[INFO] [stdout] test app::tests::run_event_loop_skips_non_event_notifications ... ok
[INFO] [stdout] test metrics::tests::test_record_rate_limit_evictions ... ok
[INFO] [stdout] test metrics::tests::test_record_rate_limit_admission_evictions ... ok
[INFO] [stdout] test metrics::tests::test_rate_limit_metrics_creation ... ok
[INFO] [stdout] test metrics::tests::test_push_client_metrics ... ok
[INFO] [stdout] test metrics::tests::test_record_rate_limited ... ok
[INFO] [stdout] test metrics::tests::test_rate_limit_admission_evictions_metric_registered ... ok
[INFO] [stdout] test nostr::client::tests::test_classify_relay_kind_fallback_anchors_to_onion_host_suffix ... ok
[INFO] [stdout] test nostr::client::tests::test_classify_relay_kind_prefers_provenance_over_url_shape ... ok
[INFO] [stdout] test nostr::client::tests::test_admit_policy_rejects_after_exhausting_attempts ... ok
[INFO] [stdout] test nostr::client::tests::test_degraded_relay_class_flags_configured_class_with_no_connections ... ok
[INFO] [stdout] test metrics::tests::test_push_metrics ... ok
[INFO] [stdout] test metrics::tests::test_relay_metrics ... ok
[INFO] [stdout] test metrics::tests::test_server_info ... ok
[INFO] [stdout] test metrics::tests::test_relay_subscription_lookback_saturates_large_values ... ok
[INFO] [stdout] test metrics::tests::test_set_rate_limit_cache_size ... ok
[INFO] [stdout] test nostr::client::tests::test_connect_adds_relays_with_configured_options ... ok
[INFO] [stdout] test metrics::tests::test_token_metrics ... ok
[INFO] [stdout] test nostr::client::tests::test_degraded_relay_classes_and_startup_warnings_cover_each_configured_class ... ok
[INFO] [stdout] test nostr::client::tests::test_inbox_relay_publish_required_when_freshness_fetch_errors ... ok
[INFO] [stdout] test nostr::client::tests::test_normalize_relay_urls_errors_on_bad_config_entry ... ok
[INFO] [stdout] test nostr::client::tests::test_normalize_relay_tags_ignores_trailing_slash_and_case ... ok
[INFO] [stdout] test nostr::client::tests::test_normalize_relay_tags_skips_unparseable_tag_values ... ok
[INFO] [stdout] test nostr::client::tests::test_reconnect_attempt_lag_resyncs_current_relay_statuses ... ok
[INFO] [stdout] test nostr::client::tests::test_reconnect_attempt_limiter_allows_initial_attempt_plus_configured_retries ... ok
[INFO] [stdout] test nostr::client::tests::test_reconnect_attempt_limiter_remove_clears_tracked_state ... ok
[INFO] [stdout] test nostr::client::tests::test_reconnect_subscription_since_uses_disconnect_for_short_outage ... ok
[INFO] [stdout] test nostr::client::tests::test_reconnect_subscription_since_caps_long_outage_to_freshness_window ... ok
[INFO] [stdout] test nostr::client::tests::test_newest_kind_10050_event_selected_by_created_at ... ok
[INFO] [stdout] test nostr::client::tests::test_reconnect_subscription_since_zero_age_uses_disconnect_start ... ok
[INFO] [stdout] test nostr::client::tests::test_inner_returns_client ... ok
[INFO] [stdout] test nostr::client::tests::test_reconnect_attempt_monitor_resets_and_removes_counters ... ok
[INFO] [stdout] test nostr::client::tests::test_publish_inbox_relays_with_no_relays ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_allows_unencrypted_clearnet_relays_when_enabled ... ok
[INFO] [stdout] test nostr::client::tests::test_connect_records_clearnet_provenance ... ok
[INFO] [stdout] test nostr::client::tests::test_refresh_gift_wrap_subscription_reuses_subscription_id ... ok
[INFO] [stdout] test nostr::client::tests::test_refresh_status_updates_gauges_on_refresh_not_on_reads ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_connect_waits_for_connection ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_connects_to_mock_relay ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_rejects_malformed_clearnet_relay_even_when_unencrypted_enabled ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_rejects_onion_relays_without_tor_feature ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_rejects_unencrypted_clearnet_relays ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_options_use_configured_reconnect_interval ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_startup_grace_is_capped_by_connection_timeout ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_startup_waits_before_warning_for_missing_configured_class ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_status_default ... ok
[INFO] [stdout] test nostr::client::tests::test_subscription_lookback_matches_nip59_tweak_window ... ok
[INFO] [stdout] test nostr::client::tests::test_validate_onion_relay_url_accepts_ws_and_wss_onion ... ok
[INFO] [stdout] test nostr::client::tests::test_validate_onion_relay_url_rejects_missing_scheme ... ok
[INFO] [stdout] test nostr::client::tests::test_validate_onion_relay_url_rejects_non_onion_host ... ok
[INFO] [stdout] test nostr::client::tests::test_validate_onion_relay_url_rejects_non_ws_scheme ... ok
[INFO] [stdout] test nostr::events::admission::tests::refund_rolls_back_encrypted_and_device_charges ... ok
[INFO] [stdout] test nostr::events::processor::tests::future_freshness_error_is_retryable_but_stale_is_permanent ... ok
[INFO] [stdout] test nostr::events::processor::tests::replay_protection_config_from_server_config_disables_empty_state_path ... ok
[INFO] [stdout] test nostr::events::processor::tests::replay_protection_config_from_server_config_matches_settings ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_multiple_relays ... ok
[INFO] [stdout] test nostr::client::tests::test_publish_inbox_relays_with_configured_relays ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_subscribe_to_gift_wrap ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_all_tokens_invalid_is_terminal_not_rate_limited ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_cache_lru_access_updates_order ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_cache_size_limit_evicts_oldest_entries ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_receives_events ... ok
[INFO] [stdout] test app::tests::supervise_critical_task_handle_triggers_shutdown_on_panic ... ok
[INFO] [stdout] test app::tests::verify_private_key_file_permissions_rejects_world_readable ... ok
[INFO] [stdout] test app::tests::validate_startup_config_rejects_missing_relays ... ok
[INFO] [stdout] test app::tests::verify_private_key_file_permissions_rejects_group_readable ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_receives_nip59_backdated_gift_wraps ... ok
[INFO] [stdout] test app::tests::validate_startup_config_rejects_onion_relays_without_tor_feature ... ok
[INFO] [stdout] test app::tests::resolve_server_private_key_rejects_permissive_key_file ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_dedup_state_loader_ignores_malformed_and_expired_rows ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_cleanup_preserves_recent_entries ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_cache_size_zero_is_rejected - should panic ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_all_tokens_rate_limited_leaves_event_retryable ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_dedup_state_cleanup_compacts_terminal_entries_only ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_cleanup_removes_old_entries ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_capacity_limit_records_metric ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_durable_dedup_state_is_not_capped_by_lru_size ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_cleanup_processes_limited_entries ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_cleanup_scans_stale_lru_entries_first ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_disabled_notification_age_still_rejects_future_rumor ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_device_reject_refunds_encrypted_charge ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_instant_to_unix_secs_saturates_future_seen_at ... ok
[INFO] [stdout] test nostr::client::tests::test_publish_inbox_relays_skips_when_existing_relay_list_matches ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_global_limiter_does_not_mark_shed_event_seen ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_decrypt_failure_keeps_encrypted_charge ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_live_rate_limit_cache_size_gauge_updates_before_cleanup ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_fcm_token_processing ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_admission_path_eviction_records_metric ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_dedup_state_persists_processed_event_across_processors ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_notification_freshness_can_be_disabled ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_encrypted_token_rate_limiting ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_fails_with_no_relays ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_mixed_rate_limited_and_admitted_tokens_retries_only_shed_token ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_global_limiter_recovers_after_window ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_device_token_rate_limiting ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_global_limiter_charges_each_token_decrypt_attempt ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_mixed_rate_limited_and_invalid_zero_admission_retries_shed_token ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_prefiltered_drop_does_not_touch_delivery_health ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_dispatch_failure_does_not_spend_rate_limit_budget ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_global_limiter_sheds_flood_before_unwrap ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_dispatch_failure_records_zero_admissions ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_empty_token_blob ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_deduplicates_same_event ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_empty_token_blob_records_parse_failure_metrics ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_different_events_not_deduplicated ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_duplicate_event_records_metrics ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_invalid_token_failure_is_deduplicated_on_replay ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_failed_event_records_metrics ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_non_utf8_fcm_token_refunds_and_counts_drop ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_non_gift_wrap_event_fails ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_permanent_failure_is_deduplicated_on_replay ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_rejects_stale_notification_rumor ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_rejects_future_notification_rumor ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_concurrent_duplicates_dispatch_once ... ok
[INFO] [stdout] test nostr::events::processor::tests::token_rate_limit_config_from_server_config_matches_settings ... ok
[INFO] [stdout] test push::apns::tests::test_apns_payload_serialization ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_wrong_recipient_fails ... ok
[INFO] [stdout] test push::apns::tests::test_classify_apns_400_token_dead_reasons ... ok
[INFO] [stdout] test push::apns::tests::test_classify_apns_400_configuration_reasons_are_permanent ... ok
[INFO] [stdout] test push::apns::tests::test_client_not_configured_when_disabled ... ok
[INFO] [stdout] test push::apns::tests::test_auth_error_keeps_token_refreshed_by_concurrent_task ... ok
[INFO] [stdout] test push::apns::tests::test_device_token_redaction_is_not_token_derived ... ok
[INFO] [stdout] test push::apns::tests::test_device_token_url_buffer_is_zeroizing ... ok
[INFO] [stdout] test push::apns::tests::test_generate_token_with_valid_key ... ok
[INFO] [stdout] test push::apns::tests::test_get_token_caches_generated_token ... ok
[INFO] [stdout] test push::apns::tests::test_get_token_cache_not_expired ... ok
[INFO] [stdout] test push::apns::tests::test_generate_token_no_encoding_key ... ok
[INFO] [stdout] test push::apns::tests::test_get_token_expired_cache_regenerates ... ok
[INFO] [stdout] test push::apns::tests::test_get_token_generates_new_when_empty_cache ... ok
[INFO] [stdout] test push::apns::tests::test_get_token_uses_cache ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_valid_gift_wrap_event_records_metrics ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_400_bad_topic_is_permanent_error ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_400_bad_device_token_is_token_dead ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_400_missing_topic_is_permanent_error ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_400_device_token_not_for_topic_is_permanent_error ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_500_without_retry_after_is_retriable_without_hint ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_503_honors_retry_after_header ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_unconfigured_platform_token_refunds_and_counts_drop ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_records_per_attempt_status_not_duration ... ok
[INFO] [stdout] test push::apns::tests::test_is_configured_missing_bundle_id ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_408_is_retriable ... ok
[INFO] [stdout] test push::apns::tests::test_is_configured_missing_encoding_key ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_unexpected_status_is_permanent_error ... ok
[INFO] [stdout] test push::apns::tests::test_is_configured_missing_key_id ... ok
[INFO] [stdout] test push::apns::tests::test_is_configured_missing_team_id ... ok
[INFO] [stdout] test push::apns::tests::test_is_configured_with_all_fields ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_429_honors_retry_after_header ... ok
[INFO] [stdout] test push::apns::tests::test_new_client_without_key_path ... ok
[INFO] [stdout] test push::apns::tests::test_new_client_with_valid_key_file ... ok
[INFO] [stdout] test push::apns::tests::test_new_client_invalid_key_path ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_403_oversized_body_falls_back_to_unknown_reason ... ok
[INFO] [stdout] test push::apns::tests::test_handle_response_400_oversized_body_falls_back_without_whole_body_parse ... ok
[INFO] [stdout] test push::apns::tests::test_nse_prototype_alert_mode_builds_alert_headers_and_payload ... ok
[INFO] [stdout] test push::apns::tests::test_send_auth_error ... ok
[INFO] [stdout] test push::apns::tests::test_non_jwt_403_does_not_evict_and_is_permanent ... ok
[INFO] [stdout] test push::apns::tests::test_send_bad_request ... ok
[INFO] [stdout] test push::apns::tests::test_send_once_returns_retriable_on_429 ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_rate_limit_window_reset ... ok
[INFO] [stdout] test push::apns::tests::test_send_once_returns_retriable_on_500 ... ok
[INFO] [stdout] test push::apns::tests::test_send_rate_limited ... ok
[INFO] [stdout] test push::apns::tests::test_jwt_reason_403_evicts_and_asks_for_a_fresh_token_retry ... ok
[INFO] [stdout] test push::apns::tests::test_send_unexpected_status ... ok
[INFO] [stdout] test push::apns::tests::test_send_retries_on_429_then_succeeds ... ok
[INFO] [stdout] test push::apns::tests::test_silent_mode_builds_background_headers_and_payload ... ok
[INFO] [stdout] test push::apns::tests::test_send_success ... ok
[INFO] [stdout] test push::auth::tests::test_get_mints_once_and_serves_cached_token ... ok
[INFO] [stdout] test push::apns::tests::test_send_once_returns_transport_error_after_connect_retries ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_transient_dispatch_failure_is_retryable ... ok
[INFO] [stdout] test push::auth::tests::test_get_remints_after_expiry ... ok
[INFO] [stdout] test push::auth::tests::test_mint_error_propagates_and_next_get_retries ... ok
[INFO] [stdout] test push::auth::tests::test_invalidate_if_matches_evicts_only_the_failing_token ... ok
[INFO] [stdout] test push::auth::tests::test_minted_and_cached_tokens_store_credentials_in_zeroizing_strings ... ok
[INFO] [stdout] test push::auth::tests::test_token_acquisition_error_converts_to_send_attempt ... ok
[INFO] [stdout] test push::auth::tests::test_invalidate_on_empty_cache_is_a_no_op ... ok
[INFO] [stdout] test push::apns::tests::test_send_token_expired ... ok
[INFO] [stdout] test push::dispatcher::tests::delivery_health_defaults_to_delivering ... ok
[INFO] [stdout] test push::dispatcher::tests::delivery_health_processed_request_ends_streak ... ok
[INFO] [stdout] test push::dispatcher::tests::delivery_health_flags_provider_after_sustained_hard_failure_streak ... ok
[INFO] [stdout] test push::dispatcher::tests::dispatcher_reports_delivering_by_default ... ok
[INFO] [stdout] test push::dispatcher::tests::record_send_outcome_updates_delivery_health ... ok
[INFO] [stdout] test push::apns::tests::test_send_once_returns_retriable_on_503 ... ok
[INFO] [stdout] test push::dispatcher::tests::send_push_records_invalid_token_metrics ... ok
[INFO] [stdout] test push::auth::tests::test_concurrent_misses_coalesce_into_a_single_mint ... ok
[INFO] [stdout] test push::apns::tests::test_send_with_cached_token ... ok
[INFO] [stdout] test push::dispatcher::tests::send_push_records_missing_client_failures ... ok
[INFO] [stdout] test push::auth::tests::test_waiter_reuses_token_minted_by_the_refresh_it_waited_on ... ok
[INFO] [stdout] test push::dispatcher::tests::test_bounded_queue_prevents_unbounded_growth ... ok
[INFO] [stdout] test push::dispatcher::tests::test_capacity_metrics_initialized ... ok
[INFO] [stdout] test push::dispatcher::tests::test_accepts_reflects_configured_platforms ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_after_shutdown ... ok
[INFO] [stdout] test push::auth::tests::test_readers_are_not_blocked_while_a_refresh_is_in_flight ... ok
[INFO] [stdout] test push::apns::tests::test_send_records_one_duration_sample_per_logical_push_across_retries ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_after_shutdown_rejects_filtered_batch ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_after_shutdown_records_rejection_metric ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_after_shutdown_rejects_only_admissible_payloads ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_rate_limited_event_does_not_dispatch_or_rollback_budget ... ok
[INFO] [stdout] test push::dispatcher::tests::test_concurrency_limit_blocks_when_semaphore_is_saturated ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_fcm_without_fcm_client ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_empty_payloads ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_fcm_invalid_utf8_token ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatcher_no_clients ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_apns_without_apns_client ... ok
[INFO] [stdout] test push::dispatcher::tests::test_has_fcm_with_configured_client ... ok
[INFO] [stdout] test push::dispatcher::tests::test_has_apns_unconfigured_client ... ok
[INFO] [stdout] test push::dispatcher::tests::test_has_apns_with_configured_client ... ok
[INFO] [stdout] test push::dispatcher::tests::test_live_task_available_metric_updates_on_permit_acquire ... ok
[INFO] [stdout] test push::dispatcher::tests::test_has_fcm_unconfigured_client ... ok
[INFO] [stdout] test push::dispatcher::tests::test_queue_capacity ... ok
[INFO] [stdout] test push::dispatcher::tests::test_live_task_bound_is_twice_the_concurrency_limit ... ok
[INFO] [stdout] test push::dispatcher::tests::test_live_task_metric_exposes_saturation_when_active_permits_are_idle ... ok
[INFO] [stdout] test push::dispatcher::tests::test_semaphore_available_metric_updates_on_permit_acquire ... ok
[INFO] [stdout] test push::dispatcher::tests::test_queue_metric_updates_after_dispatcher_dequeue ... ok
[INFO] [stdout] test push::dispatcher::tests::test_token_is_encodable_matches_dispatch_encoding ... ok
[INFO] [stdout] test push::dispatcher::tests::test_wait_for_completion ... ok
[INFO] [stdout] test push::dispatcher::tests::test_send_outcome_metrics_distinguish_invalid_token_and_retries_exhausted ... ok
[INFO] [stdout] test push::dispatcher::tests::test_is_ready_both_clients ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_successful_path_updates_dedup_gauge_once ... ok
[INFO] [stdout] test push::fcm::tests::test_auth_error_invalidates_cached_token ... ok
[INFO] [stdout] test push::fcm::tests::test_classify_fcm_error_other_statuses_are_permanent ... ok
[INFO] [stdout] test push::fcm::tests::test_classify_fcm_error_unregistered_detail_is_token_dead ... ok
[INFO] [stdout] test push::dispatcher::tests::test_inflight_tracker_blocks_until_guard_dropped ... ok
[INFO] [stdout] test push::fcm::tests::test_client_not_configured_when_disabled ... ok
[INFO] [stdout] test push::fcm::tests::test_fcm_message_with_empty_data ... ok
[INFO] [stdout] test push::fcm::tests::test_fcm_request_borrows_device_token_from_zeroizing_string ... ok
[INFO] [stdout] test push::fcm::tests::test_fcm_request_serialization ... ok
[INFO] [stdout] test push::fcm::tests::test_fcm_message_without_android ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_without_clients ... ok
[INFO] [stdout] test push::fcm::tests::test_auth_error_keeps_token_refreshed_by_concurrent_task ... ok
[INFO] [stdout] test push::fcm::tests::test_get_access_token_no_service_account ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_both_platforms ... ok
[INFO] [stdout] test push::fcm::tests::test_get_access_token_uses_cache ... ok
[INFO] [stdout] test push::fcm::tests::test_get_access_token_oauth_503_is_retriable ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_zero_admission_event_records_metrics ... ok
[INFO] [stdout] test push::fcm::tests::test_get_access_token_expired_cache_tries_refresh ... ok
[INFO] [stdout] test push::dispatcher::tests::test_dispatch_rejects_batch_larger_than_queue ... ok
[INFO] [stdout] test push::fcm::tests::test_get_access_token_oauth_transport_error_is_retriable ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_400_invalid_argument_is_permanent_error ... ok
[INFO] [stdout] test push::fcm::tests::test_get_access_token_oauth_400_is_permanent ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_403_permission_denied_is_permanent_error ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_404_unregistered_status_without_detail_is_permanent_error ... ok
[INFO] [stdout] test push::dispatcher::tests::test_wait_for_completion_drains_backlog_before_returning ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_404_unregistered_detail_is_token_dead ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_404_not_found_is_permanent_error ... ok
[INFO] [stdout] test push::fcm::tests::test_invalid_fcm_token_empty ... ok
[INFO] [stdout] test push::fcm::tests::test_invalid_fcm_token_too_long ... ok
[INFO] [stdout] test push::fcm::tests::test_is_configured_disabled ... ok
[INFO] [stdout] test push::fcm::tests::test_invalid_fcm_token_disallowed_chars ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_multi_token_notification ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_408_is_retriable ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_process_valid_gift_wrap_event ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_503_honors_retry_after_header ... ok
[INFO] [stdout] test push::fcm::tests::test_is_configured_enabled_with_service_account ... ok
[INFO] [stdout] test push::fcm::tests::test_is_configured_missing_service_account ... ok
[INFO] [stdout] test push::fcm::tests::test_mint_falls_back_to_constant_when_token_uri_empty ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_oversized_body_falls_back_without_whole_body_parse ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_500_without_retry_after_is_retriable_without_hint ... ok
[INFO] [stdout] test push::fcm::tests::test_is_configured_with_service_account ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_records_per_attempt_status_not_duration ... ok
[INFO] [stdout] test push::fcm::tests::test_mint_clamps_pathologically_large_provider_expiry ... ok
[INFO] [stdout] test push::fcm::tests::test_minted_token_stores_access_token_in_zeroizing_string ... ok
[INFO] [stdout] test push::fcm::tests::test_mint_honors_provider_expires_in ... ok
[INFO] [stdout] test push::fcm::tests::test_new_client_without_service_account_path ... ok
[INFO] [stdout] test push::fcm::tests::test_new_client_invalid_json ... ok
[INFO] [stdout] test push::fcm::tests::test_new_client_invalid_key_in_service_account ... ok
[INFO] [stdout] test push::fcm::tests::test_oauth_token_http_status_classifies_permanent_oauth_failures ... ok
[INFO] [stdout] test push::fcm::tests::test_oauth_token_http_status_classifies_transient_failures_as_retriable ... ok
[INFO] [stdout] test push::dispatcher::tests::test_queue_depth_does_not_drift_across_batches ... FAILED
[INFO] [stdout] test push::fcm::tests::test_new_client_invalid_service_account_path ... ok
[INFO] [stdout] test push::fcm::tests::test_oauth_token_http_status_honors_retry_after_for_503 ... ok
[INFO] [stdout] test push::fcm::tests::test_oauth_failure_message_omits_body_and_stays_bounded ... ok
[INFO] [stdout] test push::fcm::tests::test_project_id_missing ... ok
[INFO] [stdout] test push::fcm::tests::test_project_id_empty_config_no_service_account ... ok
[INFO] [stdout] test push::fcm::tests::test_project_id_from_config ... ok
[INFO] [stdout] test push::fcm::tests::test_mint_oauth_success_body_read_error_is_retriable ... ok
[INFO] [stdout] test push::fcm::tests::test_send_does_not_retry_permanent_oauth_failure ... ok
[INFO] [stdout] test push::fcm::tests::test_is_configured_missing_service_account_and_encoding_key ... ok
[INFO] [stdout] test push::fcm::tests::test_handle_response_unexpected_status_is_permanent_error ... ok
[INFO] [stdout] test push::fcm::tests::test_project_id_from_service_account ... ok
[INFO] [stdout] test push::fcm::tests::test_mint_signs_aud_matching_post_target_for_empty_token_uri ... ok
[INFO] [stdout] test push::fcm::tests::test_send_auth_error ... ok
[INFO] [stdout] test push::fcm::tests::test_mint_rejects_oversized_oauth_success_body ... ok
[INFO] [stdout] test push::fcm::tests::test_send_bad_request ... ok
[INFO] [stdout] test push::fcm::tests::test_send_once_returns_retriable_on_500 ... ok
[INFO] [stdout] test push::fcm::tests::test_send_once_returns_retriable_on_429 ... ok
[INFO] [stdout] test push::fcm::tests::test_send_once_returns_retriable_on_503 ... ok
[INFO] [stdout] test push::fcm::tests::test_send_rate_limited ... ok
[INFO] [stdout] test push::fcm::tests::test_send_rejects_invalid_config_project_id_before_auth ... ok
[INFO] [stdout] test push::fcm::tests::test_send_not_found ... ok
[INFO] [stdout] test push::fcm::tests::test_mint_posts_to_service_account_token_uri ... ok
[INFO] [stdout] test push::fcm::tests::test_send_rejects_invalid_token_without_oauth ... ok
[INFO] [stdout] test push::fcm::tests::test_send_success ... ok
[INFO] [stdout] test push::fcm::tests::test_send_unexpected_status ... ok
[INFO] [stdout] test push::fcm::tests::test_send_rejects_invalid_service_account_project_id_before_auth ... ok
[INFO] [stdout] test push::fcm::tests::test_service_account_debug_redacts_private_key ... ok
[INFO] [stdout] test push::fcm::tests::test_send_without_access_token ... ok
[INFO] [stdout] test push::fcm::tests::test_send_retries_on_429_then_succeeds ... ok
[INFO] [stdout] test push::fcm::tests::test_send_without_project_id ... ok
[INFO] [stdout] test push::fcm::tests::test_token_cache_lifetime_uses_provider_expiry_with_safety_margin ... ok
[INFO] [stdout] test push::fcm::tests::test_token_request_stores_assertion_in_zeroizing_string ... ok
[INFO] [stdout] test push::fcm::tests::test_token_response_deserializes_access_token_and_expiry ... ok
[INFO] [stdout] test push::fcm::tests::test_token_cache_lifetime_falls_back_when_provider_omits_expiry ... ok
[INFO] [stdout] test push::fcm::tests::test_valid_fcm_token ... ok
[INFO] [stdout] test push::retry::tests::test_default_config ... ok
[INFO] [stdout] test push::retry::tests::test_parse_retry_after_http_date_equal_now_is_zero ... ok
[INFO] [stdout] test push::retry::tests::test_parse_retry_after_http_date_future ... ok
[INFO] [stdout] test push::retry::tests::test_parse_retry_after_http_date_past_clamps_to_zero ... ok
[INFO] [stdout] test push::retry::tests::test_parse_retry_after_none ... ok
[INFO] [stdout] test push::retry::tests::test_parse_retry_after_seconds_unchanged_by_now ... ok
[INFO] [stdout] test push::retry::tests::test_retry_after_budget_is_cumulative_per_logical_push ... ok
[INFO] [stdout] test push::retry::tests::test_retry_after_budget_honors_only_remaining_provider_delay ... ok
[INFO] [stdout] test push::retry::tests::test_retry_after_from_headers ... ok
[INFO] [stdout] test push::retry::tests::test_retry_jitter_is_capped ... ok
[INFO] [stdout] test push::retry::tests::test_retry_after_jitter_never_retries_before_server_delay ... ok
[INFO] [stdout] test push::retry::tests::test_retry_sleep_duration_caps_untrusted_retry_after ... ok
[INFO] [stdout] test push::retry::tests::test_parse_retry_after_seconds ... ok
[INFO] [stdout] test push::retry::tests::test_retry_sleep_duration_floors_zero_retry_after ... ok
[INFO] [stdout] test push::retry::tests::test_retry_sleep_duration_honors_retry_after_above_max_backoff ... ok
[INFO] [stdout] test push::fcm::tests::test_signed_aud_and_post_target_agree_for_standard_and_empty_token_uri ... ok
[INFO] [stdout] test push::retry::tests::test_retry_sleep_duration_jitters_fallback_between_window_and_base ... ok
[INFO] [stdout] test push::fcm::tests::test_token_cache_lifetime_clamps_huge_provider_expiry_to_maximum ... ok
[INFO] [stdout] test push::retry::tests::test_parse_retry_after_http_date_via_headers ... ok
[INFO] [stdout] test push::retry::tests::test_retry_sleep_duration_caps_exponential_backoff ... ok
[INFO] [stdout] test push::retry::tests::test_parse_retry_after_invalid ... ok
[INFO] [stdout] test push::retry::tests::test_retry_sleep_duration_honors_retry_after_at_cap_boundary ... ok
[INFO] [stdout] test push::retry::tests::test_retry_sleep_duration_tiny_nonzero_retry_after_uses_fallback_backoff ... ok
[INFO] [stdout] test push::fcm::tests::test_oauth_failure_does_not_propagate_or_buffer_raw_body ... ok
[INFO] [stdout] test push::retry::tests::test_retry_sleep_duration_uses_fallback_backoff_when_retry_after_is_zero ... ok
[INFO] [stdout] test push::retry::tests::test_tiny_retry_after_counts_only_provider_floor_against_budget ... ok
[INFO] [stdout] test push::retry::tests::test_should_retry_transport_non_connect_error_is_not_retriable ... ok
[INFO] [stdout] test push::retry::tests::test_transport_config_is_shared_and_bounded ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_auth_rejected_twice_returns_error ... ok
[INFO] [stdout] test push::fcm::tests::test_token_cache_lifetime_clamps_short_provider_expiry_to_minimum ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_permanent_error ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_auth_retry_budget_is_separate_from_transient_budget ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_repeated_retry_after_zero_sleeps_before_each_retry ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_success_false ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_max_retries_exceeded ... ok
[INFO] [stdout] test push::retry::tests::test_should_retry_transport_connect_error_is_retriable ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_success_first_attempt ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_auth_rejected_retries_once_then_succeeds ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_success_after_retries ... ok
[INFO] [stdout] test push::retry::tests::test_with_transport_retry_does_not_retry_non_connect_error ... ok
[INFO] [stdout] test push::retry::tests::test_with_transport_retry_exhausts_retries ... ok
[INFO] [stdout] test push::tests::auth_jwt_exp_is_max_lifetime_after_the_backdated_iat ... ok
[INFO] [stdout] test push::tests::auth_jwt_iat_is_backdated_by_the_clock_skew_leeway ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_records_metrics ... ok
[INFO] [stdout] test push::tests::auth_jwt_iat_saturates_at_epoch ... ok
[INFO] [stdout] test push::retry::tests::test_with_transport_retry_redacts_url_from_exhausted_connect_error ... ok
[INFO] [stdout] test push::retry::tests::test_with_transport_retry_redacts_url_from_non_retriable_error ... ok
[INFO] [stdout] test push::retry::tests::test_with_transport_retry_success_after_retries ... ok
[INFO] [stdout] test push::tests::test_parses_small_error_body ... ok
[INFO] [stdout] test nostr::client::tests::test_relay_client_connect_times_out_with_unreachable_relay ... ok
[INFO] [stdout] test push::tests::test_returns_none_for_empty_body ... ok
[INFO] [stdout] test rate_limiter::tests::test_admission_scan_bound_is_small_relative_to_cleanup_batch ... ok
[INFO] [stdout] test push::tests::test_body_at_limit_is_still_parsed ... ok
[INFO] [stdout] test rate_limiter::tests::test_admission_timestamp_is_captured_after_stripe_lock_wait ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_releases_permit_during_backoff ... ok
[INFO] [stdout] test rate_limiter::tests::test_admission_scan_prunes_stale_candidate_within_bounded_window ... ok
[INFO] [stdout] test rate_limiter::tests::test_admission_eviction_prefers_stale_victim_over_below_limit_victim ... ok
[INFO] [stdout] test rate_limiter::tests::test_cache_pressure_does_not_reset_limited_key ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_updates_semaphore_metric_during_backoff_transitions ... ok
[INFO] [stdout] test rate_limiter::tests::test_admission_eviction_reports_side_effect ... ok
[INFO] [stdout] test rate_limiter::tests::test_cache_pressure_evicts_oldest_unlimited_key_for_new_key ... ok
[INFO] [stdout] test rate_limiter::tests::test_capacity_limit_does_not_report_admission_eviction ... ok
[INFO] [stdout] test rate_limiter::tests::test_allows_within_limits ... ok
[INFO] [stdout] test rate_limiter::tests::test_cleanup ... ok
[INFO] [stdout] test push::tests::test_returns_none_for_non_json_body ... ok
[INFO] [stdout] test rate_limiter::tests::test_check_and_increment_samples_live_cache_size ... ok
[INFO] [stdout] test rate_limiter::tests::test_hour_window_reset ... ok
[INFO] [stdout] test rate_limiter::tests::test_hour_limit ... ok
[INFO] [stdout] test rate_limiter::tests::test_is_empty_reports_false_with_entries ... ok
[INFO] [stdout] test rate_limiter::tests::test_large_cache_is_sharded_and_capacity_sums_to_max_entries ... ok
[INFO] [stdout] test rate_limiter::tests::test_minute_limit ... ok
[INFO] [stdout] test rate_limiter::tests::test_minute_limit_slides_across_window_boundary ... ok
[INFO] [stdout] test rate_limiter::tests::test_minute_window_reset ... ok
[INFO] [stdout] test rate_limiter::tests::test_rejected_admission_carries_no_gauge_sample ... ok
[INFO] [stdout] test rate_limiter::tests::test_remove_hit_prefers_recent_back_match ... ok
[INFO] [stdout] test rate_limiter::tests::test_rejects_new_keys_at_capacity_when_no_safe_eviction_exists ... ok
[INFO] [stdout] test rate_limiter::tests::test_cleanup_scans_stale_lru_entries_first ... ok
[INFO] [stdout] test push::fcm::tests::test_send_records_one_duration_sample_per_logical_push_across_retries ... ok
[INFO] [stdout] test rate_limiter::tests::test_result_helpers ... ok
[INFO] [stdout] test push::fcm::tests::test_send_retries_transient_oauth_failure_then_succeeds ... ok
[INFO] [stdout] test rate_limiter::tests::test_rollback_increment_ignores_recreated_entry_with_same_key ... ok
[INFO] [stdout] test rate_limiter::tests::test_rollback_increment_refunds_allowed_request ... ok
[INFO] [stdout] test rate_limiter::tests::test_sampled_cache_size_does_not_lock_unrelated_stripes ... ok
[INFO] [stdout] test rate_limiter::tests::test_reservation_ids_unique_across_stripes ... ok
[INFO] [stdout] test rate_limiter::tests::test_rollback_increment_removes_only_reserved_hit ... ok
[INFO] [stdout] test rate_limiter::tests::test_small_cache_uses_single_stripe ... ok
[INFO] [stdout] test rate_limiter::tests::test_with_byte_array_keys ... ok
[INFO] [stdout] test rate_limiter::tests::test_sharded_capacity_rejection_is_stripe_local ... ok
[INFO] [stdout] test push::tests::test_oversized_body_falls_back_without_parsing_whole_body ... ok
[INFO] [stdout] test rate_limiter::tests::test_sharded_limiter_tracks_distinct_keys_and_limits_repeats ... ok
[INFO] [stdout] test rate_limiter::tests::test_concurrent_admissions_across_stripes_do_not_deadlock ... ok
[INFO] [stdout] test rate_limiter::tests::test_cleanup_reclaims_stale_entries_across_stripes ... ok
[INFO] [stdout] test push::retry::tests::test_with_retry_uses_retry_after_header ... ok
[INFO] [stdout] test redaction::tests::clean_text_is_returned_borrowed_and_unchanged ... ok
[INFO] [stdout] test redaction::tests::apns_device_paths_are_redacted_even_when_the_token_is_short ... ok
[INFO] [stdout] test redaction::tests::onion_hostnames_are_redacted ... ok
[INFO] [stdout] test redaction::tests::nsec_keys_are_redacted ... ok
[INFO] [stdout] test redaction::tests::plaintext_ws_relay_urls_are_redacted ... ok
[INFO] [stdout] test redaction::tests::redact_in_place_rewrites_only_dirty_strings ... ok
[INFO] [stdout] test redaction::tests::short_colon_separated_text_passes_through ... ok
[INFO] [stdout] test redaction::tests::bare_oauth_access_jwts_are_redacted ... ok
[INFO] [stdout] test redaction::tests::hex_runs_of_64_or_more_chars_are_redacted ... ok
[INFO] [stdout] test redaction::tests::short_hex_runs_pass_through ... ok
[INFO] [stdout] test redaction::tests::multiple_patterns_in_one_message_are_all_redacted ... ok
[INFO] [stdout] test server::health::tests::bind_fails_fast_when_the_port_is_taken ... ok
[INFO] [stdout] test redaction::tests::uppercase_hex_runs_are_redacted ... ok
[INFO] [stdout] test redaction::tests::wss_relay_urls_are_redacted ... ok
[INFO] [stdout] test push::dispatcher::tests::test_wait_for_completion_waits_for_retry_task_during_backoff ... ok
[INFO] [stdout] test server::health::tests::bind_returns_listener_on_the_configured_address ... ok
[INFO] [stdout] test rate_limiter::tests::test_hour_limit_slides_across_window_boundary ... ok
[INFO] [stdout] test rate_limiter::tests::test_independent_keys ... ok
[INFO] [stdout] test server::health::tests::bind_returns_listener_when_metrics_enabled_and_health_disabled ... ok
[INFO] [stdout] test server::health::tests::test_health_response_serialization ... ok
[INFO] [stdout] test redaction::tests::provider_auth_jwts_are_redacted ... ok
[INFO] [stdout] test server::health::tests::test_metrics_handler_returns_not_found_without_metrics ... ok
[INFO] [stdout] test redaction::tests::fcm_registration_tokens_are_redacted ... ok
[INFO] [stdout] test server::health::tests::bind_returns_none_when_disabled ... ok
[INFO] [stdout] test push::retry::tests::wait_for_attempt_count_panics_when_progress_never_happens - should panic ... ok
[INFO] [stdout] test redaction::tests::long_token_shaped_text_without_fcm_separator_passes_through ... ok
[INFO] [stdout] test server::health::tests::test_bind_error_contains_address ... ok
[INFO] [stdout] test server::health::tests::test_ready_response_serialization ... ok
[INFO] [stdout] test server::health::tests::serve_without_listener_waits_for_shutdown ... ok
[INFO] [stdout] test shutdown::tests::cloned_trigger_handle_shares_the_shutdown_channel ... ok
[INFO] [stdout] test shutdown::tests::fallible_signal_completes_when_handler_succeeds ... ok
[INFO] [stdout] test shutdown::tests::first_signal_triggers_shutdown_and_spawns_second_signal_listener ... ok
[INFO] [stdout] test shutdown::tests::force_quit_after_second_signal_exits_with_failure_status ... ok
[INFO] [stdout] test shutdown::tests::select_shutdown_signal_returns_ctrl_c_when_ctrl_c_completes ... ok
[INFO] [stdout] test server::health::tests::test_health_endpoint ... ok
[INFO] [stdout] test shutdown::tests::shutdown_signal_name_labels_each_variant ... ok
[INFO] [stdout] test shutdown::tests::test_graceful_shutdown_completes ... ok
[INFO] [stdout] test server::health::tests::test_metrics_endpoint_disabled ... ok
[INFO] [stdout] test shutdown::tests::test_graceful_shutdown_custom_timeout ... ok
[INFO] [stdout] test shutdown::tests::fallible_signal_install_error_waits_forever ... ok
[INFO] [stdout] test shutdown::tests::test_multiple_subscribers ... ok
[INFO] [stdout] test shutdown::tests::test_shutdown_handler ... ok
[INFO] [stdout] test shutdown::tests::test_subscribe_before_and_after_trigger ... ok
[INFO] [stdout] test shutdown::tests::test_trigger_multiple_times ... ok
[INFO] [stdout] test shutdown::tests::select_shutdown_signal_returns_sigterm_when_sigterm_completes ... ok
[INFO] [stdout] test shutdown::tests::trigger_handle_triggers_shutdown_for_subscribers ... ok
[INFO] [stdout] test shutdown::tests::wait_for_signal_or_trigger_returns_on_internal_trigger ... ok
[INFO] [stdout] test server::health::tests::bind_returns_none_without_attempting_when_nothing_is_served ... ok
[INFO] [stdout] test shutdown::tests::wait_for_signal_or_trigger_returns_when_already_triggered ... ok
[INFO] [stdout] test telemetry::tests::capture_decision_drops_non_errors_and_third_party ... ok
[INFO] [stdout] test telemetry::tests::first_party_targets_are_captured ... ok
[INFO] [stdout] test shutdown::tests::test_shutdown_handler_default ... ok
[INFO] [stdout] test telemetry::tests::capture_decision_forwards_first_party_errors ... ok
[INFO] [stdout] test telemetry::tests::glitchtip_http_client_builds_with_bundled_roots ... ok
[INFO] [stdout] test telemetry::tests::init_is_disabled_without_a_dsn ... ok
[INFO] [stdout] test telemetry::tests::init_rejects_a_malformed_dsn ... ok
[INFO] [stdout] test telemetry::tests::init_treats_a_whitespace_dsn_as_disabled ... ok
[INFO] [stdout] test telemetry::tests::scrub_event_drops_the_server_name ... ok
[INFO] [stdout] test telemetry::tests::scrub_event_leaves_clean_messages_untouched ... ok
[INFO] [stdout] test telemetry::tests::scrub_envelope_redacts_transaction_and_span_payloads ... ok
[INFO] [stdout] test telemetry::tests::scrub_event_redacts_a_device_token_url_in_the_message ... ok
[INFO] [stdout] test telemetry::tests::third_party_and_lookalike_targets_are_excluded ... ok
[INFO] [stdout] test shutdown::tests::wait_for_shutdown_signal_receives_sigterm ... ok
[INFO] [stdout] test test_support::tests::server_config_with_applies_override ... ok
[INFO] [stdout] test test_support::tests::default_server_config_has_no_zeroed_limits ... ok
[INFO] [stdout] test telemetry::tests::scrub_event_redacts_structured_tags_contexts_and_extra_values ... ok
[INFO] [stdout] test test_vectors::tests::test_fcm_token_roundtrip ... ok
[INFO] [stdout] test test_vectors::tests::test_gift_wrap_creation ... ok
[INFO] [stdout] test telemetry::tests::scrub_event_redacts_exception_values_and_log_entries ... ok
[INFO] [stdout] test test_vectors::tests::test_notification_content_builder ... ok
[INFO] [stdout] test server::health::tests::test_ready_endpoint_not_ready ... ok
[INFO] [stdout] test test_vectors::tests::test_token_encryption_roundtrip ... ok
[INFO] [stdout] test server::health::tests::test_metrics_served_when_health_endpoints_disabled ... ok
[INFO] [stdout] test test_vectors::tests::test_full_decryption_roundtrip ... ok
[INFO] [stdout] test test_vectors::tests::test_gift_wrap_unwrap_roundtrip ... ok
[INFO] [stdout] test server::health::tests::test_server_disabled ... ok
[INFO] [stdout] test push::dispatcher::tests::test_live_task_semaphore_caps_live_tasks_under_backoff_storm ... ok
[INFO] [stdout] test server::health::tests::test_request_body_limit_rejects_oversized_bodies ... ok
[INFO] [stdout] test server::health::tests::test_metrics_endpoint ... ok
[INFO] [stdout] test server::health::tests::test_ready_endpoint_ready ... ok
[INFO] [stdout] test server::health::tests::test_ready_not_ready_when_configured_provider_stops_delivering ... ok
[INFO] [stdout] test test_vectors::tests::test_gift_wrap_unwrap_roundtrip_without_encoding_tag ... ok
[INFO] [stdout] test nostr::events::processor::tests::test_concurrent_device_rejects_do_not_strand_encrypted_charges ... ok
[INFO] [stdout] test shutdown::tests::test_graceful_shutdown_timeout ... ok
[INFO] [stdout] test server::health::tests::wait_for_server_response_times_out_if_server_never_starts - should panic ... ok
[INFO] [stdout] test nostr::client::tests::test_publish_inbox_relays_records_metric_when_publish_reaches_no_relays ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- push::dispatcher::tests::test_queue_depth_does_not_drift_across_batches stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'push::dispatcher::tests::test_queue_depth_does_not_drift_across_batches' (4872) panicked at src/push/dispatcher/mod.rs:1917:13:
[INFO] [stdout] assertion `left == right` failed: queue_size gauge drifted above 0 — decrement-after-send race regressed
[INFO] [stdout]   left: 1
[INFO] [stdout]  right: 0
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5e0f762dbe98 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5e0f762dbe98 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5e0f762dbe98 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5e0f762dbe98 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5e0f762f628a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5e0f762f628a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5e0f762e1cb2 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5e0f762e1cb2 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5e0f762b6626 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5e0f762b6626 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5e0f762d2479 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5e0f74e308dc - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5e0f74e308dc - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5e0f762d26f2 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5e0f762d26f2 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5e0f762b66e2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5e0f762aafa9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5e0f762b77fd - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5e0f762f6afc - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5e0f762f69e3 - core[8fb95b77d25ab6c8]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:434:23
[INFO] [stdout]   20:     0x5e0f74b5b43d - core[8fb95b77d25ab6c8]::panicking::assert_failed::<i64, i64>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5e0f746a3601 - transponder[5850c650ce0c9190]::push::dispatcher::tests::test_queue_depth_does_not_drift_across_batches::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/push/dispatcher/mod.rs:1917:13
[INFO] [stdout]   22:     0x5e0f74a36c22 - <core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>> as core[8fb95b77d25ab6c8]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9
[INFO] [stdout]   23:     0x5e0f748ee78d - <tokio[e39e5e4ad54e0565]::runtime::park::CachedParkThread>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/park.rs:284:71
[INFO] [stdout]   24:     0x5e0f748c83a6 - tokio[e39e5e4ad54e0565]::task::coop::with_budget::<core[8fb95b77d25ab6c8]::task::poll::Poll<()>, <tokio[e39e5e4ad54e0565]::runtime::park::CachedParkThread>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   25:     0x5e0f748c83a6 - tokio[e39e5e4ad54e0565]::task::coop::budget::<core[8fb95b77d25ab6c8]::task::poll::Poll<()>, <tokio[e39e5e4ad54e0565]::runtime::park::CachedParkThread>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   26:     0x5e0f748c83a6 - <tokio[e39e5e4ad54e0565]::runtime::park::CachedParkThread>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/park.rs:284:31
[INFO] [stdout]   27:     0x5e0f74ac4824 - <tokio[e39e5e4ad54e0565]::runtime::context::blocking::BlockingRegionGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/blocking.rs:66:14
[INFO] [stdout]   28:     0x5e0f748eccc8 - <tokio[e39e5e4ad54e0565]::runtime::scheduler::multi_thread::MultiThread>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/multi_thread/mod.rs:89:22
[INFO] [stdout]   29:     0x5e0f74b5cbbb - tokio[e39e5e4ad54e0565]::runtime::context::runtime::enter_runtime::<<tokio[e39e5e4ad54e0565]::runtime::scheduler::multi_thread::MultiThread>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   30:     0x5e0f748b9334 - <tokio[e39e5e4ad54e0565]::runtime::scheduler::multi_thread::MultiThread>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/multi_thread/mod.rs:88:9
[INFO] [stdout]   31:     0x5e0f749b6a64 - <tokio[e39e5e4ad54e0565]::runtime::runtime::Runtime>::block_on_inner::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:373:50
[INFO] [stdout]   32:     0x5e0f749b6e0f - <tokio[e39e5e4ad54e0565]::runtime::runtime::Runtime>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:345:18
[INFO] [stdout]   33:     0x5e0f746fe9c6 - transponder[5850c650ce0c9190]::push::dispatcher::tests::test_queue_depth_does_not_drift_across_batches
[INFO] [stdout]                                at /opt/rustwide/workdir/src/push/dispatcher/mod.rs:1924:47
[INFO] [stdout]   34:     0x5e0f74699be7 - transponder[5850c650ce0c9190]::push::dispatcher::tests::test_queue_depth_does_not_drift_across_batches::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/push/dispatcher/mod.rs:1882:62
[INFO] [stdout]   35:     0x5e0f745bf806 - <transponder[5850c650ce0c9190]::push::dispatcher::tests::test_queue_depth_does_not_drift_across_batches::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   36:     0x5e0f74e239bb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   37:     0x5e0f74e239bb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   38:     0x5e0f74e31235 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   39:     0x5e0f74e31235 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   40:     0x5e0f74e31235 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   41:     0x5e0f74e31235 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   42:     0x5e0f74e31235 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   43:     0x5e0f74e31235 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   44:     0x5e0f74e31235 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   45:     0x5e0f74e2ab44 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   46:     0x5e0f74e2ab44 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   47:     0x5e0f74e342b2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   48:     0x5e0f74e342b2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   49:     0x5e0f74e342b2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   50:     0x5e0f74e342b2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   51:     0x5e0f74e342b2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   52:     0x5e0f74e342b2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   53:     0x5e0f74e342b2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   54:     0x5e0f762dac8f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   55:     0x5e0f762dac8f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   56:     0x74a9bb4d0aa4 - <unknown>
[INFO] [stdout]   57:     0x74a9bb55da64 - clone
[INFO] [stdout]   58:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     push::dispatcher::tests::test_queue_depth_does_not_drift_across_batches
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 704 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.32s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7", kill_on_drop: false }`
[INFO] [stdout] 1391b468507ef59da4b2cf853967bba0686befb545c39b18725c850428f453e7
