[INFO] cloning repository https://github.com/yang-wang11/aicore-proxy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yang-wang11/aicore-proxy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyang-wang11%2Faicore-proxy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyang-wang11%2Faicore-proxy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ddb8c0396fa72ca031ed0448a1ff71562cfa2870
[INFO] testing yang-wang11/aicore-proxy 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%2Fyang-wang11%2Faicore-proxy" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/yang-wang11/aicore-proxy
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/yang-wang11/aicore-proxy
[INFO] tweaked toml for git repo https://github.com/yang-wang11/aicore-proxy written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yang-wang11/aicore-proxy 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/yang-wang11/aicore-proxy 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-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90
[INFO] running `Command { std: "docker" "start" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90", 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" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90" "/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" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90", 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" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling log v0.4.30
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling writeable v0.5.5
[INFO] [stderr]    Compiling litemap v0.7.5
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling http v1.4.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling utf16_iter v1.0.5
[INFO] [stderr]    Compiling write16 v1.0.0
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling indexmap v2.7.0
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling figment v0.10.19
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling arc-swap v1.9.1
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling dashmap v6.2.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling pear_codegen v0.2.9
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling pear v0.2.9
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.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 h2 v0.4.14
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.5
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling aicore-proxy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 22s
[INFO] running `Command { std: "docker" "inspect" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90", 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" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90" "/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 tokio v1.52.3
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling serial_test_derive v3.5.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling serial_test v3.5.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling insta v1.47.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[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 deadpool v0.10.0
[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 tower-http v0.6.11
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.5
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling wiremock v0.6.2
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling aicore-proxy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 58s
[INFO] running `Command { std: "docker" "inspect" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90", 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" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90" "/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 0.40s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/aicore_proxy-3c55008e6635024f)
[INFO] [stdout] 
[INFO] [stdout] running 144 tests
[INFO] [stdout] test auth::timing_safe::tests::different_lengths_do_not_match ... ok
[INFO] [stdout] test catalog::refresher_tests::jittered_zero_pct_is_exact ... ok
[INFO] [stdout] test catalog::tests::deployments_for_missing_model_returns_empty ... ok
[INFO] [stdout] test catalog::tests::from_pairs_builds_lookup_map ... ok
[INFO] [stdout] test auth::timing_safe::tests::equal_strings_match ... ok
[INFO] [stdout] test auth::timing_safe::tests::differing_strings_do_not_match ... ok
[INFO] [stdout] test auth::timing_safe::tests::pool_lookup_works ... ok
[INFO] [stdout] test catalog::tests::empty_envelope_yields_empty_snapshot ... ok
[INFO] [stdout] test config::api_keys::tests::debug_redacts_api_key_entry ... ok
[INFO] [stdout] test config::api_keys::tests::debug_redacts_api_key_pool ... ok
[INFO] [stdout] test catalog::tests::skips_deployments_without_model_name ... ok
[INFO] [stdout] test catalog::tests::skips_non_running_deployments ... ok
[INFO] [stdout] test catalog::tests::parses_running_deployments ... ok
[INFO] [stdout] test config::tests::debug_redacts_binding_secret ... ok
[INFO] [stdout] test config::tests::anthropic_streaming_default_uses_response_stream_suffix ... ok
[INFO] [stdout] test config::tests::openai_default_template_carries_api_version ... ok
[INFO] [stdout] test catalog::refresher_tests::jittered_within_range ... ok
[INFO] [stdout] test config::tests::allows_http_for_ipv6_loopback ... ok
[INFO] [stdout] test config::tests::allows_http_for_localhost ... ok
[INFO] [stdout] test config::tests::debug_redacts_client_secret ... ok
[INFO] [stdout] test config::tests::config_loads_anthropic_streaming_template_override ... ok
[INFO] [stdout] test env_loader::tests::is_valid_key_rules ... ok
[INFO] [stdout] test env_loader::tests::parse_value_handles_basic_forms ... ok
[INFO] [stdout] test env_loader::tests::forgiving_parser_recovers_after_unbalanced_quote ... ok
[INFO] [stdout] test config::tests::config_loads_tranche_b_env_vars ... ok
[INFO] [stdout] test env_loader::tests::load_env_recovers_when_dotenv_first_line_unbalanced ... ok
[INFO] [stdout] test env_loader::tests::missing_dotenv_is_not_fatal ... ok
[INFO] [stdout] test config::tests::missing_model_mapper_rules_path_loads_with_empty_string ... ok
[INFO] [stdout] test env_loader::tests::parse_value_rejects_unterminated_quotes ... ok
[INFO] [stdout] test config::tests::rejects_http_for_remote_host ... ok
[INFO] [stdout] test config::tests::url_rejection_message_does_not_include_host ... ok
[INFO] [stdout] test env_loader::tests::rules_path_defaulted_when_unset_and_file_present ... ok
[INFO] [stdout] test env_loader::tests::shell_overrides_dotenv_in_load_env ... ok
[INFO] [stdout] test error::tests::display_does_not_leak_internal_inner_string ... ok
[INFO] [stdout] test error::tests::internal_detail_exposes_inner_only_for_redacted_variants ... ok
[INFO] [stdout] test error::tests::user_message_is_generic_for_redacted_variants ... ok
[INFO] [stdout] test error::tests::kind_str_returns_stable_labels ... ok
[INFO] [stdout] test model_mapper::tests::legacy_upgrade_passes_through_unknown ... ok
[INFO] [stdout] test model_mapper::tests::legacy_upgrade_renames_known_model ... ok
[INFO] [stdout] test model_mapper::tests::resolve_returns_empty_when_no_match ... ok
[INFO] [stdout] test model_mapper::tests::resolve_dedupes_repeats ... ok
[INFO] [stdout] test model_mapper::tests::resolve_returns_primary_first_then_fallbacks ... ok
[INFO] [stdout] test model_mapper::tests::resolve_skips_models_absent_from_catalog ... ok
[INFO] [stdout] test health::tests::unknown_id_is_healthy ... ok
[INFO] [stdout] test observability::body_log::tests::does_not_redact_substring_matches ... ok
[INFO] [stdout] test health::tests::threshold_engages_cooldown ... ok
[INFO] [stdout] test health::tests::failures_below_threshold_keep_healthy ... ok
[INFO] [stdout] test health::tests::cooldown_remaining_reports_correctly ... ok
[INFO] [stdout] test health::tests::success_clears_state ... ok
[INFO] [stdout] test observability::body_log::tests::preserves_message_array_structure ... ok
[INFO] [stdout] test observability::body_log::tests::redacts_case_insensitively ... ok
[INFO] [stdout] test observability::body_log::tests::redacts_inside_arrays ... ok
[INFO] [stdout] test observability::body_log::tests::redacts_top_level_secret_keys ... ok
[INFO] [stdout] test observability::body_log::tests::redacts_nested_secret_keys ... ok
[INFO] [stdout] test pipeline::stage::tests::pipeline_state_default_has_zero_attempt ... ok
[INFO] [stdout] test observability::body_log::tests::small_outputs_are_not_truncated ... ok
[INFO] [stdout] test pipeline::stage::tests::envelope_construction ... ok
[INFO] [stdout] test pipeline::stages::forward::tests::retryable_status_set ... ok
[INFO] [stdout] test pipeline::stages::forward::tests::sensitive_response_headers_are_stripped ... ok
[INFO] [stdout] test pipeline::stages::forward::tests::backoff_capped_and_jittered ... ok
[INFO] [stdout] test pipeline::stages::map_and_resolve::tests::empty_catalog_yields_not_found ... ok
[INFO] [stdout] test pipeline::stages::map_and_resolve::tests::legacy_upgrade_then_resolve_picks_primary ... ok
[INFO] [stdout] test pipeline::stages::map_and_resolve::tests::falls_back_when_primary_absent ... ok
[INFO] [stdout] test pipeline::stages::map_and_resolve::tests::missing_state_model_is_internal_error ... ok
[INFO] [stdout] test observability::access_log::tests::middleware_handles_missing_meta_gracefully ... ok
[INFO] [stdout] test observability::access_log::tests::middleware_passes_through_responses_unchanged ... ok
[INFO] [stdout] test pipeline::stages::validate::tests::extracts_model_and_stream_true ... ok
[INFO] [stdout] test pipeline::stages::validate::tests::extracts_model_default_stream_false ... ok
[INFO] [stdout] test pipeline::stages::transform_request::tests::applies_transform_rules ... ok
[INFO] [stdout] test pipeline::stages::transform_request::tests::captures_thinking_budget ... ok
[INFO] [stdout] test pipeline::stages::transform_request::tests::openai_responses_request_transformer_smoke ... ok
[INFO] [stdout] test pipeline::stages::validate::tests::rejects_empty_model ... ok
[INFO] [stdout] test pipeline::stages::validate::tests::rejects_non_object_body ... ok
[INFO] [stdout] test rr::tests::cycles_through_indices ... ok
[INFO] [stdout] test pipeline::stages::validate::tests::rejects_invalid_json ... ok
[INFO] [stdout] test pipeline::stages::validate::tests::rejects_missing_model ... ok
[INFO] [stdout] test rr::tests::independent_per_model ... ok
[INFO] [stdout] test rr::tests::zero_len_returns_zero ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::drops_model_and_stream_injects_version ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::rejects_invalid_json ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::preserves_messages_system_tools ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::rejects_non_object_body ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::thinking_budget_clamped_to_zero_when_max_tokens_zero ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::thinking_budget_unchanged_when_max_tokens_at_1024 ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::thinking_budget_clamped_when_max_tokens_below_1024 ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::thinking_budget_unchanged_when_no_max_tokens ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::byte_by_byte_equivalence ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::crlf_line_endings_supported ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::comment_lines_are_ignored ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::done_sentinel_is_dropped ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::empty_stream_yields_nothing ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::flush_on_partial_frame_emits_truncation_error ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::frame_split_across_five_chunks ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::frame_split_across_two_chunks ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::missing_type_field_falls_back_to_message ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::malformed_json_emits_error_frame_and_continues ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::multiple_frames_in_one_chunk ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::single_complete_frame ... ok
[INFO] [stdout] test observability::body_log::tests::non_json_summarized_not_dumped ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::trailing_partial_frame_buffers ... ok
[INFO] [stdout] test transformers::anthropic_stream::tests::two_crlf_frames_back_to_back ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::dropped_fields_absent_from_output ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::developer_role_folds_into_system ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::function_call_missing_call_id_rejected ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::empty_instructions_omitted ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::function_call_output_becomes_tool_role ... ok
[INFO] [stdout] test pipeline::state_meta::tests::from_state_copies_fields ... ok
[INFO] [stdout] test transformers::anthropic_request::tests::no_thinking_field_no_clamp ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::function_tool_without_name_is_dropped ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::invalid_role_rejected ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::input_image_translates_to_image_url_part ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::non_function_tool_variants_are_dropped ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::streaming_request_forces_stream_options_include_usage ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::non_streaming_request_omits_stream_options ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::max_output_tokens_renamed_to_max_completion_tokens ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::instructions_become_leading_system_message ... ok
[INFO] [stdout] test pipeline::stages::validate::tests::rejects_oversize_body ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::tools_omitted_when_only_non_function_variants_present ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::text_format_maps_to_response_format ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::temperature_and_top_p_pass_through ... ok
[INFO] [stdout] test transformers::openai_responses_request::tests::tool_definitions_become_nested_function_shape ... ok
[INFO] [stdout] test rr::tests::balanced_under_concurrency ... ok
[INFO] [stdout] test transformers::openai_responses_response::tests::length_finish_reason_maps_to_incomplete ... ok
[INFO] [stdout] test transformers::openai_responses_response::tests::tool_calls_become_function_call_items ... ok
[INFO] [stdout] test transformers::openai_responses_stream::tests::chunk_split_mid_line_is_buffered ... ok
[INFO] [stdout] test transformers::openai_responses_response::tests::multiple_tool_calls_get_unique_ids ... ok
[INFO] [stdout] test transformers::openai_responses_response::tests::text_only_completion_synthesizes_message_output ... ok
[INFO] [stdout] test transformers::openai_responses_stream::tests::tool_call_args_before_name_are_buffered ... ok
[INFO] [stdout] test transformers::id_gen::tests::random_id_unique_and_correct_length ... ok
[INFO] [stdout] test transformers::openai_responses_stream::tests::flush_without_any_chunks_synthesizes_terminal_sequence ... ok
[INFO] [stdout] test types::tests::api_flavor_displays_snake_case ... ok
[INFO] [stdout] test types::tests::api_flavor_eq ... ok
[INFO] [stdout] test transformers::openai_responses_stream::tests::flush_with_error_emits_response_failed ... ok
[INFO] [stdout] test types::tests::deployment_id_round_trip ... ok
[INFO] [stdout] test transformers::openai_responses_stream::tests::minimal_text_turn_emits_five_events ... ok
[INFO] [stdout] test transformers::openai_responses_stream::tests::tool_call_streaming_emits_input_deltas ... ok
[INFO] [stdout] test types::tests::openai_responses_route_kind_is_distinct ... ok
[INFO] [stdout] test upstream::token::tests::debug_redacts_token_snapshot ... ok
[INFO] [stdout] test types::tests::model_name_round_trip ... ok
[INFO] [stdout] test types::tests::openai_responses_flavor_is_distinct ... ok
[INFO] [stdout] test upstream::token::tests::debug_redacts_token_refresher ... ok
[INFO] [stdout] test observability::body_log::tests::caps_oversized_output_with_truncation_suffix ... ok
[INFO] [stdout] test transformers::openai_responses_stream::tests::tool_call_pending_args_cap_after_added ... ok
[INFO] [stdout] test transformers::openai_responses_stream::tests::accumulated_text_cap_triggers_truncated_status ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 144 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/aicore_proxy-e4eec000a2c9891e)
[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]      Running tests/access_log.rs (/opt/rustwide/target/debug/deps/access_log-cc8e5d282d400b8b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/anthropic_messages.rs (/opt/rustwide/target/debug/deps/anthropic_messages-28b473e457d97b74)
[INFO] [stdout] test one_access_log_per_openai_request ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test anthropic_streaming_reframes_sse ... ok
[INFO] [stdout] test anthropic_non_streaming_passes_through ... ok
[INFO] [stdout] test anthropic_streaming_uses_invoke_with_response_stream_path ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/auth_layer.rs (/opt/rustwide/target/debug/deps/auth_layer-f64c9b745069e7d4)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test precedence_uses_highest_present_header_only ... ok
[INFO] [stdout] test accepts_x_api_key ... ok
[INFO] [stdout] test accepts_anthropic_auth_token ... ok
[INFO] [stdout] test rejects_missing_credentials ... ok
[INFO] [stdout] test accepts_authorization_bearer ... ok
[INFO] [stdout] test rejects_invalid_key ... ok
[INFO] [stderr]      Running tests/config_load.rs (/opt/rustwide/target/debug/deps/config_load-9786716a1f9249f1)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test parses_api_key_pool ... ok
[INFO] [stdout] test loads_from_individual_env_vars ... ok
[INFO] [stdout] test binding_secret_overrides_individual_env_vars ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_smoke.rs (/opt/rustwide/target/debug/deps/e2e_smoke-141a7c1c1e5413d8)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test full_stack_smoke ... ok
[INFO] [stderr]      Running tests/error_envelope.rs (/opt/rustwide/target/debug/deps/error_envelope-83d7b51389d9b1c8)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stderr]      Running tests/models_endpoint.rs (/opt/rustwide/target/debug/deps/models_endpoint-854cc22ef67ed21b)
[INFO] [stdout] test anthropic_flavor_renders_anthropic_envelope ... ok
[INFO] [stdout] test auth_failure_renders_401_with_correct_envelope ... ok
[INFO] [stdout] test openai_flavor_renders_openai_envelope ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test models_lists_catalog_entries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/openai_chat.rs (/opt/rustwide/target/debug/deps/openai_chat-4265297467f1ea2e)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test openai_non_streaming_passes_through ... ok
[INFO] [stdout] test openai_streaming_forwards_chunks ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pipeline_errors.rs (/opt/rustwide/target/debug/deps/pipeline_errors-4275960a479949ed)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test case_1_unknown_model_returns_404 ... ok
[INFO] [stdout] test case_5_400_no_retry_passthrough ... ok
[INFO] [stdout] test case_4_429_then_success_on_retry ... ok
[INFO] [stdout] test case_6_mid_stream_disconnect_no_retry ... ok
[INFO] [stdout] test case_3_500_retried_until_budget_then_surfaced ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.24s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/responses.rs (/opt/rustwide/target/debug/deps/responses-8b0313d1634e71a0)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test streaming_text_round_trip ... ok
[INFO] [stdout] test non_streaming_text_round_trip ... ok
[INFO] [stderr]      Running tests/token_refresh.rs (/opt/rustwide/target/debug/deps/token_refresh-96dafd9159304e02)
[INFO] [stdout] test unauthorized_without_api_key ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test bootstrap_propagates_4xx_as_error ... ok
[INFO] [stdout] test bootstrap_fetches_initial_token ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests aicore_proxy
[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] running `Command { std: "docker" "inspect" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90", kill_on_drop: false }`
[INFO] [stdout] b144210bae9278c6375ebaf6f2d829ef5c446355aee0b72c20d8e93c72be8e90
