[INFO] fetching crate wisegate-core 0.10.0... [INFO] testing wisegate-core-0.10.0 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate wisegate-core 0.10.0 into /workspace/builds/worker-3-tc2/source [INFO] started tweaking crates.io crate wisegate-core 0.10.0 [INFO] finished tweaking crates.io crate wisegate-core 0.10.0 [INFO] tweaked toml for crates.io crate wisegate-core 0.10.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate wisegate-core 0.10.0 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate wisegate-core 0.10.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2689b04816ba391b41de39dee67c9f7c965d339f47d043c518e8bb7a6ecc77c7 [INFO] running `Command { std: "docker" "start" "-a" "2689b04816ba391b41de39dee67c9f7c965d339f47d043c518e8bb7a6ecc77c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2689b04816ba391b41de39dee67c9f7c965d339f47d043c518e8bb7a6ecc77c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2689b04816ba391b41de39dee67c9f7c965d339f47d043c518e8bb7a6ecc77c7", kill_on_drop: false }` [INFO] [stdout] 2689b04816ba391b41de39dee67c9f7c965d339f47d043c518e8bb7a6ecc77c7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e2997c20340923456cfd3e2060c5248344efdd6adba581b9fd6130a19453e5a6 [INFO] running `Command { std: "docker" "start" "-a" "e2997c20340923456cfd3e2060c5248344efdd6adba581b9fd6130a19453e5a6", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.105 [INFO] [stderr] Compiling quote v1.0.43 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling zmij v1.0.14 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling blowfish v0.9.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling bcrypt v0.17.1 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling reqwest v0.13.1 [INFO] [stderr] Compiling wisegate-core v0.10.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.54s [INFO] running `Command { std: "docker" "inspect" "e2997c20340923456cfd3e2060c5248344efdd6adba581b9fd6130a19453e5a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e2997c20340923456cfd3e2060c5248344efdd6adba581b9fd6130a19453e5a6", kill_on_drop: false }` [INFO] [stdout] e2997c20340923456cfd3e2060c5248344efdd6adba581b9fd6130a19453e5a6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7e1b39446cb60d83bce7bbdf76754c5adbfbf350baca8676abfef5c298892cae [INFO] running `Command { std: "docker" "start" "-a" "7e1b39446cb60d83bce7bbdf76754c5adbfbf350baca8676abfef5c298892cae", kill_on_drop: false }` [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling reqwest v0.13.1 [INFO] [stderr] Compiling wisegate-core v0.10.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 16.20s [INFO] running `Command { std: "docker" "inspect" "7e1b39446cb60d83bce7bbdf76754c5adbfbf350baca8676abfef5c298892cae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7e1b39446cb60d83bce7bbdf76754c5adbfbf350baca8676abfef5c298892cae", kill_on_drop: false }` [INFO] [stdout] 7e1b39446cb60d83bce7bbdf76754c5adbfbf350baca8676abfef5c298892cae [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d6dee5f4c906efd81afe2f29fa8ab05e52044faf58d2f59ccc7d0a497fb4ac68 [INFO] running `Command { std: "docker" "start" "-a" "d6dee5f4c906efd81afe2f29fa8ab05e52044faf58d2f59ccc7d0a497fb4ac68", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wisegate_core-b01dc1ae38cd2333) [INFO] [stdout] running 149 tests [INFO] [stdout] test auth::hash::tests::test_verify_sha1_password ... ok [INFO] [stdout] test auth::hash::tests::test_apr1_known_hash ... ok [INFO] [stdout] test auth::tests::test_check_basic_auth_with_credentials ... ok [INFO] [stdout] test auth::tests::test_check_basic_auth_no_credentials ... ok [INFO] [stdout] test auth::hash::tests::test_verify_plain_text ... ok [INFO] [stdout] test auth::tests::test_check_bearer_token_basic_auth_header ... ok [INFO] [stdout] test auth::hash::tests::test_constant_time_eq ... ok [INFO] [stdout] test auth::tests::test_check_bearer_token_empty_token ... ok [INFO] [stdout] test auth::tests::test_credentials_from_entries ... ok [INFO] [stdout] test auth::tests::test_check_bearer_token_no_header ... ok [INFO] [stdout] test auth::tests::test_check_bearer_token_no_token_configured ... ok [INFO] [stdout] test auth::tests::test_check_bearer_token_valid ... ok [INFO] [stdout] test auth::tests::test_verify_missing_colon_in_decoded ... ok [INFO] [stdout] test auth::tests::test_verify_invalid_base64 ... ok [INFO] [stdout] test auth::tests::test_verify_non_basic_auth ... ok [INFO] [stdout] test auth::tests::test_verify_sha1 ... ok [INFO] [stdout] test auth::tests::test_verify_plain_text ... ok [INFO] [stdout] test auth::tests::test_verify_wrong_password ... ok [INFO] [stdout] test auth::tests::test_verify_wrong_user ... ok [INFO] [stdout] test auth::tests::test_credential_parse_empty_user ... ok [INFO] [stdout] test error::tests::test_error_display ... ok [INFO] [stdout] test error::tests::test_status_codes ... ok [INFO] [stdout] test headers::tests::test_header_constants_lowercase ... ok [INFO] [stdout] test error::tests::test_user_messages ... ok [INFO] [stdout] test ip_filter::tests::test_extract_and_validate_real_ip_permissive_no_headers ... ok [INFO] [stdout] test headers::tests::test_hop_by_hop_headers ... ok [INFO] [stdout] test ip_filter::tests::test_extract_and_validate_real_ip_permissive_with_forwarded ... ok [INFO] [stdout] test ip_filter::tests::test_extract_and_validate_real_ip_permissive_with_xff ... ok [INFO] [stdout] test headers::tests::test_not_hop_by_hop_headers ... ok [INFO] [stdout] test ip_filter::tests::test_extract_and_validate_real_ip_permissive_xff_priority ... ok [INFO] [stdout] test ip_filter::tests::test_extract_and_validate_real_ip_strict_missing_xff ... ok [INFO] [stdout] test ip_filter::tests::test_extract_and_validate_real_ip_strict_missing_forwarded ... ok [INFO] [stdout] test ip_filter::tests::test_extract_and_validate_real_ip_strict_proxy_not_allowed ... ok [INFO] [stdout] test ip_filter::tests::test_extract_and_validate_real_ip_strict_valid ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_forwarded_ipv6 ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_forwarded_multiple_elements ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_forwarded_simple ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_forwarded_unknown ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_xff_empty ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_xff_chain ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_xff_ipv6 ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_xff_single ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_xff_with_whitespace ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_bracketed_ipv6 ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_bracketed_ipv6_with_port ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_ipv4_with_port ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_obfuscated ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_plain_ipv4 ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_plain_ipv6 ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_quoted ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_xff_invalid_only ... ok [INFO] [stdout] test ip_filter::tests::test_extract_client_ip_from_forwarded_with_by ... ok [INFO] [stdout] test ip_filter::tests::test_extract_proxy_ip_from_forwarded_ipv6 ... ok [INFO] [stdout] test auth::hash::tests::test_verify_bcrypt_password ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_with_whitespace ... ok [INFO] [stdout] test ip_filter::tests::test_extract_proxy_ip_from_forwarded_no_by ... ok [INFO] [stdout] test ip_filter::tests::test_is_ip_blocked_empty_list ... ok [INFO] [stdout] test ip_filter::tests::test_is_ip_blocked_ipv6 ... ok [INFO] [stdout] test ip_filter::tests::test_is_ip_blocked_when_blocked ... ok [INFO] [stdout] test ip_filter::tests::test_is_ip_blocked_when_not_blocked ... ok [INFO] [stdout] test ip_filter::tests::test_is_proxy_ip_allowed_in_list ... ok [INFO] [stdout] test auth::hash::tests::test_verify_apr1_password ... ok [INFO] [stdout] test ip_filter::tests::test_is_proxy_ip_allowed_no_list ... ok [INFO] [stdout] test ip_filter::tests::test_is_proxy_ip_allowed_not_in_list ... ok [INFO] [stdout] test ip_filter::tests::test_is_valid_ip_format_empty ... ok [INFO] [stdout] test ip_filter::tests::test_is_valid_ip_format_garbage ... ok [INFO] [stdout] test ip_filter::tests::test_is_valid_ip_format_ipv4 ... ok [INFO] [stdout] test ip_filter::tests::test_is_valid_ip_format_ipv4_invalid ... ok [INFO] [stdout] test ip_filter::tests::test_is_valid_ip_format_ipv6 ... ok [INFO] [stdout] test ip_filter::tests::test_is_valid_ip_format_ipv6_bracketed ... ok [INFO] [stdout] test rate_limiter::tests::test_cleanup_disabled_when_threshold_zero ... ok [INFO] [stdout] test ip_filter::tests::test_extract_proxy_ip_from_forwarded_simple ... ok [INFO] [stdout] test rate_limiter::tests::test_concurrent_requests_same_ip ... ok [INFO] [stdout] test rate_limiter::tests::test_counter_increments_correctly ... ok [INFO] [stdout] test rate_limiter::tests::test_concurrent_requests_different_ips ... ok [INFO] [stdout] test rate_limiter::tests::test_different_ips_independent ... ok [INFO] [stdout] test rate_limiter::tests::test_entries_tracked_per_ip ... ok [INFO] [stdout] test rate_limiter::tests::test_first_request_allowed ... ok [INFO] [stdout] test rate_limiter::tests::test_ipv6_addresses ... ok [INFO] [stdout] test rate_limiter::tests::test_limit_of_one ... ok [INFO] [stdout] test rate_limiter::tests::test_limiter_clone_shares_state ... ok [INFO] [stdout] test rate_limiter::tests::test_multiple_blocked_requests ... ok [INFO] [stdout] test auth::tests::test_credential_parse_no_colon ... ok [INFO] [stdout] test auth::tests::test_credential_parse_valid ... ok [INFO] [stdout] test auth::tests::test_credential_parse_with_colon_in_password ... ok [INFO] [stdout] test auth::tests::test_credentials_empty ... ok [INFO] [stdout] test rate_limiter::tests::test_request_exceeding_limit_blocked ... ok [INFO] [stdout] test rate_limiter::tests::test_requests_within_limit_allowed ... ok [INFO] [stdout] test ip_filter::tests::test_extract_ip_from_node_identifier_unknown ... ok [INFO] [stdout] test ip_filter::tests::test_extract_proxy_ip_from_forwarded_multiple_elements ... ok [INFO] [stdout] test auth::tests::test_check_bearer_token_case_sensitive ... ok [INFO] [stdout] test rate_limiter::tests::test_window_not_expired_keeps_count ... ok [INFO] [stdout] test request_handler::tests::test_create_error_response_content_type ... ok [INFO] [stdout] test request_handler::tests::test_create_error_response_empty_message ... ok [INFO] [stdout] test request_handler::tests::test_create_error_response_body ... ok [INFO] [stdout] test request_handler::tests::test_method_blocked ... ok [INFO] [stdout] test request_handler::tests::test_method_not_blocked ... ok [INFO] [stdout] test request_handler::tests::test_create_error_response_status ... ok [INFO] [stdout] test rate_limiter::tests::test_window_reset_after_expiration ... ok [INFO] [stdout] test rate_limiter::tests::test_window_reset_resets_counter ... ok [INFO] [stdout] test request_handler::tests::test_method_blocked_empty_list ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_invalid_hex ... ok [INFO] [stdout] test request_handler::tests::test_method_blocked_case_insensitive ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_dot_encoding ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_simple_encoding ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_unicode ... ok [INFO] [stdout] test request_handler::tests::test_url_pattern_blocked_bypass_attempt ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_mixed_content ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_multiple_encodings ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_php_bypass ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_no_encoding ... ok [INFO] [stdout] test request_handler::tests::test_url_decode_env_bypass ... ok [INFO] [stdout] test request_handler::tests::test_url_pattern_blocked_empty_patterns ... ok [INFO] [stdout] test request_handler::tests::test_url_pattern_blocked_double_encoding_attempt ... ok [INFO] [stdout] test request_handler::tests::test_url_pattern_blocked_simple ... ok [INFO] [stdout] test request_handler::tests::test_url_pattern_blocked_partial_match ... ok [INFO] [stdout] test test_utils::tests::test_default_config ... ok [INFO] [stdout] test request_handler::tests::test_url_pattern_not_blocked ... ok [INFO] [stdout] test test_utils::tests::test_builder_methods ... ok [INFO] [stdout] test test_utils::tests::test_strict_config ... ok [INFO] [stdout] test request_handler::tests::test_url_pattern_blocked_case_sensitive ... ok [INFO] [stdout] test types::tests::test_cleanup_config_disabled_zero_threshold ... ok [INFO] [stdout] test types::tests::test_cleanup_config_enabled_with_one ... ok [INFO] [stdout] test types::tests::test_cleanup_config_enabled ... ok [INFO] [stdout] test types::tests::test_proxy_config_invalid_zero_timeout ... ok [INFO] [stdout] test types::tests::test_proxy_config_max_body_size_mb_100 ... ok [INFO] [stdout] test types::tests::test_proxy_config_max_body_size_mb_unlimited ... ok [INFO] [stdout] test types::tests::test_proxy_config_mb_to_bytes ... ok [INFO] [stdout] test types::tests::test_proxy_config_valid_unlimited_body ... ok [INFO] [stdout] test types::tests::test_rate_limit_config_invalid_zero_duration ... ok [INFO] [stdout] test types::tests::test_proxy_config_valid ... ok [INFO] [stdout] test types::tests::test_rate_limit_config_invalid_both_zero ... ok [INFO] [stdout] test types::tests::test_proxy_config_max_body_size_mb_1 ... ok [INFO] [stdout] test types::tests::test_rate_limit_config_invalid_zero_requests ... ok [INFO] [stdout] test types::tests::test_rate_limit_entry_default ... ok [INFO] [stdout] test types::tests::test_rate_limit_config_valid ... ok [INFO] [stdout] test types::tests::test_rate_limit_entry_new ... ok [INFO] [stdout] test types::tests::test_rate_limiter_new_is_empty ... ok [INFO] [stdout] test types::tests::test_rate_limiter_can_insert_and_retrieve ... ok [INFO] [stdout] test types::tests::test_rate_limiter_default_is_empty ... ok [INFO] [stdout] test auth::tests::test_verify_bcrypt ... ok [INFO] [stdout] test rate_limiter::tests::test_cleanup_removes_expired_entries ... ok [INFO] [stdout] test types::tests::test_rate_limiter_clone ... ok [INFO] [stdout] test auth::tests::test_check_bearer_token_invalid ... ok [INFO] [stdout] test auth::tests::test_verify_multiple_credentials ... ok [INFO] [stdout] test error::tests::test_is_server_error ... ok [INFO] [stdout] test auth::tests::test_check_bearer_token_valid_with_whitespace ... ok [INFO] [stdout] test auth::tests::test_verify_apr1 ... ok [INFO] [stdout] test rate_limiter::tests::test_different_ips_different_windows ... ok [INFO] [stderr] Doc-tests wisegate_core [INFO] [stdout] [INFO] [stdout] test result: ok. 149 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test src/ip_filter.rs - ip_filter (line 24) ... ignored [INFO] [stdout] test src/ip_filter.rs - ip_filter::extract_and_validate_real_ip (line 88) ... ignored [INFO] [stdout] test src/ip_filter.rs - ip_filter::is_ip_blocked (line 51) ... ignored [INFO] [stdout] test src/rate_limiter.rs - rate_limiter (line 28) ... ignored [INFO] [stdout] test src/rate_limiter.rs - rate_limiter::check_rate_limit (line 78) ... ignored [INFO] [stdout] test src/lib.rs - (line 17) - compile ... ok [INFO] [stdout] test src/types.rs - types::RateLimitConfig (line 193) ... ok [INFO] [stdout] test src/types.rs - types::RateLimitCleanupConfig (line 228) ... ok [INFO] [stdout] test src/types.rs - types::ConfigProvider (line 110) ... ok [INFO] [stdout] test src/headers.rs - headers::is_hop_by_hop (line 78) ... ok [INFO] [stdout] test src/error.rs - error::WiseGateError (line 18) ... ok [INFO] [stdout] test src/types.rs - types::RateLimiter (line 352) ... ok [INFO] [stdout] test src/types.rs - types::ProxyConfig (line 262) ... ok [INFO] [stdout] test src/request_handler.rs - request_handler::create_error_response (line 321) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.80s; merged doctests compilation took 0.71s [INFO] running `Command { std: "docker" "inspect" "d6dee5f4c906efd81afe2f29fa8ab05e52044faf58d2f59ccc7d0a497fb4ac68", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d6dee5f4c906efd81afe2f29fa8ab05e52044faf58d2f59ccc7d0a497fb4ac68", kill_on_drop: false }` [INFO] [stdout] d6dee5f4c906efd81afe2f29fa8ab05e52044faf58d2f59ccc7d0a497fb4ac68