[INFO] cloning repository https://github.com/alkimiadev/reverse-proxy [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alkimiadev/reverse-proxy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falkimiadev%2Freverse-proxy", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falkimiadev%2Freverse-proxy'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f6e62a37efb0f520a2708ef99798e960bcc1c34c [INFO] testing alkimiadev/reverse-proxy 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%2Falkimiadev%2Freverse-proxy" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/alkimiadev/reverse-proxy [INFO] finished tweaking git repo https://github.com/alkimiadev/reverse-proxy [INFO] tweaked toml for git repo https://github.com/alkimiadev/reverse-proxy written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/alkimiadev/reverse-proxy 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/alkimiadev/reverse-proxy already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.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 serde_json v1.0.140 [INFO] [stderr] Downloaded sd-notify v0.4.5 [INFO] [stderr] Downloaded rusticata-macros v4.1.0 [INFO] [stderr] Downloaded oid-registry v0.7.1 [INFO] [stderr] Downloaded asn1-rs-impl v0.2.0 [INFO] [stderr] Downloaded asn1-rs-derive v0.5.1 [INFO] [stderr] Downloaded log v0.4.32 [INFO] [stderr] Downloaded rustc-demangle v0.1.27 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.123 [INFO] [stderr] Downloaded rustls-native-certs v0.8.1 [INFO] [stderr] Downloaded rustls-pemfile v2.2.0 [INFO] [stderr] Downloaded tempfile v3.20.0 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.123 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.73 [INFO] [stderr] Downloaded yasna v0.5.2 [INFO] [stderr] Downloaded futures-rustls v0.26.0 [INFO] [stderr] Downloaded piper v0.2.5 [INFO] [stderr] Downloaded async-web-client v0.6.3 [INFO] [stderr] Downloaded async-net v2.0.0 [INFO] [stderr] Downloaded async-http-codec v0.8.0 [INFO] [stderr] Downloaded rustls-acme v0.12.1 [INFO] [stderr] Downloaded der-parser v9.0.0 [INFO] [stderr] Downloaded rcgen v0.13.2 [INFO] [stderr] Downloaded dashmap v6.1.0 [INFO] [stderr] Downloaded asn1-rs v0.6.2 [INFO] [stderr] Downloaded wasm-bindgen v0.2.123 [INFO] [stderr] Downloaded cc v1.2.63 [INFO] [stderr] Downloaded x509-parser v0.16.0 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.123 [INFO] [stderr] Downloaded openssl-sys v0.9.116 [INFO] [stderr] Downloaded arc-swap v1.7.1 [INFO] [stderr] Downloaded hyper-util v0.1.17 [INFO] [stderr] Downloaded js-sys v0.3.100 [INFO] [stderr] Downloaded tracing-subscriber v0.3.19 [INFO] [stderr] Downloaded hyper v1.6.0 [INFO] [stderr] Downloaded webpki-roots v1.0.7 [INFO] [stderr] Downloaded axum v0.8.9 [INFO] [stderr] Downloaded openssl v0.10.80 [INFO] [stderr] Downloaded rustls v0.23.28 [INFO] [stderr] Downloaded web-sys v0.3.100 [INFO] [stderr] Downloaded tokio v1.45.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0 [INFO] running `Command { std: "docker" "start" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0", 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" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0" "/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" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0", 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" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling memchr v2.8.1 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling autocfg v1.5.1 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Compiling log v0.4.32 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling rustls-pki-types v1.12.0 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling http v1.4.2 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling num-conv v0.2.2 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling cc v1.2.63 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling rustls v0.23.28 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling futures-lite v2.6.1 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling zerocopy v0.8.52 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling piper v0.2.5 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling oid-registry v0.7.1 [INFO] [stderr] Compiling async-task v4.7.1 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling webpki-roots v1.0.7 [INFO] [stderr] Compiling socket2 v0.6.4 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling async-channel v2.5.0 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling pem v3.0.6 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling blocking v1.6.2 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling data-encoding v2.11.0 [INFO] [stderr] Compiling aws-lc-sys v0.41.0 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling openssl-probe v0.1.6 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling chrono v0.4.45 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling rustls-native-certs v0.8.1 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling rustls-pemfile v2.2.0 [INFO] [stderr] Compiling rusticata-macros v4.1.0 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling sd-notify v0.4.5 [INFO] [stderr] Compiling arc-swap v1.7.1 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling yasna v0.5.2 [INFO] [stderr] Compiling regex-automata v0.1.10 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling matchers v0.1.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling displaydoc v0.2.6 [INFO] [stderr] Compiling asn1-rs-impl v0.2.0 [INFO] [stderr] Compiling asn1-rs-derive v0.5.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling asn1-rs v0.6.2 [INFO] [stderr] Compiling regex v1.12.4 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling polling v3.11.0 [INFO] [stderr] Compiling der-parser v9.0.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling async-net v2.0.0 [INFO] [stderr] Compiling x509-parser v0.16.0 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling async-http-codec v0.8.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.19 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling h2 v0.4.14 [INFO] [stderr] Compiling aws-lc-rs v1.17.0 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling rcgen v0.13.2 [INFO] [stderr] Compiling hyper-util v0.1.17 [INFO] [stderr] Compiling axum v0.8.9 [INFO] [stderr] Compiling futures-rustls v0.26.0 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling async-web-client v0.6.3 [INFO] [stderr] Compiling rustls-acme v0.12.1 [INFO] [stderr] Compiling reverse-proxy v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 19s [INFO] running `Command { std: "docker" "inspect" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0", 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" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0" "/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 displaydoc v0.2.6 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling yoke v0.8.3 [INFO] [stderr] Compiling asn1-rs-derive v0.5.1 [INFO] [stderr] Compiling asn1-rs-impl v0.2.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl v0.10.80 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling futures-lite v2.6.1 [INFO] [stderr] Compiling piper v0.2.5 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling openssl-sys v0.9.116 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling blocking v1.6.2 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling asn1-rs v0.6.2 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tracing-subscriber v0.3.19 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling oid-registry v0.7.1 [INFO] [stderr] Compiling der-parser v9.0.0 [INFO] [stderr] Compiling x509-parser v0.16.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling async-http-codec v0.8.0 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling rcgen v0.13.2 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling h2 v0.4.14 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling polling v3.11.0 [INFO] [stderr] Compiling tempfile v3.20.0 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling async-net v2.0.0 [INFO] [stderr] Compiling async-web-client v0.6.3 [INFO] [stderr] Compiling rustls-acme v0.12.1 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling hyper-util v0.1.17 [INFO] [stderr] Compiling axum v0.8.9 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling reverse-proxy v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 23s [INFO] running `Command { std: "docker" "inspect" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0", 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" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0" "/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 0.50s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/reverse_proxy-3f0b1ac57c6f603b) [INFO] [stdout] [INFO] [stdout] running 212 tests [INFO] [stdout] test admin::auth::tests::load_admin_key_empty_path_returns_none ... ok [INFO] [stdout] test admin::auth::tests::load_admin_key_missing_file_returns_none ... ok [INFO] [stdout] test admin::auth::tests::load_admin_key_trims_whitespace ... ok [INFO] [stdout] test admin::auth::tests::load_admin_key_valid_file_returns_hash ... ok [INFO] [stdout] test admin::auth::tests::hash_is_deterministic ... ok [INFO] [stdout] test cli::tests::cli_all_flags ... ok [INFO] [stdout] test cli::tests::cli_allow_wildcard_bind_flag ... ok [INFO] [stdout] test cli::tests::cli_version_flag ... ok [INFO] [stdout] test cli::tests::cli_validate_flag ... ok [INFO] [stdout] test cli::tests::load_config_invalid_toml ... ok [INFO] [stdout] test cli::tests::load_config_allow_wildcard_from_config_only ... ok [INFO] [stdout] test admin::auth::tests::load_admin_key_empty_file_returns_error ... ok [INFO] [stdout] test cli::tests::load_config_missing_file ... ok [INFO] [stdout] test cli::tests::cli_custom_config_path ... ok [INFO] [stdout] test cli::tests::parse_from_vec ... ok [INFO] [stdout] test cli::tests::load_config_validation_fails_reports_errors ... ok [INFO] [stdout] test cli::tests::load_config_valid_file ... ok [INFO] [stdout] test cli::tests::load_config_wildcard_bind_or_logic ... ok [INFO] [stdout] test config::dynamic_config::tests::build_routing_table_multiple_sites ... ok [INFO] [stdout] test config::dynamic_config::tests::dynamic_config_from_sites_builds_routing_table ... ok [INFO] [stdout] test config::dynamic_config::tests::normalize_host_converts_to_lowercase ... ok [INFO] [stdout] test config::dynamic_config::tests::normalize_host_ipv6_bare ... ok [INFO] [stdout] test config::dynamic_config::tests::normalize_host_ipv6_with_port ... ok [INFO] [stdout] test config::dynamic_config::tests::normalize_host_ipv6_uppercase ... ok [INFO] [stdout] test config::dynamic_config::tests::normalize_host_strips_port ... ok [INFO] [stdout] test config::dynamic_config::tests::concurrent_reload_serialization ... ok [INFO] [stdout] test cli::tests::cli_default_config_path ... ok [INFO] [stdout] test config::dynamic_config::tests::normalize_host_ipv6_long_with_port ... ok [INFO] [stdout] test config::dynamic_config::tests::normalize_host_empty_string ... ok [INFO] [stdout] test config::dynamic_config::tests::normalize_host_no_port ... ok [INFO] [stdout] test cli::tests::load_config_wildcard_bind_rejected_without_flag ... ok [INFO] [stdout] test config::dynamic_config::tests::routing_table_lookup_finds_site ... ok [INFO] [stdout] test config::dynamic_config::tests::routing_table_lookup_unknown_host ... ok [INFO] [stdout] test config::dynamic_config::tests::static_config_diff_detects_changes ... ok [INFO] [stdout] test config::test_fixtures::tests::test_static_config_fixture_is_valid ... ok [INFO] [stdout] test config::static_config::tests::defaults_applied_when_omitted ... ok [INFO] [stdout] test config::static_config::tests::logging_with_file_path ... ok [INFO] [stdout] test config::static_config::tests::deserialize_multi_config ... ok [INFO] [stdout] test config::test_fixtures::tests::test_dynamic_config_fixture_is_valid ... ok [INFO] [stdout] test config::dynamic_config::tests::routing_table_lookup_case_insensitive ... ok [INFO] [stdout] test config::dynamic_config::tests::routing_table_lookup_strips_port ... ok [INFO] [stdout] test config::static_config::tests::deserialize_shared_ip_san ... ok [INFO] [stdout] test config::static_config::tests::site_defaults ... ok [INFO] [stdout] test config::tests::read_and_validate_config_validation_fails ... ok [INFO] [stdout] test config::validation::tests::admin_key_path_absolute_is_valid ... ok [INFO] [stdout] test config::validation::tests::admin_key_path_empty_is_valid ... ok [INFO] [stdout] test config::validation::tests::admin_key_path_relative_is_invalid ... ok [INFO] [stdout] test config::validation::tests::collects_all_errors ... ok [INFO] [stdout] test config::validation::tests::rule10_duplicate_http_bind ... ok [INFO] [stdout] test config::validation::tests::rule11_http_and_https_port_same ... ok [INFO] [stdout] test config::validation::tests::rule13_http_port_disabled_valid ... ok [INFO] [stdout] test config::tests::read_and_validate_config_missing_file ... ok [INFO] [stdout] test config::validation::tests::rule14_health_check_port_conflict ... ok [INFO] [stdout] test config::validation::tests::rule12_https_port_zero ... ok [INFO] [stdout] test config::validation::tests::rule16_hostname_normalized_lowercase ... ok [INFO] [stdout] test config::validation::tests::rule15_site_host_contains_port ... ok [INFO] [stdout] test config::validation::tests::rule16_site_host_is_ip ... ok [INFO] [stdout] test config::validation::tests::rule14_health_check_port_conflict_with_http ... ok [INFO] [stdout] test config::tests::read_and_validate_config_wildcard_bind_allowed_with_flag ... ok [INFO] [stdout] test config::tests::read_and_validate_config_wildcard_bind_rejected_without_flag ... ok [INFO] [stdout] test config::dynamic_config::tests::arcswap_swap_visible_after_reload ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_empty_host ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_hostname_with_dots ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_invalid_ipv6_bracket ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_invalid_hostname_chars ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_invalid_special_chars ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_missing_port ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_port_zero ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_valid_ipv4 ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_valid_ipv6_bracket ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_valid_hostname ... ok [INFO] [stdout] test config::dynamic_config::tests::reload_second_time_different_static_changes ... ok [INFO] [stdout] test config::dynamic_config::tests::reload_rejects_wildcard_bind_when_flag_false ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_valid_ipv6_bracket_full ... ok [INFO] [stdout] test config::validation::tests::rule18_upstream_scheme_invalid ... ok [INFO] [stdout] test config::validation::tests::rule19_acme_contact_empty ... ok [INFO] [stdout] test config::validation::tests::rule19_acme_contact_mailto_no_at_sign ... ok [INFO] [stdout] test config::validation::tests::rule19_acme_contact_valid_mailto ... ok [INFO] [stdout] test config::validation::tests::rule17_upstream_with_scheme ... ok [INFO] [stdout] test config::validation::tests::rule19_acme_contact_not_mailto ... ok [INFO] [stdout] test config::validation::tests::rule19_acme_contact_mailto_empty_email ... ok [INFO] [stdout] test config::validation::tests::rule1_no_listeners ... ok [INFO] [stdout] test config::validation::tests::rule2_wildcard_bind_allowed_by_cli_flag ... ok [INFO] [stdout] test config::validation::tests::rule2_wildcard_bind_or_logic ... ok [INFO] [stdout] test config::validation::tests::rule2_wildcard_bind_allowed_by_config_flag ... ok [INFO] [stdout] test config::validation::tests::rule2_wildcard_bind_rejected ... ok [INFO] [stdout] test config::validation::tests::rule5_cert_path_not_readable ... ok [INFO] [stdout] test config::validation::tests::rule3_duplicate_https_bind ... ok [INFO] [stdout] test config::validation::tests::rule4_acme_domains_empty ... ok [INFO] [stdout] test config::validation::tests::rule5_manual_cert_missing ... ok [INFO] [stdout] test config::validation::tests::rule6_site_host_empty ... ok [INFO] [stdout] test config::validation::tests::rule7_duplicate_site_host ... ok [INFO] [stdout] test config::validation::tests::rule6_site_upstream_empty ... ok [INFO] [stdout] test config::validation::tests::rule5_only_cert_missing ... ok [INFO] [stdout] test config::validation::tests::rule9_body_limit_bytes_zero ... ok [INFO] [stdout] test config::validation::tests::rule8_requests_per_second_zero ... ok [INFO] [stdout] test config::validation::tests::rule5_only_key_missing ... ok [INFO] [stdout] test config::validation::tests::valid_config_passes ... ok [INFO] [stdout] test config::validation::tests::rule5_cert_path_readable ... ok [INFO] [stdout] test health::tests::test_health_check_binds_to_localhost ... ok [INFO] [stdout] test logging::format::tests::kv_visitor_escapes_quotes_in_values ... ok [INFO] [stdout] test logging::format::tests::kv_visitor_formats_simple_key_value ... ok [INFO] [stdout] test logging::format::tests::kv_visitor_handles_empty ... ok [INFO] [stdout] test logging::format::tests::kv_visitor_handles_numeric_values ... ok [INFO] [stdout] test logging::format::tests::kv_visitor_quotes_values_with_spaces ... ok [INFO] [stdout] test config::dynamic_config::tests::reload_accepts_wildcard_bind_when_flag_true ... ok [INFO] [stdout] test logging::tests::init_creates_log_directory_and_file ... ok [INFO] [stdout] test proxy::body_limit::tests::default_body_limit_is_100mb ... ok [INFO] [stdout] 2026-07-09T15:49:22.620768Z WARN reverse_proxy::proxy::error: Bad Gateway host=example.com upstream=127.0.0.1:8080 status=502 [INFO] [stdout] test proxy::error::tests::bad_gateway_content_type ... ok [INFO] [stdout] 2026-07-09T15:49:22.621520Z WARN reverse_proxy::proxy::error: Bad Gateway host=example.com upstream=127.0.0.1:8080 status=502 [INFO] [stdout] test proxy::error::tests::bad_gateway_response ... ok [INFO] [stdout] test proxy::error::tests::error_display_matches_body ... ok [INFO] [stdout] 2026-07-09T15:49:22.635829Z WARN reverse_proxy::proxy::error: Gateway Timeout host=example.com upstream=127.0.0.1:8080 status=504 [INFO] [stdout] test proxy::error::tests::gateway_timeout_content_type ... ok [INFO] [stdout] 2026-07-09T15:49:22.639380Z WARN reverse_proxy::proxy::error: Gateway Timeout host=example.com upstream=127.0.0.1:8080 status=504 [INFO] [stdout] test proxy::error::tests::gateway_timeout_response ... ok [INFO] [stdout] 2026-07-09T15:49:22.643327Z INFO reverse_proxy::proxy::error: RATE_LIMIT client_ip=192.168.1.1 host=example.com path=/api status=429 [INFO] [stdout] test proxy::error::tests::too_many_requests_content_type ... ok [INFO] [stdout] 2026-07-09T15:49:22.644246Z INFO reverse_proxy::proxy::error: RATE_LIMIT client_ip=192.168.1.1 host=example.com path=/api status=429 [INFO] [stdout] test proxy::error::tests::too_many_requests_response ... ok [INFO] [stdout] test config::validation::tests::admin_key_path_traversal_is_invalid ... ok [INFO] [stdout] test config::tests::read_and_validate_config_invalid_toml ... ok [INFO] [stdout] 2026-07-09T15:49:22.700954Z  INFO reverse_proxy::logging::format::tests: prefix="REQUEST" client_ip=203.0.113.50 host=git.alk.dev method=GET path=/user/repo status=200 upstream=127.0.0.1:3000 duration_ms=45 [INFO] [stdout] 2026-07-09T15:49:22.701072Z  WARN reverse_proxy::logging::format::tests: prefix="UPSTREAM_ERROR" host=git.alk.dev upstream=127.0.0.1:3000 error=connection refused [INFO] [stdout] test proxy::handler::tests::test_build_upstream_uri_https ... ok [INFO] [stdout] test logging::format::tests::log_macros_compile ... ok [INFO] [stdout] test proxy::handler::tests::test_build_upstream_uri_with_query ... ok [INFO] [stdout] test config::tests::read_and_validate_config_valid_file ... ok [INFO] [stdout] test proxy::handler::tests::test_build_upstream_uri_without_query ... ok [INFO] [stdout] test config::dynamic_config::tests::reload_second_time_no_further_static_changes ... ok [INFO] [stdout] test config::dynamic_config::tests::reload_rejects_invalid_config ... ok [INFO] [stdout] test proxy::headers::tests::inject_proxy_headers_preserves_host ... ok [INFO] [stdout] test proxy::headers::tests::inject_proxy_headers_sets_x_real_ip ... ok [INFO] [stdout] test proxy::headers::tests::inject_proxy_headers_sets_x_forwarded_proto_to_https ... ok [INFO] [stdout] test proxy::headers::tests::remove_hop_by_hop_empty_headers ... ok [INFO] [stdout] test proxy::headers::tests::inject_proxy_headers_replaces_x_forwarded_for ... ok [INFO] [stdout] test proxy::headers::tests::remove_hop_by_hop_removes_all_listed_headers ... ok [INFO] [stdout] test rate_limit::bucket::tests::normalize_ipv4_unchanged ... ok [INFO] [stdout] test rate_limit::bucket::tests::normalize_loopback_ipv6 ... ok [INFO] [stdout] test rate_limit::bucket::tests::normalize_ipv6_truncates_to_64_prefix ... ok [INFO] [stdout] test rate_limit::bucket::tests::normalize_ipv6_already_64_prefix ... ok [INFO] [stdout] test rate_limit::bucket::tests::token_bucket_config_reload_caps_tokens ... ok [INFO] [stdout] test rate_limit::bucket::tests::token_bucket_consume_within_burst ... ok [INFO] [stdout] test rate_limit::bucket::tests::normalize_ipv6_link_local ... ok [INFO] [stdout] test proxy::headers::tests::remove_hop_by_hop_preserves_other_headers ... ok [INFO] [stdout] test rate_limit::bucket::tests::token_bucket_starts_full ... ok [INFO] [stdout] test rate_limit::bucket::tests::token_bucket_reject_when_empty ... ok [INFO] [stdout] test config::tests::read_and_validate_config_mtime_change_detected ... ok [INFO] [stdout] test rate_limit::tests::check_and_consume_allows_within_burst ... ok [INFO] [stdout] test rate_limit::tests::check_and_consume_ipv6_normalized_to_64 ... ok [INFO] [stdout] test rate_limit::tests::check_and_consume_per_ip_independent ... ok [INFO] [stdout] test rate_limit::bucket::tests::token_bucket_refills_over_time ... ok [INFO] [stdout] test rate_limit::tests::check_and_consume_rejects_above_burst ... ok [INFO] [stdout] test rate_limit::tests::config_reload_adopted_on_next_request ... ok [INFO] [stdout] test rate_limit::tests::evict_removes_stale_entries ... ok [INFO] [stdout] test shutdown::tests::graceful_shutdown_custom_timeout ... ok [INFO] [stdout] test shutdown::tests::graceful_shutdown_new_default_timeout ... ok [INFO] [stdout] test shutdown::tests::graceful_shutdown_subscribe_receives_signal ... ok [INFO] [stdout] test shutdown::tests::graceful_shutdown_trigger ... ok [INFO] [stdout] 2026-07-09T15:49:22.839207Z ERROR reverse_proxy::shutdown: event="CONFIG_RELOAD" status="error" error=Failed to parse config file: TOML parse error at line 1, column 9 [INFO] [stdout] | [INFO] [stdout] 1 | invalid toml {{{ [INFO] [stdout] | ^ [INFO] [stdout] expected `.`, `=` [INFO] [stdout] [INFO] [stdout] test shutdown::tests::sighup_reload_invalid_config_keeps_old ... ok [INFO] [stdout] 2026-07-09T15:49:22.859913Z ERROR reverse_proxy::shutdown: event="CONFIG_RELOAD" status="error" error=IO error reading config file: No such file or directory (os error 2) [INFO] [stdout] test shutdown::tests::sighup_reload_missing_file_logs_error ... ok [INFO] [stdout] 2026-07-09T15:49:22.862777Z WARN reverse_proxy::shutdown: static config fields changed (restart required): listeners, admin_key_path event="CONFIG_RELOAD" status="warning" [INFO] [stdout] 2026-07-09T15:49:22.862924Z INFO reverse_proxy::shutdown: event="CONFIG_RELOAD" status="success" [INFO] [stdout] test shutdown::tests::sighup_reload_valid_config ... ok [INFO] [stdout] test tls::acceptor::tests::test_acme_tls_alpn_value ... ok [INFO] [stdout] test tls::acceptor::tests::test_build_acme_server_config ... ok [INFO] [stdout] test tls::acceptor::tests::test_setup_tls_acme_missing_cache_dir ... ok [INFO] [stdout] test tls::acceptor::tests::test_setup_tls_acme_missing_domains ... ok [INFO] [stdout] test tls::acceptor::tests::test_setup_tls_manual_missing_cert_path ... ok [INFO] [stdout] test tls::acceptor::tests::test_setup_tls_manual_missing_key_path ... ok [INFO] [stdout] test tls::acceptor::tests::test_setup_tls_unknown_mode ... ok [INFO] [stdout] test tls::acme::tests::test_acme_config_custom_directory ... ok [INFO] [stdout] test tls::acme::tests::test_acme_config_multiple_domains ... ok [INFO] [stdout] test tls::acme::tests::test_acme_config_production_directory ... ok [INFO] [stdout] test tls::acme::tests::test_acme_config_staging_directory ... ok [INFO] [stdout] 2026-07-09T15:49:22.896242Z INFO reverse_proxy::tls::acme: ACME state machine created domains=["test.example.com"] cache_dir=/tmp/.tmp0fnL2I directory=https://acme-staging-v02.api.letsencrypt.org/directory [INFO] [stdout] test tls::acme::tests::test_acme_setup_creates_resolver ... ok [INFO] [stdout] test rate_limit::bucket::tests::token_bucket_config_reload_adopts_new_rate ... ok [INFO] [stdout] 2026-07-09T15:49:23.001274Z INFO reverse_proxy::proxy::handler: loaded system root certificates certs_loaded=121 errors=0 [INFO] [stdout] test proxy::handler::tests::missing_host_returns_400 ... ok [INFO] [stdout] test tls::config::tests::test_cipher_suite_restriction ... ok [INFO] [stdout] test tls::config::tests::test_load_certs_empty_file ... ok [INFO] [stdout] test health::tests::test_health_check_returns_200 ... ok [INFO] [stdout] test tls::config::tests::test_load_certs_nonexistent_file ... ok [INFO] [stdout] 2026-07-09T15:49:23.062255Z INFO reverse_proxy::proxy::handler: loaded system root certificates certs_loaded=121 errors=0 [INFO] [stdout] 2026-07-09T15:49:23.063001Z INFO reverse_proxy::admin::handler: event="ADMIN_KEY_ROTATION" status="success" [INFO] [stdout] test proxy::handler::tests::unknown_host_returns_404 ... ok [INFO] [stdout] test tls::config::tests::test_load_private_key_nonexistent_file ... ok [INFO] [stdout] test tls::config::tests::test_no_chacha20_for_tls12 ... ok [INFO] [stdout] test health::tests::test_admin_rotate_key ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_empty_path ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_ipv4_host ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_ipv6_host ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_ipv6_host_non_standard_https_port ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_ipv6_host_with_port ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_non_standard_port ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_path_without_leading_slash ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_root_path_with_query ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_standard_443 ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_strips_host_port ... ok [INFO] [stdout] test health::tests::test_admin_reload_with_wrong_token_returns_401 ... ok [INFO] [stdout] test health::tests::test_health_endpoint_always_200 ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_strips_host_port_non_standard_https ... ok [INFO] [stdout] test health::tests::test_admin_reload_with_no_token_returns_401 ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_with_path ... ok [INFO] [stdout] test utils::tests::strip_port_ipv6_bare ... ok [INFO] [stdout] test utils::tests::strip_port_ipv6_with_long_address ... ok [INFO] [stdout] test utils::tests::strip_port_ipv6_with_port ... ok [INFO] [stdout] test utils::tests::strip_port_plain ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_with_query ... ok [INFO] [stdout] test tls::redirect::tests::test_redirect_url_with_path_and_query ... ok [INFO] [stdout] test utils::tests::strip_port_ipv4_with_port ... ok [INFO] [stdout] test utils::tests::strip_port_with_port ... ok [INFO] [stdout] 2026-07-09T15:49:23.124252Z WARN reverse_proxy::admin::handler: static config fields changed (restart required): listeners, admin_key_path [INFO] [stdout] 2026-07-09T15:49:23.124362Z INFO reverse_proxy::admin::handler: event="CONFIG_RELOAD" status="success" source="admin" [INFO] [stdout] test health::tests::test_admin_reload_with_valid_token ... ok [INFO] [stdout] test health::tests::test_admin_disabled_returns_404 ... ok [INFO] [stdout] 2026-07-09T15:49:23.193875Z WARN reverse_proxy::rate_limit: RATE_LIMIT client_ip=127.0.0.1 host=127.0.0.1:41701 path=/ status=429 [INFO] [stdout] test health::tests::test_admin_status_with_valid_token ... ok [INFO] [stdout] test rate_limit::tests::middleware_ignores_xff_header_same_bucket ... ok [INFO] [stdout] test rate_limit::bucket::tests::token_bucket_caps_at_max ... ok [INFO] [stdout] test rate_limit::tests::middleware_rejects_without_connect_info ... ok [INFO] [stdout] 2026-07-09T15:49:23.256023Z WARN reverse_proxy::rate_limit: RATE_LIMIT client_ip=127.0.0.1 host=127.0.0.1:35839 path=/ status=429 [INFO] [stdout] test tls::config::tests::test_build_manual_server_config ... ok [INFO] [stdout] test tls::config::tests::test_protocol_versions_configured ... ok [INFO] [stdout] test tls::config::tests::test_load_private_key_from_pem ... ok [INFO] [stdout] test tls::config::tests::test_load_certs_from_pem ... ok [INFO] [stdout] test tls::config::tests::test_build_manual_server_config_from_files ... ok [INFO] [stdout] test rate_limit::tests::middleware_uses_connect_info_without_xff_header ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 212 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.87s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/reverse_proxy-3fbdf588f8a95250) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-04e01c68719bb2c4) [INFO] [stdout] [INFO] [stdout] running 37 tests [INFO] [stdout] test test_body_limit_default_is_100mb ... ok [INFO] [stdout] test test_graceful_shutdown_custom_timeout ... ok [INFO] [stdout] test test_health_check_local_port_binds_localhost ... ok [INFO] [stdout] test test_http_redirect_empty_host_returns_400 ... ok [INFO] [stdout] test test_http_redirect_no_host_header_returns_400 ... ok [INFO] [stdout] test test_config_fixtures ... ok [INFO] [stdout] test test_graceful_shutdown_subscribe_multiple_receivers ... ok [INFO] [stdout] test test_graceful_shutdown_trigger ... ok [INFO] [stdout] test test_health_check_binds_random_port_when_zero ... ok [INFO] [stdout] test test_rate_limit_eviction_task ... ok [INFO] [stdout] test test_http_redirect_non_443_port_included_in_url ... ok [INFO] [stdout] test test_body_limit_allows_request_within_limit ... ok [INFO] [stdout] test test_rate_limit_429_response_body ... ok [INFO] [stdout] test test_graceful_shutdown_with_health_check ... ok [INFO] [stdout] test test_body_limit_allows_request_at_exact_limit ... ok [INFO] [stdout] test test_sighup_config_reload_invalid_config_keeps_old ... ok [INFO] [stdout] test test_sighup_config_reload_valid_config ... ok [INFO] [stdout] test test_http_redirect_port_443_omitted_from_url ... ok [INFO] [stdout] test test_http_redirect_returns_301_with_location ... ok [INFO] [stdout] test test_validate_missing_config_file_exits_1 ... ok [INFO] [stdout] test test_validate_invalid_config_exits_1 ... ok [INFO] [stdout] test test_validate_valid_config_exits_0 ... ok [INFO] [stdout] test test_http_redirect_preserves_query_string ... ok [INFO] [stdout] test test_validate_wildcard_bind_via_cli_flag ... ok [INFO] [stdout] test test_rate_limit_allows_within_burst ... ok [INFO] [stdout] test test_http_redirect_acme_challenge_returns_404 ... ok [INFO] [stdout] test test_body_limit_empty_body_request_succeeds ... ok [INFO] [stdout] test test_rate_limit_xff_header_ignored_same_bucket ... ok [INFO] [stdout] test test_rate_limit_per_ip_independent ... ok [INFO] [stdout] test test_self_signed_cert_generation ... ok [INFO] [stdout] test test_rate_limit_rejects_above_burst ... ok [INFO] [stdout] test test_upstream_spawn_and_connect ... ok [INFO] [stdout] test test_rate_limit_without_connect_info_rejected_with_429 ... ok [INFO] [stdout] test test_http_redirect_strips_host_port ... ok [INFO] [stdout] test test_health_check_local_port_returns_200 ... ok [INFO] [stdout] test test_body_limit_content_length_header_rejection ... ok [INFO] [stdout] test test_body_limit_rejects_oversized_request ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.24s [INFO] [stdout] [INFO] [stderr] Doc-tests reverse_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" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0", kill_on_drop: false }` [INFO] [stdout] 7de0dc11a35fee1dcc45347be804c49c22c952f59c9799ccf810652db8a2b8b0