[INFO] fetching crate rustrails-support 0.1.1... [INFO] testing rustrails-support-0.1.1 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2 [INFO] extracting crate rustrails-support 0.1.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate rustrails-support 0.1.1 [INFO] finished tweaking crates.io crate rustrails-support 0.1.1 [INFO] tweaked toml for crates.io crate rustrails-support 0.1.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate rustrails-support 0.1.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 rustrails-support 0.1.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] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850 [INFO] running `Command { std: "docker" "start" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850", 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" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850" "/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" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850", 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" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling zerocopy v0.8.47 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling der v0.7.10 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling num-bigint-dig v0.8.6 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling spki v0.7.3 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling pkcs8 v0.10.2 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling pkcs1 v0.7.5 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling flume v0.11.1 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling sea-query-derive v1.0.0-rc.12 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling ordered-float v4.6.0 [INFO] [stderr] Compiling inherent v1.0.13 [INFO] [stderr] Compiling phf_shared v0.12.1 [INFO] [stderr] Compiling ouroboros_macro v0.18.5 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling pluralizer v0.5.0 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling sea-bae v0.2.1 [INFO] [stderr] Compiling sea-query v1.0.0-rc.31 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling winnow v1.0.0 [INFO] [stderr] Compiling aliasable v0.1.3 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling phf v0.12.1 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling toml_parser v1.0.10+spec-1.1.0 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling toml_datetime v1.0.1+spec-1.1.0 [INFO] [stderr] Compiling ouroboros v0.18.5 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling toml_writer v1.0.7+spec-1.1.0 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling toml v1.0.7+spec-1.1.0 [INFO] [stderr] Compiling sea-orm-macros v2.0.0-rc.37 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Compiling rsa v0.9.10 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling sqlx-core v0.8.6 [INFO] [stderr] Compiling sqlx-postgres v0.8.6 [INFO] [stderr] Compiling sqlx-mysql v0.8.6 [INFO] [stderr] Compiling sqlx-sqlite v0.8.6 [INFO] [stderr] Compiling sqlx v0.8.6 [INFO] [stderr] Compiling sea-query-sqlx v0.8.0-rc.14 [INFO] [stderr] Compiling sea-orm v2.0.0-rc.37 [INFO] [stderr] Compiling rustrails-support v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 4m 26s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850", 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" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling rustrails-support v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 37.33s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850", 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" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.33s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/deps/rustrails_support-0a4023b3026206e5) [INFO] [stdout] [INFO] [stdout] running 981 tests [INFO] [stdout] test backtrace_cleaner::tests::clean_returns_all_lines_when_no_rules_are_configured ... ok [INFO] [stdout] test backtrace_cleaner::tests::blank_lines_are_discarded ... ok [INFO] [stdout] test cache::tests::decrement_by_zero_returns_current_value ... ok [INFO] [stdout] test cache::tests::clear_on_empty_store_is_safe ... ok [INFO] [stdout] test backtrace_cleaner::tests::add_filter_keeps_only_matching_lines ... ok [INFO] [stdout] test backtrace_cleaner::tests::add_silencer_removes_matching_lines ... ok [INFO] [stdout] test backtrace_cleaner::tests::clean_returns_empty_for_empty_backtrace ... ok [INFO] [stdout] test backtrace_cleaner::tests::clean_preserves_original_line_order ... ok [INFO] [stdout] test backtrace_cleaner::tests::invalid_filter_regex_returns_a_typed_error ... ok [INFO] [stdout] test backtrace_cleaner::tests::invalid_silencer_regex_returns_a_typed_error ... ok [INFO] [stdout] test backtrace_cleaner::tests::silencers_run_after_filters ... ok [INFO] [stdout] test cache::tests::clear_removes_everything ... ok [INFO] [stdout] test cache::tests::decrement_underflow_returns_none_and_keeps_value ... ok [INFO] [stdout] test cache::tests::decrement_rejects_null_counter ... ok [INFO] [stdout] test cache::tests::decrement_preserves_version ... ok [INFO] [stdout] test cache::tests::delete_missing_entry_returns_false ... ok [INFO] [stdout] test cache::tests::delete_removes_entry ... ok [INFO] [stdout] test cache::tests::exist_checks_presence ... ok [INFO] [stdout] test cache::tests::exist_with_options_respects_version_matching ... ok [INFO] [stdout] test cache::tests::exist_with_requested_version_accepts_unversioned_entry ... ok [INFO] [stdout] test cache::tests::decrement_rejects_boolean_counter ... ok [INFO] [stdout] test cache::tests::decrement_returns_none_for_missing_or_non_integer_entries ... ok [INFO] [stdout] test cache::tests::fetch_computes_on_miss_and_caches_value ... ok [INFO] [stdout] test cache::tests::fetch_after_delete_recomputes_value ... ok [INFO] [stdout] test cache::tests::fetch_recomputes_when_version_mismatches ... ok [INFO] [stdout] test cache::tests::concurrent_reads_and_writes_are_safe ... ok [INFO] [stdout] test cache::tests::decrement_returns_none_when_amount_would_overflow ... ok [INFO] [stdout] test cache::tests::fetch_with_matching_version_uses_cached_value ... ok [INFO] [stdout] test cache::tests::fetch_uses_cached_null_without_recomputing ... ok [INFO] [stdout] test cache::tests::fetch_with_requested_version_uses_unversioned_entry ... ok [INFO] [stdout] test cache::tests::increment_by_zero_returns_current_value ... ok [INFO] [stdout] test cache::tests::fetch_without_requested_version_uses_versioned_entry ... ok [INFO] [stdout] test cache::tests::concurrent_increment_is_thread_safe ... ok [INFO] [stdout] test cache::tests::increment_preserves_version ... ok [INFO] [stdout] test cache::tests::increment_overflow_returns_none_and_keeps_value ... ok [INFO] [stdout] test cache::tests::increment_rejects_boolean_counter ... ok [INFO] [stdout] test cache::tests::increment_rejects_null_counter ... ok [INFO] [stdout] test cache::tests::increment_returns_none_for_missing_or_non_integer_entries ... ok [INFO] [stdout] test cache::tests::read_multi_duplicate_keys_return_single_entry ... ok [INFO] [stdout] test cache::tests::read_missing_returns_none ... ok [INFO] [stdout] test cache::tests::increment_and_decrement_update_integer_values ... ok [INFO] [stdout] test cache::tests::read_multi_returns_hits_only ... ok [INFO] [stdout] test cache::tests::read_with_matching_version_returns_cached_value ... ok [INFO] [stdout] test cache::tests::read_multi_empty_slice_returns_empty_map ... ok [INFO] [stdout] test cache::tests::read_with_options_without_version_reads_versioned_entry ... ok [INFO] [stdout] test cache::tests::read_without_requested_version_accepts_versioned_entry ... ok [INFO] [stdout] test cache::tests::read_with_requested_version_accepts_unversioned_entry ... ok [INFO] [stdout] test cache::tests::read_write_round_trip ... ok [INFO] [stdout] test cache::tests::version_mismatch_returns_none ... ok [INFO] [stdout] test cache::tests::write_allows_null_values ... ok [INFO] [stdout] test cache::tests::write_multi_clones_version_to_each_entry ... ok [INFO] [stdout] test cache::tests::write_multi_overwrites_existing_entries ... ok [INFO] [stdout] test cache::tests::exist_with_options_on_expired_entry_removes_it ... ok [INFO] [stdout] test cache::tests::decrement_on_expired_entry_removes_it ... ok [INFO] [stdout] test cache::tests::write_overwrites_existing_version ... ok [INFO] [stdout] test callbacks::tests::test_adding_callback_updates_length_and_empty_state ... ok [INFO] [stdout] test cache::tests::delete_expired_entry_returns_true ... ok [INFO] [stdout] test cache::tests::expired_entry_can_be_rewritten_by_write ... ok [INFO] [stdout] test callbacks::tests::test_after_callbacks_ignore_their_own_halt_result ... ok [INFO] [stdout] test callbacks::tests::test_after_callbacks_run_when_before_halts_by_default ... ok [INFO] [stdout] test callbacks::tests::test_around_callback_can_return_continue_without_running_inner_action ... ok [INFO] [stdout] test cache::tests::write_multi_writes_every_entry ... ok [INFO] [stdout] test cache::tests::write_overwrites_existing_value ... ok [INFO] [stdout] test callbacks::tests::test_after_callbacks_run_in_reverse_order ... ok [INFO] [stdout] test callbacks::tests::test_around_halt_runs_after_callbacks_by_default ... ok [INFO] [stdout] test callbacks::tests::test_before_callback_halts_chain ... ok [INFO] [stdout] test callbacks::tests::test_before_halt_skips_around_callbacks_and_action ... ok [INFO] [stdout] test callbacks::tests::test_around_callback_can_prevent_inner_execution ... ok [INFO] [stdout] test callbacks::tests::test_around_halt_can_skip_after_callbacks_when_configured ... ok [INFO] [stdout] test callbacks::tests::test_callback_closure_can_capture_environment ... ok [INFO] [stdout] test callbacks::tests::test_callbacks_with_same_name_replace_existing_callback ... ok [INFO] [stdout] test callbacks::tests::test_before_callback_runs ... ok [INFO] [stdout] test callbacks::tests::test_around_callback_wraps_action ... ok [INFO] [stdout] test callbacks::tests::test_configured_chain_can_skip_after_callbacks_when_halted ... ok [INFO] [stdout] test callbacks::tests::test_empty_chain_returns_continue ... ok [INFO] [stdout] test cache::tests::expired_entry_counts_as_absent_for_existence_checks ... ok [INFO] [stdout] test cache::tests::fetch_stores_ttl_on_miss_and_entry_expires ... ok [INFO] [stdout] test cache::tests::decrement_preserves_expiry ... ok [INFO] [stdout] test cache::tests::fetch_recomputes_after_expiration ... ok [INFO] [stdout] test cache::tests::increment_on_expired_entry_removes_it ... ok [INFO] [stdout] test callbacks::tests::test_except_condition_allows_unlisted_action ... ok [INFO] [stdout] test callbacks::tests::test_halting_before_prevents_subsequent_before_callbacks ... ok [INFO] [stdout] test callbacks::tests::test_if_condition_true_runs_callback ... ok [INFO] [stdout] test callbacks::tests::test_mixed_kinds_execute_in_expected_order ... ok [INFO] [stdout] test callbacks::tests::test_multiple_around_callbacks_nest_in_order ... ok [INFO] [stdout] test callbacks::tests::test_except_condition_skips_each_listed_action ... ok [INFO] [stdout] test callbacks::tests::test_if_and_unless_conditions_must_both_allow_execution ... ok [INFO] [stdout] test callbacks::tests::test_except_condition_skips_listed_action ... ok [INFO] [stdout] test callbacks::tests::test_filtered_callbacks_still_run_action ... ok [INFO] [stdout] test callbacks::tests::test_multiple_callbacks_execute_in_order ... ok [INFO] [stdout] test callbacks::tests::test_except_empty_list_allows_callback ... ok [INFO] [stdout] test cache::tests::read_with_options_on_expired_entry_removes_it ... ok [INFO] [stdout] test callbacks::tests::test_reset_clears_all_callback_kinds_and_length ... ok [INFO] [stdout] test callbacks::tests::test_only_condition_matches_listed_action ... ok [INFO] [stdout] test callbacks::tests::test_nested_around_callbacks_propagate_halt_outward ... ok [INFO] [stdout] test callbacks::tests::test_reset_callbacks_clears_chain ... ok [INFO] [stdout] test callbacks::tests::test_only_condition_skips_unlisted_action ... ok [INFO] [stdout] test callbacks::tests::test_only_condition_matches_any_listed_action ... ok [INFO] [stdout] test callbacks::tests::test_only_empty_list_skips_callback ... ok [INFO] [stdout] test callbacks::tests::test_replacing_callback_with_different_kind_moves_execution_phase ... ok [INFO] [stdout] test callbacks::tests::test_run_with_propagates_action_result ... ok [INFO] [stdout] test cache::tests::fetch_rewrites_expired_entry_with_new_version ... ok [INFO] [stdout] test callbacks::tests::test_skip_callback_removes_named_callback ... ok [INFO] [stdout] test concern::tests::concern_registry_clone_preserves_registered_names ... ok [INFO] [stdout] test concern::tests::concern_registry_clone_remains_independent_after_additional_registration ... ok [INFO] [stdout] test concern::tests::concern_registry_default_matches_new ... ok [INFO] [stdout] test callbacks::tests::test_unless_condition_false_runs_callback ... ok [INFO] [stdout] test callbacks::tests::test_skip_removes_named_around_callback ... ok [INFO] [stdout] test callbacks::tests::test_unless_condition_true_skips_callback ... ok [INFO] [stdout] test cache::tests::read_multi_omits_expired_entries ... ok [INFO] [stdout] test concern::tests::concern_registry_ignores_duplicates ... ok [INFO] [stdout] test concern::tests::concern_registry_instances_are_independent ... ok [INFO] [stdout] test concern::tests::concern_registry_preserves_first_occurrence_across_owned_and_borrowed_duplicates ... ok [INFO] [stdout] test concern::tests::concern_registry_registers_owned_strings ... ok [INFO] [stdout] test concern::tests::concern_registry_supports_multiple_marker_type_names ... ok [INFO] [stdout] test concern::tests::concern_registry_treats_empty_and_whitespace_names_as_distinct ... ok [INFO] [stdout] test concern::tests::concern_registry_preserves_registration_order ... ok [INFO] [stdout] test concern::tests::concern_trait_can_be_implemented_by_marker_types ... ok [INFO] [stdout] test concern::tests::multiple_marker_types_can_implement_concern_trait ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_creates_nested_values ... ok [INFO] [stdout] test callbacks::tests::test_reset_then_readd_callback_uses_new_chain_contents ... ok [INFO] [stdout] test callbacks::tests::test_skip_missing_callback_is_a_noop ... ok [INFO] [stdout] test callbacks::tests::test_skip_preserves_order_of_remaining_callbacks ... ok [INFO] [stdout] test concern::tests::concern_registry_registers_empty_names_once ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_leaves_invalid_json_as_string ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_parses_false_values ... ok [INFO] [stdout] test concern::tests::concern_registry_starts_empty ... ok [INFO] [stdout] test concern::tests::concern_registry_registers_names ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_ignores_empty_suffix_segments ... ok [INFO] [stdout] test cache::tests::write_multi_applies_shared_options ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_parses_float_values ... ok [INFO] [stdout] test concern::tests::concern_registry_includes_is_case_sensitive ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_parses_unsigned_integer_values ... ok [INFO] [stdout] test config::tests::config_default_matches_new_for_missing_values ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_replaces_existing_values ... ok [INFO] [stdout] test config::tests::config_clone_is_independent_of_original ... ok [INFO] [stdout] test config::tests::config_extract_reports_parse_error_for_type_mismatch ... ok [INFO] [stdout] test config::tests::config_extract_supports_array_fields ... ok [INFO] [stdout] test config::tests::config_extract_supports_three_level_nested_values ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_parses_object_json ... ok [INFO] [stdout] test config::tests::config_extract_reports_missing_keys ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_parses_json_values ... ok [INFO] [stdout] test config::tests::config_from_file_reads_nested_values ... ok [INFO] [stdout] test config::tests::config_from_file_reads_toml ... ok [INFO] [stdout] test cache::tests::increment_preserves_expiry ... ok [INFO] [stdout] test config::tests::config_extract_deserializes_into_typed_struct ... ok [INFO] [stdout] test config::tests::config_extract_reports_missing_nested_field ... ok [INFO] [stdout] test config::tests::config_apply_env_overrides_preserves_unrelated_values ... ok [INFO] [stdout] test config::tests::config_from_toml_reads_three_level_nested_values ... ok [INFO] [stdout] test config::tests::config_from_toml_reads_top_level_and_nested_values ... ok [INFO] [stdout] test config::tests::config_from_file_reports_parse_error_for_invalid_toml ... ok [INFO] [stdout] test config::tests::config_get_i64_returns_none_for_non_integer_value ... ok [INFO] [stdout] test cache::tests::expired_entries_are_missed_and_removed ... ok [INFO] [stdout] test config::tests::config_from_toml_reads_array_values ... ok [INFO] [stdout] test config::tests::config_from_toml_reports_parse_error_for_invalid_syntax ... ok [INFO] [stdout] test config::tests::config_get_bool_returns_none_for_non_boolean_value ... ok [INFO] [stdout] test config::tests::config_from_file_returns_not_found_error_for_missing_file ... ok [INFO] [stdout] test config::tests::config_from_toml_reports_parse_error_for_non_table_root ... ok [INFO] [stdout] test config::tests::config_get_returns_none_when_descending_into_scalar ... ok [INFO] [stdout] test config::tests::config_get_returns_none_for_missing_key ... ok [INFO] [stdout] test config::tests::config_get_str_returns_none_for_non_string_value ... ok [INFO] [stdout] test config::tests::config_set_preserves_existing_nested_siblings ... ok [INFO] [stdout] test config::tests::config_set_ignores_empty_path ... ok [INFO] [stdout] test current_attributes::tests::with_attributes_adds_values_for_the_scope ... ok [INFO] [stdout] test current_attributes::tests::reset_only_affects_the_current_thread ... ok [INFO] [stdout] test current_attributes::tests::reset_clears_all_attributes ... ok [INFO] [stdout] test current_attributes::tests::current_attributes_starts_empty ... ok [INFO] [stdout] test current_attributes::tests::with_attributes_keeps_unrelated_values_visible_inside_scope ... ok [INFO] [stdout] test current_attributes::tests::with_attributes_can_be_nested ... ok [INFO] [stdout] test current_attributes::tests::set_and_get_round_trip_values ... ok [INFO] [stdout] test current_attributes::tests::get_returns_none_for_missing_keys ... ok [INFO] [stdout] test config::tests::config_set_creates_nested_paths ... ok [INFO] [stdout] test current_attributes::tests::with_attributes_restores_existing_values_after_scope ... ok [INFO] [stdout] test config::tests::config_set_deeper_path_does_not_replace_existing_scalar ... ok [INFO] [stdout] test current_attributes::tests::set_returns_previous_value ... ok [INFO] [stdout] test database::tests::db_panics_before_establish ... ok [INFO] [stdout] test deprecation::tests::default_behavior_is_log ... ok [INFO] [stdout] test current_attributes::tests::snapshot_returns_a_clone_of_the_store ... ok [INFO] [stdout] test deprecation::tests::raise_behavior_does_not_log ... ok [INFO] [stdout] test deprecation::tests::helper_function_uses_the_same_behavior ... ok [INFO] [stdout] test deprecation::tests::raise_behavior_returns_a_typed_error ... ok [INFO] [stdout] test current_attributes::tests::with_attributes_restores_state_after_panic ... ok [INFO] [stdout] test deprecation::tests::report_behavior_does_not_add_logged_warnings ... ok [INFO] [stdout] test deprecation::tests::report_behavior_forwards_to_the_global_error_reporter ... ok [INFO] [stdout] test deprecation::tests::global_error_reporter_remains_accessible_after_reporting ... ok [INFO] [stdout] test database::tests::db_returns_a_usable_connection_after_establish ... ok [INFO] [stdout] test database::tests::with_db_can_return_a_computed_value ... ok [INFO] [stdout] test deprecation::tests::warn_logs_by_default ... ok [INFO] [stdout] test deprecation::tests::warn_records_the_callsite ... ok [INFO] [stdout] test duration::tests::addition_combines_parts ... ok [INFO] [stdout] test duration::tests::addition_normalizes_matching_parts ... ok [INFO] [stdout] test deprecation::tests::set_behavior_updates_the_global_behavior ... ok [INFO] [stdout] test duration::tests::ago_is_approximately_in_the_past ... ok [INFO] [stdout] test duration::tests::composite_duration_retains_ordered_parts ... ok [INFO] [stdout] test duration::tests::constructs_days ... ok [INFO] [stdout] test duration::tests::constructs_hours ... ok [INFO] [stdout] test database::tests::establish_twice_replaces_the_connection ... ok [INFO] [stdout] test deprecation::tests::silence_behavior_does_not_log ... ok [INFO] [stdout] test database::tests::with_db_passes_the_connection_into_the_closure ... ok [INFO] [stdout] test duration::tests::display_formats_single_and_two_part_durations ... ok [INFO] [stdout] test duration::tests::display_formats_three_part_durations_with_commas ... ok [INFO] [stdout] test duration::tests::display_handles_negative_parts ... ok [INFO] [stdout] test duration::tests::constructs_minutes ... ok [INFO] [stdout] test duration::tests::constructs_months ... ok [INFO] [stdout] test duration::tests::display_is_human_readable ... ok [INFO] [stdout] test duration::tests::constructs_seconds ... ok [INFO] [stdout] test duration::tests::constructs_weeks ... ok [INFO] [stdout] test duration::tests::constructs_years ... ok [INFO] [stdout] test duration::tests::conversions_return_expected_values ... ok [INFO] [stdout] test duration::tests::equality_is_sensitive_to_representation_even_when_values_match ... ok [INFO] [stdout] test duration::tests::from_now_is_approximately_in_the_future ... ok [INFO] [stdout] test duration::tests::division_rebuilds_from_seconds ... ok [INFO] [stdout] test duration::tests::division_truncates_fractional_seconds ... ok [INFO] [stdout] test duration::tests::in_hours_handles_partial_days ... ok [INFO] [stdout] test duration::tests::in_minutes_handles_negative_durations ... ok [INFO] [stdout] test duration::tests::iso8601_formats_date_and_time_parts ... ok [INFO] [stdout] test duration::tests::iso8601_formats_minutes_only ... ok [INFO] [stdout] test duration::tests::display_handles_negative_single_part_singular ... ok [INFO] [stdout] test duration::tests::division_by_zero_returns_zero_seconds ... ok [INFO] [stdout] test duration::tests::division_of_negative_duration_rebuilds_negative_parts ... ok [INFO] [stdout] test duration::tests::division_of_weeks_decomposes_into_days_and_hours ... ok [INFO] [stdout] test duration::tests::iso8601_formats_negative_seconds_only ... ok [INFO] [stdout] test duration::tests::iso8601_formats_negative_weeks_only ... ok [INFO] [stdout] test duration::tests::iso8601_formats_year_month_and_negative_time_parts ... ok [INFO] [stdout] test duration::tests::iso8601_uses_weeks_when_alone ... ok [INFO] [stdout] test duration::tests::multiplication_by_negative_scalar_negates_parts ... ok [INFO] [stdout] test duration::tests::multiplication_by_zero_returns_zero_duration ... ok [INFO] [stdout] test duration::tests::multiplication_scales_composite_parts ... ok [INFO] [stdout] test duration::tests::multiplication_scales_parts ... ok [INFO] [stdout] test duration::tests::negation_flips_each_part_in_composite_duration ... ok [INFO] [stdout] test duration::tests::negation_negates_parts ... ok [INFO] [stdout] test duration::tests::new_cancels_matching_parts_that_sum_to_zero ... ok [INFO] [stdout] test duration::tests::iso8601_preserves_negative_parts ... ok [INFO] [stdout] test duration::tests::iso8601_converts_weeks_when_mixed ... ok [INFO] [stdout] test duration::tests::new_orders_parts_from_largest_to_smallest_units ... ok [INFO] [stdout] test duration::tests::iso8601_converts_mixed_weeks_to_days ... ok [INFO] [stdout] test duration::tests::new_normalizes_and_orders_parts ... ok [INFO] [stdout] test duration::tests::since_adds_composite_duration_value_to_time ... ok [INFO] [stdout] test duration::tests::subtraction_normalizes_matching_parts ... ok [INFO] [stdout] test duration::tests::to_std_preserves_composite_positive_values ... ok [INFO] [stdout] test duration::tests::subtraction_of_identical_parts_produces_zero_duration ... ok [INFO] [stdout] test duration::tests::until_subtracts_composite_duration_value_from_time ... ok [INFO] [stdout] test duration::tests::to_std_clamps_negative_values_to_zero ... ok [INFO] [stdout] test duration::tests::subtraction_negates_rhs_parts ... ok [INFO] [stdout] test duration::tests::to_std_converts_positive_values ... ok [INFO] [stdout] test duration::tests::since_adds_seconds_to_time ... ok [INFO] [stdout] test duration::tests::since_and_until_handle_zero_and_negative_durations ... ok [INFO] [stdout] test duration::tests::zero_amount_parts_normalize_to_zero_duration ... ok [INFO] [stdout] test duration::tests::until_subtracts_seconds_from_time ... ok [INFO] [stdout] test duration::tests::zero_duration_ago_and_from_now_stay_close_to_now ... ok [INFO] [stdout] test encryption::tests::encryptor_checks_purpose ... ok [INFO] [stdout] test duration::tests::zero_duration_formats_as_zero_seconds ... ok [INFO] [stdout] test encryption::tests::encryptor_empty_purpose_round_trip ... ok [INFO] [stdout] test encryption::tests::encryptor_future_expiry_size_0 ... ok [INFO] [stdout] test encryption::tests::encryptor_accepts_future_expiry_for_multiple_binary_sizes ... ok [INFO] [stdout] test encryption::tests::encryptor_future_expiry_size_2048 ... ok [INFO] [stdout] test encryption::tests::encryptor_checks_expiry ... ok [INFO] [stdout] test encryption::tests::encryptor_does_not_set_sign_secret_in_aead_mode ... ok [INFO] [stdout] test encryption::tests::encryptor_future_expiry_size_64 ... ok [INFO] [stdout] test encryption::tests::encryptor_invalid_ciphertext_base64_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::encryptor_invalid_nonce_base64_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::encryptor_invalid_expiration_timestamp_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::encryptor_invalid_nonce_length_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::encryptor_future_expiry_size_7 ... ok [INFO] [stdout] test encryption::tests::encryptor_handles_empty_long_and_unicode_payloads ... ok [INFO] [stdout] test encryption::tests::encryptor_invalid_utf8_purpose_returns_encoding_error ... ok [INFO] [stdout] test callbacks::tests::test_chain_metadata_reports_name_and_empty_state ... ok [INFO] [stdout] test callbacks::tests::test_combined_conditions_require_all_checks_to_pass ... ok [INFO] [stdout] test concern::tests::concern_registry_preserves_first_occurrence_across_interleaved_duplicates ... ok [INFO] [stdout] test callbacks::tests::test_if_condition_false_skips_callback ... ok [INFO] [stdout] test current_attributes::tests::current_attributes_are_isolated_per_thread ... ok [INFO] [stdout] test encryption::tests::encryptor_purpose_mismatch_precedes_expiry ... ok [INFO] [stdout] test encryption::tests::encryptor_requires_a_32_byte_key ... ok [INFO] [stdout] test encryption::tests::encryptor_rejects_nonce_and_ciphertext_mutation ... ok [INFO] [stdout] test encryption::tests::encryptor_raw_message_requires_no_purpose ... ok [INFO] [stdout] test encryption::tests::encryptor_missing_purpose_length_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip ... ok [INFO] [stdout] test encryption::tests::encryptor_missing_separator_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::encryptor_missing_expiration_timestamp_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::encryptor_preserves_payloads_starting_with_metadata_prefix ... ok [INFO] [stdout] test encryption::tests::encryptor_rejects_wrong_key ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip_size_33 ... ok [INFO] [stdout] test encryption::tests::encryptor_signed_prefix_without_flags_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::rotating_encryptor_accepts_old_keys_and_uses_newest_for_generation ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip_size_0 ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip_size_1 ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip_size_1024 ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip_size_2 ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip_size_255 ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip_size_32 ... ok [INFO] [stdout] test encryption::tests::encryptor_truncated_purpose_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::encryptor_round_trip_size_31 ... ok [INFO] [stdout] test encryption::tests::encryptor_uses_random_nonces ... ok [INFO] [stdout] test encryption::tests::rotating_verifier_prefers_purpose_mismatch_over_invalid_signature ... ok [INFO] [stdout] test encryption::tests::verifier_checks_expiry ... ok [INFO] [stdout] test encryption::tests::verifier_checks_purpose ... ok [INFO] [stdout] test encryption::tests::verifier_empty_purpose_round_trip ... ok [INFO] [stdout] test encryption::tests::rotating_verifier_accepts_old_keys_and_uses_newest_for_generation ... ok [INFO] [stdout] test encryption::tests::rotating_encryptor_generate_with_purpose_uses_newest_key ... ok [INFO] [stdout] test encryption::tests::rotating_encryptor_prefers_encoding_over_decryption_failed ... ok [INFO] [stdout] test encryption::tests::verifier_accepts_future_expiry_for_multiple_binary_sizes ... ok [INFO] [stdout] test encryption::tests::verifier_future_expiry_size_0 ... ok [INFO] [stdout] test encryption::tests::rotating_encryptor_preserves_purpose_and_expiry_errors_for_old_keys ... ok [INFO] [stdout] test encryption::tests::verifier_future_expiry_size_64 ... ok [INFO] [stdout] test encryption::tests::verifier_future_expiry_size_7 ... ok [INFO] [stdout] test encryption::tests::verifier_invalid_utf8_purpose_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::verifier_invalid_expiration_timestamp_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::verifier_missing_expiration_timestamp_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::verifier_missing_purpose_length_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::rotating_verifier_generate_with_purpose_uses_newest_key ... ok [INFO] [stdout] test encryption::tests::verifier_rejects_extra_separator_in_signature ... ok [INFO] [stdout] test encryption::tests::verifier_handles_empty_long_and_unicode_payloads ... ok [INFO] [stdout] test encryption::tests::verifier_rejects_payload_and_signature_mutation ... ok [INFO] [stdout] test encryption::tests::verifier_rejects_tampering ... ok [INFO] [stdout] test encryption::tests::rotating_verifier_prefers_encoding_over_invalid_signature ... ok [INFO] [stdout] test encryption::tests::verifier_purpose_mismatch_precedes_expiry ... ok [INFO] [stdout] test encryption::tests::rotating_verifier_preserves_purpose_and_expiry_errors_for_old_keys ... ok [INFO] [stdout] test encryption::tests::rotating_verifier_valid_message_accepts_old_key ... ok [INFO] [stdout] test encryption::tests::verifier_future_expiry_size_2048 ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip_size_31 ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip_size_0 ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip_size_1 ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip_size_1024 ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip_size_2 ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip_size_255 ... ok [INFO] [stdout] test encryption::tests::verifier_truncated_purpose_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::rotating_verifier_prefers_expired_over_invalid_signature ... ok [INFO] [stdout] test encryption::tests::verifier_valid_message_rejects_missing_separator ... ok [INFO] [stdout] test encryption::tests::verifier_raw_message_requires_no_purpose ... ok [INFO] [stdout] test encryption::tests::verifier_valid_message_only_checks_signature ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip_size_32 ... ok [INFO] [stdout] test encryption::tests::verifier_round_trip_size_33 ... ok [INFO] [stdout] test encryption::tests::verifier_signed_prefix_without_flags_returns_encoding_error ... ok [INFO] [stdout] test encryption::tests::verifier_valid_message_rejects_invalid_payload_base64 ... ok [INFO] [stdout] test encryption::tests::verifier_rejects_empty_messages ... ok [INFO] [stdout] test encryption::tests::verifier_valid_message_rejects_invalid_signature_base64 ... ok [INFO] [stdout] test encryption::tests::verifier_rejects_wrong_key ... ok [INFO] [stdout] test error_reporter::tests::handled_reports_are_warnings ... ok [INFO] [stdout] test error_reporter::tests::multiple_subscribers_receive_the_same_report ... ok [INFO] [stdout] test gzip::tests::compressed_output_differs_from_raw_input_for_non_empty_data ... ok [INFO] [stdout] test error_reporter::tests::report_preserves_handled_flag ... ok [INFO] [stdout] test error_reporter::tests::explicit_fatal_severity_is_preserved ... ok [INFO] [stdout] test error_reporter::tests::subscribers_receive_reports_in_subscription_order ... ok [INFO] [stdout] test error_reporter::tests::unhandled_reports_are_errors ... ok [INFO] [stdout] test error_reporter::tests::global_subscribe_registers_subscribers ... ok [INFO] [stdout] test error_reporter::tests::report_accepts_non_string_errors ... ok [INFO] [stdout] test error_reporter::tests::report_clones_context_for_subscribers ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_contains_key_is_case_sensitive ... ok [INFO] [stdout] test error_reporter::tests::global_reporter_can_emit_fatal_reports ... ok [INFO] [stdout] test error_reporter::tests::global_reporter_returns_the_same_instance ... ok [INFO] [stdout] test gzip::tests::gzip_round_trips_empty_payloads ... ok [INFO] [stdout] test gzip::tests::gzip_round_trips_non_empty_payloads ... ok [INFO] [stdout] test gzip::tests::invalid_gzip_data_returns_an_error ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_clone_is_independent_of_original ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_contains_key_is_false_after_remove ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_except_all_keys_returns_empty_hash ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_contains_owned_inserted_key ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_default_matches_new ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_from_hash_map_preserves_nested_values ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_from_json_map_preserves_nested_array ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_from_index_map_preserves_order ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_from_hash_map_works ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_except_unknown_keys_keeps_all_entries ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_from_index_map_clone_is_independent ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_deserializes_plain_object ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_except_returns_remaining_keys ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_from_hash_map_copies_all_entries ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_inserted_owned_key_is_readable_with_str ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_iter_exposes_nested_json_objects ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_keys_are_empty_for_new_hash ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_index_reads_owned_inserted_key ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_insert_and_get_use_string_keys ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_insert_returns_previous_value ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_in_place_overwrite_keeps_key_position ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_nested_values_is_shallow ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_keys_values_and_iter_preserve_order ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_len_tracks_insert_replace_and_remove ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_from_json_map_works ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_in_place_appends_new_keys_in_other_order ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_get_missing_key_in_non_empty_hash_returns_none ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_produces_independent_result ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_in_place_with_empty_other_is_noop ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_preserves_left_order_when_overwriting ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_in_place_updates_self ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_partial_eq_is_false_for_different_values ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_iter_is_empty_for_new_hash ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_nested_value_remains_accessible_after_clone ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_remove_missing_key_keeps_existing_entries ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_remove_missing_key_returns_none ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_remove_returns_value ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_nested_values_remain_accessible ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_round_trips_through_serde ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_overrides_existing_keys ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_overwriting_value_does_not_reorder_keys ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_serde_round_trip_preserves_order ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_with_empty_other_returns_equal_copy ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_slice_duplicate_requests_do_not_duplicate_entries ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_slice_returns_requested_keys_only ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_slice_with_no_matches_is_empty ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_starts_empty ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_to_hash_map_is_detached_from_source_mutation ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_to_hash_map_clones_contents ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_values_are_empty_for_new_hash ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_single_entry_is_not_empty ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_partial_eq_is_true_for_matching_hashes ... ok [INFO] [stdout] test i18n::tests::later_translation_loads_are_merged ... ok [INFO] [stdout] test i18n::tests::dot_notation_traverses_nested_translation_keys ... ok [INFO] [stdout] test i18n::tests::load_translations_parses_toml_content ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_mutating_returned_hash_map_does_not_change_source ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_values_reflect_overwritten_contents ... ok [INFO] [stdout] test i18n::tests::locale_defaults_to_constructor_value ... ok [INFO] [stdout] test i18n::tests::pluralization_uses_one_for_singular_counts ... ok [INFO] [stdout] test i18n::tests::locale_override_is_thread_local ... ok [INFO] [stdout] test i18n::tests::missing_pluralization_uses_default_when_provided ... ok [INFO] [stdout] test i18n::tests::invalid_toml_returns_a_typed_error ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_merge_with_empty_self_returns_other_entries ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_and_underscore_tables ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_collapses_embedded_underscores ... ok [INFO] [stdout] test i18n::tests::non_string_values_are_rendered ... ok [INFO] [stdout] test i18n::tests::set_locale_overrides_the_current_thread_locale ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_lower_downcases_existing_pascal_case ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_round_trip_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_round_trip_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_round_trip_005 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_round_trip_006 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_capitalize_first_only_changes_first_character ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_handles_additional_rails_misdirections ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_round_trip_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_camelize_round_trip_003 ... ok [INFO] [stdout] test i18n::tests::default_value_is_used_when_key_is_missing ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_classify_with_schema_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_classify_with_schema_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_classify_with_schema_003 ... ok [INFO] [stdout] test hash_with_indifferent_access::tests::hash_with_indifferent_access_remove_accepts_str_for_owned_key ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_irregular_rule_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_irregular_rule_007 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_irregular_rule_008 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_irregular_rule_001 ... ok [INFO] [stdout] test i18n::tests::missing_key_returns_the_key ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_dasherize_and_empty_string_edges ... ok [INFO] [stdout] test i18n::tests::pluralization_uses_other_for_plural_counts ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_irregular_rule_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_demodulize_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_demodulize_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_foreign_key_and_tableize_tables ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_uncountable_rule_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_irregular_rule_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_uncountable_rule_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_irregular_rule_006 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_irregular_rule_005 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_keep_id_suffix_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_keep_id_suffix_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_keep_id_suffix_005 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_keep_id_suffix_006 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_keep_id_suffix_007 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_keep_id_suffix_008 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_preserves_accented_case_transforms ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_titleize_demodulize_and_classify_tables ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_preserves_cyrillic_case_transforms ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_without_capitalize_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_without_capitalize_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_irregularity_table ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_lower_camel_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_lower_camel_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_lower_camel_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_lower_camel_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_lowercase_first_only_changes_first_character ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_module_round_trip_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_module_round_trip_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_module_round_trip_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_005 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_006 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_007 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_008 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_009 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_010 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_011 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_012 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_013 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_014 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_boundary_015 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_ordinal_tables ... ok [INFO] [stdout] test database::tests::database_error_displays_the_underlying_failure ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_custom_separator_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_custom_separator_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_custom_separator_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_custom_separator_005 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_custom_separator_006 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_custom_separator_007 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_custom_separator_008 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_tables ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_trim_and_squeeze_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_trim_and_squeeze_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_trim_and_squeeze_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_trim_and_squeeze_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_005 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_006 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_007 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_008 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_009 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_010 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_011 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_012 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_013 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_014 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_015 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_016 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_017 ... ok [INFO] [stdout] test duration::tests::in_days_handles_negative_hours ... ok [INFO] [stdout] test encryption::tests::verifier_preserves_payloads_starting_with_metadata_prefix ... ok [INFO] [stdout] test error_reporter::tests::report_delivers_to_registered_subscriber ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_018 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_019 ... ok [INFO] [stdout] test database::tests::is_established_reflects_connection_state ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_024 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_023 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_025 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_020 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_026 ... ok [INFO] [stdout] test database::tests::establish_connects_to_in_memory_sqlite ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_022 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_031 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_021 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_032 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_033 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_034 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_035 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_037 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_036 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_038 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_039 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_040 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_041 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_042 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_043 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_044 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_045 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_046 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_047 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_048 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_049 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_050 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_051 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_052 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_053 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_054 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_055 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_056 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_057 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_059 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_060 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_061 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_062 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_063 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_064 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_065 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_058 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_066 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_067 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_068 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_069 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_070 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_071 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_072 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_073 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_074 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_075 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_076 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_078 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_077 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_079 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_081 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_082 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_083 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_084 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_080 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_085 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_086 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_pluralize_preserves_existing_plural_words ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_preserve_case_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_preserve_case_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_tableize_round_trip_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_tableize_round_trip_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_tableize_round_trip_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_preserve_case_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_027 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_titleize_keep_id_suffix_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_titleize_keep_id_suffix_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_titleize_keep_id_suffix_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_004 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_005 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_006 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_007 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_foreign_key_without_separator_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_keep_id_suffix_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_without_capitalize_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_008 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_009 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_parameterize_custom_separator_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_010 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_028 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_011 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_030 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_013 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_014 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_012 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_015 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_016 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_017 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_018 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_022 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_024 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_025 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_026 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_027 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_028 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_030 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_031 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_019 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_032 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_029 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_020 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_021 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_transliteration_023 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_underscore_handles_additional_rails_misdirections ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_uppercase_first_alpha_leaves_non_alpha_strings_unchanged ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_uppercase_first_alpha_skips_leading_punctuation ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_whole_word_suffix_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_whole_word_suffix_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_whole_word_suffix_004 ... ok [INFO] [stdout] test json_ext::tests::from_json_decodes_typed_values ... ok [INFO] [stdout] test json_ext::tests::from_json_returns_a_typed_error_for_invalid_json ... ok [INFO] [stdout] test json_ext::tests::json_merge_prefers_values_from_the_right_hand_side ... ok [INFO] [stdout] test json_ext::tests::json_merge_recursively_merges_objects ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_underscore_dasherize_round_trip_001 ... ok [INFO] [stdout] test json_ext::tests::json_merge_replaces_non_object_values ... ok [INFO] [stdout] test json_ext::tests::json_pretty_formats_values_with_indentation ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_underscore_dasherize_round_trip_002 ... ok [INFO] [stdout] test json_ext::tests::to_json_converts_serializable_values ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_underscore_dasherize_round_trip_003 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_whole_word_suffix_002 ... ok [INFO] [stdout] test lazy_load_hooks::tests::registered_callbacks_run_when_hook_is_loaded ... ok [INFO] [stdout] test lazy_load_hooks::tests::multiple_callbacks_run_in_registration_order ... ok [INFO] [stdout] test lazy_load_hooks::tests::registering_after_a_hook_has_run_executes_immediately ... ok [INFO] [stdout] test lazy_load_hooks::tests::different_hooks_do_not_interfere_with_each_other ... ok [INFO] [stdout] test lazy_load_hooks::tests::running_the_same_hook_twice_is_a_no_op ... ok [INFO] [stdout] test lazy_load_hooks::tests::running_an_unknown_hook_is_a_no_op ... ok [INFO] [stdout] test log_subscriber::tests::attach_receives_instrumented_notifications ... ok [INFO] [stdout] test log_subscriber::tests::multiple_attached_subscribers_receive_the_same_event ... ok [INFO] [stdout] test notifications::tests::callbacks_run_after_block_completes ... ok [INFO] [stdout] test notifications::tests::default_notifier_returns_same_instance ... ok [INFO] [stdout] test notifications::tests::exact_pattern_matches_same_name ... ok [INFO] [stdout] test notifications::tests::exact_subscriptions_do_not_receive_other_events ... ok [INFO] [stdout] test notifications::tests::first_subscription_id_is_one ... ok [INFO] [stdout] test notifications::tests::global_functions_work ... ok [INFO] [stdout] test notifications::tests::global_subscription_ids_are_distinct ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_uncountable_rule_002 ... ok [INFO] [stdout] test notifications::tests::global_wildcard_receives_multiple_events ... ok [INFO] [stdout] test notifications::tests::instrument_passes_numeric_payload ... ok [INFO] [stdout] test notifications::tests::instrument_passes_unicode_payload ... ok [INFO] [stdout] test notifications::tests::exact_pattern_rejects_empty_name ... ok [INFO] [stdout] test notifications::tests::instrument_returns_block_result ... ok [INFO] [stdout] test notifications::tests::instrument_with_empty_event_name_notifies_exact_subscriber ... ok [INFO] [stdout] test notifications::tests::instrument_with_unicode_event_name_notifies_exact_subscriber ... ok [INFO] [stdout] test notifications::tests::matching_subscriptions_fan_out_to_all_matching_patterns ... ok [INFO] [stdout] test notifications::tests::multiple_publishes_deliver_multiple_times ... ok [INFO] [stdout] test notifications::tests::multiple_subscribers_receive_the_same_event ... ok [INFO] [stdout] test notifications::tests::nested_instrument_returns_outer_result ... ok [INFO] [stdout] test notifications::tests::nested_instrumentation_publishes_both_events ... ok [INFO] [stdout] test notifications::tests::exact_pattern_rejects_prefixed_name ... ok [INFO] [stdout] test notifications::tests::new_notifier_starts_without_subscriptions ... ok [INFO] [stdout] test notifications::tests::payload_is_passed_through ... ok [INFO] [stdout] test notifications::tests::prefix_and_exact_subscribers_can_be_removed_independently ... ok [INFO] [stdout] test notifications::tests::prefix_pattern_matches_exact_prefix ... ok [INFO] [stdout] test notifications::tests::prefix_pattern_matches_extended_name ... ok [INFO] [stdout] test notifications::tests::prefix_pattern_rejects_other_prefix ... ok [INFO] [stdout] test notifications::tests::prefix_subscription_receives_matching_events_only ... ok [INFO] [stdout] test notifications::tests::publish_no_subscribers_keeps_state_empty ... ok [INFO] [stdout] test notifications::tests::nested_instrumentation_keeps_payloads_separate_and_ordered ... ok [INFO] [stdout] test notifications::tests::publish_order_is_preserved_within_same_pattern ... ok [INFO] [stdout] test notifications::tests::publish_to_no_subscribers_is_safe ... ok [INFO] [stdout] test notifications::tests::publish_to_unmatched_pattern_does_not_invoke_exact_subscriber ... ok [INFO] [stdout] test notifications::tests::removing_both_same_pattern_subscriptions_clears_bucket ... ok [INFO] [stdout] test notifications::tests::same_event_reaches_exact_prefix_and_wildcard ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_uncountable_suffix_is_not_greedy ... ok [INFO] [stdout] test notifications::tests::subscribe_and_receive_published_events ... ok [INFO] [stdout] test notifications::tests::subscribe_records_pattern_and_id ... ok [INFO] [stdout] test notifications::tests::short_prefix_matches_extended_name ... ok [INFO] [stdout] test notifications::tests::subscriber_can_publish_reentrant_event ... ok [INFO] [stdout] test notifications::tests::short_prefix_matches_base_name ... ok [INFO] [stdout] test notifications::tests::subscription_ids_increase_monotonically ... ok [INFO] [stdout] test notifications::tests::subscriptions_receive_distinct_ids ... ok [INFO] [stdout] test notifications::tests::unsubscribe_from_one_pattern_does_not_affect_other_pattern ... ok [INFO] [stdout] test notifications::tests::unsubscribe_last_subscription_removes_pattern_bucket ... ok [INFO] [stdout] test notifications::tests::unsubscribe_one_of_many_keeps_pattern_bucket ... ok [INFO] [stdout] test notifications::tests::unsubscribe_removes_id_mapping ... ok [INFO] [stdout] test notifications::tests::unsubscribe_removes_only_targeted_subscription ... ok [INFO] [stdout] test notifications::tests::instrument_timestamps_bracket_execution_and_match_duration ... ok [INFO] [stdout] test notifications::tests::wildcard_pattern_matches_empty_name ... ok [INFO] [stdout] test log_subscriber::tests::duration_is_forwarded_to_subscribers ... ok [INFO] [stdout] test log_subscriber::tests::payload_is_forwarded_to_subscribers ... ok [INFO] [stdout] test log_subscriber::tests::reset_subscribers_clears_attached_subscribers ... ok [INFO] [stdout] test notifications::tests::unsubscribe_stops_delivery ... ok [INFO] [stdout] test log_subscriber::tests::started_at_is_recorded ... ok [INFO] [stdout] test notifications::tests::unsubscribe_unknown_id_is_a_noop ... ok [INFO] [stdout] test notifications::tests::wildcard_subscription_receives_all_events ... ok [INFO] [stdout] test numeric_ext::tests::byte_size_operations_compose_as_expected ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_demodulize_001 ... ok [INFO] [stdout] test numeric_ext::tests::bytes_are_identity_for_signed_positive_integers ... ok [INFO] [stdout] test notifications::tests::wildcard_pattern_matches_nested_name ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_demodulize_002 ... ok [INFO] [stdout] test numeric_ext::tests::duration_factories_match_duration_constructors ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_foreign_key_without_separator_002 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_humanize_keep_id_suffix_001 ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_plural_pair_029 ... ok [INFO] [stdout] test notifications::tests::same_callback_subscribed_twice_receives_two_deliveries ... ok [INFO] [stdout] test numeric_ext::tests::exabytes_scale_by_1024_sixth ... ok [INFO] [stdout] test numeric_ext::tests::exabytes_scale_unsigned_values ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_duration_helpers_round_minutes_weeks_months_and_years ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_byte_sizes_are_rounded ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_kilobytes_round_to_nearest_byte ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_byte_sizes_clamp_non_finite_and_round_small_values ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_ordinalize_handles_negative_whole_and_fractional_values ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_duration_helpers_handle_zero_and_negative_years ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_ordinalize_uses_truncated_value_for_suffix ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_duration_factories_round_to_seconds ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_duration_helpers_round_hours_and_days ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_size_helpers_clamp_negative_values ... ok [INFO] [stdout] test numeric_ext::tests::gigabytes_scale_unsigned_values ... ok [INFO] [stdout] test notifications::tests::subscriber_can_observe_event_timestamps ... ok [INFO] [stdout] test numeric_ext::tests::integer_duration_helpers_support_negative_days ... ok [INFO] [stdout] test numeric_ext::tests::integer_duration_helpers_support_unsigned_values ... ok [INFO] [stdout] test numeric_ext::tests::integer_duration_helpers_support_zero_and_negative_values ... ok [INFO] [stdout] test numeric_ext::tests::megabytes_scale_by_1024_squared ... ok [INFO] [stdout] test numeric_ext::tests::megabytes_scale_unsigned_values ... ok [INFO] [stdout] test numeric_ext::tests::floating_point_terabytes_and_petabytes_scale ... ok [INFO] [stdout] test numeric_ext::tests::gigabytes_scale_by_1024_cubed ... ok [INFO] [stdout] test numeric_ext::tests::byte_sizes_saturate_at_large_bounds ... ok [INFO] [stdout] test numeric_ext::tests::bytes_are_identity ... ok [INFO] [stdout] test numeric_ext::tests::bytes_are_identity_for_unsigned_integers ... ok [INFO] [stdout] test numeric_ext::tests::ordinal_suffixes_cover_common_cases ... ok [INFO] [stdout] test numeric_ext::tests::ordinal_suffixes_handle_large_numbers ... ok [INFO] [stdout] test numeric_ext::tests::ordinal_suffixes_handle_teens ... ok [INFO] [stdout] test numeric_ext::tests::ordinal_suffixes_handle_zero_and_hundreds ... ok [INFO] [stdout] test numeric_ext::tests::ordinalize_formats_integers ... ok [INFO] [stdout] test numeric_ext::tests::ordinalize_formats_large_unsigned_and_positive_floats ... ok [INFO] [stdout] test numeric_ext::tests::ordinalize_formats_unsigned_values ... ok [INFO] [stdout] test numeric_ext::tests::negative_signed_sizes_clamp_all_units_to_zero ... ok [INFO] [stdout] test numeric_ext::tests::ordinalize_formats_zero_and_negative_numbers ... ok [INFO] [stdout] test numeric_ext::tests::negative_signed_byte_sizes_clamp_to_zero ... ok [INFO] [stdout] test ordered_options::tests::default_starts_empty ... ok [INFO] [stdout] test ordered_options::tests::get_returns_none_for_empty_key ... ok [INFO] [stdout] test ordered_options::tests::later_set_overrides_existing_values ... ok [INFO] [stdout] test ordered_options::tests::get_returns_none_for_missing_nested_keys ... ok [INFO] [stdout] test numeric_ext::tests::ordinal_suffixes_handle_unsigned_teens_and_twenties ... ok [INFO] [stdout] test numeric_ext::tests::petabytes_scale_by_1024_fifth ... ok [INFO] [stdout] test ordered_options::tests::get_treats_empty_segments_like_missing_separators ... ok [INFO] [stdout] test ordered_options::tests::merge_recursively_combines_nested_objects ... ok [INFO] [stdout] test ordered_options::tests::merge_overrides_existing_scalar_values ... ok [INFO] [stdout] test ordered_options::tests::merge_replaces_scalar_with_nested_object_from_incoming_options ... ok [INFO] [stdout] test numeric_ext::tests::kilobytes_scale_signed_values ... ok [INFO] [stdout] test numeric_ext::tests::terabytes_scale_by_1024_fourth ... ok [INFO] [stdout] test ordered_options::tests::merge_preserves_existing_top_level_order_when_appending_new_keys ... ok [INFO] [stdout] test ordered_options::tests::set_and_get_round_trip_top_level_values ... ok [INFO] [stdout] test ordered_options::tests::merge_with_empty_options_returns_equal_copy ... ok [INFO] [stdout] test numeric_ext::tests::ordinal_suffixes_handle_negative_and_large_teens ... ok [INFO] [stdout] test numeric_ext::tests::kilobytes_scale_by_1024 ... ok [INFO] [stdout] test numeric_ext::tests::petabytes_scale_unsigned_values ... ok [INFO] [stdout] test numeric_ext::tests::terabytes_scale_signed_values ... ok [INFO] [stdout] test ordered_options::tests::set_replaces_scalar_intermediates_when_descending_into_nested_paths ... ok [INFO] [stdout] test ordered_options::tests::set_creates_nested_objects_for_dotted_paths ... ok [INFO] [stdout] test ordered_options::tests::merge_prefers_incoming_nested_values ... ok [INFO] [stdout] test ordered_options::tests::to_hash_clones_the_top_level_values ... ok [INFO] [stdout] test ordered_options::tests::set_ignores_empty_path_segments_only_input ... ok [INFO] [stdout] test ordered_options::tests::to_hash_clones_nested_values ... ok [INFO] [stdout] test parameter_filter::tests::default_filter_redacts_password_keys ... ok [INFO] [stdout] test parameter_filter::tests::exact_matching_is_case_insensitive ... ok [INFO] [stdout] test parameter_filter::tests::multiple_patterns_can_redact_different_keys ... ok [INFO] [stdout] test parameter_filter::tests::default_filter_redacts_token_keys ... ok [INFO] [stdout] test parameter_filter::tests::empty_hashes_round_trip_cleanly ... ok [INFO] [stdout] test parameter_filter::tests::filtering_does_not_mutate_the_source_hash ... ok [INFO] [stdout] test inflector::inflector_tests::inflector_custom_uncountable_rule_003 ... ok [INFO] [stdout] test parameter_filter::tests::nested_arrays_are_filtered_recursively ... ok [INFO] [stdout] test parameter_filter::tests::non_matching_values_are_left_unchanged ... ok [INFO] [stdout] test parameter_filter::tests::exact_patterns_match_leaf_keys_at_any_depth ... ok [INFO] [stdout] test parameter_filter::tests::exact_patterns_match_nested_dotted_paths ... ok [INFO] [stdout] test parameter_filter::tests::nested_values_can_mix_exact_and_regex_rules ... ok [INFO] [stdout] test notifications::tests::instrument_measures_duration ... ok [INFO] [stdout] test runtime::tests::block_on_panics_with_clear_message_before_init ... ok [INFO] [stdout] test string_ext::tests::camelize_discards_empty_segments ... ok [INFO] [stdout] test ordered_options::tests::merge_does_not_mutate_nested_inputs ... ok [INFO] [stdout] test runtime::tests::is_initialized_is_false_before_init ... ok [INFO] [stdout] test parameter_filter::tests::regex_patterns_can_match_variants_of_sensitive_keys ... ok [INFO] [stdout] test string_ext::tests::camelize_splits_on_mixed_separators ... ok [INFO] [stdout] test string_ext::tests::dasherize_converts_underscores_to_dashes ... ok [INFO] [stdout] test string_ext::tests::dasherize_normalizes_mixed_separators ... ok [INFO] [stdout] test string_ext::tests::camelize_converts_underscored_text ... ok [INFO] [stdout] test string_ext::tests::foreign_key_converts_class_name_to_identifier_column ... ok [INFO] [stdout] test string_ext::tests::foreign_key_demodulizes_namespaced_class_name ... ok [INFO] [stdout] test string_ext::tests::classify_handles_plural_snake_case ... ok [INFO] [stdout] test runtime::tests::block_on_executes_simple_future ... ok [INFO] [stdout] test string_ext::tests::foreign_key_handles_acronym_class_names ... ok [INFO] [stdout] test parameter_filter::tests::regex_patterns_can_match_dotted_paths ... ok [INFO] [stdout] test string_ext::tests::classify_converts_table_name_to_class_name ... ok [INFO] [stdout] test string_ext::tests::is_blank_handles_unicode_whitespace ... ok [INFO] [stdout] test string_ext::tests::is_blank_is_false_for_content ... ok [INFO] [stdout] test string_ext::tests::is_present_is_false_for_empty_string ... ok [INFO] [stdout] test string_ext::tests::is_present_is_false_for_unicode_whitespace ... ok [INFO] [stdout] test string_ext::tests::humanize_collapses_duplicate_underscores ... ok [INFO] [stdout] test string_ext::tests::humanize_replaces_underscores_and_capitalizes ... ok [INFO] [stdout] test string_ext::tests::foreign_key_handles_namespaced_acronym_class_names ... ok [INFO] [stdout] test string_ext::tests::humanize_collapses_extra_separators_before_stripping_id_suffix ... ok [INFO] [stdout] test string_ext::tests::humanize_strips_id_suffix ... ok [INFO] [stdout] test string_ext::tests::parameterize_collapses_mixed_punctuation_runs ... ok [INFO] [stdout] test string_ext::tests::parameterize_collapses_duplicate_separators ... ok [INFO] [stdout] test runtime::tests::spawn_can_signal_back_to_sync_code ... ok [INFO] [stdout] test string_ext::tests::is_blank_for_tabs_and_newlines ... ok [INFO] [stdout] test string_ext::tests::is_blank_for_empty_string ... ok [INFO] [stdout] test string_ext::tests::is_blank_for_spaces ... ok [INFO] [stdout] test string_ext::tests::is_present_is_true_for_content ... ok [INFO] [stdout] test runtime::tests::init_runtime_sets_initialized_to_true ... ok [INFO] [stdout] test string_ext::tests::parameterize_creates_url_friendly_slug ... ok [INFO] [stdout] test string_ext::tests::parameterize_transliterates_and_trims_edge_separators ... ok [INFO] [stdout] test string_ext::tests::is_present_is_false_for_whitespace ... ok [INFO] [stdout] test string_ext::tests::parameterize_preserves_non_latin_alphanumerics ... ok [INFO] [stdout] test string_ext::tests::parameterize_transliterates_multichar_ligatures ... ok [INFO] [stdout] test runtime::tests::multiple_sequential_block_on_calls_work ... ok [INFO] [stdout] test string_ext::tests::presence_returns_none_for_empty_string ... ok [INFO] [stdout] test string_ext::tests::presence_returns_none_for_whitespace ... ok [INFO] [stdout] test string_ext::tests::presence_returns_some_for_multibyte_content ... ok [INFO] [stdout] test string_ext::tests::presence_returns_some_for_present_string ... ok [INFO] [stdout] test string_ext::tests::remove_deletes_all_occurrences ... ok [INFO] [stdout] test string_ext::tests::pluralize_handles_regular_nouns ... ok [INFO] [stdout] test string_ext::tests::pluralize_handles_words_ending_in_y ... ok [INFO] [stdout] test runtime::tests::block_on_supports_sleeping_futures ... ok [INFO] [stdout] test runtime::tests::block_on_propagates_result_errors ... ok [INFO] [stdout] test string_ext::tests::pluralize_handles_es_endings_and_vowel_y ... ok [INFO] [stdout] test string_ext::tests::pluralize_handles_words_ending_in_s_and_z ... ok [INFO] [stdout] test string_ext::tests::remove_eliminates_multiple_non_overlapping_matches ... ok [INFO] [stdout] test string_ext::tests::remove_empty_pattern_returns_original_string ... ok [INFO] [stdout] test string_ext::tests::string_impl_delegates_to_str_impl ... ok [INFO] [stdout] test runtime::tests::block_on_reenters_the_same_runtime_inside_async_context ... ok [INFO] [stdout] test string_ext::tests::remove_returns_original_when_pattern_missing ... ok [INFO] [stdout] test string_ext::tests::tableize_converts_class_name_to_plural_table_name ... ok [INFO] [stdout] test string_ext::tests::titleize_converts_to_title_case ... ok [INFO] [stdout] test string_ext::tests::tableize_handles_namespaced_class_names ... ok [INFO] [stdout] test string_ext::tests::squish_collapses_internal_whitespace ... ok [INFO] [stdout] test string_ext::tests::squish_collapses_unicode_whitespace ... ok [INFO] [stdout] test string_ext::tests::squish_preserves_single_word_input ... ok [INFO] [stdout] test string_ext::tests::truncate_with_empty_omission_keeps_visible_prefix ... ok [INFO] [stdout] test string_ext::tests::truncate_with_exact_length_returns_original ... ok [INFO] [stdout] test string_ext::tests::truncate_with_multibyte_omission_respects_character_length ... ok [INFO] [stdout] test string_ext::tests::truncate_words_normalizes_whitespace_between_words ... ok [INFO] [stdout] test string_ext::tests::truncate_words_returns_original_when_short_enough ... ok [INFO] [stdout] test string_ext::tests::truncate_words_shortens_on_word_boundary ... ok [INFO] [stdout] test string_ext::tests::singularize_handles_words_ending_in_ies ... ok [INFO] [stdout] test string_ext::tests::singularize_handles_regular_nouns ... ok [INFO] [stdout] test string_ext::tests::singularize_handles_words_ending_in_xes_and_plain_words ... ok [INFO] [stdout] test string_ext::tests::singularize_preserves_double_s_words_and_reverses_es_endings ... ok [INFO] [stdout] test string_ext::tests::truncate_words_strips_leading_and_trailing_whitespace_when_truncating ... ok [INFO] [stdout] test string_ext::tests::squish_returns_empty_string_for_blank_input ... ok [INFO] [stdout] test string_ext::tests::truncate_words_with_custom_omission ... ok [INFO] [stdout] test string_ext::tests::truncate_words_with_custom_omission_truncates_to_word_boundary ... ok [INFO] [stdout] test string_ext::tests::titleize_handles_camel_case_and_punctuation ... ok [INFO] [stdout] test string_ext::tests::titleize_normalizes_repeated_separators ... ok [INFO] [stdout] test string_ext::tests::truncate_shortens_and_appends_default_omission ... ok [INFO] [stdout] test string_ext::tests::truncate_counts_characters_for_multibyte_input ... ok [INFO] [stdout] test string_ext::tests::truncate_with_custom_omission ... ok [INFO] [stdout] test string_ext::tests::truncate_returns_original_when_short_enough ... ok [INFO] [stdout] test string_ext::tests::truncate_with_long_omission_truncates_the_omission_itself ... ok [INFO] [stdout] test string_ext::tests::underscore_converts_camel_case ... ok [INFO] [stdout] test string_ext::tests::truncate_with_zero_length_returns_empty_string ... ok [INFO] [stdout] test string_ext::tests::underscore_handles_acronyms ... ok [INFO] [stdout] test string_ext::tests::underscore_handles_mixed_punctuation_and_digits ... ok [INFO] [stdout] test string_ext::tests::underscore_handles_namespaced_constants ... ok [INFO] [stdout] test tagged_logging::tests::format_message_returns_plain_message_without_tags ... ok [INFO] [stdout] test tagged_logging::tests::clear_tags_removes_all_tags ... ok [INFO] [stdout] test tagged_logging::tests::push_tags_ignores_empty_and_whitespace_tags ... ok [INFO] [stdout] test tagged_logging::tests::clear_tags_only_affects_the_current_instance ... ok [INFO] [stdout] test tagged_logging::tests::tagged_can_be_nested ... ok [INFO] [stdout] test tagged_logging::tests::push_tags_prepends_tags_in_order ... ok [INFO] [stdout] test string_ext::tests::truncate_returns_truncated_omission_when_length_is_shorter_than_omission ... ok [INFO] [stdout] test string_ext::tests::truncate_words_with_custom_omission_keeps_original_spacing_when_not_truncated ... ok [INFO] [stdout] test string_ext::tests::truncate_words_zero_count_returns_omission ... ok [INFO] [stdout] test tagged_logging::tests::nested_tagged_scopes_restore_outer_tags_in_lifo_order ... ok [INFO] [stdout] test tagged_logging::tests::tagged_restores_previous_tags_after_scope ... ok [INFO] [stdout] test tagged_logging::tests::pop_tags_returns_none_when_stack_is_empty ... ok [INFO] [stdout] test tagged_logging::tests::tagged_restores_state_after_panic ... ok [INFO] [stdout] test tagged_logging::tests::tagged_scopes_tags_temporarily ... ok [INFO] [stdout] test tagged_logging::tests::tagged_with_only_empty_tags_is_a_no_op ... ok [INFO] [stdout] test tagged_logging::tests::tags_are_isolated_per_instance_on_the_same_thread ... ok [INFO] [stdout] test testing::tests::testing_assert_changes_accepts_multiple_mutations_before_final_state ... ok [INFO] [stdout] test testing::tests::testing_assert_changes_accepts_shared_mutable_values ... ok [INFO] [stdout] test testing::tests::testing_assert_changes_panic_message_is_stable ... ok [INFO] [stdout] test tagged_logging::tests::same_logger_keeps_tags_isolated_per_thread ... ok [INFO] [stdout] test runtime::tests::spawn_runs_task_to_completion ... ok [INFO] [stdout] test testing::tests::testing_assert_changes_supports_refcell_backed_values ... ok [INFO] [stdout] test tagged_logging::tests::tag_stack_is_isolated_per_thread ... ok [INFO] [stdout] test testing::tests::testing_assert_difference_can_wrap_assert_no_difference ... ok [INFO] [stdout] test testing::tests::testing_assert_changes_panics_when_final_state_is_unexpected - should panic ... ok [INFO] [stdout] test testing::tests::testing_assert_difference_handles_negative_start_values ... ok [INFO] [stdout] test tagged_logging::tests::pop_tags_removes_the_last_tag ... ok [INFO] [stdout] test testing::tests::testing_assert_difference_observes_multiple_updates ... ok [INFO] [stdout] test testing::tests::testing_assert_difference_panic_reports_actual_delta ... ok [INFO] [stdout] test testing::tests::testing_assert_difference_supports_explicit_zero_delta ... ok [INFO] [stdout] test testing::tests::testing_assert_no_changes_allows_nested_reads ... ok [INFO] [stdout] test testing::tests::testing_assert_difference_supports_negative_deltas ... ok [INFO] [stdout] test testing::tests::testing_assert_no_changes_panics_for_changed_values - should panic ... ok [INFO] [stdout] test testing::tests::testing_assert_difference_tracks_numeric_change ... ok [INFO] [stdout] test testing::tests::testing_assert_no_changes_passes_for_stable_values ... ok [INFO] [stdout] test testing::tests::testing_freeze_time_restores_baseline_after_panic ... ok [INFO] [stdout] test testing::tests::testing_freeze_time_sets_and_restores_time ... ok [INFO] [stdout] test testing::tests::testing_frozen_now_matches_baseline_without_guard ... ok [INFO] [stdout] test testing::tests::testing_assert_no_changes_panic_message_is_stable ... ok [INFO] [stdout] test testing::tests::testing_freeze_time_restores_previous_value_when_nested ... ok [INFO] [stdout] test testing::tests::testing_assert_no_difference_panics_when_value_changes - should panic ... ok [INFO] [stdout] test testing::tests::testing_assert_no_difference_accepts_no_change ... ok [INFO] [stdout] test testing::tests::testing_nested_assert_difference_tracks_both_scopes ... ok [INFO] [stdout] test time_zone::tests::all_timezones_contains_major_us_regions ... ok [INFO] [stdout] test time_zone::tests::find_timezone_preserves_display_name_for_iana_identifiers ... ok [INFO] [stdout] test testing::tests::testing_assert_no_difference_panic_mentions_zero_delta ... ok [INFO] [stdout] test time_zone::tests::time_zone_alias_parse_matches_iana_in_winter_and_summer ... ok [INFO] [stdout] test testing::tests::testing_nested_freeze_time_restores_outer_value_after_inner_panic ... ok [INFO] [stdout] test time_zone::tests::all_timezones_contains_common_iana_names ... ok [INFO] [stdout] test time_zone::tests::all_timezones_contains_half_and_quarter_hour_regions ... ok [INFO] [stdout] test time_zone::tests::time_zone_accepts_iana_names ... ok [INFO] [stdout] test time_zone::tests::time_zone_convert_handles_half_and_quarter_hour_offsets ... ok [INFO] [stdout] test time_zone::tests::time_zone_convert_kathmandu_crosses_midnight ... ok [INFO] [stdout] test time_zone::tests::time_zone_convert_kolkata_crosses_midnight ... ok [INFO] [stdout] test testing::tests::testing_assert_difference_panics_for_wrong_delta - should panic ... ok [INFO] [stdout] test testing::tests::testing_assert_no_difference_can_wrap_assert_difference_on_other_value ... ok [INFO] [stdout] test time_zone::tests::time_zone_new_accepts_aliases ... ok [INFO] [stdout] test tagged_logging::tests::tagged_ignores_empty_and_whitespace_tags ... ok [INFO] [stdout] test time_zone::tests::time_zone_alias_and_iana_lookup_match_same_instant ... ok [INFO] [stdout] test time_zone::tests::time_zone_now_enforces_spring_dst_rules ... ok [INFO] [stdout] test time_zone::tests::time_zone_alias_name_is_preserved ... ok [INFO] [stdout] test time_zone::tests::time_zone_now_in_half_hour_zone_reflects_offset ... ok [INFO] [stdout] test time_zone::tests::time_zone_now_in_utc_matches_frozen_timestamp ... ok [INFO] [stdout] test time_zone::tests::time_zone_now_reflects_dst_shift_across_date_boundaries ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_in_london_has_summer_offset ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_in_london_has_winter_offset ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_in_london_rejects_ambiguous_fall_time ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_in_london_rejects_nonexistent_spring_time ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_in_tokyo_maps_to_expected_utc_instant ... ok [INFO] [stdout] test time_zone::tests::time_zone_finds_rails_aliases ... ok [INFO] [stdout] test time_zone::tests::time_zone_major_aliases_resolve_to_expected_iana_regions ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_los_angeles_offsets_differ_by_season ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_supports_alternative_format_strings ... ok [INFO] [stdout] test time_zone::tests::time_zone_convert_preserves_fractional_seconds_across_dst_offsets ... ok [INFO] [stdout] test time_zone::tests::time_zone_now_uses_current_zone_and_respects_freeze_time ... ok [INFO] [stdout] test time_zone::tests::time_zone_convert_tokyo_crosses_date_boundary ... ok [INFO] [stdout] test time_zone::tests::time_zone_unknown_alias_reports_original_input ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_formats_offsets_around_dst_boundaries ... ok [INFO] [stdout] test time_zone::tests::time_zone_convert_translates_utc_to_local_time ... ok [INFO] [stdout] test time_zone::tests::time_zone_utc_offset_returns_seconds ... ok [INFO] [stdout] test time_zone::tests::time_zone_supports_multiple_aliases ... ok [INFO] [stdout] test time_zone::tests::time_zone_utc_offset_changes_with_dst_for_named_zones ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_invalid_input_returns_error ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_reads_local_time ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_rejects_nonexistent_spring_forward_time ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_in_utc_yields_exact_timestamp ... ok [INFO] [stdout] test time_zone::tests::time_zone_convert_utc_is_identity ... ok [INFO] [stdout] test time_zone::tests::time_zone_parse_rejects_ambiguous_time ... ok [INFO] [stdout] test time_zone::tests::time_zone_unknown_name_returns_error ... ok [INFO] [stdout] test time_zone::tests::time_zone_utc_offset_for_tokyo_is_nine_hours ... ok [INFO] [stdout] test time_zone::tests::time_zone_utc_offset_for_utc_is_zero ... ok [INFO] [stdout] test time_zone::tests::time_zone_now_distinguishes_repeated_fall_hour_by_offset ... ok [INFO] [stdout] test time_zone::tests::time_zone_utc_offset_for_india_is_half_hour ... ok [INFO] [stdout] test time_zone::tests::time_zone_utc_offset_for_kathmandu_is_quarter_hour ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 981 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s [INFO] [stdout] [INFO] [stderr] Doc-tests rustrails_support [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850", kill_on_drop: false }` [INFO] [stdout] 6726a05607a65f10357fe1cf62260eed2074776b3bbc9e24830e44a178f93850