[INFO] fetching crate cribra 0.6.0...
[INFO] testing cribra-0.6.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate cribra 0.6.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate cribra 0.6.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate cribra 0.6.0
[INFO] tweaked toml for crates.io crate cribra 0.6.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate cribra 0.6.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cribra 0.6.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa
[INFO] running `Command { std: "docker" "start" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa", 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" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa", 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" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.4.0
[INFO] [stderr]    Compiling constant_time_eq v0.4.2
[INFO] [stderr]    Compiling arrayvec v0.7.8
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling blake3 v1.8.7
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling cribra v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 20.82s
[INFO] running `Command { std: "docker" "inspect" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa", 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" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling zerocopy v0.8.55
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling either v1.17.0
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.6.2
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.55
[INFO] [stderr]    Compiling clap v4.6.4
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling cribra v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 06s
[INFO] running `Command { std: "docker" "inspect" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa", 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" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/cribra/42c76976c241d843/out/cribra-42c76976c241d843)
[INFO] [stdout] 
[INFO] [stdout] running 699 tests
[INFO] [stdout] test candidate_detection::tests::accepts_safe_surrounding_punctuation ... ok
[INFO] [stdout] test candidate_detection::tests::candidate_model_remains_distinct_from_finding_semantics ... ok
[INFO] [stdout] test candidate_detection::tests::detects_isolated_grouped_recovery_like_code ... ok
[INFO] [stdout] test candidate_detection::tests::detects_multiple_candidates_in_source_order ... ok
[INFO] [stdout] test candidate_detection::tests::detects_candidate_inside_multiline_unicode_source ... ok
[INFO] [stdout] test candidate_detection::tests::preserves_positions_for_multiple_candidates_after_unicode_and_newlines ... ok
[INFO] [stdout] test candidate_detection::tests::rejects_hexadecimal_only_grouped_values ... ok
[INFO] [stdout] test candidate_detection::tests::hyphen_heavy_non_candidates_remain_rejected ... ok
[INFO] [stdout] test candidate_detection::tests::rejects_lowercase_and_mixed_case_shapes ... ok
[INFO] [stdout] test candidate_detection::tests::rejects_numeric_only_grouped_values ... ok
[INFO] [stdout] test candidate_detection::tests::rejects_partial_or_longer_tokens ... ok
[INFO] [stdout] test candidate_detection::tests::rejects_obvious_placeholder_values ... ok
[INFO] [stdout] test compiled_rule::candidate_sink_tests::candidate_sink_checks_limit_before_append_and_counter_increment ... ok
[INFO] [stdout] test compiled_rule::candidate_sink_tests::candidate_sink_none_remains_unlimited_at_counter_ceiling ... ok
[INFO] [stdout] test compiled_rule::candidate_view_tests::budget_precedes_callback_and_count_is_cumulative_on_failure ... ok
[INFO] [stdout] test compiled_rule::capture_projection_tests::normal_pattern_still_emits_complete_match_span ... ok
[INFO] [stdout] test compiled_rule::candidate_view_tests::ingestion_errors_stop_matcher_iteration_and_eof_immediately ... ok
[INFO] [stdout] test compiled_rule::candidate_view_tests::delayed_regex_view_is_delivered_before_old_bytes_are_trimmed ... ok
[INFO] [stdout] test compiled_rule::candidate_view_tests::borrowed_views_match_source_and_raw_sequence_across_utf8_partitions ... ok
[INFO] [stdout] test compiled_rule::coordinate_storage_planning_tests::empty_and_literal_plans_separate_payload_and_metadata ... ok
[INFO] [stdout] test compiled_rule::contextual_storage_planning_tests::matcher_bounds_and_multiple_rules_are_accounted_separately ... ok
[INFO] [stdout] test compiled_rule::layout_tests::print_internal_layout_sizes ... ok
[INFO] [stdout] test compiled_rule::coordinate_storage_planning_tests::prefix_plans_bound_discovery_and_pin_cardinality_not_completion ... ok
[INFO] [stdout] test compiled_rule::coordinate_storage_planning_tests::coordinate_planning_overflow_and_unsupported_rules_are_explicit ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::absolute_end_streaming_remains_bounded ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::active_prefix_cardinality_boundaries_reset_candidates ... ok
[INFO] [stdout] test compiled_rule::contextual_storage_planning_tests::checked_planning_rejects_overflow_without_large_allocations ... ok
[INFO] [stdout] test compiled_rule::contextual_storage_planning_tests::pending_bound_covers_dense_occurrences_and_empty_projected_captures ... ok
[INFO] [stdout] test compiled_rule::coordinate_storage_planning_tests::regex_plans_use_complete_match_and_assertion_retention ... ok
[INFO] [stdout] test compiled_rule::contextual_storage_planning_tests::contextual_admission_requires_representable_plans_and_preserves_raw_gates ... ok
[INFO] [stdout] test compiled_rule::contextual_storage_planning_tests::all_thirty_contextual_validators_preserve_declared_windows ... ok
[INFO] [stdout] test compiled_rule::coordinate_storage_planning_tests::suffix_and_mixed_plans_cover_full_eligible_tokens ... ok
[INFO] [stdout] test compiled_rule::capture_projection_tests::captured_pattern_emits_only_named_capture_span ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::active_prefix_continues_across_chunks_until_boundary ... ok
[INFO] [stdout] test compiled_rule::contextual_storage_planning_tests::synthetic_regex_frontier_keeps_empty_complete_starts_distinct_before_eof ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::active_prefix_is_emitted_at_end_of_stream ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_pattern_stream_matches_whole_source_for_every_valid_split ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_pattern_stream_matches_whole_source_for_single_byte_ascii_chunks ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_pattern_stream_preserves_absolute_offset ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_pattern_stream_waits_until_match_is_stable ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_pattern_streaming_requires_commit_frontier ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_captured_pattern_stream_commits_capture_at_eof ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_captured_pattern_stream_matches_whole_source_for_every_valid_split ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_captured_pattern_stream_projects_capture_span ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::active_prefix_cardinality_needles_containing_boundaries ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_lf_captured_pattern_preserves_projection_and_non_overlap ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::engine_records_longest_multi_pattern_needle ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::identical_literals_from_distinct_rules_are_preserved ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::literal_matches_without_token_boundaries ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::overlapping_literals_are_preserved ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_regex_rejects_overlong_whole_source_before_copying ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_pattern_stream_commits_remaining_match_at_eof ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_crlf_captures_preserve_complete_match_selection ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::active_prefix_cardinality_multiple_configured_rules ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::pattern_stream_plan_accepts_bounded_context_free_pattern ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::overlapping_prefix_needles_are_preserved ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_pattern_stream_does_not_retain_complete_source ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::pattern_stream_plan_rejects_unbounded_pattern ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::prefix_extends_through_complete_ascii_token ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::prefix_requires_left_token_boundary ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::single_byte_needles_require_no_overlap ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_overlap_combines_only_required_tail ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_overlap_is_bounded_by_longest_needle ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::mixed_required_absolute_line_retention_is_bounded ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_prefix_accepts_complete_token ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_prefix_crosses_chunk_boundary ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::pattern_stream_plan_rejects_conditional_absolute_anchors ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::pattern_stream_plan_distinguishes_lf_and_crlf_line_anchors ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_prefix_crossing_boundary_respects_left_token_boundary ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_prefix_rejects_missing_left_boundary ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_prefix_remains_active_without_token_boundary ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::streamed_literal_is_emitted_exactly_once ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::streamed_literal_matches_across_chunk_boundary ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_crlf_stream_retention_does_not_grow_with_source ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_state_starts_empty ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::streamed_literal_matches_inside_single_chunk ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::streamed_literal_preserves_absolute_utf8_byte_offsets ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::text_end_anchor_stream_emits_at_real_eof ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::unicode_adjacent_to_prefix_preserves_utf8_offsets ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::streamed_overlapping_literals_are_preserved ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::text_end_anchor_stream_waits_for_real_eof ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::pattern_stream_plan_accepts_bounded_text_anchors ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::pattern_stream_plan_accepts_bounded_word_boundaries ... ok
[INFO] [stdout] test compiled_rule::streaming_semantic_admission_tests::prefix_admission_requires_no_validation ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::word_boundary_stream_emits_only_resolved_matches ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::stream_overlap_may_retain_partial_utf8_bytes ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::streamed_multi_pattern_matches_whole_source_semantics ... ok
[INFO] [stdout] test compiled_rule::streaming_semantic_admission_tests::shared_gate_alone_does_not_reject_ordinary_regex_enumeration ... ok
[INFO] [stdout] test compiled_rule::streaming_semantic_admission_tests::bounded_per_rule_prefilter_is_rejected_before_storage_admission ... ok
[INFO] [stdout] test compiled_rule::streaming_semantic_admission_tests::suffix_incompatibilities_are_demonstrated_and_rejected ... ok
[INFO] [stdout] test compiled_rule::streaming_semantic_admission_tests::unsupported_matcher_plan_remains_rejected_even_with_supported_semantics ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::absolute_start_end_requirement_covers_complete_and_rejected_candidates ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::arithmetic_overflow_is_explicit ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::empty_and_suffix_only_account_for_configured_tokenizer ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::mixed_ruleset_sums_persistent_and_temporary_payloads ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::word_boundary_stream_retains_bounded_history ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::literal_overlap_and_boundary_requirements ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::multiple_prefix_rules_account_for_element_size ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_lf_stream_retention_does_not_grow_with_source ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::overflowing_storage_is_rejected_only_when_admission_is_requested ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::single_and_multiple_regex_requirements_include_transient_append ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::unsupported_regex_has_no_claimed_storage_requirement ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_accepts_token_at_maximum_extent ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_recovers_start_after_left_boundary ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_rejects_token_beyond_maximum_extent ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_requires_trailing_token_boundary ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::pattern_stream_plan_accepts_required_absolute_line_contexts ... ok
[INFO] [stdout] test compiled_rule::streaming_semantic_admission_tests::suffix_admission_covers_small_token_needles_exhaustively ... ok
[INFO] [stdout] test compiled_rule::streaming_semantic_admission_tests::supported_suffixes_preserve_token_boundaries_lengths_and_eof ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_regex_internal_windows_preserve_eof_completion ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_accepts_token_below_maximum_extent ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_stream_accepts_token_at_maximum_extent ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::unused_suffix_processing_and_finalization_leave_state_untouched ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::oversized_token_does_not_hide_later_valid_token ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_stream_discards_token_beyond_maximum_extent ... ok
[INFO] [stdout] test compiled_rule::coordinate_storage_planning_tests::large_rule_limits_are_planned_without_source_or_retention_allocation ... ok
[INFO] [stdout] test confidence::tests::confidence_order_matches_documentation ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_stream_finishes_token_at_end_of_source ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_stream_recovers_after_oversized_token ... ok
[INFO] [stdout] test confidence::tests::detects_high_confidence ... ok
[INFO] [stdout] test compiled_rule::validator_metadata_tests::provider_specific_metadata_outranks_generic_metadata ... ok
[INFO] [stdout] test compiled_rule::validator_metadata_tests::compiled_metadata_preserves_validator_kind ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_stream_preserves_token_across_chunks ... ok
[INFO] [stdout] test explanation::tests::finding_resolution_fails_closed_for_unrelated_scanner ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_stream_emits_complete_token_at_boundary ... ok
[INFO] [stdout] test compiled_rule::validator_metadata_tests::public_metadata_preserves_detection_mode ... ok
[INFO] [stdout] test explanation::tests::finding_resolution_rejects_incompatible_metadata ... ok
[INFO] [stdout] test finding::tests::exposes_immutable_finding_metadata ... ok
[INFO] [stdout] test finding::tests::detects_critical_findings ... ok
[INFO] [stdout] test finding::tests::explanation_fails_closed_against_unrelated_scanner ... ok
[INFO] [stdout] test finding::tests::resolves_explanation_without_storing_duplicate_rule_metadata ... ok
[INFO] [stdout] test explanation::tests::ambiguous_explanation_reuses_candidate_evidence ... ok
[INFO] [stdout] test explanation::tests::classified_explanation_reuses_detection_mode ... ok
[INFO] [stdout] test incremental_session::tests::after_context_validation_observes_new_eof_and_closing_markup ... ok
[INFO] [stdout] test explanation::tests::finding_resolution_reuses_scanner_rule_metadata ... ok
[INFO] [stdout] test incremental_session::tests::arithmetic_overflow_is_checked_without_large_allocations ... ok
[INFO] [stdout] test incremental_session::tests::cache_preserves_overlapping_literals_and_equal_priority_candidates ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_regex_peak_capacity_is_independent_of_input_size ... ok
[INFO] [stdout] test incremental_session::tests::candidate_only_validation_rebuilds_acceptance_and_rejection ... ok
[INFO] [stdout] test incremental_session::tests::checked_shifting_clipping_and_work_accounting_reject_overflow ... ok
[INFO] [stdout] test incremental_session::tests::every_contextual_validator_reuses_the_authoritative_dispatch ... ok
[INFO] [stdout] test incremental_session::tests::contextual_reuse_checks_both_effective_windows_and_utf8_clipping ... ok
[INFO] [stdout] test incremental_session::tests::literal_ownership_intervals_cover_edit_edges_and_representable_limits ... ok
[INFO] [stdout] test incremental_session::tests::per_rule_prefilter_duplicates_remain_observable ... ok
[INFO] [stdout] test incremental_session::tests::projected_empty_and_absent_captures_are_preserved ... ok
[INFO] [stdout] test incremental_session::tests::prefixes_suffixes_and_regex_enumeration_use_whole_source_semantics ... ok
[INFO] [stdout] test incremental_session::tests::malformed_replay_emissions_fail_before_validation_and_are_terminal ... ok
[INFO] [stdout] test incremental_session::tests::recoverable_errors_preserve_entire_snapshot_and_error_precedence ... ok
[INFO] [stdout] test incremental_session::tests::regional_enumeration_owns_starts_not_halo_matches_or_pattern_slots ... ok
[INFO] [stdout] test incremental_session::tests::rejected_and_lower_priority_records_survive_and_reappear ... ok
[INFO] [stdout] test incremental_session::tests::deterministic_mixed_edit_sequences_preserve_report_and_cache_parity ... ok
[INFO] [stdout] test incremental_session::tests::replacements_cover_empty_bof_eof_unicode_and_line_endings ... ok
[INFO] [stdout] test incremental_session::tests::resource_normalization_losers_keep_cache_tickets_not_materialization_tickets ... ok
[INFO] [stdout] test incremental_session::tests::resource_preflight_errors_and_checked_overflow_are_deterministic ... ok
[INFO] [stdout] test incremental_session::tests::resource_large_fallback_stops_without_source_sized_raw_collection ... ok
[INFO] [stdout] test incremental_session::tests::resource_reused_and_revalidated_records_do_not_emit_raw_candidates ... ok
[INFO] [stdout] test incremental_session::tests::resource_results_count_suppressed_structural_copies_without_refund ... ok
[INFO] [stdout] test incremental_session::tests::resource_peak_cache_ownership_counts_separate_copies_not_shared_metadata ... ok
[INFO] [stdout] test incremental_session::tests::resource_raw_limit_is_per_operation_and_includes_rejections ... ok
[INFO] [stdout] test incremental_session::tests::resource_storage_boundaries_and_live_payload_reconcile_after_transfers ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::requirements_cover_observed_storage_and_preserve_partition_parity ... ok
[INFO] [stdout] test incremental_session::tests::resource_zero_limits_allow_empty_execution ... ok
[INFO] [stdout] test location::tests::detects_empty_span ... ok
[INFO] [stdout] test incremental_session::tests::selective_invariant_failure_is_terminal_and_does_not_commit_staged_state ... ok
[INFO] [stdout] test incremental_session::tests::suppressed_structural_cache_reappears_after_context_edit ... ok
[INFO] [stdout] test remediation::tests::every_remediation_has_presentation_text ... ok
[INFO] [stdout] test location::tests::exposes_half_open_byte_span_and_position ... ok
[INFO] [stdout] test redaction::tests::hidden_uses_safe_default_marker ... ok
[INFO] [stdout] test rule::tests::captured_pattern_rejects_missing_named_group ... ok
[INFO] [stdout] test rule::tests::captured_pattern_resolves_named_group_once ... ok
[INFO] [stdout] test redaction::tests::supports_custom_replacement_text ... ok
[INFO] [stdout] test incremental_session::tests::structural_localization_covers_neighbors_tokens_and_utf8 ... ok
[INFO] [stdout] test rule::tests::invalid_pattern_is_rejected_during_rule_construction ... ok
[INFO] [stdout] test rule::tests::rule_id_supports_owned_and_borrowed_strings ... ok
[INFO] [stdout] test rule::tests::public_pattern_rejects_zero_length_language ... ok
[INFO] [stdout] test rule::tests::metadata_exposes_validator_detection_mode ... ok
[INFO] [stdout] test rule::tests::public_pattern_accepts_non_empty_unicode_and_anchored_patterns ... ok
[INFO] [stdout] test rule::tests::pattern_context_classifies_absolute_anchors ... ok
[INFO] [stdout] test incremental_session::tests::resource_emission_checks_precede_accumulation_for_every_fallback ... ok
[INFO] [stdout] test rule::tests::static_spec_preserves_internal_validator ... ok
[INFO] [stdout] test rule_metadata::tests::explanation_tracks_detection_mode_without_parallel_state ... ok
[INFO] [stdout] test rule_metadata::tests::exposes_presentation_safe_rule_metadata ... ok
[INFO] [stdout] test scan_query::tests::composes_independent_filters ... ok
[INFO] [stdout] test scan_query::tests::convenience_filters_match_domain_semantics ... ok
[INFO] [stdout] test scan_query::tests::exposes_count_and_first_helpers ... ok
[INFO] [stdout] test scan_query::tests::empty_query_has_no_findings ... ok
[INFO] [stdout] test scan_query::tests::filters_confidence_and_minimum_confidence ... ok
[INFO] [stdout] test scan_query::tests::filters_exact_rule_identifier ... ok
[INFO] [stdout] test scan_query::tests::filters_minimum_severity ... ok
[INFO] [stdout] test scan_query::tests::lazy_query_helpers_short_circuit_semantically ... ok
[INFO] [stdout] test rule::tests::static_literal_spec_converts_to_owned_rule ... ok
[INFO] [stdout] test scan_query::tests::iterates_all_findings_without_cloning ... ok
[INFO] [stdout] test scan_query::tests::filters_exact_severity ... ok
[INFO] [stdout] test scan_query::tests::sorting_happens_after_lazy_filtering ... ok
[INFO] [stdout] test scan_query::tests::sorted_query_helpers_match_materialized_state ... ok
[INFO] [stdout] test scan_query::tests::exact_and_minimum_filters_replace_each_other ... ok
[INFO] [stdout] test scan_query::tests::sorts_by_location ... ok
[INFO] [stdout] test scan_query::tests::sorts_by_rule_identifier_in_both_directions ... ok
[INFO] [stdout] test scan_query::tests::sorts_by_source_key ... ok
[INFO] [stdout] test scan_report::tests::candidate_only_report_does_not_iterate_as_findings ... ok
[INFO] [stdout] test scan_query::tests::sorts_by_severity_and_confidence ... ok
[INFO] [stdout] test scan_report::tests::empty_report_has_no_findings ... ok
[INFO] [stdout] test scan_report::tests::candidates_remain_separate_from_findings ... ok
[INFO] [stdout] test scan_report::tests::display_distinguishes_candidates_from_findings ... ok
[INFO] [stdout] test scan_report::tests::detects_critical_findings ... ok
[INFO] [stdout] test scan_report::tests::filters_by_severity_without_cloning ... ok
[INFO] [stdout] test scan_query::tests::lazy_query_helpers_handle_no_matches ... ok
[INFO] [stdout] test scan_query::tests::sorted_query_exposes_owned_vector_of_borrowed_pairs ... ok
[INFO] [stdout] test scan_results::tests::creates_borrowed_query_over_findings ... ok
[INFO] [stdout] test scan_summary::tests::exposes_counts_and_status_helpers ... ok
[INFO] [stdout] test scan_results::tests::empty_results_have_no_entries_or_findings ... ok
[INFO] [stdout] test scan_summary::tests::formats_stable_plain_text_summary ... ok
[INFO] [stdout] test scan_results::tests::candidates_are_exposed_without_becoming_findings ... ok
[INFO] [stdout] test scan_results::tests::exposes_batch_helpers_without_cloning ... ok
[INFO] [stdout] test scanner::tests::distinct_rules_with_identical_spans_are_preserved ... ok
[INFO] [stdout] test scan_results::tests::summary_aggregates_sources_bytes_and_severities ... ok
[INFO] [stdout] test scan_results::tests::summary_keeps_candidates_separate_from_findings ... ok
[INFO] [stdout] test scanner::tests::empty_builder_has_no_rules_or_findings ... ok
[INFO] [stdout] test scanner::tests::finding_suppresses_overlapping_ambiguous_candidate ... ok
[INFO] [stdout] test scanner::tests::linear_review_suppression_preserves_strict_overlap_including_empty_spans ... ok
[INFO] [stdout] test scanner::tests::exposes_metadata_for_custom_rules ... ok
[INFO] [stdout] test scanner::tests::location_columns_count_unicode_scalars ... ok
[INFO] [stdout] test scanner::tests::partially_overlapping_spans_are_preserved ... ok
[INFO] [stdout] test scanner::tests::provider_specific_rule_wins_exact_span_collision ... ok
[INFO] [stdout] test scanner::tests::specialized_validator_accepts_and_overrides_confidence ... ok
[INFO] [stdout] test scanner::tests::specialized_validator_rejects_invalid_candidate ... ok
[INFO] [stdout] test scanner::tests::unvalidated_custom_rule_preserves_existing_behavior ... ok
[INFO] [stdout] test compiled_rule::suffix_tests::suffix_stream_bound_is_independent_of_chunking ... ok
[INFO] [stdout] test scanner_builder::tests::custom_rule_cannot_shadow_builtin_identifier ... ok
[INFO] [stdout] test scanner_builder::tests::duplicate_custom_rule_ids_are_rejected ... ok
[INFO] [stdout] test sensitive_candidate::tests::exposes_candidate_metadata_without_finding_semantics ... ok
[INFO] [stdout] test severity::tests::detects_high_priority_levels ... ok
[INFO] [stdout] test severity::tests::severity_order_matches_documentation ... ok
[INFO] [stdout] test source_coordinates::tests::arbitrary_byte_partitioning_does_not_change_coordinates ... ok
[INFO] [stdout] test source_coordinates::tests::ascii_advances_bytes_and_scalar_columns ... ok
[INFO] [stdout] test source_coordinates::tests::checked_counter_overflow_is_explicit_and_atomic ... ok
[INFO] [stdout] test scanner::tests::nuget_specialization_wins_effective_same_span_normalization ... ok
[INFO] [stdout] test source_coordinates::tests::checked_exact_boundaries_and_lf_reset_do_not_false_overflow ... ok
[INFO] [stdout] test source_coordinates::tests::checked_cursor_does_not_count_incomplete_transport_carry ... ok
[INFO] [stdout] test source_coordinates::tests::checked_positions_match_whole_source_scanner ... ok
[INFO] [stdout] test source_coordinates::tests::checked_transport_partitions_preserve_scalar_and_newline_semantics ... ok
[INFO] [stdout] test source_coordinates::tests::empty_segments_are_no_ops ... ok
[INFO] [stdout] test source_coordinates::tests::crlf_preserves_existing_scanner_semantics ... ok
[INFO] [stdout] test source_coordinates::tests::newline_advances_line_and_resets_column ... ok
[INFO] [stdout] test source_coordinates::tests::single_byte_transport_preserves_coordinates ... ok
[INFO] [stdout] test source_coordinates::tests::segmentation_does_not_change_coordinates ... ok
[INFO] [stdout] test source_coordinates::tests::starts_at_public_source_origin ... ok
[INFO] [stdout] test source_coordinates::tests::unicode_columns_count_scalars_not_bytes ... ok
[INFO] [stdout] test source_session::tests::absolute_end_streaming_alternative_parity ... ok
[INFO] [stdout] test incremental_session::tests::resource_diagnostics_report_owned_payload_and_avoided_work ... ok
[INFO] [stdout] test source_session::tests::absolute_start_streaming_resolves_without_eof ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::active_prefix_cardinality_repeated_needles_in_long_token ... ok
[INFO] [stdout] test source_session::tests::after_context_uses_full_callback_and_waits_for_complete_lookahead ... ok
[INFO] [stdout] test source_session::tests::after_context_matchers_match_whole_source_across_partitions_and_eof ... ok
[INFO] [stdout] test source_session::tests::annotated_budget_utf8_and_execution_error_precedence_are_preserved ... ok
[INFO] [stdout] test source_session::tests::annotated_checked_overflows_and_partial_output_are_terminal ... ok
[INFO] [stdout] test source_session::tests::annotated_contextual_coordinates_survive_deferred_validation_and_eof ... ok
[INFO] [stdout] test source_session::tests::annotated_invalid_offsets_and_coordinate_invariants_fail_explicitly ... ok
[INFO] [stdout] test source_session::tests::annotated_large_callback_retains_only_planned_tail ... ok
[INFO] [stdout] test source_session::tests::annotated_matcher_coordinates_match_scanner_across_utf8_partitions ... ok
[INFO] [stdout] test source_session::tests::all_after_context_validator_kinds_preserve_acceptance_and_confidence ... ok
[INFO] [stdout] test source_session::tests::annotated_missing_history_and_prefix_pins_fail_explicitly ... ok
[INFO] [stdout] test incremental_session::tests::literal_stats_measure_actual_local_work_and_exclude_prefix_lengths ... ok
[INFO] [stdout] test source_session::tests::annotated_storage_admission_includes_history_pins_and_deferred_coordinates ... ok
[INFO] [stdout] test source_session::tests::audit_empty_complete_capture_requires_explicit_rejection ... ok
[INFO] [stdout] test source_session::tests::annotated_prefix_pins_outlive_history_and_reset_at_boundaries ... ok
[INFO] [stdout] test source_session::tests::after_context_clips_utf8_inward_and_preserves_eof ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::active_prefix_cardinality_overlapping_and_identical_needles ... ok
[INFO] [stdout] test source_session::tests::before_context_matches_whole_source_across_utf8_partitions_and_eof ... ok
[INFO] [stdout] test source_session::tests::both_absolute_anchors_reject_oversized_sources ... ok
[INFO] [stdout] test source_session::tests::bounded_streaming_preserves_non_overlapping_selection ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_checks_every_chunk_emission_path_before_append ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_counter_is_independent_of_caller_vec_changes ... ok
[INFO] [stdout] test compiled_rule::streaming_storage_tests::large_requirements_need_no_corresponding_buffer_allocation ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_counts_distinct_rules_emitting_same_span ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_counts_eof_emissions_and_exact_limit_succeeds ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_failure_skips_later_transport_callbacks ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_does_not_count_absent_projected_captures ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_is_shared_across_engines_chunks_and_eof ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_preserves_terminal_utf8_errors ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_unlimited_and_exact_limit_preserve_raw_parity ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_large_single_chunk_stops_at_limit ... ok
[INFO] [stdout] test source_session::tests::candidate_budget_zero_allows_candidate_free_sessions ... ok
[INFO] [stdout] test source_session::tests::completed_session_cannot_resume ... ok
[INFO] [stdout] test source_session::tests::absolute_end_streaming_long_source_parity ... ok
[INFO] [stdout] test source_session::tests::deferred_validation_preserves_raw_budget_and_transport_error_precedence ... ok
[INFO] [stdout] test source_session::tests::contextual_storage_admission_accounts_for_snapshots_and_metadata ... ok
[INFO] [stdout] test source_session::tests::finding_finalization_candidate_only_projection_suffix_and_eof_parity ... ok
[INFO] [stdout] test source_session::tests::finding_finalization_does_not_deduplicate_identical_records ... ok
[INFO] [stdout] test source_session::tests::finding_finalization_matches_priority_confidence_and_overlap_semantics ... ok
[INFO] [stdout] test source_session::tests::finding_finalization_preserves_equal_priority_and_all_sort_keys ... ok
[INFO] [stdout] test source_session::tests::finding_finalization_requires_successful_eof_and_runs_once ... ok
[INFO] [stdout] test source_session::tests::history_loss_and_text_mismatch_are_terminal_execution_errors ... ok
[INFO] [stdout] test source_session::tests::line_anchor_crlf_alternative_parity ... ok
[INFO] [stdout] test source_session::tests::line_anchor_crlf_pair_interior_and_eof_parity ... ok
[INFO] [stdout] test source_session::tests::audit_scanner_oracle_chunking_and_context_high_water_marks ... ok
[INFO] [stdout] test incremental_session::tests::exhaustive_literal_edits_preserve_overlaps_duplicates_and_cache_ownership ... ok
[INFO] [stdout] test source_session::tests::line_anchor_lf_does_not_accept_temporary_buffer_end ... ok
[INFO] [stdout] test source_session::tests::line_anchor_crlf_streaming_parity ... ok
[INFO] [stdout] test source_session::tests::audit_partial_source_windows_match_scanner_decisions ... ok
[INFO] [stdout] test source_session::tests::line_anchor_streaming_alternative_parity ... ok
[INFO] [stdout] test source_session::tests::line_anchor_lf_streaming_parity ... ok
[INFO] [stdout] test source_session::tests::missing_text_is_explicit_terminal_and_preserves_execution_error_precedence ... ok
[INFO] [stdout] test source_session::tests::annotated_retention_high_water_stays_within_checked_plans ... ok
[INFO] [stdout] test source_session::tests::mixed_required_absolute_line_eof_behavior ... ok
[INFO] [stdout] test source_session::tests::mixed_required_absolute_line_capture_parity ... ok
[INFO] [stdout] test source_session::tests::line_anchor_lf_does_not_rebase_window_start ... ok
[INFO] [stdout] test source_session::tests::mixed_required_absolute_line_streaming_parity ... ok
[INFO] [stdout] test source_session::tests::rejected_candidates_consume_cumulative_raw_budget_before_validation ... ok
[INFO] [stdout] test source_session::tests::pending_range_capacity_and_offset_failures_are_terminal ... ok
[INFO] [stdout] test source_session::tests::semantic_admission_preserves_raw_candidates_and_existing_limits ... ok
[INFO] [stdout] test source_session::tests::session_accepts_rule_set_with_bounded_streaming_pattern ... ok
[INFO] [stdout] test source_session::tests::session_becomes_terminal_on_malformed_chunk_after_valid_chunks ... ok
[INFO] [stdout] test source_session::tests::session_becomes_terminal_after_carried_scalar_then_malformed_bytes ... ok
[INFO] [stdout] test source_session::tests::session_becomes_terminal_on_malformed_first_chunk ... ok
[INFO] [stdout] test source_session::tests::session_finishes_active_prefix_at_end_of_source ... ok
[INFO] [stdout] test source_session::tests::session_finishes_suffix_at_end_of_source ... ok
[INFO] [stdout] test source_session::tests::session_matches_suffix_with_single_byte_transport ... ok
[INFO] [stdout] test source_session::tests::session_matches_with_single_byte_transport ... ok
[INFO] [stdout] test source_session::tests::session_preserves_offsets_when_utf8_scalar_is_split ... ok
[INFO] [stdout] test source_session::tests::session_recovers_suffix_matching_after_oversized_token ... ok
[INFO] [stdout] test source_session::tests::session_rejects_incomplete_utf8_before_matcher_eof ... ok
[INFO] [stdout] test source_session::tests::session_rejects_oversized_suffix_token ... ok
[INFO] [stdout] test source_session::tests::session_scans_literal_across_chunk_boundary ... ok
[INFO] [stdout] test source_session::tests::session_scans_suffix_across_chunk_boundary ... ok
[INFO] [stdout] test source_session::tests::session_stream_matches_whole_source_for_every_valid_split ... ok
[INFO] [stdout] test source_session::tests::session_stream_matches_whole_source_with_all_supported_matchers ... ok
[INFO] [stdout] test source_session::tests::session_stream_matches_whole_source_with_single_byte_transport ... ok
[INFO] [stdout] test source_session::tests::sessions_keep_stream_matcher_state_independent ... ok
[INFO] [stdout] test source_session::tests::sessions_share_immutable_compiled_configuration ... ok
[INFO] [stdout] test source_session::tests::source_offset_carried_scalar_uses_full_callback_length ... ok
[INFO] [stdout] test source_session::tests::session_rejects_rule_set_with_unsupported_streaming_pattern ... ok
[INFO] [stdout] test source_session::tests::source_offset_empty_input_does_not_overflow ... ok
[INFO] [stdout] test source_session::tests::source_offset_exact_boundary_can_complete ... ok
[INFO] [stdout] test source_session::tests::source_offset_guard_preserves_first_candidate_failure ... ok
[INFO] [stdout] test source_session::tests::source_offset_later_callback_checks_updated_absolute_end ... ok
[INFO] [stdout] test source_session::tests::source_offset_near_boundary_incomplete_utf8_retains_transport_semantics ... ok
[INFO] [stdout] test source_session::tests::source_offset_overflow_precedes_all_matchers_and_preserves_findings ... ok
[INFO] [stdout] test source_session::tests::source_offset_overflow_skips_later_callbacks_and_precedes_transport_error ... ok
[INFO] [stdout] test source_session::tests::source_session_streams_all_supported_matcher_kinds_across_chunks ... ok
[INFO] [stdout] test source_session::tests::storage_admission_accepts_exact_requirement_and_rejects_one_byte_less ... ok
[INFO] [stdout] test source_session::tests::storage_admission_preserves_terminal_candidate_failures_in_chunk_and_eof ... ok
[INFO] [stdout] test source_session::tests::source_offset_guard_preserves_ordinary_utf8_offsets_and_eof_parity ... ok
[INFO] [stdout] test source_session::tests::dense_coordinate_lookup_uses_per_rule_cursors_and_linear_work ... ok
[INFO] [stdout] test source_session::tests::storage_admission_preserves_terminal_utf8_failure ... ok
[INFO] [stdout] test source_session::tests::storage_admission_preserves_unsupported_ruleset_error ... ok
[INFO] [stdout] test source_session::tests::streamed_suffix_is_equivalent_across_every_byte_partition ... ok
[INFO] [stdout] test source_session::tests::streamed_suffix_is_equivalent_across_every_two_chunk_partition ... ok
[INFO] [stdout] test source_session::tests::streamed_suffix_matches_whole_source_semantics ... ok
[INFO] [stdout] test source_session::tests::text_anchor_streaming_preserves_absolute_end ... ok
[INFO] [stdout] test source_session::tests::text_anchor_streaming_does_not_rebase_source_start ... ok
[INFO] [stdout] test source_session::tests::text_anchor_streaming_preserves_absolute_start ... ok
[INFO] [stdout] test source_session::tests::validated_admission_keeps_raw_context_support_and_all_existing_gates ... ok
[INFO] [stdout] test source_session::tests::text_anchor_streaming_preserves_both_absolute_anchors ... ok
[INFO] [stdout] test source_session::tests::validated_candidates_match_whole_source_decisions_across_all_byte_splits ... ok
[INFO] [stdout] test source_session::tests::validated_history_storage_admission_and_large_callbacks_are_bounded ... ok
[INFO] [stdout] test source_session::tests::validated_execution_failures_are_terminal_including_eof_budget ... ok
[INFO] [stdout] test source_session::tests::word_boundary_streaming_preserves_ascii_semantics ... ok
[INFO] [stdout] test source_session::tests::mixed_required_absolute_line_trimming_parity ... ok
[INFO] [stdout] test source_session::tests::word_boundary_streaming_preserves_directional_boundaries ... ok
[INFO] [stdout] test source_session::tests::line_anchor_streaming_repeated_trimming_parity ... ok
[INFO] [stdout] test source_session::tests::word_boundary_streaming_preserves_negated_boundaries ... ok
[INFO] [stdout] test source_session::tests::word_boundary_streaming_preserves_non_overlapping_matches ... ok
[INFO] [stdout] test source_session::tests::word_boundary_streaming_preserves_unicode_semantics ... ok
[INFO] [stdout] test stream::tests::absolute_anchors_and_suffix_token_bounds_preserve_complete_reports ... ok
[INFO] [stdout] test compiled_rule::multi_pattern_tests::bounded_regex_internal_windows_preserve_large_chunk_parity ... ok
[INFO] [stdout] test stream::tests::admitted_unicode_and_delimited_prefix_needles_preserve_report_parity ... ok
[INFO] [stdout] test stream::tests::all_44_validator_dispatch_kinds_preserve_full_report_decisions ... ok
[INFO] [stdout] test stream::tests::complete_report_matcher_matrix_empty_captures_and_overlap_suppression ... ok
[INFO] [stdout] test stream::tests::complete_report_structural_boundaries_coordinates_and_eof ... ok
[INFO] [stdout] test stream::tests::complete_report_validator_confidence_priority_and_deferred_validation ... ok
[INFO] [stdout] test stream::tests::debug_redaction_input_reuse_and_session_independence ... ok
[INFO] [stdout] test source_session::tests::word_boundary_streaming_preserves_leftmost_selection ... ok
[INFO] [stdout] test source_session::tests::storage_admitted_and_unlimited_sessions_preserve_utf8_and_eof_parity ... ok
[INFO] [stdout] test stream::tests::individually_admitted_builtins_have_positive_complete_report_parity ... ok
[INFO] [stdout] test stream::tests::raw_budget_counts_rejections_independently_of_results_across_chunks ... ok
[INFO] [stdout] test stream::tests::retained_limit_precedes_append_and_cannot_be_refunded_by_finalization ... ok
[INFO] [stdout] test stream::tests::terminal_error_mapping_preserves_distinct_checked_failures ... ok
[INFO] [stdout] test stream::tests::transport_failures_and_first_execution_error_are_terminal ... ok
[INFO] [stdout] test stream::tests::large_callback_limits_stop_before_retaining_many_results ... ok
[INFO] [stdout] test transform::pseudonymization::tests::different_keys_produce_different_pseudonyms ... ok
[INFO] [stdout] test transform::pseudonymization::tests::different_values_produce_different_pseudonyms ... ok
[INFO] [stdout] test transform::pseudonymization::tests::digest_length_is_clamped_to_safe_bounds ... ok
[INFO] [stdout] test transform::pseudonymization::tests::empty_report_preserves_source_exactly ... ok
[INFO] [stdout] test transform::pseudonymization::tests::original_value_does_not_survive_transformation ... ok
[INFO] [stdout] test transform::pseudonymization::tests::overlap_is_rejected ... ok
[INFO] [stdout] test transform::pseudonymization::tests::prefix_and_digest_length_are_configurable ... ok
[INFO] [stdout] test transform::pseudonymization::tests::rule_identity_does_not_change_pseudonym_identity ... ok
[INFO] [stdout] test transform::pseudonymization::tests::same_value_and_key_produce_same_pseudonym ... ok
[INFO] [stdout] test transform::pseudonymization::tests::utf8_values_are_pseudonymized_by_exact_bytes ... ok
[INFO] [stdout] test source_session::tests::word_boundary_streaming_preserves_context_after_repeated_trimming ... ok
[INFO] [stdout] test transform::redact::tests::adjacent_spans_remain_distinct ... ok
[INFO] [stdout] test transform::redact::tests::empty_report_preserves_source_exactly ... ok
[INFO] [stdout] test transform::redact::tests::overlapping_spans_are_merged_safely ... ok
[INFO] [stdout] test transform::redact::tests::duplicate_spans_emit_one_marker ... ok
[INFO] [stdout] test transform::redact::tests::redacts_multiple_spans_without_changing_other_text ... ok
[INFO] [stdout] test transform::redact::tests::redacts_one_span_with_safe_default ... ok
[INFO] [stdout] test transform::redact::tests::secret_text_is_absent_from_output ... ok
[INFO] [stdout] test transform::redact::tests::supports_custom_replacement ... ok
[INFO] [stdout] test transform::share_bundle::tests::builder_requires_explicit_mode ... ok
[INFO] [stdout] test transform::share_bundle::tests::consuming_accessors_return_owned_bundle_components ... ok
[INFO] [stdout] test transform::share_bundle::tests::pseudonymization_mode_routes_options_without_storing_key_in_manifest ... ok
[INFO] [stdout] test transform::share_bundle::tests::redaction_bundle_preserves_keys_and_summary ... ok
[INFO] [stdout] test transform::share_bundle::tests::source_count_must_match_results ... ok
[INFO] [stdout] test transform::share_bundle::tests::source_length_change_is_rejected ... ok
[INFO] [stdout] test transform::share_bundle::tests::synthesis_mode_routes_options ... ok
[INFO] [stdout] test source_session::tests::word_boundary_streaming_differential_regression ... ok
[INFO] [stdout] test transform::share_bundle::tests::template_mode_routes_to_template_transformation ... ok
[INFO] [stdout] test stream::tests::zero_limits_and_eof_only_result_exhaustion ... ok
[INFO] [stdout] test transform::synthesize::tests::aws_access_key_preserves_prefix_but_is_not_uppercase_digit_only ... ok
[INFO] [stdout] test transform::synthesize::tests::custom_rules_keep_the_generic_deterministic_fallback ... ok
[INFO] [stdout] test transform::synthesize::tests::custom_marker_is_normalized ... ok
[INFO] [stdout] test transform::synthesize::tests::empty_report_preserves_source ... ok
[INFO] [stdout] test transform::synthesize::tests::financial_opt_in_builtins_have_explicit_synthesis_semantics ... ok
[INFO] [stdout] test transform::synthesize::tests::different_keys_produce_different_synthetic_values ... ok
[INFO] [stdout] test transform::synthesize::tests::every_current_builtin_has_explicit_synthesis_semantics ... ok
[INFO] [stdout] test transform::synthesize::tests::generic_values_are_explicitly_marked_synthetic ... ok
[INFO] [stdout] test transform::synthesize::tests::github_shape_preserves_family_prefix ... ok
[INFO] [stdout] test transform::synthesize::tests::otp_provisioning_secret_uses_explicit_invalid_contextual_synthesis ... ok
[INFO] [stdout] test transform::synthesize::tests::personal_opt_in_builtins_have_explicit_synthesis_semantics ... ok
[INFO] [stdout] test transform::synthesize::tests::short_values_still_include_keyed_material ... ok
[INFO] [stdout] test transform::synthesize::tests::original_secret_bytes_do_not_survive ... ok
[INFO] [stdout] test transform::synthesize::tests::overlaps_are_rejected ... ok
[INFO] [stdout] test transform::synthesize::tests::synthesis_is_deterministic_for_key_rule_and_span ... ok
[INFO] [stdout] test transform::synthesize::tests::synthesis_span_hashing_uses_target_independent_width ... ok
[INFO] [stdout] test transform::synthesize::tests::stripe_shape_preserves_prefix_and_length_but_breaks_validator_alphabet ... ok
[INFO] [stdout] test transform::synthesize::tests::synthetic_card_verification_code_preserves_width_and_is_intentionally_invalid ... ok
[INFO] [stdout] test transform::synthesize::tests::synthetic_iban_preserves_shape_and_is_intentionally_invalid ... ok
[INFO] [stdout] test transform::synthesize::tests::synthesized_card_verification_code_is_not_rediscovered_by_financial_scanner ... ok
[INFO] [stdout] test transform::synthesize::tests::synthetic_pan_preserves_numeric_shape_and_fails_luhn ... ok
[INFO] [stdout] test transform::template::tests::adjacent_findings_remain_independent ... ok
[INFO] [stdout] test transform::template::tests::empty_namespace_falls_back_to_cribra ... ok
[INFO] [stdout] test transform::template::tests::empty_report_preserves_source_exactly ... ok
[INFO] [stdout] test transform::synthesize::tests::synthesized_pan_is_not_rediscovered_by_financial_scanner ... ok
[INFO] [stdout] test transform::synthesize::tests::synthesized_iban_is_not_rediscovered_by_financial_scanner ... ok
[INFO] [stdout] test transform::template::tests::normalizes_unsafe_placeholder_components ... ok
[INFO] [stdout] test transform::template::tests::preserves_text_outside_findings ... ok
[INFO] [stdout] test transform::template::tests::matched_secret_never_appears_in_placeholder ... ok
[INFO] [stdout] test transform::template::tests::numbering_is_deterministic_per_rule ... ok
[INFO] [stdout] test transform::template::tests::overlapping_findings_are_rejected_as_ambiguous ... ok
[INFO] [stdout] test transform::template::tests::supports_custom_namespace ... ok
[INFO] [stdout] test transform::tests::detects_overlapping_spans_for_strict_transformations ... ok
[INFO] [stdout] test transform::tests::rejects_non_utf8_boundary_span ... ok
[INFO] [stdout] test transform::tests::rejects_out_of_bounds_span ... ok
[INFO] [stdout] test transform::template::tests::replaces_value_with_rule_placeholder ... ok
[INFO] [stdout] test transform::tests::validates_and_sorts_spans ... ok
[INFO] [stdout] test utf8_transport::tests::complete_input_is_delivered ... ok
[INFO] [stdout] test utf8_transport::tests::complete_utf8_requires_no_carry ... ok
[INFO] [stdout] test utf8_transport::tests::delivery_is_invariant_across_every_single_split ... ok
[INFO] [stdout] test utf8_transport::tests::empty_fragment_does_not_finalize_pending_scalar ... ok
[INFO] [stdout] test utf8_transport::tests::empty_fragments_are_no_ops ... ok
[INFO] [stdout] test utf8_transport::tests::incomplete_utf8_is_rejected_only_at_end_of_source ... ok
[INFO] [stdout] test utf8_transport::tests::incomplete_utf8_end_of_source_is_invariant_across_every_split ... ok
[INFO] [stdout] test utf8_transport::tests::empty_fragments_do_not_change_pending_coordinates_or_completion ... ok
[INFO] [stdout] test utf8_transport::tests::malformed_utf8_crossing_transport_boundary_is_rejected ... ok
[INFO] [stdout] test utf8_transport::tests::malformed_utf8_is_rejected ... ok
[INFO] [stdout] test utf8_transport::tests::malformed_utf8_failure_is_invariant_across_every_split ... ok
[INFO] [stdout] test utf8_transport::tests::reconstructed_scalar_precedes_same_fragment_remainder ... ok
[INFO] [stdout] test utf8_transport::tests::single_byte_delivery_reconstructs_original_source ... ok
[INFO] [stdout] test utf8_transport::tests::single_byte_partition_accepts_valid_utf8 ... ok
[INFO] [stdout] test utf8_transport::tests::split_multibyte_scalar_is_reconstructed ... ok
[INFO] [stdout] test utf8_transport::tests::split_scalar_is_delivered_exactly_once ... ok
[INFO] [stdout] test validators::contextual::aws::tests::recognizes_long_term_and_temporary_access_key_ids ... ok
[INFO] [stdout] test validators::contextual::aws::tests::rejects_placeholder_secret ... ok
[INFO] [stdout] test validators::contextual::aws::tests::requires_context_for_secret_access_keys ... ok
[INFO] [stdout] test validators::contextual::azure::tests::recognizes_client_secret_with_context ... ok
[INFO] [stdout] test validators::contextual::azure::tests::bare_client_secret_is_not_attributed_to_azure ... ok
[INFO] [stdout] test validators::contextual::azure::tests::rejects_secret_without_context_or_placeholder ... ok
[INFO] [stdout] test validators::contextual::card_verification_code::tests::accepts_three_and_four_digit_codes_in_explicit_context ... ok
[INFO] [stdout] test validators::contextual::azure::tests::recognizes_storage_account_key ... ok
[INFO] [stdout] test validators::contextual::card_verification_code::tests::rejects_non_numeric_and_wrong_width_values ... ok
[INFO] [stdout] test validators::contextual::card_verification_code::tests::rejects_weak_or_unrelated_context ... ok
[INFO] [stdout] test validators::contextual::cargo_registry::tests::recognizes_default_registry_token ... ok
[INFO] [stdout] test validators::contextual::cargo_registry::tests::recognizes_named_registry_environment_token ... ok
[INFO] [stdout] test validators::contextual::cargo_registry::tests::recognizes_named_registry_token ... ok
[INFO] [stdout] test validators::contextual::cargo_registry::tests::rejects_malformed_named_registry_environment_key ... ok
[INFO] [stdout] test validators::contextual::cargo_registry::tests::recognizes_default_registry_environment_token ... ok
[INFO] [stdout] test validators::contextual::cargo_registry::tests::rejects_placeholder_values ... ok
[INFO] [stdout] test validators::contextual::composer::tests::bearer_does_not_accept_http_basic_password ... ok
[INFO] [stdout] test validators::contextual::composer::tests::bearer_does_not_cross_sibling_object_boundaries ... ok
[INFO] [stdout] test validators::contextual::composer::tests::does_not_cross_sibling_object_boundaries ... ok
[INFO] [stdout] test validators::contextual::cargo_registry::tests::rejects_unrelated_token_field ... ok
[INFO] [stdout] test validators::contextual::composer::tests::http_basic_does_not_accept_bearer_token ... ok
[INFO] [stdout] test validators::contextual::composer::tests::handles_json_structural_characters_inside_strings ... ok
[INFO] [stdout] test validators::contextual::composer::tests::recognizes_bearer_token ... ok
[INFO] [stdout] test validators::contextual::composer::tests::recognizes_forgejo_token ... ok
[INFO] [stdout] test validators::contextual::composer::tests::rejects_empty_repository_identity ... ok
[INFO] [stdout] test validators::contextual::composer::tests::recognizes_bitbucket_consumer_secret ... ok
[INFO] [stdout] test validators::contextual::composer::tests::rejects_generic_password_object ... ok
[INFO] [stdout] test validators::contextual::composer::tests::recognizes_http_basic_password ... ok
[INFO] [stdout] test validators::contextual::composer::tests::rejects_placeholders ... ok
[INFO] [stdout] test validators::contextual::composer::tests::rejects_unattributed_bearer_like_token ... ok
[INFO] [stdout] test validators::contextual::database_connection::tests::accepts_valid_percent_encoded_passwords ... ok
[INFO] [stdout] test validators::contextual::database_connection::tests::recognizes_supported_database_connection_schemes ... ok
[INFO] [stdout] test validators::contextual::composer::tests::rejects_unrelated_password_section ... ok
[INFO] [stdout] test validators::contextual::docker_registry::tests::recognizes_auth_inside_docker_auths_registry_entry ... ok
[INFO] [stdout] test validators::contextual::composer::tests::rejects_unattributed_provider_credentials ... ok
[INFO] [stdout] test validators::contextual::database_connection::tests::rejects_placeholders_and_malformed_percent_encoding ... ok
[INFO] [stdout] test stream::tests::large_full_report_and_long_lived_prefix_parity ... ok
[INFO] [stdout] test validators::contextual::docker_registry::tests::recognizes_multiple_sibling_registry_entries_independently ... ok
[INFO] [stdout] test validators::contextual::gcp::tests::recognizes_service_account_private_key ... ok
[INFO] [stdout] test validators::contextual::docker_registry::tests::rejects_invalid_and_documentation_credentials ... ok
[INFO] [stdout] test validators::contextual::gcp::tests::recognizes_service_account_private_key_id ... ok
[INFO] [stdout] test validators::contextual::generic::tests::recognizes_client_secret_as_generic_secret ... ok
[INFO] [stdout] test validators::contextual::gcp::tests::rejects_private_key_id_without_field_context ... ok
[INFO] [stdout] test validators::contextual::docker_registry::tests::rejects_auth_outside_docker_auths_structure ... ok
[INFO] [stdout] test validators::contextual::generic::tests::rejects_unrelated_field_and_placeholder ... ok
[INFO] [stdout] test validators::contextual::gradle::tests::accepts_non_placeholder_passwords_with_similar_text ... ok
[INFO] [stdout] test validators::contextual::generic::tests::recognizes_explicit_api_key_field ... ok
[INFO] [stdout] test validators::contextual::gradle::tests::recognizes_repository_auth_header_value_environment_property ... ok
[INFO] [stdout] test validators::contextual::gradle::tests::recognizes_repository_password_environment_property ... ok
[INFO] [stdout] test validators::contextual::gradle::tests::rejects_empty_repository_identity ... ok
[INFO] [stdout] test validators::contextual::gradle::tests::rejects_non_gradle_password_property ... ok
[INFO] [stdout] test validators::contextual::gradle::tests::rejects_placeholder_passwords ... ok
[INFO] [stdout] test validators::contextual::hash::tests::ignores_generic_checksums ... ok
[INFO] [stdout] test validators::contextual::hash::tests::classifies_sensitive_sha256_hash ... ok
[INFO] [stdout] test validators::contextual::http_basic::tests::accepts_valid_basic_credentials ... ok
[INFO] [stdout] test validators::contextual::http_basic::tests::rejects_invalid_structure_and_documentation_examples ... ok
[INFO] [stdout] test validators::contextual::http_basic::tests::rejects_non_authorization_context ... ok
[INFO] [stdout] test validators::contextual::maven::tests::recognizes_cleartext_password_inside_server_credentials ... ok
[INFO] [stdout] test validators::contextual::maven::tests::rejects_legacy_encrypted_password ... ok
[INFO] [stdout] test validators::contextual::maven::tests::rejects_maven4_protected_password ... ok
[INFO] [stdout] test validators::contextual::maven::tests::rejects_password_outside_servers ... ok
[INFO] [stdout] test validators::contextual::maven::tests::rejects_placeholders ... ok
[INFO] [stdout] test validators::contextual::netrc::tests::does_not_cross_record_boundaries ... ok
[INFO] [stdout] test validators::contextual::netrc::tests::accepts_common_mixed_whitespace_layout ... ok
[INFO] [stdout] test validators::contextual::netrc::tests::ignores_keywords_inside_comments ... ok
[INFO] [stdout] test validators::contextual::netrc::tests::recognizes_multiline_machine_record ... ok
[INFO] [stdout] test validators::contextual::context::tests::exposes_candidate_and_utf8_safe_surrounding_windows ... ok
[INFO] [stdout] test validators::contextual::netrc::tests::rejects_incomplete_machine_records ... ok
[INFO] [stdout] test validators::contextual::netrc::tests::recognizes_single_line_machine_record ... ok
[INFO] [stdout] test validators::contextual::nhs_number::tests::accepts_canonical_spaced_and_hyphenated_representations ... ok
[INFO] [stdout] test validators::contextual::netrc::tests::reusable_password_validation_preserves_netrc_record_semantics ... ok
[INFO] [stdout] test validators::contextual::netrc::tests::rejects_placeholders_and_documentation_values ... ok
[INFO] [stdout] test validators::contextual::nhs_number::tests::accepts_checksum_valid_compact_nhs_number_in_explicit_context ... ok
[INFO] [stdout] test validators::contextual::nhs_number::tests::rejects_bare_checksum_valid_nhs_number ... ok
[INFO] [stdout] test validators::contextual::nhs_number::tests::rejects_invalid_checksum ... ok
[INFO] [stdout] test validators::contextual::nhs_number::tests::rejects_known_placeholders ... ok
[INFO] [stdout] test validators::contextual::nhs_number::tests::rejects_noncanonical_formatting ... ok
[INFO] [stdout] test validators::contextual::nhs_number::tests::rejects_unrelated_or_weak_context ... ok
[INFO] [stdout] test validators::contextual::npm_registry::tests::recognizes_registry_scoped_auth ... ok
[INFO] [stdout] test validators::contextual::nhs_number::tests::rejects_wrong_digit_count_and_non_digits ... ok
[INFO] [stdout] test validators::contextual::npm_registry::tests::recognizes_registry_scoped_auth_token ... ok
[INFO] [stdout] test validators::contextual::npm_registry::tests::recognizes_registry_scoped_password ... ok
[INFO] [stdout] test validators::contextual::npm_registry::tests::rejects_documentation_auth_pair ... ok
[INFO] [stdout] test validators::contextual::npm_registry::tests::rejects_placeholders_and_malformed_encoded_credentials ... ok
[INFO] [stdout] test validators::contextual::nuget::tests::accepts_a_complete_credentials_region ... ok
[INFO] [stdout] test validators::contextual::nuget::tests::rejects_context_outside_or_inside_comments ... ok
[INFO] [stdout] test validators::contextual::nuget::tests::rejects_placeholder_values ... ok
[INFO] [stdout] test validators::contextual::otp::tests::accepts_lowercase_base32_in_authoritative_context ... ok
[INFO] [stdout] test validators::contextual::otp::tests::accepts_secret_as_first_or_later_otpauth_query_parameter ... ok
[INFO] [stdout] test validators::contextual::otp::tests::accepts_hotp_secret_in_explicit_configuration_context ... ok
[INFO] [stdout] test validators::contextual::otp::tests::accepts_secret_in_totp_otpauth_uri ... ok
[INFO] [stdout] test validators::contextual::otp::tests::accepts_secret_in_hotp_otpauth_uri ... ok
[INFO] [stdout] test validators::contextual::otp::tests::rejects_bare_base32_secret ... ok
[INFO] [stdout] test validators::contextual::otp::tests::accepts_totp_secret_in_explicit_configuration_context ... ok
[INFO] [stdout] test validators::contextual::otp::tests::accepts_valid_canonical_base32_padding ... ok
[INFO] [stdout] test validators::contextual::otp::tests::rejects_generic_secret_context ... ok
[INFO] [stdout] test validators::contextual::otp::tests::rejects_short_or_invalid_base32 ... ok
[INFO] [stdout] test validators::contextual::otp::tests::rejects_unrelated_otpauth_query_parameter ... ok
[INFO] [stdout] test validators::contextual::otp::tests::rejects_non_otp_otpauth_scheme_or_type ... ok
[INFO] [stdout] test validators::contextual::otp::tests::rejects_obvious_placeholders_in_authoritative_context ... ok
[INFO] [stdout] test validators::contextual::pan::tests::accepts_luhn_valid_pan_in_explicit_card_context ... ok
[INFO] [stdout] test validators::contextual::pan::tests::rejects_invalid_luhn_value ... ok
[INFO] [stdout] test validators::contextual::pan::tests::rejects_non_numeric_and_out_of_range_values ... ok
[INFO] [stdout] test validators::contextual::password::tests::recognizes_password_and_database_password_fields ... ok
[INFO] [stdout] test validators::contextual::otp::tests::rejects_invalid_base32_padding ... ok
[INFO] [stdout] test validators::contextual::password::tests::rejects_placeholders_and_unrelated_fields ... ok
[INFO] [stdout] test validators::contextual::pypi::tests::does_not_cross_ini_section_boundaries ... ok
[INFO] [stdout] test validators::contextual::pypi::tests::recognizes_custom_repository_token_section ... ok
[INFO] [stdout] test validators::contextual::pypi::tests::recognizes_default_pypi_token_section ... ok
[INFO] [stdout] test validators::contextual::rubygems::tests::recognizes_host_api_key ... ok
[INFO] [stdout] test validators::contextual::pan::tests::rejects_unrelated_or_weak_context ... ok
[INFO] [stdout] test validators::contextual::pypi::tests::recognizes_testpypi_token_section ... ok
[INFO] [stdout] test validators::contextual::rubygems::tests::rejects_unrelated_api_key_field ... ok
[INFO] [stdout] test validators::contextual::rubygems::tests::rejects_placeholder ... ok
[INFO] [stdout] test validators::contextual::pypi::tests::rejects_unrelated_password_sections ... ok
[INFO] [stdout] test validators::contextual::pypi::tests::rejects_placeholders ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::accepts_structurally_valid_ssn_in_explicit_context ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::rejects_noncanonical_formatting ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::accepts_area_boundaries_that_remain_structurally_possible ... ok
[INFO] [stdout] test validators::contextual::rubygems::tests::yields_to_structurally_valid_rubygems_api_key ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::rejects_zero_group ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::rejects_wrong_digit_count_and_non_digits ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::rejects_bare_structurally_valid_ssn ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::rejects_invalid_area_numbers ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::rejects_unrelated_or_weak_context ... ok
[INFO] [stdout] test validators::contextual::ssn::tests::rejects_zero_serial ... ok
[INFO] [stdout] test validators::contextual::swiftpm::tests::accepts_non_placeholder_values_with_similar_text ... ok
[INFO] [stdout] test validators::contextual::swiftpm_netrc::tests::recognizes_later_machine_record_inside_multiline_payload ... ok
[INFO] [stdout] test validators::contextual::swiftpm_netrc::tests::rejects_incomplete_record_inside_swiftpm_container ... ok
[INFO] [stdout] test validators::contextual::swiftpm_netrc::tests::recognizes_password_inside_quoted_swiftpm_netrc_data ... ok
[INFO] [stdout] test validators::contextual::swiftpm::tests::rejects_swiftpm_documentation_placeholders ... ok
[INFO] [stdout] test validators::contextual::swiftpm_netrc::tests::rejects_placeholder_password ... ok
[INFO] [stdout] test validators::contextual::swiftpm_netrc::tests::rejects_suffixed_container_name ... ok
[INFO] [stdout] test validators::contextual::swiftpm_netrc::tests::rejects_prefixed_container_name ... ok
[INFO] [stdout] test validators::contextual::utils::tests::extracts_common_configuration_keys ... ok
[INFO] [stdout] test validators::contextual::utils::tests::finds_keywords_without_allocating ... ok
[INFO] [stdout] test validators::contextual::swiftpm_netrc::tests::rejects_netrc_record_outside_swiftpm_container ... ok
[INFO] [stdout] test validators::contextual::wireguard::tests::recognizes_private_and_preshared_keys_in_correct_sections ... ok
[INFO] [stdout] test validators::contextual::wireguard::tests::rejects_keys_outside_the_required_wireguard_section ... ok
[INFO] [stdout] test validators::contextual::wireguard::tests::rejects_invalid_key_structure_and_zero_placeholder ... ok
[INFO] [stdout] test validators::deterministic::cloudflare::tests::accepts_current_scannable_formats ... ok
[INFO] [stdout] test validators::contextual::system_password_verifier::tests::recognizes_htpasswd_bcrypt ... ok
[INFO] [stdout] test validators::deterministic::cloudflare::tests::rejects_legacy_unprefixed_tokens ... ok
[INFO] [stdout] test validators::deterministic::cloudflare::tests::rejects_non_hex_checksum ... ok
[INFO] [stdout] test validators::contextual::utils::tests::normalizes_key_separators_and_case ... ok
[INFO] [stdout] test validators::deterministic::cloudflare::tests::rejects_wrong_body_or_checksum_length ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::accepts_structurally_valid_codice_fiscale ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_invalid_encoded_day ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_invalid_month_code ... ok
[INFO] [stdout] test validators::contextual::system_password_verifier::tests::recognizes_htpasswd_apr1 ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::accepts_valid_omocodic_codice_fiscale ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_invalid_birthplace_structure ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_lowercase ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_wrong_control_character ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_invalid_omocodia_letter_in_numeric_position ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_numeric_eleven_character_tax_identifier ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_invalid_name_encoding ... ok
[INFO] [stdout] test validators::deterministic::codice_fiscale::tests::rejects_wrong_length ... ok
[INFO] [stdout] test validators::deterministic::github::tests::accepts_documented_opaque_prefixes ... ok
[INFO] [stdout] test validators::deterministic::gitlab::tests::does_not_infer_custom_self_managed_prefixes ... ok
[INFO] [stdout] test validators::deterministic::github::tests::rejects_placeholders_and_invalid_shapes ... ok
[INFO] [stdout] test validators::deterministic::github::tests::accepts_stateless_installation_shape ... ok
[INFO] [stdout] test validators::deterministic::gitlab::tests::rejects_placeholders_invalid_payloads_and_unknown_prefixes ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::accepts_registry_print_examples ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::accepts_registry_electronic_examples ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::country_length_table_covers_registry_snapshot ... ok
[INFO] [stdout] test validators::deterministic::gitlab::tests::accepts_supported_gitlab_prefixes ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::rejects_invalid_alphabet ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::rejects_lowercase ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::rejects_unsupported_whitespace_and_spacing ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::rejects_unknown_country ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::rejects_wrong_country_length ... ok
[INFO] [stdout] test validators::deterministic::jwt::tests::accepts_three_segment_compact_jws ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::rejects_checksum_preserving_country_mismatch_through_length_authority ... ok
[INFO] [stdout] test validators::deterministic::jwt::tests::rejects_invalid_base64url_characters ... ok
[INFO] [stdout] test validators::deterministic::jwt::tests::rejects_non_json_like_header_prefix ... ok
[INFO] [stdout] test validators::deterministic::jwt::tests::rejects_two_or_four_segments ... ok
[INFO] [stdout] test validators::deterministic::iban::tests::rejects_invalid_check_digits ... ok
[INFO] [stdout] test validators::deterministic::jwt::tests::rejects_empty_signature ... ok
[INFO] [stdout] test validators::deterministic::nats::tests::accepts_supported_seed_types ... ok
[INFO] [stdout] test validators::deterministic::nats::tests::rejects_invalid_checksum ... ok
[INFO] [stdout] test validators::deterministic::nats::tests::accepts_encoded_private_key ... ok
[INFO] [stdout] test validators::deterministic::nats::tests::rejects_public_nkeys ... ok
[INFO] [stdout] test validators::deterministic::nats::tests::rejects_wrong_length ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::accepts_valid_leap_day ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::accepts_either_sex_encoding ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::accepts_valid_pesel_across_supported_centuries ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::rejects_day_zero ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::rejects_non_ascii_digits ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::rejects_wrong_checksum ... ok
[INFO] [stdout] test validators::deterministic::nats::tests::rejects_invalid_base32_and_case_changed_values ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::rejects_impossible_calendar_dates ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::rejects_invalid_encoded_month ... ok
[INFO] [stdout] test validators::deterministic::pesel::tests::rejects_wrong_length ... ok
[INFO] [stdout] test validators::deterministic::rubygems::tests::rejects_documentation_and_identifier_near_misses ... ok
[INFO] [stdout] test validators::deterministic::rubygems::tests::rejects_short_and_malformed_values ... ok
[INFO] [stdout] test validators::deterministic::rubygems::tests::accepts_structurally_valid_api_keys ... ok
[INFO] [stdout] test validators::deterministic::slack::tests::accepts_documented_token_prefixes ... ok
[INFO] [stdout] test validators::deterministic::slack::tests::rejects_empty_segments_and_invalid_characters ... ok
[INFO] [stdout] test validators::deterministic::stripe::tests::rejects_invalid_alphabet ... ok
[INFO] [stdout] test validators::deterministic::stripe::tests::accepts_documented_secret_prefixes ... ok
[INFO] [stdout] test validators::deterministic::stripe::tests::rejects_publishable_keys ... ok
[INFO] [stdout] test validators::deterministic::slack::tests::rejects_placeholders ... ok
[INFO] [stdout] test validators::deterministic::stripe::tests::rejects_short_or_placeholder_payloads ... ok
[INFO] [stdout] test validators::deterministic::tailscale::tests::recognizes_supported_credential_families ... ok
[INFO] [stdout] test validators::deterministic::tailscale::tests::rejects_unknown_and_case_changed_prefixes ... ok
[INFO] [stdout] test validators::deterministic::telegram::tests::accepts_documented_shape ... ok
[INFO] [stdout] test validators::deterministic::slack::tests::rejects_unknown_prefix ... ok
[INFO] [stdout] test validators::deterministic::telegram::tests::rejects_invalid_shapes ... ok
[INFO] [stdout] test validators::dispatch::tests::accepts_unvalidated_candidates_with_fallback_confidence ... ok
[INFO] [stdout] test validators::deterministic::tailscale::tests::rejects_missing_or_malformed_payloads ... ok
[INFO] [stdout] test validators::deterministic::tailscale::tests::rejects_documentation_placeholders ... ok
[INFO] [stdout] test validators::dispatch::tests::dispatches_deterministic_validator ... ok
[INFO] [stdout] test validators::dispatch::tests::dispatches_card_verification_code_contextual_validator ... ok
[INFO] [stdout] test validators::dispatch::tests::dispatches_gitlab_deterministic_validator ... ok
[INFO] [stdout] test validators::dispatch::tests::dispatches_pan_contextual_validator ... ok
[INFO] [stdout] test validators::dispatch::tests::dispatches_iban_validator ... ok
[INFO] [stdout] test validators::dispatch::tests::dispatches_contextual_validator ... ok
[INFO] [stdout] test validators::dispatch::tests::streaming_requirements_cover_all_current_validators_deterministically ... ok
[INFO] [stdout] test validators::dispatch::tests::validator_kinds_expose_their_detection_mode ... ok
[INFO] [stdout] test validators::utils::tests::accepts_non_placeholder_values_with_similar_text ... ok
[INFO] [stdout] test validators::utils::tests::rejects_angle_bracket_documentation_placeholders ... ok
[INFO] [stdout] test validators::utils::tests::rejects_obvious_placeholders ... ok
[INFO] [stdout] test validators::utils::tests::rejects_placeholders_case_insensitively ... ok
[INFO] [stdout] test validators::utils::tests::validates_ascii_decimal_values ... ok
[INFO] [stdout] test validators::utils::tests::validates_base64url_segments ... ok
[INFO] [stdout] test source_session::tests::line_anchor_crlf_repeated_trimming_parity ... ok
[INFO] [stdout] test scanner_builder::tests::builtins_accept_borrowed_catalog_slice ... ok
[INFO] [stdout] test scanner::tests::exposes_metadata_for_compiled_builtin_rules ... ok
[INFO] [stdout] test scanner::tests::default_scanner_contains_builtin_rules ... ok
[INFO] [stdout] test scanner::tests::emits_ambiguous_candidates_separately_from_findings ... ok
[INFO] [stdout] test stream::tests::admission_exact_storage_and_unsupported_portfolios ... ok
[INFO] [stdout] test compiled_rule::builtin_streaming_compatibility_tests::builtin_portfolio_streaming_compatibility_audit ... ok
[INFO] [stdout] test incremental_session::tests::full_portfolios_and_mixed_validators_have_report_parity_after_every_edit ... ok
[INFO] [stdout] test scanner::tests::dense_fixture_diagnostics ... ok
[INFO] [stdout] test source_session::tests::audit_projected_empty_and_delayed_capture_pending_cardinality ... ok
[INFO] [stdout] test source_session::tests::dense_pending_candidates_obey_per_rule_and_payload_bounds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 699 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.65s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ambiguous.rs (/opt/rustwide/target/release/build/cribra/3a68a20b110a0f40/out/ambiguous-3a68a20b110a0f40)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test explicit_rule_promotes_same_span_to_finding ... ok
[INFO] [stdout] test candidate_only_report_is_not_transformed_automatically ... ok
[INFO] [stdout] test summary_distinguishes_review_findings_and_clear_sources ... ok
[INFO] [stdout] test ambiguous_fixture_produces_candidates_without_findings ... ok
[INFO] [stdout] test isolated_recovery_like_value_is_review_only ... ok
[INFO] [stdout] test ambiguous_candidates_preserve_source_order_and_coordinates ... ok
[INFO] [stdout] test false_positive_fixture_has_no_findings_or_candidates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.70s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/builtins.rs (/opt/rustwide/target/release/build/cribra/37d03b7e96cc721a/out/builtins-37d03b7e96cc721a)
[INFO] [stdout] 
[INFO] [stdout] running 178 tests
[INFO] [stdout] test contextual_builtins_project_only_the_secret_value ... ok
[INFO] [stdout] test composer_bearer_token_detects_repository_credential ... ok
[INFO] [stdout] test composer_bearer_token_rejects_unattributed_values ... ok
[INFO] [stdout] test composer_bitbucket_consumer_secret_detects_repository_credential ... ok
[INFO] [stdout] test composer_http_basic_password_detects_repository_credential ... ok
[INFO] [stdout] test composer_forgejo_token_detects_repository_credential ... ok
[INFO] [stdout] test database_connection_password_preserves_percent_encoded_source_value ... ok
[INFO] [stdout] test database_connection_password_detects_supported_uri_schemes ... ok
[INFO] [stdout] test deterministic_builtins_detect_realistic_synthetic_values ... ok
[INFO] [stdout] test developer_credentials_are_in_current_pack ... ok
[INFO] [stdout] test database_connection_password_preserves_encoded_delimiters_and_exact_span ... ok
[INFO] [stdout] test docker_registry_auth_detects_config_json_credentials ... ok
[INFO] [stdout] test contextual_builtins_are_equivalent_across_common_config_syntaxes ... ok
[INFO] [stdout] test financial_card_verification_code_accepts_explicit_normalized_contexts ... ok
[INFO] [stdout] test docker_registry_auth_detects_multiple_registry_entries ... ok
[INFO] [stdout] test database_connection_password_rejects_malformed_percent_encoding ... ok
[INFO] [stdout] test financial_card_verification_code_rejects_wrong_width_and_longer_numeric_tokens ... ok
[INFO] [stdout] test financial_card_verification_code_reports_exact_span_and_metadata ... ok
[INFO] [stdout] test financial_iban_accepts_punctuation_boundaries_without_including_them ... ok
[INFO] [stdout] test financial_iban_is_detected_before_following_prose ... ok
[INFO] [stdout] test financial_card_verification_code_requires_explicit_context ... ok
[INFO] [stdout] test financial_iban_print_representation_is_not_discovered_yet ... ok
[INFO] [stdout] test docker_registry_auth_rejects_unrelated_auth_and_credential_helpers ... ok
[INFO] [stdout] test financial_iban_rejects_invalid_checksum ... ok
[INFO] [stdout] test financial_iban_rejects_alphanumeric_adjacency ... ok
[INFO] [stdout] test financial_iban_rejects_unknown_country ... ok
[INFO] [stdout] test financial_iban_reports_exact_electronic_span ... ok
[INFO] [stdout] test database_connection_password_rejects_non_credential_uris_and_near_misses ... ok
[INFO] [stdout] test financial_pan_accepts_explicit_normalized_card_contexts ... ok
[INFO] [stdout] test financial_pan_accepts_punctuation_boundaries_without_including_them ... ok
[INFO] [stdout] test financial_pan_does_not_extract_from_longer_numeric_tokens ... ok
[INFO] [stdout] test financial_pan_formatted_representations_are_not_discovered_yet ... ok
[INFO] [stdout] test financial_pan_is_network_agnostic ... ok
[INFO] [stdout] test contextual_placeholders_and_unrelated_fields_are_rejected_across_syntaxes ... ok
[INFO] [stdout] test financial_pan_rejects_invalid_luhn_checksum ... ok
[INFO] [stdout] test financial_pan_rejects_values_outside_supported_length_range ... ok
[INFO] [stdout] test financial_pan_reports_exact_compact_span_and_metadata ... ok
[INFO] [stdout] test financial_pan_requires_explicit_card_context ... ok
[INFO] [stdout] test findings_are_sorted_and_unicode_locations_remain_correct ... ok
[INFO] [stdout] test financial_pack_preserves_financial_rule_ownership_when_composed_with_default_builtins ... ok
[INFO] [stdout] test gcp_escaped_private_key_rejects_incomplete_or_unrelated_values ... ok
[INFO] [stdout] test gcp_json_builtin_detects_escaped_private_key ... ok
[INFO] [stdout] test financial_pack_composes_with_default_builtins_without_joining_default_pack ... ok
[INFO] [stdout] test gcp_json_builtins_detect_projected_fields ... ok
[INFO] [stdout] test gcp_private_key_outranks_generic_pkcs8_for_the_same_span ... ok
[INFO] [stdout] test gcp_private_key_rules_preserve_raw_and_escaped_source_semantics ... ok
[INFO] [stdout] test gitlab_builtins_detect_supported_standard_prefixes ... ok
[INFO] [stdout] test gitlab_builtins_reject_placeholders_short_values_and_unknown_prefixes ... ok
[INFO] [stdout] test gradle_repository_auth_header_value_detects_environment_credential ... ok
[INFO] [stdout] test gradle_repository_credentials_reject_unattributed_properties ... ok
[INFO] [stdout] test gradle_repository_password_has_expected_public_semantics ... ok
[INFO] [stdout] test htpasswd_password_verifier_detects_supported_families ... ok
[INFO] [stdout] test htpasswd_password_verifier_projects_only_the_verifier ... ok
[INFO] [stdout] test htpasswd_password_verifier_rejects_standalone_and_malformed_values ... ok
[INFO] [stdout] test maven_server_password_wins_generic_password_collision ... ok
[INFO] [stdout] test maven_synthesis_is_invalid_under_normal_validation_on_rescan ... ok
[INFO] [stdout] test nats_nkey_private_keys_detect_supported_ed25519_private_material ... ok
[INFO] [stdout] test nats_nkey_seeds_detect_supported_key_families ... ok
[INFO] [stdout] test nats_nkey_synthesis_is_invalid_under_normal_validation_on_rescan ... ok
[INFO] [stdout] test nats_nkeys_reject_corrupted_or_noncanonical_material ... ok
[INFO] [stdout] test nats_public_nkeys_are_not_sensitive_findings ... ok
[INFO] [stdout] test netrc_password_detects_complete_machine_credentials ... ok
[INFO] [stdout] test netrc_password_does_not_cross_machine_record_boundaries ... ok
[INFO] [stdout] test netrc_password_projects_only_the_password_value ... ok
[INFO] [stdout] test netrc_password_rejects_incomplete_and_unrelated_password_text ... ok
[INFO] [stdout] test netrc_password_rejects_placeholders_and_documentation_values ... ok
[INFO] [stdout] test financial_pan_is_opt_in_and_not_part_of_default_scanner ... ok
[INFO] [stdout] test cargo_registry_environment_tokens_are_detected ... ok
[INFO] [stdout] test financial_card_verification_code_is_opt_in_and_not_part_of_default_scanner ... ok
[INFO] [stdout] test cargo_registry_token_detects_default_registry ... ok
[INFO] [stdout] test cargo_registry_rule_wins_generic_token_collision ... ok
[INFO] [stdout] test cargo_registry_tokens_project_only_the_secret_value ... ok
[INFO] [stdout] test npm_registry_auth_token_detects_scoped_registry_credentials ... ok
[INFO] [stdout] test financial_iban_is_opt_in_and_not_part_of_default_scanner ... ok
[INFO] [stdout] test gradle_repository_password_wins_generic_password_collision ... ok
[INFO] [stdout] test bare_google_style_client_secret_is_detected_generically ... ok
[INFO] [stdout] test cargo_registry_rejects_unrelated_token_fields ... ok
[INFO] [stdout] test cargo_registry_rejects_placeholders ... ok
[INFO] [stdout] test nuget_environment_credentials_are_explicitly_not_classified_as_nuget ... ok
[INFO] [stdout] test nuget_cleartext_password_rejects_protected_outside_and_malformed_values ... ok
[INFO] [stdout] test otp_provisioning_secret_exposes_contextual_detection_metadata ... ok
[INFO] [stdout] test nuget_cleartext_password_projects_only_the_value ... ok
[INFO] [stdout] test otp_provisioning_secret_projects_only_secret_from_hotp_uri ... ok
[INFO] [stdout] test otp_provisioning_secret_rejects_bare_base32_material ... ok
[INFO] [stdout] test otp_provisioning_secret_rejects_non_otp_uri_context ... ok
[INFO] [stdout] test nuget_context_does_not_leak_across_closed_regions_or_comments ... ok
[INFO] [stdout] test otp_provisioning_secret_supports_explicit_otp_fields ... ok
[INFO] [stdout] test nuget_synthesis_is_invalid_under_normal_validation_on_rescan ... ok
[INFO] [stdout] test personal_codice_fiscale_accepts_punctuation_boundaries_without_including_them ... ok
[INFO] [stdout] test personal_codice_fiscale_accepts_valid_omocodic_representation ... ok
[INFO] [stdout] test cargo_registry_token_detects_named_registry ... ok
[INFO] [stdout] test personal_codice_fiscale_does_not_claim_eleven_digit_tax_identifiers ... ok
[INFO] [stdout] test personal_codice_fiscale_exposes_deterministic_detection_metadata ... ok
[INFO] [stdout] test otp_provisioning_secret_is_part_of_default_security_portfolio ... ok
[INFO] [stdout] test personal_codice_fiscale_rejects_structurally_invalid_candidates ... ok
[INFO] [stdout] test personal_codice_fiscale_is_opt_in_and_not_part_of_default_scanner ... ok
[INFO] [stdout] test personal_nhs_number_exposes_contextual_detection_metadata ... ok
[INFO] [stdout] test personal_codice_fiscale_rejects_alphanumeric_adjacency ... ok
[INFO] [stdout] test personal_nhs_number_preserves_formatted_source_span ... ok
[INFO] [stdout] test personal_nhs_number_rejects_bare_checksum_valid_value ... ok
[INFO] [stdout] test personal_codice_fiscale_reports_exact_span_and_metadata ... ok
[INFO] [stdout] test personal_nhs_number_rejects_invalid_values_and_noncanonical_formatting ... ok
[INFO] [stdout] test personal_nhs_number_reports_exact_compact_span_and_metadata ... ok
[INFO] [stdout] test personal_nhs_number_rejects_unrelated_context ... ok
[INFO] [stdout] test personal_nhs_number_rejects_alphanumeric_adjacency ... ok
[INFO] [stdout] test personal_nhs_number_is_opt_in_and_not_part_of_default_scanner ... ok
[INFO] [stdout] test password_fields_stop_at_newlines ... ok
[INFO] [stdout] test personal_pesel_accepts_punctuation_boundaries_without_including_them ... ok
[INFO] [stdout] test personal_pesel_exposes_deterministic_detection_metadata ... ok
[INFO] [stdout] test personal_pesel_is_opt_in_and_not_part_of_default_scanner ... ok
[INFO] [stdout] test personal_pesel_rejects_alphanumeric_adjacency ... ok
[INFO] [stdout] test personal_pesel_rejects_structurally_invalid_candidates ... ok
[INFO] [stdout] test password_fields_do_not_require_matching_surrounding_quotes ... ok
[INFO] [stdout] test developer_credential_rules_expose_expected_public_metadata ... ok
[INFO] [stdout] test personal_ssn_exposes_contextual_detection_metadata ... ok
[INFO] [stdout] test otp_provisioning_secret_projects_only_secret_from_totp_uri ... ok
[INFO] [stdout] test current_pack_is_public_and_compiles_as_one_scanner ... ok
[INFO] [stdout] test personal_ssn_is_opt_in_and_not_part_of_default_scanner ... ok
[INFO] [stdout] test personal_ssn_preserves_compact_and_hyphenated_source_spans ... ok
[INFO] [stdout] test personal_ssn_rejects_alphanumeric_adjacency ... ok
[INFO] [stdout] test personal_pesel_reports_exact_span_and_metadata ... ok
[INFO] [stdout] test otp_provisioning_secret_outranks_generic_secret_for_same_span ... ok
[INFO] [stdout] test personal_ssn_rejects_bare_structurally_valid_values ... ok
[INFO] [stdout] test personal_ssn_rejects_structurally_impossible_values ... ok
[INFO] [stdout] test pgp_private_key_detects_complete_ascii_armored_block ... ok
[INFO] [stdout] test personal_ssn_reports_exact_span_and_metadata ... ok
[INFO] [stdout] test personal_ssn_rejects_unrelated_context ... ok
[INFO] [stdout] test pgp_private_key_rejects_public_incomplete_short_and_mismatched_blocks ... ok
[INFO] [stdout] test pgp_private_key_supports_crlf_armored_blocks ... ok
[INFO] [stdout] test pgp_private_key_remains_independent_from_other_private_key_families ... ok
[INFO] [stdout] test private_key_builtins_detect_complete_pem_blocks ... ok
[INFO] [stdout] test private_key_builtins_reject_incomplete_or_mismatched_pem_blocks ... ok
[INFO] [stdout] test npm_registry_legacy_auth_and_password_are_structurally_validated ... ok
[INFO] [stdout] test pypi_repository_token_is_in_current_pack ... ok
[INFO] [stdout] test pypi_repository_token_projects_only_token_value ... ok
[INFO] [stdout] test rubygems_credentials_are_in_current_pack ... ok
[INFO] [stdout] test rubygems_credentials_file_key_is_detected ... ok
[INFO] [stdout] test rubygems_host_api_key_detects_custom_server_key ... ok
[INFO] [stdout] test pypi_repository_token_does_not_cross_sections ... ok
[INFO] [stdout] test rubygems_prefixed_api_key_is_detected_without_context ... ok
[INFO] [stdout] test rubygems_specific_rule_wins_collision ... ok
[INFO] [stdout] test pypi_repository_token_rejects_ordinary_repository_passwords ... ok
[INFO] [stdout] test password_fields_do_not_include_trailing_whitespace_in_the_finding ... ok
[INFO] [stdout] test pypi_repository_token_detects_default_and_custom_sections ... ok
[INFO] [stdout] test pypi_repository_rule_wins_generic_password_collision ... ok
[INFO] [stdout] test pgp_private_key_redaction_replaces_the_entire_armored_block ... ok
[INFO] [stdout] test full_pack_detects_expected_provider_specific_rules ... ok
[INFO] [stdout] test shadow_password_verifier_rejects_locked_and_unsupported_fields ... ok
[INFO] [stdout] test shadow_password_verifier_detects_supported_crypt_families ... ok
[INFO] [stdout] test password_fields_support_quoted_values_with_internal_whitespace ... ok
[INFO] [stdout] test shadow_password_verifier_rejects_non_shadow_context ... ok
[INFO] [stdout] test shadow_password_verifier_projects_only_the_verifier_field ... ok
[INFO] [stdout] test swiftpm_netrc_password_does_not_claim_plain_netrc ... ok
[INFO] [stdout] test swiftpm_registry_login_is_not_a_credential_rule ... ok
[INFO] [stdout] test npm_registry_credentials_reject_unscoped_and_non_secret_configuration ... ok
[INFO] [stdout] test swiftpm_netrc_data_detects_each_machine_password ... ok
[INFO] [stdout] test swiftpm_netrc_password_does_not_cross_record_boundaries ... ok
[INFO] [stdout] test placeholders_and_unrelated_hashes_are_rejected ... ok
[INFO] [stdout] test tailscale_credentials_are_detected_without_context ... ok
[INFO] [stdout] test tailscale_credentials_expose_deterministic_detection_metadata ... ok
[INFO] [stdout] test tailscale_malformed_and_placeholder_credentials_remain_clean ... ok
[INFO] [stdout] test wireguard_credentials_detect_realistic_configuration_fields ... ok
[INFO] [stdout] test wireguard_credentials_reject_base64_without_correct_wireguard_context ... ok
[INFO] [stdout] test system_password_verifier_rules_do_not_cross_record_formats ... ok
[INFO] [stdout] test swiftpm_registry_password_detects_environment_credential ... ok
[INFO] [stdout] test swiftpm_registry_token_detects_environment_credential ... ok
[INFO] [stdout] test swiftpm_netrc_password_rejects_incomplete_machine_records ... ok
[INFO] [stdout] test swiftpm_source_control_token_detects_environment_credential ... ok
[INFO] [stdout] test swiftpm_credentials_support_quoted_values_and_project_only_the_secret ... ok
[INFO] [stdout] test swiftpm_netrc_password_rejects_placeholders ... ok
[INFO] [stdout] test swiftpm_netrc_password_rejects_lookalike_container_names ... ok
[INFO] [stdout] test swiftpm_credentials_reject_unrelated_and_lookalike_variables ... ok
[INFO] [stdout] test swiftpm_credentials_reject_obvious_placeholders ... ok
[INFO] [stdout] test personal_pack_preserves_ssn_ownership_when_composed_with_default_builtins ... ok
[INFO] [stdout] test personal_pack_preserves_pesel_ownership_when_composed_with_default_builtins ... ok
[INFO] [stdout] test personal_pack_preserves_nhs_number_ownership_when_composed_with_default_builtins ... ok
[INFO] [stdout] test personal_pack_preserves_codice_fiscale_ownership_when_composed_with_default_builtins ... ok
[INFO] [stdout] test personal_pack_composes_with_default_builtins_without_joining_default_pack ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 178 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.97s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/contextual_contract.rs (/opt/rustwide/target/release/build/cribra/d9165b6ecbc510b9/out/contextual_contract-d9165b6ecbc510b9)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test authorization_basic_rejects_invalid_and_unrelated_base64 ... ok
[INFO] [stdout] test authorization_basic_remains_contextual_in_public_metadata ... ok
[INFO] [stdout] test authorization_basic_projects_only_the_encoded_credential ... ok
[INFO] [stdout] test authorization_bearer_projects_only_the_credential ... ok
[INFO] [stdout] test authorization_bearer_rejects_non_bearer_and_invalid_credentials ... ok
[INFO] [stdout] test authorization_bearer_remains_contextual_in_public_metadata ... ok
[INFO] [stdout] test bare_client_secret_is_generic_not_provider_specific ... ok
[INFO] [stdout] test isolated_contextual_values_are_not_inferred_as_findings ... ok
[INFO] [stdout] test explicit_azure_client_secret_remains_provider_specific ... ok
[INFO] [stdout] test contextual_false_positive_corpus_remains_empty ... ok
[INFO] [stdout] test contextual_rule_metadata_declares_contextual_detection ... ok
[INFO] [stdout] test contextual_semantics_are_format_invariant ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/custom_rules.rs (/opt/rustwide/target/release/build/cribra/a2085816a9afa2c1/out/custom_rules-a2085816a9afa2c1)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test custom_pattern_classifies_only_its_matched_span ... ok
[INFO] [stdout] test custom_rule_cannot_shadow_builtin_rule_identity ... ok
[INFO] [stdout] test custom_rule_order_is_preserved_in_metadata ... ok
[INFO] [stdout] test custom_literal_promotes_domain_knowledge_to_a_finding ... ok
[INFO] [stdout] test custom_rule_metadata_is_introspectable_before_and_after_compilation ... ok
[INFO] [stdout] test duplicate_custom_rule_ids_are_rejected_deterministically ... ok
[INFO] [stdout] test identical_custom_patterns_are_allowed_when_rule_ids_are_distinct ... ok
[INFO] [stdout] test multiple_custom_rules_compose_without_private_validator_access ... ok
[INFO] [stdout] test public_custom_pattern_uses_complete_match_span_not_capture_projection ... ok
[INFO] [stdout] test custom_pattern_supports_unicode_anchors_boundaries_and_alternation ... ok
[INFO] [stdout] test custom_rule_ids_and_matchers_are_validated_at_build_boundary ... ok
[INFO] [stdout] test custom_pattern_rejects_all_zero_length_capable_forms ... ok
[INFO] [stdout] test custom_rules_can_be_combined_with_borrowed_builtin_catalog ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/detection_corpus.rs (/opt/rustwide/target/release/build/cribra/6efaceb11d115af9/out/detection_corpus-6efaceb11d115af9)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test isolated_contextual_values_remain_unclassified ... ok
[INFO] [stdout] test ambiguous_corpus_is_review_only ... ok
[INFO] [stdout] test false_positive_corpus_remains_clean ... ok
[INFO] [stdout] test representative_positive_corpus_detects_expected_families ... ok
[INFO] [stdout] test batch_classification_keeps_failed_review_and_clean_sources_distinct ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/detection_corpus_adversarial.rs (/opt/rustwide/target/release/build/cribra/6e59b640c5d0076f/out/detection_corpus_adversarial-6e59b640c5d0076f)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test deterministic_finding_after_unicode_prefix_has_exact_byte_and_scalar_coordinates ... ok
[INFO] [stdout] test recovery_like_boundary_rules_accept_punctuation_but_reject_embedding ... ok
[INFO] [stdout] test base64_and_hash_like_noise_without_sensitive_context_remains_clean ... ok
[INFO] [stdout] test truncated_provider_shapes_are_not_promoted_when_isolated ... ok
[INFO] [stdout] test gitlab_near_miss_prefixes_and_placeholders_remain_clean ... ok
[INFO] [stdout] test nearby_classified_and_ambiguous_values_remain_separate_channels ... ok
[INFO] [stdout] test common_opaque_infrastructure_identifiers_remain_clean ... ok
[INFO] [stdout] test gitlab_standard_prefix_is_detected_without_context_but_custom_prefix_is_not ... ok
[INFO] [stdout] test malformed_database_connection_credentials_remain_clean ... ok
[INFO] [stdout] test database_connection_uris_without_password_remain_clean ... ok
[INFO] [stdout] test mixed_config_layouts_preserve_contextual_detector_semantics ... ok
[INFO] [stdout] test developer_credential_references_without_material_remain_clean ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.67s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/detection_corpus_collisions.rs (/opt/rustwide/target/release/build/cribra/22fa9bb95911e21e/out/detection_corpus_collisions-22fa9bb95911e21e)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test multiple_findings_on_one_line_are_sorted_by_source_position ... ok
[INFO] [stdout] test equal_priority_identical_custom_spans_are_ordered_by_rule_id_not_insertion_order ... ok
[INFO] [stdout] test partial_overlaps_remain_independently_observable_and_position_ordered ... ok
[INFO] [stdout] test v047_context_required_identifiers_do_not_promote_bare_values ... ok
[INFO] [stdout] test v047_families_preserve_semantic_ownership_when_composed ... ok
[INFO] [stdout] test custom_finding_promotes_ambiguous_span_and_suppresses_candidate ... ok
[INFO] [stdout] test v047_identifier_and_verifier_categories_do_not_collapse_into_generic_credentials ... ok
[INFO] [stdout] test gitlab_provider_finding_wins_over_generic_token_on_the_same_span ... ok
[INFO] [stdout] test nearby_non_overlapping_finding_and_candidate_remain_separate ... ok
[INFO] [stdout] test v047_security_references_placeholders_and_public_material_remain_clean ... ok
[INFO] [stdout] test v047_specific_security_rules_win_exact_span_generic_collisions ... ok
[INFO] [stdout] test v047_valid_security_material_survives_adversarial_surroundings_with_exact_spans ... ok
[INFO] [stdout] test v047_malformed_security_material_is_not_promoted ... ok
[INFO] [stdout] test v047_personal_and_financial_valid_values_keep_exact_semantic_ownership ... ok
[INFO] [stdout] test v047_structured_identifiers_reject_invalid_and_unrelated_near_misses ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.64s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/detection_corpus_formats.rs (/opt/rustwide/target/release/build/cribra/57cef3586ca07712/out/detection_corpus_formats-57cef3586ca07712)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test adjacent_classified_values_remain_independently_observable ... ok
[INFO] [stdout] test unicode_surrounding_text_does_not_change_detection_or_candidate_spans ... ok
[INFO] [stdout] test deterministic_secret_is_detected_at_start_and_end_of_input ... ok
[INFO] [stdout] test crlf_and_lf_preserve_equivalent_detection_semantics ... ok
[INFO] [stdout] test multiple_sources_keep_input_order_and_per_source_semantics ... ok
[INFO] [stdout] test equivalent_sensitive_content_is_format_agnostic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.68s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/display.rs (/opt/rustwide/target/release/build/cribra/2b3ca98c2b25df57/out/display-2b3ca98c2b25df57)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test finding_display_is_human_readable_without_exposing_secret_text ... ok
[INFO] [stdout] test scalar_display_is_plain_and_stable ... ok
[INFO] [stdout] test report_display_uses_one_plain_text_diagnostic_per_finding ... ok
[INFO] [stderr]      Running tests/explainability.rs (/opt/rustwide/target/release/build/cribra/25aeb45879faa9d3/out/explainability-25aeb45879faa9d3)
[INFO] [stdout] test manifest_display_composes_mode_and_existing_scan_summary ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test finding_explanation_is_derived_from_scanner_rule_authority ... ok
[INFO] [stdout] test confirmed_finding_suppresses_ambiguous_explanation_for_same_span ... ok
[INFO] [stdout] test unrelated_scanner_cannot_explain_a_classified_finding ... ok
[INFO] [stdout] test classified_and_ambiguous_results_use_distinct_explanation_variants ... ok
[INFO] [stdout] test candidate_explanation_is_derived_from_candidate_evidence ... ok
[INFO] [stdout] test candidate_explanation_does_not_require_scanner_lookup ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.70s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/explainability_api.rs (/opt/rustwide/target/release/build/cribra/231eeb93f8e210c7/out/explainability_api-231eeb93f8e210c7)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test explanation_public_helpers_are_consistent ... ok
[INFO] [stdout] test explanations_are_computed_not_stored_in_scan_results ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/golden.rs (/opt/rustwide/target/release/build/cribra/6c4ee45e43496f82/out/golden-6c4ee45e43496f82)
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/hardening.rs (/opt/rustwide/target/release/build/cribra/bb45afccf431f0b0/out/hardening-bb45afccf431f0b0)
[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] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test utf8_prefix_before_secret_preserves_scalar_column_contract ... ok
[INFO] [stdout] test many_repeated_findings_remain_complete_and_deterministic ... ok
[INFO] [stdout] test canonical_transformation_outputs_are_clean_when_rescanned ... ok
[INFO] [stdout] test transformation_output_never_reintroduces_detected_values ... ok
[INFO] [stdout] test crlf_positions_and_transforms_remain_stable ... ok
[INFO] [stdout] test canonical_corpus_is_repeatable_across_multiple_scans ... ok
[INFO] [stdout] test canonical_transformations_are_repeatable_for_every_input ... ok
[INFO] [stdout] test empty_input_is_clean_and_all_transformations_are_identity ... ok
[INFO] [stdout] test huge_single_line_preserves_locations_and_query_semantics ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/incremental.rs (/opt/rustwide/target/release/build/cribra/f751fb5b3896b6d5/out/incremental-f751fb5b3896b6d5)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test public_zero_raw_limit_accepts_nonmatching_input_and_fails_before_emission ... ok
[INFO] [stdout] test public_document_ownership_and_revisioned_utf8_edits ... ok
[INFO] [stdout] test public_resource_failure_is_terminal_and_preserves_complete_snapshot ... ok
[INFO] [stdout] test public_builtin_portfolios_are_incremental_independently_of_stream_admission ... ok
[INFO] [stderr]      Running tests/parallel.rs (/opt/rustwide/target/release/build/cribra/9d3defd5e19bf698/out/parallel-9d3defd5e19bf698)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.38s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/public_api.rs (/opt/rustwide/target/release/build/cribra/dca21f7604aedecc/out/public_api-dca21f7604aedecc)
[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] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test results_flatten_findings_with_their_source_keys ... ok
[INFO] [stdout] test literal_rule_matches_multiple_occurrences ... ok
[INFO] [stdout] test report_helpers_work ... ok
[INFO] [stdout] test batch_scan_preserves_keys_order_and_source_lengths ... ok
[INFO] [stdout] test empty_builder_reports_no_findings ... ok
[INFO] [stdout] test identical_needles_produce_multiple_findings ... ok
[INFO] [stdout] test overlapping_literals_are_reported ... ok
[INFO] [stdout] test unicode_columns_count_scalars ... ok
[INFO] [stdout] test scanner_is_reusable ... ok
[INFO] [stdout] test query_api_filters_sorts_and_exposes_convenience_helpers ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/public_api_contract.rs (/opt/rustwide/target/release/build/cribra/94bbfd2be0bb3ae2/out/public_api_contract-94bbfd2be0bb3ae2)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test custom_and_builtin_rules_are_composable ... ok
[INFO] [stdout] test selectable_builtins_are_external_consumer_accessible ... ok
[INFO] [stdout] test transform_namespace_is_external_consumer_accessible ... ok
[INFO] [stdout] test default_scanner_is_external_consumer_accessible ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/query.rs (/opt/rustwide/target/release/build/cribra/cf06b8fad4c94ba3/out/query-cf06b8fad4c94ba3)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test filter_order_is_independent_across_distinct_dimensions ... ok
[INFO] [stdout] test ascending_and_descending_rule_sort_are_exact_reverses_without_ties ... ok
[INFO] [stdout] test sorting_does_not_mutate_original_query_order ... ok
[INFO] [stdout] test source_sort_handles_duplicate_source_content_deterministically ... ok
[INFO] [stdout] test empty_and_single_match_queries_have_consistent_terminal_helpers ... ok
[INFO] [stdout] test query_handles_large_finding_sets ... ok
[INFO] [stdout] test later_severity_constraint_replaces_earlier_constraint ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/regressions.rs (/opt/rustwide/target/release/build/cribra/581918a7863245c2/out/regressions-581918a7863245c2)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test distinct_rule_ids_with_identical_needles_remain_distinct ... ok
[INFO] [stdout] test unicode_before_match_does_not_corrupt_byte_or_column_contract ... ok
[INFO] [stdout] test partial_overlaps_are_not_collapsed ... ok
[INFO] [stdout] test batch_results_preserve_input_order_with_empty_reports_between_matches ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/remediation_api.rs (/opt/rustwide/target/release/build/cribra/d04526b904f68989/out/remediation_api-d04526b904f68989)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test custom_rules_have_no_remediation_by_default ... ok
[INFO] [stdout] test custom_rules_can_attach_remediation ... ok
[INFO] [stdout] test builtin_remediation_survives_the_scan_pipeline ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/serde.rs (/opt/rustwide/target/release/build/cribra/f501ff75c97cb8e8/out/serde-f501ff75c97cb8e8)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/serde_boundary.rs (/opt/rustwide/target/release/build/cribra/20a4b0e8876da796/out/serde_boundary-20a4b0e8876da796)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/share_bundle.rs (/opt/rustwide/target/release/build/cribra/cb1596ff4303f47b/out/share_bundle-cb1596ff4303f47b)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test public_share_bundle_supports_every_share_mode ... ok
[INFO] [stdout] test scan_and_build_keeps_scan_and_transform_source_pairing_atomic ... ok
[INFO] [stdout] test public_share_bundle_transforms_multiple_sources_in_input_order ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/streaming.rs (/opt/rustwide/target/release/build/cribra/5f3740dfc258b64e/out/streaming-5f3740dfc258b64e)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test public_failure_contract_never_exposes_partial_completion ... ok
[INFO] [stdout] test public_session_is_send_and_returns_the_existing_report ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/transform_parity.rs (/opt/rustwide/target/release/build/cribra/e335b5158f3ee75c/out/transform_parity-e335b5158f3ee75c)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test non_synthesis_transforms_are_independent_of_rule_family ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/transform_pseudonymization.rs (/opt/rustwide/target/release/build/cribra/3de65dbbcb8724bb/out/transform_pseudonymization-3de65dbbcb8724bb)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test pseudonymization_does_not_embed_rule_or_secret ... ok
[INFO] [stderr]      Running tests/transform_redact.rs (/opt/rustwide/target/release/build/cribra/c59b490454433720/out/transform_redact-c59b490454433720)
[INFO] [stdout] test changing_pseudonymization_key_breaks_cross_run_linkability ... ok
[INFO] [stdout] test same_secret_across_sources_has_same_pseudonym ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test overlapping_public_findings_cannot_leak_partial_secret_text ... ok
[INFO] [stdout] test public_redaction_uses_scanner_spans ... ok
[INFO] [stdout] test public_redaction_supports_custom_markers ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/transform_synthesize.rs (/opt/rustwide/target/release/build/cribra/2d4fb0b3a61fcef2/out/transform_synthesize-2d4fb0b3a61fcef2)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test public_synthesis_rejects_ambiguous_overlaps ... ok
[INFO] [stdout] test public_synthesis_is_reproducible ... ok
[INFO] [stdout] test public_synthesis_preserves_known_provider_identity_without_original_value ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/transform_template.rs (/opt/rustwide/target/release/build/cribra/cd19bfb6e6d0c62a/out/transform_template-cd19bfb6e6d0c62a)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test public_template_uses_rule_identity_not_secret_value ... ok
[INFO] [stdout] test public_template_rejects_ambiguous_overlaps ... ok
[INFO] [stdout] test public_template_can_number_repeated_semantic_findings ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests cribra
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test src/redaction.rs - redaction::Redaction (line 18) ... ok
[INFO] [stdout] test src/transform/redact.rs - transform::redact::redact (line 26) ... ok
[INFO] [stdout] test src/rule.rs - rule::RuleId (line 30) ... ok
[INFO] [stdout] test src/lib.rs - (line 96) ... ok
[INFO] [stdout] test src/stream.rs - stream::StreamSession (line 196) ... ok
[INFO] [stdout] test src/scanner_builder.rs - scanner_builder::ScannerBuilder (line 113) ... ok
[INFO] [stdout] test src/scanner.rs - scanner::Scanner::incremental_session (line 89) ... ok
[INFO] [stdout] test src/transform/pseudonymization.rs - transform::pseudonymization::pseudonymize (line 101) ... ok
[INFO] [stdout] test src/transform/template.rs - transform::template::template (line 93) ... ok
[INFO] [stdout] test src/scanner.rs - scanner::Scanner::scan (line 178) ... ok
[INFO] [stdout] test src/lib.rs - (line 13) ... ok
[INFO] [stdout] test src/lib.rs - (line 69) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.81s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/stream.rs - stream::StreamSession (line 210) - compile fail ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.48s; merged doctests compilation took 0.58s
[INFO] running `Command { std: "docker" "inspect" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa", kill_on_drop: false }`
[INFO] [stdout] b2e22264ba091ee3234280416144e93732db79b21312c8f862f30a0f125fe6aa
