[INFO] fetching crate oxify-connect-llm 0.1.0... [INFO] testing oxify-connect-llm-0.1.0 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate oxify-connect-llm 0.1.0 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate oxify-connect-llm 0.1.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate oxify-connect-llm 0.1.0 [INFO] tweaked toml for crates.io crate oxify-connect-llm 0.1.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oxify-connect-llm 0.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 oxify-connect-llm 0.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 zmij v1.0.13 [INFO] [stderr] Downloaded cc v1.2.52 [INFO] [stderr] Downloaded find-msvc-tools v0.1.7 [INFO] [stderr] Downloaded criterion-plot v0.8.1 [INFO] [stderr] Downloaded arc-swap v1.8.0 [INFO] [stderr] Downloaded oxify-model v0.1.0 [INFO] [stderr] Downloaded criterion v0.8.1 [INFO] [stderr] Downloaded redis v1.0.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 6fc01e0ddffb359dbdca07466e256bedfaa593f1735e9b3de83b6820496e54b2 [INFO] running `Command { std: "docker" "start" "-a" "6fc01e0ddffb359dbdca07466e256bedfaa593f1735e9b3de83b6820496e54b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6fc01e0ddffb359dbdca07466e256bedfaa593f1735e9b3de83b6820496e54b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6fc01e0ddffb359dbdca07466e256bedfaa593f1735e9b3de83b6820496e54b2", kill_on_drop: false }` [INFO] [stdout] 6fc01e0ddffb359dbdca07466e256bedfaa593f1735e9b3de83b6820496e54b2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 87a79c6286ff3abf21c6adfb161ddeae89b7b61cb9c4e1bfc7a4910a6984a61d [INFO] running `Command { std: "docker" "start" "-a" "87a79c6286ff3abf21c6adfb161ddeae89b7b61cb9c4e1bfc7a4910a6984a61d", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling find-msvc-tools v0.1.7 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling zerocopy v0.8.33 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling zmij v1.0.13 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling rustls-pki-types v1.13.2 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling cc v1.2.52 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling tracing v0.1.44 [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 serde v1.0.228 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling oxify-model v0.1.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-stream v0.1.18 [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.19 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling oxify-connect-llm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "87a79c6286ff3abf21c6adfb161ddeae89b7b61cb9c4e1bfc7a4910a6984a61d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "87a79c6286ff3abf21c6adfb161ddeae89b7b61cb9c4e1bfc7a4910a6984a61d", kill_on_drop: false }` [INFO] [stdout] 87a79c6286ff3abf21c6adfb161ddeae89b7b61cb9c4e1bfc7a4910a6984a61d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] f7cc54cd12ac0688b011fbecc85c93415912df90ebd74f6bd7c70c2fce373f4f [INFO] running `Command { std: "docker" "start" "-a" "f7cc54cd12ac0688b011fbecc85c93415912df90ebd74f6bd7c70c2fce373f4f", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.33 [INFO] [stderr] Compiling zerocopy-derive v0.8.33 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling clap_builder v4.5.54 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling criterion-plot v0.8.1 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling clap v4.5.54 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling criterion v0.8.1 [INFO] [stderr] Compiling oxify-model v0.1.0 [INFO] [stderr] Compiling oxify-connect-llm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 50.21s [INFO] running `Command { std: "docker" "inspect" "f7cc54cd12ac0688b011fbecc85c93415912df90ebd74f6bd7c70c2fce373f4f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f7cc54cd12ac0688b011fbecc85c93415912df90ebd74f6bd7c70c2fce373f4f", kill_on_drop: false }` [INFO] [stdout] f7cc54cd12ac0688b011fbecc85c93415912df90ebd74f6bd7c70c2fce373f4f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 388b0fba1dafa0ac6b260c4d68cdc4c71faae5903c9029f0ddc423a035618112 [INFO] running `Command { std: "docker" "start" "-a" "388b0fba1dafa0ac6b260c4d68cdc4c71faae5903c9029f0ddc423a035618112", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.28s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oxify_connect_llm-4ea8c2f562323bb5) [INFO] [stdout] [INFO] [stdout] running 203 tests [INFO] [stdout] test batch::tests::test_batch_config_default ... ok [INFO] [stdout] test bedrock::tests::test_model_constants ... ok [INFO] [stdout] test cache::tests::test_cache_hit ... ok [INFO] [stdout] test cache::tests::test_cache_hit_rate ... ok [INFO] [stdout] test cache::tests::test_cache_max_size ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_breaker_config_builder ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_breaker_reset ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_breaker_stats ... ok [INFO] [stdout] test compression::tests::test_compression_disabled ... ok [INFO] [stdout] test compression::tests::test_compression_stats ... ok [INFO] [stdout] test compression::tests::test_compression_preserves_content ... ok [INFO] [stdout] test compression::tests::test_empty_line_removal ... ok [INFO] [stdout] test compression::tests::test_model_limits ... ok [INFO] [stdout] test compression::tests::test_no_limit_warning ... ok [INFO] [stdout] test compression::tests::test_token_estimation ... ok [INFO] [stdout] test compression::tests::test_limit_checking ... ok [INFO] [stdout] test compression::tests::test_limit_warning ... ok [INFO] [stdout] test compression::tests::test_line_trimming ... ok [INFO] [stdout] test dedup::tests::test_dedup_single_request ... ok [INFO] [stdout] test compression::tests::test_model_limit_has_limit ... ok [INFO] [stdout] test compression::tests::test_whitespace_compression ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_breaker_opens_after_failures ... ok [INFO] [stdout] test errors::tests::test_contextual_error ... ok [INFO] [stdout] test errors::tests::test_error_context_builder_completion ... ok [INFO] [stdout] test errors::tests::test_error_context_builder_embedding ... ok [INFO] [stdout] test errors::tests::test_error_context_builder_streaming ... ok [INFO] [stdout] test errors::tests::test_error_context_creation ... ok [INFO] [stdout] test errors::tests::test_error_context_format ... ok [INFO] [stdout] test fallback::tests::test_fallback_all_providers_fail ... ok [INFO] [stdout] test fallback::tests::test_fallback_first_provider_success ... ok [INFO] [stdout] test fallback::tests::test_fallback_non_retryable_error ... ok [INFO] [stdout] test fallback::tests::test_fallback_retry_all_errors ... ok [INFO] [stdout] test fallback::tests::test_provider_count ... ok [INFO] [stdout] test fallback::tests::test_fallback_to_second_provider ... ok [INFO] [stdout] test health_check::tests::test_health_check_becomes_unhealthy ... ok [INFO] [stdout] test health_check::tests::test_health_check_config ... ok [INFO] [stdout] test health_check::tests::test_health_check_degraded_status ... ok [INFO] [stdout] test health_check::tests::test_health_check_reset ... ok [INFO] [stdout] test helpers::tests::test_model_utils_infer_provider ... ok [INFO] [stdout] test helpers::tests::test_model_utils_is_claude ... ok [INFO] [stdout] test helpers::tests::test_model_utils_is_gemini ... ok [INFO] [stdout] test helpers::tests::test_model_utils_is_gpt ... ok [INFO] [stdout] test helpers::tests::test_quick_request_chat ... ok [INFO] [stdout] test helpers::tests::test_quick_request_code ... ok [INFO] [stdout] test helpers::tests::test_quick_request_creative ... ok [INFO] [stdout] test helpers::tests::test_quick_request_simple ... ok [INFO] [stdout] test cache::tests::test_cache_cleanup ... ok [INFO] [stdout] test helpers::tests::test_quick_request_summarize ... ok [INFO] [stdout] test helpers::tests::test_request_builder ... ok [INFO] [stdout] test helpers::tests::test_request_builder_with_images ... ok [INFO] [stdout] test helpers::tests::test_request_builder_with_tools ... ok [INFO] [stdout] test helpers::tests::test_token_utils_estimate ... ok [INFO] [stdout] test helpers::tests::test_token_utils_estimate_cost ... ok [INFO] [stdout] test helpers::tests::test_token_utils_exceeds_limit ... ok [INFO] [stdout] test helpers::tests::test_token_utils_truncate ... ok [INFO] [stdout] test interceptor::tests::test_content_length_interceptor ... ok [INFO] [stdout] test interceptor::tests::test_logging_interceptor ... ok [INFO] [stdout] test interceptor::tests::test_failing_interceptor ... ok [INFO] [stdout] test interceptor::tests::test_request_interceptor ... ok [INFO] [stdout] test interceptor::tests::test_response_interceptor ... ok [INFO] [stdout] test interceptor::tests::test_sanitization_interceptor ... ok [INFO] [stdout] test interceptor::tests::test_multiple_interceptors ... ok [INFO] [stdout] test dedup::tests::test_dedup_different_requests ... ok [INFO] [stdout] test dedup::tests::test_dedup_temperature_distinction ... ok [INFO] [stdout] test load_balancer::tests::test_load_balancer_provider_count ... ok [INFO] [stdout] test load_balancer::tests::test_load_balancer_random ... ok [INFO] [stdout] test load_balancer::tests::test_load_balancer_round_robin ... ok [INFO] [stdout] test load_balancer::tests::test_load_balancer_stats ... ok [INFO] [stdout] test load_balancer::tests::test_load_balancer_weighted ... ok [INFO] [stdout] test observability::tests::test_metrics_avg_cost ... ok [INFO] [stdout] test observability::tests::test_metrics_avg_latency ... ok [INFO] [stdout] test observability::tests::test_metrics_new ... ok [INFO] [stdout] test observability::tests::test_metrics_success_rate ... ok [INFO] [stdout] test dedup::tests::test_dedup_duplicate_requests ... ok [INFO] [stdout] test observability::tests::test_metrics_zero_division ... ok [INFO] [stdout] test observability::tests::test_prometheus_export ... ok [INFO] [stdout] test observability::tests::test_prometheus_export_empty_metrics ... ok [INFO] [stdout] test observability::tests::test_prometheus_export_with_labels ... ok [INFO] [stdout] test batch::tests::test_batch_timeout_trigger ... ok [INFO] [stdout] test otel::tests::test_response_attributes_from_error ... ok [INFO] [stdout] test batch::tests::test_batch_provider_single_request ... ok [INFO] [stdout] test otel::tests::test_response_attributes_from_response ... ok [INFO] [stdout] test otel::tests::test_span_attributes_truncation ... ok [INFO] [stdout] test otel::tests::test_trace_event_creation ... ok [INFO] [stdout] test otel::tests::test_span_attributes_from_request ... ok [INFO] [stdout] test priority_queue::tests::test_priority_queue_config_default ... ok [INFO] [stdout] test priority_queue::tests::test_priority_ordering ... ok [INFO] [stdout] test priority_queue::tests::test_priority_queue_default_priority ... ok [INFO] [stdout] test batch::tests::test_batch_stats_calculation ... ok [INFO] [stdout] test priority_queue::tests::test_priority_queue_single_request ... ok [INFO] [stdout] test prompt_engineering::tests::test_chain_of_thought ... ok [INFO] [stdout] test dedup::tests::test_dedup_stats ... ok [INFO] [stdout] test prompt_engineering::tests::test_example_creation ... ok [INFO] [stdout] test prompt_engineering::tests::test_few_shot_add_multiple ... ok [INFO] [stdout] test prompt_engineering::tests::test_few_shot_basic ... ok [INFO] [stdout] test prompt_engineering::tests::test_few_shot_custom_prefixes ... ok [INFO] [stdout] test prompt_engineering::tests::test_instruction_prompt ... ok [INFO] [stdout] test prompt_engineering::tests::test_role_prompt ... ok [INFO] [stdout] test prompt_engineering::tests::test_role_prompt_split ... ok [INFO] [stdout] test prompt_engineering::tests::test_system_prompts ... ok [INFO] [stdout] test prompt_engineering::tests::test_chain_of_thought_with_examples ... ok [INFO] [stdout] test rate_limit::tests::test_rate_limit_requests ... ok [INFO] [stdout] test rate_limit::tests::test_rate_limit_config ... ok [INFO] [stdout] test rate_limit::tests::test_rate_limit_stats ... ok [INFO] [stdout] test rate_limit::tests::test_token_estimation ... ok [INFO] [stdout] test recommender::tests::test_list_models_for_use_case ... ok [INFO] [stdout] test recommender::tests::test_recommend_balanced ... ok [INFO] [stdout] test recommender::tests::test_recommend_cheap_model ... ok [INFO] [stdout] test recommender::tests::test_recommend_fast_model ... ok [INFO] [stdout] test recommender::tests::test_recommend_with_budget ... ok [INFO] [stdout] test response_utils::tests::test_count_sentences ... ok [INFO] [stdout] test response_utils::tests::test_count_words ... ok [INFO] [stdout] test response_utils::tests::test_extract_all_code ... ok [INFO] [stdout] test response_utils::tests::test_extract_bullet_list ... ok [INFO] [stdout] test response_utils::tests::test_extract_code_blocks ... ok [INFO] [stdout] test response_utils::tests::test_extract_code_by_language ... ok [INFO] [stdout] test response_utils::tests::test_extract_numbered_list ... ok [INFO] [stdout] test response_utils::tests::test_extract_urls ... ok [INFO] [stdout] test response_utils::tests::test_normalize_whitespace ... ok [INFO] [stdout] test response_utils::tests::test_parse_json ... ok [INFO] [stdout] test response_utils::tests::test_parse_json_direct ... ok [INFO] [stdout] test response_utils::tests::test_strip_markdown ... ok [INFO] [stdout] test response_utils::tests::test_truncate ... ok [INFO] [stdout] test retry::tests::test_calculate_delay_no_jitter ... ok [INFO] [stdout] test retry::tests::test_calculate_delay_with_max ... ok [INFO] [stdout] test retry::tests::test_is_retryable_error ... ok [INFO] [stdout] test retry::tests::test_retry_config_builder ... ok [INFO] [stdout] test retry::tests::test_retry_config_default ... ok [INFO] [stdout] test selector::tests::test_preferred_providers ... ok [INFO] [stdout] test selector::tests::test_provider_metadata_capabilities ... ok [INFO] [stdout] test selector::tests::test_provider_metadata_cost_limit ... ok [INFO] [stdout] test selector::tests::test_provider_metadata_scoring ... ok [INFO] [stdout] test selector::tests::test_provider_metadata_speed ... ok [INFO] [stdout] test selector::tests::test_selection_criteria_default ... ok [INFO] [stdout] test semantic_cache::tests::test_cache_stats ... ok [INFO] [stdout] test semantic_cache::tests::test_cached_provider ... ok [INFO] [stdout] test semantic_cache::tests::test_clear_cache ... ok [INFO] [stdout] test semantic_cache::tests::test_cosine_similarity ... ok [INFO] [stdout] test llamacpp::tests::test_llamacpp_for_embeddings ... ok [INFO] [stdout] test semantic_cache::tests::test_semantic_cache_eviction ... ok [INFO] [stdout] test semantic_cache::tests::test_semantic_cache_hit ... ok [INFO] [stdout] test semantic_cache::tests::test_semantic_cache_miss ... ok [INFO] [stdout] test semantic_cache::tests::test_semantic_cache_similar_queries ... ok [INFO] [stdout] test semantic_cache::tests::test_similarity_threshold ... ok [INFO] [stdout] test templates::tests::test_code_review_template ... ok [INFO] [stdout] test batch::tests::test_batch_provider_multiple_requests ... ok [INFO] [stdout] test templates::tests::test_extract_variables ... ok [INFO] [stdout] test templates::tests::test_qa_template ... ok [INFO] [stdout] test templates::tests::test_custom_template_addition ... ok [INFO] [stdout] test templates::tests::test_template_missing_variable ... ok [INFO] [stdout] test templates::tests::test_template_partial_render ... ok [INFO] [stdout] test templates::tests::test_template_library ... ok [INFO] [stdout] test templates::tests::test_template_render ... ok [INFO] [stdout] test timeout::tests::test_timeout_config_builder ... ok [INFO] [stdout] test timeout::tests::test_timeout_config_default ... ok [INFO] [stdout] test timeout::tests::test_timeout_config_uniform ... ok [INFO] [stdout] test usage::tests::test_budget_limit_remaining ... ok [INFO] [stdout] test priority_queue::tests::test_priority_queue_priority_ordering ... ok [INFO] [stdout] test usage::tests::test_budget_provider_exceeds_limit ... ok [INFO] [stdout] test usage::tests::test_budget_provider_under_limit ... ok [INFO] [stdout] test usage::tests::test_free_pricing ... ok [INFO] [stdout] test usage::tests::test_model_pricing_calculation ... ok [INFO] [stdout] test usage::tests::test_usage_stats_usd ... ok [INFO] [stdout] test usage::tests::test_usage_tracker ... ok [INFO] [stdout] test usage::tests::test_usage_tracker_reset ... ok [INFO] [stdout] test validation::tests::test_validate_embedding_request ... ok [INFO] [stdout] test validation::tests::test_validate_empty_embedding_request ... ok [INFO] [stdout] test validation::tests::test_validate_empty_prompt ... ok [INFO] [stdout] test validation::tests::test_validate_temperature_out_of_range ... ok [INFO] [stdout] test validation::tests::test_validate_too_many_tools ... ok [INFO] [stdout] test validation::tests::test_validate_tool_without_name ... ok [INFO] [stdout] test validation::tests::test_validate_valid_request ... ok [INFO] [stdout] test validation::tests::test_validate_zero_max_tokens ... ok [INFO] [stdout] test validation::tests::test_validation_rules_lenient ... ok [INFO] [stdout] test validation::tests::test_validation_rules_strict ... ok [INFO] [stdout] test llamacpp::tests::test_system_prompt_combination ... ok [INFO] [stdout] test cache::tests::test_cache_expiration ... ok [INFO] [stdout] test otel::tests::test_otel_provider_with_callback ... ok [INFO] [stdout] test workflow::tests::test_workflow_budget ... ok [INFO] [stdout] test workflow::tests::test_workflow_budget_exceeded ... ok [INFO] [stdout] test workflow::tests::test_workflow_can_afford ... ok [INFO] [stdout] test workflow::tests::test_workflow_remove ... ok [INFO] [stdout] test workflow::tests::test_workflow_reset ... ok [INFO] [stdout] test workflow::tests::test_workflow_reset_all ... ok [INFO] [stdout] test workflow::tests::test_workflow_stats_no_budget ... ok [INFO] [stdout] test workflow::tests::test_workflow_tracker_multiple_workflows ... ok [INFO] [stdout] test workflow::tests::test_workflow_tracker_new ... ok [INFO] [stdout] test semantic_cache::tests::test_invalid_threshold - should panic ... ok [INFO] [stdout] test workflow::tests::test_workflow_tracker_record_usage ... ok [INFO] [stdout] test bedrock::tests::test_bedrock_provider_creation ... ok [INFO] [stdout] test bedrock::tests::test_bedrock_with_credentials ... ok [INFO] [stdout] test bedrock::tests::test_bedrock_endpoint_url ... ok [INFO] [stdout] test otel::tests::test_otel_provider_success ... ok [INFO] [stdout] test rate_limit::tests::test_token_bucket_refill ... ok [INFO] [stdout] test vllm::tests::test_message_conversion ... ok [INFO] [stdout] test llamacpp::tests::test_llamacpp_provider_creation ... ok [INFO] [stdout] test vllm::tests::test_vllm_for_embeddings ... ok [INFO] [stdout] test vllm::tests::test_message_conversion_no_system ... ok [INFO] [stdout] test vllm::tests::test_vllm_provider_creation ... ok [INFO] [stdout] test tests::test_provider_creation ... ok [INFO] [stdout] test priority_queue::tests::test_priority_queue_stats ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_breaker_recovers ... ok [INFO] [stdout] test health_check::tests::test_health_check_recovers ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 203 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.03s [INFO] [stdout] [INFO] [stderr] Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-352e86b9ce5b3731) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test test_openai_embeddings_success ... ok [INFO] [stdout] test test_openai_function_calling ... ok [INFO] [stdout] test test_openai_complete_api_error ... ok [INFO] [stdout] test test_openai_vision_support ... ok [INFO] [stdout] test test_openai_complete_success ... ok [INFO] [stdout] test test_openai_complete_rate_limit ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s [INFO] [stdout] [INFO] [stderr] Doc-tests oxify_connect_llm [INFO] [stdout] [INFO] [stdout] running 29 tests [INFO] [stdout] test src/health_check.rs - health_check (line 8) - compile ... ok [INFO] [stdout] test src/dedup.rs - dedup (line 9) - compile ... ok [INFO] [stdout] test src/load_balancer.rs - load_balancer (line 10) - compile ... ok [INFO] [stdout] test src/otel.rs - otel (line 14) - compile ... ok [INFO] [stdout] test src/bedrock.rs - bedrock::BedrockProvider (line 19) - compile ... ok [INFO] [stdout] test src/llamacpp.rs - llamacpp::LlamaCppProvider (line 15) - compile ... ok [INFO] [stdout] test src/circuit_breaker.rs - circuit_breaker (line 12) - compile ... ok [INFO] [stdout] test src/rate_limit.rs - rate_limit (line 8) - compile ... ok [INFO] [stdout] test src/interceptor.rs - interceptor (line 8) ... ok [INFO] [stdout] test src/priority_queue.rs - priority_queue (line 9) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::count_sentences (line 332) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::extract_urls (line 309) ... ok [INFO] [stdout] test src/batch.rs - batch (line 8) ... ok [INFO] [stdout] test src/vllm.rs - vllm::VllmProvider (line 20) - compile ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::count_words (line 349) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::parse_json (line 148) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::extract_code_by_language (line 99) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::extract_code_blocks (line 44) ... ok [INFO] [stdout] test src/workflow.rs - workflow (line 9) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::extract_bullet_list (line 250) ... ok [INFO] [stdout] test src/prompt_engineering.rs - prompt_engineering (line 9) ... ok [INFO] [stdout] test src/semantic_cache.rs - semantic_cache (line 9) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::extract_numbered_list (line 219) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::normalize_whitespace (line 363) ... ok [INFO] [stdout] test src/observability.rs - observability::Metrics::to_prometheus (line 233) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::truncate (line 279) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils (line 9) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::extract_all_code (line 125) ... ok [INFO] [stdout] test src/response_utils.rs - response_utils::ResponseUtils::strip_markdown (line 185) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.71s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "388b0fba1dafa0ac6b260c4d68cdc4c71faae5903c9029f0ddc423a035618112", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "388b0fba1dafa0ac6b260c4d68cdc4c71faae5903c9029f0ddc423a035618112", kill_on_drop: false }` [INFO] [stdout] 388b0fba1dafa0ac6b260c4d68cdc4c71faae5903c9029f0ddc423a035618112