[INFO] cloning repository https://github.com/Iamdreaming/proxy-pool-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Iamdreaming/proxy-pool-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIamdreaming%2Fproxy-pool-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIamdreaming%2Fproxy-pool-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6935bbc90fec1c76c76a87ba5fd7ac66efce787d
[INFO] testing Iamdreaming/proxy-pool-rust against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIamdreaming%2Fproxy-pool-rust" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Iamdreaming/proxy-pool-rust
[INFO] finished tweaking git repo https://github.com/Iamdreaming/proxy-pool-rust
[INFO] tweaked toml for git repo https://github.com/Iamdreaming/proxy-pool-rust written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Iamdreaming/proxy-pool-rust on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Iamdreaming/proxy-pool-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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tonic-build v0.12.3
[INFO] [stderr]   Downloaded scraper v0.22.0
[INFO] [stderr]   Downloaded selectors v0.26.0
[INFO] [stderr]   Downloaded match_token v0.1.0
[INFO] [stderr]   Downloaded markup5ever v0.14.1
[INFO] [stderr]   Downloaded ego-tree v0.10.0
[INFO] [stderr]   Downloaded html5ever v0.29.1
[INFO] [stderr]   Downloaded rustls v0.23.41
[INFO] [stderr]   Downloaded quinn-proto v0.11.15
[INFO] [stderr]   Downloaded hyper-named-pipe v0.1.1
[INFO] [stderr]   Downloaded redis v0.27.6
[INFO] [stderr]   Downloaded bollard v0.17.1
[INFO] [stderr]   Downloaded hyperlocal v0.9.1
[INFO] [stderr]   Downloaded schemars_derive v1.2.1
[INFO] [stderr]   Downloaded serde_repr v0.1.21
[INFO] [stderr]   Downloaded serde_with v3.21.0
[INFO] [stderr]   Downloaded bollard-stubs v1.45.0-rc.26.0.1
[INFO] [stderr]   Downloaded serde_derive_internals v0.29.1
[INFO] [stderr]   Downloaded rmcp-macros v0.16.0
[INFO] [stderr]   Downloaded sse-stream v0.2.3
[INFO] [stderr]   Downloaded rand v0.10.1
[INFO] [stderr]   Downloaded rmcp v0.16.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da
[INFO] running `Command { std: "docker" "start" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da", 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" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da", 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" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling bytes v1.12.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rustls v0.23.41
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling markup5ever v0.14.1
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling dtoa v1.0.11
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling tendril v0.4.3
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling selectors v0.26.0
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling cssparser v0.34.0
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling webpki-roots v1.0.8
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling serde_with v3.21.0
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]    Compiling servo_arc v0.4.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_repr v0.1.21
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling match_token v0.1.0
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling http-range-header v0.4.2
[INFO] [stderr]    Compiling html5ever v0.29.1
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling bollard-stubs v1.45.0-rc.26.0.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling combine v4.6.7
[INFO] [stderr]    Compiling arc-swap v1.9.2
[INFO] [stderr]    Compiling ipnetwork v0.20.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling ego-tree v0.10.0
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling scraper v0.22.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling maxminddb v0.24.0
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling hyperlocal v0.9.1
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling prost-types v0.13.5
[INFO] [stderr]    Compiling petgraph v0.7.1
[INFO] [stderr]    Compiling redis v0.27.6
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling prost-build v0.13.5
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling pin-project v1.1.13
[INFO] [stderr]    Compiling chacha20 v0.10.1
[INFO] [stderr]    Compiling bollard v0.17.1
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling tonic-build v0.12.3
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling rmcp v0.16.0
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling proxy-xray v0.1.0 (/opt/rustwide/workdir/crates/proxy-xray)
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling rmcp-macros v0.16.0
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling uuid v1.23.4
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling proxy-core v0.1.0 (/opt/rustwide/workdir/crates/proxy-core)
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling sse-stream v0.2.3
[INFO] [stderr]    Compiling proxy-server v0.1.0 (/opt/rustwide/workdir/crates/proxy-server)
[INFO] [stderr]    Compiling tonic v0.12.3
[INFO] [stderr]    Compiling proxy-sub v0.1.0 (/opt/rustwide/workdir/crates/proxy-sub)
[INFO] [stderr]    Compiling proxy-gateway v0.1.0 (/opt/rustwide/workdir/crates/proxy-gateway)
[INFO] [stderr]    Compiling proxy-mcp v0.1.0 (/opt/rustwide/workdir/crates/proxy-mcp)
[INFO] [stderr]    Compiling proxy-api v0.1.0 (/opt/rustwide/workdir/crates/proxy-api)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 35s
[INFO] running `Command { std: "docker" "inspect" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da", 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" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling proxy-xray v0.1.0 (/opt/rustwide/workdir/crates/proxy-xray)
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling combine v4.6.7
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling rmcp v0.16.0
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling redis v0.27.6
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling hyperlocal v0.9.1
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling bollard v0.17.1
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling tonic v0.12.3
[INFO] [stderr]    Compiling proxy-core v0.1.0 (/opt/rustwide/workdir/crates/proxy-core)
[INFO] [stderr]    Compiling proxy-sub v0.1.0 (/opt/rustwide/workdir/crates/proxy-sub)
[INFO] [stderr]    Compiling proxy-gateway v0.1.0 (/opt/rustwide/workdir/crates/proxy-gateway)
[INFO] [stderr]    Compiling proxy-api v0.1.0 (/opt/rustwide/workdir/crates/proxy-api)
[INFO] [stderr]    Compiling proxy-mcp v0.1.0 (/opt/rustwide/workdir/crates/proxy-mcp)
[INFO] [stderr]    Compiling proxy-server v0.1.0 (/opt/rustwide/workdir/crates/proxy-server)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 04s
[INFO] running `Command { std: "docker" "inspect" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da", 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" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]    Compiling proxy-xray v0.1.0 (/opt/rustwide/workdir/crates/proxy-xray)
[INFO] [stderr]    Compiling proxy-server v0.1.0 (/opt/rustwide/workdir/crates/proxy-server)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.63s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/proxy_api-eedefae30c068fab)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test routes::tests::test_parse_delete_key_invalid_no_colon ... ok
[INFO] [stdout] test routes::tests::test_airport_checkin_response_serialization ... ok
[INFO] [stdout] test routes::tests::test_parse_delete_key_valid ... ok
[INFO] [stdout] test routes::tests::test_fetchers_response_serialization ... ok
[INFO] [stdout] test routes::tests::test_airport_checkin_status_response_serialization ... ok
[INFO] [stdout] test routes::tests::test_parse_delete_key_ipv6 ... ok
[INFO] [stdout] test routes::tests::test_route_test_response_serialization ... ok
[INFO] [stdout] test routes::tests::test_scored_proxies_response_serialization ... ok
[INFO] [stdout] test routes::tests::test_fetchers_response_serializes_quality_fields ... ok
[INFO] [stdout] test routes::tests::test_refresh_response_serialization ... ok
[INFO] [stdout] test routes::tests::test_proxy_check_matrix_result_serialization ... ok
[INFO] [stdout] test routes::tests::test_readyz_error_serialization ... ok
[INFO] [stdout] test routes::tests::test_simple_response_serialization ... ok
[INFO] [stdout] test routes::tests::test_subscription_refresh_query_deserialize ... ok
[INFO] [stdout] test routes::tests::test_subscription_sources_response_serialization ... ok
[INFO] [stdout] test routes::tests::test_subscription_sources_response_serializes_recommendation ... ok
[INFO] [stdout] test routes::tests::test_scored_proxies_response_serializes_quality_trend ... ok
[INFO] [stdout] test routes::tests::test_xray_status_snapshot_serialization ... ok
[INFO] [stdout] test routes::tests::test_route_test_query_deserialize ... ok
[INFO] [stdout] test routes::tests::test_settings_response_serialization ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/proxy_core-b4535808a4176c03)
[INFO] [stdout] test routes::tests::test_settings_update_request_deserialize ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 249 tests
[INFO] [stdout] test capability::tests::all_tags_present ... ok
[INFO] [stdout] test config::tests::auto_register_defaults_disabled ... ok
[INFO] [stdout] test capability::tests::tag_as_str_and_display_match ... ok
[INFO] [stdout] test config::tests::auto_register_partial_yaml ... ok
[INFO] [stdout] test config::tests::effective_validate_target_urls_falls_back_to_single_target ... ok
[INFO] [stdout] test config::tests::effective_validate_targets_prefers_structured_targets ... ok
[INFO] [stdout] test config::tests::fetchers_config_can_disable_public_sources ... ok
[INFO] [stdout] test config::tests::effective_validate_targets_falls_back_to_single_target ... ok
[INFO] [stdout] test config::tests::fetchers_config_defaults_enable_public_sources ... ok
[INFO] [stdout] test config::tests::effective_validate_target_urls_prefers_explicit_list ... ok
[INFO] [stdout] test config::tests::effective_validate_targets_prefers_legacy_url_list ... ok
[INFO] [stdout] test config::tests::pool_dial_budget_fields_default_when_missing_from_yaml ... ok
[INFO] [stdout] test config::tests::pool_validation_defaults_protect_home_modem_nat ... ok
[INFO] [stdout] test config::tests::free_pool_settings_ignores_legacy_max_retry ... ok
[INFO] [stdout] test config::tests::merge_redacted_settings_preserves_current_sensitive_values ... ok
[INFO] [stdout] test config::tests::target_admission_config_serde_roundtrip ... ok
[INFO] [stdout] test config::tests::redact_settings_hides_sensitive_values ... ok
[INFO] [stdout] test config::tests::test_settings_changed_sections_same ... ok
[INFO] [stdout] test config::tests::test_settings_changed_sections_different ... ok
[INFO] [stdout] test config::tests::sticky_session_settings_default_to_disabled_with_ttl ... ok
[INFO] [stdout] test config::tests::warp_health_url_default_is_neutral ... ok
[INFO] [stdout] test config::tests::test_merge_settings_partial_unknown_key ... ok
[INFO] [stdout] test config::tests::test_merge_settings_partial_subscription ... ok
[INFO] [stdout] test config::tests::test_merge_settings_partial_empty ... ok
[INFO] [stdout] test config::tests::xray_settings_validation_fields_have_safe_defaults ... ok
[INFO] [stdout] test capability::tests::tag_from_str_round_trips ... ok
[INFO] [stdout] test dedup::tests::test_dedup ... ok
[INFO] [stdout] test fetcher::base::tests::completed_report_classifies_status ... ok
[INFO] [stdout] test fetcher::base::tests::circuit_opens_after_failure_threshold ... ok
[INFO] [stdout] test fetcher::base::tests::half_open_failure_reopens_with_extended_cooldown ... ok
[INFO] [stdout] test fetcher::base::tests::manual_refresh_probes_open_circuit_before_deadline ... ok
[INFO] [stdout] test capability::tests::tag_serde_round_trips ... ok
[INFO] [stdout] test config::tests::validate_settings_rejects_invalid_auto_register ... ok
[INFO] [stdout] test fetcher::base::tests::expired_open_circuit_is_half_open_and_closes_on_success ... ok
[INFO] [stdout] test config::tests::validate_settings_rejects_invalid_xray_validation_fields ... ok
[INFO] [stdout] test config::tests::write_settings_for_edit_preserves_redacted_values ... ok
[INFO] [stdout] test fetcher::base::tests::never_run_report_has_initial_status ... ok
[INFO] [stdout] test fetcher::base::tests::open_circuit_skips_automatic_without_incrementing_failures ... ok
[INFO] [stdout] test fetcher::public_lists::tests::public_list_fetcher_ids_are_stable ... ok
[INFO] [stdout] test fetcher::tests::build_fetchers_includes_public_sources_by_default ... ok
[INFO] [stdout] test fetcher::public_lists::tests::parse_monosans_json_accepts_numeric_and_string_ports ... ok
[INFO] [stdout] test fetcher::base::tests::quality_counts_compute_survival_rate_and_serialize ... ok
[INFO] [stdout] test fetcher::public_lists::tests::parse_text_list_requires_fallback_for_plain_entries ... ok
[INFO] [stdout] test fetcher::public_lists::tests::parse_text_list_ignores_comments_and_invalid_entries ... ok
[INFO] [stdout] test fetcher::public_lists::tests::parse_text_list_accepts_plain_and_url_entries ... ok
[INFO] [stdout] test models::tests::filter_empty_when_all_none ... ok
[INFO] [stdout] test models::tests::anonymity_level_ordering ... ok
[INFO] [stdout] test models::tests::anonymity_meets_same_level ... ok
[INFO] [stdout] test models::tests::filter_not_empty_when_any_set ... ok
[INFO] [stdout] test models::tests::https_proxy_dials_over_http_scheme ... ok
[INFO] [stdout] test models::tests::quality_history_deduplicates_identical_last_sample ... ok
[INFO] [stdout] test models::tests::quality_history_keeps_latest_samples_and_summarizes_trend ... ok
[INFO] [stdout] test fetcher::tests::build_fetchers_respects_public_source_toggles ... ok
[INFO] [stdout] test models::tests::proxy_auth_fields_default_on_missing_json ... ok
[INFO] [stdout] test models::tests::proxy_deserializes_without_quality_history ... ok
[INFO] [stdout] test models::tests::anonymity_meets_higher_includes_lower ... ok
[INFO] [stdout] test models::tests::credentials_requires_both_username_and_password ... ok
[INFO] [stdout] test route_debug::tests::business_domains_match_roots_and_subdomains_only ... ok
[INFO] [stdout] test route_debug::tests::business_domain_exits_use_overseas_candidate_order ... ok
[INFO] [stdout] test route_debug::tests::apply_sticky_free_pool_noop_when_empty ... ok
[INFO] [stdout] test route_debug::tests::apply_sticky_free_pool_released_when_stale ... ok
[INFO] [stdout] test route_debug::tests::default_premium_geoip_unknown_treated_as_overseas ... ok
[INFO] [stdout] test route_debug::tests::default_premium_geoip_domestic_goes_direct ... ok
[INFO] [stdout] test route_debug::tests::apply_sticky_free_pool_new_binds_first ... ok
[INFO] [stdout] test route_debug::tests::apply_sticky_free_pool_refresh_keeps_binding ... ok
[INFO] [stdout] test route_debug::tests::direct_reachable_domain_wins_before_default_and_geoip_fallback ... ok
[INFO] [stdout] test route_debug::tests::direct_reachable_domains_match_roots_and_subdomains_only ... ok
[INFO] [stdout] test route_debug::tests::domestic_friendly_default_direct_only_not_rewritten_by_geoip_filter ... ok
[INFO] [stdout] test route_debug::tests::exit_override_replaces_tier_table_in_plan ... ok
[INFO] [stdout] test route_debug::tests::gateway_cooldown_blocks_process_or_redis_true ... ok
[INFO] [stdout] test route_debug::tests::explicit_route_rule_wins_over_business_domain_fallback ... ok
[INFO] [stdout] test route_debug::tests::gateway_cooldown_key_formats_stable ... ok
[INFO] [stdout] test route_debug::tests::gateway_metrics_render_all_label_dimensions ... ok
[INFO] [stdout] test route_debug::tests::geoip_candidate_orders_match_runtime_contract ... ok
[INFO] [stdout] test route_debug::tests::gateway_metrics_fixed_series_are_closed_and_complete ... ok
[INFO] [stdout] test route_debug::tests::gateway_cooldown_blocks_redis_error_fail_open ... ok
[INFO] [stdout] test route_debug::tests::geoip_unknown_routes_as_overseas_for_gateway_planning ... ok
[INFO] [stdout] test route_debug::tests::non_default_route_rule_not_subject_to_default_geoip_reason ... ok
[INFO] [stdout] test route_debug::tests::known_group_candidate_orders_match_runtime_contract ... ok
[INFO] [stdout] test route_debug::tests::pool_proxy_cooldown_active_only_before_deadline ... ok
[INFO] [stdout] test route_debug::tests::general_fallback_reaches_no_proxy ... ok
[INFO] [stdout] test route_debug::tests::route_decision_serializes_stable_exit_names ... ok
[INFO] [stdout] test route_debug::tests::router_default_does_not_mask_business_domain ... ok
[INFO] [stdout] test route_debug::tests::overseas_stable_default_allows_geoip_refine_gate ... ok
[INFO] [stdout] test route_debug::tests::default_premium_geoip_overseas_keeps_group_exits ... ok
[INFO] [stdout] test route_debug::tests::exits_for_tier_tables_match_d6 ... ok
[INFO] [stdout] test route_debug::tests::sticky_reorder_empty_keeps_empty ... ok
[INFO] [stdout] test route_debug::tests::routes_example_yaml_is_overseas_stable ... ok
[INFO] [stdout] test route_debug::tests::sticky_reorder_miss_keeps_order ... ok
[INFO] [stdout] test route_debug::tests::select_sticky_pins_client_to_same_proxy_with_redis ... ok
[INFO] [stdout] test route_debug::tests::record_upstream_attempt_sticky_failure_releases_lease_with_redis ... ok
[INFO] [stdout] test route_debug::tests::select_sticky_direct_exit_does_not_write_lease_with_redis ... ok
[INFO] [stdout] test route_debug::tests::select_sticky_disabled_does_not_write_lease_with_redis ... ok
[INFO] [stdout] test route_debug::tests::xray_route_eligibility_rejects_circuit_open ... ok
[INFO] [stdout] test route_debug::tests::xray_selection_empty_when_only_stale_or_open ... ok
[INFO] [stdout] test route_debug::tests::xray_validation_evidence_accepts_fresh_quality_history_success ... ok
[INFO] [stdout] test route_debug::tests::sticky_reorder_hit_moves_bound_to_front ... ok
[INFO] [stdout] test config::tests::write_settings_for_edit_rejects_invalid_without_overwriting ... ok
[INFO] [stdout] test route_debug::tests::xray_selection_prefers_lowest_latency_among_eligible ... ok
[INFO] [stdout] test models::tests::anonymity_from_str_loose ... ok
[INFO] [stdout] test route_debug::tests::xray_cooldown_active_only_before_deadline ... ok
[INFO] [stdout] test route_debug::tests::xray_validation_evidence_rejects_stale_success ... ok
[INFO] [stdout] test route_debug::tests::xray_validation_evidence_requires_successful_check ... ok
[INFO] [stdout] test router::tests::default_tier_mapping_matches_r3 ... ok
[INFO] [stdout] test router::tests::legacy_yaml_loads_with_default_tiers ... ok
[INFO] [stdout] test router::tests::quality_tier_serde_snake_case ... ok
[INFO] [stdout] test route_debug::tests::sticky_reorder_no_bound_keeps_order ... ok
[INFO] [stdout] test router::tests::reject_empty_exits_override ... ok
[INFO] [stdout] test route_debug::tests::tiered_route_plans_follow_quality_tables ... ok
[INFO] [stdout] test router::tests::reject_premium_with_free_pool_override ... ok
[INFO] [stdout] test router::tests::extended_yaml_parses_tier_and_domains ... ok
[INFO] [stdout] test router::tests::example_routes_yaml_loads_with_expected_tiers ... ok
[INFO] [stdout] test router::tests::extended_yaml_exit_override_stored ... ok
[INFO] [stdout] test router::tests::test_router_match ... ok
[INFO] [stdout] test router::tests::test_router_match_route_includes_rule ... ok
[INFO] [stdout] test router::tests::reject_unknown_exit_name ... ok
[INFO] [stdout] test scheduler::tests::automatic_refresh_skips_low_survival_rate_fetcher ... ok
[INFO] [stdout] test scheduler::tests::applies_source_quality_counts_to_matching_reports ... ok
[INFO] [stdout] test scheduler::tests::select_revalidate_batch_budget_is_shared_across_protocols ... ok
[INFO] [stdout] test scheduler::tests::select_revalidate_batch_applies_global_budget ... ok
[INFO] [stdout] test scheduler::tests::automatic_refresh_skips_open_fetcher_but_manual_refresh_probes ... ok
[INFO] [stdout] test scheduler::tests::revalidate_protocols_include_socks4 ... ok
[INFO] [stdout] test scheduler::tests::select_revalidate_batch_skips_circuit_open ... ok
[INFO] [stdout] test scheduler::tests::select_revalidate_batch_budget_zero_is_unlimited ... ok
[INFO] [stdout] test scheduler::tests::select_revalidate_batch_includes_half_open ... ok
[INFO] [stdout] test scheduler::tests::test_scheduler_result_serialize ... ok
[INFO] [stdout] test scheduler::tests::test_scheduler_result_default ... ok
[INFO] [stdout] test source_origin::tests::test_degradation_airport ... ok
[INFO] [stdout] test source_origin::tests::test_degradation_github ... ok
[INFO] [stdout] test source_origin::tests::test_degradation_permanent_always_none ... ok
[INFO] [stdout] test source_origin::tests::test_display_matches_serde ... ok
[INFO] [stdout] test source_origin::tests::test_degradation_telegram ... ok
[INFO] [stdout] test scheduler::tests::select_revalidate_batch_prefers_oldest_last_check ... ok
[INFO] [stdout] test source_origin::tests::test_display_roundtrip ... ok
[INFO] [stdout] test source_origin::tests::test_expiry_days ... ok
[INFO] [stdout] test router::tests::reject_unknown_tier ... ok
[INFO] [stdout] test source_origin::tests::test_serde_roundtrip ... ok
[INFO] [stdout] test scheduler::tests::test_scheduler_handle_closed_channel ... ok
[INFO] [stdout] test source_origin::tests::test_permanent_origins_never_expire ... ok
[INFO] [stdout] test scheduler::tests::cap_admission_batch_budget_zero_is_unlimited ... ok
[INFO] [stdout] test scheduler::tests::cap_admission_batch_truncates_to_budget ... ok
[INFO] [stdout] test status::tests::parse_bool_env_accepts_truthy_values ... ok
[INFO] [stdout] test status::tests::dependency_status_error_includes_message ... ok
[INFO] [stdout] test status::tests::pool_tier_from_status_covers_all_combinations ... ok
[INFO] [stdout] test status::tests::failure_reason_normalization_is_bounded ... ok
[INFO] [stdout] test status::tests::pool_tier_serializes_to_snake_case ... ok
[INFO] [stdout] test status::tests::quality_status_aggregates_buckets_stale_retention_and_failures ... ok
[INFO] [stdout] test status::tests::quality_status_empty_pool_is_deterministic ... ok
[INFO] [stdout] test scheduler::tests::test_scheduler_handle_refresh ... ok
[INFO] [stdout] test status::tests::release_metadata_reads_update_env ... ok
[INFO] [stdout] test status::tests::release_metadata_uses_defaults_without_runtime_env ... ok
[INFO] [stdout] test status::tests::metrics_label_allowlist_is_closed ... ok
[INFO] [stdout] test status::tests::metrics_failure_reason_render_has_no_high_cardinality_substrings ... ok
[INFO] [stdout] test status::tests::service_status_serializes_required_sections ... ok
[INFO] [stdout] test status::tests::split_image_ref_handles_registry_ports_and_missing_tags ... ok
[INFO] [stdout] test store::tests::carry_forward_history_preserves_stats_on_fresh_readd ... ok
[INFO] [stdout] test store::tests::anonymity_filter_anonymous_includes_elite ... ok
[INFO] [stdout] test store::tests::anonymity_filter_elite_excludes_anonymous ... ok
[INFO] [stdout] test store::tests::carry_forward_history_keeps_incoming_credentials ... ok
[INFO] [stdout] test store::tests::alive_excludes_circuit_open ... ok
[INFO] [stdout] test status::tests::pool_tier_default_is_unstable ... ok
[INFO] [stdout] test status::tests::metrics_include_pool_dependency_warp_and_xray_values ... ok
[INFO] [stdout] test store::tests::carry_forward_history_keeps_validated_incoming_stats ... ok
[INFO] [stdout] test store::tests::circuit_recovers_after_window_on_add ... ok
[INFO] [stdout] test store::tests::count_xray_active_reads_persisted_active_nodes ... ok
[INFO] [stdout] test store::tests::country_filter_exact_match ... ok
[INFO] [stdout] test store::tests::combined_country_and_alive ... ok
[INFO] [stdout] test store::tests::explain_score_includes_component_contributions ... ok
[INFO] [stdout] test store::tests::cleanup_low_score_picks_lowest_when_pool_exceeds_limit ... ok
[INFO] [stdout] test store::tests::explain_score_marks_below_min_score ... ok
[INFO] [stdout] test store::tests::latency_norm_piecewise_excellent_tier ... ok
[INFO] [stdout] test store::tests::latency_norm_piecewise_fair_tier ... ok
[INFO] [stdout] test store::tests::gateway_cooldown_redis_keys_are_namespaced ... ok
[INFO] [stdout] test store::tests::latency_norm_piecewise_dead ... ok
[INFO] [stdout] test store::tests::latency_norm_piecewise_good_tier ... ok
[INFO] [stdout] test store::tests::latency_norm_piecewise_poor_tier ... ok
[INFO] [stdout] test store::tests::latency_norm_piecewise_strictly_decreasing ... ok
[INFO] [stdout] test store::tests::maybe_reset_circuit_keeps_active_trip ... ok
[INFO] [stdout] test store::tests::maybe_reset_circuit_clears_expired_trip ... ok
[INFO] [stdout] test store::tests::maybe_reset_circuit_noop_when_closed ... ok
[INFO] [stdout] test store::tests::min_score_filter ... ok
[INFO] [stdout] test store::tests::score_explanation_serializes_retention ... ok
[INFO] [stdout] test store::tests::overseas_filter ... ok
[INFO] [stdout] test store::tests::record_failure_sample_adds_failure_trend ... ok
[INFO] [stdout] test store::tests::record_success_sample_uses_last_check_and_latency ... ok
[INFO] [stdout] test store::tests::score_ordering_by_latency ... ok
[INFO] [stdout] test store::tests::score_untested_proxy_is_neutral ... ok
[INFO] [stdout] test store::tests::sticky_lease_key_is_namespaced ... ok
[INFO] [stdout] test store::tests::sticky_lease_delete ... ok
[INFO] [stdout] test store::tests::selectable_count_excludes_circuit_low_score_and_encrypted ... ok
[INFO] [stdout] test store::tests::empty_filter_returns_all ... ok
[INFO] [stdout] test store::tests::max_latency_excludes_slow_and_unknown ... ok
[INFO] [stdout] test store::tests::top_candidates_only_draws_from_top_slice ... ok
[INFO] [stdout] test store::tests::top_candidates_keeps_at_least_limit ... ok
[INFO] [stdout] test store::tests::score_fast_elite_proxy ... ok
[INFO] [stdout] test store::tests::source_filter_exact_match ... ok
[INFO] [stdout] test store::tests::explain_score_marks_hard_failure_before_min_score ... ok
[INFO] [stdout] test store::tests::sticky_lease_set_get_roundtrip ... ok
[INFO] [stdout] test store::tests::weighted_random_choices_zero_limit_returns_empty ... ok
[INFO] [stdout] test validator::tests::detect_anonymity_uses_observed_ip ... ok
[INFO] [stdout] test validator::tests::matrix_targets_reject_invalid_entries ... ok
[INFO] [stdout] test validator::tests::parse_observed_metadata_supports_cloudflare_trace_and_httpbin_json ... ok
[INFO] [stdout] test validator::tests::proxy_check_failure_serializes_error_type ... ok
[INFO] [stdout] test validator::tests::proxy_check_matrix_request_deserializes_target_shapes ... ok
[INFO] [stdout] test validator::tests::proxy_check_matrix_result_summarizes_checks ... ok
[INFO] [stdout] test validator::tests::quorum_admission_accepts_any_passing_target ... ok
[INFO] [stdout] test validator::tests::matrix_request_proxy_validates_identity ... ok
[INFO] [stdout] test validator::tests::matrix_targets_accept_legacy_and_structured_entries ... ok
[INFO] [stdout] test validator::tests::strict_admission_requires_all_targets ... ok
[INFO] [stdout] test validator::tests::proxy_check_success_carries_validated_proxy ... ok
[INFO] [stdout] test validator::tests::matrix_targets_default_when_not_supplied ... ok
[INFO] [stdout] test validator::tests::target_host_returns_none_for_invalid_url ... ok
[INFO] [stdout] test validator::tests::validator_default_status_accepts_only_below_400 ... ok
[INFO] [stdout] test store::tests::weighted_random_choices_respects_limit_and_no_replacement ... ok
[INFO] [stdout] test warp::account::tests::load_missing_file_returns_none ... ok
[INFO] [stdout] test validator::tests::validator_expected_statuses_override_default_success_window ... ok
[INFO] [stdout] test validator::tests::strict_target_admission_accepts_only_when_all_targets_pass ... ok
[INFO] [stdout] test validator::tests::strict_target_admission_rejects_when_any_target_fails ... ok
[INFO] [stdout] test validator::tests::validation_target_builders_keep_expected_status_contract ... ok
[INFO] [stdout] test warp::config_gen::tests::rejects_bad_reserved_len ... ok
[INFO] [stdout] test warp::config_gen::tests::dns_uses_new_type_server_schema ... ok
[INFO] [stdout] test warp::config_gen::tests::generates_valid_json_with_all_fields ... ok
[INFO] [stdout] test warp::account::tests::save_then_load_round_trips ... ok
[INFO] [stdout] test warp::config_gen::tests::rejects_empty_v4 ... ok
[INFO] [stdout] test warp::orchestrator::tests::config_path_contains_instance_file ... ok
[INFO] [stdout] test warp::orchestrator::tests::container_name_matches_id ... ok
[INFO] [stdout] test warp::account::tests::serde_round_trip_preserves_all_fields ... ok
[INFO] [stdout] test warp::balancer::tests::mark_failed_removes_instance_from_healthy_rotation ... ok
[INFO] [stdout] test warp::config_gen::tests::rejects_empty_private_key ... ok
[INFO] [stdout] test warp::orchestrator::tests::socks5_port_for_increments_from_start ... ok
[INFO] [stdout] test validator::tests::build_reqwest_proxy_succeeds_without_credentials ... ok
[INFO] [stdout] test validator::tests::build_reqwest_proxy_succeeds_with_credentials ... ok
[INFO] [stdout] test warp::orchestrator::tests::upsert_instance_then_remove ... ok
[INFO] [stdout] test warp::register::tests::generate_keypair_returns_valid_distinct_keys ... ok
[INFO] [stdout] test warp::orchestrator::tests::reconcile_diff_removes_surplus ... ok
[INFO] [stdout] test warp::orchestrator::tests::reconcile_diff_creates_missing_keeps_desired_existing ... ok
[INFO] [stdout] test warp::register::tests::parse_register_response_rejects_empty_v4 ... ok
[INFO] [stdout] test warp::register::tests::parse_register_response_rejects_empty_client_id ... ok
[INFO] [stdout] test warp::register::tests::parse_register_response_rejects_empty_v6 ... ok
[INFO] [stdout] test xray_status::tests::failed_state_preserves_reason_and_port ... ok
[INFO] [stdout] test warp::orchestrator::tests::reconcile_diff_from_empty ... ok
[INFO] [stdout] test xray_status::tests::registry_snapshot_counts_lifecycle_states ... ok
[INFO] [stdout] test warp::orchestrator::tests::reconcile_diff_no_change ... ok
[INFO] [stdout] test xray_status::tests::snapshot_respects_recent_limit ... ok
[INFO] [stdout] test warp::register::tests::parse_register_response_rejects_missing_field ... ok
[INFO] [stdout] test xray_status::tests::disabled_snapshot_hides_retained_records ... ok
[INFO] [stdout] test warp::register::tests::parse_register_response_happy_path ... ok
[INFO] [stdout] test warp::register::tests::parse_register_response_rejects_empty_public_key ... ok
[INFO] [stdout] test warp::orchestrator::tests::warp_orchestrator_new_without_docker_is_unavailable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 249 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/proxy_gateway-5327516ae8014f90)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test http_connect::tests::test_parse_host_port_explicit_port ... ok
[INFO] [stdout] test http_connect::tests::test_parse_host_port_ipv6_with_port ... ok
[INFO] [stdout] test http_connect::tests::test_parse_host_port_ipv6_default_port ... ok
[INFO] [stdout] test upstream::tests::test_parse_target_ipv4 ... ok
[INFO] [stdout] test upstream::tests::test_parse_target_ipv6 ... ok
[INFO] [stdout] test http_connect::tests::test_parse_host_port_default_http ... ok
[INFO] [stdout] test http_connect::tests::test_parse_host_port_default_https ... ok
[INFO] [stdout] test upstream::tests::test_socks5_connect_request_ipv6 ... ok
[INFO] [stdout] test upstream::tests::test_socks5_connect_request_ipv4 ... ok
[INFO] [stdout] test upstream::tests::test_parse_target_domain ... ok
[INFO] [stdout] test upstream::tests::test_socks5_connect_request_domain ... ok
[INFO] [stdout] test upstream::tests::test_upstream_variants ... ok
[INFO] [stdout] test upstream::tests::test_socks5_proxy_upstream_uses_socks5_handshake ... ok
[INFO] [stdout] test upstream::tests::test_http_proxy_upstream_uses_http_connect ... ok
[INFO] [stdout] test upstream::tests::test_http_proxy_connect_preserves_tunneled_bytes_after_headers ... ok
[INFO] [stdout] test upstream::tests::test_http_proxy_connect_sends_proxy_authorization ... ok
[INFO] [stdout] test upstream::tests::test_socks5_proxy_upstream_uses_username_password_auth ... ok
[INFO] [stdout] test upstream::tests::test_socks4_proxy_upstream_is_rejected_without_connecting ... ok
[INFO] [stdout] test upstream::tests::test_upstream_attempt_timeout_bounds_slow_proxy ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/proxy_mcp-10f69f71ad3b6115)
[INFO] [stdout] 
[INFO] [stdout] running 40 tests
[INFO] [stdout] test rest_client::tests::rest_error_display_is_readable ... ok
[INFO] [stdout] test tests::test_check_proxy_param_deserialize ... ok
[INFO] [stdout] test tests::test_container_logs_param_and_tail_clamp ... ok
[INFO] [stdout] test rest_client::tests::truncate_caps_length ... ok
[INFO] [stdout] test tests::test_demux_docker_log_stream_truncated_and_malformed ... ok
[INFO] [stdout] test rest_client::tests::normalize_base_strips_trailing_slash ... ok
[INFO] [stdout] test rest_client::tests::build_url_joins_absolute_path ... ok
[INFO] [stdout] test tests::test_docker_image_digest_falls_back_to_id ... ok
[INFO] [stdout] test tests::test_docker_image_digest_prefers_repo_digest ... ok
[INFO] [stdout] test tests::test_check_proxy_matrix_param_deserialize ... ok
[INFO] [stdout] test tests::test_docker_image_id_and_identity_change ... ok
[INFO] [stdout] test tests::test_demux_docker_log_stream_raw_fallback ... ok
[INFO] [stdout] test tests::test_cleanup_low_score_param_deserialize ... ok
[INFO] [stdout] test tests::test_proxy_filter_param_deserialize ... ok
[INFO] [stdout] test tests::test_geoip_lookup_param_deserialize ... ok
[INFO] [stdout] test tests::test_proxy_filter_param_optional ... ok
[INFO] [stdout] test tests::test_proxy_filter_param_with_filters ... ok
[INFO] [stdout] test tests::test_fetcher_status_json_includes_quality_fields ... ok
[INFO] [stdout] test tests::test_cleanup_low_score_param_defaults_optional ... ok
[INFO] [stdout] test tests::test_demux_docker_log_stream_frames ... ok
[INFO] [stdout] test tests::test_refresh_fetcher_param_deserialize ... ok
[INFO] [stdout] test tests::test_scheduler_handle_clone ... ok
[INFO] [stdout] test tests::test_scored_proxy_json_includes_quality_trend ... ok
[INFO] [stdout] test tests::test_route_test_param_deserialize ... ok
[INFO] [stdout] test tests::test_route_test_param_optional_protocol ... ok
[INFO] [stdout] test tests::test_list_proxies_param_deserialize ... ok
[INFO] [stdout] test tests::test_parse_bool_env_truthy_values ... ok
[INFO] [stdout] test tests::test_refresh_subscription_source_param_deserialize ... ok
[INFO] [stdout] test tests::test_split_image_ref_handles_registry_port_and_missing_tag ... ok
[INFO] [stdout] test tests::test_remove_proxy_param_deserialize ... ok
[INFO] [stdout] test tests::test_update_lock_serializes_concurrent_runs ... ok
[INFO] [stdout] test tests::test_update_service_config_defaults_to_disabled ... ok
[INFO] [stdout] test tests::test_update_service_config_from_lookup ... ok
[INFO] [stdout] test tests::test_update_status_default_serializes_never_triggered ... ok
[INFO] [stdout] test tests::test_subscription_report_serializes_recommendation_for_tools ... ok
[INFO] [stdout] test tests::test_update_status_disabled_carries_config ... ok
[INFO] [stdout] test tests::test_xray_status_snapshot_serializes_tool_contract ... ok
[INFO] [stdout] test tests::test_update_status_distinguishes_current_and_updated ... ok
[INFO] [stderr]      Running unittests src/bin/proxy-mcp-server.rs (/opt/rustwide/target/debug/deps/proxy_mcp_server-5a106a4e965cbb2f)
[INFO] [stdout] test tests::test_update_status_in_progress_snapshot ... ok
[INFO] [stdout] test tests::test_update_status_records_failures_and_image_result ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[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 unittests src/main.rs (/opt/rustwide/target/debug/deps/proxy_server-d8906f55cd38b76e)
[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 unittests src/lib.rs (/opt/rustwide/target/debug/deps/proxy_sub-323ee470743a2435)
[INFO] [stdout] 
[INFO] [stdout] running 166 tests
[INFO] [stdout] test airport::register::tests::test_generate_password_length_and_charset ... ok
[INFO] [stdout] test checkin::tests::test_parse_checkin_message_data_checkin_field ... ok
[INFO] [stdout] test checkin::tests::test_parse_checkin_message_message_field ... ok
[INFO] [stdout] test checkin::tests::test_parse_checkin_message_msg_field ... ok
[INFO] [stdout] test airport::email::tests::test_extract_verification_code_no_digits ... ok
[INFO] [stdout] test checkin::tests::test_parse_checkin_message_none_for_garbage ... ok
[INFO] [stdout] test airport::email::tests::test_extract_verification_code_fallback_four_to_eight ... ok
[INFO] [stdout] test airport::email::tests::test_extract_verification_code_six_digit ... ok
[INFO] [stdout] test convert::tests::test_partition ... ok
[INFO] [stdout] test checkin::tests::test_checkin_status_serialization ... ok
[INFO] [stdout] test convert::tests::test_to_proxy_basic ... ok
[INFO] [stdout] test convert::tests::test_to_proxy_encrypted_returns_none ... ok
[INFO] [stdout] test discover::aggregator::tests::test_parse_text_list ... ok
[INFO] [stdout] test discover::aggregator::tests::test_parse_json_list ... ok
[INFO] [stdout] test discover::extract::tests::test_extract_dedups_within_blob ... ok
[INFO] [stdout] test checkin::tests::test_checkin_result_serialization_roundtrip ... ok
[INFO] [stdout] test discover::extract::tests::test_extract_managed_config_line ... ok
[INFO] [stdout] test discover::extract::tests::test_looks_like_subscription ... ok
[INFO] [stdout] test discover::aggregator::tests::test_parse_yaml_list ... ok
[INFO] [stdout] test discover::extract::tests::test_trim_trailing_punct ... ok
[INFO] [stdout] test discover::github_search::tests::test_github_to_raw_url ... ok
[INFO] [stdout] test discover::github_search::tests::test_github_to_raw_url_different_branch ... ok
[INFO] [stdout] test discover::github_search::tests::test_github_to_raw_url_no_blob ... ok
[INFO] [stdout] test discover::search::tests::test_extract_from_grok_response_blob ... ok
[INFO] [stdout] test discover::extract::tests::test_looks_like_sub_file ... ok
[INFO] [stdout] test discover::extract::tests::test_protocol_link_detection ... ok
[INFO] [stdout] test discover::extract::tests::test_extract_grok_raw_urls_with_trailing_period ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_empty_data_field ... ok
[INFO] [stdout] test discover::search::tests::test_new_does_not_panic ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_invalid_json ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_multiline_event ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_plain_json_body ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_multiple_data_lines ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_no_data_line ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_prefers_result_over_progress ... ok
[INFO] [stdout] test checkin::tests::test_renew_if_needed_returns_none_without_meta ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_single_line ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_with_error_field ... ok
[INFO] [stdout] test discover::search::tests::test_resolve_queries_truncates ... ok
[INFO] [stdout] test discover::telegram::tests::test_include_exclude_filter ... ok
[INFO] [stdout] test discover::tests::test_trait_object_dispatch ... ok
[INFO] [stdout] test models::tests::test_dedup_key ... ok
[INFO] [stdout] test models::tests::test_is_direct_usable ... ok
[INFO] [stdout] test ops::tests::test_basic_admit_config_from_pool ... ok
[INFO] [stdout] test ops::tests::test_descriptors_from_config_are_stable_and_redacted ... ok
[INFO] [stdout] test ops::tests::test_recommend_apply_when_source_meets_thresholds ... ok
[INFO] [stdout] test ops::tests::test_recommend_reject_when_no_supported_nodes ... ok
[INFO] [stdout] test ops::tests::test_recommend_review_when_noisy_source_has_enough_supported_nodes ... ok
[INFO] [stdout] test ops::tests::test_recommend_review_when_source_is_usable_but_small ... ok
[INFO] [stdout] test discover::search::tests::test_parse_sse_data_fallback_to_last ... ok
[INFO] [stdout] test ops::tests::test_refresh_mode_from_apply_defaults_preview ... ok
[INFO] [stdout] test airport::register::tests::test_registrar_new_does_not_panic ... ok
[INFO] [stdout] test ops::tests::test_report_outcome_matrix ... ok
[INFO] [stdout] test ops::tests::test_snapshot_empty_config ... ok
[INFO] [stdout] test ops::tests::test_report_serialization_uses_snake_case_modes ... ok
[INFO] [stdout] test ops::tests::test_rejected_apply_policy_blocks_writes ... ok
[INFO] [stdout] test ops::tests::test_unknown_and_duplicate_node_counting_helpers ... ok
[INFO] [stdout] test discover::telegram::tests::test_pagination_detection ... ok
[INFO] [stdout] test discover::telegram::tests::test_extract_dedups_within_page ... ok
[INFO] [stdout] test discover::telegram::tests::test_extract_urls_from_sample_html ... ok
[INFO] [stdout] test ops::tests::test_validate_and_classify_basics_rejects_unreachable ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_decode_base64_standard ... ok
[INFO] [stdout] test checkin::tests::test_renew_if_needed_skips_when_healthy ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_detect_base64_blob ... ok
[INFO] [stdout] test checkin::tests::test_renew_if_needed_triggers_when_low_traffic ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_detect_negative ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_decode_base64_missing_padding ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_blob ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_decode_base64_url_safe ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_fixture_base64_blob ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_fixture_base64_sample ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_line_base64_encoded ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_detect_plain_lines ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_socks5 ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_pad_base64 ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_http ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_http_with_userinfo ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_socks5_with_percent_decoded_userinfo ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_ss_base64_userinfo ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_ss_query_empty ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_trojan ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_trojan_no_query ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_trojan_percent_password ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_vless_malformed_unknown ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_ss_no_at ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_vmess ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_vmess_alt_keys ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_vmess_defaults ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_vless_ws_tls ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_vless_reality ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_percent_decode ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_split_host_port_invalid ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_split_host_port_ipv4 ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_vmess_numeric_port ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_split_host_port_ipv6 ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_unknown_scheme ... ok
[INFO] [stdout] test parser::clash::tests::test_clash_detect_valid ... ok
[INFO] [stdout] test parser::clash::tests::test_clash_http_with_username_password ... ok
[INFO] [stdout] test parser::clash::tests::test_clash_parse ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_vmess_bad_base64 ... ok
[INFO] [stdout] test parser::clash::tests::test_clash_detect_invalid ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_ss_plain_userinfo ... ok
[INFO] [stdout] test parser::clash::tests::test_clash_ss_map_plugin_opts_and_quoted_port ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_ss_query ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_ss_with_fragment ... ok
[INFO] [stdout] test parser::base64_uri::tests::test_parse_ss_with_plugin ... ok
[INFO] [stdout] test parser::surge::tests::test_detect_invalid ... ok
[INFO] [stdout] test parser::surge::tests::test_detect_skips_comments ... ok
[INFO] [stdout] test parser::surge::tests::test_detect_single_line ... ok
[INFO] [stdout] test parser::surge::tests::test_detect_unknown_type ... ok
[INFO] [stdout] test parser::surge::tests::test_detect_valid_surge ... ok
[INFO] [stdout] test parser::surge::tests::test_params_parse ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_malformed_no_equals ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_malformed_port ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_malformed_too_few_fields ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_skips_comments_and_empty ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_socks5 ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_ss ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_trojan ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_unknown_type ... ok
[INFO] [stdout] test parser::clash::tests::test_clash_parse_vless_reality ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_vless_reality ... ok
[INFO] [stdout] test parser::surge::tests::test_fixture_surge_sample ... ok
[INFO] [stdout] test parser::surge::tests::test_params_get_or ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_vmess_ws ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_vmess_tcp ... ok
[INFO] [stdout] test parser::tests::test_parse_subscription_no_match_fixture ... ok
[INFO] [stdout] test parser::surge::tests::test_params_is ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_detect_valid_json_array ... ok
[INFO] [stdout] test parser::surge::tests::test_parse_http ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_detect_valid_json_with_outbounds ... ok
[INFO] [stdout] test parser::tests::test_parse_subscription_surge ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_extract_stream_settings_grpc ... ok
[INFO] [stdout] test parser::tests::test_parse_subscription_empty ... ok
[INFO] [stdout] test parser::tests::test_parse_subscription_no_match ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_extract_stream_settings_ws ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_empty_outbounds ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_http ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_extract_stream_settings_tcp_default ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_invalid_json ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_no_outbounds_key ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_fixture_v2ray_sample ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_shadowsocks ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_skips_freedom_blackhole ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_extract_stream_settings_none ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_detect_empty ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_detect_json_without_outbounds ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_extract_stream_settings_no_network ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_vless_reality_direct_settings ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_vless ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_detect_not_json ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_vmess ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_vmess_grpc ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_socks ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_vmess_no_stream_settings ... ok
[INFO] [stdout] test source::cache::tests::test_evict_expired ... ok
[INFO] [stdout] test source::cache::tests::test_expired_entry_is_evicted_on_get ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_trojan ... ok
[INFO] [stdout] test source::cache::tests::test_missing_key ... ok
[INFO] [stdout] test source::cache::tests::test_put_get ... ok
[INFO] [stdout] test source::tests::test_constructor ... ok
[INFO] [stdout] test pending::tests::test_subscription_proxy_serialization_roundtrip ... ok
[INFO] [stdout] test source::cache::tests::test_len_and_is_empty ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_trojan_ws_network ... ok
[INFO] [stdout] test parser::v2ray_json::tests::test_parse_unknown_protocol ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/proxy_xray-b0c6a2feecc9537d)
[INFO] [stdout] test pending::tests::test_reconcile_removes_non_kept_members ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 166 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test config_gen::tests::test_generate_shadowsocks ... ok
[INFO] [stdout] test config_gen::tests::test_generate_trojan_no_sni ... ok
[INFO] [stdout] test config_gen::tests::test_bootstrap_config_valid_json ... ok
[INFO] [stdout] test config_gen::tests::test_build_stream_settings_maps_http_h2_to_xhttp ... ok
[INFO] [stdout] test config_gen::tests::test_bootstrap_config_enables_routing_service ... ok
[INFO] [stdout] test config_gen::tests::test_generate_vmess_ws_tls ... ok
[INFO] [stdout] test config_gen::tests::test_generate_vless_reality ... ok
[INFO] [stdout] test config_gen::tests::test_generate_vmess_grpc ... ok
[INFO] [stdout] test config_gen::tests::test_inbound_json_structure ... ok
[INFO] [stdout] test config_gen::tests::test_node_tag ... ok
[INFO] [stdout] test config_gen::tests::test_is_xray_activatable ... ok
[INFO] [stdout] test config_gen::tests::test_routing_rule_json_structure ... ok
[INFO] [stdout] test config_gen::tests::test_shadowsocks_cipher_supported_whitelist ... ok
[INFO] [stdout] test outbound_sync::tests::active_health_fail_reason_is_stable ... ok
[INFO] [stdout] test outbound_sync::tests::active_revalidate_budget_caps_at_32_or_attempt_limit ... ok
[INFO] [stdout] test config_gen::tests::test_generate_trojan_tls ... ok
[INFO] [stdout] test outbound_sync::tests::health_fail_streak_demotes_at_two_not_one ... ok
[INFO] [stdout] test config_gen::tests::test_generate_unknown_returns_none ... ok
[INFO] [stdout] test outbound_sync::tests::health_fail_streak_resets_conceptually_on_success ... ok
[INFO] [stdout] test outbound_sync::tests::merge_active_revalidation_falls_back_to_validated_without_existing ... ok
[INFO] [stdout] test outbound_sync::tests::merge_active_revalidation_preserves_encrypted_metadata ... ok
[INFO] [stdout] test config_gen::tests::test_generate_vless_ws_tls ... ok
[INFO] [stdout] test outbound_sync::tests::tcp_precheck_rejects_missing_host_and_zero_port ... ok
[INFO] [stdout] test outbound_sync::tests::validation_plan_falls_back_to_pool_targets ... ok
[INFO] [stdout] test config_gen::tests::test_http_transport_mapped_to_xhttp ... ok
[INFO] [stdout] test outbound_sync::tests::test_sync_stats_default ... ok
[INFO] [stdout] test outbound_sync::tests::tcp_precheck_constants_match_decisions ... ok
[INFO] [stdout] test outbound_sync::tests::tcp_precheck_succeeds_against_local_listener ... ok
[INFO] [stdout] test outbound_sync::tests::tcp_precheck_fails_on_refused_or_timeout ... ok
[INFO] [stdout] test outbound_sync::tests::validation_plan_prefers_xray_targets_and_timeout ... ok
[INFO] [stdout] test port_manager::tests::test_allocate_exhaustion ... ok
[INFO] [stdout] test port_manager::tests::test_used_count ... ok
[INFO] [stdout] test port_manager::tests::test_claim ... ok
[INFO] [stdout] test port_manager::tests::test_allocate_release_reuse ... ok
[INFO] [stdout] test port_manager::tests::test_allocate_sequential ... ok
[INFO] [stdout] test port_manager::tests::test_is_allocated ... ok
[INFO] [stdout] test config_gen::tests::test_generate_basic_returns_none ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests proxy_api
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests proxy_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests proxy_gateway
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests proxy_mcp
[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] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests proxy_sub
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests proxy_xray
[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" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da", kill_on_drop: false }`
[INFO] [stdout] 391ac1d61c6c8d400556bc9bd39700cd093ce18fe5b278f45cc39f57041c26da
