[INFO] cloning repository https://github.com/AvdienkoSergey/vault-family
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AvdienkoSergey/vault-family" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAvdienkoSergey%2Fvault-family", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAvdienkoSergey%2Fvault-family'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5bc2cd8d1cc4ec54f8fbdc0a053dc8d7feb356b7
[INFO] testing AvdienkoSergey/vault-family against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAvdienkoSergey%2Fvault-family" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AvdienkoSergey/vault-family
[INFO] finished tweaking git repo https://github.com/AvdienkoSergey/vault-family
[INFO] tweaked toml for git repo https://github.com/AvdienkoSergey/vault-family written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AvdienkoSergey/vault-family on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AvdienkoSergey/vault-family 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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc
[INFO] running `Command { std: "docker" "start" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc", 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" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc", 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" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling ff v0.13.1
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling group v0.13.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling rtoolbox v0.0.3
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling rpassword v7.4.0
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.36.0
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling simple_asn1 v0.6.4
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-bigint v0.5.5
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling clap v4.5.60
[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 hmac v0.12.1
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling rfc6979 v0.4.0
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]    Compiling sec1 v0.7.3
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling elliptic-curve v0.13.8
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling rsa v0.9.10
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ecdsa v0.16.9
[INFO] [stderr]    Compiling primeorder v0.13.6
[INFO] [stderr]    Compiling p384 v0.13.1
[INFO] [stderr]    Compiling p256 v0.13.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling jsonwebtoken v10.3.0
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling rusqlite v0.38.0
[INFO] [stderr]    Compiling vault-family v0.1.9 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.15s
[INFO] running `Command { std: "docker" "inspect" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc", 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" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling vault-family v0.1.9 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.12s
[INFO] running `Command { std: "docker" "inspect" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc", 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" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vault_family-0bb2ccee6b04357d)
[INFO] [stdout] 
[INFO] [stdout] running 211 tests
[INFO] [stdout] test auth::device_trust::tests::case_insensitive_email ... ok
[INFO] [stdout] test auth::device_trust::tests::clone_shares_state ... ok
[INFO] [stdout] test auth::device_trust::tests::different_emails_isolated ... ok
[INFO] [stdout] test auth::device_trust::tests::empty_device_id_never_trusted ... ok
[INFO] [stdout] test auth::device_trust::tests::multiple_devices_per_email ... ok
[INFO] [stdout] test auth::device_trust::tests::trust_and_check ... ok
[INFO] [stdout] test auth::device_trust::tests::revoke_all_clears_devices ... ok
[INFO] [stdout] test auth::failed_login_tracker::tests::clear_attempts_unlocks ... ok
[INFO] [stdout] test auth::failed_login_tracker::tests::clone_shares_state ... ok
[INFO] [stdout] test auth::failed_login_tracker::tests::different_emails_isolated ... ok
[INFO] [stdout] test auth::failed_login_tracker::tests::locked_after_max_attempts ... ok
[INFO] [stdout] test auth::failed_login_tracker::tests::old_attempts_expire ... ok
[INFO] [stdout] test auth::failed_login_tracker::tests::record_and_check_not_locked ... ok
[INFO] [stdout] test auth::jwt_provider::tests::decode_allow_expired_accepts_expired ... ok
[INFO] [stdout] test auth::jwt_provider::tests::create_from_pass_roundtrip ... ok
[INFO] [stdout] test auth::jwt_provider::tests::create_and_decode_roundtrip ... ok
[INFO] [stdout] test auth::jwt_provider::tests::decode_allow_expired_rejects_wrong_secret ... ok
[INFO] [stdout] test auth::jwt_provider::tests::decode_rejects_expired_token ... ok
[INFO] [stdout] test auth::jwt_provider::tests::decode_rejects_wrong_secret ... ok
[INFO] [stdout] test auth::security_lock::tests::activate_and_check ... ok
[INFO] [stdout] test auth::security_lock::tests::deactivate ... ok
[INFO] [stdout] test auth::session_store::tests::cleanup_removes_expired_on_insert ... ok
[INFO] [stdout] test auth::session_store::tests::clone_shares_state ... ok
[INFO] [stdout] test auth::security_lock::tests::case_insensitive ... ok
[INFO] [stdout] test auth::session_store::tests::expired_entry_returns_none ... ok
[INFO] [stdout] test auth::security_lock::tests::initially_not_locked ... ok
[INFO] [stdout] test auth::session_store::tests::insert_and_get ... ok
[INFO] [stdout] test auth::session_store::tests::remove_deletes_entry ... ok
[INFO] [stdout] test auth::security_lock::tests::clone_shares_state ... ok
[INFO] [stdout] test auth::session_store::tests::get_nonexistent_returns_none ... ok
[INFO] [stdout] test auth::tests::auth_db_path_from_vault_path ... ok
[INFO] [stdout] test auth::jwt_store::tests::verify_expired_token_fails ... ok
[INFO] [stdout] test auth::session_store::tests::insert_overwrites ... ok
[INFO] [stdout] test auth::jwt_store::tests::verify_nonexistent_token_fails ... ok
[INFO] [stdout] test auth::tests::auth_db_path_unique_for_test_dbs ... ok
[INFO] [stdout] test auth::jwt_store::tests::delete_all_user_tokens_clears_tokens ... ok
[INFO] [stdout] test auth::tests::guard_no_auth_header ... ok
[INFO] [stdout] test auth::tests::guard_jwt_valid_token ... ok
[INFO] [stdout] test auth::tests::guard_jwt_without_session_returns_session_expired ... ok
[INFO] [stdout] test auth::tests::guard_jwt_invalid_token ... ok
[INFO] [stdout] test auth::tests::guard_basic_auth_header_treated_as_missing ... ok
[INFO] [stdout] test auth::jwt_store::tests::save_and_verify_refresh_token ... ok
[INFO] [stdout] test auth::jwt_store::tests::verify_deletes_token_rotation ... ok
[INFO] [stdout] test auth::jwt_store::tests::delete_all_user_tokens_does_not_affect_other_users ... ok
[INFO] [stdout] test crypto_operations::tests::test_encrypt_with_invalid_key_fails ... ok
[INFO] [stdout] test crypto_operations::tests::test_generate_salt_unique ... ok
[INFO] [stdout] test crypto_operations::tests::test_encrypt_with_short_key_fails ... ok
[INFO] [stdout] test crypto_operations::tests::test_generate_salt_is_hex_32_chars ... ok
[INFO] [stdout] test crypto_operations::tests::test_generate_x25519_keypair_unique ... ok
[INFO] [stdout] test crypto_operations::tests::test_generate_x25519_keypair_valid_hex ... ok
[INFO] [stdout] test crypto_operations::tests::test_x25519_dh_commutative ... ok
[INFO] [stdout] test crypto_operations::tests::test_x25519_derive_shared_key_deterministic ... ok
[INFO] [stdout] test crypto_operations::tests::test_x25519_different_pairs_different_keys ... ok
[INFO] [stdout] test crypto_operations::tests::test_x25519_key_wrapping_roundtrip ... ok
[INFO] [stdout] test http_api::tests::add_without_token_returns_401 ... ok
[INFO] [stdout] test crypto_operations::tests::test_encrypt_produces_different_ciphertext ... ok
[INFO] [stdout] test crypto_operations::tests::test_encrypt_decrypt_raw_roundtrip ... ok
[INFO] [stdout] test crypto_operations::tests::test_derive_key_is_hex_64_chars ... ok
[INFO] [stdout] test crypto_operations::tests::test_hash_master_password_returns_valid_phc ... ok
[INFO] [stdout] test http_api::tests::api_create_vault_without_auth_returns_401 ... ok
[INFO] [stdout] test crypto_operations::tests::test_encrypt_decrypt_roundtrip ... ok
[INFO] [stdout] test crypto_operations::tests::test_encrypt_raw_produces_different_ciphertext ... ok
[INFO] [stdout] test crypto_operations::tests::test_verify_wrong_password ... ok
[INFO] [stdout] test crypto_operations::tests::test_derive_key_different_password_different_key ... ok
[INFO] [stdout] test crypto_operations::tests::test_derive_key_deterministic ... ok
[INFO] [stdout] test crypto_operations::tests::test_hash_master_password_unique_per_call ... ok
[INFO] [stdout] test crypto_operations::tests::test_encrypt_raw_wrong_key_fails ... ok
[INFO] [stdout] test crypto_operations::tests::test_verify_correct_password ... ok
[INFO] [stdout] test crypto_operations::tests::test_derive_key_different_salt_different_key ... ok
[INFO] [stdout] test crypto_operations::tests::test_decrypt_with_wrong_key_fails ... ok
[INFO] [stdout] test http_api::tests::add_with_bearer_token ... ok
[INFO] [stdout] test http_api::tests::api_accept_wrong_invite_returns_404 ... ok
[INFO] [stdout] test http_api::tests::api_login_returns_user_id_and_token ... ok
[INFO] [stdout] test http_api::tests::api_register_invalid_email_returns_400 ... ok
[INFO] [stdout] test http_api::tests::api_list_vaults_empty_for_new_user ... ok
[INFO] [stdout] test http_api::tests::api_create_vault_returns_vault_id ... ok
[INFO] [stdout] test http_api::tests::api_list_vaults_returns_owned ... ok
[INFO] [stdout] test http_api::tests::api_list_members_returns_details ... ok
[INFO] [stdout] test http_api::tests::api_pull_entries_returns_pushed ... ok
[INFO] [stdout] test http_api::tests::api_accept_invite_sets_status ... ok
[INFO] [stdout] test http_api::tests::api_entries_non_member_forbidden ... ok
[INFO] [stdout] test http_api::tests::api_pull_entries_delta_sync ... ok
[INFO] [stdout] test http_api::tests::generate_returns_password_of_requested_length ... ok
[INFO] [stdout] test http_api::tests::health_returns_ok ... ok
[INFO] [stdout] test http_api::tests::api_get_accepted_invites_owner_only ... ok
[INFO] [stdout] test http_api::tests::list_without_token_returns_401 ... ok
[INFO] [stdout] test http_api::tests::api_delete_vault_owner_only ... ok
[INFO] [stdout] test http_api::tests::api_list_my_invites ... ok
[INFO] [stdout] test http_api::tests::login_nonexistent_user_returns_401 ... ok
[INFO] [stdout] test http_api::tests::login_locked_after_max_attempts ... ok
[INFO] [stdout] test http_api::tests::api_full_invite_flow ... ok
[INFO] [stdout] test http_api::tests::api_complete_invite_adds_member ... ok
[INFO] [stdout] test http_api::tests::logout_without_token_returns_401 ... ok
[INFO] [stdout] test http_api::tests::login_wrong_password_returns_401 ... ok
[INFO] [stdout] test http_api::tests::api_register_returns_user_id_and_token ... ok
[INFO] [stdout] test http_api::tests::api_push_entries_creates ... ok
[INFO] [stdout] test http_api::tests::register_creates_user ... ok
[INFO] [stdout] test http_api::tests::api_push_entries_upsert ... ok
[INFO] [stdout] test http_api::tests::register_invalid_email_returns_400 ... ok
[INFO] [stdout] test http_api::tests::api_revoke_owner_forbidden ... ok
[INFO] [stdout] test password_generator::tests::builder_chain_length_then_charset ... ok
[INFO] [stdout] test password_generator::tests::builder_chain_multiple_charsets ... ok
[INFO] [stdout] test password_generator::tests::from_flags_all_charsets ... ok
[INFO] [stdout] test http_api::tests::list_returns_added_entries ... ok
[INFO] [stdout] test password_generator::tests::from_flags_length_below_min_panics - should panic ... ok
[INFO] [stdout] test password_generator::tests::from_flags_no_charset_panics - should panic ... ok
[INFO] [stdout] test password_generator::tests::from_flags_valid ... ok
[INFO] [stdout] test password_generator::tests::generate_correct_length ... ok
[INFO] [stdout] test password_generator::tests::generate_all_charsets_contains_variety ... ok
[INFO] [stdout] test password_generator::tests::generate_digits_only ... ok
[INFO] [stdout] test password_generator::tests::generate_lowercase_only ... ok
[INFO] [stdout] test password_generator::tests::generate_min_length ... ok
[INFO] [stdout] test password_generator::tests::generate_symbols_only ... ok
[INFO] [stdout] test password_generator::tests::generate_uniqueness ... ok
[INFO] [stdout] test password_generator::tests::generate_uppercase_only ... ok
[INFO] [stdout] test password_generator::tests::has_digits_transitions_to_ready ... ok
[INFO] [stdout] test password_generator::tests::has_lowercase_transitions_to_ready ... ok
[INFO] [stdout] test password_generator::tests::has_symbols_transitions_to_ready ... ok
[INFO] [stdout] test password_generator::tests::has_uppercase_transitions_to_ready ... ok
[INFO] [stdout] test password_generator::tests::length_sets_value ... ok
[INFO] [stdout] test password_generator::tests::new_custom_min_length ... ok
[INFO] [stdout] test password_generator::tests::length_below_min_panics - should panic ... ok
[INFO] [stdout] test password_generator::tests::new_sets_length_to_min ... ok
[INFO] [stdout] test password_generator::tests::secure_generates_20_chars ... ok
[INFO] [stdout] test password_generator::tests::secure_preset_length_20 ... ok
[INFO] [stdout] test shared::tests::accept_invite_sets_status_accepted ... ok
[INFO] [stdout] test shared::tests::add_and_list_shared_entries ... ok
[INFO] [stdout] test shared::tests::create_shared_vault_owner_is_member ... ok
[INFO] [stdout] test shared::tests::decrypt_user_private_key_roundtrip ... ok
[INFO] [stdout] test shared::tests::delete_shared_vault_removes_all ... ok
[INFO] [stdout] test shared::tests::delta_sync_returns_tombstones ... ok
[INFO] [stdout] test shared::tests::full_invite_flow_adds_member ... ok
[INFO] [stdout] test shared::tests::invite_limit_5_members ... ok
[INFO] [stdout] test shared::tests::invite_requires_ownership ... ok
[INFO] [stdout] test shared::tests::list_shared_vaults_returns_owned_and_member ... ok
[INFO] [stdout] test shared::tests::list_shared_vaults_with_counts ... ok
[INFO] [stdout] test shared::tests::non_member_cannot_list_entries ... ok
[INFO] [stdout] test shared::tests::list_user_invites_returns_invites_by_email ... ok
[INFO] [stdout] test shared::tests::push_entries_upsert ... ok
[INFO] [stdout] test shared::tests::readonly_member_cannot_add_entry ... ok
[INFO] [stdout] test shared::tests::revoke_owner_forbidden ... ok
[INFO] [stdout] test shared::tests::revoke_member_removes_from_members ... ok
[INFO] [stdout] test shared::tests::save_and_check_user_keypair ... ok
[INFO] [stdout] test shared::tests::revoked_member_cannot_access_vault ... ok
[INFO] [stdout] test shared::tests::soft_delete_shared_entry ... ok
[INFO] [stdout] test shared::tests::update_member_keys_owner_only ... ok
[INFO] [stdout] test transfer::tests::claim_expired_returns_expired ... ok
[INFO] [stdout] test transfer::tests::claim_nonexistent_returns_not_found ... ok
[INFO] [stdout] test transfer::tests::cleanup_removes_expired ... ok
[INFO] [stdout] test transfer::tests::clone_shares_limiter_state ... ok
[INFO] [stdout] test transfer::tests::clone_shares_state ... ok
[INFO] [stdout] test shared::tests::update_permission_read_to_readwrite ... ok
[INFO] [stdout] test transfer::tests::code_parse_invalid ... ok
[INFO] [stdout] test transfer::tests::code_generate_format ... ok
[INFO] [stdout] test transfer::tests::code_parse_valid ... ok
[INFO] [stdout] test transfer::tests::copies_clamped_to_max ... ok
[INFO] [stdout] test transfer::tests::copies_decrement_and_delete ... ok
[INFO] [stdout] test transfer::tests::different_ips_isolated ... ok
[INFO] [stdout] test transfer::tests::insert_and_claim ... ok
[INFO] [stdout] test transfer::tests::limited_after_max_attempts ... ok
[INFO] [stdout] test transfer::tests::not_limited_under_threshold ... ok
[INFO] [stdout] test transfer::tests::old_attempts_expire ... ok
[INFO] [stdout] test transfer::tests::store_full_rejected ... ok
[INFO] [stdout] test transfer::tests::ttl_clamped_to_max ... ok
[INFO] [stdout] test types::tests::parse_empty_fails ... ok
[INFO] [stdout] test types::tests::parse_invalid_rejected ... ok
[INFO] [stdout] test types::tests::parse_trims_whitespace ... ok
[INFO] [stdout] test types::tests::parse_valid_email ... ok
[INFO] [stdout] test types::tests::parse_whitespace_only_fails ... ok
[INFO] [stdout] test types::tests::vault_pass_accessors ... ok
[INFO] [stdout] test types::tests::vault_pass_debug_hides_secrets ... ok
[INFO] [stdout] test types::tests::vault_pass_into_parts ... ok
[INFO] [stdout] test vault::tests::create_pass_does_not_consume_db ... ok
[INFO] [stdout] test vault::tests::create_pass_nonexistent_user_fails ... ok
[INFO] [stdout] test vault::tests::create_pass_returns_vault_pass ... ok
[INFO] [stdout] test vault::tests::create_pass_wrong_password_fails ... ok
[INFO] [stdout] test vault::tests::enter_nonexistent_user_fails ... ok
[INFO] [stdout] test vault::tests::enter_uses_db_email_not_pass_email ... ok
[INFO] [stdout] test vault::tests::enter_with_external_pass ... ok
[INFO] [stdout] test vault::tests::enter_with_pass_from_create_pass ... ok
[INFO] [stdout] test vault::tests::find_user_id_by_email_existing ... ok
[INFO] [stdout] test vault::tests::find_user_id_by_email_not_found ... ok
[INFO] [stdout] test transfer::tests::payload_too_large_rejected ... ok
[INFO] [stdout] test vault::tests::test_delete_entry ... ok
[INFO] [stdout] test vault::tests::test_open_database ... ok
[INFO] [stdout] test vault::tests::test_save_and_read_entry ... ok
[INFO] [stdout] test vault::tests::test_user_isolation ... ok
[INFO] [stdout] test ws::registry::tests::cleanup_removes_dead ... ok
[INFO] [stdout] test ws::registry::tests::multiple_devices ... ok
[INFO] [stdout] test ws::registry::tests::register_and_receive ... ok
[INFO] [stdout] test ws::registry::tests::send_to_nonexistent_user_is_noop ... ok
[INFO] [stdout] test ws::registry::tests::unregister_removes_sender ... ok
[INFO] [stdout] test ws::tickets::tests::consume_is_one_time ... ok
[INFO] [stdout] test ws::tickets::tests::consume_nonexistent_returns_none ... ok
[INFO] [stdout] test ws::tickets::tests::expired_ticket_returns_none ... ok
[INFO] [stdout] test ws::tickets::tests::issue_and_consume ... ok
[INFO] [stdout] test http_api::tests::login_returns_tokens ... ok
[INFO] [stdout] test http_api::tests::api_send_invite_returns_code ... ok
[INFO] [stdout] test http_api::tests::delete_removes_entry ... ok
[INFO] [stdout] test vault::tests::full_flow_create_pass_then_enter ... ok
[INFO] [stdout] test http_api::tests::logout_revokes_refresh_token ... ok
[INFO] [stdout] test http_api::tests::logout_revokes_session ... ok
[INFO] [stdout] test http_api::tests::api_send_invite_non_owner_forbidden ... ok
[INFO] [stdout] test http_api::tests::refresh_with_wrong_token_returns_401 ... ok
[INFO] [stdout] test http_api::tests::refresh_invalidates_old_token ... ok
[INFO] [stdout] test http_api::tests::api_update_keys_owner_only ... ok
[INFO] [stdout] test http_api::tests::refresh_returns_new_tokens ... ok
[INFO] [stdout] test http_api::tests::api_rekey_after_revoke_flow ... ok
[INFO] [stdout] test http_api::tests::api_revoke_member_removes ... ok
[INFO] [stdout] test http_api::tests::view_nonexistent_entry_returns_404 ... ok
[INFO] [stdout] test http_api::tests::view_returns_entry_details ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 211 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.33s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/vault_family-518ce3c9ee4ced2b)
[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 vault_family
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/auth/mod.rs - auth::guard (line 116) ... ignored
[INFO] [stdout] test src/vault/mod.rs - vault::DB<Open,C>::create_pass (line 200) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.35s; merged doctests compilation took 0.34s
[INFO] running `Command { std: "docker" "inspect" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc", kill_on_drop: false }`
[INFO] [stdout] 2e4daaabd6a9ff07e37cac34a3221af9134fc53b431be1cb33d5a7d4e305d2bc
