[INFO] cloning repository https://github.com/98624017/gemini-worker-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/98624017/gemini-worker-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F98624017%2Fgemini-worker-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F98624017%2Fgemini-worker-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7629c80a9aca46160763bc1a3b6d0a99559f2092
[INFO] testing 98624017/gemini-worker-rust against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F98624017%2Fgemini-worker-rust" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/98624017/gemini-worker-rust
[INFO] finished tweaking git repo https://github.com/98624017/gemini-worker-rust
[INFO] tweaked toml for git repo https://github.com/98624017/gemini-worker-rust written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/98624017/gemini-worker-rust on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/98624017/gemini-worker-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded matchers v0.2.0
[INFO] [stderr]   Downloaded zerofrom v0.1.7
[INFO] [stderr]   Downloaded yoke v0.8.2
[INFO] [stderr]   Downloaded tracing-log v0.2.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.67
[INFO] [stderr]   Downloaded num-conv v0.2.1
[INFO] [stderr]   Downloaded tikv-jemallocator v0.6.1
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.117
[INFO] [stderr]   Downloaded time-core v0.1.8
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.117
[INFO] [stderr]   Downloaded time-macros v0.2.27
[INFO] [stderr]   Downloaded quinn-udp v0.5.14
[INFO] [stderr]   Downloaded serde_path_to_error v0.1.20
[INFO] [stderr]   Downloaded jpeg-encoder v0.7.0
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.23
[INFO] [stderr]   Downloaded hyper-rustls v0.27.7
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.117
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.117
[INFO] [stderr]   Downloaded quinn v0.11.9
[INFO] [stderr]   Downloaded cc v1.2.59
[INFO] [stderr]   Downloaded rustls-webpki v0.103.10
[INFO] [stderr]   Downloaded js-sys v0.3.94
[INFO] [stderr]   Downloaded tower-http v0.6.8
[INFO] [stderr]   Downloaded iri-string v0.7.12
[INFO] [stderr]   Downloaded hyper v1.9.0
[INFO] [stderr]   Downloaded axum v0.8.8
[INFO] [stderr]   Downloaded quinn-proto v0.11.14
[INFO] [stderr]   Downloaded time v0.3.47
[INFO] [stderr]   Downloaded webpki-roots v1.0.6
[INFO] [stderr]   Downloaded rustls v0.23.37
[INFO] [stderr]   Downloaded web-sys v0.3.94
[INFO] [stderr]   Downloaded tokio v1.51.0
[INFO] [stderr]   Downloaded tikv-jemalloc-sys v0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
[INFO] [stderr]   Downloaded pxfm v0.1.28
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96
[INFO] running `Command { std: "docker" "start" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96", 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" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96", 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" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling tikv-jemalloc-sys v0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling pxfm v0.1.28
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tokio v1.51.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling zune-core v0.5.1
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling zune-jpeg v0.5.15
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling image-webp v0.2.4
[INFO] [stderr]    Compiling png v0.18.1
[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 cpufeatures v0.2.17
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling jpeg-encoder v0.7.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling tikv-jemallocator v0.6.1
[INFO] [stderr]    Compiling rust-sync-proxy v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 04s
[INFO] running `Command { std: "docker" "inspect" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96", 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" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rust-sync-proxy v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 53s
[INFO] running `Command { std: "docker" "inspect" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96", 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" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_sync_proxy-e28a1330f5cc0224)
[INFO] [stdout] 
[INFO] [stdout] running 57 tests
[INFO] [stdout] test cache::tests::fetch_returns_prepublished_result_without_waiting_for_notify ... ok
[INFO] [stdout] test http::router::tests::aiapidev_openai_image_poll_interval_is_10_seconds ... ok
[INFO] [stdout] test http::router::tests::aiapidev_create_invalid_json_returns_structured_proxy_error ... ok
[INFO] [stdout] test http::router::tests::aiapidev_flow_polls_task_and_rewrites_result ... ok
[INFO] [stdout] test http::router::tests::aiapidev_openai_image_flow_polls_task_and_returns_openai_response ... ok
[INFO] [stdout] test http::router::tests::aiapidev_gemini_poll_blockable_502_is_cached_without_retry ... ok
[INFO] [stdout] test cache::tests::total_timeout_covers_optimization_stage ... ok
[INFO] [stdout] test http::router::tests::aiapidev_openai_image_poll_blockable_502_is_cached_without_retry ... ok
[INFO] [stdout] test http::router::tests::aiapidev_poll_timeout_is_450_seconds ... ok
[INFO] [stdout] test http::router::tests::build_openai_image_output_url_keeps_legacy_url_when_standard_proxy_flag_is_disabled ... ok
[INFO] [stdout] test http::router::tests::build_openai_image_output_url_keeps_r2_url_without_proxy_prefix_by_default ... ok
[INFO] [stdout] test http::router::tests::classify_reqwest_connect_error_detail_detects_common_root_causes ... ok
[INFO] [stdout] test http::router::tests::extract_openai_image_items_accepts_data_url_entries ... ok
[INFO] [stdout] test http::router::tests::extract_openai_image_items_accepts_url_entries ... ok
[INFO] [stdout] test http::router::tests::extract_openai_image_items_prefers_b64_json_over_url ... ok
[INFO] [stdout] test http::router::tests::extract_openai_image_items_rejects_entries_without_b64_json_or_url ... ok
[INFO] [stdout] test http::router::tests::build_openai_image_output_url_can_proxy_r2_when_standard_proxy_flag_is_disabled ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_grsai_accepts_sse_final_payload ... ok
[INFO] [stdout] test http::router::tests::build_openai_image_output_url_can_proxy_r2_url_when_enabled ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_grsai_auth_failure_preserves_401_status ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_grsai_business_error_keeps_rust_error_shape ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_grsai_failed_status_uses_business_error_kind ... ok
[INFO] [stdout] test http::router::tests::aiapidev_poll_invalid_json_returns_structured_proxy_error ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_grsai_rate_limit_preserves_429_status ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_uses_grsai_sync_provider_for_output_url ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_rewrites_aiapidev_base64_inline_data_before_create_call ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_uses_grsai_sync_provider_for_base64 ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_grsai_auth_failure_preserves_401_status ... ok
[INFO] [stdout] test http::router::tests::forward_gemini_request_grsai_succeeded_without_results_uses_missing_image_url ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_grsai_rate_limit_preserves_429_status ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_grsai_missing_image_url_returns_current_proxy_error_shape ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_keeps_happyapi_generations_when_images_missing ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_rejects_more_than_six_reference_images ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_uses_grsai_sync_provider ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_uses_aiapidev_async_flow ... ok
[INFO] [stdout] test http::router::tests::model_action_admin_success_sanitizes_request_body_once ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_reuses_request_image_cache_for_happyapi_edits ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_uses_configured_edits_domain_when_images_alias_exists ... ok
[INFO] [stdout] test http::router::tests::forward_openai_image_request_uses_happyapi_edits_multipart_when_images_exist ... ok
[INFO] [stdout] test http::router::tests::proxy_error_json_contains_structured_fields ... ok
[INFO] [stdout] test http::router::tests::request_cache_tracking_records_per_request_cache_hits ... ok
[INFO] [stdout] test response_materialize::tests::optimize_inline_data_images_normalizes_mime_without_reencoding_unchanged_data ... ok
[INFO] [stdout] test http::router::tests::model_action_failure_preserves_request_cache_hits_in_admin_log ... ok
[INFO] [stdout] test upload::tests::put_object_stream_starts_request_before_reader_finishes ... ok
[INFO] [stdout] test upload::tests::uploader_r2_base64_path_streams_decoded_bytes ... ok
[INFO] [stdout] test upstream_block_cache::tests::cache_evicts_least_recently_used_entry ... ok
[INFO] [stdout] test upstream_block_cache::tests::cache_prunes_expired_entries_before_inserting_new_entry ... ok
[INFO] [stdout] test image_io::tests::large_png_can_be_reencoded_to_jpeg_when_compression_enabled ... ok
[INFO] [stdout] test response_materialize::tests::optimize_inline_data_images_reencodes_large_png_base64_entries ... ok
[INFO] [stdout] test upstream_block_cache::tests::key_ignores_object_order_and_preserves_array_order ... ok
[INFO] [stdout] test upstream_block_cache::tests::classifier_requires_400_or_502_and_known_keyword ... ok
[INFO] [stdout] test image_io::tests::higher_jpeg_quality_produces_larger_reencoded_output ... ok
[INFO] [stdout] test upstream_block_cache::tests::cache_returns_hits_until_ttl_expires ... ok
[INFO] [stdout] test http::router::tests::aiapidev_poll_retryable_failure_recovers_before_failure_limit ... ok
[INFO] [stdout] test cache::tests::fetch_once_keeps_png_optimization_inside_total_timeout ... ok
[INFO] [stdout] test http::router::tests::aiapidev_poll_returns_last_retryable_response_after_five_failures ... ok
[INFO] [stdout] test http::router::tests::aiapidev_poll_failure_preserves_upstream_status_and_body ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.10s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_sync_proxy-156b1cdd6139e69c)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/admin_test.rs (/opt/rustwide/target/debug/deps/admin_test-5e0da6baef0792f5)
[INFO] [stdout] test tests::server_stops_after_shutdown_future_resolves ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test admin_log_buffer_keeps_latest_hundred_entries ... ok
[INFO] [stdout] test admin_log_does_not_collect_generic_url_fields_as_images ... ok
[INFO] [stdout] test admin_log_omits_base64_payloads ... ok
[INFO] [stdout] test admin_log_collects_openai_image_response_urls ... ok
[INFO] [stdout] test admin_log_collects_proxy_and_http_image_urls ... ok
[INFO] [stdout] test admin_log_collects_typed_image_url_items ... ok
[INFO] [stdout] test admin_logs_capture_structured_proxy_error_fields ... ok
[INFO] [stdout] test admin_logs_page_contains_chart_collapse_and_view_switch ... ok
[INFO] [stdout] test admin_logs_and_stats_include_stage_duration_fields ... ok
[INFO] [stdout] test admin_logs_capture_upstream_error_fields ... ok
[INFO] [stdout] test admin_logs_page_contains_album_jump_back_logic ... ok
[INFO] [stdout] test admin_logs_capture_structured_upstream_connect_failures ... ok
[INFO] [stdout] test admin_logs_page_album_previews_safe_images_by_default ... ok
[INFO] [stdout] test admin_logs_page_contains_album_rendering_helpers ... ok
[INFO] [stdout] test admin_logs_page_contains_chartjs_and_theme_toggle ... ok
[INFO] [stdout] test admin_logs_page_preserves_system_theme_without_override ... ok
[INFO] [stdout] test admin_rejects_invalid_basic_auth_variants ... ok
[INFO] [stdout] test admin_routes_return_not_found_when_admin_is_disabled ... ok
[INFO] [stdout] test admin_logs_page_persists_view_mode_and_chart_collapse_state ... ok
[INFO] [stdout] test admin_stats_include_spill_metrics ... ok
[INFO] [stdout] test extract_finish_reason_returns_first_candidate_reason ... ok
[INFO] [stdout] test admin_stats_track_model_requests ... ok
[INFO] [stdout] test admin_routes_require_basic_auth_and_return_logs ... ok
[INFO] [stdout] test maybe_sanitize_json_for_log_skips_when_admin_is_disabled ... ok
[INFO] [stdout] test admin_logs_page_contains_error_detail_section ... ok
[INFO] [stdout] test admin_logs_page_lazy_renders_log_details ... ok
[INFO] [stdout] test admin_logs_page_uses_shared_filtered_items_for_all_views ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/allocator_test.rs (/opt/rustwide/target/debug/deps/allocator_test-02817c1ad3df1b35)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test jemalloc_default_decay_matches_approved_value ... ok
[INFO] [stdout] test compiled_allocator_matches_platform_policy ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/blob_runtime_test.rs (/opt/rustwide/target/debug/deps/blob_runtime_test-7e09683168ac68d9)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test blob_runtime_can_store_external_shared_bytes_without_spill ... ok
[INFO] [stdout] test blob_runtime_can_store_shared_bytes_without_vec_copy ... ok
[INFO] [stdout] test blob_runtime_keeps_small_blob_inline ... ok
[INFO] [stdout] test blob_runtime_spills_large_blob_to_disk ... ok
[INFO] [stdout] test blob_runtime_records_spill_count_and_bytes ... ok
[INFO] [stderr]      Running tests/config_budget_test.rs (/opt/rustwide/target/debug/deps/config_budget_test-6179f598b052c456)
[INFO] [stdout] test blob_runtime_does_not_record_spill_when_spill_write_fails ... ok
[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 blob_budget_defaults_match_2gib_profile ... ok
[INFO] [stdout] test blob_budget_defaults_match_4gib_profile ... ok
[INFO] [stderr]      Running tests/config_test.rs (/opt/rustwide/target/debug/deps/config_test-7365706f730a6bcb)
[INFO] [stdout] test blob_budget_defaults_match_8gib_profile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test defaults_match_runtime_expectations ... ok
[INFO] [stdout] test invalid_port_falls_back_to_default_like_go ... ok
[INFO] [stdout] test disabled_values_follow_go_semantics ... ok
[INFO] [stdout] test image_compression_jpeg_quality_can_be_overridden_from_env ... ok
[INFO] [stdout] test image_compression_flag_can_be_enabled_from_env ... ok
[INFO] [stdout] test background_fetch_wait_timeout_defaults_to_image_fetch_timeout ... ok
[INFO] [stdout] test openai_image_b64_json_upstream_domains_can_be_loaded_from_env ... ok
[INFO] [stdout] test openai_image_edits_upstream_domains_can_be_loaded_from_env ... ok
[INFO] [stdout] test openai_image_edits_upstream_domains_match_exact_and_suffix_hosts ... ok
[INFO] [stdout] test openai_image_b64_json_upstream_domains_match_exact_and_suffix_hosts ... ok
[INFO] [stdout] test proxy_r2_output_urls_can_be_disabled_from_env ... ok
[INFO] [stdout] test proxy_r2_output_urls_can_be_enabled_from_env ... ok
[INFO] [stdout] test external_image_proxy_prefix_still_overrides_public_base_url ... ok
[INFO] [stdout] test openai_image_upstream_url_proxy_prefix_can_be_loaded_from_env ... ok
[INFO] [stdout] test legacy_upload_env_vars_do_not_change_runtime_config ... ok
[INFO] [stdout] test proxy_r2_output_urls_defaults_to_disabled_when_standard_proxy_flag_is_disabled ... ok
[INFO] [stdout] test public_base_url_can_fallback_to_legacy_proxy_prefix ... ok
[INFO] [stdout] test proxy_r2_output_urls_defaults_to_enabled_when_public_base_url_exists ... ok
[INFO] [stdout] test invalid_r2_endpoint_is_rejected_during_config_load ... ok
[INFO] [stdout] test proxy_r2_output_urls_defaults_to_enabled_when_external_proxy_prefix_exists ... ok
[INFO] [stdout] test proxy_r2_output_urls_explicit_zero_overrides_public_base_url_default ... ok
[INFO] [stdout] test test_config_uses_runtime_defaults_except_test_api_key ... ok
[INFO] [stdout] test upstream_block_cache_can_be_disabled_from_env ... ok
[INFO] [stdout] test upstream_http_timeouts_can_be_overridden_from_env ... ok
[INFO] [stdout] test request_image_webp_optimization_flag_can_be_enabled_from_env ... ok
[INFO] [stdout] test upstream_block_cache_can_be_configured_from_env ... ok
[INFO] [stdout] test upstream_block_cache_defaults_to_five_minutes_and_1024_entries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/grsai_test.rs (/opt/rustwide/target/debug/deps/grsai_test-c8f51e88c0cb4c21)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test openai_model_mapping_defaults_only_when_empty ... ok
[INFO] [stderr]      Running tests/http_forwarding_test.rs (/opt/rustwide/target/debug/deps/http_forwarding_test-9e2c3557c0218fe3)
[INFO] [stdout] test gemini_model_mapping_matches_go_provider ... ok
[INFO] [stdout] test openai_params_accept_aliases_and_defaults ... ok
[INFO] [stdout] test parses_sse_success_response_from_last_data_line ... ok
[INFO] [stdout] test gemini_params_extract_user_prompt_urls_and_image_config ... ok
[INFO] [stdout] test parses_business_error_as_grsai_error ... ok
[INFO] [stdout] test parses_json_success_response ... ok
[INFO] [stdout] test parse_error_when_no_data_lines_exist ... ok
[INFO] [stdout] test request_body_matches_go_grsai_provider ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test generate_content_invalid_json_is_recorded_once_in_admin_logs ... ok
[INFO] [stdout] test image_generations_invalid_json_returns_bad_request ... ok
[INFO] [stdout] test image_generations_accepts_upstream_url_payload_without_uploading ... ok
[INFO] [stdout] test image_generations_can_wrap_upstream_url_payload_with_dedicated_proxy_prefix ... ok
[INFO] [stdout] test dual_upstream_header_routes_4k_requests_to_second_standard_upstream ... ok
[INFO] [stdout] test generate_content_reuses_cached_upstream_block_error ... ok
[INFO] [stdout] test generate_content_forwards_expected_upstream_request_and_output_url_result ... ok
[INFO] [stdout] test image_generations_materializes_upstream_data_url_payload ... ok
[INFO] [stdout] test image_generations_reuses_cached_upstream_block_error ... ok
[INFO] [stdout] test generate_content_oversized_body_returns_payload_too_large ... ok
[INFO] [stdout] test image_generations_returns_bad_gateway_when_upstream_data_is_empty ... ok
[INFO] [stdout] test image_generations_preserves_image_alias_and_returns_uploaded_urls ... ok
[INFO] [stdout] test malformed_dual_upstream_header_returns_bad_request ... ok
[INFO] [stdout] test invalid_request_json_returns_structured_proxy_error ... ok
[INFO] [stdout] test upstream_block_cache_hit_is_marked_in_admin_logs ... ok
[INFO] [stdout] test upstream_block_cache_does_not_match_different_upstream_base_url ... ok
[INFO] [stdout] test generate_content_does_not_cache_large_block_error_body ... ok
[INFO] [stdout] test upstream_block_cache_ttl_zero_disables_cache ... ok
[INFO] [stdout] test truncated_upstream_body_returns_structured_proxy_error ... ok
[INFO] [stdout] test upstream_json_error_preserves_message_and_adds_proxy_metadata ... ok
[INFO] [stdout] test upstream_block_cache_does_not_store_non_blockable_400 ... ok
[INFO] [stdout] test upstream_block_cache_does_not_match_different_request_body ... ok
[INFO] [stdout] test image_generations_oversized_body_returns_payload_too_large ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/http_smoke.rs (/opt/rustwide/target/debug/deps/http_smoke-d60efd948098536a)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test unknown_route_returns_404 ... ok
[INFO] [stdout] test generate_content_output_url_smoke_still_passes_after_blob_runtime_refactor ... ok
[INFO] [stderr]      Running tests/image_io_test.rs (/opt/rustwide/target/debug/deps/image_io_test-5c8f1e6ecdf7ca0c)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test compression_result_marks_disabled_optimization_as_unchanged ... ok
[INFO] [stdout] test compression_result_marks_non_png_as_unchanged ... ok
[INFO] [stdout] test compression_result_marks_small_png_as_unchanged ... ok
[INFO] [stdout] test compression_result_marks_png_as_unchanged_when_jpeg_is_not_smaller ... ok
[INFO] [stdout] test rejects_images_over_max_size ... ok
[INFO] [stdout] test fetch_image_rejects_stream_when_size_exceeds_limit_without_content_length ... ok
[INFO] [stdout] test fetch_image_rejects_when_content_length_exceeds_limit ... ok
[INFO] [stdout] test png_to_webp_failure_falls_back_to_original_bytes ... ok
[INFO] [stdout] test png_to_webp_timeout_falls_back_to_original_bytes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.94s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/openai_image_test.rs (/opt/rustwide/target/debug/deps/openai_image_test-0a30b1963abfa1ea)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test sniff_image_mime_type_detects_known_formats ... ok
[INFO] [stdout] test build_aiapidev_openai_image_response_uses_fixed_usage ... ok
[INFO] [stdout] test build_openai_image_response_preserves_upstream_created_timestamp ... ok
[INFO] [stdout] test build_openai_image_response_uses_aiapidev_finished_time_when_created_missing ... ok
[INFO] [stdout] test build_openai_image_response_falls_back_created_timestamp ... ok
[INFO] [stdout] test normalize_openai_image_request_forces_b64_json_when_requested ... ok
[INFO] [stdout] test normalize_openai_image_request_supports_all_aliases_without_forcing_b64_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/provider_test.rs (/opt/rustwide/target/debug/deps/provider_test-2349bf4217d2cf9c)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stderr]      Running tests/request_cache_test.rs (/opt/rustwide/target/debug/deps/request_cache_test-9956f85a220eb7d7)
[INFO] [stdout] test grsai_provider_rejects_suffix_tricks ... ok
[INFO] [stdout] test aiapidev_provider_matches_current_host ... ok
[INFO] [stdout] test aiapidev_provider_rejects_old_hosts ... ok
[INFO] [stdout] test unknown_or_invalid_base_url_uses_transparent_provider ... ok
[INFO] [stdout] test grsai_provider_matches_root_and_subdomains ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test request_cache_does_not_retry_non_retryable_status ... ok
[INFO] [stdout] test request_cache_reuses_fetched_image_across_calls ... ok
[INFO] [stdout] test request_cache_still_populates_cache_when_background_bridge_disabled ... ok
[INFO] [stdout] test request_materialize_reuses_fetch_service_cache_between_calls ... ok
[INFO] [stdout] test request_materialize_keeps_large_cached_bytes_in_memory_without_spill ... ok
[INFO] [stdout] test request_cache_background_bridge_reuses_inflight_download ... ok
[INFO] [stdout] test response_cache_reuses_inflight_fetch_concurrently ... ok
[INFO] [stdout] test response_cache_cancellation_does_not_finish_or_populate_cache ... ok
[INFO] [stdout] test request_cache_retries_once_after_connection_drops_before_headers ... ok
[INFO] [stdout] test request_cache_keeps_large_png_when_request_webp_optimization_is_disabled ... ok
[INFO] [stdout] test request_cache_stores_large_png_as_lossless_webp_when_enabled ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.34s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/request_encode_test.rs (/opt/rustwide/target/debug/deps/request_encode_test-76d715aeed69af3a)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test request_encoder_writes_inline_data_base64_from_blob_handle ... ok
[INFO] [stdout] test request_encoder_reads_large_external_shared_blob_without_spill ... ok
[INFO] [stdout] test request_encoder_writes_spilled_blob_as_base64 ... 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/request_inline_data_flow_test.rs (/opt/rustwide/target/debug/deps/request_inline_data_flow_test-dd1f0197a5ba5dba)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test request_inline_data_urls_are_materialized_to_blob_handles ... ok
[INFO] [stdout] test request_inline_data_urls_are_rewritten_to_base64 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/request_materialize_test.rs (/opt/rustwide/target/debug/deps/request_materialize_test-59dc0c7ea3072a6c)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test request_materialize_uses_20mib_request_limit ... ok
[INFO] [stdout] test request_materialize_fetches_image_url_into_blob_handle ... ok
[INFO] [stdout] test request_materialize_fetches_unique_urls_concurrently ... ok
[INFO] [stdout] test request_materialize_rejects_images_over_request_limit ... ok
[INFO] [stdout] test request_materialize_keeps_large_png_without_webp_optimization ... ok
[INFO] [stdout] test request_materialize_converts_large_png_when_webp_optimization_enabled ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.82s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/request_rewrite_test.rs (/opt/rustwide/target/debug/deps/request_rewrite_test-9c3661c2b6107c8e)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test collects_unique_inline_data_urls_and_enforces_limit ... ok
[INFO] [stdout] test rewrites_aiapidev_request_body_base64_inline_data_to_snake_case_inline_data ... ok
[INFO] [stdout] test rewrites_aiapidev_request_body_keeps_query_for_non_matching_domain ... ok
[INFO] [stdout] test scan_inline_data_urls_allows_seven_url_refs ... ok
[INFO] [stdout] test scan_inline_data_urls_rejects_eight_url_refs ... ok
[INFO] [stdout] test rewrites_aiapidev_request_body_keeps_already_proxied_url_without_double_wrapping ... ok
[INFO] [stdout] test rewrites_aiapidev_request_body_to_file_data_and_snake_case ... ok
[INFO] [stdout] test rewrites_aiapidev_request_body_strips_query_before_external_proxy_when_domain_matches ... ok
[INFO] [stdout] test rewrites_aiapidev_request_body_url_inline_data_to_external_proxy_when_domain_matches ... ok
[INFO] [stdout] test rewrites_aiapidev_request_body_uses_public_base_url_compatible_proxy_prefix ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/response_materialize_test.rs (/opt/rustwide/target/debug/deps/response_materialize_test-8388745d4e5482e4)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test output_url_response_can_proxy_r2_public_url_when_enabled ... ok
[INFO] [stdout] test output_url_response_can_proxy_r2_even_when_standard_proxy_flag_is_disabled ... ok
[INFO] [stdout] test output_url_response_streams_large_base64_without_runtime_spill ... ok
[INFO] [stdout] test output_url_response_respects_proxy_standard_output_urls_flag ... ok
[INFO] [stdout] test output_url_response_keeps_custom_r2_public_url_without_proxy_prefix ... ok
[INFO] [stdout] test output_url_response_rewrites_uploaded_url_with_external_proxy_prefix ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/response_rewrite_test.rs (/opt/rustwide/target/debug/deps/response_rewrite_test-0a76d4043c47ba5f)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test keeps_only_largest_inline_image_per_candidate ... ok
[INFO] [stdout] test keep_largest_inline_image_preserves_text_and_url_inline_data ... ok
[INFO] [stdout] test aiapidev_task_response_url_mode_falls_back_to_public_base_url_proxy_path ... ok
[INFO] [stdout] test aiapidev_task_response_url_mode_reuses_external_proxy_prefix ... ok
[INFO] [stdout] test markdown_url_normalization_uses_external_proxy_prefix ... ok
[INFO] [stdout] test aiapidev_task_response_base64_mode_downloads_image ... ok
[INFO] [stdout] test markdown_base64_normalization_uses_fetch_service_cache ... ok
[INFO] [stdout] test aiapidev_task_response_base64_mode_allows_images_over_request_limit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/router_test.rs (/opt/rustwide/target/debug/deps/router_test-d8cdcbd758581ad2)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test proxy_image_route_is_not_exposed ... ok
[INFO] [stdout] test image_generations_route_accepts_post_only ... ok
[INFO] [stdout] test generate_content_route_accepts_post_only ... ok
[INFO] [stdout] test stream_generate_content_route_is_not_exposed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/upload_mode_test.rs (/opt/rustwide/target/debug/deps/upload_mode_test-9e7601ed6f13c7cb)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test external_proxy_prefix_wraps_uploaded_url ... ok
[INFO] [stdout] test r2_then_legacy_falls_back_to_legacy_on_r2_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/upstream_auth_test.rs (/opt/rustwide/target/debug/deps/upstream_auth_test-a229a9464167f0f4)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test aiapidev_model_path_is_mapped ... ok
[INFO] [stdout] test aiapidev_base_url_is_detected ... ok
[INFO] [stdout] test bearer_token_can_override_base_url_and_api_key ... ok
[INFO] [stdout] test malformed_dual_upstream_token_returns_error ... ok
[INFO] [stdout] test dual_upstream_token_uses_first_group_for_non_4k_requests ... ok
[INFO] [stdout] test dual_upstream_token_uses_second_group_for_4k_requests ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rust_sync_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" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96", kill_on_drop: false }`
[INFO] [stdout] b75ff0a403a5df324c95739462aaafd328213ce69fa0901fbd17c9729b3f6b96
