[INFO] fetching crate hoosh 1.1.0... [INFO] testing hoosh-1.1.0 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate hoosh 1.1.0 into /workspace/builds/worker-2-tc1/source [INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml [INFO] started tweaking crates.io crate hoosh 1.1.0 [INFO] finished tweaking crates.io crate hoosh 1.1.0 [INFO] tweaked toml for crates.io crate hoosh 1.1.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate hoosh 1.1.0 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate hoosh 1.1.0 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.115 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.115 [INFO] [stderr] Downloaded whisper-rs v0.16.0 [INFO] [stderr] Downloaded wasm-bindgen v0.2.115 [INFO] [stderr] Downloaded protobuf-support v3.7.2 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.115 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.65 [INFO] [stderr] Downloaded opentelemetry-otlp v0.27.0 [INFO] [stderr] Downloaded wasm-streams v0.5.0 [INFO] [stderr] Downloaded bote v0.22.3 [INFO] [stderr] Downloaded szal v0.23.4 [INFO] [stderr] Downloaded bhava v0.23.3 [INFO] [stderr] Downloaded js-sys v0.3.92 [INFO] [stderr] Downloaded tracing-opentelemetry v0.28.0 [INFO] [stderr] Downloaded opentelemetry-proto v0.27.0 [INFO] [stderr] Downloaded ai-hwaccel v1.0.0 [INFO] [stderr] Downloaded majra v1.0.2 [INFO] [stderr] Downloaded protobuf v3.7.2 [INFO] [stderr] Downloaded opentelemetry_sdk v0.27.1 [INFO] [stderr] Downloaded tonic v0.12.3 [INFO] [stderr] Downloaded prometheus v0.14.0 [INFO] [stderr] Downloaded opentelemetry v0.27.1 [INFO] [stderr] Downloaded web-sys v0.3.92 [INFO] [stderr] Downloaded whisper-rs-sys v0.15.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 142d5ad18bc41578b23ef386499e5884b549a66cbcaa7fa3e12308d315e6d59f [INFO] running `Command { std: "docker" "start" "-a" "142d5ad18bc41578b23ef386499e5884b549a66cbcaa7fa3e12308d315e6d59f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "142d5ad18bc41578b23ef386499e5884b549a66cbcaa7fa3e12308d315e6d59f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "142d5ad18bc41578b23ef386499e5884b549a66cbcaa7fa3e12308d315e6d59f", kill_on_drop: false }` [INFO] [stdout] 142d5ad18bc41578b23ef386499e5884b549a66cbcaa7fa3e12308d315e6d59f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cef5e1f29ff485388d415140fb046613546724afab9ba7cfbfb545d570247e02 [INFO] running `Command { std: "docker" "start" "-a" "cef5e1f29ff485388d415140fb046613546724afab9ba7cfbfb545d570247e02", kill_on_drop: false }` [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling aws-lc-rs v1.16.2 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling protobuf v3.7.2 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling protobuf-support v3.7.2 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling prometheus v0.14.0 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling iri-string v0.7.11 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling aws-lc-sys v0.39.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling arc-swap v1.9.0 [INFO] [stderr] Compiling ai-hwaccel v1.0.0 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [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 icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [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 majra v1.0.2 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.2 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling hoosh v1.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 55s [INFO] running `Command { std: "docker" "inspect" "cef5e1f29ff485388d415140fb046613546724afab9ba7cfbfb545d570247e02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cef5e1f29ff485388d415140fb046613546724afab9ba7cfbfb545d570247e02", kill_on_drop: false }` [INFO] [stdout] cef5e1f29ff485388d415140fb046613546724afab9ba7cfbfb545d570247e02 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0adb3fe1629857e1bb32337db4a084b44c70a09a3844f36897bedcc413764db9 [INFO] running `Command { std: "docker" "start" "-a" "0adb3fe1629857e1bb32337db4a084b44c70a09a3844f36897bedcc413764db9", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling ai-hwaccel v1.0.0 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling toml v0.8.23 [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 majra v1.0.2 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling tokio-test v0.4.5 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling criterion v0.8.2 [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 reqwest v0.13.2 [INFO] [stderr] Compiling hoosh v1.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 02s [INFO] running `Command { std: "docker" "inspect" "0adb3fe1629857e1bb32337db4a084b44c70a09a3844f36897bedcc413764db9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0adb3fe1629857e1bb32337db4a084b44c70a09a3844f36897bedcc413764db9", kill_on_drop: false }` [INFO] [stdout] 0adb3fe1629857e1bb32337db4a084b44c70a09a3844f36897bedcc413764db9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] c00403ae584ea3d8023d62d71d49e5e39c7304b9b78610e84e263df07526572e [INFO] running `Command { std: "docker" "start" "-a" "c00403ae584ea3d8023d62d71d49e5e39c7304b9b78610e84e263df07526572e", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hoosh-352094dc418f1ec2) [INFO] [stdout] [INFO] [stdout] running 572 tests [INFO] [stdout] test audit::tests::empty_chain_verifies ... ok [INFO] [stdout] test audit::tests::integrity_version_is_set ... ok [INFO] [stdout] test audit::tests::entry_ids_are_unique ... ok [INFO] [stdout] test audit::tests::entry_with_metadata ... ok [INFO] [stdout] test audit::tests::record_and_verify ... ok [INFO] [stdout] test budget::tests::budget_multi_pool ... ok [INFO] [stdout] test audit::tests::tamper_detection ... ok [INFO] [stdout] test audit::tests::tamper_previous_hash_link ... ok [INFO] [stdout] test budget::tests::budget_reserve_report ... ok [INFO] [stdout] test budget::tests::pool_over_budget ... ok [INFO] [stdout] test audit::tests::recent_returns_correct_entries ... ok [INFO] [stdout] test audit::tests::max_entries_eviction ... ok [INFO] [stdout] test budget::tests::pool_release ... ok [INFO] [stdout] test budget::tests::pool_basic ... ok [INFO] [stdout] test budget::tests::pool_utilization ... ok [INFO] [stdout] test cache::semantic::tests::cosine_identical_vectors ... ok [INFO] [stdout] test cache::semantic::tests::cosine_orthogonal_vectors ... ok [INFO] [stdout] test cache::semantic::tests::cosine_different_lengths ... ok [INFO] [stdout] test cache::semantic::tests::cosine_empty ... ok [INFO] [stdout] test cache::semantic::tests::semantic_cache_disabled ... ok [INFO] [stdout] test cache::semantic::tests::semantic_cache_below_threshold ... ok [INFO] [stdout] test cache::semantic::tests::cosine_opposite_vectors ... ok [INFO] [stdout] test cache::semantic::tests::semantic_cache_max_search_limit ... ok [INFO] [stdout] test cache::semantic::tests::semantic_cache_insert_and_find ... ok [INFO] [stdout] test cache::semantic::tests::semantic_cache_remove ... ok [INFO] [stdout] test cache::tests::cache_disabled ... ok [INFO] [stdout] test cache::tests::cache_clear ... ok [INFO] [stdout] test cache::tests::cache_insert_get ... ok [INFO] [stdout] test cache::tests::cache_key_different_messages ... ok [INFO] [stdout] test cache::tests::cache_eviction_at_capacity ... ok [INFO] [stdout] test cache::tests::cache_key_different_models ... ok [INFO] [stdout] test cache::tests::cache_miss ... ok [INFO] [stdout] test cache::tests::cache_key_same_request ... ok [INFO] [stdout] test cache::tests::config_default ... ok [INFO] [stdout] test cache::tests::stats_eviction_counted ... ok [INFO] [stdout] test cache::tests::stats_initial ... ok [INFO] [stdout] test cache::warming::tests::warming_prompt_to_request ... ok [INFO] [stdout] test cache::warming::tests::warming_prompt_with_system ... ok [INFO] [stdout] test cache::warming::tests::warming_prompt_multiple ... ok [INFO] [stdout] test cache::warming::tests::empty_prompts_no_requests ... ok [INFO] [stdout] test cache::warming::tests::spawn_warming_task_empty_prompts_returns_early ... ok [INFO] [stdout] test cache::tests::stats_hit_and_miss ... ok [INFO] [stdout] test cache::warming::tests::warming_prompt_with_assistant_role ... ok [INFO] [stdout] test cache::warming::tests::warming_prompt_unknown_role_defaults_to_user ... ok [INFO] [stdout] test client::tests::to_chat_body_no_messages_with_system ... ok [INFO] [stdout] test client::tests::to_chat_body_no_messages_uses_prompt ... ok [INFO] [stdout] test client::tests::to_chat_body_with_messages ... ok [INFO] [stdout] test client::tests::to_chat_body_with_optional_params ... ok [INFO] [stdout] test client::tests::to_chat_body_without_optional_params ... ok [INFO] [stdout] test config::tests::all_default_base_urls_covered ... ok [INFO] [stdout] test config::tests::audit_section_debug_redacts_key ... ok [INFO] [stdout] test config::tests::auth_config_debug_shows_count ... ok [INFO] [stdout] test config::tests::cache_section_default ... ok [INFO] [stdout] test config::tests::context_section_default ... ok [INFO] [stdout] test config::tests::default_base_urls ... ok [INFO] [stdout] test config::tests::into_server_config_no_overrides ... ok [INFO] [stdout] test config::tests::into_server_config_all_strategies ... ok [INFO] [stdout] test config::tests::into_server_config_with_overrides ... ok [INFO] [stdout] test config::tests::into_server_config_with_budgets ... ok [INFO] [stdout] test config::tests::into_server_config_full ... ok [INFO] [stdout] test config::tests::into_server_config_with_whisper_tts ... ok [INFO] [stdout] test config::tests::parse_audit_defaults ... ok [INFO] [stdout] test config::tests::parse_audit_section ... ok [INFO] [stdout] test config::tests::parse_auth_section ... ok [INFO] [stdout] test config::tests::parse_context_defaults ... ok [INFO] [stdout] test config::tests::parse_context_section ... ok [INFO] [stdout] test config::tests::parse_full_config ... ok [INFO] [stdout] test config::tests::parse_minimal_config ... ok [INFO] [stdout] test config::tests::parse_retry_section ... ok [INFO] [stdout] test config::tests::parse_telemetry_defaults ... ok [INFO] [stdout] test config::tests::parse_telemetry_section ... ok [INFO] [stdout] test config::tests::parse_telemetry_with_service_name ... ok [INFO] [stdout] test config::tests::parse_with_budgets ... ok [INFO] [stdout] test config::tests::parse_with_whisper_and_tts ... ok [INFO] [stdout] test config::tests::provider_defaults ... ok [INFO] [stdout] test config::tests::provider_section_debug_redacts_key ... ok [INFO] [stdout] test cache::tests::cache_ttl_expiry ... ok [INFO] [stdout] test cache::tests::evict_expired_removes_stale ... ok [INFO] [stdout] test config::tests::resolve_api_key_env_var ... ok [INFO] [stdout] test config::tests::provider_with_max_tokens_limit ... ok [INFO] [stdout] test config::tests::resolve_api_key_literal ... ok [INFO] [stdout] test config::tests::resolve_api_key_missing_env ... ok [INFO] [stdout] test config::tests::resolve_api_key_none ... ok [INFO] [stdout] test config::tests::routes_disabled_provider ... ok [INFO] [stdout] test config::tests::routes_with_rate_limit ... ok [INFO] [stdout] test cache::tests::stats_ttl_eviction_counted ... ok [INFO] [stdout] test config::tests::routes_from_config ... ok [INFO] [stdout] test config::tests::routes_without_tls_config ... ok [INFO] [stdout] test config::tests::server_section_default ... ok [INFO] [stdout] test config::tests::routes_with_tls_config ... ok [INFO] [stdout] test context::compactor::tests::keep_last_at_least_one ... ok [INFO] [stdout] test context::compactor::tests::empty_messages_returns_none ... ok [INFO] [stdout] test context::compactor::tests::compaction_triggers_on_large_context ... ok [INFO] [stdout] test context::compactor::tests::no_compaction_when_under_threshold ... ok [INFO] [stdout] test context::compactor::tests::system_messages_always_preserved ... ok [INFO] [stdout] test context::compactor::tests::threshold_clamped ... ok [INFO] [stdout] test context::compactor::tests::no_compaction_when_disabled ... ok [INFO] [stdout] test context::compactor::tests::unknown_model_returns_none ... ok [INFO] [stdout] test context::compression::tests::collapse_whitespace_already_clean ... ok [INFO] [stdout] test context::compression::tests::collapse_whitespace_basic ... ok [INFO] [stdout] test context::compression::tests::collapse_whitespace_empty ... ok [INFO] [stdout] test context::compression::tests::compress_messages_basic ... ok [INFO] [stdout] test context::compression::tests::compress_preserves_message_count_without_tools ... ok [INFO] [stdout] test context::compression::tests::prune_stale_tool_pairs_few_tools_no_change ... ok [INFO] [stdout] test context::tokens::tests::provider_counter_anthropic ... ok [INFO] [stdout] test context::compression::tests::prune_stale_tool_pairs_keeps_recent ... ok [INFO] [stdout] test context::tokens::tests::provider_counter_local ... ok [INFO] [stdout] test context::tokens::tests::provider_counter_messages ... ok [INFO] [stdout] test context::tokens::tests::provider_counter_openai ... ok [INFO] [stdout] test context::tokens::tests::provider_counter_with_tool_calls ... ok [INFO] [stdout] test context::tokens::tests::simple_counter_empty_messages ... ok [INFO] [stdout] test context::tokens::tests::simple_counter_longer_text ... ok [INFO] [stdout] test context::tokens::tests::simple_counter_empty_string ... ok [INFO] [stdout] test context::tokens::tests::simple_counter_messages ... ok [INFO] [stdout] test context::tokens::tests::simple_counter_short_text ... ok [INFO] [stdout] test cost::optimizer::tests::complexity_large_input_requires_standard ... ok [INFO] [stdout] test cost::optimizer::tests::complexity_small_request_economy ... ok [INFO] [stdout] test cost::optimizer::tests::complexity_tools_with_large_input ... ok [INFO] [stdout] test cost::optimizer::tests::complexity_vision_requires_standard ... ok [INFO] [stdout] test cost::optimizer::tests::is_enabled ... ok [INFO] [stdout] test cost::optimizer::tests::estimate_cost_basic ... ok [INFO] [stdout] test cost::optimizer::tests::complexity_tools_with_small_input_is_economy ... ok [INFO] [stdout] test cost::optimizer::tests::optimizer_disabled_returns_none ... ok [INFO] [stdout] test cost::optimizer::tests::recommend_context_window_too_small ... ok [INFO] [stdout] test cost::optimizer::tests::recommend_no_routes_returns_none ... ok [INFO] [stdout] test cost::optimizer::tests::recommend_skips_disabled_routes ... ok [INFO] [stdout] test cost::optimizer::tests::recommend_skips_wildcard_patterns ... ok [INFO] [stdout] test cost::optimizer::tests::recommend_with_matching_model ... ok [INFO] [stdout] test cost::optimizer::tests::required_modalities_text_only ... ok [INFO] [stdout] test cost::optimizer::tests::required_modalities_with_vision ... ok [INFO] [stdout] test cost::optimizer::tests::tier_rank_ordering ... ok [INFO] [stdout] test cost::tests::cost_calculation_math ... ok [INFO] [stdout] test cost::tests::pricing_fallback_to_provider ... ok [INFO] [stdout] test cost::tests::pricing_local_providers_are_free ... ok [INFO] [stdout] test cost::tests::pricing_lookup_exact_match ... ok [INFO] [stdout] test cost::tests::pricing_lookup_prefix_match ... ok [INFO] [stdout] test cost::tests::tracker_accumulates ... ok [INFO] [stdout] test cost::tests::tracker_reset ... ok [INFO] [stdout] test cost::tests::tracker_separates_providers ... ok [INFO] [stdout] test error::tests::error_codes ... ok [INFO] [stdout] test cost::tests::tracker_total_cost ... ok [INFO] [stdout] test error::tests::error_display ... ok [INFO] [stdout] test events::tests::event_bus_creation ... ok [INFO] [stdout] test error::tests::http_status_codes ... ok [INFO] [stdout] test events::tests::publish_and_subscribe_roundtrip ... ok [INFO] [stdout] test config::tests::load_nonexistent_config_file ... ok [INFO] [stdout] test config::tests::load_invalid_toml ... ok [INFO] [stdout] test context::tokens::tests::saturation_on_large_input ... ok [INFO] [stdout] test hardware::tests::placement_recommendation_fields ... ok [INFO] [stdout] test audit::tests::thread_safety ... ok [INFO] [stdout] test cache::warming::tests::spawn_warming_task_populates_cache ... ok [INFO] [stdout] test cache::warming::tests::spawn_warming_task_handles_inference_error ... ok [INFO] [stdout] test hardware::tests::detect_creates_manager ... ok [INFO] [stdout] test hardware::tests::data_load_estimate ... ok [INFO] [stdout] test hardware::tests::recommend_placement_defaults_to_ollama ... ok [INFO] [stdout] test hardware::tests::summary_is_nonempty ... ok [INFO] [stdout] test hardware::tests::recommend_placement_uses_first_available ... ok [INFO] [stdout] test hardware::tests::device_family_filtering ... ok [INFO] [stdout] test hardware::tests::sharding_plan_generation ... ok [INFO] [stdout] test hardware::tests::detect_with_timing_has_timings ... ok [INFO] [stdout] test health::tests::handle_check_failure_error_messages_are_preserved ... ok [INFO] [stdout] test health::tests::handle_check_failure_first_failure_still_healthy ... ok [INFO] [stdout] test health::tests::handle_check_failure_fourth_failure_stays_unhealthy ... ok [INFO] [stdout] test health::tests::handle_check_failure_exactly_at_threshold_boundary ... ok [INFO] [stdout] test health::tests::handle_check_failure_multiple_providers_independent ... ok [INFO] [stdout] test health::tests::handle_check_failure_on_missing_entry_starts_at_one ... ok [INFO] [stdout] test hardware::tests::system_io_accessible ... ok [INFO] [stdout] test health::tests::handle_check_failure_no_event_when_already_unhealthy ... ok [INFO] [stdout] test health::tests::handle_check_failure_publishes_event_on_healthy_to_unhealthy_transition ... ok [INFO] [stdout] test health::tests::handle_check_failure_third_failure_becomes_unhealthy ... ok [INFO] [stdout] test health::tests::handle_check_failure_rapid_recovery_cycle ... ok [INFO] [stdout] test health::tests::handle_check_failure_second_failure_still_healthy ... ok [INFO] [stdout] test health::tests::health_map_insert_and_lookup ... ok [INFO] [stdout] test health::tests::health_map_concurrent_access_different_keys ... ok [INFO] [stdout] test health::tests::health_map_multiple_entries_and_removal ... ok [INFO] [stdout] test health::tests::health_map_starts_empty ... ok [INFO] [stdout] test health::tests::health_map_overwrite_entry ... ok [INFO] [stdout] test health::tests::health_map_recovery_after_failures ... ok [INFO] [stdout] test health::tests::provider_health_state_clone_and_debug ... ok [INFO] [stdout] test health::tests::unhealthy_threshold_constant_is_three ... ok [INFO] [stdout] test inference::batch::tests::batch_cancel_nonexistent ... ok [INFO] [stdout] test health::tests::provider_health_state_fields ... ok [INFO] [stdout] test inference::batch::tests::batch_manager_creation ... ok [INFO] [stdout] test inference::batch::tests::batch_remove ... ok [INFO] [stdout] test inference::batch::tests::batch_nonexistent_progress ... ok [INFO] [stdout] test inference::batch::tests::batch_status_serde_roundtrip ... ok [INFO] [stdout] test inference::batch::tests::batch_evict_running_not_evicted ... ok [INFO] [stdout] test inference::tests::embeddings_input_multiple_serde ... ok [INFO] [stdout] test inference::tests::embeddings_input_single_serde ... ok [INFO] [stdout] test inference::tests::embeddings_request_roundtrip ... ok [INFO] [stdout] test inference::tests::embeddings_response_serde ... ok [INFO] [stdout] test inference::tests::inference_request_with_messages ... ok [INFO] [stdout] test inference::tests::message_content_default ... ok [INFO] [stdout] test inference::tests::message_content_no_images_in_text ... ok [INFO] [stdout] test inference::tests::message_content_partial_eq_str ... ok [INFO] [stdout] test inference::tests::message_content_parts_from_array_json ... ok [INFO] [stdout] test inference::tests::message_content_parts_serde ... ok [INFO] [stdout] test inference::tests::message_content_text_from_plain_string_json ... ok [INFO] [stdout] test inference::tests::message_content_text_serde ... ok [INFO] [stdout] test inference::tests::message_serde_roundtrip ... ok [INFO] [stdout] test inference::tests::model_info_serde ... ok [INFO] [stdout] test inference::tests::request_default ... ok [INFO] [stdout] test inference::tests::role_serde ... ok [INFO] [stdout] test inference::tests::role_serde_all_variants ... ok [INFO] [stdout] test inference::tests::serde_roundtrip_request ... ok [INFO] [stdout] test inference::tests::serde_roundtrip_response ... ok [INFO] [stdout] test inference::tests::speech_request_custom ... ok [INFO] [stdout] test inference::tests::speech_request_defaults ... ok [INFO] [stdout] test inference::tests::token_usage_default ... ok [INFO] [stdout] test inference::tests::transcription_response_serde ... ok [INFO] [stdout] test metrics::tests::gather_returns_valid_prometheus_text ... ok [INFO] [stdout] test metrics::tests::record_request_increments_counters ... ok [INFO] [stdout] test metrics::tests::set_providers_configured_updates_gauge ... ok [INFO] [stdout] test middleware::auth::tests::empty_tokens_passes_all ... ok [INFO] [stdout] test middleware::auth::tests::invalid_token_returns_401 ... ok [INFO] [stdout] test middleware::auth::tests::missing_header_returns_401 ... ok [INFO] [stdout] test middleware::auth::tests::non_bearer_scheme_returns_401 ... ok [INFO] [stdout] test hardware::tests::cached_detection ... ok [INFO] [stdout] test middleware::auth::tests::valid_token_passes ... ok [INFO] [stdout] test middleware::rate_limit::tests::different_providers_independent ... ok [INFO] [stdout] test middleware::rate_limit::tests::requests_exceeding_limit_rejected ... ok [INFO] [stdout] test middleware::rate_limit::tests::requests_within_limit_allowed ... ok [INFO] [stdout] test provider::anthropic::tests::build_body_default_max_tokens ... ok [INFO] [stdout] test provider::anthropic::tests::build_body_from_messages ... ok [INFO] [stdout] test provider::anthropic::tests::build_body_from_prompt ... ok [INFO] [stdout] test middleware::rate_limit::tests::unconfigured_provider_always_allowed ... ok [INFO] [stdout] test inference::batch::tests::batch_evict_completed_none_old_enough ... ok [INFO] [stdout] test inference::batch::tests::batch_evict_completed_old_entries ... ok [INFO] [stdout] test inference::batch::tests::batch_remove_completed ... ok [INFO] [stdout] test inference::batch::tests::batch_progress_shows_individual_results ... ok [INFO] [stdout] test inference::batch::tests::batch_submit_and_complete ... ok [INFO] [stdout] test provider::anthropic::tests::response_deserialization ... ok [INFO] [stdout] test provider::anthropic::tests::stream_event_deserialization ... ok [INFO] [stdout] test inference::batch::tests::batch_with_failures ... ok [INFO] [stdout] test inference::batch::tests::batch_cancel ... ok [INFO] [stdout] test provider::anthropic::tests::default_url ... ok [INFO] [stdout] test provider::grok::tests::provider_type_is_grok ... ok [INFO] [stdout] test provider::grok::tests::default_url ... ok [INFO] [stdout] test provider::deepseek::tests::provider_type_is_deepseek ... ok [INFO] [stdout] test provider::anthropic::tests::list_models_returns_known ... ok [INFO] [stdout] test provider::groq::tests::default_url ... ok [INFO] [stdout] test provider::deepseek::tests::default_url ... ok [INFO] [stdout] test provider::anthropic::tests::provider_type_is_anthropic ... ok [INFO] [stdout] test provider::anthropic::tests::custom_url ... ok [INFO] [stdout] test client::tests::health_unreachable_server ... ok [INFO] [stdout] test client::tests::infer_connection_refused ... ok [INFO] [stdout] test client::tests::list_models_connection_refused ... ok [INFO] [stdout] test client::tests::infer_stream_connection_refused ... ok [INFO] [stdout] test client::tests::client_strips_trailing_slash ... ok [INFO] [stdout] test provider::metadata::tests::all_returns_defaults ... ok [INFO] [stdout] test provider::metadata::tests::len_matches_all ... ok [INFO] [stdout] test provider::metadata::tests::embedding_models_found ... ok [INFO] [stdout] test client::tests::client_creation ... ok [INFO] [stdout] test provider::metadata::tests::exact_lookup ... ok [INFO] [stdout] test provider::metadata::tests::local_models_no_tool_use ... ok [INFO] [stdout] test provider::metadata::tests::longest_prefix_wins ... ok [INFO] [stdout] test provider::metadata::tests::max_output_tokens_set ... ok [INFO] [stdout] test provider::metadata::tests::model_tiers_populated ... ok [INFO] [stdout] test provider::metadata::tests::register_custom_model ... ok [INFO] [stdout] test provider::metadata::tests::reasoning_models_have_correct_tier ... ok [INFO] [stdout] test provider::metadata::tests::prefix_lookup ... ok [INFO] [stdout] test provider::metadata::tests::system_prompt_support ... ok [INFO] [stdout] test provider::metadata::tests::unknown_model_returns_none ... ok [INFO] [stdout] test provider::metadata::tests::vision_models_found ... ok [INFO] [stdout] test client::tests::client_strips_multiple_trailing_slashes ... ok [INFO] [stdout] test provider::ollama::tests::embeddings_input_multiple_conversion ... ok [INFO] [stdout] test provider::ollama::tests::embeddings_input_single_conversion ... ok [INFO] [stdout] test provider::ollama::tests::embeddings_response_empty_array ... ok [INFO] [stdout] test provider::ollama::tests::embeddings_response_missing_field ... ok [INFO] [stdout] test provider::ollama::tests::embeddings_response_parsing ... ok [INFO] [stdout] test provider::ollama::tests::messages_from_conversation ... ok [INFO] [stdout] test provider::ollama::tests::messages_from_prompt ... ok [INFO] [stdout] test provider::ollama::tests::messages_from_prompt_with_system ... ok [INFO] [stdout] test provider::ollama::tests::messages_system_role ... ok [INFO] [stdout] test provider::ollama::tests::embeddings_response_single_embedding ... ok [INFO] [stdout] test provider::ollama::tests::response_deserialization ... ok [INFO] [stdout] test provider::ollama::tests::response_deserialization_minimal ... ok [INFO] [stdout] test provider::ollama::tests::response_with_no_content ... ok [INFO] [stdout] test provider::ollama::tests::stream_line_deserialization ... ok [INFO] [stdout] test provider::ollama::tests::stream_line_deserialization_empty_content ... ok [INFO] [stdout] test provider::ollama::tests::stream_line_deserialization_no_message ... ok [INFO] [stdout] test provider::ollama::tests::stream_line_done ... ok [INFO] [stdout] test provider::llamacpp::tests::provider_type_is_llamacpp ... ok [INFO] [stdout] test provider::llamacpp::tests::default_url ... ok [INFO] [stdout] test provider::ollama::tests::tags_response_empty_models ... ok [INFO] [stdout] test provider::ollama::tests::tags_response_deserialization ... ok [INFO] [stdout] test provider::openai_compat::tests::build_body_from_messages ... ok [INFO] [stdout] test provider::openai_compat::tests::build_body_from_prompt ... ok [INFO] [stdout] test provider::openai_compat::tests::build_body_from_prompt_with_system ... ok [INFO] [stdout] test provider::openai_compat::tests::build_body_no_optional_params ... ok [INFO] [stdout] test provider::groq::tests::provider_type_is_groq ... ok [INFO] [stdout] test provider::openai_compat::tests::build_body_no_tools ... ok [INFO] [stdout] test provider::openai_compat::tests::build_body_optional_params ... ok [INFO] [stdout] test provider::openai_compat::tests::build_body_with_tools ... ok [INFO] [stdout] test provider::llamacpp::tests::custom_url ... ok [INFO] [stdout] test provider::lmstudio::tests::custom_url ... ok [INFO] [stdout] test provider::lmstudio::tests::provider_type_is_lmstudio ... ok [INFO] [stdout] test provider::openai_compat::tests::provider_with_tls_config ... ok [INFO] [stdout] test provider::openai_compat::tests::tool_call_accumulator_empty ... ok [INFO] [stdout] test provider::openai_compat::tests::tool_call_accumulator_invalid_json_args ... ok [INFO] [stdout] test provider::openai_compat::tests::tool_call_accumulator_multiple_calls ... ok [INFO] [stdout] test provider::openai_compat::tests::tool_call_accumulator_single_call ... ok [INFO] [stdout] test provider::localai::tests::custom_url ... ok [INFO] [stdout] test provider::mistral::tests::provider_type_is_mistral ... ok [INFO] [stdout] test provider::localai::tests::default_url ... ok [INFO] [stdout] test provider::lmstudio::tests::default_url ... ok [INFO] [stdout] test provider::retry::tests::compute_delay_large_attempt_capped ... ok [INFO] [stdout] test provider::retry::tests::compute_delay_with_jitter ... ok [INFO] [stdout] test provider::retry::tests::compute_delay_zero_jitter ... ok [INFO] [stdout] test provider::retry::tests::default_config ... ok [INFO] [stdout] test provider::retry::tests::delay_capped_at_max ... ok [INFO] [stdout] test provider::retry::tests::delay_exponential ... ok [INFO] [stdout] test provider::retry::tests::is_enabled ... ok [INFO] [stdout] test provider::retry::tests::retry_config_serde_roundtrip ... ok [INFO] [stdout] test provider::ollama::tests::default_url ... ok [INFO] [stdout] test provider::ollama::tests::custom_url ... ok [INFO] [stdout] test provider::ollama::tests::provider_type_is_ollama ... ok [INFO] [stdout] test provider::localai::tests::provider_type_is_localai ... ok [INFO] [stdout] test provider::retry::tests::retry_stops_on_permanent_error ... ok [INFO] [stdout] test provider::retry::tests::retry_succeeds_first_try ... ok [INFO] [stdout] test provider::retry::tests::retry_unknown_error_not_retried ... ok [INFO] [stdout] test provider::retry::tests::retry_with_convenience_fn ... ok [INFO] [stdout] test provider::ollama::tests::strips_trailing_slash ... ok [INFO] [stdout] test provider::tests::all_local_providers ... ok [INFO] [stdout] test provider::tests::all_provider_types_display ... ok [INFO] [stdout] test provider::retry::tests::retry_exhausts_max_retries ... ok [INFO] [stdout] test provider::retry::tests::retry_succeeds_after_failures ... ok [INFO] [stdout] test provider::tests::build_provider_client_invalid_pem_data ... ok [INFO] [stdout] test provider::mistral::tests::default_url ... ok [INFO] [stdout] test provider::openai_compat::tests::provider_preserves_api_key ... ok [INFO] [stdout] test provider::openai_remote::tests::custom_url ... ok [INFO] [stdout] test provider::openrouter::tests::default_url ... ok [INFO] [stdout] test provider::openai_remote::tests::default_url ... ok [INFO] [stdout] test provider::tests::build_provider_client_nonexistent_cert_no_panic ... ok [INFO] [stdout] test provider::tests::build_provider_client_pinned_certs_nonexistent ... ok [INFO] [stdout] test provider::tests::local_providers ... ok [INFO] [stdout] test provider::tests::provider_type_display ... ok [INFO] [stdout] test provider::openai_compat::tests::provider_creation ... ok [INFO] [stdout] test provider::openai_remote::tests::provider_type_is_openai ... ok [INFO] [stdout] test provider::tests::default_embeddings_returns_error ... ok [INFO] [stdout] test provider::tests::register_duplicate_provider_skips ... ok [INFO] [stdout] test provider::tests::register_unrecognized_provider_no_panic ... ok [INFO] [stdout] test provider::tests::registry_default ... ok [INFO] [stdout] test provider::tests::registry_get_missing ... ok [INFO] [stdout] test provider::tests::serde_roundtrip ... ok [INFO] [stdout] test provider::tests::streaming_support ... ok [INFO] [stdout] test provider::tests::streaming_support_all_types ... ok [INFO] [stdout] test provider::tests::tls_config_clone ... ok [INFO] [stdout] test provider::tests::tls_config_default ... ok [INFO] [stdout] test queue::tests::dequeue_returns_none_on_empty ... ok [INFO] [stdout] test queue::tests::default_creates_empty_queue ... ok [INFO] [stdout] test queue::tests::all_five_priority_tiers_ordering ... ok [INFO] [stdout] test queue::tests::empty_queue_returns_none ... ok [INFO] [stdout] test queue::tests::enqueue_dequeue_ordering ... ok [INFO] [stdout] test queue::tests::enqueue_returns_unique_task_ids ... ok [INFO] [stdout] test queue::tests::mixed_priority_interleaved ... ok [INFO] [stdout] test queue::tests::len_tracking ... ok [INFO] [stdout] test queue::tests::is_empty_reflects_state ... ok [INFO] [stdout] test router::tests::direct_routing_picks_first ... ok [INFO] [stdout] test queue::tests::same_priority_fifo_order ... ok [INFO] [stdout] test router::tests::disabled_route_skipped ... ok [INFO] [stdout] test router::tests::exact_model_match ... ok [INFO] [stdout] test router::tests::lowest_latency_deprioritizes_unknown ... ok [INFO] [stdout] test router::tests::lowest_latency_picks_fastest ... ok [INFO] [stdout] test router::tests::multiple_model_patterns ... ok [INFO] [stdout] test router::tests::no_matching_provider ... ok [INFO] [stdout] test router::tests::priority_routing ... ok [INFO] [stdout] test router::tests::reload_changes_routes ... ok [INFO] [stdout] test router::tests::reload_resets_round_robin_index ... ok [INFO] [stdout] test router::tests::report_latency_ema_multiple_updates ... ok [INFO] [stdout] test router::tests::report_latency_records_values ... ok [INFO] [stdout] test router::tests::round_robin ... ok [INFO] [stdout] test router::tests::routing_strategy_default ... ok [INFO] [stdout] test router::tests::rwlock_concurrent_reads ... ok [INFO] [stdout] test router::tests::select_filters_unhealthy_providers ... ok [INFO] [stdout] test router::tests::select_all_unhealthy_returns_none ... ok [INFO] [stdout] test router::tests::select_no_health_map_allows_all ... ok [INFO] [stdout] test router::tests::select_unchecked_provider_assumed_healthy ... ok [INFO] [stdout] test router::tests::wildcard_route ... ok [INFO] [stdout] test tests::cache_basic ... ok [INFO] [stdout] test provider::openai_compat::tests::provider_strips_trailing_slash ... ok [INFO] [stdout] test provider::openrouter::tests::provider_type_is_openrouter ... ok [INFO] [stdout] test provider::synapse::tests::provider_type_is_synapse ... ok [INFO] [stdout] test provider::tests::build_provider_client_empty_tls_config ... ok [INFO] [stdout] test queue::tests::dequeue_wait_wakes_on_enqueue ... ok [INFO] [stdout] test provider::synapse::tests::custom_url ... ok [INFO] [stdout] test provider::tests::build_provider_client_invalid_mtls_pem ... ok [INFO] [stdout] test provider::tests::build_provider_client_mtls_nonexistent_no_panic ... ok [INFO] [stdout] test provider::synapse::tests::default_url ... ok [INFO] [stdout] test provider::openai_compat::tests::provider_no_api_key ... ok [INFO] [stdout] test provider::tests::build_provider_client_mtls_only_cert_no_key ... ok [INFO] [stdout] test provider::tests::build_provider_client_mtls_only_key_no_cert ... ok [INFO] [stdout] test provider::tests::build_provider_client_no_tls ... ok [INFO] [stdout] test tests::client_creation ... ok [INFO] [stdout] test tests::e2e::e2e_admin_reload_no_config_path ... ok [INFO] [stdout] test tests::e2e::e2e_audit_disabled ... ok [INFO] [stdout] test tests::e2e::e2e_audit_enabled ... ok [INFO] [stdout] test tests::conformance::conformance_response_content_type ... ok [INFO] [stdout] test tests::conformance::conformance_validation_empty_messages ... ok [INFO] [stdout] test tests::conformance::conformance_health_schema ... ok [INFO] [stdout] test tests::conformance::conformance_chat_response_schema ... ok [INFO] [stdout] test tests::conformance::conformance_chat_usage_schema ... ok [INFO] [stdout] test tests::conformance::conformance_error_response_schema ... ok [INFO] [stdout] test tests::conformance::conformance_models_response_schema ... ok [INFO] [stdout] test tests::conformance::conformance_chat_choices_schema ... ok [INFO] [stdout] test tests::conformance::conformance_chat_id_format ... ok [INFO] [stdout] test tests::conformance::conformance_cache_stats_schema ... ok [INFO] [stdout] test tests::conformance::conformance_multipart_content_accepted ... ok [INFO] [stdout] test tests::conformance::conformance_chat_created_is_unix_timestamp ... ok [INFO] [stdout] test tests::e2e::e2e_costs_reset ... ok [INFO] [stdout] test tests::e2e::e2e_costs_get ... ok [INFO] [stdout] test tests::e2e::e2e_costs_reset_with_audit ... ok [INFO] [stdout] test tests::e2e::e2e_health_heartbeat ... ok [INFO] [stdout] test tests::e2e::e2e_auth_enforcement ... ok [INFO] [stdout] test tests::e2e::e2e_budget_enforcement ... ok [INFO] [stdout] test tests::e2e::e2e_budget_pool_not_found ... ok [INFO] [stdout] test tests::e2e::e2e_budget_exceeded ... ok [INFO] [stdout] test tests::e2e::e2e_prometheus_metrics ... ok [INFO] [stdout] test tests::e2e::e2e_queue_status ... ok [INFO] [stdout] test tests::e2e::e2e_infer ... ok [INFO] [stdout] test tests::e2e::e2e_embeddings_no_provider ... ok [INFO] [stdout] test tests::e2e::e2e_health ... ok [INFO] [stdout] test tests::e2e::e2e_budget_tracks_usage ... ok [INFO] [stdout] test tests::e2e::e2e_full_flow_with_observability ... ok [INFO] [stdout] test tests::e2e::e2e_infer_no_matching_model ... ok [INFO] [stdout] test tests::e2e::e2e_embeddings_pass_through ... ok [INFO] [stdout] test tests::e2e::hoosh_client_concurrent_requests ... ok [INFO] [stdout] test tests::e2e::e2e_ollama_native_flow ... ok [INFO] [stdout] test tests::e2e::e2e_list_models ... ok [INFO] [stdout] test tests::error_types ... ok [INFO] [stdout] test tests::e2e::hoosh_client_connection_reuse ... ok [INFO] [stdout] test tests::e2e::hoosh_client_tuned_health ... ok [INFO] [stdout] test tests::e2e::e2e_rate_limit_exceeded ... ok [INFO] [stdout] test tests::e2e::e2e_streaming ... ok [INFO] [stdout] test tests::handler_coverage::handler_admin_reload_no_config ... ok [INFO] [stdout] test tests::e2e::openai_compat_provider_tuned_creation ... ok [INFO] [stdout] test tests::e2e::ollama_provider_tuned_creation ... ok [INFO] [stdout] test tests::e2e::e2e_streaming_sse_response_shape ... ok [INFO] [stdout] test tests::handler_coverage::handler_admin_reload_with_valid_config ... ok [INFO] [stdout] test tests::handler_coverage::handler_audit_disabled ... ok [INFO] [stdout] test tests::e2e::e2e_streaming_full_flow ... ok [INFO] [stdout] test tests::e2e::e2e_validation_bad_temperature ... ok [INFO] [stdout] test tests::e2e::e2e_validation_nonexistent_pool ... ok [INFO] [stdout] test tests::e2e::e2e_validation_bad_top_p ... ok [INFO] [stdout] test tests::e2e::e2e_validation_empty_model ... ok [INFO] [stdout] test tests::e2e::e2e_validation_empty_messages ... ok [INFO] [stdout] test tests::e2e::e2e_no_provider_for_model ... ok [INFO] [stdout] test tests::handler_coverage::handler_audit_enabled ... ok [INFO] [stdout] test tests::handler_coverage::handler_cache_stats ... ok [INFO] [stdout] test tests::handler_coverage::handler_costs_reset ... ok [INFO] [stdout] test tests::handler_coverage::handler_costs_reset_with_audit ... ok [INFO] [stdout] test tests::handler_coverage::handler_costs_get_empty ... ok [INFO] [stdout] test tests::handler_coverage::handler_embeddings_no_provider ... ok [INFO] [stdout] test tests::handler_coverage::handler_health ... ok [INFO] [stdout] test tests::handler_coverage::handler_list_models_empty ... ok [INFO] [stdout] test tests::handler_coverage::handler_health_heartbeat ... ok [INFO] [stdout] test tests::handler_coverage::handler_health_providers_empty ... ok [INFO] [stdout] test tests::handler_coverage::handler_no_provider_for_model ... ok [INFO] [stdout] test tests::handler_coverage::handler_nonexistent_model_returns_404 ... ok [INFO] [stdout] test tests::handler_coverage::handler_prometheus_metrics ... ok [INFO] [stdout] test tests::inference_request_roundtrip ... ok [INFO] [stdout] test tests::live::ollama_live_health ... ignored [INFO] [stdout] test tests::live::ollama_live_infer ... ignored [INFO] [stdout] test tests::live::ollama_live_list_models ... ignored [INFO] [stdout] test tests::live::ollama_live_stream ... ignored [INFO] [stdout] test tests::handler_coverage::handler_queue_status ... ok [INFO] [stdout] test tests::handler_coverage::handler_token_check_existing_pool ... ok [INFO] [stdout] test tests::handler_coverage::handler_token_check_nonexistent_pool ... ok [INFO] [stdout] test tests::handler_coverage::handler_token_pools_list ... ok [INFO] [stdout] test tests::handler_coverage::handler_token_report_nonexistent_pool ... ok [INFO] [stdout] test tests::handler_coverage::handler_token_report_existing_pool ... ok [INFO] [stdout] test tests::handler_coverage::handler_token_reserve_nonexistent_pool ... ok [INFO] [stdout] test tests::handler_coverage::handler_validation_bad_top_p ... ok [INFO] [stdout] test tests::handler_coverage::handler_token_reserve_existing_pool ... ok [INFO] [stdout] test tests::handler_coverage::handler_validation_bad_temperature ... ok [INFO] [stdout] test tests::handler_coverage::handler_validation_empty_messages ... ok [INFO] [stdout] test tests::handler_coverage::handler_validation_invalid_model_name ... ok [INFO] [stdout] test tests::handler_coverage::handler_validation_empty_model ... ok [INFO] [stdout] test tests::handler_coverage::handler_validation_negative_top_p ... ok [INFO] [stdout] test tests::mock_server::anthropic_mock::anthropic_infer_with_messages ... ok [INFO] [stdout] test tests::mock_server::deepseek_list_models_and_health ... ok [INFO] [stdout] test tests::mock_server::anthropic_mock::anthropic_list_models ... ok [INFO] [stdout] test tests::mock_server::anthropic_mock::anthropic_health_unreachable ... ok [INFO] [stdout] test tests::mock_server::anthropic_mock::anthropic_health_reachable ... ok [INFO] [stdout] test tests::mock_server::anthropic_mock::anthropic_health_no_key ... ok [INFO] [stdout] test tests::mock_server::anthropic_mock::anthropic_infer ... ok [INFO] [stdout] test tests::mock_server::deepseek_provider_infer ... ok [INFO] [stdout] test tests::mock_server::groq_provider_infer ... ok [INFO] [stdout] test tests::mock_server::grok_provider_infer ... ok [INFO] [stdout] test tests::mock_server::grok_health ... ok [INFO] [stdout] test tests::mock_server::llamacpp_list_models_and_health ... ok [INFO] [stdout] test tests::mock_server::llamacpp_provider_infer ... ok [INFO] [stdout] test tests::mock_server::groq_list_models_and_health ... ok [INFO] [stdout] test tests::mock_server::lmstudio_health ... ok [INFO] [stdout] test tests::mock_server::mistral_health ... ok [INFO] [stdout] test tests::mock_server::lmstudio_provider_infer ... ok [INFO] [stdout] test tests::mock_server::localai_provider_infer ... ok [INFO] [stdout] test tests::mock_server::mistral_provider_infer ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_health_check_unreachable ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_health_check ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_embeddings_unreachable ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_embeddings_single ... ok [INFO] [stdout] test tests::mock_server::localai_health ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_delete_model_unreachable ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer_error_response ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer_stream_basic ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer_stream_unreachable ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_embeddings_multiple ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer_with_all_options ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer_stream_with_options ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer_unreachable ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer_with_temperature ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_pull_model_unreachable ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_infer_with_messages ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_list_models_unreachable ... ok [INFO] [stdout] test tests::mock_server::openai_compat_health_check_unreachable ... ok [INFO] [stdout] test tests::mock_server::openai_compat_health_check ... ok [INFO] [stdout] test tests::mock_server::openai_compat_infer ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_list_models ... ok [INFO] [stdout] test tests::mock_server::ollama_mock::ollama_list_models_full ... ok [INFO] [stdout] test tests::mock_server::openai_compat_infer_unreachable ... ok [INFO] [stdout] test tests::mock_server::openai_compat_infer_with_messages ... ok [INFO] [stdout] test tests::mock_server::openrouter_provider_infer ... ok [INFO] [stdout] test tests::provider_registry_all_iterator ... ok [INFO] [stdout] test tests::mock_server::openai_compat_list_models ... ok [INFO] [stdout] test tests::provider_registry_default ... ok [INFO] [stdout] test tests::provider_registry_empty ... ok [INFO] [stdout] test tests::provider_registry_get_missing ... ok [INFO] [stdout] test tests::mock_server::openai_remote_provider_infer ... ok [INFO] [stdout] test tests::mock_server::openrouter_health ... ok [INFO] [stdout] test tests::mock_server::openai_list_models_and_health ... ok [INFO] [stdout] test tests::mock_server::synapse_health_check ... ok [INFO] [stdout] test tests::provider_registry_unrecognized_type_not_registered ... ok [INFO] [stdout] test tests::provider_types_exhaustive ... ok [INFO] [stdout] test tests::router_selects_provider ... ok [INFO] [stdout] test tests::server_wiring::app_state_disabled_route_not_registered ... ok [INFO] [stdout] test tests::server_wiring::app_state_empty_routes ... ok [INFO] [stdout] test tests::mock_server::synapse_health_check_unreachable ... ok [INFO] [stdout] test tests::token_budget_lifecycle ... ok [INFO] [stdout] test tools::convert::tests::anthropic_tools_format ... ok [INFO] [stdout] test tools::convert::tests::empty_defs_produce_empty_arrays ... ok [INFO] [stdout] test tools::convert::tests::extract_anthropic_text_mixed ... ok [INFO] [stdout] test tools::convert::tests::extract_anthropic_text_only ... ok [INFO] [stdout] test tools::convert::tests::openai_tools_format ... ok [INFO] [stdout] test tools::convert::tests::parse_anthropic_no_tool_calls ... ok [INFO] [stdout] test tools::convert::tests::parse_anthropic_tool_calls_basic ... ok [INFO] [stdout] test tools::convert::tests::parse_openai_multiple_tool_calls ... ok [INFO] [stdout] test tools::convert::tests::parse_openai_no_tool_calls ... ok [INFO] [stdout] test tools::convert::tests::parse_openai_tool_calls_basic ... ok [INFO] [stdout] test tools::types::tests::tool_call_serde ... ok [INFO] [stdout] test tools::types::tests::tool_choice_default ... ok [INFO] [stdout] test tools::types::tests::tool_choice_variants ... ok [INFO] [stdout] test tools::types::tests::tool_definition_empty_params ... ok [INFO] [stdout] test tools::types::tests::tool_definition_serde ... ok [INFO] [stdout] test tools::types::tests::tool_result_error ... ok [INFO] [stdout] test tools::types::tests::tool_result_serde ... ok [INFO] [stdout] test tests::mock_server::synapse_infer_stream_unreachable ... ok [INFO] [stdout] test tests::mock_server::synapse_list_models ... ok [INFO] [stdout] test tests::mock_server::synapse_infer_unreachable ... ok [INFO] [stdout] test tests::mock_server::synapse_list_models_unreachable ... ok [INFO] [stdout] test tests::mock_server::synapse_provider_infer_with_messages ... ok [INFO] [stdout] test tests::mock_server::synapse_provider_infer ... ok [INFO] [stdout] test tests::provider_registry_register_ollama ... ok [INFO] [stdout] test tests::server_wiring::app_state_registers_ollama ... ok [INFO] [stdout] test tests::provider_registry_dedup ... ok [INFO] [stdout] test tests::mock_server::synapse_sync_catalog_unreachable ... ok [INFO] [stdout] test tests::server_wiring::app_state_route_selection_still_works ... ok [INFO] [stdout] test tests::mock_server::synapse_training_status_unreachable ... ok [INFO] [stdout] test tests::server_wiring::app_state_multiple_providers ... ok [INFO] [stdout] test tests::provider_registry_multiple_providers ... ok [INFO] [stdout] test tests::e2e::e2e_health_failover ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 568 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 12.98s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/hoosh-59881fd090f4a733) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests hoosh [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test src/lib.rs - (line 26) - compile ... ok [INFO] [stdout] test src/error.rs - error::HooshError (line 9) ... ok [INFO] [stdout] test src/budget/mod.rs - budget::TokenPool (line 11) ... ok [INFO] [stdout] test src/cache/mod.rs - cache::ResponseCache (line 81) ... ok [INFO] [stdout] test src/inference/mod.rs - inference::InferenceRequest (line 11) ... ok [INFO] [stdout] test src/inference/mod.rs - inference::MessageContent (line 57) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] all doctests ran in 1.56s; merged doctests compilation took 1.53s [INFO] running `Command { std: "docker" "inspect" "c00403ae584ea3d8023d62d71d49e5e39c7304b9b78610e84e263df07526572e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c00403ae584ea3d8023d62d71d49e5e39c7304b9b78610e84e263df07526572e", kill_on_drop: false }` [INFO] [stdout] c00403ae584ea3d8023d62d71d49e5e39c7304b9b78610e84e263df07526572e