[INFO] cloning repository https://github.com/forgesworn/toll-booth-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/forgesworn/toll-booth-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fforgesworn%2Ftoll-booth-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fforgesworn%2Ftoll-booth-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f51de8ec76bf91a9c3353eab568b094977d0f3a2 [INFO] testing forgesworn/toll-booth-rs against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fforgesworn%2Ftoll-booth-rs" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/forgesworn/toll-booth-rs [INFO] finished tweaking git repo https://github.com/forgesworn/toll-booth-rs [INFO] tweaked toml for git repo https://github.com/forgesworn/toll-booth-rs written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/forgesworn/toll-booth-rs on toolchain 1.100.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/forgesworn/toll-booth-rs 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a [INFO] running `Command { std: "docker" "start" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a", 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" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a", 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" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling zerocopy v0.8.47 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling libsqlite3-sys v0.32.0 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling rusqlite v0.34.0 [INFO] [stderr] Compiling toll-booth v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 1m 55s [INFO] running `Command { std: "docker" "inspect" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a", 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" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling toll-booth v0.2.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 28.81s [INFO] running `Command { std: "docker" "inspect" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a", 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" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.16s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/build/toll-booth/897c2d28bbf964a2/out/toll_booth-897c2d28bbf964a2) [INFO] [stdout] [INFO] [stdout] running 94 tests [INFO] [stdout] test engine::tests::test_free_tier_allows_then_blocks ... ok [INFO] [stdout] test engine::tests::test_free_tier_not_granted_for_unknown_ip ... ok [INFO] [stdout] test engine::tests::test_head_returns_price_headers ... ok [INFO] [stdout] test engine::tests::test_priced_route_returns_402 ... ok [INFO] [stdout] test engine::tests::test_rail_verify_error_blocks_500 ... ok [INFO] [stdout] test engine::tests::test_reconcile ... ok [INFO] [stdout] test engine::tests::test_reconcile_concurrent_requests_same_account ... ok [INFO] [stdout] test engine::tests::test_capitalise_header ... ok [INFO] [stdout] test engine::tests::test_free_tier_proxy_has_remaining_header ... ok [INFO] [stdout] test engine::tests::test_valid_l402_auth_proxies ... ok [INFO] [stdout] test engine::tests::test_402_body_contains_invoice_data ... ok [INFO] [stdout] test engine::tests::test_debit_storage_error_blocks_500 ... ok [INFO] [stdout] test engine::tests::test_reconcile_extreme_values_no_overflow ... ok [INFO] [stdout] test engine::tests::test_challenge_stores_client_ip ... ok [INFO] [stdout] test engine::tests::test_insufficient_credit_returns_402 ... ok [INFO] [stdout] test engine::tests::test_settle_storage_error_blocks_500 ... ok [INFO] [stdout] test engine::tests::test_pending_invoice_per_ip_cap ... ok [INFO] [stdout] test free_tier::tests::credit_free_tier_different_ips ... ok [INFO] [stdout] test engine::tests::test_multiple_requests_debit_correctly ... ok [INFO] [stdout] test engine::tests::test_unknown_ip_invoice_not_attributed ... ok [INFO] [stdout] test engine::tests::test_reconcile_is_one_shot ... ok [INFO] [stdout] test free_tier::tests::credit_free_tier_budget ... ok [INFO] [stdout] test macaroon::tests::decode_rejects_short_identifier ... ok [INFO] [stdout] test free_tier::tests::implausible_ip_rejected ... ok [INFO] [stdout] test macaroon::tests::decode_rejects_wrong_version ... ok [INFO] [stdout] test free_tier::tests::request_free_tier_allows_up_to_limit ... ok [INFO] [stdout] test engine::tests::test_full_402_pay_access_flow ... ok [INFO] [stdout] test free_tier::tests::request_free_tier_remaining ... ok [INFO] [stdout] test free_tier::tests::request_free_tier_separate_ips ... ok [INFO] [stdout] test macaroon::tests::base64_url_roundtrip ... ok [INFO] [stdout] test free_tier::tests::reset_clears_counters ... ok [INFO] [stdout] test macaroon::tests::decode_varint_rejects_overlong_encoding ... ok [INFO] [stdout] test macaroon::tests::derive_key_is_deterministic_and_different_from_input ... ok [INFO] [stdout] test free_tier::tests::poisoned_mutex_fails_closed ... ok [INFO] [stdout] test macaroon::tests::deserialise_rejects_truncated_binary ... ok [INFO] [stdout] test macaroon::tests::encode_decode_l402_identifier_roundtrip ... ok [INFO] [stdout] test macaroon::tests::match_route_wildcard_and_exact ... ok [INFO] [stdout] test macaroon::tests::mint_and_verify_roundtrip ... ok [INFO] [stdout] test macaroon::tests::mint_with_custom_caveats_returned_on_verify ... ok [INFO] [stdout] test macaroon::tests::parse_macaroon_caveats_returns_all_caveats ... ok [INFO] [stdout] test macaroon::tests::root_key_from_hex_rejects_invalid_input ... ok [INFO] [stdout] test macaroon::tests::read_field_rejects_oversized_varint_length ... ok [INFO] [stdout] test free_tier::tests::credit_poisoned_mutex_fails_closed ... ok [INFO] [stdout] test macaroon::tests::varint_roundtrip ... ok [INFO] [stdout] test free_tier::tests::credit_free_tier_zero_cost_passes ... ok [INFO] [stdout] test macaroon::tests::rejects_reserved_custom_caveat_key ... ok [INFO] [stdout] test macaroon::tests::root_key_debug_redacts_key_material ... ok [INFO] [stdout] test macaroon::tests::verify_rejects_duplicate_caveats ... ok [INFO] [stdout] test macaroon::tests::verify_expires_context ... ok [INFO] [stdout] test macaroon::tests::verify_rejects_wrong_root_key ... ok [INFO] [stdout] test macaroon::tests::verify_expires_malformed_fails_closed ... ok [INFO] [stdout] test middleware::axum::tests::test_402_body_is_json ... ok [INFO] [stdout] test macaroon::tests::verify_with_route_context_matching ... ok [INFO] [stdout] test middleware::axum::tests::test_blocked_status_from_engine_is_honoured ... ok [INFO] [stdout] test middleware::axum::tests::test_inbound_toll_tier_stripped_on_free_tier_path ... ok [INFO] [stdout] test middleware::axum::tests::test_inbound_toll_tier_stripped_on_passthrough ... ok [INFO] [stdout] test middleware::axum::tests::test_no_peer_info_fails_closed_for_free_tier ... ok [INFO] [stdout] test macaroon::tests::usd_currency_support ... ok [INFO] [stdout] test engine::tests::test_tiered_pricing_without_default_rejected ... ok [INFO] [stdout] test engine::tests::test_unpriced_route_passes_through ... ok [INFO] [stdout] test middleware::axum::tests::test_xff_honoured_from_trusted_proxy ... ok [INFO] [stdout] test middleware::axum::tests::test_xff_spoofed_leftmost_does_not_evade_quota ... ok [INFO] [stdout] test rails::l402::tests::test_verify_valid_preimage ... ok [INFO] [stdout] test middleware::axum::tests::test_paid_request_passes ... ok [INFO] [stdout] test rails::l402::tests::test_verify_wrong_preimage ... ok [INFO] [stdout] test rails::l402::tests::test_challenge_uses_default_amount ... ok [INFO] [stdout] test middleware::axum::tests::test_xff_ignored_when_peer_untrusted ... ok [INFO] [stdout] test middleware::axum::tests::test_priced_returns_402 ... ok [INFO] [stdout] test storage::memory::tests::debit_sufficient ... ok [INFO] [stdout] test middleware::axum::tests::test_xff_multi_hop_skips_trusted_proxies ... ok [INFO] [stdout] test storage::memory::tests::invoice_status_token_timing_safe ... ok [INFO] [stdout] test rails::l402::tests::test_verify_settlement_secret ... ok [INFO] [stdout] test storage::memory::tests::adjust_credits ... ok [INFO] [stdout] test storage::memory::tests::adjust_credits_overflow_returns_error ... ok [INFO] [stdout] test storage::memory::tests::credit_overflow_returns_error ... ok [INFO] [stdout] test storage::memory::tests::credit_and_balance ... ok [INFO] [stdout] test storage::memory::tests::debit_insufficient ... ok [INFO] [stdout] test storage::memory::tests::dual_currency ... ok [INFO] [stdout] test middleware::axum::tests::test_unpriced_passes_through ... ok [INFO] [stdout] test storage::memory::tests::settle_with_credit_overflow_returns_error ... ok [INFO] [stdout] test storage::memory::tests::settle_with_credit_credits_balance_stores_secret_rejects_second ... ok [INFO] [stdout] test rails::l402::tests::test_rail_type_and_credit_supported ... ok [INFO] [stdout] test storage::memory::tests::prune_stale_records_removes_only_drained_balances ... ok [INFO] [stdout] test storage::memory::tests::settle_once ... ok [INFO] [stdout] test storage::memory::tests::prune_expired_invoices_drops_unparseable_timestamps ... ok [INFO] [stdout] test storage::memory::tests::prune_expired_invoices_removes_old_keeps_recent ... ok [INFO] [stdout] test rails::l402::tests::test_challenge_without_backend ... ok [INFO] [stdout] test rails::l402::tests::test_verify_replay_still_works ... ok [INFO] [stdout] test rails::l402::tests::test_verify_malformed_credentials ... ok [INFO] [stdout] test storage::memory::tests::prune_stale_records_never_touches_settlements ... ok [INFO] [stdout] test rails::l402::tests::test_verify_no_auth_header ... ok [INFO] [stdout] test rails::l402::tests::test_detect_l402_header ... ok [INFO] [stdout] test storage::memory::tests::invoice_storage ... ok [INFO] [stderr] Doc-tests toll_booth [INFO] [stdout] test storage::memory::tests::store_invoice_evicts_oldest_at_capacity ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 94 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.44s [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] running `Command { std: "docker" "inspect" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a", kill_on_drop: false }` [INFO] [stdout] 43c6ed477662e39eddeb03c21434dc5cfeb320fa875047881af71fbaf2a6ba3a