[INFO] fetching crate openauth-core 0.0.6...
[INFO] testing openauth-core-0.0.6 against 1.97.0-beta.6 for beta-1.98-1
[INFO] extracting crate openauth-core 0.0.6 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate openauth-core 0.0.6
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate openauth-core 0.0.6
[INFO] tweaked toml for crates.io crate openauth-core 0.0.6 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate openauth-core 0.0.6 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 crates.io crate openauth-core 0.0.6 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 openauth-social-providers v0.0.6
[INFO] [stderr]   Downloaded openauth-oauth v0.0.6
[INFO] [stderr]   Downloaded josekit v0.10.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c
[INFO] running `Command { std: "docker" "start" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c", 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" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c" "/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" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c", 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" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dashmap v6.2.1
[INFO] [stderr]    Compiling spinning_top v0.3.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling web-time v1.1.0
[INFO] [stderr]    Compiling nonzero_ext v0.3.0
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling openssl-sys v0.9.116
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling salsa20 v0.10.2
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling scrypt v0.11.0
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling governor v0.10.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling josekit v0.10.3
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling openauth-oauth v0.0.6
[INFO] [stderr]    Compiling openauth-social-providers v0.0.6
[INFO] [stderr]    Compiling openauth-core v0.0.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 24s
[INFO] running `Command { std: "docker" "inspect" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c", 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" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c" "/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 openauth-core v0.0.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 24.54s
[INFO] running `Command { std: "docker" "inspect" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c", 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" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c" "/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.45s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/openauth_core-70354317db5ad7f0)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test db::sql::dialect::tests::where_clause_applies_insensitive_mode_to_eq ... ok
[INFO] [stdout] test db::sql::dialect::tests::where_clause_applies_insensitive_mode_to_in ... ok
[INFO] [stdout] test db::sql::dialect::tests::where_clause_applies_insensitive_mode_to_ne ... ok
[INFO] [stdout] test db::sql::dialect::tests::where_clause_applies_insensitive_mode_to_not_in ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/api/main.rs (/opt/rustwide/target/debug/deps/api-483aff9db19e8dd9)
[INFO] [stdout] 
[INFO] [stdout] running 138 tests
[INFO] [stdout] test async_api::async_endpoint_conflicts_with_sync_endpoint ... ok
[INFO] [stdout] test async_api::handle_async_runs_async_endpoint ... ok
[INFO] [stdout] test async_api::sync_handle_rejects_async_only_endpoint ... ok
[INFO] [stdout] test body::parse_request_body_accepts_json_content_type_with_parameters ... ok
[INFO] [stdout] test body::parse_request_body_rejects_malformed_form_encoding ... ok
[INFO] [stdout] test body::parse_request_body_collects_repeated_urlencoded_form_values ... ok
[INFO] [stdout] test body::parse_request_body_rejects_malformed_json ... ok
[INFO] [stdout] test body::parse_request_body_rejects_unsupported_content_type ... ok
[INFO] [stdout] test async_api::handle_async_can_run_existing_sync_endpoints ... ok
[INFO] [stdout] test body::parse_request_body_accepts_urlencoded_form_values ... ok
[INFO] [stdout] test endpoint_builder::create_auth_endpoint_allows_null_for_optional_body_fields ... ok
[INFO] [stdout] test endpoint_builder::create_auth_endpoint_runs_endpoint_middleware_before_handler ... ok
[INFO] [stdout] test endpoint_builder::openapi_contract_supports_summary_helpers_and_hidden_endpoints ... ok
[INFO] [stdout] test plugin_router::async_after_hook_can_replace_plugin_endpoint_response ... ok
[INFO] [stdout] test plugin_router::async_middleware_ignores_non_matching_paths ... ok
[INFO] [stdout] test endpoint_builder::openapi_generation_matches_upstream_route_shape ... ok
[INFO] [stdout] test plugin_router::async_before_and_after_hooks_wrap_plugin_endpoint ... ok
[INFO] [stdout] test plugin_router::async_middleware_matches_path_and_can_block_async_endpoint ... ok
[INFO] [stdout] test plugin_router::async_middleware_runs_before_endpoint_middleware ... ok
[INFO] [stdout] test plugin_router::middleware_matches_path_and_can_block_endpoint ... ok
[INFO] [stdout] test endpoint_builder::create_auth_endpoint_exposes_metadata_and_openapi ... ok
[INFO] [stdout] test plugin_router::database_hook_context_receives_async_request_path ... ok
[INFO] [stdout] test plugin_router::async_after_hook_preserves_headers ... ok
[INFO] [stdout] test endpoint_builder::create_auth_endpoint_validates_body_schema_before_handler ... ok
[INFO] [stdout] test plugin_router::before_and_after_hooks_wrap_plugin_endpoint ... ok
[INFO] [stdout] test plugin_router::on_request_plugin_can_replace_request ... ok
[INFO] [stdout] test plugin_router::plugin_schema_rejects_conflicting_field ... ok
[INFO] [stdout] test plugin_router::on_request_plugin_can_short_circuit_response ... ok
[INFO] [stdout] test plugin_router::plugin_schema_contribution_adds_core_table_field ... ok
[INFO] [stdout] test plugin_router::server_only_plugin_endpoint_is_hidden_and_returns_not_found ... ok
[INFO] [stdout] test plugin_router::on_response_plugin_can_replace_response ... ok
[INFO] [stdout] test plugin_router::plugin_endpoint_conflicts_with_core_endpoint ... ok
[INFO] [stdout] test plugin_router::plugin_error_codes_are_registered_and_validated ... ok
[INFO] [stdout] test plugin_router::plugin_init_contributions_are_applied_in_order ... ok
[INFO] [stdout] test request_utils::is_browser_fetch_request_returns_false_without_metadata ... ok
[INFO] [stdout] test request_utils::is_browser_fetch_request_returns_true_for_cors ... ok
[INFO] [stdout] test request_utils::normalize_pathname_removes_base_path_and_trailing_slash ... ok
[INFO] [stdout] test request_utils::normalize_pathname_does_not_match_partial_base_path ... ok
[INFO] [stdout] test request_utils::is_browser_fetch_request_returns_false_for_navigation ... ok
[INFO] [stdout] test plugin_router::sync_after_hook_runs_before_async_after_hook ... ok
[INFO] [stdout] test plugin_router::plugin_rate_limit_rules_apply_before_user_custom_overrides ... ok
[INFO] [stdout] test plugin_router::try_new_rejects_conflicting_endpoint_method_and_path ... ok
[INFO] [stdout] test router::auth_router_allows_cookie_post_with_dynamic_trusted_origin ... ok
[INFO] [stdout] test request_utils::normalize_pathname_returns_root_for_invalid_url ... ok
[INFO] [stdout] test router::auth_router_allows_cookie_post_with_trusted_origin ... ok
[INFO] [stdout] test request_utils::normalize_pathname_returns_root_for_exact_base_path_match ... ok
[INFO] [stdout] test router::auth_router_allows_dynamic_trusted_callback_url ... ok
[INFO] [stdout] test router::auth_router_allows_percent_encoded_trusted_callback_url ... ok
[INFO] [stdout] test router::auth_router_allows_relative_callback_url ... ok
[INFO] [stdout] test router::auth_router_exposes_ok_endpoint ... ok
[INFO] [stdout] test router::auth_router_blocks_cross_site_navigation_without_cookie ... ok
[INFO] [stdout] test router::auth_router_blocks_cookie_post_with_untrusted_origin ... ok
[INFO] [stdout] test router::auth_router_can_skip_trailing_slashes ... ok
[INFO] [stdout] test router::auth_router_matches_parameterized_path_and_exposes_params ... ok
[INFO] [stdout] test plugin_router::plugin_endpoint_is_registered_and_handled ... ok
[INFO] [stdout] test router::auth_router_rejects_conflicting_parameterized_paths ... ok
[INFO] [stdout] test router::auth_router_rejects_trailing_slash_by_default ... ok
[INFO] [stdout] test router::auth_router_returns_not_found_for_disabled_path ... ok
[INFO] [stdout] test router::auth_router_requires_origin_when_fetch_metadata_is_present ... ok
[INFO] [stdout] test router::auth_router_skips_csrf_when_disabled ... ok
[INFO] [stdout] test router::auth_router_rejects_untrusted_callback_url ... ok
[INFO] [stdout] test routes::email_verification::verify_email_route_rejects_invalid_token ... ok
[INFO] [stdout] test routes::account_tokens::account_info_returns_provider_user_info_for_current_session ... ok
[INFO] [stdout] test routes::change_email::change_email_route_hides_existing_email ... ok
[INFO] [stdout] test router::auth_router_rejects_percent_encoded_unsafe_relative_callback_url ... ok
[INFO] [stdout] test routes::account_tokens::refresh_token_uses_provider_and_persists_new_tokens ... ok
[INFO] [stdout] test routes::email_verification::send_verification_email_route_sends_for_current_unverified_user ... ok
[INFO] [stdout] test routes::change_email::change_email_route_updates_unverified_user_when_allowed ... ok
[INFO] [stdout] test routes::get_session::get_session_route_disable_cookie_cache_forces_database_read ... ok
[INFO] [stdout] test routes::email_verification::verify_email_route_marks_user_verified ... ok
[INFO] [stdout] test routes::get_session::get_session_route_post_requires_deferred_refresh ... ok
[INFO] [stdout] test routes::account_tokens::get_access_token_returns_current_user_provider_token ... ok
[INFO] [stdout] test routes::get_session::get_session_route_disable_refresh_skips_refresh_cookie ... ok
[INFO] [stdout] test routes::email_verification::send_verification_email_route_does_not_reveal_missing_user ... ok
[INFO] [stdout] test routes::error_page::error_route_renders_sanitized_html ... ok
[INFO] [stdout] test routes::get_session::get_session_route_defer_refresh_post_refreshes_session ... ok
[INFO] [stdout] test routes::get_session::get_session_route_global_disable_session_refresh_skips_refresh ... ok
[INFO] [stdout] test routes::get_session::get_session_route_returns_additional_user_fields ... ok
[INFO] [stdout] test routes::email_verification::verify_email_route_invokes_before_and_after_callbacks ... ok
[INFO] [stdout] test routes::get_session::get_session_route_returns_session_from_signed_cookie ... ok
[INFO] [stdout] test routes::list_sessions::list_sessions_route_returns_active_user_sessions ... ok
[INFO] [stdout] test routes::get_session::get_session_route_defer_refresh_get_marks_needs_refresh_without_writing ... ok
[INFO] [stdout] test routes::password_validators::password_validator_rejects_sign_up_before_user_creation ... ok
[INFO] [stdout] test routes::request_password_reset::request_password_reset_route_does_not_reveal_user_existence ... ok
[INFO] [stdout] test routes::request_password_reset::request_password_reset_route_sends_reset_link_for_existing_user ... ok
[INFO] [stdout] test routes::reset_password::reset_password_token_callback_redirects_with_token_or_error ... ok
[INFO] [stdout] test routes::revoke_session::revoke_session_route_deletes_session_for_current_user ... ok
[INFO] [stdout] test routes::revoke_other_sessions::revoke_other_sessions_route_keeps_current_session ... ok
[INFO] [stdout] test routes::revoke_sessions::revoke_sessions_route_deletes_all_current_user_sessions ... ok
[INFO] [stdout] test routes::openapi::core_auth_routes_expose_upstream_openapi_metadata ... ok
[INFO] [stdout] test routes::sign_in_email::sign_in_email_route_rejects_when_email_password_is_disabled ... ok
[INFO] [stdout] test routes::password_validators::password_validator_skips_unmatched_paths ... ok
[INFO] [stdout] test routes::request_password_reset::password_reset_flow_uses_secondary_storage_when_configured ... ok
[INFO] [stdout] test routes::password_validators::sign_up_duplicate_email_is_rejected_before_password_validator ... ok
[INFO] [stdout] test routes::sign_out::sign_out_route_deletes_session_and_expires_cookie ... ok
[INFO] [stdout] test routes::password_validators::password_validator_rejects_reset_password_before_token_consumption ... ok
[INFO] [stdout] test routes::list_accounts::list_accounts_route_returns_current_user_accounts ... ok
[INFO] [stdout] test routes::set_password::set_password_route_creates_missing_credential_account ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_rejects_non_input_additional_user_fields ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_rejects_when_email_password_is_disabled ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_requires_additional_user_fields_without_default ... ok
[INFO] [stdout] test routes::delete_user_callback::delete_user_callback_route_deletes_user_for_valid_token ... ok
[INFO] [stdout] test routes::change_password::change_password_route_ignores_cookie_cache_for_sensitive_session ... ok
[INFO] [stdout] test routes::social_oauth::callback_oauth_creates_user_account_session_and_redirects ... ok
[INFO] [stdout] test routes::social_oauth::link_social_requires_session_and_generates_link_state ... ok
[INFO] [stdout] test routes::social_oauth::sign_in_oauth2_returns_authorization_url_and_location_header ... ok
[INFO] [stdout] test routes::social_oauth::sign_in_social_id_token_flow_returns_session_payload ... ok
[INFO] [stdout] test routes::social_oauth::sign_in_social_returns_authorization_url_and_location_header ... ok
[INFO] [stdout] test routes::change_password::change_password_route_updates_credentials has been running for over 60 seconds
[INFO] [stdout] test routes::delete_user::delete_user_route_deletes_user_accounts_and_sessions_with_password has been running for over 60 seconds
[INFO] [stdout] test routes::delete_user::delete_user_route_rejects_wrong_password has been running for over 60 seconds
[INFO] [stdout] test routes::password_validators::password_validator_rejects_change_password_before_credential_update has been running for over 60 seconds
[INFO] [stdout] test routes::reset_password::reset_password_route_invokes_callback_and_revokes_sessions has been running for over 60 seconds
[INFO] [stdout] test routes::reset_password::reset_password_route_updates_password_and_consumes_token has been running for over 60 seconds
[INFO] [stdout] test routes::sign_in_email::sign_in_email_route_rejects_invalid_credentials has been running for over 60 seconds
[INFO] [stdout] test routes::sign_in_email::sign_in_email_route_requires_verified_email_after_password_is_valid has been running for over 60 seconds
[INFO] [stdout] test routes::sign_in_email::sign_in_email_route_rejects_invalid_credentials ... ok
[INFO] [stdout] test routes::reset_password::reset_password_route_invokes_callback_and_revokes_sessions ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_creates_session_and_sets_cookie ... ok
[INFO] [stdout] test routes::update_session::update_session_route_exposes_updated_fields_on_get_session ... ok
[INFO] [stdout] test routes::update_session::update_session_route_rejects_core_only_updates ... ok
[INFO] [stdout] test routes::update_session::update_session_route_rejects_invalid_field_type ... ok
[INFO] [stdout] test routes::update_session::update_session_route_rejects_non_input_fields ... ok
[INFO] [stdout] test routes::update_session::update_session_route_updates_allowed_custom_fields ... ok
[INFO] [stdout] test routes::update_user::update_user_route_rejects_email_updates ... ok
[INFO] [stdout] test routes::update_user::update_user_route_rejects_invalid_additional_user_field_type ... ok
[INFO] [stdout] test routes::update_user::update_user_route_rejects_non_input_additional_user_fields ... ok
[INFO] [stdout] test routes::update_user::update_user_route_updates_additional_user_fields ... ok
[INFO] [stdout] test routes::update_user::update_user_route_updates_name_and_image ... ok
[INFO] [stdout] test routes::update_user::update_user_route_updates_username_fields ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_can_skip_auto_sign_in ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_accepts_username_fields ... ok
[INFO] [stdout] test routes::password_validators::password_validator_rejects_change_password_before_credential_update ... ok
[INFO] [stdout] test routes::delete_user::delete_user_route_deletes_user_accounts_and_sessions_with_password ... ok
[INFO] [stdout] test routes::delete_user::delete_user_route_rejects_wrong_password ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_persists_and_returns_additional_user_fields ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_uses_secondary_storage_for_sessions ... ok
[INFO] [stdout] test routes::unlink_account::unlink_account_route_deletes_matching_account_when_multiple_linked ... ok
[INFO] [stdout] test routes::sign_in_email::sign_in_email_route_returns_token_user_and_sets_cookie has been running for over 60 seconds
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_sends_verification_and_returns_synthetic_duplicate_response_when_required has been running for over 60 seconds
[INFO] [stdout] test routes::unlink_account::unlink_account_route_rejects_last_account ... ok
[INFO] [stdout] test routes::update_session::sign_up_email_route_applies_additional_session_field_defaults ... ok
[INFO] [stdout] test routes::reset_password::reset_password_route_updates_password_and_consumes_token ... ok
[INFO] [stdout] test routes::sign_in_email::sign_in_email_route_returns_token_user_and_sets_cookie ... ok
[INFO] [stdout] test routes::sign_up_email::sign_up_email_route_sends_verification_and_returns_synthetic_duplicate_response_when_required ... ok
[INFO] [stdout] test routes::sign_in_email::sign_in_email_route_requires_verified_email_after_password_is_valid ... ok
[INFO] [stdout] test routes::verify_password::verify_password_route_rejects_wrong_password ... ok
[INFO] [stdout] test routes::change_password::change_password_route_updates_credentials ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 138 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 132.45s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/auth/main.rs (/opt/rustwide/target/debug/deps/auth-eddc3d844c158162)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test email_password::sign_in_rejects_invalid_credentials_without_creating_session ... ok
[INFO] [stdout] test email_password::sign_in_creates_session_for_valid_credentials ... ok
[INFO] [stdout] test email_password::sign_up_rolls_back_user_when_account_create_fails ... ok
[INFO] [stdout] test email_password::sign_up_creates_user_credential_account_and_session ... ok
[INFO] [stdout] test email_password::sign_in_rejects_unverified_email_when_required ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_uses_provider_scoped_account_lookup ... ok
[INFO] [stdout] test oauth::missing_email_log_message_matches_upstream_guidance ... ok
[INFO] [stdout] test email_password::sign_up_rejects_duplicate_email ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_updates_linked_account_tokens_and_user_info ... ok
[INFO] [stdout] test oauth::oauth_state_database_strategy_persists_and_rejects_expired_state ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_respects_signup_and_linking_rules ... ok
[INFO] [stdout] test oauth::oauth_state_cookie_strategy_round_trips_without_database ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_uses_trusted_provider_configuration_and_disable_implicit_linking ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_does_not_verify_email_when_provider_email_differs ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_respects_update_account_on_sign_in_false ... ok
[INFO] [stdout] test session::get_session_clears_cookies_when_signed_token_is_missing_from_store ... ok
[INFO] [stdout] test oauth::parse_oauth_state_rejects_cookie_state_with_wrong_secret ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_override_updates_email_and_verified_status ... ok
[INFO] [stdout] test session::sign_out_deletes_session_and_expires_session_cookies ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_creates_user_account_and_session ... ok
[INFO] [stdout] test oauth::oauth_token_utils_encrypt_decrypt_and_tolerate_legacy_plain_tokens ... ok
[INFO] [stdout] test session::get_session_returns_db_session_with_user_and_sets_cookie_cache ... ok
[INFO] [stdout] test session::get_session_refreshes_due_session_and_session_cookie ... ok
[INFO] [stdout] test session::sign_out_ignores_forged_session_cookie_but_still_expires_cookies ... ok
[INFO] [stdout] test oauth::handle_oauth_user_info_sets_account_cookie_when_enabled ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/context/main.rs (/opt/rustwide/target/debug/deps/context-a2514a2f2623d12a)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test request_state::current_session_defaults_to_none_inside_scope ... ok
[INFO] [stdout] test request_state::run_with_request_state_exposes_state_inside_scope ... ok
[INFO] [stdout] test request_state::has_request_state_returns_false_outside_scope ... ok
[INFO] [stdout] test request_state::current_new_session_defaults_to_none_inside_scope ... ok
[INFO] [stdout] test request_state::current_new_session_can_be_set_inside_scope ... ok
[INFO] [stdout] test request_state::request_state_lazily_initializes_once_per_scope ... ok
[INFO] [stdout] test request_state::request_state_returns_error_outside_scope ... ok
[INFO] [stdout] test runtime::create_auth_context_accepts_plugin_social_provider ... ok
[INFO] [stdout] test runtime::create_auth_context_applies_session_and_password_options ... ok
[INFO] [stdout] test runtime::create_auth_context_builds_secret_config_from_environment_secrets ... ok
[INFO] [stdout] test runtime::create_auth_context_accepts_plugin_init_social_provider ... ok
[INFO] [stdout] test runtime::create_auth_context_rejects_duplicate_social_provider_from_plugin ... ok
[INFO] [stdout] test runtime::create_auth_context_rejects_duplicate_social_provider_from_plugin_init ... ok
[INFO] [stdout] test runtime::create_auth_context_rejects_empty_social_provider_id_from_plugin ... ok
[INFO] [stdout] test runtime::create_auth_context_rejects_duplicate_social_provider_ids ... ok
[INFO] [stdout] test runtime::create_auth_context_rejects_external_rate_limit_storage_without_storage_contract ... ok
[INFO] [stdout] test runtime::create_auth_context_rejects_missing_secret_in_production ... ok
[INFO] [stdout] test runtime::create_auth_context_prefers_options_secret_over_environment ... ok
[INFO] [stdout] test runtime::create_auth_context_uses_openauth_secret_from_environment ... ok
[INFO] [stdout] test runtime::plugin_init_sees_social_providers_registered_by_previous_plugin ... ok
[INFO] [stdout] test runtime::create_auth_context_resolves_defaults ... ok
[INFO] [stdout] test runtime::create_auth_context_resolves_unique_social_provider_registry ... ok
[INFO] [stdout] test request_state::current_session_is_isolated_between_concurrent_scopes ... ok
[INFO] [stdout] test request_state::request_state_is_isolated_between_concurrent_scopes ... ok
[INFO] [stderr]      Running tests/cookies/main.rs (/opt/rustwide/target/debug/deps/cookies-9c5d8ad7d128963d)
[INFO] [stdout] test request_state::current_session_can_be_set_inside_scope ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test cookies::get_session_cookie_supports_custom_prefix_and_name ... ok
[INFO] [stdout] test cookies::get_session_cookie_reads_default_and_secure_cookie_names ... ok
[INFO] [stdout] test cookies::get_cookies_applies_custom_prefix_and_domain ... ok
[INFO] [stdout] test cookies::parse_set_cookie_header_handles_expires_commas_and_multiple_cookies ... ok
[INFO] [stdout] test cookies::parse_set_cookie_header_decodes_uri_encoded_values ... ok
[INFO] [stdout] test cookies::parse_set_cookie_header_parses_partitioned_attribute ... ok
[INFO] [stdout] test cookies::to_cookie_options_converts_parsed_attributes ... ok
[INFO] [stdout] test session::set_session_cookie_omits_max_age_when_dont_remember_is_true ... ok
[INFO] [stdout] test session::delete_session_cookie_expires_session_cookies_and_chunks ... ok
[INFO] [stdout] test store::chunked_cookie_store_joins_existing_chunks_by_index ... ok
[INFO] [stdout] test store::chunked_cookie_store_cleans_existing_chunks ... ok
[INFO] [stdout] test store::chunked_cookie_store_returns_single_cookie_for_small_values ... ok
[INFO] [stdout] test session::set_session_cookie_signs_session_token ... ok
[INFO] [stdout] test session::jwt_cookie_cache_rejects_version_mismatch ... ok
[INFO] [stdout] test session::compact_cookie_cache_round_trips_with_valid_signature ... ok
[INFO] [stdout] test cookies::parse_cookies_preserves_values_containing_equals ... ok
[INFO] [stdout] test session::jwt_cookie_cache_round_trips_with_valid_signature ... ok
[INFO] [stdout] test cookies::get_cookies_uses_default_names_and_attributes ... ok
[INFO] [stdout] test session::jwt_cookie_cache_rejects_wrong_secret ... ok
[INFO] [stdout] test cookies::get_cookies_uses_secure_prefix_when_https_base_url ... ok
[INFO] [stdout] test session::compact_cookie_cache_rejects_tampered_payload ... ok
[INFO] [stdout] test cookies::strip_secure_cookie_prefix_removes_secure_prefix ... ok
[INFO] [stdout] test store::chunked_cookie_store_splits_large_values ... ok
[INFO] [stdout] test session::jwe_cookie_cache_rejects_wrong_secret ... ok
[INFO] [stdout] test session::jwe_cookie_cache_round_trips_with_valid_secret ... ok
[INFO] [stdout] test session::jwe_cookie_cache_decodes_with_rotated_secret_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/crypto/main.rs (/opt/rustwide/target/debug/deps/crypto-e4e170d0112e3ae3)
[INFO] [stdout] 
[INFO] [stdout] running 39 tests
[INFO] [stdout] test buffer::constant_time_equal_accepts_equal_byte_slices ... ok
[INFO] [stdout] test buffer::constant_time_equal_rejects_different_lengths ... ok
[INFO] [stdout] test buffer::constant_time_equal_rejects_different_content ... ok
[INFO] [stdout] test buffer::constant_time_equal_accepts_equal_strings ... ok
[INFO] [stdout] test password::verify_password_rejects_malformed_hash ... ok
[INFO] [stdout] test random::generate_random_string_uses_openauth_charset ... ok
[INFO] [stdout] test random::generate_random_string_respects_requested_length ... ok
[INFO] [stdout] test random::generate_random_string_differs_across_calls ... ok
[INFO] [stdout] test secret_config::build_secret_config_excludes_default_legacy_secret ... ok
[INFO] [stdout] test secret_config::build_secret_config_includes_non_default_legacy_secret ... ok
[INFO] [stdout] test secret_config::build_secret_config_uses_first_entry_as_current_version ... ok
[INFO] [stdout] test jwt::verify_jwt_accepts_token_signed_with_same_secret ... ok
[INFO] [stdout] test secret_config::parse_secrets_env_rejects_empty_secret_value ... ok
[INFO] [stdout] test secret_config::parse_secrets_env_rejects_entry_without_colon ... ok
[INFO] [stdout] test jwt::verify_jwt_rejects_token_signed_with_different_secret ... ok
[INFO] [stdout] test jwt::verify_jwt_rejects_expired_token ... ok
[INFO] [stdout] test secret_config::parse_secrets_env_returns_none_for_missing_or_empty ... ok
[INFO] [stdout] test secret_config::validate_secrets_rejects_duplicate_versions ... ok
[INFO] [stdout] test secret_config::parse_secrets_env_trims_entries_and_values ... ok
[INFO] [stdout] test secret_rotation::parse_envelope_parses_valid_versioned_payload ... ok
[INFO] [stdout] test secret_rotation::parse_envelope_rejects_negative_version ... ok
[INFO] [stdout] test secret_config::parse_secrets_env_rejects_negative_version ... ok
[INFO] [stdout] test secret_rotation::format_envelope_uses_openauth_prefix ... ok
[INFO] [stdout] test secret_config::validate_secrets_rejects_empty_array ... ok
[INFO] [stdout] test secret_rotation::parse_envelope_returns_none_for_bare_ciphertext ... ok
[INFO] [stdout] test secret_rotation::symmetric_encrypt_with_secret_config_uses_current_version ... ok
[INFO] [stdout] test secret_rotation::symmetric_encrypt_with_string_secret_round_trips_without_envelope ... ok
[INFO] [stdout] test secret_rotation::symmetric_decrypt_uses_legacy_secret_for_bare_payload ... ok
[INFO] [stdout] test secret_rotation::symmetric_decrypt_accepts_old_key_in_rotation_config ... ok
[INFO] [stdout] test jwe::symmetric_jwe_rejects_mismatched_kid_without_fallback ... ok
[INFO] [stdout] test jwe::symmetric_jwe_accepts_tokens_inside_clock_tolerance ... ok
[INFO] [stdout] test jwe::symmetric_jwe_round_trips_with_string_secret ... ok
[INFO] [stdout] test jwe::symmetric_jwe_decodes_with_legacy_secret ... ok
[INFO] [stdout] test jwe::symmetric_jwe_decodes_with_rotated_secret_config ... ok
[INFO] [stdout] test password::hash_password_returns_salt_and_hash ... ok
[INFO] [stdout] test password::verify_password_accepts_correct_password ... ok
[INFO] [stdout] test password::verify_password_handles_unicode_passwords ... ok
[INFO] [stdout] test password::verify_password_rejects_wrong_password ... ok
[INFO] [stdout] test password::hash_password_generates_different_hashes_for_same_password ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 23.29s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/db/main.rs (/opt/rustwide/target/debug/deps/db-d7e43fb124180108)
[INFO] [stdout] 
[INFO] [stdout] running 127 tests
[INFO] [stdout] test adapter_contract::adapter_capabilities_can_describe_sql_style_databases ... ok
[INFO] [stdout] test adapter_contract::adapter_capabilities_default_to_core_safe_values ... ok
[INFO] [stdout] test adapter_contract::adapter_transaction_can_be_overridden_by_real_adapter ... ok
[INFO] [stdout] test adapter_contract::create_captures_data_select_and_id_policy_hint ... ok
[INFO] [stdout] test adapter_contract::count_update_and_delete_share_where_contract ... ok
[INFO] [stdout] test adapter_contract::db_value_supports_nested_join_records ... ok
[INFO] [stdout] test adapter_contract::adapter_transaction_falls_back_to_current_adapter ... ok
[INFO] [stdout] test adapter_contract::find_many_defaults_to_no_limit_or_offset ... ok
[INFO] [stdout] test adapter_contract::adapter_trait_is_async_and_object_safe ... ok
[INFO] [stdout] test adapter_contract::find_many_supports_sort_limit_offset_and_select ... ok
[INFO] [stdout] test adapter_contract::find_queries_support_join_options ... ok
[INFO] [stdout] test adapter_contract::join_config_captures_resolved_relation_metadata ... ok
[INFO] [stdout] test adapter_contract::schema_creation_describes_file_write_intent_without_writing ... ok
[INFO] [stdout] test adapter_contract::where_clause_defaults_to_eq_and_and_connector ... ok
[INFO] [stdout] test adapter_contract::where_clause_supports_or_connector ... ok
[INFO] [stdout] test adapter_contract::find_one_requires_where_clauses_and_supports_select ... ok
[INFO] [stdout] test adapter_contract::where_clause_supports_case_insensitive_pattern_matching ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_before_delete_can_cancel ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_context_has_no_request_path_outside_request_scope ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_delete_hooks_receive_snapshots ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_does_not_run_after_hooks_when_transaction_fails ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_before_create_can_modify_data ... ok
[INFO] [stdout] test adapter_factory::schema_adapter_transforms_create_before_delegating ... ok
[INFO] [stdout] test adapter_factory::schema_adapter_transforms_find_many_before_delegating ... ok
[INFO] [stdout] test adapter_factory::schema_adapter_applies_inner_adapter_capabilities ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_queues_after_hooks_until_transaction_success ... ok
[INFO] [stdout] test adapter_transform::resolve_join_options_adds_required_select_field ... ok
[INFO] [stdout] test adapter_transform::transform_create_query_maps_logical_names_to_physical_names ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_find_and_count_do_not_execute_hooks ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_before_update_and_update_many_can_modify_data ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_hooks_run_in_order_and_inside_native_transactions ... ok
[INFO] [stdout] test adapter_transform::resolve_join_options_maps_forward_foreign_key ... ok
[INFO] [stdout] test adapter_factory::join_adapter_falls_back_without_passing_joins_to_inner_adapter ... ok
[INFO] [stdout] test adapter_transform::resolve_join_options_maps_reverse_foreign_key_as_one_to_one ... ok
[INFO] [stdout] test adapter_transform::transform_update_query_converts_timestamps_when_adapter_lacks_date_support ... ok
[INFO] [stdout] test adapter_transform::transform_update_query_maps_update_data_and_where_fields ... ok
[INFO] [stdout] test adapter_transform::transform_create_query_stringifies_json_when_adapter_lacks_json_support ... ok
[INFO] [stdout] test adapter_transform::transform_find_many_query_maps_where_sort_and_select_fields ... ok
[INFO] [stdout] test adapter_transform::transform_create_query_stringifies_arrays_when_adapter_lacks_array_support ... ok
[INFO] [stdout] test adapter_transform::resolve_join_options_returns_typed_error_without_foreign_key ... ok
[INFO] [stdout] test adapter_transform::transform_create_query_converts_booleans_when_adapter_lacks_boolean_support ... ok
[INFO] [stdout] test adapter_factory::join_adapter_passes_joins_when_experimental_and_supported ... ok
[INFO] [stdout] test id_policy::id_policy_converts_serial_input_to_number ... ok
[INFO] [stdout] test id_policy::id_policy_drops_invalid_uuid_input_when_force_allow_id_is_true ... ok
[INFO] [stdout] test id_policy::id_policy_drops_uuid_input_when_database_generates_uuid ... ok
[INFO] [stdout] test id_policy::id_policy_defaults_to_required_string_id ... ok
[INFO] [stdout] test id_policy::id_policy_outputs_values_as_strings ... ok
[INFO] [stdout] test adapter_transform::transform_query_returns_typed_error_for_unknown_field ... ok
[INFO] [stdout] test adapter_transform::transform_count_and_delete_many_queries_map_where_fields ... ok
[INFO] [stdout] test memory_adapter::memory_adapter_clones_share_inserted_records ... ok
[INFO] [stdout] test memory_adapter::memory_adapter_reports_public_capabilities ... ok
[INFO] [stdout] test id_policy::id_policy_disables_required_id_when_generation_is_disabled ... ok
[INFO] [stdout] test memory_adapter::join_adapter_fallback_batches_find_many_and_applies_join_limits ... ok
[INFO] [stdout] test memory_adapter::memory_adapter_filters_sorts_limits_and_counts_records ... ok
[INFO] [stdout] test memory_adapter::join_adapter_fallback_composes_forward_and_reverse_joins ... ok
[INFO] [stdout] test memory_adapter::memory_adapter_updates_and_deletes_matching_records ... ok
[INFO] [stdout] test memory_adapter::memory_adapter_supports_verification_store_lifecycle ... ok
[INFO] [stdout] test output::filter_output_fields_keeps_unknown_fields ... ok
[INFO] [stdout] test adapter_transform::transform_find_many_query_coerces_number_strings_in_where_clauses ... ok
[INFO] [stdout] test output::filter_output_fields_removes_hidden_fields ... ok
[INFO] [stdout] test adapter_transform::transform_create_query_keeps_json_native_when_adapter_supports_json ... ok
[INFO] [stdout] test schema::auth_schema_applies_serial_id_policy_to_core_tables ... ok
[INFO] [stdout] test memory_adapter::memory_adapter_satisfies_shared_adapter_contract ... ok
[INFO] [stdout] test schema::auth_schema_keeps_access_and_refresh_expiry_overrides_separate ... ok
[INFO] [stdout] test schema::auth_schema_includes_rate_limits_only_for_database_storage ... ok
[INFO] [stdout] test memory_adapter::memory_adapter_supports_or_connectors_and_in_operators ... ok
[INFO] [stdout] test schema::auth_schema_marks_uuid_id_optional_when_database_generates_uuid ... ok
[INFO] [stdout] test schema::auth_schema_returns_typed_error_for_unknown_field ... ok
[INFO] [stdout] test schema::auth_schema_resolves_field_name_from_logical_or_database_name ... ok
[INFO] [stdout] test schema::auth_schema_excludes_verification_table_when_secondary_storage_is_configured ... ok
[INFO] [stdout] test schema::auth_schema_resolves_table_name_from_logical_or_database_name ... ok
[INFO] [stdout] test schema::auth_schema_uses_custom_refresh_token_expiry_field_name ... ok
[INFO] [stdout] test schema::auth_schema_uses_snake_case_column_names_by_default ... ok
[INFO] [stdout] test schema::auth_schema_uses_plural_table_names_by_default ... ok
[INFO] [stdout] test schema::auth_schema_returns_typed_error_for_unknown_table ... ok
[INFO] [stdout] test session_store::db_session_store_deletes_all_sessions_for_user ... ok
[INFO] [stdout] test schema::auth_schema_uses_physical_user_table_in_account_foreign_key ... ok
[INFO] [stdout] test session_store::db_session_store_ignores_expired_sessions ... ok
[INFO] [stdout] test sql::consume_sql_rate_limit_record_resets_or_denies_without_adapter_logic ... ok
[INFO] [stdout] test id_policy::id_policy_marks_database_uuid_generation_when_supported ... ok
[INFO] [stdout] test id_policy::id_policy_uses_number_for_serial_ids ... ok
[INFO] [stdout] test session_store::db_session_store_creates_session_record ... ok
[INFO] [stdout] test session_store::db_session_store_lists_active_sessions_for_user ... ok
[INFO] [stdout] test session_store::db_session_store_deletes_session_by_token ... ok
[INFO] [stdout] test session_store::db_session_store_finds_valid_session_by_token ... ok
[INFO] [stdout] test sql::create_statement_builds_insert_sql_and_params ... ok
[INFO] [stdout] test sql::execute_schema_migration_plan_runs_statements_through_sql_executor ... ok
[INFO] [stdout] test sql::plan_schema_migration_creates_missing_tables_in_schema_order ... ok
[INFO] [stdout] test sql::create_statement_returns_generated_ids_for_returning_dialects ... ok
[INFO] [stdout] test sql::delete_one_statement_uses_dialect_specific_single_row_strategy ... ok
[INFO] [stdout] test sql::count_statement_builds_count_sql ... ok
[INFO] [stdout] test sql::plan_schema_migration_warns_for_foreign_key_mismatch ... ok
[INFO] [stdout] test sql::plan_schema_migration_warns_for_constraint_and_id_mismatches ... ok
[INFO] [stdout] test schema::auth_schema_includes_verification_table_when_store_in_database_is_true ... ok
[INFO] [stdout] test schema::auth_schema_merges_additional_verification_fields ... ok
[INFO] [stdout] test sql::find_many_statement_builds_select_sort_limit_offset ... ok
[INFO] [stdout] test sql::joined_rows_groups_base_records_and_applies_join_limits ... ok
[INFO] [stdout] test sql::plan_schema_migration_repairs_missing_unique_indexes ... ok
[INFO] [stdout] test sql::plan_schema_migration_reports_missing_columns_indexes_and_type_warnings ... ok
[INFO] [stdout] test session_store::db_session_store_updates_session_expiry ... ok
[INFO] [stdout] test id_policy::id_policy_drops_invalid_serial_input ... ok
[INFO] [stdout] test sql::rate_limit_consume_statements_are_dialect_specific ... ok
[INFO] [stdout] test sql::sql_dialect_rejects_invalid_identifiers ... ok
[INFO] [stdout] test sql::sql_dialect_supports_database_generated_id_column_definitions ... ok
[INFO] [stdout] test sql::sql_dialect_escapes_like_wildcards_in_string_pattern_predicates ... ok
[INFO] [stdout] test sql::sql_rate_limit_names_resolve_physical_schema_names ... ok
[INFO] [stdout] test sql::sql_adapter_runner_reads_rows_without_sqlx ... ok
[INFO] [stdout] test sql::update_one_plan_uses_returning_for_postgres_and_preselect_for_mysql ... ok
[INFO] [stdout] test sql::sql_dialect_applies_insensitive_mode_to_equality_and_array_predicates ... ok
[INFO] [stdout] test sql::sql_dialect_where_clause_uses_postgres_placeholders_and_params ... ok
[INFO] [stdout] test user_store::db_user_store_finds_credential_account_for_user ... ok
[INFO] [stdout] test user_store::db_user_store_creates_credential_account ... ok
[INFO] [stdout] test sql::sql_module_reexports_public_adapter_api_after_internal_split ... ok
[INFO] [stdout] test sql::sql_dialect_compiles_empty_in_predicates_as_boolean_constants ... ok
[INFO] [stdout] test user_store::db_user_store_creates_user_with_username_fields ... ok
[INFO] [stdout] test user_store::db_user_store_creates_user_with_lowercase_email ... ok
[INFO] [stdout] test sql::sql_dialect_maps_postgres_arrays_to_native_array_types ... ok
[INFO] [stdout] test user_store::db_user_store_finds_user_by_email_with_accounts ... ok
[INFO] [stdout] test sql::sql_dialect_groups_and_or_predicates_deterministically ... ok
[INFO] [stdout] test verification_store::db_verification_store_deletes_by_identifier ... ok
[INFO] [stdout] test verification_store::db_verification_store_finds_latest_active_value ... ok
[INFO] [stdout] test verification_store::db_verification_store_creates_verification_value ... ok
[INFO] [stdout] test verification_store::db_verification_store_returns_none_for_expired_values_and_cleans_them ... ok
[INFO] [stdout] test user_store::db_user_store_rolls_back_oauth_user_when_account_create_fails ... ok
[INFO] [stdout] test verification_store::db_verification_store_updates_by_identifier ... ok
[INFO] [stdout] test id_policy::id_policy_accepts_uuid_input_when_force_allow_id_is_true ... ok
[INFO] [stdout] test adapter_factory::hooked_adapter_after_hooks_receive_results ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 127 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/env/main.rs (/opt/rustwide/target/debug/deps/env-cf46222798434b3c)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test logger::logger_maps_success_to_info_for_custom_handler ... ok
[INFO] [stdout] test logger::disabled_logger_does_not_publish ... ok
[INFO] [stdout] test logger::should_publish_log_follows_level_ordering ... ok
[INFO] [stdout] test logger::logger_does_not_publish_below_configured_level ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/options.rs (/opt/rustwide/target/debug/deps/options-585eb679639a6f71)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test auth_environment_debug_redacts_secret_material ... ok
[INFO] [stdout] test experimental_joins_default_to_disabled_and_can_be_enabled ... ok
[INFO] [stdout] test secret_rotation_debug_redacts_secret_material ... ok
[INFO] [stdout] test openauth_options_debug_redacts_secret_material ... ok
[INFO] [stdout] test auth_environment_from_process_is_empty_when_secret_env_is_unset ... ok
[INFO] [stdout] test auth_environment_from_process_reads_mocked_secret_env ... ok
[INFO] [stdout] test is_production_is_false_when_rust_env_is_unset ... ok
[INFO] [stdout] test is_production_only_accepts_exact_production_rust_env ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/package_reexports.rs (/opt/rustwide/target/debug/deps/package_reexports-bcda2ca5a7d76ccb)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test core_reexports_oauth_and_social_provider_packages ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rate_limit/main.rs (/opt/rustwide/target/debug/deps/rate_limit-42d36da78a0ae0ac)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test rate_limiter::disabled_paths_do_not_touch_rate_limit_storage ... ok
[INFO] [stdout] test rate_limiter::hybrid_disabled_uses_distributed_store_directly ... ok
[INFO] [stdout] test rate_limiter::custom_store_decision_is_used_with_one_consume_call ... ok
[INFO] [stdout] test rate_limiter::governor_memory_rate_limiter_reports_remaining_capacity ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_falls_back_to_client_ip_when_configured_header_is_invalid ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_ignores_unconfigured_forwarded_headers ... ok
[INFO] [stdout] test rate_limiter::production_requests_without_ip_are_not_rate_limited ... ok
[INFO] [stdout] test rate_limiter::memory_rate_limiter_ceil_retry_after_seconds ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_can_disable_a_custom_path ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_keeps_client_ips_separate ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_keys_by_normalized_path_without_query ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_supports_dynamic_request_aware_rules ... ok
[INFO] [stdout] test rate_limiter::hybrid_returns_global_denial_when_local_permits ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_uses_explicit_forwarded_header_configuration ... ok
[INFO] [stdout] test rate_limiter::sync_handler_returns_clear_error_when_rate_limit_must_consume ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_uses_special_sign_in_rule ... ok
[INFO] [stdout] test rate_limiter::hybrid_local_denial_stops_before_global_store ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_supports_custom_wildcard_rules ... ok
[INFO] [stdout] test rate_limiter::rate_limiter_uses_request_client_ip_extension ... ok
[INFO] [stderr]      Running tests/utils/main.rs (/opt/rustwide/target/debug/deps/utils-1aab0371c31783b0)
[INFO] [stdout] test rate_limiter::runtime_external_rate_limit_storage_without_store_returns_clear_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test host::classify_host_treats_empty_input_as_reserved ... ok
[INFO] [stdout] test ip::create_rate_limit_key_uses_collision_safe_separator ... ok
[INFO] [stdout] test ip::is_valid_ip_accepts_ipv4_and_ipv6 ... ok
[INFO] [stdout] test ip::is_valid_ip_rejects_invalid_values ... ok
[INFO] [stdout] test host::classify_host_identifies_link_local_metadata_ip ... ok
[INFO] [stdout] test host::classify_host_identifies_private_ipv4_ranges ... ok
[INFO] [stdout] test host::classify_host_identifies_localhost_domains ... ok
[INFO] [stdout] test ip::normalize_ip_converts_ipv4_mapped_ipv6_to_ipv4 ... ok
[INFO] [stdout] test ip::normalize_ip_leaves_ipv4_unchanged ... ok
[INFO] [stdout] test host::classify_host_normalizes_ipv4_with_port ... ok
[INFO] [stdout] test host::classify_host_identifies_cloud_metadata_domains ... ok
[INFO] [stdout] test host::loopback_helpers_are_strict ... ok
[INFO] [stdout] test host::classify_host_identifies_public_hosts ... ok
[INFO] [stdout] test ip::normalize_ip_lowercases_invalid_values ... ok
[INFO] [stdout] test host::classify_host_normalizes_bracketed_ipv6_with_port ... ok
[INFO] [stdout] test trusted_origins::relative_paths_are_rejected_by_default ... ok
[INFO] [stdout] test ip::normalize_ip_can_keep_full_ipv6_address ... ok
[INFO] [stdout] test ip::normalize_ip_uses_ipv6_64_subnet_by_default ... ok
[INFO] [stdout] test trusted_origins::matches_origin_pattern_supports_host_wildcards ... ok
[INFO] [stdout] test ip::normalize_ip_can_apply_ipv6_48_subnet ... ok
[INFO] [stdout] test trusted_origins::matches_origin_pattern_supports_protocol_specific_wildcards ... ok
[INFO] [stdout] test trusted_origins::safe_relative_paths_can_be_allowed ... ok
[INFO] [stdout] test trusted_origins::matches_origin_pattern_supports_custom_scheme_wildcards ... ok
[INFO] [stdout] test trusted_origins::context_rejects_origin_prefix_confusion ... ok
[INFO] [stdout] test trusted_origins::context_trusts_configured_base_origin ... ok
[INFO] [stdout] test trusted_origins::context_merges_request_aware_trusted_origins ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests openauth_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c", kill_on_drop: false }`
[INFO] [stdout] 468fa774006f63c3720b79c236eb10642277b5a4b4c6510328c680c5ce16e17c
