[INFO] fetching crate rustlavel-oauth-provider 0.8.1...
[INFO] testing rustlavel-oauth-provider-0.8.1 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate rustlavel-oauth-provider 0.8.1 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate rustlavel-oauth-provider 0.8.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rustlavel-oauth-provider 0.8.1
[INFO] tweaked toml for crates.io crate rustlavel-oauth-provider 0.8.1 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rustlavel-oauth-provider 0.8.1 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rustlavel-oauth-provider 0.8.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac
[INFO] running `Command { std: "docker" "start" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac", 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" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac", 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" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling base16ct v0.2.0
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling rustlavel-core v0.8.1
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ff v0.13.1
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling group v0.13.0
[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 crypto-bigint v0.5.5
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling sec1 v0.7.3
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling rfc6979 v0.4.0
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling elliptic-curve v0.13.8
[INFO] [stderr]    Compiling ecdsa v0.16.9
[INFO] [stderr]    Compiling primeorder v0.13.6
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling p256 v0.13.2
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling rustlavel-http v0.8.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustlavel-auth v0.8.1
[INFO] [stderr]    Compiling rustlavel-client v0.8.1
[INFO] [stderr]    Compiling rustlavel-oauth v0.8.1
[INFO] [stderr]    Compiling rustlavel-oauth-provider v0.8.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.84s
[INFO] running `Command { std: "docker" "inspect" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac", 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" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustlavel-macros v0.8.1
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling rustlavel-db v0.8.1
[INFO] [stderr]    Compiling rustlavel-oauth-provider v0.8.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.22s
[INFO] running `Command { std: "docker" "inspect" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac", 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" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/rustlavel-oauth-provider/53576430fc0a9ec8/out/rustlavel_oauth_provider-53576430fc0a9ec8)
[INFO] [stdout] 
[INFO] [stdout] running 169 tests
[INFO] [stdout] test client::tests::a_confidential_client_verifies_its_own_secret_and_no_other ... ok
[INFO] [stdout] test client::tests::a_public_client_accepts_no_secret_at_all ... ok
[INFO] [stdout] test client::tests::a_client_from_a_stored_hash_verifies_the_same_way ... ok
[INFO] [stdout] test client::tests::a_generated_secret_is_long_random_and_url_safe ... ok
[INFO] [stdout] test client::tests::redirect_matching_goes_through_the_registered_set_exactly ... ok
[INFO] [stdout] test clock::tests::a_clone_shares_the_same_skew ... ok
[INFO] [stdout] test clock::tests::advancing_moves_time_forward_and_nothing_else ... ok
[INFO] [stdout] test clock::tests::reports_a_plausible_wall_clock ... ok
[INFO] [stdout] test client::tests::debug_prints_no_hash ... ok
[INFO] [stdout] test code::tests::a_code_expires_the_second_its_lifetime_is_up ... ok
[INFO] [stdout] test client::tests::the_store_finds_what_was_registered_and_nothing_else ... ok
[INFO] [stdout] test code::tests::a_fresh_code_is_spent_once_and_carries_its_bindings ... ok
[INFO] [stdout] test code::tests::an_expired_code_is_refused_without_being_spent ... ok
[INFO] [stdout] test code::tests::a_replay_after_the_lifetime_is_still_a_replay ... ok
[INFO] [stdout] test client::tests::a_forgotten_client_stops_resolving ... ok
[INFO] [stdout] test client::tests::registration_refuses_a_client_with_an_unsafe_redirect_uri ... ok
[INFO] [stdout] test code::tests::the_code_itself_is_never_kept ... ok
[INFO] [stdout] test code::tests::an_unknown_code_is_unknown ... ok
[INFO] [stdout] test consent::tests::a_grant_covers_only_what_it_records ... ok
[INFO] [stdout] test consent::tests::a_forgotten_grant_has_to_be_asked_for_again ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_redirected_error_carries_the_state_back ... ok
[INFO] [stdout] test code::tests::purging_keeps_a_spent_code_for_its_retention_window ... ok
[INFO] [stdout] test code::tests::the_plaintext_code_is_not_a_lookup_key ... ok
[INFO] [stdout] test consent::tests::a_grant_is_found_for_its_own_client_and_user_only ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_repeated_redirect_uri_is_refused_before_either_copy_is_used ... ok
[INFO] [stdout] test consent::tests::a_new_grant_replaces_the_old_one_rather_than_accumulating ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_challenge_with_no_method_is_not_quietly_treated_as_plain ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_client_registered_for_nothing_may_ask_for_nothing ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_downgrade_to_plain_is_refused ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_complete_request_passes_and_narrows_the_scopes ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_missing_redirect_uri_is_refused_on_our_own_page ... ok
[INFO] [stdout] test code::tests::replaying_a_code_reports_the_family_to_revoke ... ok
[INFO] [stdout] test endpoints::client_auth::tests::a_request_with_no_credentials_at_all_is_refused ... ok
[INFO] [stdout] test endpoints::client_auth::tests::a_basic_secret_containing_plus_or_slash_survives ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_request_with_no_pkce_at_all_is_refused ... ok
[INFO] [stdout] test endpoints::authorize::tests::an_unknown_client_is_refused_on_our_own_page ... ok
[INFO] [stdout] test endpoints::authorize::tests::redirect_uri_substitution_is_refused_on_our_own_page ... ok
[INFO] [stdout] test endpoints::authorize::tests::the_implicit_flow_is_refused_with_a_reason ... ok
[INFO] [stdout] test endpoints::authorize::tests::a_scope_beyond_what_the_client_registered_is_refused ... ok
[INFO] [stdout] test endpoints::client_auth::tests::a_public_client_authenticates_by_id_alone_but_may_not_send_a_secret ... ok
[INFO] [stdout] test endpoints::client_auth::tests::a_confidential_client_authenticates_with_its_secret_and_not_without ... ok
[INFO] [stdout] test endpoints::authorize::tests::an_unknown_challenge_method_is_refused_rather_than_ignored ... ok
[INFO] [stdout] test endpoints::client_auth::tests::a_malformed_basic_header_is_refused_rather_than_ignored ... ok
[INFO] [stdout] test endpoints::client_auth::tests::a_public_client_presents_only_its_id ... ok
[INFO] [stdout] test endpoints::client_auth::tests::a_bearer_authorization_header_is_not_read_as_client_credentials ... ok
[INFO] [stdout] test endpoints::client_auth::tests::a_body_client_id_that_disagrees_with_the_header_is_refused ... ok
[INFO] [stdout] test endpoints::client_auth::tests::an_unknown_client_fails_exactly_like_a_wrong_secret ... ok
[INFO] [stdout] test endpoints::discovery::tests::it_advertises_only_what_the_server_actually_accepts ... ok
[INFO] [stdout] test endpoints::client_auth::tests::endpoints_that_need_real_authentication_refuse_a_public_client ... ok
[INFO] [stdout] test endpoints::client_auth::tests::presenting_two_sets_of_credentials_is_refused ... ok
[INFO] [stdout] test endpoints::introspect::tests::a_client_credentials_token_has_no_subject ... ok
[INFO] [stdout] test endpoints::introspect::tests::a_refresh_token_can_be_introspected_too ... ok
[INFO] [stdout] test endpoints::introspect::tests::introspection_with_a_wrong_secret_is_refused ... ok
[INFO] [stdout] test endpoints::client_auth::tests::reads_http_basic_credentials ... ok
[INFO] [stdout] test endpoints::introspect::tests::a_public_client_may_not_introspect ... ok
[INFO] [stdout] test endpoints::discovery::tests::a_custom_mount_point_moves_every_advertised_endpoint ... ok
[INFO] [stdout] test endpoints::client_auth::tests::reads_form_body_credentials ... ok
[INFO] [stdout] test endpoints::discovery::tests::introspection_does_not_advertise_unauthenticated_access ... ok
[INFO] [stdout] test endpoints::discovery::tests::every_endpoint_is_absolute_and_under_the_issuer ... ok
[INFO] [stdout] test endpoints::params::tests::reads_a_value_and_reports_a_missing_one ... ok
[INFO] [stdout] test endpoints::params::tests::an_empty_value_is_treated_as_absent ... ok
[INFO] [stdout] test endpoints::params::tests::a_repeated_parameter_is_refused_rather_than_resolved ... ok
[INFO] [stdout] test endpoints::introspect::tests::a_live_access_token_is_described ... ok
[INFO] [stdout] test endpoints::revoke::tests::an_unknown_token_is_a_success_rather_than_an_oracle ... ok
[INFO] [stdout] test endpoints::introspect::tests::a_missing_token_is_a_malformed_request_not_an_inactive_one ... ok
[INFO] [stdout] test endpoints::params::tests::the_body_is_read_for_a_post_and_the_query_is_not ... ok
[INFO] [stdout] test endpoints::introspect::tests::introspection_without_authentication_is_refused ... ok
[INFO] [stdout] test endpoints::revoke::tests::another_clients_token_is_a_success_and_stays_live ... ok
[INFO] [stdout] test endpoints::revoke::tests::a_wrong_hint_still_finds_the_token ... ok
[INFO] [stdout] test endpoints::introspect::tests::every_kind_of_bad_token_gives_the_same_flat_answer ... ok
[INFO] [stdout] test endpoints::revoke::tests::revoking_an_access_token_stops_it_working ... ok
[INFO] [stderr] [38;5;214m WARN[0m  oauth: revoked 4 token(s) in family family-1: test
[INFO] [stdout] test endpoints::revoke::tests::a_wrong_secret_revokes_nothing ... ok
[INFO] [stdout] test endpoints::token::tests::a_different_redirect_uri_at_the_token_step_is_refused ... ok
[INFO] [stdout] test endpoints::token::tests::an_expired_code_is_refused ... ok
[INFO] [stdout] test endpoints::token::tests::a_wrong_client_secret_is_refused_before_the_code_is_touched ... ok
[INFO] [stdout] test endpoints::params::tests::a_repeated_parameter_is_refused_even_when_both_copies_agree ... ok
[INFO] [stdout] test endpoints::revoke::tests::revocation_requires_a_client_and_a_token ... ok
[INFO] [stdout] test endpoints::token::tests::an_expired_refresh_token_is_refused ... ok
[INFO] [stdout] test endpoints::token::tests::an_unknown_refresh_token_is_refused ... ok
[INFO] [stdout] test endpoints::token::tests::an_unknown_grant_type_lists_the_ones_that_work ... ok
[INFO] [stdout] test endpoints::revoke::tests::revoking_a_refresh_token_takes_its_access_token_with_it ... ok
[INFO] [stdout] test endpoints::token::tests::client_credentials_cannot_exceed_what_the_client_registered ... ok
[INFO] [stderr] [38;5;214m WARN[0m  oauth: revoked 2 token(s) in family 1ME_OMHHjXEY69CA6C3qjI6VF_NCnQ_a8xRTCae8HYA: a refresh token was presented by a different client
[INFO] [stdout] test endpoints::token::tests::a_code_issued_to_one_client_cannot_be_redeemed_by_another ... ok
[INFO] [stdout] test endpoints::revoke::tests::revoking_twice_is_still_a_success ... ok
[INFO] [stdout] test endpoints::token::tests::client_credentials_is_refused_for_a_public_client ... ok
[INFO] [stdout] test endpoints::token::tests::a_missing_code_verifier_is_refused ... ok
[INFO] [stdout] test page::tests::a_client_name_cannot_smuggle_markup_onto_the_consent_screen ... ok
[INFO] [stderr] [38;5;214m WARN[0m  oauth: revoked 3 token(s) in family FdNhKq1XqKvDZgz16gH_kR7f8M2KymRJmTeGhMpJdeI: a rotated refresh token was presented again
[INFO] [stderr] [38;5;214m WARN[0m  oauth: revoked 2 token(s) in family BGy1EFmkTm5qk6L44s3-d6gyjZb5Xvc2iPM_3UY4QDw: the authorization code was presented twice
[INFO] [stdout] test endpoints::token::tests::the_happy_path_returns_an_access_and_a_refresh_token ... ok
[INFO] [stderr] [38;5;214m WARN[0m  oauth: revoked 2 token(s) in family yMm2N27Y0nOVVHXGbF8lrRJTpv4ZdpV_WYQT3Tg28WY: the authorization code was presented twice
[INFO] [stdout] test endpoints::token::tests::scope_cannot_be_widened_at_a_refresh_either ... ok
[INFO] [stdout] test endpoints::token::tests::a_wrong_pkce_verifier_is_refused ... ok
[INFO] [stdout] test endpoints::token::tests::the_password_grant_is_refused_and_says_why ... ok
[INFO] [stdout] test endpoints::token::tests::client_credentials_issues_a_userless_token_with_no_refresh ... ok
[INFO] [stdout] test endpoints::token::tests::replaying_a_rotated_refresh_token_revokes_the_whole_family ... ok
[INFO] [stdout] test page::tests::a_redirected_error_appends_to_a_uri_that_already_has_a_query ... ok
[INFO] [stdout] test endpoints::token::tests::scope_cannot_be_widened_at_the_token_step ... ok
[INFO] [stdout] test page::tests::escaping_closes_every_way_out_of_an_attribute_or_a_tag ... ok
[INFO] [stdout] test page::tests::neither_page_may_be_cached ... ok
[INFO] [stdout] test page::tests::the_consent_form_carries_the_request_forward ... ok
[INFO] [stdout] test endpoints::token::tests::replaying_a_code_fails_and_revokes_what_the_first_use_got ... ok
[INFO] [stdout] test endpoints::token::tests::a_refresh_rotates_and_retires_the_token_it_was_given ... ok
[INFO] [stdout] test endpoints::token::tests::a_refresh_token_presented_by_another_client_kills_the_family ... ok
[INFO] [stdout] test endpoints::token::tests::scope_may_be_narrowed_at_the_token_step ... ok
[INFO] [stdout] test plugin::tests::a_consent_form_forged_by_another_site_is_refused ... ok
[INFO] [stdout] test plugin::tests::a_first_party_client_asking_for_more_than_it_was_granted_still_asks ... ok
[INFO] [stdout] test plugin::tests::a_first_party_client_with_a_prior_grant_skips_the_screen ... ok
[INFO] [stdout] test plugin::tests::a_code_replayed_through_the_endpoint_revokes_the_first_exchange ... ok
[INFO] [stdout] test plugin::tests::a_custom_mount_point_moves_the_endpoints_but_not_the_discovery_document ... ok
[INFO] [stdout] test plugin::tests::a_pkce_downgrade_to_plain_is_refused ... ok
[INFO] [stdout] test plugin::tests::a_stale_token_from_another_session_is_refused ... ok
[INFO] [stdout] test plugin::tests::the_machine_endpoints_are_not_behind_csrf ... ok
[INFO] [stdout] test redirect::tests::a_dot_dot_segment_is_not_normalised_away ... ok
[INFO] [stdout] test plugin::tests::an_anonymous_visitor_is_sent_to_the_login_page_first ... ok
[INFO] [stdout] test plugin::tests::revocation_through_the_endpoint_stops_a_token_working ... ok
[INFO] [stdout] test plugin::tests::a_third_party_client_is_asked_every_time ... ok
[INFO] [stdout] test endpoints::token::tests::the_challenge_cannot_be_passed_off_as_the_verifier ... ok
[INFO] [stdout] test plugin::tests::declining_sends_access_denied_back_to_the_client ... ok
[INFO] [stdout] test endpoints::token::tests::the_implicit_flow_is_refused_and_says_why ... ok
[INFO] [stdout] test plugin::tests::the_plugin_mounts_every_endpoint ... ok
[INFO] [stdout] test plugin::tests::the_discovery_document_is_served ... ok
[INFO] [stdout] test plugin::tests::introspection_without_authentication_is_refused_through_the_endpoint ... ok
[INFO] [stdout] test plugin::tests::the_whole_flow_works_end_to_end ... ok
[INFO] [stdout] test plugin::tests::the_token_endpoint_refuses_a_get ... ok
[INFO] [stdout] test plugin::tests::a_tampered_hidden_field_does_not_survive_the_post ... ok
[INFO] [stdout] test redirect::tests::a_trailing_slash_is_a_different_uri ... ok
[INFO] [stdout] test plugin::tests::redirect_uri_substitution_renders_here_and_redirects_nowhere ... ok
[INFO] [stdout] test redirect::tests::a_scheme_relative_uri_is_not_the_registered_one ... ok
[INFO] [stdout] test redirect::tests::a_suffixed_host_is_not_the_registered_host ... ok
[INFO] [stdout] test redirect::tests::an_added_query_string_is_a_different_uri ... ok
[INFO] [stderr] [38;5;214m WARN[0m  oauth: revoked 2 token(s) in family family-1: test
[INFO] [stdout] test redirect::tests::several_registered_uris_each_match_only_themselves ... ok
[INFO] [stdout] test redirect::tests::registration_refuses_a_hostless_http_uri ... ok
[INFO] [stdout] test redirect::tests::an_empty_registration_matches_nothing_at_all ... ok
[INFO] [stdout] test redirect::tests::the_scheme_port_and_case_all_have_to_agree ... ok
[INFO] [stdout] test redirect::tests::registration_refuses_a_relative_uri_or_a_fragment ... ok
[INFO] [stdout] test redirect::tests::registration_refuses_plain_http_to_anywhere_but_loopback ... ok
[INFO] [stderr] [38;5;214m WARN[0m  oauth: revoked 2 token(s) in family family-1: test
[INFO] [stdout] test redirect::tests::the_registered_uri_matches_itself_and_nothing_else_does ... ok
[INFO] [stdout] test resource::tests::an_expired_or_revoked_token_is_a_401 ... ok
[INFO] [stdout] test resource::tests::a_client_credentials_token_has_no_identity_attached ... ok
[INFO] [stdout] test resource::tests::a_token_in_the_query_string_is_not_accepted ... ok
[INFO] [stdout] test resource::tests::a_token_without_the_required_scope_is_a_403_not_a_401 ... ok
[INFO] [stdout] test resource::tests::a_valid_token_reaches_the_handler_with_its_claims ... ok
[INFO] [stdout] test resource::tests::a_missing_token_is_a_401_that_says_how_to_authenticate ... ok
[INFO] [stdout] test redirect::tests::registration_accepts_https_loopback_and_private_use_schemes ... ok
[INFO] [stdout] test resource::tests::an_expired_token_reports_the_token_and_not_the_scope ... ok
[INFO] [stdout] test server::tests::debug_shows_the_settings_and_no_store_contents ... ok
[INFO] [stdout] test server::tests::an_unknown_bearer_token_is_refused_the_same_way ... ok
[INFO] [stdout] test server::tests::client_credentials_get_no_refresh_token ... ok
[INFO] [stdout] test resource::tests::the_scheme_is_case_insensitive_and_nothing_else_is_accepted ... ok
[INFO] [stdout] test server::tests::issuing_returns_the_plaintext_and_stores_only_a_digest ... ok
[INFO] [stdout] test server::tests::revoking_a_family_kills_every_token_in_it ... ok
[INFO] [stdout] test server::tests::a_bearer_token_stops_working_when_it_expires_or_is_revoked ... ok
[INFO] [stdout] test server::tests::a_mount_point_is_normalised_into_a_path_prefix ... ok
[INFO] [stdout] test server::tests::a_nonsense_lifetime_falls_back_rather_than_issuing_dead_tokens ... ok
[INFO] [stdout] test resource::tests::every_required_scope_has_to_be_held ... ok
[INFO] [stdout] test server::tests::endpoint_urls_are_absolute_and_do_not_double_their_slash ... ok
[INFO] [stdout] test server::tests::the_issuer_falls_back_to_the_application_url ... ok
[INFO] [stdout] test token::tests::revoking_a_family_takes_down_both_halves_of_it ... ok
[INFO] [stdout] test store::tests::a_presented_secret_is_checked_against_its_stored_digest ... ok
[INFO] [stdout] test store::tests::the_digest_is_not_the_secret ... ok
[INFO] [stdout] test token::tests::revoking_one_token_leaves_its_sibling_alone ... ok
[INFO] [stdout] test token::tests::a_token_is_found_by_its_digest_and_not_by_its_plaintext ... ok
[INFO] [stdout] test token::tests::rotation_succeeds_exactly_once ... ok
[INFO] [stdout] test token::tests::a_rotated_token_is_no_longer_live ... ok
[INFO] [stdout] test token::tests::debug_prints_no_digest_for_either_token ... ok
[INFO] [stdout] test server::tests::configuration_supplies_the_issuer_mount_and_lifetimes ... ok
[INFO] [stdout] test client::tests::the_secret_is_not_kept_anywhere_on_the_client ... ok
[INFO] [stdout] test page::tests::a_local_error_page_says_nothing_was_redirected ... ok
[INFO] [stdout] test token::tests::an_expired_token_is_not_live_and_is_eventually_purged ... ok
[INFO] [stdout] test token::tests::a_generated_token_is_256_bits_and_url_safe ... ok
[INFO] [stdout] test store::tests::matches_a_known_sha256_vector ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 169 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/database_stores.rs (/opt/rustwide/target/debug/build/rustlavel-oauth-provider/150462ebdbcfd8ab/out/database_stores-150462ebdbcfd8ab)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rustlavel_oauth_provider
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/client.rs - client (line 3) ... ignored
[INFO] [stdout] test src/lib.rs - (line 8) ... ignored
[INFO] [stdout] test src/plugin.rs - plugin (line 3) ... ignored
[INFO] [stdout] test src/resource.rs - resource (line 4) ... ignored
[INFO] [stdout] test src/server.rs - server (line 4) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.31s; merged doctests compilation took 0.31s
[INFO] running `Command { std: "docker" "inspect" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac", kill_on_drop: false }`
[INFO] [stdout] 7edd33683fe50ad5b6d69d1e275286811c6803d815bd4159163f7e33e412eeac
