[INFO] cloning repository https://github.com/doublewordai/onwards
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/doublewordai/onwards" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublewordai%2Fonwards", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublewordai%2Fonwards'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 84a29c1e834945d6a70597821795756d1cbd1e38
[INFO] testing doublewordai/onwards against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublewordai%2Fonwards" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/doublewordai/onwards
[INFO] finished tweaking git repo https://github.com/doublewordai/onwards
[INFO] tweaked toml for git repo https://github.com/doublewordai/onwards written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/doublewordai/onwards on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/doublewordai/onwards 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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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] 254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25
[INFO] running `Command { std: "docker" "start" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25", 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" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25", 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" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]    Compiling openssl-sys v0.9.116
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling rapidhash v4.4.1
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling rand_xoshiro v0.7.0
[INFO] [stderr]    Compiling left-right v0.11.7
[INFO] [stderr]    Compiling metrics v0.24.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling hashbag v0.1.13
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling metrics-exporter-prometheus v0.18.3
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling sketches-ddsketch v0.3.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling evmap v11.0.0
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling brotli-decompressor v5.0.0
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling dashmap v6.2.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling spinning_top v0.3.0
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling web-time v1.1.0
[INFO] [stderr]    Compiling nonzero_ext v0.3.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling brotli v8.0.2
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling openai-reassembler v0.3.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling metrics-util v0.20.4
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling pin-project v1.1.13
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling opentelemetry v0.31.0
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling bon-macros v3.9.1
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling tracing-opentelemetry v0.32.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling governor v0.10.4
[INFO] [stderr]    Compiling bon v3.9.1
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling tonic v0.14.6
[INFO] [stderr]    Compiling opentelemetry_sdk v0.31.0
[INFO] [stderr]    Compiling tonic-prost v0.14.6
[INFO] [stderr]    Compiling opentelemetry-proto v0.31.0
[INFO] [stderr]    Compiling hyper v1.10.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling opentelemetry-http v0.31.0
[INFO] [stderr]    Compiling opentelemetry-otlp v0.31.1
[INFO] [stderr]    Compiling axum-prometheus v0.10.0
[INFO] [stderr]    Compiling onwards v0.34.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 21s
[INFO] running `Command { std: "docker" "inspect" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25", 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" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling hyper v1.10.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling erased-serde v0.4.10
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling typetag v0.2.21
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling typetag-impl v0.2.21
[INFO] [stderr]    Compiling inventory v0.3.24
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling opentelemetry v0.31.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling metrics-exporter-prometheus v0.18.3
[INFO] [stderr]    Compiling rstest_macros v0.26.1
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling expect-json-macros v1.10.1
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling toml_edit v0.25.11+spec-1.1.0
[INFO] [stderr]    Compiling opentelemetry_sdk v0.31.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling governor v0.10.4
[INFO] [stderr]    Compiling rust-multipart-rfc7578_2 v0.8.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling reserve-port v2.4.0
[INFO] [stderr]    Compiling bytesize v2.3.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling expect-json v1.10.1
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling opentelemetry-proto v0.31.0
[INFO] [stderr]    Compiling tracing-opentelemetry v0.32.1
[INFO] [stderr]    Compiling opentelemetry-http v0.31.0
[INFO] [stderr]    Compiling opentelemetry-otlp v0.31.1
[INFO] [stderr]    Compiling rstest v0.26.1
[INFO] [stderr]    Compiling axum-prometheus v0.10.0
[INFO] [stderr]    Compiling axum-test v18.7.0
[INFO] [stderr]    Compiling onwards v0.34.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 41s
[INFO] running `Command { std: "docker" "inspect" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25", 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" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.97s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/onwards-339eceba40209a39)
[INFO] [stdout] 
[INFO] [stdout] running 420 tests
[INFO] [stdout] test handlers::tests::resolve_trace_propagation_explicit_true_overrides_untrusted_pool ... ok
[INFO] [stdout] test handlers::tests::resolve_trace_propagation_explicit_false_overrides_trusted_pool ... ok
[INFO] [stdout] test handlers::tests::resolve_trace_propagation_inherits_from_target_trusted_when_unset ... ok
[INFO] [stdout] test errors::tests::test_error_response_no_body ... ok
[INFO] [stdout] test handlers::tests::classify_sse_event_distinguishes_error_data_and_comment ... ok
[INFO] [stdout] test handlers::tests::resolve_trace_propagation_inherits_from_pool_when_target_unset ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_adds_x_forwarded_proto ... ok
[INFO] [stdout] test errors::tests::test_forbidden_response_uses_forbidden_message_and_code ... ok
[INFO] [stdout] test errors::tests::test_error_response_has_openai_envelope ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_keeps_safe_headers ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_no_authorization_when_onwards_key_absent ... ok
[INFO] [stdout] test handlers::tests::embedded_error_status_detects_provider_envelope ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_preserves_provider_specific_headers ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_strips_all_sec_ch_ua_variants ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_strips_auth_headers ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_strips_browser_security_headers ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_strips_browser_context_headers ... ok
[INFO] [stdout] test handlers::tests::test_gateway_timeout_error_response ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_strips_caching_headers ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_custom_auth_header_name ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_comprehensive_browser_request ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_adds_authorization_when_onwards_key_present ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_custom_auth_header_prefix ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_strips_model_override_header ... ok
[INFO] [stdout] test handlers::tests::test_path_stripping_false_positive ... ok
[INFO] [stdout] test handlers::tests::test_path_stripping_with_different_prefix ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_custom_header_name_and_prefix ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_empty_auth_header_prefix ... ok
[INFO] [stdout] test handlers::tests::test_path_stripping_without_duplicate ... ok
[INFO] [stdout] test handlers::tests::test_path_stripping_with_actual_duplicate_paths ... ok
[INFO] [stdout] test handlers::tests::test_path_stripping_with_duplicate_prefix ... ok
[INFO] [stdout] test handlers::tests::test_filter_headers_strips_hop_by_hop_headers ... ok
[INFO] [stdout] test handlers::tests::test_path_stripping_with_query_params ... ok
[INFO] [stdout] test handlers::tests::test_timeout_defaults_to_none ... ok
[INFO] [stdout] test handlers::tests::withhold_trace_context_is_noop_when_absent ... ok
[INFO] [stdout] test load_balancer::tests::test_adopt_provider_state_new_provider_starts_at_zero ... ok
[INFO] [stdout] test load_balancer::tests::test_adopt_provider_state_preserves_pool_concurrency_limiter ... ok
[INFO] [stdout] test handlers::tests::withhold_trace_context_strips_inbound_trace_headers ... ok
[INFO] [stdout] test load_balancer::tests::test_adopt_provider_state_preserves_active_counts ... ok
[INFO] [stdout] test handlers::tests::test_gateway_timeout_error_body ... ok
[INFO] [stdout] test handlers::tests::test_timeout_config_can_be_set ... ok
[INFO] [stdout] test load_balancer::tests::test_empty_pool_returns_none ... ok
[INFO] [stdout] test load_balancer::tests::test_evaluate_routing_rules_deny ... ok
[INFO] [stdout] test load_balancer::tests::test_adopt_provider_state_removed_provider_ignored ... ok
[INFO] [stdout] test load_balancer::tests::test_all_at_capacity_returns_none ... ok
[INFO] [stdout] test load_balancer::tests::test_evaluate_routing_rules_first_match_wins ... ok
[INFO] [stdout] test load_balancer::tests::test_evaluate_routing_rules_no_rules ... ok
[INFO] [stdout] test load_balancer::tests::test_evaluate_routing_rules_redirect ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_empty_pool ... ok
[INFO] [stdout] test load_balancer::tests::test_first_target ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_max_attempts_controls_length ... ok
[INFO] [stdout] test load_balancer::tests::test_fallback_max_attempts ... ok
[INFO] [stdout] test load_balancer::tests::test_evaluate_routing_rules_multiple_label_conditions ... ok
[INFO] [stdout] test load_balancer::tests::test_least_connections_prefers_less_loaded ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_max_attempts_with_priority ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_retries_above_strategy ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_defaults_preserve_behavior ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_priority_strategy ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_priority_with_replacement_still_advances ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_weighted_random_includes_all ... ok
[INFO] [stdout] test load_balancer::tests::test_providers_accessor ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_single_provider ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_with_replacement_single_provider ... ok
[INFO] [stdout] test load_balancer::tests::test_single_provider_pool ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_with_replacement_allows_duplicates ... ok
[INFO] [stdout] test load_balancer::tests::test_weighted_least_connections_respects_weights ... ok
[INFO] [stdout] test response_id::tests::extract_override_id_adds_prefix ... ok
[INFO] [stdout] test response_id::tests::extract_override_id_preserves_existing_prefix ... ok
[INFO] [stdout] test response_id::tests::extract_override_id_missing_header ... ok
[INFO] [stdout] test load_balancer::tests::test_weighted_selection_distribution ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_with_replacement_respects_weights ... ok
[INFO] [stdout] test response_id::tests::extract_override_id_wrong_header_name ... ok
[INFO] [stdout] test response_id::tests::path_supports_id_override_rejects_other_paths ... ok
[INFO] [stdout] test response_id::tests::path_supports_id_override_responses ... ok
[INFO] [stdout] test response_id::tests::patch_skips_non_json ... ok
[INFO] [stdout] test response_id::tests::path_supports_id_override_rejects_substring_lookalikes ... ok
[INFO] [stdout] test response_id::tests::patch_preserves_body_without_id_field ... ok
[INFO] [stdout] test response_id::tests::patch_sets_content_length ... ok
[INFO] [stdout] test response_id::tests::path_supports_id_override_trailing_slash ... ok
[INFO] [stdout] test response_id::tests::path_supports_id_override_with_query_string ... ok
[INFO] [stdout] test response_sanitizer::tests::test_path_filtering ... ok
[INFO] [stdout] test load_balancer::tests::test_select_iter_weighted_random_distribution ... ok
[INFO] [stdout] test response_sanitizer::tests::test_streaming_sanitizer_does_not_mask_account_class_code ... ok
[INFO] [stdout] test response_id::tests::path_supports_id_override_chat_completions ... ok
[INFO] [stdout] test response_id::tests::patch_uncompressed_json ... ok
[INFO] [stdout] test response_id::tests::patch_gzip_compressed_json ... ok
[INFO] [stdout] test response_sanitizer::tests::test_streaming_sanitizer_surfaces_embedded_error_verbatim ... ok
[INFO] [stdout] test sse::tests::test_complete_event_passes_through ... ok
[INFO] [stdout] test sse::tests::test_buffer_overflow_terminates_stream ... ok
[INFO] [stdout] test sse::tests::test_empty_stream ... ok
[INFO] [stdout] test sse::tests::test_event_split_at_newline ... ok
[INFO] [stdout] test sse::tests::test_handles_crlf_events ... ok
[INFO] [stdout] test sse::tests::test_incomplete_event_at_stream_end ... ok
[INFO] [stdout] test sse::tests::test_buffer_at_limit_still_works ... ok
[INFO] [stdout] test sse::tests::test_json_split_across_many_chunks ... ok
[INFO] [stdout] test sse::tests::test_multiple_events_across_chunks ... ok
[INFO] [stdout] test sse::tests::test_multiple_events_in_one_chunk ... ok
[INFO] [stdout] test sse::tests::test_preserves_multiline_data ... ok
[INFO] [stdout] test sse::tests::test_split_event_is_buffered ... ok
[INFO] [stdout] test strict::adapter::tests::test_adapter_converts_json_object_text_format_to_response_format ... ok
[INFO] [stdout] test strict::adapter::tests::test_determine_response_status ... ok
[INFO] [stdout] test strict::adapter::tests::test_adapter_simple_request ... ok
[INFO] [stdout] test strict::adapter::tests::test_generate_item_id_unique ... ok
[INFO] [stdout] test strict::adapter::tests::test_input_text_to_messages ... ok
[INFO] [stdout] test strict::adapter::tests::test_items_to_messages ... ok
[INFO] [stdout] test handlers::tests::test_pool_with_fallback_enabled ... ok
[INFO] [stdout] test handlers::tests::embedded_error_status_ignores_normal_and_ambiguous_bodies ... ok
[INFO] [stdout] test load_balancer::tests::test_concurrency_limit_skips_full_provider ... ok
[INFO] [stdout] test response_id::tests::patch_brotli_compressed_json ... ok
[INFO] [stdout] test response_sanitizer::tests::test_streaming_sanitization ... ok
[INFO] [stdout] test response_sanitizer::tests::test_no_model_rewrite ... ok
[INFO] [stdout] test response_sanitizer::tests::test_matched_stop_reason_is_preserved ... ok
[INFO] [stdout] test response_sanitizer::tests::test_openrouter_response_sanitization ... ok
[INFO] [stdout] test response_sanitizer::tests::test_non_streaming_sanitization ... ok
[INFO] [stdout] test response_sanitizer::tests::test_streaming_multiple_chunks ... ok
[INFO] [stdout] test response_sanitizer::tests::test_streaming_sanitizer_ignores_empty_error_object ... ok
[INFO] [stdout] test strict::adapter::tests::test_message_to_items_no_reasoning_unchanged ... ok
[INFO] [stdout] test strict::adapter::tests::test_message_to_items ... ok
[INFO] [stdout] test strict::adapter::tests::test_message_to_items_with_reasoning_details ... ok
[INFO] [stdout] test strict::adapter::tests::test_message_to_items_with_reasoning_content_field ... ok
[INFO] [stdout] test strict::adapter::tests::test_message_with_tool_calls_to_items ... ok
[INFO] [stdout] test strict::adapter::tests::test_message_to_items_with_reasoning_field ... ok
[INFO] [stdout] test strict::adapter::tests::test_stream_options_none_when_not_streaming ... ok
[INFO] [stdout] test strict::adapter::tests::test_stream_options_set_when_streaming ... ok
[INFO] [stdout] test strict::adapter::tests::test_to_responses_response_preserves_cached_and_reasoning_tokens ... ok
[INFO] [stdout] test strict::adapter::tests::test_to_responses_response_with_usage_overrides_token_counts ... ok
[INFO] [stdout] test strict::adapter::tests::test_adapter_converts_json_schema_text_format_to_response_format ... ok
[INFO] [stdout] test strict::handlers::tests::test_completions_rejects_missing_model ... ok
[INFO] [stdout] test strict::handlers::tests::test_completions_array_prompt_accepted ... ok
[INFO] [stdout] test strict::adapter::tests::test_server_tool_routing ... ok
[INFO] [stdout] test strict::adapter::tests::test_to_responses_response_with_usage_none_preserves_none ... ok
[INFO] [stdout] test strict::adapter::tests::test_token_accumulation_across_iterations ... ok
[INFO] [stdout] test strict::handlers::tests::test_error_response_format ... ok
[INFO] [stdout] test strict::handlers::tests::test_mask_account_class_status_remaps_account_codes ... ok
[INFO] [stdout] test strict::handlers::tests::test_completions_forwards_to_completions_endpoint ... ok
[INFO] [stdout] test strict::handlers::tests::test_completions_sanitization_updates_content_length_header ... ok
[INFO] [stdout] test strict::handlers::tests::test_error_response_matches_openai_format ... ok
[INFO] [stdout] test strict::handlers::tests::test_completions_trusted_success_still_sanitized ... ok
[INFO] [stdout] test strict::handlers::tests::test_embeddings_sanitization_updates_content_length_header ... ok
[INFO] [stdout] test strict::handlers::tests::test_error_types_match_openai_conventions ... ok
[INFO] [stdout] test strict::handlers::tests::test_chat_sanitization_updates_content_length_header ... ok
[INFO] [stdout] test strict::handlers::tests::test_completions_untrusted_error_sanitized ... ok
[INFO] [stdout] test strict::handlers::tests::test_completions_trusted_error_passed_through ... ok
[INFO] [stdout] test strict::handlers::tests::test_completions_accepts_missing_prompt ... ok
[INFO] [stdout] test strict::handlers::tests::test_model_override_header_prevents_trust_bypass ... ok
[INFO] [stdout] test strict::handlers::tests::test_provider_untrusted_overrides_trusted_pool ... ok
[INFO] [stdout] test strict::handlers::tests::test_responses_api_request_scrubs_request_id_fields_before_forwarding ... ok
[INFO] [stdout] test strict::handlers::tests::test_responses_api_omitted_fields_not_injected_as_null ... ok
[INFO] [stdout] test strict::handlers::tests::test_provider_trusted_overrides_untrusted_pool ... ok
[INFO] [stdout] test strict::handlers::tests::test_responses_sanitization_updates_content_length_header ... ok
[INFO] [stdout] test strict::handlers::tests::test_responses_api_unknown_item_types_preserved ... ok
[INFO] [stdout] test strict::handlers::tests::test_sanitized_error_for_status_explicit_402_408 ... ok
[INFO] [stdout] test strict::handlers::tests::test_standard_error_response_masks_402_to_502 ... ok
[INFO] [stdout] test strict::handlers::tests::test_streaming_chat_sanitizes_untrusted_error_in_sse ... ok
[INFO] [stdout] test strict::handlers::tests::test_streaming_chat_forwards_trusted_error_in_sse ... ok
[INFO] [stdout] test client::tests::test_create_hyper_client_accepts_https_uris ... ok
[INFO] [stdout] test strict::handlers::tests::test_streaming_chat_surfaces_openrouter_shape_embedded_error ... ok
[INFO] [stdout] test strict::handlers::tests::test_streaming_chat_trusted_emits_envelope_only_for_embedded_error ... ok
[INFO] [stdout] test strict::handlers::tests::test_streaming_sse_comments_dont_leak_metadata ... ok
[INFO] [stdout] test strict::handlers::tests::test_streaming_multiline_sse_events_are_sanitized ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_chat_uses_streaming_sanitizer_when_body_transform_enables_streaming_after_validation ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_error_500_returns_standard_message ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_completions_uses_streaming_sanitizer_when_body_transform_enables_streaming_after_validation ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_chat_request_scrubs_request_id_fields_before_forwarding ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_handle_malformed_error_response ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_mode_ignores_target_sanitize_response_flag ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_error_returns_standard_message ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_backfills_choice_indexes_from_position ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_chat_backfills_choice_indexes_from_position ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_removes_unknown_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_responses_uses_streaming_sanitizer_when_body_transform_enables_streaming_after_validation ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_chat_backfills_missing_noncritical_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_backfills_missing_noncritical_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_streaming_backfills_chunk_indexes_from_position ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_streaming_backfills_missing_chunk_text ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_does_not_backfill_generated_text ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_rewrites_model ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_streaming_reuses_fallback_id_across_chunks ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_streaming_removes_unknown_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_streaming_backfills_missing_noncritical_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_completions_streaming_rewrites_model ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_embeddings_rewrites_model ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_non_streaming_removes_unknown_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_embeddings_removes_unknown_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_backfills_missing_noncritical_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_rewrites_model_field ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_rewrites_model ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_error ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_streaming_backfills_incomplete_details ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_streaming_reuses_fallback_id_across_snapshots ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_removes_unknown_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_streaming_backfills_missing_noncritical_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_streaming_forwards_error_object ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_streaming_removes_unknown_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_responses_streaming_removes_unknown_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_target_account_class_error_not_masked ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_streaming_success_responses_still_sanitized ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_streaming_rewrites_model ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_streaming_chat_backfills_chunk_indexes_from_position ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_streaming_chat_backfills_missing_noncritical_fields ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_target_bypasses_error_sanitization ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_target_bypasses_error_sanitization_embeddings ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_target_bypasses_streaming_error_sanitization ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_target_bypasses_error_sanitization_responses ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_target_sanitizes_success_embeddings ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_ignores_empty_error_object ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_masks_untrusted_408_to_504 ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_trusted_forwards_verbatim ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_untrusted_numeric_string_code ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_untrusted_sanitizes ... ok
[INFO] [stdout] test strict::handlers::tests::test_strict_sanitize_streaming_chat_reuses_fallback_id_across_chunks ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_ignores_valid_chunk ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_masks_untrusted_402_to_502 ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_untrusted_named_rate_limit_code ... ok
[INFO] [stdout] test strict::handlers::tests::test_try_format_sse_error_ignores_non_object_error ... ok
[INFO] [stdout] test strict::handlers::tests::zdr_sanitize_error_response_does_not_log_provider_body ... ok
[INFO] [stdout] test strict::handlers::tests::test_untrusted_target_still_sanitized ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_target_sanitizes_success_responses_api ... ok
[INFO] [stdout] test strict::schemas::chat_completions::tests::test_deserialize_multimodal_content ... ok
[INFO] [stdout] test strict::schemas::chat_completions::tests::test_chunk_without_reasoning_no_regression ... ok
[INFO] [stdout] test strict::handlers::tests::zdr_sanitize_chat_response_does_not_log_body ... ok
[INFO] [stdout] test strict::schemas::chat_completions::tests::test_deserialize_simple_request ... ok
[INFO] [stdout] test strict::schemas::chat_completions::tests::test_deserialize_with_tools ... ok
[INFO] [stdout] test strict::schemas::chat_completions::tests::test_serialize_response ... ok
[INFO] [stdout] test strict::schemas::chat_completions::tests::test_streaming_chunk_with_reasoning_content_vllm_roundtrips ... ok
[INFO] [stdout] test strict::schemas::chat_completions::tests::test_nonstreaming_response_with_reasoning_roundtrips ... ok
[INFO] [stdout] test strict::schemas::completions::tests::test_deserialize_array_of_strings_prompt ... ok
[INFO] [stdout] test strict::schemas::completions::tests::test_deserialize_string_prompt ... ok
[INFO] [stdout] test strict::schemas::completions::tests::test_deserialize_token_array_of_arrays_prompt ... ok
[INFO] [stdout] test strict::schemas::completions::tests::test_deserialize_token_array_prompt ... ok
[INFO] [stdout] test strict::schemas::chat_completions::tests::test_streaming_chunk_with_reasoning_roundtrips ... ok
[INFO] [stdout] test strict::schemas::completions::tests::test_deserialize_with_all_fields ... ok
[INFO] [stdout] test strict::schemas::completions::tests::test_reject_float_token_array_prompt ... ok
[INFO] [stdout] test strict::schemas::completions::tests::test_reject_mixed_token_array_prompt ... ok
[INFO] [stdout] test strict::schemas::embeddings::tests::test_deserialize_multiple_inputs ... ok
[INFO] [stdout] test strict::schemas::embeddings::tests::test_deserialize_simple_request ... ok
[INFO] [stdout] test strict::schemas::embeddings::tests::test_deserialize_with_options ... ok
[INFO] [stdout] test strict::schemas::embeddings::tests::test_serialize_response ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_deserialize_function_call_output_item ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_deserialize_request_with_items ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_deserialize_simple_request ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_deserialize_with_previous_response_id ... ok
[INFO] [stdout] test strict::handlers::tests::test_trusted_target_sanitizes_success_responses ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_function_tool_missing_description_is_rejected ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_function_tool_missing_name_is_rejected ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_function_tool_missing_parameters_is_rejected ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_function_tool_with_empty_parameters_is_valid ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_item_status_serialization ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_message_item_defaults_type_to_message ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_nested_openai_format_tool_is_rejected ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_non_string_item_type_is_rejected ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_request_missing_input_is_rejected ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_request_with_typeless_message_items_parses ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_serialize_response ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_streaming_event_parses_delta_without_response ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_streaming_event_model_rewrite_roundtrips ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_streaming_event_rejects_missing_required_fields ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_streaming_event_parses_response_created ... ok
[INFO] [stdout] test strict::schemas::responses::tests::test_valid_function_tool_with_all_required_fields ... ok
[INFO] [stdout] test strict::streaming::tests::test_event_sse_format ... ok
[INFO] [stdout] test strict::streaming::tests::test_extract_tool_calls ... ok
[INFO] [stdout] test strict::streaming::tests::test_extract_tool_calls_empty_when_no_tools ... ok
[INFO] [stdout] test strict::streaming::tests::test_multi_iteration_final_response_includes_all_items ... ok
[INFO] [stdout] test strict::streaming::tests::test_multi_iteration_output_indices ... ok
[INFO] [stdout] test strict::streaming::tests::test_parse_chat_chunk ... ok
[INFO] [stdout] test strict::streaming::tests::test_parse_done_marker ... ok
[INFO] [stdout] test strict::streaming::tests::test_multi_iteration_item_ids_are_unique ... ok
[INFO] [stdout] test strict::streaming::tests::test_prepare_next_iteration ... ok
[INFO] [stdout] test strict::streaming::tests::test_reasoning_only_stream_produces_reasoning_item ... ok
[INFO] [stdout] test strict::streaming::tests::test_reasoning_plus_content_stream ... ok
[INFO] [stdout] test strict::streaming::tests::test_reasoning_stream_event_sequence ... ok
[INFO] [stdout] test strict::streaming::tests::test_sequence_numbers_increase ... ok
[INFO] [stdout] test strict::streaming::tests::test_streaming_state_completion_events ... ok
[INFO] [stdout] test strict::streaming::tests::test_streaming_state_content_events ... ok
[INFO] [stdout] test strict::streaming::tests::test_streaming_state_finalize ... ok
[INFO] [stdout] test strict::streaming::tests::test_streaming_state_initial_events ... ok
[INFO] [stdout] test strict::streaming::tests::test_streaming_state_preserves_usage_token_details ... ok
[INFO] [stdout] test strict::tests::test_chat_usage_to_response_usage_clamps_oversized_values ... ok
[INFO] [stdout] test strict::tests::test_adapter_converts_responses_to_chat_completions ... ok
[INFO] [stdout] test strict::tests::test_chat_usage_to_response_usage_extracts_details ... ok
[INFO] [stdout] test strict::tests::test_adapter_with_instructions ... ok
[INFO] [stdout] test strict::tests::test_chat_usage_to_response_usage_missing_details ... ok
[INFO] [stdout] test strict::tests::test_completions_accepts_missing_prompt ... ok
[INFO] [stdout] test strict::tests::test_completions_proxied_to_upstream_completions ... ok
[INFO] [stdout] test strict::tests::test_merge_usage_details_handles_none ... ok
[INFO] [stdout] test strict::tests::test_merge_usage_details_sums_numeric_fields ... ok
[INFO] [stdout] test strict::tests::test_duplicate_tool_name_returns_400 ... ok
[INFO] [stdout] test strict::tests::test_merge_usage_details_union_of_keys ... ok
[INFO] [stdout] test strict::tests::test_completions_streaming_response_format ... ok
[INFO] [stdout] test strict::tests::test_passthrough_mode_without_adapter ... ok
[INFO] [stdout] test strict::tests::test_streaming_adapter_mode ... ok
[INFO] [stdout] test strict::tests::test_strict_router_accepts_completions_endpoint ... ok
[INFO] [stdout] test strict::tests::test_strict_router_accepts_models_endpoint ... ok
[INFO] [stdout] test strict::tests::test_strict_router_messages_alias_routes_to_chat_completions ... ok
[INFO] [stdout] test strict::tests::test_strict_router_rejects_body_over_configured_limit ... ok
[INFO] [stdout] test strict::tests::test_streaming_adapter_tool_calls_unhandled ... ok
[INFO] [stdout] test strict::tests::test_strict_router_rejects_unknown_paths ... ok
[INFO] [stdout] test target::tests::test_backoff_clamped_to_max_ms ... ok
[INFO] [stdout] test target::tests::test_backoff_exponential_growth ... ok
[INFO] [stdout] test target::tests::test_backoff_extreme_exponent_stays_bounded ... ok
[INFO] [stdout] test target::tests::test_backoff_factor_one_is_constant ... ok
[INFO] [stdout] test target::tests::test_backoff_first_retry_is_initial ... ok
[INFO] [stdout] test target::tests::test_backoff_none_jitter_is_deterministic ... ok
[INFO] [stdout] test target::tests::test_backoff_serde_defaults ... ok
[INFO] [stdout] test target::tests::test_backoff_zero_retry_index_is_zero ... ok
[INFO] [stdout] test target::tests::test_backoff_full_jitter_within_bounds ... ok
[INFO] [stdout] test target::tests::test_backwards_compat_list_format_config ... ok
[INFO] [stdout] test target::tests::test_backwards_compat_single_target_config ... ok
[INFO] [stdout] test target::tests::test_concurrency_limiter_allows_requests ... ok
[INFO] [stdout] test target::tests::test_concurrency_limiter_blocks_at_capacity ... ok
[INFO] [stdout] test target::tests::test_concurrency_limiter_releases_on_drop ... ok
[INFO] [stdout] test target::tests::test_fallback_config_backoff_unset_by_default ... ok
[INFO] [stdout] test target::tests::test_fallback_config_disabled_ignores_status ... ok
[INFO] [stdout] test target::tests::test_fallback_config_two_digit_wildcard ... ok
[INFO] [stdout] test target::tests::test_fallback_config_wildcard_status_codes ... ok
[INFO] [stdout] test target::tests::test_fallback_config_with_backoff_and_budget ... ok
[INFO] [stdout] test target::tests::test_from_config_merges_global_keys_with_target_keys ... ok
[INFO] [stdout] test target::tests::test_into_pool_preserves_sanitize_response_disabled ... ok
[INFO] [stdout] test target::tests::test_from_config_no_global_keys ... ok
[INFO] [stdout] test target::tests::test_key_labels_wired_through_config ... ok
[INFO] [stdout] test target::tests::test_from_config_target_without_keys_gets_global_keys ... ok
[INFO] [stdout] test target::tests::test_legacy_list_carries_per_provider_propagate_trace_context ... ok
[INFO] [stdout] test target::tests::test_legacy_list_mixed_trusted_values_rejected ... ok
[INFO] [stdout] test target::tests::test_per_key_rate_limiting_no_rate_limit_configured ... ok
[INFO] [stdout] test target::tests::test_per_key_concurrency_limiting_configured ... ok
[INFO] [stdout] test target::tests::test_normalize_url_adds_trailing_slash ... ok
[INFO] [stdout] test target::tests::test_into_pool_preserves_sanitize_response ... ok
[INFO] [stdout] test target::tests::test_per_provider_trusted_parsed_from_config ... ok
[INFO] [stdout] test target::tests::test_pool_config_mixed_timeouts ... ok
[INFO] [stdout] test target::tests::test_per_key_concurrency_limiting_not_configured ... ok
[INFO] [stdout] test target::tests::test_provider_spec_trusted_some_false ... ok
[INFO] [stdout] test target::tests::test_provider_spec_trusted_defaults_to_none ... ok
[INFO] [stdout] test target::tests::test_pool_config_with_timeout ... ok
[INFO] [stdout] test target::tests::test_pool_config_weighted_random_strategy ... ok
[INFO] [stdout] test target::tests::test_provider_spec_trusted_some_true ... ok
[INFO] [stdout] test target::tests::test_rate_limiter_trait_allows_requests ... ok
[INFO] [stdout] test target::tests::test_pool_config_with_strategy ... ok
[INFO] [stdout] test target::tests::test_rate_limiter_trait_can_change_state ... ok
[INFO] [stdout] test target::tests::test_rate_limiter_trait_blocks_requests ... ok
[INFO] [stdout] test target::tests::test_routing_rules_deserialized_from_config ... ok
[INFO] [stdout] test target::tests::test_routing_rules_empty_by_default ... ok
[INFO] [stdout] test target::tests::test_single_target_config_with_timeout ... ok
[INFO] [stdout] test target::tests::test_single_target_config_without_timeout ... ok
[INFO] [stdout] test target::tests::test_target_from_provider_spec_trusted_none ... ok
[INFO] [stdout] test target::tests::test_target_from_provider_spec_propagates_trusted ... ok
[INFO] [stdout] test target::tests::test_target_spec_conversion_normalizes_url ... ok
[INFO] [stdout] test target::tests::test_target_with_concurrency_limit_config ... ok
[INFO] [stdout] test target::tests::test_target_without_rate_limit_config ... ok
[INFO] [stdout] test target::tests::test_target_without_concurrency_limit_config ... ok
[INFO] [stdout] test target::tests::test_trusted_field_defaults_to_false ... ok
[INFO] [stdout] test target::tests::test_trusted_field_preserved_in_pool_conversion ... ok
[INFO] [stdout] test target::tests::test_trusted_field_set_to_true ... ok
[INFO] [stdout] test target::tests::test_per_key_rate_limiting_with_actual_key ... ok
[INFO] [stdout] test target::tests::test_target_with_rate_limit_config ... ok
[INFO] [stdout] test target::tests::test_url_joining_after_normalization ... ok
[INFO] [stdout] test target::tests::test_trusted_field_in_pool_config ... ok
[INFO] [stdout] test tests::load_balancing::test_single_provider_pool_behaves_like_single_target ... ok
[INFO] [stdout] test tests::load_balancing::test_load_balancing_with_multiple_providers ... ok
[INFO] [stdout] test tests::response_headers_pricing::test_pricing_added_to_response_headers_when_configured ... ok
[INFO] [stdout] test tests::response_headers_pricing::test_no_pricing_headers_when_not_configured ... ok
[INFO] [stdout] test tests::response_headers_pricing::test_pricing_header_with_only_output_price ... ok
[INFO] [stdout] test tests::response_headers_pricing::test_pricing_header_with_only_input_price ... ok
[INFO] [stdout] test tests::response_headers_pricing::test_pricing_headers_with_different_models ... ok
[INFO] [stdout] test tests::response_headers_pricing::test_pricing_preserved_in_error_response_headers ... ok
[INFO] [stdout] test tests::response_sanitization::test_error_sanitization_preserves_5xx_status ... ok
[INFO] [stdout] test tests::response_sanitization::test_error_sanitization_disabled_passes_through ... ok
[INFO] [stdout] test tests::response_sanitization::test_sanitization_disabled_passes_through ... ok
[INFO] [stdout] test tests::response_sanitization::test_error_sanitization_replaces_4xx_body ... ok
[INFO] [stdout] test tests::response_sanitization::test_pool_level_sanitization_applies_to_all_providers ... ok
[INFO] [stdout] test tests::response_sanitization::test_sanitization_only_applies_to_chat_completions ... ok
[INFO] [stdout] test tests::response_sanitization::test_sanitize_rewrites_model_field ... ok
[INFO] [stdout] test tests::response_sanitization::test_sanitize_non_streaming_removes_unknown_fields ... ok
[INFO] [stdout] test tests::response_sanitization::test_sanitize_streaming_removes_unknown_fields ... ok
[INFO] [stdout] test tests::response_sanitization::test_sanitize_streaming_rewrites_model ... ok
[INFO] [stdout] test tests::test_body_transformation_applied ... ok
[INFO] [stdout] test tests::test_body_transformation_returns_none ... ok
[INFO] [stdout] test tests::test_body_transformation_not_applied_when_none ... ok
[INFO] [stdout] test tests::test_empty_targets_returns_404 ... ok
[INFO] [stdout] test tests::test_concurrency_limiting_below_limits ... ok
[INFO] [stdout] test tests::test_models_endpoint_filters_by_bearer_token ... ok
[INFO] [stdout] test tests::test_model_override_header_takes_precedence ... ok
[INFO] [stdout] test tests::test_models_endpoint_returns_proper_model_list ... ok
[INFO] [stdout] test tests::load_balancing::test_load_balancing_with_weighted_providers ... ok
[INFO] [stdout] test tests::test_multiple_targets_routing ... ok
[INFO] [stdout] test tests::test_non_strict_router_rejects_body_over_configured_limit ... ok
[INFO] [stdout] test tests::test_openai_streaming_include_usage_transformation ... ok
[INFO] [stdout] test tests::test_concurrency_limiting_at_limits ... ok
[INFO] [stdout] test tests::test_rate_limiting_blocks_requests ... ok
[INFO] [stdout] test tests::test_openai_non_streaming_not_transformed ... ok
[INFO] [stdout] test tests::test_rate_limiting_allows_requests ... ok
[INFO] [stdout] test target::tests::test_per_key_rate_limiting_with_literal_key ... ok
[INFO] [stdout] test tests::test_streaming_embedded_error_retries_then_exhausts_to_503 ... ok
[INFO] [stdout] test tests::test_rate_limiting_with_mixed_targets ... ok
[INFO] [stdout] test tests::test_request_and_response_details ... ok
[INFO] [stdout] test tests::test_streaming_embedded_error_retries_then_succeeds ... ok
[INFO] [stdout] test tests::test_streaming_empty_body_retries_then_succeeds ... ok
[INFO] [stdout] test tests::test_per_key_concurrency_limiting ... ok
[INFO] [stdout] test tests::test_streaming_keepalive_before_error_is_still_detected ... ok
[INFO] [stdout] test tests::test_streaming_empty_body_exhausts_to_503 ... ok
[INFO] [stdout] test target::tests::test_config_watcher_handles_errors ... ok
[INFO] [stdout] test target::tests::test_config_watcher_removes_deleted_targets ... ok
[INFO] [stdout] test tests::test_streaming_keepalive_then_token_is_forwarded_not_retried ... ok
[INFO] [stdout] test target::tests::test_config_watcher_updates_target_properties ... ok
[INFO] [stdout] test target::tests::test_config_watcher_updates_targets ... ok
[INFO] [stdout] test tests::test_streaming_only_keepalives_so_far_is_forwarded_not_retried ... ok
[INFO] [stdout] test tests::test_transformation_path_filtering ... ok
[INFO] [stdout] test traits::response_store::tests::test_noop_store_generates_id ... ok
[INFO] [stdout] test traits::response_store::tests::test_noop_store_returns_none ... ok
[INFO] [stdout] test traits::tool_executor::tests::test_noop_executor_returns_no_tools ... ok
[INFO] [stdout] test traits::tool_executor::tests::test_request_context_builder ... ok
[INFO] [stdout] test traits::tool_executor::tests::test_noop_executor_returns_not_found ... ok
[INFO] [stdout] test tests::test_unary_embedded_error_collapses_to_503 ... ok
[INFO] [stdout] test tests::test_unary_empty_body_retries_and_exhausts_to_503 ... ok
[INFO] [stdout] test target::tests::test_config_watcher_multiple_updates ... ok
[INFO] [stdout] test tests::metrics::test_onwards_model_inflight_not_created_for_unknown_model ... ok
[INFO] [stdout] test tests::metrics::test_metrics_server_for_v1_models ... ok
[INFO] [stdout] test tests::metrics::test_metrics_server_for_missing_targets ... ok
[INFO] [stdout] test strict::tests::test_strict_router_accepts_body_over_axum_2mb_default ... ok
[INFO] [stdout] test handlers::tests::test_mock_client_timeout_fires ... ok
[INFO] [stdout] test strict::tests::test_strict_router_accepts_base64_image_over_axum_2mb_default ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 420 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.14s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/onwards-c5e49a7572be8b61)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]    Doc-tests onwards
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test src/lib.rs - (line 8) - compile ... ok
[INFO] [stdout] test src/lib.rs - AppState (line 178) - compile ... ok
[INFO] [stdout] test src/lib.rs - AppState (line 191) - compile ... ok
[INFO] [stdout] test src/lib.rs - build_metrics_router (line 545) - compile ... ok
[INFO] [stdout] test src/lib.rs - build_router (line 501) - compile ... ok
[INFO] [stdout] test src/lib.rs - create_openai_sanitizer (line 461) - compile ... ok
[INFO] [stdout] test src/strict/mod.rs - strict (line 14) ... ignored
[INFO] [stdout] test src/strict/mod.rs - strict::build_strict_router (line 156) ... ignored
[INFO] [stdout] test src/traits/tool_executor.rs - traits::tool_executor::ToolExecutor (line 129) ... ignored
[INFO] [stdout] test src/lib.rs - build_metrics_layer_and_handle (line 589) - compile ... ok
[INFO] [stdout] test src/lib.rs - BodyTransformFn (line 102) ... ok
[INFO] [stdout] test src/lib.rs - ResponseTransformFn (line 146) ... ok
[INFO] [stdout] test src/lib.rs - extract_model_from_request (line 405) ... ok
[INFO] [stdout] test src/response_sanitizer.rs - response_sanitizer (line 16) ... ok
[INFO] [stdout] test src/lib.rs - extract_model_from_request (line 418) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 8.08s; merged doctests compilation took 8.06s
[INFO] running `Command { std: "docker" "inspect" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25", kill_on_drop: false }`
[INFO] [stdout] 254d8629b35fef1830eeae991dbae63f7fb6fb1ce4870eb0ce8a8b13291b1c25
