[INFO] fetching crate rainier-auth 2.0.0...
[INFO] testing rainier-auth-2.0.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate rainier-auth 2.0.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate rainier-auth 2.0.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rainier-auth 2.0.0
[INFO] tweaked toml for crates.io crate rainier-auth 2.0.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rainier-auth 2.0.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rainier-auth 2.0.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.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rainier-orm v2.0.0
[INFO] [stderr]   Downloaded tokio-macros v2.7.1
[INFO] [stderr]   Downloaded rainier-support v2.0.0
[INFO] [stderr]   Downloaded rainier-session v2.0.0
[INFO] [stderr]   Downloaded inherent v1.0.14
[INFO] [stderr]   Downloaded ghash v0.5.1
[INFO] [stderr]   Downloaded universal-hash v0.5.1
[INFO] [stderr]   Downloaded bcrypt v0.19.3
[INFO] [stderr]   Downloaded sea-query-derive v0.4.3
[INFO] [stderr]   Downloaded rainier-orm-macros v2.0.0
[INFO] [stderr]   Downloaded rainier-events v2.0.0
[INFO] [stderr]   Downloaded base64ct v1.8.3
[INFO] [stderr]   Downloaded rainier-container v2.0.0
[INFO] [stderr]   Downloaded chacha20 v0.9.1
[INFO] [stderr]   Downloaded aes-gcm-siv v0.11.1
[INFO] [stderr]   Downloaded blowfish v0.10.0
[INFO] [stderr]   Downloaded argon2 v0.5.3
[INFO] [stderr]   Downloaded poly1305 v0.8.0
[INFO] [stderr]   Downloaded polyval v0.6.2
[INFO] [stderr]   Downloaded ctr v0.9.2
[INFO] [stderr]   Downloaded rainier-http v2.0.0
[INFO] [stderr]   Downloaded rainier-middleware v2.0.0
[INFO] [stderr]   Downloaded rainier-cache v2.0.0
[INFO] [stderr]   Downloaded rainier-crypt v2.0.0
[INFO] [stderr]   Downloaded chacha20poly1305 v0.10.1
[INFO] [stderr]   Downloaded base64 v0.23.0
[INFO] [stderr]   Downloaded rainier-database v2.0.0
[INFO] [stderr]   Downloaded x25519-dalek v2.0.1
[INFO] [stderr]   Downloaded rainier-drivers v2.0.0
[INFO] [stderr]   Downloaded hkdf v0.12.4
[INFO] [stderr]   Downloaded sea-query v0.32.7
[INFO] [stderr]   Downloaded aes-gcm v0.10.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e
[INFO] running `Command { std: "docker" "start" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e", 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" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e", 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" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling zerocopy v0.8.55
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling futures-core v0.3.33
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling http-body-util v0.1.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling async-trait v0.1.91
[INFO] [stderr]    Compiling inherent v1.0.14
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling rainier-orm-macros v2.0.0
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling aes-gcm-siv v0.11.1
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling rand v0.8.7
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling sea-query-derive v0.4.3
[INFO] [stderr]    Compiling rainier-support v2.0.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling rainier-container v2.0.0
[INFO] [stderr]    Compiling rainier-events v2.0.0
[INFO] [stderr]    Compiling rainier-drivers v2.0.0
[INFO] [stderr]    Compiling rainier-crypt v2.0.0
[INFO] [stderr]    Compiling rainier-http v2.0.0
[INFO] [stderr]    Compiling sea-query v0.32.7
[INFO] [stderr]    Compiling rainier-middleware v2.0.0
[INFO] [stderr]    Compiling rainier-cache v2.0.0
[INFO] [stderr]    Compiling rainier-orm v2.0.0
[INFO] [stderr]    Compiling rainier-database v2.0.0
[INFO] [stderr]    Compiling rainier-session v2.0.0
[INFO] [stderr]    Compiling rainier-auth v2.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e", 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" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling tokio-macros v2.7.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling rand v0.8.7
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling aes-gcm-siv v0.11.1
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling rainier-crypt v2.0.0
[INFO] [stderr]    Compiling rainier-container v2.0.0
[INFO] [stderr]    Compiling rainier-middleware v2.0.0
[INFO] [stderr]    Compiling rainier-cache v2.0.0
[INFO] [stderr]    Compiling rainier-session v2.0.0
[INFO] [stderr]    Compiling rainier-auth v2.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 28.89s
[INFO] running `Command { std: "docker" "inspect" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e", 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" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rainier_auth-f636b4affc63f956)
[INFO] [stdout] 
[INFO] [stdout] running 98 tests
[INFO] [stdout] test abilities::tests::an_empty_column_is_no_abilities_rather_than_one_blank_one ... ok
[INFO] [stdout] test abilities::tests::any_of_nothing_is_not_a_grant ... ok
[INFO] [stdout] test abilities::tests::matching_is_exact_rather_than_lenient ... ok
[INFO] [stdout] test abilities::tests::all_and_any_do_what_they_say ... ok
[INFO] [stdout] test abilities::tests::an_exact_ability_grants_itself_and_nothing_else ... ok
[INFO] [stdout] test abilities::tests::the_everything_wildcard_grants_everything ... ok
[INFO] [stdout] test abilities::tests::no_abilities_grants_nothing ... ok
[INFO] [stdout] test abilities::tests::a_stored_column_round_trips ... ok
[INFO] [stdout] test challenge::tests::a_code_is_bound_to_its_purpose ... ok
[INFO] [stdout] test challenge::tests::a_code_is_bound_to_its_subject ... ok
[INFO] [stdout] test challenge::tests::an_absent_and_an_expired_challenge_answer_identically ... ok
[INFO] [stdout] test abilities::tests::a_namespace_wildcard_stops_at_its_prefix ... ok
[INFO] [stdout] test abilities::tests::it_displays_as_what_would_be_stored ... ok
[INFO] [stdout] test challenge::tests::a_code_is_issued_and_consumed_once ... ok
[INFO] [stdout] test challenge::tests::reissuing_replaces_the_outstanding_one ... ok
[INFO] [stdout] test challenge::tests::cancelling_removes_it ... ok
[INFO] [stdout] test challenge::tests::the_digit_count_is_clamped_to_something_sensible ... ok
[INFO] [stdout] test challenge::tests::the_message_says_how_many_attempts_are_left ... ok
[INFO] [stdout] test challenge::tests::codes_are_not_predictable ... ok
[INFO] [stdout] test challenge::tests::it_reports_whether_it_is_shared ... ok
[INFO] [stdout] test confirm::tests::a_recent_confirmation_gets_through ... ok
[INFO] [stdout] test confirm::tests::a_confirmation_older_than_the_window_is_refused ... ok
[INFO] [stdout] test confirm::tests::forgetting_a_confirmation_closes_the_window_early ... ok
[INFO] [stdout] test confirm::tests::no_confirmation_is_refused_with_423 ... ok
[INFO] [stdout] test gate::tests::a_before_check_can_also_deny_outright ... ok
[INFO] [stdout] test confirm::tests::the_default_window_is_fifteen_minutes ... ok
[INFO] [stdout] test gate::tests::a_gate_authorizes_a_cloud_principal ... ok
[INFO] [stdout] test confirm::tests::without_a_session_it_refuses_rather_than_passing ... ok
[INFO] [stdout] test gate::tests::a_subject_of_the_wrong_type_is_denied_rather_than_ignored ... ok
[INFO] [stdout] test gate::tests::a_gate_authorizes_an_api_client ... ok
[INFO] [stdout] test gate::tests::an_ability_decides_from_the_user_and_subject ... ok
[INFO] [stdout] test gate::tests::an_ability_with_no_subject ... ok
[INFO] [stdout] test gate::tests::an_undefined_ability_is_denied ... ok
[INFO] [stdout] test gate::tests::an_undefined_ability_is_denied_for_a_machine_too ... ok
[INFO] [stdout] test gate::tests::authorize_turns_a_denial_into_a_403 ... ok
[INFO] [stdout] test gate::tests::defined_abilities_can_be_listed ... ok
[INFO] [stdout] test gate::tests::a_before_check_returning_none_defers_to_the_ability ... ok
[INFO] [stdout] test guard::tests::a_backend_failure_is_an_error_not_a_silent_logout ... ok
[INFO] [stdout] test gate::tests::a_before_check_short_circuits_everything ... ok
[INFO] [stdout] test challenge::tests::a_wrong_answer_does_not_consume_the_challenge ... ok
[INFO] [stdout] test guard::tests::a_session_guard_rejects_an_unknown_user ... ok
[INFO] [stdout] test challenge::tests::attempts_are_counted_and_then_it_is_destroyed ... ok
[INFO] [stdout] test guard::tests::a_session_guard_rejects_a_wrong_password ... ok
[INFO] [stdout] test guard::tests::a_missing_default_guard_is_reported_when_used ... ok
[INFO] [stdout] test guard::tests::a_token_guard_also_accepts_an_api_token_input ... ok
[INFO] [stdout] test guard::tests::a_request_with_no_session_is_a_guest_rather_than_an_error ... ok
[INFO] [stdout] test guard::tests::a_token_guard_resolves_a_bearer_token ... ok
[INFO] [stdout] test guard::tests::a_session_guard_logs_in_and_resolves_the_user ... ok
[INFO] [stdout] test guard::tests::authenticate_fails_with_a_401_for_a_guest ... ok
[INFO] [stdout] test guard::tests::a_token_guard_rejects_an_unknown_or_absent_token ... ok
[INFO] [stdout] test guard::tests::logging_in_without_a_session_says_what_is_missing ... ok
[INFO] [stdout] test guard::tests::logging_out_without_a_session_is_not_an_error ... ok
[INFO] [stdout] test guard::tests::logging_in_rotates_the_session_id ... ok
[INFO] [stdout] test guard::tests::the_manager_authenticates_through_the_chosen_guard ... ok
[INFO] [stdout] test guard::tests::the_manager_resolves_guards_by_name ... ok
[INFO] [stdout] test guard::tests::an_empty_session_is_a_guest ... ok
[INFO] [stdout] test guard::tests::an_unknown_guard_name_lists_the_known_ones ... ok
[INFO] [stdout] test guard::tests::logging_out_empties_the_session_and_rotates_it ... ok
[INFO] [stdout] test hashing::tests::a_corrupt_hash_fails_closed_rather_than_erroring ... ok
[INFO] [stdout] test hashing::tests::a_hash_carries_its_algorithm_and_parameters ... ok
[INFO] [stdout] test hashing::tests::a_legacy_hash_always_needs_rehashing ... ok
[INFO] [stdout] test challenge::tests::a_supplied_code_is_used_as_given ... ok
[INFO] [stdout] test hashing::tests::a_hash_from_weaker_parameters_is_flagged_for_rehashing ... ok
[INFO] [stdout] test hashing::tests::a_legacy_scheme_does_not_make_an_unusable_hash_usable ... ok
[INFO] [stdout] test hashing::tests::an_unparseable_hash_needs_rehashing ... ok
[INFO] [stdout] test hashing::tests::a_legacy_hash_verifies_and_the_current_scheme_still_does ... ok
[INFO] [stdout] test hashing::tests::an_empty_stored_hash_is_unusable_rather_than_a_match ... ok
[INFO] [stdout] test hashing::tests::an_unrecognised_hash_is_still_refused ... ok
[INFO] [stdout] test hashing::tests::a_password_verifies_against_its_own_hash ... ok
[INFO] [stdout] test hashing::tests::schemes_are_consulted_in_the_order_they_were_added ... ok
[INFO] [stdout] test hashing::tests::the_same_password_hashes_differently_each_time ... ok
[INFO] [stdout] test legacy::tests::an_empty_set_recognises_nothing ... ok
[INFO] [stdout] test hashing::tests::a_wrong_password_does_not_verify ... ok
[INFO] [stdout] test hashing::tests::a_real_hash_is_not_unusable ... ok
[INFO] [stdout] test legacy::tests::the_first_scheme_that_recognises_it_wins ... ok
[INFO] [stdout] test middleware::tests::a_guard_failure_is_a_500_not_a_401 ... ok
[INFO] [stdout] test middleware::tests::a_named_guard_can_be_selected ... ok
[INFO] [stdout] test middleware::tests::an_unauthenticated_request_is_rejected_before_the_handler ... ok
[INFO] [stdout] test middleware::tests::an_authenticated_request_reaches_the_handler_with_its_user ... ok
[INFO] [stdout] test middleware::tests::an_unknown_named_guard_fails_loudly ... ok
[INFO] [stdout] test middleware::tests::the_guest_middleware_redirects_an_authenticated_user ... ok
[INFO] [stdout] test user::tests::a_missing_password_never_validates ... ok
[INFO] [stdout] test user::tests::an_empty_token_never_matches ... ok
[INFO] [stdout] test middleware::tests::the_guest_middleware_lets_a_guest_through ... ok
[INFO] [stdout] test user::tests::credentials_can_carry_extra_lookup_fields ... ok
[INFO] [stdout] test user::tests::credentials_exclude_the_password_from_lookups ... ok
[INFO] [stdout] test user::tests::credentials_with_only_a_password_have_nothing_to_look_up_by ... ok
[INFO] [stdout] test user::tests::empty_credentials_never_match_a_user ... ok
[INFO] [stdout] test hashing::tests::unicode_passwords_round_trip ... ok
[INFO] [stdout] test user::tests::retrieves_by_token ... ok
[INFO] [stdout] test hashing::tests::an_unusable_hash_matches_nothing ... ok
[INFO] [stdout] test middleware::tests::the_guest_middleware_fails_open_to_the_login_page ... ok
[INFO] [stdout] test user::tests::retrieves_by_id_binding_a_numeric_key_as_a_number ... ok
[INFO] [stdout] test user::tests::retrieves_a_user_by_credentials ... ok
[INFO] [stdout] test challenge::tests::a_challenge_expires_on_its_own ... ok
[INFO] [stdout] test hashing::tests::the_migration_loop_converts_a_row_once ... ok
[INFO] [stdout] test user::tests::validates_a_password_against_the_stored_hash ... ok
[INFO] [stderr]      Running tests/token_abilities.rs (/opt/rustwide/target/debug/deps/token_abilities-bf80657d896f1bc8)
[INFO] [stdout] test hashing::tests::dummy_verify_costs_about_what_a_real_verify_costs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 98 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test a_session_guard_carries_no_restriction ... ok
[INFO] [stdout] test without_authenticate_before_it_the_check_refuses ... ok
[INFO] [stdout] test requiring_all_needs_all_of_them ... ok
[INFO] [stdout] test a_namespace_wildcard_reaches_the_verbs_under_it ... ok
[INFO] [stdout] test an_unrestricted_token_reaches_everything ... ok
[INFO] [stdout] test an_unknown_token_never_reaches_the_ability_check ... ok
[INFO] [stdout] test a_token_not_issued_for_it_is_refused_even_though_its_owner_could ... ok
[INFO] [stdout] test a_token_issued_for_it_gets_through ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rainier_auth
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test src/abilities.rs - abilities (line 3) ... ignored
[INFO] [stdout] test src/challenge.rs - challenge (line 3) ... ignored
[INFO] [stdout] test src/confirm.rs - confirm (line 3) ... ignored
[INFO] [stdout] test src/confirm.rs - confirm::confirm_password (line 154) ... ignored
[INFO] [stdout] test src/hashing.rs - hashing::Argon2Hasher::with_legacy (line 125) ... ignored
[INFO] [stdout] test src/hashing.rs - hashing::Hasher::dummy_verify (line 44) ... ignored
[INFO] [stdout] test src/legacy.rs - legacy (line 16) ... ignored
[INFO] [stdout] test src/legacy.rs - legacy (line 3) ... ignored
[INFO] [stdout] test src/lib.rs - (line 16) ... ignored
[INFO] [stdout] test src/middleware.rs - middleware::Authenticate<U>::resolved (line 100) ... ignored
[INFO] [stdout] test src/middleware.rs - middleware::AuthenticatedUser<U> (line 52) ... ignored
[INFO] [stdout] test src/middleware.rs - middleware::RequireAbility (line 223) ... ignored
[INFO] [stdout] test src/gate.rs - gate (line 8) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 0.59s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e", kill_on_drop: false }`
[INFO] [stdout] 287c375472e20155a848365072ece7b8c7f9c79228e794ef45c8dc04bb2e952e
