[INFO] fetching crate rustlavel-rbac 0.8.1...
[INFO] testing rustlavel-rbac-0.8.1 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate rustlavel-rbac 0.8.1 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate rustlavel-rbac 0.8.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rustlavel-rbac 0.8.1
[INFO] tweaked toml for crates.io crate rustlavel-rbac 0.8.1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rustlavel-rbac 0.8.1 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 rustlavel-rbac 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rustlavel-auth v0.8.1
[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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c
[INFO] running `Command { std: "docker" "start" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c", 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" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c" "/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" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c", 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" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c" "/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 generic-array v0.14.7
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling aws-lc-rs v1.18.0
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling rustlavel-core v0.8.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling rustlavel-macros v0.8.1
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[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 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 sha1 v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling jobserver v0.1.35
[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 cc v1.4.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling aws-lc-sys v0.44.0
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling rustlavel-http v0.8.1
[INFO] [stderr]    Compiling rustlavel-auth v0.8.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustlavel-db v0.8.1
[INFO] [stderr]    Compiling rustlavel-rbac v0.8.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.24s
[INFO] running `Command { std: "docker" "inspect" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c", 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" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c" "/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 rustlavel-rbac v0.8.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.23s
[INFO] running `Command { std: "docker" "inspect" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c", 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" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c" "/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.14s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rustlavel_rbac-bfc23a083a2029fd)
[INFO] [stdout] running 51 tests
[INFO] [stdout] test grants::tests::a_deny_beats_even_a_super_role ... ok
[INFO] [stdout] test grants::tests::a_direct_deny_beats_a_grant ... ok
[INFO] [stdout] test grants::tests::a_direct_deny_beats_a_wildcard_grant ... ok
[INFO] [stderr] [38;5;203mERROR[0m  Application Error: the `can` middleware needs a `Permissions` store in application state, and there is none. Register it with `App::new().plugin(Rbac::new(db))`, or put it there yourself with `Context::builder().state(Permissions::new(db))`. Refusing the request rather than allowing it.
[INFO] [stdout] test grants::tests::precedence_holds_in_every_combination ... ok
[INFO] [stderr] [38;5;203mERROR[0m  Application Error: the `can` middleware needs a `Permissions` store in application state, and there is none. Register it with `App::new().plugin(Rbac::new(db))`, or put it there yourself with `Context::builder().state(Permissions::new(db))`. Refusing the request rather than allowing it.
[INFO] [stdout] test grants::tests::roles_are_matched_by_exact_name ... ok
[INFO] [stderr] [38;5;203mERROR[0m  Application Error: the authenticated identity `ada` is not a number, and the RBAC tables key users by a 64-bit integer id. Either log users in by their numeric primary key, or use a different authorization layer for this application.
[INFO] [stdout] test grants::tests::a_grant_allows_and_silence_refuses ... ok
[INFO] [stdout] test grants::tests::a_star_anywhere_else_is_just_a_character ... ok
[INFO] [stdout] test grants::tests::the_wildcard_only_works_on_the_stored_side ... ok
[INFO] [stdout] test grants::tests::a_trailing_star_matches_every_segment_below_it ... ok
[INFO] [stdout] test grants::tests::effective_lists_stored_names_with_the_denied_ones_removed ... ok
[INFO] [stdout] test grants::tests::a_super_role_needs_no_permissions_attached ... ok
[INFO] [stdout] test guard::tests::a_missing_store_fails_closed ... ok
[INFO] [stdout] test guard::tests::a_non_numeric_identity_is_explained ... ok
[INFO] [stdout] test guard::tests::a_role_guard_admits_the_role_and_refuses_the_rest ... ok
[INFO] [stdout] test guard::tests::a_handler_can_ask_for_itself ... ok
[INFO] [stdout] test guard::tests::a_user_with_the_permission_gets_through ... ok
[INFO] [stdout] test plugin::tests::the_plugin_puts_a_store_where_handlers_can_find_it ... ok
[INFO] [stdout] test plugin::tests::configuration_reaches_the_store_through_the_plugin ... ok
[INFO] [stdout] test plugin::tests::without_the_plugin_a_handler_gets_the_configuration_error ... ok
[INFO] [stdout] test store::tests::a_bad_table_name_is_refused_when_the_store_is_built ... ok
[INFO] [stdout] test grants::tests::a_wildcard_deny_shuts_a_whole_prefix ... ok
[INFO] [stdout] test store::tests::a_boolean_column_is_read_whatever_shape_it_arrives_in ... ok
[INFO] [stdout] test guard::tests::an_identity_that_is_not_a_number_is_a_configuration_error ... ok
[INFO] [stdout] test guard::tests::the_missing_store_error_says_how_to_fix_it ... ok
[INFO] [stdout] test plugin::tests::the_builders_override_the_defaults ... ok
[INFO] [stdout] test store::tests::an_absurd_ttl_is_clamped_rather_than_fatal ... ok
[INFO] [stdout] test plugin::tests::the_plugin_is_named_for_route_list ... ok
[INFO] [stdout] test store::tests::configuration_supplies_the_super_role_and_the_ttl ... ok
[INFO] [stdout] test store::tests::forget_drops_one_user_and_flush_drops_all ... ok
[INFO] [stdout] test store::tests::the_defaults_are_super_admin_and_thirty_seconds ... ok
[INFO] [stdout] test store::tests::a_cache_miss_is_not_answered_with_a_guess ... ok
[INFO] [stdout] test store::tests::a_name_with_edges_that_cannot_be_seen_is_refused ... ok
[INFO] [stdout] test store::tests::the_super_role_can_be_turned_off_entirely ... ok
[INFO] [stdout] test store::tests::a_primed_cache_answers_without_a_database ... ok
[INFO] [stdout] test tables::tests::a_suffix_reaches_every_table ... ok
[INFO] [stdout] test guard::tests::a_user_without_the_permission_gets_403 ... ok
[INFO] [stdout] test tables::tests::a_table_name_that_is_not_an_identifier_is_refused ... ok
[INFO] [stdout] test tables::tests::the_default_names_are_the_conventional_ones ... ok
[INFO] [stdout] test tables::tests::the_granted_column_is_a_boolean_defaulting_to_true ... ok
[INFO] [stdout] test tables::tests::the_migration_is_named_the_way_the_cli_names_them ... ok
[INFO] [stdout] test tables::tests::the_named_tables_render_on_all_three_databases ... ok
[INFO] [stdout] test store::tests::a_list_of_super_roles_wins_over_the_single_one ... ok
[INFO] [stdout] test tables::tests::the_registry_exposes_every_migration ... ok
[INFO] [stdout] test guard::tests::a_guest_is_sent_to_the_login_page ... ok
[INFO] [stdout] test guard::tests::a_guest_asking_from_a_handler_is_told_no_rather_than_asked_to_log_in ... ok
[INFO] [stdout] test guard::tests::a_guest_asking_for_json_gets_401_rather_than_a_redirect ... ok
[INFO] [stdout] test guard::tests::a_direct_deny_closes_a_route_the_wildcard_would_have_opened ... ok
[INFO] [stdout] test guard::tests::a_logged_in_client_asking_for_json_gets_403_with_the_missing_permission ... ok
[INFO] [stdout] test store::tests::an_expired_entry_is_not_used ... ok
[INFO] [stdout] test grants::tests::a_bare_star_matches_anything ... ok
[INFO] [stderr]      Running tests/store.rs (/opt/rustwide/target/debug/deps/store-a957d8ff06cf1ca6)
[INFO] [stdout] test grants::tests::an_exact_name_matches_itself_and_nothing_near_it ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test a_role_carries_its_permissions_to_the_users_who_hold_it ... ok
[INFO] [stdout] test attaching_and_assigning_twice_is_not_an_error ... ok
[INFO] [stdout] test a_direct_grant_survives_the_round_trip_as_a_boolean ... ok
[INFO] [stdout] test a_mutation_invalidates_the_cache_and_a_cache_hit_avoids_the_database ... ok
[INFO] [stdout] test roles_and_permissions_are_created_listed_renamed_and_deleted ... ok
[INFO] [stdout] test deleting_a_role_takes_its_attachments_and_assignments_with_it ... ok
[INFO] [stdout] test a_permission_that_was_never_defined_cannot_be_granted ... ok
[INFO] [stdout] test granting_then_denying_the_same_permission_leaves_one_row ... ok
[INFO] [stdout] test a_direct_grant_needs_no_role_and_a_direct_deny_overrules_one ... ok
[INFO] [stdout] test a_roles_permissions_can_be_set_wholesale_and_a_user_purged ... ok
[INFO] [stdout] test the_super_role_passes_everything_except_an_explicit_deny ... ok
[INFO] [stdout] test two_roles_carrying_the_same_permission_list_it_once ... ok
[INFO] [stdout] test an_expired_entry_is_reloaded ... ok
[INFO] [stdout] test the_migration_creates_and_rolls_back_the_conventional_tables ... ok
[INFO] [stdout] test a_stored_wildcard_satisfies_a_specific_check ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rustlavel_rbac
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/guard.rs - guard (line 7) ... ignored
[INFO] [stdout] test src/lib.rs - (line 8) ... ignored
[INFO] [stdout] test src/plugin.rs - plugin (line 4) ... ignored
[INFO] [stdout] test src/store.rs - store (line 4) ... ignored
[INFO] [stdout] test src/tables.rs - tables (line 7) ... 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.24s; merged doctests compilation took 0.23s
[INFO] running `Command { std: "docker" "inspect" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c", kill_on_drop: false }`
[INFO] [stdout] d793758b7a8c9fb0d8389731f4034a158cf145658c811fc9abb477acd516f38c
