[INFO] fetching crate huskarl-core 0.10.0... [INFO] testing huskarl-core-0.10.0 against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2 [INFO] extracting crate huskarl-core 0.10.0 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate huskarl-core 0.10.0 [INFO] finished tweaking crates.io crate huskarl-core 0.10.0 [INFO] tweaked toml for crates.io crate huskarl-core 0.10.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate huskarl-core 0.10.0 on toolchain 1.99.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate huskarl-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" "+1.99.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-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f [INFO] running `Command { std: "docker" "start" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f", 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" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f", 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" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.107 [INFO] [stderr] Compiling quote v1.0.47 [INFO] [stderr] Compiling writeable v0.6.4 [INFO] [stderr] Compiling litemap v0.8.3 [INFO] [stderr] Compiling icu_properties_data v2.3.0 [INFO] [stderr] Compiling icu_normalizer_data v2.3.0 [INFO] [stderr] Compiling rustversion v1.0.23 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling winnow v1.0.4 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling libc v0.2.189 [INFO] [stderr] Compiling serde_core v1.0.229 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling rand_core v0.10.1 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling zmij v1.0.23 [INFO] [stderr] Compiling serde_json v1.0.151 [INFO] [stderr] Compiling serde v1.0.229 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling chacha20 v0.10.1 [INFO] [stderr] Compiling syn v2.0.119 [INFO] [stderr] Compiling syn v3.0.4 [INFO] [stderr] Compiling futures-task v0.3.34 [INFO] [stderr] Compiling memchr v2.8.3 [INFO] [stderr] Compiling hybrid-array v0.4.14 [INFO] [stderr] Compiling toml_parser v1.1.3+spec-1.1.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling bytes v1.12.1 [INFO] [stderr] Compiling zeroize v1.9.0 [INFO] [stderr] Compiling toml_edit v0.25.13+spec-1.1.0 [INFO] [stderr] Compiling block-buffer v0.12.1 [INFO] [stderr] Compiling crypto-common v0.2.2 [INFO] [stderr] Compiling futures-core v0.3.34 [INFO] [stderr] Compiling futures-util v0.3.34 [INFO] [stderr] Compiling proc-macro-crate v3.5.0 [INFO] [stderr] Compiling http v1.5.0 [INFO] [stderr] Compiling digest v0.11.3 [INFO] [stderr] Compiling sha2 v0.11.0 [INFO] [stderr] Compiling secrecy v0.10.3 [INFO] [stderr] Compiling rand v0.10.2 [INFO] [stderr] Compiling tokio v1.53.1 [INFO] [stderr] Compiling arc-swap v1.9.2 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling darling_core v0.24.1 [INFO] [stderr] Compiling base64 v0.23.1 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling zerovec-derive v0.11.6 [INFO] [stderr] Compiling displaydoc v0.2.7 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling snafu-derive v0.9.2 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling darling_macro v0.24.1 [INFO] [stderr] Compiling yoke v0.8.3 [INFO] [stderr] Compiling darling v0.24.1 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling huskarl-macros v0.4.0 [INFO] [stderr] Compiling zerovec v0.11.8 [INFO] [stderr] Compiling zerotrie v0.2.5 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling snafu v0.9.2 [INFO] [stderr] Compiling bon-macros v3.9.3 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling tinystr v0.8.4 [INFO] [stderr] Compiling potential_utf v0.1.6 [INFO] [stderr] Compiling icu_collections v2.3.0 [INFO] [stderr] Compiling icu_locale_core v2.3.0 [INFO] [stderr] Compiling icu_provider v2.3.1 [INFO] [stderr] Compiling icu_normalizer v2.3.0 [INFO] [stderr] Compiling icu_properties v2.3.0 [INFO] [stderr] Compiling bon v3.9.3 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling huskarl-core v0.10.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 1m 15s [INFO] running `Command { std: "docker" "inspect" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f", 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" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.229 [INFO] [stderr] Compiling serde v1.0.229 [INFO] [stderr] Compiling libc v0.2.189 [INFO] [stderr] Compiling futures-core v0.3.34 [INFO] [stderr] Compiling syn v3.0.4 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_json v1.0.151 [INFO] [stderr] Compiling log v0.4.34 [INFO] [stderr] Compiling futures-sink v0.3.34 [INFO] [stderr] Compiling memchr v2.8.3 [INFO] [stderr] Compiling event-listener v5.4.2 [INFO] [stderr] Compiling aho-corasick v1.1.5 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling rstest_macros v0.26.1 [INFO] [stderr] Compiling futures-channel v0.3.34 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling socket2 v0.6.5 [INFO] [stderr] Compiling regex-automata v0.4.18 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling thiserror v2.0.20 [INFO] [stderr] Compiling crossbeam-utils v0.8.22 [INFO] [stderr] Compiling sha1 v0.10.7 [INFO] [stderr] Compiling async-lock v3.4.2 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling glob v0.3.4 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling bitflags v2.13.1 [INFO] [stderr] Compiling async-object-pool v0.2.0 [INFO] [stderr] Compiling rand v0.10.2 [INFO] [stderr] Compiling tabwriter v1.4.1 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling darling_core v0.24.1 [INFO] [stderr] Compiling path-tree v0.8.3 [INFO] [stderr] Compiling futures-timer v3.0.4 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling zerovec-derive v0.11.6 [INFO] [stderr] Compiling displaydoc v0.2.7 [INFO] [stderr] Compiling tokio-macros v2.7.2 [INFO] [stderr] Compiling zerotrie v0.2.5 [INFO] [stderr] Compiling zerovec v0.11.8 [INFO] [stderr] Compiling futures-macro v0.3.34 [INFO] [stderr] Compiling thiserror-impl v2.0.20 [INFO] [stderr] Compiling regex v1.13.1 [INFO] [stderr] Compiling tinystr v0.8.4 [INFO] [stderr] Compiling icu_locale_core v2.3.0 [INFO] [stderr] Compiling potential_utf v0.1.6 [INFO] [stderr] Compiling darling_macro v0.24.1 [INFO] [stderr] Compiling futures-util v0.3.34 [INFO] [stderr] Compiling icu_collections v2.3.0 [INFO] [stderr] Compiling darling v0.24.1 [INFO] [stderr] Compiling huskarl-macros v0.4.0 [INFO] [stderr] Compiling async-trait v0.1.92 [INFO] [stderr] Compiling stringmetrics v2.2.2 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling fastrand v2.5.0 [INFO] [stderr] Compiling icu_provider v2.3.1 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling bytes v1.12.1 [INFO] [stderr] Compiling icu_properties v2.3.0 [INFO] [stderr] Compiling icu_normalizer v2.3.0 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling http v1.5.0 [INFO] [stderr] Compiling tokio v1.53.1 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling serde_regex v1.2.0 [INFO] [stderr] Compiling http-body v1.1.0 [INFO] [stderr] Compiling headers-core v0.3.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling http-body-util v0.1.5 [INFO] [stderr] Compiling headers v0.4.1 [INFO] [stderr] Compiling rstest v0.26.1 [INFO] [stderr] Compiling tokio-util v0.7.19 [INFO] [stderr] Compiling huskarl-core v0.10.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling h2 v0.4.18 [INFO] [stderr] Compiling hyper v1.11.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling httpmock v0.8.3 [INFO] [stderr] Finished `release` profile [optimized] target(s) in 3m 24s [INFO] running `Command { std: "docker" "inspect" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f", 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" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.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/deps/huskarl_core-bfb7d105977d228e) [INFO] [stdout] [INFO] [stdout] running 475 tests [INFO] [stdout] test authorization_details::tests::json_value_is_a_native_array ... ok [INFO] [stdout] test client_auth::client_secret::tests::authentication_context_basic ... ok [INFO] [stdout] test authorization_details::tests::form_value_is_a_json_array_round_trips ... ok [INFO] [stdout] test client_auth::client_secret::tests::authentication_context_post ... ok [INFO] [stdout] test client_auth::client_secret::tests::select_method_empty_defaults_to_post ... ok [INFO] [stdout] test client_auth::client_secret::tests::select_method_both_prefer_basic ... ok [INFO] [stdout] test client_auth::client_secret::tests::select_method_post_only ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::assertion_is_explicitly_typed_by_default ... ok [INFO] [stdout] test client_auth::client_secret::tests::select_method_none_defaults_to_post ... ok [INFO] [stdout] test client_auth::client_secret::tests::basic_percent_encodes_special_chars ... ok [INFO] [stdout] test client_auth::client_secret::tests::select_method_both_defaults_to_post ... ok [INFO] [stdout] test client_auth::client_secret::tests::select_method_basic_only ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::audience_custom ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::audience_issuer_without_issuer_fails_closed ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::audience_target_endpoint_uses_target_not_token ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::audience_token_endpoint_without_token_endpoint_fails_closed ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::audience_token_endpoint_uses_token_not_target ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::explicit_typ_opt_out_restores_plain_jwt ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::form_params_structure ... ok [INFO] [stdout] test client_auth::tests::erased_authentication_dispatches ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::subject_override ... ok [INFO] [stdout] test crypto::cipher::error::retryability_tests::other_preserves_the_complete_classification ... ok [INFO] [stdout] test crypto::cipher::error::retryability_tests::the_whole_advice_survives_conversion ... ok [INFO] [stdout] test crypto::cipher::error::retryability_tests::retry_advice_keeps_the_delay_is_retryable_cannot_carry ... ok [INFO] [stdout] test crypto::cipher::error::retryability_tests::retryability_survives_conversion ... ok [INFO] [stdout] test crypto::cipher::multi::tests::algorithm_match_skips_a_failing_key ... ok [INFO] [stdout] test crypto::cipher::multi::tests::cipher_match_aggregates_strength::case_1_by_kid_wins ... ok [INFO] [stdout] test client_auth::jwt_bearer::tests::audience_issuer_with_issuer ... ok [INFO] [stdout] test crypto::cipher::multi::tests::by_key_id_match_is_used_exclusively ... ok [INFO] [stdout] test crypto::cipher::multi::tests::cipher_match_aggregates_strength::case_2_algorithm_when_no_kid ... ok [INFO] [stdout] test crypto::cipher::multi::tests::cipher_match_aggregates_strength::case_3_none_when_nothing_matches ... ok [INFO] [stdout] test authorization_details::tests::try_from_value_requires_type ... ok [INFO] [stdout] test crypto::cipher::multi::tests::algorithm_matches_are_tried_in_order ... ok [INFO] [stdout] test crypto::cipher::multi::tests::no_candidate_match_does_not_attempt_decryption ... ok [INFO] [stdout] test crypto::cipher::multi::tests::no_matching_key_is_not_recorded_as_a_real_failure ... ok [INFO] [stdout] test crypto::cipher::multi::tests::non_retryable_failure_is_preferred_over_retryable ... ok [INFO] [stdout] test crypto::cipher::multi::tests::retryable_failure_surfaces_when_it_is_the_only_real_error ... ok [INFO] [stdout] test crypto::cipher::multi::tests::rotated_cookie_keys_seal_new_and_unseal_old ... ok [INFO] [stdout] test crypto::cipher::multi::tests::without_cipher_match_falls_through_no_matching_key ... ok [INFO] [stdout] test crypto::cipher::multi::tests::try_refresh_is_true_if_any_inner_refreshes::case_2_none_refresh ... ok [INFO] [stdout] test crypto::cipher::refreshable::tests::refresh_swaps_cipher_for_all_clones ... ok [INFO] [stdout] test crypto::cipher::refreshable::tests::try_refresh_swaps_through_dyn_decryptor ... ok [INFO] [stdout] test crypto::cipher::multi::tests::without_cipher_match_tries_all_keys_in_order ... ok [INFO] [stdout] test crypto::cipher::retrying::tests::real_failures_are_not_retried ... ok [INFO] [stdout] test crypto::cipher::multi::tests::multi_key_cipher_delegates_each_direction ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::cipher_match_delegates_to_inner ... ok [INFO] [stdout] test crypto::cipher::multi::tests::try_refresh_is_true_if_any_inner_refreshes::case_1_one_refreshes ... ok [INFO] [stdout] test crypto::cipher::retrying::tests::retries_after_refresh_on_no_matching_key ... ok [INFO] [stdout] test crypto::cipher::retrying::tests::retries_only_once ... ok [INFO] [stdout] test crypto::cipher::multi::tests::try_refresh_is_true_if_any_inner_refreshes::case_3_empty ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::refresh_if_stale_respects_ttl_policy::case_1_blocked_while_fresh ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::refresh_if_stale_respects_ttl_policy::case_2_allowed_when_stale ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::stale_keyset_reloads_before_decrypt_and_retires_the_key ... ok [INFO] [stdout] test crypto::cipher::tests::strength_for_enc_mismatch ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::selected_encryptor_kid_and_output_agree_across_a_rotation ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::selected_encryptor_exposes_inner_metadata ... ok [INFO] [stdout] test crypto::cipher::tests::strength_for_no_enc_is_compatible ... ok [INFO] [stdout] test crypto::refreshable::tests::cold_backoff_gates_the_first_retry ... ok [INFO] [stdout] test crypto::refreshable::tests::cold_start_seeds_then_recovers ... ok [INFO] [stdout] test crypto::refreshable::tests::miss_refresh_fetches_within_ttl ... ok [INFO] [stdout] test crypto::refreshable::tests::miss_refresh_is_rate_limited ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::forced_refresh_bypasses_policy ... ok [INFO] [stdout] test crypto::refreshable::tests::no_fallback_keeps_initial_failure_fatal ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::fresh_keyset_decrypts_without_reload ... ok [INFO] [stdout] test crypto::cipher::tests::strength_for_missing_kid_falls_back_to_algorithm ... ok [INFO] [stdout] test crypto::refreshable::tests::queued_misses_do_not_hammer_failing_upstream ... ok [INFO] [stdout] test crypto::refreshable::tests::queued_waiters_blocked_by_failure_backoff_under_lock ... ok [INFO] [stdout] test crypto::refreshable::tests::read_path_reloads_when_stale ... ok [INFO] [stdout] test crypto::refreshable::tests::refresh_if_stale_is_ttl_gated ... ok [INFO] [stdout] test crypto::seal::tests::bundle_format ... ok [INFO] [stdout] test crypto::seal::tests::erased_cipher_roundtrip ... ok [INFO] [stdout] test crypto::seal::tests::erased_sealer_unsealer_satisfies_combined_bound ... ok [INFO] [stdout] test crypto::seal::tests::seal_roundtrip ... ok [INFO] [stdout] test crypto::seal::tests::unseal_empty ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::decryptor_try_refresh_is_not_ttl_gated ... ok [INFO] [stdout] test crypto::cipher::scheduled::tests::encrypt_and_decrypt_delegate_to_inner ... ok [INFO] [stdout] test crypto::seal::tests::unseal_forwards_kid_as_cipher_match ... ok [INFO] [stdout] test crypto::cipher::tests::strength_for_kid_mismatch_is_none_not_by_algorithm ... ok [INFO] [stdout] test crypto::cipher::tests::strength_for_matching_kid ... ok [INFO] [stdout] test crypto::seal::tests::unseal_truncated ... ok [INFO] [stdout] test crypto::refreshable::tests::read_path_skips_within_ttl ... ok [INFO] [stdout] test crypto::seal::tests::unseal_wrong_version ... ok [INFO] [stdout] test crypto::signer::multi::tests::select_by_thumbprint_searches_default_then_additional ... ok [INFO] [stdout] test crypto::refreshable::tests::refresh_gated_blocked_skips_factory ... ok [INFO] [stdout] test crypto::signer::refreshable::tests::clones_share_the_same_swappable_state ... ok [INFO] [stdout] test crypto::signer::refreshable::tests::refresh_swaps_in_the_next_generation ... ok [INFO] [stdout] test crypto::signer::scheduled::tests::forced_refresh_bypasses_policy ... ok [INFO] [stdout] test crypto::signer::refreshable::tests::factory_runs_immediately_for_initial_value ... ok [INFO] [stdout] test crypto::signer::multi::tests::select_by_thumbprint_returns_none_for_unknown_key ... ok [INFO] [stdout] test crypto::verifier::error::retryability_tests::keys_unavailable_converts_to_a_retryable_transport_failure ... ok [INFO] [stdout] test crypto::signer::scheduled::tests::refresh_if_stale_respects_ttl_policy::case_1_blocked_while_fresh ... ok [INFO] [stdout] test crypto::signer::multi::tests::select_returns_the_default_signer ... ok [INFO] [stdout] test crypto::signer::scheduled::tests::refresh_if_stale_respects_ttl_policy::case_2_allowed_when_stale ... ok [INFO] [stdout] test crypto::verifier::error::retryability_tests::retry_advice_keeps_the_delay_is_retryable_cannot_carry ... ok [INFO] [stdout] test crypto::verifier::error::retryability_tests::other_preserves_the_complete_classification ... ok [INFO] [stdout] test crypto::verifier::error::retryability_tests::the_whole_advice_survives_conversion ... ok [INFO] [stdout] test crypto::verifier::multi::verdict_propagation::a_factory_verdict_survives_verifier_construction ... ok [INFO] [stdout] test crypto::verifier::multi::verdict_propagation::a_missing_jwks_uri_is_configuration ... ok [INFO] [stdout] test crypto::verifier::multi::verdict_propagation::an_unsupported_key_propagates_instead_of_reclassifying ... ok [INFO] [stdout] test crypto::verifier::refreshable::tests::refresh_swaps_the_inner_verifier ... ok [INFO] [stdout] test crypto::verifier::retrying::tests::no_matching_key_without_new_material_returns_the_miss ... ok [INFO] [stdout] test crypto::verifier::retrying::tests::signature_mismatch_does_not_reload ... ok [INFO] [stdout] test crypto::verifier::scheduled::tests::cold_verify_recovers_when_upstream_returns ... ok [INFO] [stdout] test crypto::verifier::scheduled::tests::cold_verify_reports_keys_unavailable_while_upstream_down ... ok [INFO] [stdout] test crypto::verifier::refreshable::tests::delegates_to_the_initial_verifier ... ok [INFO] [stdout] test crypto::verifier::refreshable::tests::try_refresh_reports_success_and_swaps ... ok [INFO] [stdout] test crypto::verifier::retrying::tests::no_matching_key_refreshes_and_recovers ... ok [INFO] [stdout] test crypto::verifier::scheduled::tests::fresh_keyset_is_not_reloaded ... ok [INFO] [stdout] test crypto::seal::tests::unseal_too_short ... ok [INFO] [stdout] test crypto::verifier::scheduled::tests::read_path_reload_is_rate_limited ... ok [INFO] [stdout] test crypto::verifier::scheduled::tests::stale_keyset_reloads_before_verify_and_retires_the_key ... ok [INFO] [stdout] test crypto::verifier::tests::strength_for_matching_kid ... ok [INFO] [stdout] test crypto::verifier::error::retryability_tests::retryability_survives_conversion ... ok [INFO] [stdout] test crypto::verifier::tests::strength_for_multiple_supported_algorithms ... ok [INFO] [stdout] test crypto::verifier::scheduled::tests::retrying_over_scheduled_picks_up_an_added_key_within_ttl ... ok [INFO] [stdout] test crypto::verifier::tests::strength_for_kid_mismatch_is_none_not_by_algorithm ... ok [INFO] [stdout] test crypto::verifier::tests::strength_for_no_registered_kid ... ok [INFO] [stdout] test crypto::verifier::tests::strength_for_no_requested_kid ... ok [INFO] [stdout] test crypto::verifier::tests::strength_for_unsupported_algorithm ... ok [INFO] [stdout] test dpop::implementation::tests::dpop_proof_no_thumbprint ... ok [INFO] [stdout] test dpop::implementation::tests::dpop_proof_with_nonce ... ok [INFO] [stdout] test dpop::implementation::tests::hash_access_token_known_value ... ok [INFO] [stdout] test dpop::implementation::tests::normalize_uri_passthrough ... ok [INFO] [stdout] test dpop::implementation::tests::dpop_proof_wrong_thumbprint ... ok [INFO] [stdout] test dpop::implementation::tests::fixed_dpop_rejects_session_key ... ok [INFO] [stdout] test dpop::implementation::tests::no_dpop_rejects_session_key ... ok [INFO] [stdout] test dpop::implementation::tests::normalize_uri_scheme_and_authority_only ... ok [INFO] [stdout] test dpop::implementation::tests::resource_dpop_per_origin_nonce ... ok [INFO] [stdout] test dpop::implementation::tests::resource_dpop_proof_has_ath ... ok [INFO] [stdout] test dpop::implementation::tests::dpop_proof_success ... ok [INFO] [stdout] test dpop::implementation::tests::normalize_uri_strips_query_and_fragment ... ok [INFO] [stdout] test dpop::implementation::tests::session_keyed_dpop_binds_session_key ... ok [INFO] [stdout] test dpop::implementation::tests::session_keyed_dpop_shares_nonce_across_sessions ... ok [INFO] [stdout] test dpop::no_dpop::tests::erased_no_dpop_dispatches ... ok [INFO] [stdout] test dpop::implementation::tests::session_keyed_dpop_without_key_errors ... ok [INFO] [stdout] test dpop::nonce::tests::garbage_nonce_is_invalid ... ok [INFO] [stdout] test dpop::nonce::tests::expired_nonce_is_invalid ... ok [INFO] [stdout] test dpop::nonce::tests::missing_nonce_is_invalid_and_issues_one_that_validates ... ok [INFO] [stdout] test endpoint_url::tests::accepts_absolute_http_for_loopback_and_test_servers ... ok [INFO] [stdout] test endpoint_url::tests::accepts_and_preserves_query ... ok [INFO] [stdout] test dpop::nonce::tests::nonce_in_renewal_window_rotates ... ok [INFO] [stdout] test endpoint_url::tests::converts_back_to_uri ... ok [INFO] [stdout] test endpoint_url::tests::display_matches_inner_uri ... ok [INFO] [stdout] test endpoint_url::tests::accepts_absolute_https ... ok [INFO] [stdout] test endpoint_url::tests::rejects_fragment::case_1_bare_fragment ... ok [INFO] [stdout] test endpoint_url::tests::parse_via_fromstr ... ok [INFO] [stdout] test endpoint_url::tests::rejects_fragment::case_2_query_then_fragment ... ok [INFO] [stdout] test endpoint_url::tests::rejects_invalid_endpoint::case_1_relative_reference ... ok [INFO] [stdout] test endpoint_url::tests::rejects_fragment::case_3_empty_fragment ... ok [INFO] [stdout] test endpoint_url::tests::rejects_invalid_endpoint::case_2_scheme_without_authority ... ok [INFO] [stdout] test endpoint_url::tests::rejects_invalid_endpoint::case_3_authority_only_without_scheme ... ok [INFO] [stdout] test endpoint_url::tests::rejects_non_http_scheme::case_1_ftp ... ok [INFO] [stdout] test endpoint_url::tests::rejects_non_http_scheme::case_2_websocket ... ok [INFO] [stdout] test endpoint_url::tests::rejects_non_http_scheme::case_3_custom_scheme ... ok [INFO] [stdout] test endpoint_url::tests::rejects_userinfo::case_1_credentials ... ok [INFO] [stdout] test endpoint_url::tests::rejects_userinfo::case_2_bare_user ... ok [INFO] [stdout] test endpoint_url::tests::rejects_userinfo_via_uri_conversion ... ok [INFO] [stdout] test endpoint_url::tests::serde_round_trips_as_a_string ... ok [INFO] [stdout] test endpoint_url::tests::uri_conversion_is_checked ... ok [INFO] [stdout] test error::tests::a_leaf_cause_is_left_alone ... ok [INFO] [stdout] test error::tests::a_reporter_sees_each_message_once ... ok [INFO] [stdout] test error::tests::a_supplied_error_is_still_recoverable ... ok [INFO] [stdout] test error::tests::advice_is_whatever_the_site_established ... ok [INFO] [stdout] test error::tests::alternate_display_renders_the_whole_chain ... ok [INFO] [stdout] test error::tests::debug_names_the_public_error_type ... ok [INFO] [stdout] test error::tests::location_is_the_construction_site ... ok [INFO] [stdout] test error::tests::location_survives_the_question_mark_through_a_from_impl ... ok [INFO] [stdout] test error::tests::propagate_carries_the_classification_whole ... ok [INFO] [stdout] test error::size::error_is_pointer_sized ... ok [INFO] [stdout] test error::tests::the_erasure_is_transparent ... ok [INFO] [stdout] test http::tests::a_code_on_an_unimplemented_status_is_still_not_a_verdict ... ok [INFO] [stdout] test http::tests::a_retryable_rejection_honours_retry_after ... ok [INFO] [stdout] test http::tests::a_rejection_naming_a_server_condition_is_retryable::case_1_temporarily_unavailable ... ok [INFO] [stdout] test http::tests::a_rejection_naming_a_server_condition_is_retryable::case_2_server_error ... ok [INFO] [stdout] test http::tests::a_retry_after_does_not_make_a_terminal_rejection_retryable ... ok [INFO] [stdout] test http::tests::a_success_is_not_a_failed_response::case_2_created ... ok [INFO] [stdout] test http::tests::a_success_is_not_a_failed_response::case_1_ok ... ok [INFO] [stdout] test http::tests::a_success_is_not_a_failed_response::case_5_redirect ... ok [INFO] [stdout] test http::tests::a_success_is_not_a_failed_response::case_6_bad_request ... ok [INFO] [stdout] test http::tests::a_success_is_not_a_failed_response::case_7_unavailable ... ok [INFO] [stdout] test http::tests::a_transient_status_outranks_the_body ... ok [INFO] [stdout] test http::tests::a_success_is_not_a_failed_response::case_3_no_content ... ok [INFO] [stdout] test http::tests::a_verdict_is_what_makes_a_4xx_a_rejection ... ok [INFO] [stdout] test http::tests::an_ordinary_rejection_stays_terminal::case_1_access_denied ... ok [INFO] [stdout] test http::tests::an_absent_retry_after_is_no_delay ... ok [INFO] [stdout] test error::propagation::tests::a_false_establishment_names_the_origin_fix - should panic ... ok [INFO] [stdout] test http::tests::a_success_is_not_a_failed_response::case_4_last_success ... ok [INFO] [stdout] test error::tests::classifying_over_an_already_classified_error_panics - should panic ... ok [INFO] [stdout] test error::tests::a_classification_two_layers_down_is_still_found - should panic ... ok [INFO] [stdout] test http::tests::an_ordinary_rejection_stays_terminal::case_2_invalid_grant ... ok [INFO] [stdout] test http::tests::an_ordinary_rejection_stays_terminal::case_3_invalid_scope ... ok [INFO] [stdout] test http::tests::an_oversized_delay_is_clamped_rather_than_discarded::case_1_a_week ... ok [INFO] [stdout] test http::tests::an_oversized_delay_is_clamped_rather_than_discarded::case_2_just_over ... ok [INFO] [stdout] test http::tests::an_oversized_delay_is_clamped_rather_than_discarded::case_3_max ... ok [INFO] [stdout] test http::tests::an_oversized_delay_is_clamped_rather_than_discarded::case_4_the_ceiling ... ok [INFO] [stdout] test http::tests::an_unimplemented_endpoint_is_not_a_transient_outage::case_2_version_not_supported ... ok [INFO] [stdout] test http::tests::delta_seconds_wins_over_the_clock ... ok [INFO] [stdout] test http::tests::an_unimplemented_endpoint_is_not_a_transient_outage::case_1_not_implemented ... ok [INFO] [stdout] test http::tests::erased_clients_still_implement_the_trait ... ok [INFO] [stdout] test http::tests::every_http_date_spelling_is_accepted::case_2_rfc850 ... ok [INFO] [stdout] test http::tests::every_http_date_spelling_is_accepted::case_3_asctime ... ok [INFO] [stdout] test http::tests::every_http_date_spelling_is_accepted::case_1_imf_fixdate ... ok [INFO] [stdout] test http::tests::get_carries_retry_after_through ... ok [INFO] [stdout] test http::tests::get_classifies_a_4xx_as_protocol ... ok [INFO] [stdout] test http::tests::get_classifies_a_5xx_as_a_retryable_server_condition ... ok [INFO] [stdout] test http::tests::into_error_honours_retry_after ... ok [INFO] [stdout] test http::tests::get_deserializes_through_dyn_client ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_02_unauthorized ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_03_forbidden ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_04_not_found ... ok [INFO] [stdout] test http::tests::into_error_rejects_an_already_classified_cause - should panic ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_05_ok ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_06_too_many_requests ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_01_bad_request ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_07_internal ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_08_bad_gateway ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_09_unavailable ... ok [INFO] [stdout] test http::tests::only_5xx_and_429_are_transient::case_10_gateway_timeout ... ok [INFO] [stdout] test http::tests::retry_after_tolerates_surrounding_whitespace ... ok [INFO] [stdout] test http::tests::the_http_date_form_is_read_as_a_delay ... ok [INFO] [stdout] test http::tests::truncated_body_debug_is_bounded_and_escaped ... ok [INFO] [stdout] test http::tests::unparseable_retry_after_leaves_the_delay_unknown::case_1_word ... ok [INFO] [stdout] test http::tests::unparseable_retry_after_leaves_the_delay_unknown::case_3_exponent ... ok [INFO] [stdout] test http::tests::only_an_undecided_status_lets_the_body_be_a_verdict ... ok [INFO] [stdout] test http::tests::unparseable_retry_after_leaves_the_delay_unknown::case_4_malformed_date ... ok [INFO] [stdout] test jwk::decode::tests::oct_bytes_stamps_alg_and_kid ... ok [INFO] [stdout] test http::tests::unparseable_retry_after_leaves_the_delay_unknown::case_2_negative ... ok [INFO] [stdout] test jwk::decode::tests::oct_bytes_without_kid_leaves_it_empty ... ok [INFO] [stdout] test jwk::decode::tests::parses_a_private_jwk_and_keeps_its_kid_and_alg ... ok [INFO] [stdout] test jwk::decode::tests::parses_an_oct_jwk_as_symmetric ... ok [INFO] [stdout] test jwk::decode::tests::rejects_json_without_private_material ... ok [INFO] [stdout] test jwk::decode::tests::rejects_malformed_json ... ok [INFO] [stdout] test jwk::tests::test_asymmetric_private_jwk_builder ... ok [INFO] [stdout] test jwk::tests::test_jwks_non_array_keys_still_fails ... ok [INFO] [stdout] test jwk::tests::test_jwks_to_public_filters_oct ... ok [INFO] [stdout] test jwk::source::tests::fetched_jwks_over_default_limit_is_rejected ... ok [INFO] [stdout] test jwk::tests::test_jwks_with_malformed_known_kty_key_parses ... ok [INFO] [stdout] test jwk::tests::test_jwks_with_unknown_kty_parses ... ok [INFO] [stdout] test jwk::tests::test_known_key_operations_parse ... ok [INFO] [stdout] test jwk::tests::test_oct_key_eq_is_still_equality ... ok [INFO] [stdout] test jwk::tests::test_other_prime_info_debug_hides_secrets ... ok [INFO] [stdout] test jwk::tests::test_parse_jwks_appendix_a1 ... ok [INFO] [stdout] test jwk::source::tests::fetched_jwks_at_limit_is_accepted ... ok [INFO] [stdout] test jwk::tests::test_parse_jwks_appendix_a2 ... ok [INFO] [stdout] test jwk::tests::test_parse_jwks_appendix_a3 ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_from_rsa ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_kid_fallback ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_from_okp ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_none_for_unknown ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_none_for_public_only ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_from_ec ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_to_public_jwk ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_thumbprint_matches_public ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_try_from_wrong_variant ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_to_jwk_roundtrip ... ok [INFO] [stdout] test jwk::tests::test_private_jwk_symmetric_for_oct ... ok [INFO] [stdout] test jwk::tests::test_private_key_debug_hides_secrets ... ok [INFO] [stdout] test jwk::tests::test_private_key_ec_some ... ok [INFO] [stdout] test jwk::tests::test_private_key_none_for_oct_and_unknown ... ok [INFO] [stdout] test jwk::tests::test_private_key_none_when_d_absent ... ok [INFO] [stdout] test jwk::tests::test_private_key_okp_some ... ok [INFO] [stdout] test jwk::tests::test_private_key_public_key_strips_material ... ok [INFO] [stdout] test jwk::tests::test_private_key_roundtrip_ec ... ok [INFO] [stdout] test jwk::tests::test_private_key_roundtrip_okp ... ok [INFO] [stdout] test jwk::tests::test_private_key_roundtrip_rsa ... ok [INFO] [stdout] test jwk::tests::test_private_key_rsa_some ... ok [INFO] [stdout] test jwk::tests::test_public_jwk_none_for_oct ... ok [INFO] [stdout] test jwk::tests::test_public_jwk_records_private_parameter_presence ... ok [INFO] [stdout] test jwk::tests::test_public_jwk_strips_private_material ... ok [INFO] [stdout] test jwk::tests::test_roundtrip_key::case_1_ec ... ok [INFO] [stdout] test jwk::tests::test_roundtrip_key::case_2_rsa ... ok [INFO] [stdout] test jwk::tests::test_roundtrip_key::case_3_okp ... ok [INFO] [stdout] test jwk::tests::test_roundtrip_key::case_4_oct ... ok [INFO] [stdout] test jwk::tests::test_rsa_key_with_oth_roundtrip ... ok [INFO] [stdout] test jwk::tests::test_rsa_key_without_crt_params ... ok [INFO] [stdout] test jwk::tests::test_symmetric_jwk_to_jwk_roundtrip ... ok [INFO] [stdout] test jwk::tests::test_rsa_key_without_oth_has_none ... ok [INFO] [stdout] test jwk::tests::test_thumbprint_rfc7638_known_answer ... ok [INFO] [stdout] test jwk::tests::test_thumbprint_rfc8037_okp_known_answer ... ok [INFO] [stdout] test jwk::tests::test_unknown_curve_parses ... ok [INFO] [stdout] test jwk::tests::test_thumbprint_via_public_jwk ... ok [INFO] [stdout] test jwk::tests::test_unknown_key_operation_parses ... ok [INFO] [stdout] test jwk::tests::test_unknown_variants_do_not_serialize ... ok [INFO] [stdout] test jwt::builder::tests::to_jws_compact_no_kid ... ok [INFO] [stdout] test jwt::parse::tests::rejects_wrong_part_counts ... ok [INFO] [stdout] test jwt::builder::tests::to_jws_compact_with_extra_headers_and_claims ... ok [INFO] [stdout] test jwt::builder::tests::to_jws_compact_with_all_fields ... ok [INFO] [stdout] test jwk::tests::test_unknown_key_use_parses ... ok [INFO] [stdout] test jwt::builder::tests::to_jws_compact_basic ... ok [INFO] [stdout] test jwt::parse::tests::rejects_dot_flood_without_amplification ... ok [INFO] [stdout] test jwt::parse::tests::test_rfc_7519_example ... ok [INFO] [stdout] test jwt::structure::tests::all_timestamps ... ok [INFO] [stdout] test jwt::structure::tests::aud_deserialize::case_2_array ... ok [INFO] [stdout] test jwt::structure::tests::aud_deserialize::case_3_null ... ok [INFO] [stdout] test jwt::structure::tests::aud_serialize_empty ... ok [INFO] [stdout] test jwt::structure::tests::aud_deserialize::case_4_absent ... ok [INFO] [stdout] test jwt::structure::tests::aud_serialize_multiple ... ok [INFO] [stdout] test jwt::structure::tests::aud_serialize_single ... ok [INFO] [stdout] test jwt::structure::tests::confirmation_claim_roundtrip ... ok [INFO] [stdout] test jwt::structure::tests::timestamp_absent ... ok [INFO] [stdout] test jwt::structure::tests::confirmation_claim_skips_none ... ok [INFO] [stdout] test jwt::structure::tests::timestamp_float_truncates ... ok [INFO] [stdout] test jwt::structure::tests::timestamp_integer ... ok [INFO] [stdout] test jwt::structure::tests::timestamp_negative_errors ... ok [INFO] [stdout] test jwt::structure::tests::timestamp_null ... ok [INFO] [stdout] test jwt::validator::claim_check::tests::plain_strings_convert_to_required_value ... ok [INFO] [stdout] test jwt::structure::tests::timestamp_overflowing_system_time_errors ... ok [INFO] [stdout] test jwt::validator::tests::an_invalid_signature_is_terminal_but_an_unavailable_keyset_is_not ... ok [INFO] [stdout] test jwt::validator::tests::aud_empty_when_required ... ok [INFO] [stdout] test jwt::validator::tests::aud_required_value_not_in_list ... ok [INFO] [stdout] test jwt::validator::tests::iss_if_present_absent_ok ... ok [INFO] [stdout] test jwt::validator::tests::clock_leeway_allows_slightly_expired ... ok [INFO] [stdout] test jwt::validator::tests::iss_if_present_mismatch ... ok [INFO] [stdout] test jwt::structure::tests::aud_deserialize::case_1_string ... ok [INFO] [stdout] test jwt::validator::tests::infrastructure_failures_preserve_their_complete_classification ... ok [INFO] [stdout] test jwt::validator::tests::iss_mismatch_is_rejected::case_1_required_value ... ok [INFO] [stdout] test jwt::validator::tests::iss_mismatch_is_rejected::case_2_require_any ... ok [INFO] [stdout] test jwt::validator::tests::iss_present_missing ... ok [INFO] [stdout] test jwt::validator::tests::jti_too_long ... ok [INFO] [stdout] test jwt::validator::tests::max_representable_exp_with_leeway_does_not_panic ... ok [INFO] [stdout] test jwt::validator::tests::max_token_age_allows_future_iat_within_leeway ... ok [INFO] [stdout] test jwt::validator::tests::max_token_age_far_future_iat_is_issued_in_future ... ok [INFO] [stdout] test jwt::validator::tests::max_token_age_missing_iat ... ok [INFO] [stdout] test jwt::validator::tests::max_token_age_old_token ... ok [INFO] [stdout] test jwt::validator::tests::normalize_typ_non_char_boundary ... ok [INFO] [stdout] test jwt::validator::tests::overflowing_exp_is_a_parse_error_not_a_panic ... ok [INFO] [stdout] test jwt::validator::tests::reject_alg_none ... ok [INFO] [stdout] test jwt::validator::tests::reject_disallowed_algorithm ... ok [INFO] [stdout] test jwt::validator::tests::reject_expired_token ... ok [INFO] [stdout] test jwt::validator::tests::reject_issued_in_future ... ok [INFO] [stdout] test jwt::validator::tests::reject_not_yet_valid ... ok [INFO] [stdout] test jwt::validator::tests::require_exp_missing ... ok [INFO] [stdout] test jwt::validator::tests::reject_unrecognized_crit ... ok [INFO] [stdout] test jwt::validator::tests::require_jti_missing ... ok [INFO] [stdout] test jwt::validator::tests::require_iat_missing ... ok [INFO] [stdout] test jwt::validator::tests::test_validate_custom_claims_failure ... ok [INFO] [stdout] test jwt::validator::tests::test_validate_unit_claims_with_extra_fields ... ok [INFO] [stdout] test jwt::validator::tests::temporally_invalid_token_does_not_burn_jti ... ok [INFO] [stdout] test jwt::validator::tests::test_validate_custom_claims_success ... ok [INFO] [stdout] test jwt::validator::tests::typ_application_prefix_normalization ... ok [INFO] [stdout] test jwt::validator::tests::typ_case_insensitive ... ok [INFO] [stdout] test oauth_error::tests::a_known_spelling_never_arrives_as_other ... ok [INFO] [stdout] test jwt::validator::tests::typ_required_value_mismatch ... ok [INFO] [stdout] test oauth_error::tests::a_statusless_rejection_agrees_with_the_response_path ... ok [INFO] [stdout] test oauth_error::tests::every_code_round_trips ... ok [INFO] [stdout] test oauth_error::tests::every_named_variant_has_a_spelling ... ok [INFO] [stdout] test oauth_error::tests::only_the_prompt_none_answers_require_interaction ... ok [INFO] [stdout] test oauth_error::tests::the_jar_codes_are_one_set_under_two_specs ... ok [INFO] [stdout] test oauth_error::tests::the_prompt_none_answers_are_typed_and_distinct ... ok [INFO] [stdout] test oauth_error::tests::the_redirect_borne_5xx_codes_imply_a_retry ... ok [INFO] [stdout] test oauth_error::tests::display_renders_the_whole_response_object ... ok [INFO] [stdout] test oauth_error::tests::the_registry_facts_are_mutually_exclusive ... ok [INFO] [stdout] test oauth_error::tests::unknown_codes_are_preserved_verbatim ... ok [INFO] [stdout] test oauth_form::tests::duplicate_single_valued_param_errors ... ok [INFO] [stdout] test oauth_form::tests::externally_tagged_enum_round_trips ... ok [INFO] [stdout] test oauth_form::tests::internally_tagged_enum_round_trips ... ok [INFO] [stdout] test oauth_form::tests::no_param_forms_serialize_to_empty ... ok [INFO] [stdout] test oauth_error::tests::no_other_code_implies_a_retry ... ok [INFO] [stdout] test oauth_form::tests::push_appends_pairs ... ok [INFO] [stdout] test oauth_error::tests::oauth_error_carries_code_description_and_uri ... ok [INFO] [stdout] test oauth_form::tests::pair_value_wrapper_streams_through_scalar_path ... ok [INFO] [stdout] test oauth_error::tests::only_request_shape_codes_blame_the_parameters ... ok [INFO] [stdout] test oauth_form::tests::round_trips ... ok [INFO] [stdout] test oauth_form::tests::scalar_sequence_is_repeated_keys_not_json ... ok [INFO] [stdout] test oauth_error::tests::dpop_codes_use_their_rfc_spelling ... ok [INFO] [stdout] test oauth_form::tests::scalars_and_space_follow_appendix_b ... ok [INFO] [stdout] test oauth_form::tests::structured_param_is_one_json_string_value ... ok [INFO] [stdout] test oauth_form::tests::single_value_into_vec_is_one_element ... ok [INFO] [stdout] test oauth_form::tests::unit_enum_round_trips ... ok [INFO] [stdout] test resource_metadata::tests::booleans_default_to_false_when_absent ... ok [INFO] [stdout] test resource_metadata::tests::deserializes_a_full_document ... ok [INFO] [stdout] test resource_metadata::tests::fetch_gets_the_well_known_url_and_returns_the_document ... ok [INFO] [stdout] test oauth_form::tests::top_level_field_order_is_preserved ... ok [INFO] [stdout] test resource_metadata::tests::inserts_well_known_between_host_and_path::case_1_no_path ... ok [INFO] [stdout] test resource_metadata::tests::inserts_well_known_between_host_and_path::case_2_with_path ... ok [INFO] [stdout] test resource_metadata::tests::fetch_rejects_a_resource_mismatch ... ok [INFO] [stdout] test resource_metadata::tests::inserts_well_known_between_host_and_path::case_3_root_slash_is_no_path ... ok [INFO] [stdout] test oauth_form::tests::top_level_sequence_of_pairs ... ok [INFO] [stdout] test resource_metadata::tests::inserts_well_known_between_host_and_path::case_4_trailing_slash_is_stripped ... ok [INFO] [stdout] test resource_metadata::tests::inserts_well_known_between_host_and_path::case_5_port_is_preserved ... ok [INFO] [stdout] test resource_metadata::tests::inserts_well_known_between_host_and_path::case_6_http_for_test_servers ... ok [INFO] [stdout] test resource_metadata::tests::inserts_well_known_between_host_and_path::case_7_query_is_preserved ... ok [INFO] [stdout] test resource_metadata::tests::inserts_well_known_between_host_and_path::case_8_query_without_path ... ok [INFO] [stdout] test resource_metadata::tests::rejects_invalid_resource_identifiers::case_1_fragment ... ok [INFO] [stdout] test resource_metadata::tests::rejects_invalid_resource_identifiers::case_2_relative_reference ... ok [INFO] [stdout] test resource_metadata::tests::serializes_without_defaulted_or_absent_members ... ok [INFO] [stdout] test resource_metadata::tests::serializes_set_members_under_their_rfc_names ... ok [INFO] [stdout] test resource_metadata::tests::rejects_invalid_resource_identifiers::case_3_urn ... ok [INFO] [stdout] test secrets::cached::tests::invalidate_forces_reload ... ok [INFO] [stdout] test secrets::encodings::tests::base64_decodes_forgivingly::case_1_standard_padded ... ok [INFO] [stdout] test secrets::cached::tests::returns_cached_value_without_ttl ... ok [INFO] [stdout] test secrets::encodings::tests::base64_decodes_forgivingly::case_2_standard_no_pad ... ok [INFO] [stdout] test secrets::encodings::tests::base64_decodes_forgivingly::case_3_surrounding_whitespace ... ok [INFO] [stdout] test resource_metadata::tests::resource_is_required ... ok [INFO] [stdout] test secrets::encodings::tests::base64_decodes_forgivingly::case_6_standard_alphabet ... ok [INFO] [stdout] test secrets::encodings::tests::base64_decodes_forgivingly::case_4_interior_newline ... ok [INFO] [stdout] test secrets::encodings::tests::base64_decodes_forgivingly::case_5_crlf_wrapped ... ok [INFO] [stdout] test secrets::encodings::tests::base64_decodes_forgivingly::case_7_url_safe_alphabet ... ok [INFO] [stdout] test secrets::encodings::tests::base64_rejects_invalid_input::case_1_not_base64 ... ok [INFO] [stdout] test secrets::encodings::tests::base64_rejects_invalid_input::case_2_non_base64_bytes ... ok [INFO] [stdout] test secrets::encodings::tests::hex_decodes_mixed_case_stripping_all_whitespace::case_1_surrounding_whitespace ... ok [INFO] [stdout] test secrets::encodings::tests::hex_decodes_mixed_case_stripping_all_whitespace::case_2_interior_spaces ... ok [INFO] [stdout] test secrets::encodings::tests::hex_rejects_invalid_input::case_1_odd_length ... ok [INFO] [stdout] test secrets::encodings::tests::hex_rejects_invalid_input::case_2_non_hex_character ... ok [INFO] [stdout] test secrets::encodings::tests::hex_rejects_invalid_input::case_3_non_hex_byte ... ok [INFO] [stdout] test secrets::encodings::tests::hex_decodes_mixed_case_stripping_all_whitespace::case_4_crlf_wrapped ... ok [INFO] [stdout] test secrets::encodings::tests::string_decodes_utf8_and_trims_surrounding_whitespace ... ok [INFO] [stdout] test secrets::encodings::tests::string_to_bytes_exposes_utf8_bytes ... ok [INFO] [stdout] test secrets::encodings::tests::blanket_impls_delegate_to_inner ... ok [INFO] [stdout] test secrets::encodings::tests::string_rejects_invalid_utf8 ... ok [INFO] [stdout] test secrets::encodings::tests::hex_decodes_mixed_case_stripping_all_whitespace::case_3_multi_line ... ok [INFO] [stdout] test secrets::encodings::tests::string_preserves_interior_whitespace ... ok [INFO] [stdout] test secrets::mapped::tests::chains_string_to_bytes_then_decode ... ok [INFO] [stdout] test secrets::mapped::tests::context_prefixes_errors ... ok [INFO] [stdout] test secrets::mapped::tests::maps_inner_bytes_through_named_map ... ok [INFO] [stdout] test secrets::mapped::tests::preserves_identity_from_inner ... ok [INFO] [stdout] test secrets::mapped::tests::map_transforms_value_and_keeps_identity ... ok [INFO] [stdout] test secrets::mapped::tests::surfaces_map_error_as_config_with_default_context ... ok [INFO] [stdout] test secrets::mapped::tests::try_map_error_carries_context ... ok [INFO] [stdout] test secrets::mapped::tests::try_map_passes_through_on_success ... ok [INFO] [stdout] test secrets::providers::classification::provider_classifications ... ok [INFO] [stdout] test secrets::mapped::tests::try_map_propagates_function_error ... ok [INFO] [stdout] test secrets::providers::env_tests::test_env_var_secret_missing ... ok [INFO] [stdout] test secrets::providers::provided_tests::provided_string_round_trips ... ok [INFO] [stdout] test secrets::tests::erased_secret_dispatches ... ok [INFO] [stdout] test secrets::tests::test_with_identity ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts::case_3_empty_string_in_array ... ok [INFO] [stdout] test secrets::providers::provided_tests::provided_bytes_round_trips ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts::case_4_duplicates_retained ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts::case_1_empty_array ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts::case_6_surrounding_space_retained ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts::case_5_order_retained ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts::case_7_interior_nul_retained ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts::case_2_empty_string_is_an_audience ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts::case_8_non_ascii_retained ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_error_names_the_expected_shape ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_1_number ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_2_float ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_3_bool ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_5_number_in_array ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_4_object ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_6_bool_in_array ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_7_null_in_array ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_9_object_in_array ... ok [INFO] [stdout] test serde_utils::string::tests::serialize_empty_without_skip_emits_null ... ok [INFO] [stdout] test serde_utils::string::tests::serialize_shape::case_1_empty_is_omitted ... ok [INFO] [stdout] test serde_utils::string::tests::serialize_shape::case_2_one_is_bare ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_rejects::case_8_nested_array ... ok [INFO] [stdout] test serde_utils::string::tests::serialize_shape::case_3_many_is_an_array ... ok [INFO] [stdout] test serde_utils::string::tests::single_element_array_reserializes_as_a_bare_string ... ok [INFO] [stdout] test serde_utils::time::tests::option_unix_secs_deserialize_absent ... ok [INFO] [stdout] test serde_utils::time::tests::option_unix_secs_deserialize_negative_errors ... ok [INFO] [stdout] test serde_utils::time::tests::option_unix_secs_deserialize_null ... ok [INFO] [stdout] test serde_utils::time::tests::option_unix_secs_roundtrip_some ... ok [INFO] [stdout] test serde_utils::time::tests::option_unix_secs_serialize_none_omitted_with_skip ... ok [INFO] [stdout] test serde_utils::time::tests::secs_visitor_rejects_invalid_float::case_1_outside_u64_range ... ok [INFO] [stdout] test serde_utils::time::tests::secs_visitor_rejects_invalid_float::case_2_nan ... ok [INFO] [stdout] test serde_utils::time::tests::unix_secs_accepted_range_is_capped_the_same_on_every_target ... ok [INFO] [stdout] test serde_utils::time::tests::unix_secs_deserialize_errors::case_1_negative ... ok [INFO] [stdout] test serde_utils::time::tests::unix_secs_deserialize_errors::case_2_overflows_systemtime ... ok [INFO] [stdout] test serde_utils::time::tests::unix_secs_deserialize_float_truncates ... ok [INFO] [stdout] test serde_utils::time::tests::unix_secs_roundtrip_integer ... ok [INFO] [stdout] test serde_utils::time::tests::unix_secs_serialize_drops_sub_second ... ok [INFO] [stdout] test serde_utils::time::tests::unix_secs_serialize_pre_epoch_errors ... ok [INFO] [stdout] test well_known::tests::append_puts_well_known_after_the_path::case_1_no_path ... ok [INFO] [stdout] test server_metadata::tests::test_oidc_spec ... ok [INFO] [stdout] test well_known::tests::append_puts_well_known_after_the_path::case_2_path_goes_before ... ok [INFO] [stdout] test well_known::tests::append_puts_well_known_after_the_path::case_3_trailing_slash ... ok [INFO] [stdout] test well_known::tests::insert_puts_well_known_before_the_path::case_1_no_path ... ok [INFO] [stdout] test well_known::tests::insert_puts_well_known_before_the_path::case_2_path_goes_after ... ok [INFO] [stdout] test well_known::tests::insert_puts_well_known_before_the_path::case_3_trailing_slash ... ok [INFO] [stdout] test well_known::tests::insert_puts_well_known_before_the_path::case_4_query_preserved ... ok [INFO] [stdout] test serde_utils::string::tests::deserialize_accepts_a_large_array ... ok [INFO] [stdout] test secrets::cached::tests::expired_entry_with_failing_source_fails_closed ... ok [INFO] [stdout] test secrets::cached::tests::reloads_after_ttl_expires ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 475 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Doc-tests huskarl_core [INFO] [stdout] [INFO] [stdout] running 26 tests [INFO] [stdout] test src/../docs/guide/configuring_jwt_verification.md - _docs::guide::configuring_jwt_verification (line 151) ... ignored [INFO] [stdout] test src/../docs/guide/providing_secrets.md - _docs::guide::providing_secrets (line 181) ... ok [INFO] [stdout] test src/../docs/guide/configuring_jwt_verification.md - _docs::guide::configuring_jwt_verification (line 47) - compile ... ok [INFO] [stdout] test src/../docs/guide/providing_secrets.md - _docs::guide::providing_secrets (line 37) - compile ... FAILED [INFO] [stdout] test src/../docs/guide/providing_secrets.md - _docs::guide::providing_secrets (line 128) ... ok [INFO] [stdout] test src/../docs/guide/returning_errors.md - _docs::guide::returning_errors (line 73) ... ignored [INFO] [stdout] test src/../docs/guide/providing_secrets.md - _docs::guide::providing_secrets (line 18) ... ok [INFO] [stdout] test src/../docs/guide/configuring_jwt_verification.md - _docs::guide::configuring_jwt_verification (line 89) ... ok [INFO] [stdout] test src/../docs/guide/providing_secrets.md - _docs::guide::providing_secrets (line 59) ... ok [INFO] [stdout] test src/../docs/guide/signing_a_jwt.md - _docs::guide::signing_a_jwt (line 11) ... ok [INFO] [stdout] test src/../docs/guide/implementing_a_backend.md - _docs::guide::implementing_a_backend (line 26) ... ok [INFO] [stdout] test src/../docs/guide/providing_secrets.md - _docs::guide::providing_secrets (line 95) ... ok [INFO] [stdout] test src/../docs/guide/returning_errors.md - _docs::guide::returning_errors (line 49) ... ok [INFO] [stdout] test src/../docs/guide/returning_errors.md - _docs::guide::returning_errors (line 20) ... ok [INFO] [stdout] test src/crypto/verifier/scheduled.rs - crypto::verifier::scheduled::ScheduledRefreshVerifier (line 30) - compile ... ok [INFO] [stdout] test src/crypto/seal.rs - crypto::seal::AeadV1Sealer (line 141) ... ok [INFO] [stdout] test src/error.rs - error::Error::cause (line 154) ... ok [INFO] [stdout] test src/../docs/guide/validating_a_jwt.md - _docs::guide::validating_a_jwt (line 19) ... ok [INFO] [stdout] test src/oauth_error.rs - oauth_error::OAuthErrorCode::implied_retry_advice (line 329) ... ok [INFO] [stdout] test src/authorization_details.rs - authorization_details::AuthorizationDetail (line 17) ... ok [INFO] [stdout] test src/http/mod.rs - http::TruncatedBody (line 232) ... ok [INFO] [stdout] test src/crypto/signer/scheduled.rs - crypto::signer::scheduled::ScheduledRefreshSigner (line 28) ... ok [INFO] [stdout] test src/error.rs - error::Error::new (line 106) ... ok [INFO] [stdout] test src/oauth_error.rs - oauth_error::OAuthErrorCode::requires_interaction (line 303) ... ok [INFO] [stdout] test src/http/mod.rs - http::FailedResponse (line 103) ... ok [INFO] [stdout] test src/oauth_form.rs - oauth_form (line 29) ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- src/../docs/guide/providing_secrets.md - _docs::guide::providing_secrets (line 37) stdout ---- [INFO] [stdout] error[E0432]: unresolved imports `huskarl_core::secrets::FileBytes`, `huskarl_core::secrets::FileSecret` [INFO] [stdout] --> src/../docs/guide/providing_secrets.md:40:29 [INFO] [stdout] | [INFO] [stdout] 40 | use huskarl_core::secrets::{FileBytes, FileSecret, encodings::Base64Encoding}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ no `FileSecret` in `secrets` [INFO] [stdout] | | [INFO] [stdout] | no `FileBytes` in `secrets` [INFO] [stdout] | [INFO] [stdout] note: found an item that was configured out [INFO] [stdout] --> src/secrets/mod.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(feature = "fs")] [INFO] [stdout] | -------------- the item is gated behind the `fs` feature [INFO] [stdout] 34 | pub use providers::{FileBytes, FileSecret}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] note: found an item that was configured out [INFO] [stdout] --> src/secrets/mod.rs:34:32 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(feature = "fs")] [INFO] [stdout] | -------------- the item is gated behind the `fs` feature [INFO] [stdout] 34 | pub use providers::{FileBytes, FileSecret}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0432`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] src/../docs/guide/providing_secrets.md - _docs::guide::providing_secrets (line 37) [INFO] [stdout] [INFO] [stdout] test result: FAILED. 23 passed; 1 failed; 2 ignored; 0 measured; 0 filtered out; finished in 3.25s [INFO] [stdout] [INFO] [stdout] all doctests ran in 3.52s; merged doctests compilation took 0.27s [INFO] [stderr] error: doctest failed, to rerun pass `--doc` [INFO] running `Command { std: "docker" "inspect" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f", kill_on_drop: false }` [INFO] [stdout] 63a37d633478cbd42c694f3149d477325d757a322305865645ae48f11612845f