[INFO] fetching crate vellaveto-audit 6.1.1... [INFO] testing vellaveto-audit-6.1.1 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate vellaveto-audit 6.1.1 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate vellaveto-audit 6.1.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate vellaveto-audit 6.1.1 [INFO] tweaked toml for crates.io crate vellaveto-audit 6.1.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate vellaveto-audit 6.1.1 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate vellaveto-audit 6.1.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1af5ef5ef3cbd21b78a8b896719394c3e313faae0f8f1dc29c3e3ae5fca61ff4 [INFO] running `Command { std: "docker" "start" "-a" "1af5ef5ef3cbd21b78a8b896719394c3e313faae0f8f1dc29c3e3ae5fca61ff4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1af5ef5ef3cbd21b78a8b896719394c3e313faae0f8f1dc29c3e3ae5fca61ff4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1af5ef5ef3cbd21b78a8b896719394c3e313faae0f8f1dc29c3e3ae5fca61ff4", kill_on_drop: false }` [INFO] [stdout] 1af5ef5ef3cbd21b78a8b896719394c3e313faae0f8f1dc29c3e3ae5fca61ff4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 740f5bc9cc9335057c9f21e73d69ad9496658c53438637c3214b7f2f463dd83f [INFO] running `Command { std: "docker" "start" "-a" "740f5bc9cc9335057c9f21e73d69ad9496658c53438637c3214b7f2f463dd83f", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling ed25519 v2.2.3 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling ryu-js v1.0.2 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling ed25519-dalek v2.2.0 [INFO] [stderr] Compiling vellaveto-types v6.1.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_json_canonicalizer v0.3.2 [INFO] [stderr] Compiling vellaveto-audit v6.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.04s [INFO] running `Command { std: "docker" "inspect" "740f5bc9cc9335057c9f21e73d69ad9496658c53438637c3214b7f2f463dd83f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "740f5bc9cc9335057c9f21e73d69ad9496658c53438637c3214b7f2f463dd83f", kill_on_drop: false }` [INFO] [stdout] 740f5bc9cc9335057c9f21e73d69ad9496658c53438637c3214b7f2f463dd83f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 48d31f2188bb2e058dc223ff61af2d1dd6e2a0ccb184f942fab130d4e85c8534 [INFO] running `Command { std: "docker" "start" "-a" "48d31f2188bb2e058dc223ff61af2d1dd6e2a0ccb184f942fab130d4e85c8534", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling zerocopy-derive v0.8.42 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling criterion-plot v0.8.2 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_json_canonicalizer v0.3.2 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling vellaveto-types v6.1.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling criterion v0.8.2 [INFO] [stderr] Compiling proptest v1.10.0 [INFO] [stderr] Compiling vellaveto-audit v6.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 01s [INFO] running `Command { std: "docker" "inspect" "48d31f2188bb2e058dc223ff61af2d1dd6e2a0ccb184f942fab130d4e85c8534", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "48d31f2188bb2e058dc223ff61af2d1dd6e2a0ccb184f942fab130d4e85c8534", kill_on_drop: false }` [INFO] [stdout] 48d31f2188bb2e058dc223ff61af2d1dd6e2a0ccb184f942fab130d4e85c8534 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 67328332c24466d47e2d217d812014f7eb2f459b355a92aee89f0933f6c739b2 [INFO] running `Command { std: "docker" "start" "-a" "67328332c24466d47e2d217d812014f7eb2f459b355a92aee89f0933f6c739b2", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vellaveto_audit-d21bf84cc8e3cbfc) [INFO] [stdout] [INFO] [stdout] running 935 tests [INFO] [stdout] test access_review::tests::test_agent_id_fallback_to_tool ... ok [INFO] [stdout] test access_review::tests::test_cc6_counts ... ok [INFO] [stdout] test access_review::tests::test_empty_function_not_tracked ... ok [INFO] [stdout] test access_review::tests::test_html_escape_control_chars ... ok [INFO] [stdout] test access_review::tests::test_html_escape_function ... ok [INFO] [stdout] test access_review::tests::test_html_escape_unicode_format_chars ... ok [INFO] [stdout] test access_review::tests::test_html_structure ... ok [INFO] [stdout] test access_review::tests::test_html_escaping ... ok [INFO] [stdout] test access_review::tests::test_multiple_agents ... ok [INFO] [stdout] test access_review::tests::test_least_agency_data_present ... ok [INFO] [stdout] test access_review::tests::test_period_filtering ... ok [INFO] [stdout] test access_review::tests::test_internal_events_excluded ... ok [INFO] [stdout] test adversa_top25::tests::test_coverage_25_of_25 ... ok [INFO] [stdout] test adversa_top25::tests::test_coverage_matrix_output ... ok [INFO] [stdout] test access_review::tests::test_single_agent ... ok [INFO] [stdout] test access_review::tests::test_verdict_counting ... ok [INFO] [stdout] test adversa_top25::tests::test_default_trait ... ok [INFO] [stdout] test adversa_top25::tests::test_coverage_report_generation ... ok [INFO] [stdout] test adversa_top25::tests::test_serde_roundtrip_vulnerability ... ok [INFO] [stdout] test adversa_top25::tests::test_detection_to_vulnerability_mapping ... ok [INFO] [stdout] test adversa_top25::tests::test_all_25_vulnerabilities_present ... ok [INFO] [stdout] test adversa_top25::tests::test_invalid_rank_returns_none ... ok [INFO] [stdout] test adversa_top25::tests::test_severity_display ... ok [INFO] [stdout] test access_review::tests::test_least_agency_data_absent ... ok [INFO] [stdout] test adversa_top25::tests::test_serde_roundtrip_report ... ok [INFO] [stdout] test adversa_top25::tests::test_each_vulnerability_has_mitigations ... ok [INFO] [stdout] test adversa_top25::tests::test_registry_creation ... ok [INFO] [stdout] test access_review::tests::test_report_serde_roundtrip ... ok [INFO] [stdout] test access_review::tests::test_empty_entries ... ok [INFO] [stdout] test adversa_top25::tests::test_vulnerability_lookup_by_rank ... ok [INFO] [stdout] test aivss::tests::test_ai_multipliers_increase_score ... ok [INFO] [stdout] test aivss::tests::test_calculate_score ... ok [INFO] [stdout] test aivss::tests::test_report_generation ... ok [INFO] [stdout] test aivss::tests::test_severity_display ... ok [INFO] [stdout] test aivss::tests::test_severity_from_score ... ok [INFO] [stdout] test aivss::tests::test_vector_string_generation ... ok [INFO] [stdout] test aivss::tests::test_vector_string_parsing ... ok [INFO] [stdout] test aivss::tests::test_zero_impact_zero_score ... ok [INFO] [stdout] test analytics::tests::test_policy_analytics_empty_entries ... ok [INFO] [stdout] test analytics::tests::test_policy_analytics_entries_without_matched_policy ... ok [INFO] [stdout] test aivss::tests::test_invalid_vector_string ... ok [INFO] [stdout] test aivss::tests::test_profiles ... ok [INFO] [stdout] test aivss::tests::test_report_summary ... ok [INFO] [stdout] test aivss::tests::test_report_to_json ... ok [INFO] [stdout] test analytics::tests::test_summarize_empty_entries_returns_zeroes ... ok [INFO] [stdout] test analytics::tests::test_policy_analytics_never_matched_policies ... ok [INFO] [stdout] test analytics::tests::test_summarize_mixed_verdicts_correct_counts ... ok [INFO] [stdout] test analytics::tests::test_policy_analytics_verdict_breakdown ... ok [INFO] [stdout] test analytics::tests::test_policy_analytics_last_matched_timestamp ... ok [INFO] [stdout] test analytics::tests::test_summarize_top_denied_tools_ordering ... ok [INFO] [stdout] test analytics::tests::test_summarize_deny_rate_all_denied ... ok [INFO] [stdout] test analytics::tests::test_summarize_deny_reason_aggregation ... ok [INFO] [stdout] test analytics::tests::test_trends_hour_bucketing ... ok [INFO] [stdout] test analytics::tests::test_trends_invalid_timestamp_falls_back_to_epoch ... ok [INFO] [stdout] test analytics::tests::test_trends_sorted_ascending ... ok [INFO] [stdout] test annex_iv::tests::test_build_annex_iv_missing_frameworks ... ok [INFO] [stdout] test annex_iv::tests::test_build_annex_iv_with_custom_evidence ... ok [INFO] [stdout] test annex_iv::tests::test_section_status_values ... ok [INFO] [stdout] test article73::tests::test_build_incident_report_security_breach ... ok [INFO] [stdout] test article73::tests::test_offset_timestamp_invalid_fallback ... ok [INFO] [stdout] test article73::tests::test_offset_timestamp_valid ... ok [INFO] [stdout] test analytics::tests::test_trends_week_bucketing ... ok [INFO] [stdout] test analytics::tests::test_summarize_evaluations_per_tool ... ok [INFO] [stdout] test analytics::tests::test_summarize_top_n_capped_at_10 ... ok [INFO] [stdout] test analytics::tests::test_summarize_unique_agents_from_metadata ... ok [INFO] [stdout] test analytics::tests::test_trends_day_bucketing ... ok [INFO] [stdout] test analytics::tests::test_trends_empty_entries ... ok [INFO] [stdout] test analytics::tests::test_trends_large_dataset_1000_entries ... ok [INFO] [stdout] test atlas::tests::test_coverage_report ... ok [INFO] [stdout] test access_review::tests::test_deterministic_ordering ... ok [INFO] [stdout] test adversa_top25::tests::test_coverage_report_string ... ok [INFO] [stdout] test atlas::tests::test_all_detections_have_mappings ... ok [INFO] [stdout] test article73::tests::test_severity_capped_at_5 ... ok [INFO] [stdout] test article73::tests::test_build_incident_report_safety_incident ... ok [INFO] [stdout] test atlas::tests::test_get_technique ... ok [INFO] [stdout] test cosai::tests::test_category_display ... ok [INFO] [stdout] test atlas::tests::test_technique_to_detections ... ok [INFO] [stdout] test annex_iv::tests::test_build_annex_iv_complete ... ok [INFO] [stdout] test atlas::tests::test_coverage_report_string ... ok [INFO] [stdout] test atlas::tests::test_registry_creation ... ok [INFO] [stdout] test atlas::tests::test_detection_display ... ok [INFO] [stdout] test atlas::tests::test_add_atlas_metadata ... ok [INFO] [stdout] test atlas::tests::test_detection_to_technique_ids ... ok [INFO] [stdout] test atlas::tests::test_detection_to_techniques ... ok [INFO] [stdout] test cosai::tests::test_all_12_categories_populated ... ok [INFO] [stdout] test cosai::tests::test_coverage_above_90_percent ... ok [INFO] [stdout] test cosai::tests::test_coverage_report_generation ... ok [INFO] [stdout] test cosai::tests::test_coverage_report_string ... ok [INFO] [stdout] test atlas::tests::test_tactic_display ... ok [INFO] [stdout] test cosai::tests::test_serde_roundtrip_threat ... ok [INFO] [stdout] test data_governance::tests::test_default_retention_days ... ok [INFO] [stdout] test data_governance::tests::test_exact_match ... ok [INFO] [stdout] test data_governance::tests::test_generate_summary ... ok [INFO] [stdout] test cosai::tests::test_threats_for_detection ... ok [INFO] [stdout] test cosai::tests::test_threat_count ... ok [INFO] [stdout] test data_governance::tests::test_get_record_oversized_tool_name_returns_none ... ok [INFO] [stdout] test data_governance::tests::test_get_record_tool_name_exceeds_max_length ... ok [INFO] [stdout] test cosai::tests::test_get_threat_by_id ... ok [INFO] [stdout] test cosai::tests::test_registry_creation ... ok [INFO] [stdout] test data_governance::tests::test_get_record_tool_name_at_max_length ... ok [INFO] [stdout] test cosai::tests::test_serde_roundtrip_report ... ok [INFO] [stdout] test data_governance::tests::test_all_mappings ... ok [INFO] [stdout] test data_governance::tests::test_glob_match_http ... ok [INFO] [stdout] test data_governance::tests::test_glob_match_filesystem ... ok [INFO] [stdout] test analytics::tests::test_summarize_large_dataset_1000_entries ... ok [INFO] [stdout] test cosai::tests::test_coverage_report_all_categories_covered ... ok [INFO] [stdout] test cosai::tests::test_default_trait ... ok [INFO] [stdout] test data_governance::tests::test_registry_creation ... ok [INFO] [stdout] test data_governance::tests::test_provenance_populated ... ok [INFO] [stdout] test dora::tests::test_article_id_display ... ok [INFO] [stdout] test dora::tests::test_all_articles_present ... ok [INFO] [stdout] test dora::tests::test_compliance_status_display ... ok [INFO] [stdout] test dora::tests::test_capability_display ... ok [INFO] [stdout] test dora::tests::test_default_trait ... ok [INFO] [stdout] test dora::tests::test_generate_report ... ok [INFO] [stdout] test dora::tests::test_r216_007_dora_report_validate_nan_percentage ... ok [INFO] [stdout] test dora::tests::test_r216_004_empty_registry_returns_zero_percent ... ok [INFO] [stdout] test dora::tests::test_r216_007_dora_report_validate_out_of_range_percentage ... ok [INFO] [stdout] test cosai::tests::test_detections_for_threat ... ok [INFO] [stdout] test data_governance::tests::test_summary_serde_roundtrip ... ok [INFO] [stdout] test dora::tests::test_r216_007_dora_report_validate_valid ... ok [INFO] [stdout] test dora::tests::test_registry_creation ... ok [INFO] [stdout] test dora::tests::test_serde_roundtrip ... ok [INFO] [stdout] test eu_ai_act::tests::test_article_id_parsing ... ok [INFO] [stdout] test eu_ai_act::tests::test_classify_entry_approval_adds_art14 ... ok [INFO] [stdout] test eu_ai_act::tests::test_classify_entry_deny_adds_art9 ... ok [INFO] [stdout] test eu_ai_act::tests::test_compliance_status_display ... ok [INFO] [stdout] test eu_ai_act::tests::test_mappings_for_article ... ok [INFO] [stdout] test eu_ai_act::tests::test_generate_assessment_high_risk ... ok [INFO] [stdout] test eu_ai_act::tests::test_generate_assessment_minimal_risk ... ok [INFO] [stdout] test eu_ai_act::tests::test_obligation_populated ... ok [INFO] [stdout] test data_governance::tests::test_glob_match_vellaveto ... ok [INFO] [stdout] test data_governance::tests::test_no_match ... ok [INFO] [stdout] test eu_ai_act::tests::test_mappings_for_capability ... ok [INFO] [stdout] test dora::tests::test_coverage_above_50_percent ... ok [INFO] [stdout] test eu_ai_act::tests::test_registry_creation ... ok [INFO] [stdout] test eu_ai_act::tests::test_classify_entry_all_provide_art12 ... ok [INFO] [stdout] test events::tests::test_log_circuit_breaker_rejected_produces_deny ... ok [INFO] [stdout] test etdi_audit::tests::test_log_etdi_unsigned_tool_allowed ... ok [INFO] [stdout] test etdi_audit::tests::test_log_etdi_signature_failed_produces_deny ... ok [INFO] [stdout] test events::tests::test_merge_details_safe_adds_non_reserved_keys ... ok [INFO] [stdout] test events::tests::test_merge_details_safe_blocks_all_reserved_keys ... ok [INFO] [stdout] test events::tests::test_merge_details_safe_blocks_reserved_event_key ... ok [INFO] [stdout] test events::tests::test_merge_details_safe_non_object_details_ignored ... ok [INFO] [stdout] test events::tests::test_merge_details_safe_non_object_metadata_no_crash ... ok [INFO] [stdout] test evidence_pack::tests::test_all_packs_have_recommendations ... ok [INFO] [stdout] test evidence_pack::tests::test_coverage_within_range ... ok [INFO] [stdout] test etdi_audit::tests::test_log_etdi_version_drift_blocking_deny ... ok [INFO] [stdout] test evidence_pack::tests::test_generate_dora_pack ... ok [INFO] [stdout] test etdi_audit::tests::test_log_etdi_version_drift_non_blocking_allow ... ok [INFO] [stdout] test evidence_pack::tests::test_extract_article_number ... ok [INFO] [stdout] test evidence_pack::tests::test_generate_nis2_pack ... ok [INFO] [stdout] test evidence_pack::tests::test_generate_eu_ai_act_pack ... ok [INFO] [stdout] test evidence_pack::tests::test_render_html_contains_framework_name ... ok [INFO] [stdout] test events::tests::test_log_circuit_breaker_opened_produces_allow ... ok [INFO] [stdout] test etdi_audit::tests::test_log_etdi_unsigned_tool_blocked_deny ... ok [INFO] [stdout] test events::tests::test_log_heartbeat_creates_entry ... ok [INFO] [stdout] test etdi_audit::tests::test_log_etdi_version_drift_records_action_params ... ok [INFO] [stdout] test evidence_pack::tests::test_render_html_escapes_user_content ... ok [INFO] [stdout] test etdi_audit::tests::test_log_etdi_signature_verified_untrusted_deny ... ok [INFO] [stdout] test exec_graph::tests::test_add_node_duplicate_call_edge_deduplicated ... ok [INFO] [stdout] test evidence_pack::tests::test_generate_iso42001_pack ... ok [INFO] [stdout] test exec_graph::tests::test_add_node_nonexistent_parent_no_edge ... ok [INFO] [stdout] test evidence_pack::tests::test_serde_roundtrip ... ok [INFO] [stdout] test exec_graph::tests::test_duplicate_node_id_does_not_duplicate_edges ... ok [INFO] [stdout] test exec_graph::tests::test_cleanup_expired_no_timestamp_fail_closed ... ok [INFO] [stdout] test exec_graph::tests::test_duplicate_node_id_does_not_inflate_metadata ... ok [INFO] [stdout] test exec_graph::tests::test_escape_dot_bidi_override_stripped ... ok [INFO] [stdout] test exec_graph::tests::test_escape_dot_combined_adversarial_input ... ok [INFO] [stdout] test exec_graph::tests::test_escape_dot_function ... ok [INFO] [stdout] test exec_graph::tests::test_escape_dot_pipe_escaped ... ok [INFO] [stdout] test exec_graph::tests::test_execution_graph_add_node ... ok [INFO] [stdout] test exec_graph::tests::test_execution_graph_complete_node ... ok [INFO] [stdout] test exec_graph::tests::test_execution_graph_parent_child ... ok [INFO] [stdout] test exec_graph::tests::test_execution_graph_statistics ... ok [INFO] [stdout] test exec_graph::tests::test_execution_graph_store ... ok [INFO] [stdout] test exec_graph::tests::test_execution_graph_store_complete_node ... ok [INFO] [stdout] test exec_graph::tests::test_execution_graph_to_dot ... ok [INFO] [stdout] test exec_graph::tests::test_execution_node_completion ... ok [INFO] [stdout] test events::tests::test_log_shadow_agent_detected_produces_deny ... ok [INFO] [stdout] test exec_graph::tests::test_svg_escape_strips_bidi ... ok [INFO] [stdout] test exec_graph::tests::test_svg_escape_strips_null ... ok [INFO] [stdout] test exec_graph::tests::test_svg_truncate_long ... ok [INFO] [stdout] test exec_graph::tests::test_svg_truncate_short ... ok [INFO] [stdout] test exec_graph::tests::test_svg_truncate_unicode_boundary ... ok [INFO] [stdout] test exec_graph::tests::test_to_dot_bidi_tool_name_sanitized ... ok [INFO] [stdout] test exec_graph::tests::test_to_dot_escapes_special_characters ... ok [INFO] [stdout] test exec_graph::tests::test_to_svg_bidi_stripped ... ok [INFO] [stdout] test exec_graph::tests::test_to_svg_empty_graph ... ok [INFO] [stdout] test exec_graph::tests::test_to_svg_parent_child_edges ... ok [INFO] [stdout] test exec_graph::tests::test_to_svg_single_node ... ok [INFO] [stdout] test exec_graph::tests::test_to_svg_verdict_colors ... ok [INFO] [stdout] test exec_graph::tests::test_to_svg_xss_prevention ... ok [INFO] [stdout] test export::ocsf::tests::test_allow_event_mapping ... ok [INFO] [stdout] test export::ocsf::tests::test_approval_event_mapping ... ok [INFO] [stdout] test exec_graph::tests::test_execution_graph_store_list_sessions ... ok [INFO] [stdout] test export::ocsf::tests::test_deny_event_mapping ... ok [INFO] [stdout] test exec_graph::tests::test_execution_node_creation ... ok [INFO] [stdout] test exec_graph::tests::test_svg_escape_basic ... ok [INFO] [stdout] test export::ocsf::tests::test_json_output_contains_required_ocsf_fields ... ok [INFO] [stdout] test export::ocsf::tests::test_ocsf_json_roundtrip ... ok [INFO] [stdout] test exec_graph::tests::test_escape_dot_null_byte_stripped ... ok [INFO] [stdout] test export::ocsf::tests::test_ocsf_json_roundtrip_approval ... ok [INFO] [stdout] test export::ocsf::tests::test_ocsf_json_roundtrip_deny ... ok [INFO] [stdout] test export::ocsf::tests::test_severity_mapping ... ok [INFO] [stdout] test export::ocsf::tests::test_timestamp_parsing ... ok [INFO] [stdout] test export::tests::test_cef_deny_includes_reason ... ok [INFO] [stdout] test export::ocsf::tests::test_truncation_long_tool_name ... ok [INFO] [stdout] test export::ocsf::tests::test_type_uid_calculation ... ok [INFO] [stdout] test export::ocsf::tests::test_unmapped_fields_empty_when_defaults ... ok [INFO] [stdout] test export::ocsf::tests::test_unmapped_fields_populated ... ok [INFO] [stdout] test export::tests::test_cef_allow_has_no_reason ... ok [INFO] [stdout] test export::tests::test_cef_ext_escape_equals_sign ... ok [INFO] [stdout] test export::tests::test_cef_entry_with_equals_in_id ... ok [INFO] [stdout] test export::tests::test_cef_ext_escapes_pipe ... ok [INFO] [stdout] test export::tests::test_cef_escape_unicode_line_separators ... ok [INFO] [stdout] test export::tests::test_cef_ext_escape_backslash_and_newline ... ok [INFO] [stdout] test export::tests::test_cef_entry_with_special_chars_in_fields ... ok [INFO] [stdout] test export::tests::test_cef_escape_special_chars ... ok [INFO] [stdout] test export::tests::test_cef_format_allow_verdict ... ok [INFO] [stdout] test export::tests::test_cef_format_deny_verdict ... ok [INFO] [stdout] test export::tests::test_cef_header_does_not_escape_equals ... ok [INFO] [stdout] test export::tests::test_cef_severity_mapping ... ok [INFO] [stdout] test export::tests::test_export_format_from_str ... ok [INFO] [stdout] test export::tests::test_format_entries_batch ... ok [INFO] [stdout] test export::tests::test_json_lines_format ... ok [INFO] [stdout] test export::tests::test_r226_cef_timestamp_with_offset_unchanged ... ok [INFO] [stdout] test export::tests::test_r226_cef_timestamp_with_z_unchanged ... ok [INFO] [stdout] test export::tests::test_r35_sup_2_cef_multibyte_truncation ... ok [INFO] [stdout] test export::tests::test_r35_sup_2_truncate_bytes_ascii ... ok [INFO] [stdout] test export::tests::test_r35_sup_2_cef_multibyte_deny_reason_truncated ... ok [INFO] [stdout] test export::tests::test_r226_cef_timestamp_without_timezone_gets_z ... ok [INFO] [stdout] test export::tests::test_r36_sup_5_cef_header_name_multibyte_boundary ... ok [INFO] [stdout] test export::tests::test_r35_sup_2_truncate_bytes_no_truncation_needed ... ok [INFO] [stdout] test export::tests::test_r35_sup_2_cef_deny_reason_truncated ... ok [INFO] [stdout] test fria::tests::test_build_fria_export_full ... ok [INFO] [stdout] test export::tests::test_r36_sup_5_cef_header_name_short_not_truncated ... ok [INFO] [stdout] test export::tests::test_r36_sup_5_cef_header_name_truncated ... ok [INFO] [stdout] test fria::tests::test_build_fria_export_minimal ... ok [INFO] [stdout] test fria::tests::test_fria_data_protection_with_shield ... ok [INFO] [stdout] test events::tests::test_log_circuit_breaker_details_cannot_overwrite_event ... ok [INFO] [stdout] test gap_analysis::tests::test_each_framework_has_items ... ok [INFO] [stdout] test gap_analysis::tests::test_overall_coverage_above_90 ... ok [INFO] [stdout] test gap_analysis::tests::test_r216_006_deny_unknown_fields_framework_summary ... ok [INFO] [stdout] test gap_analysis::tests::test_r216_006_deny_unknown_fields_gap ... ok [INFO] [stdout] test gap_analysis::tests::test_all_10_frameworks_present ... ok [INFO] [stdout] test gap_analysis::tests::test_gap_analysis_generation ... ok [INFO] [stdout] test gap_analysis::tests::test_r216_006_gap_analysis_validate_nan_coverage ... ok [INFO] [stdout] test gap_analysis::tests::test_r216_006_gap_analysis_validate_out_of_range_coverage ... ok [INFO] [stdout] test incident_report::tests::test_deny_unknown_fields ... ok [INFO] [stdout] test incident_report::tests::test_requires_dora_24h_critical ... ok [INFO] [stdout] test incident_report::tests::test_requires_dora_24h_low_severity_false ... ok [INFO] [stdout] test incident_report::tests::test_serialization_roundtrip ... ok [INFO] [stdout] test incident_report::tests::test_triggered_regulations_none ... ok [INFO] [stdout] test incident_report::tests::test_validate_control_chars_rejected ... ok [INFO] [stdout] test incident_report::tests::test_validate_empty_id_rejected ... ok [INFO] [stdout] test gap_analysis::tests::test_serde_roundtrip ... ok [INFO] [stdout] test incident_report::tests::test_triggered_regulations_all_three ... ok [INFO] [stdout] test incident_report::tests::test_validate_too_many_findings_rejected ... ok [INFO] [stdout] test incident_report::tests::test_validate_valid_report ... ok [INFO] [stdout] test iso27090::tests::test_add_iso27090_metadata ... ok [INFO] [stdout] test iso27090::tests::test_assessment_summary ... ok [INFO] [stdout] test iso27090::tests::test_assessment_to_json ... ok [INFO] [stdout] test iso27090::tests::test_control_id_parsing ... ok [INFO] [stdout] test iso27090::tests::test_domain_readiness ... ok [INFO] [stdout] test iso27090::tests::test_generate_assessment ... ok [INFO] [stdout] test iso27090::tests::test_mappings_for_capability ... ok [INFO] [stdout] test iso27090::tests::test_priority_ordering ... ok [INFO] [stdout] test iso27090::tests::test_readiness_level_score ... ok [INFO] [stdout] test iso27090::tests::test_recommendations ... ok [INFO] [stdout] test iso27090::tests::test_registry_creation ... ok [INFO] [stdout] test iso42001::tests::test_all_major_clauses_populated ... ok [INFO] [stdout] test iso42001::tests::test_assessments_sorted ... ok [INFO] [stdout] test iso42001::tests::test_capability_display ... ok [INFO] [stdout] test iso42001::tests::test_clause_id_creation ... ok [INFO] [stdout] test iso42001::tests::test_compliance_percentage_range ... ok [INFO] [stdout] test iso42001::tests::test_compliance_status_display ... ok [INFO] [stdout] test iso27090::tests::test_domain_display ... ok [INFO] [stdout] test gap_analysis::tests::test_recommendations_generated ... ok [INFO] [stdout] test iso42001::tests::test_clause_content ... ok [INFO] [stdout] test iso42001::tests::test_clause_count ... ok [INFO] [stdout] test iso42001::tests::test_mappings_for_clause ... ok [INFO] [stdout] test iso42001::tests::test_registry_creation ... ok [INFO] [stdout] test iso42001::tests::test_serde_roundtrip_report ... ok [INFO] [stdout] test iso42001::tests::test_default_trait ... ok [INFO] [stdout] test iso42001::tests::test_generate_report ... ok [INFO] [stdout] test iso42001::tests::test_high_coverage ... ok [INFO] [stdout] test iso42001::tests::test_mappings_for_capability ... ok [INFO] [stdout] test merkle::tests::test_append_single_leaf ... ok [INFO] [stdout] test merkle::tests::test_hash_internal_deterministic ... ok [INFO] [stdout] test gap_analysis::tests::test_report_string ... ok [INFO] [stdout] test gap_analysis::tests::test_r216_006_gap_analysis_validate_valid ... ok [INFO] [stdout] test merkle::tests::test_hash_internal_order_matters ... ok [INFO] [stdout] test merkle::tests::test_hash_leaf_deterministic ... ok [INFO] [stdout] test merkle::tests::test_empty_tree_root_is_none ... ok [INFO] [stdout] test merkle::tests::test_hash_leaf_vs_hash_internal_different ... ok [INFO] [stdout] test merkle::tests::test_merkle_proof_deny_unknown_fields ... ok [INFO] [stdout] test merkle::tests::test_merkle_verification_deny_unknown_fields ... ok [INFO] [stdout] test merkle::tests::test_initialize_truncates_partial_write ... ok [INFO] [stdout] test merkle::tests::test_initialize_nonexistent_file_ok ... ok [INFO] [stdout] test etdi_audit::tests::test_log_etdi_signature_verified_trusted_allow ... ok [INFO] [stdout] test merkle::tests::test_append_rejects_at_max_leaf_count ... ok [INFO] [stdout] test merkle::tests::test_append_two_leaves_root ... ok [INFO] [stdout] test merkle::tests::test_append_three_leaves_root ... ok [INFO] [stdout] test merkle::tests::test_proof_step_deny_unknown_fields ... ok [INFO] [stdout] test merkle::tests::test_proof_five_leaves_non_power_of_two ... ok [INFO] [stdout] test merkle::tests::test_initialize_recovers_from_leaf_file ... ok [INFO] [stdout] test merkle::tests::test_proof_wrong_root_fails ... ok [INFO] [stdout] test merkle::tests::test_root_hex_format ... ok [INFO] [stdout] test merkle::tests::test_verify_proof_invalid_sibling_hex_rejected ... ok [INFO] [stdout] test merkle::tests::test_verify_proof_leaf_index_ge_tree_size ... ok [INFO] [stdout] test merkle::tests::test_reset_clears_state ... ok [INFO] [stdout] test merkle::tests::test_verify_proof_too_many_siblings_rejected ... ok [INFO] [stdout] test events::tests::test_log_sampling_event_always_deny ... ok [INFO] [stdout] test nis2::tests::test_article_id_display ... ok [INFO] [stdout] test nis2::tests::test_all_art21_measures_present ... ok [INFO] [stdout] test nis2::tests::test_compliance_status_display ... ok [INFO] [stdout] test nis2::tests::test_default_trait ... ok [INFO] [stdout] test nis2::tests::test_coverage_above_50_percent ... ok [INFO] [stdout] test nis2::tests::test_r216_004_empty_registry_returns_zero_percent ... ok [INFO] [stdout] test nis2::tests::test_r216_007_nis2_report_validate_nan_percentage ... ok [INFO] [stdout] test nis2::tests::test_r216_007_nis2_report_validate_out_of_range_percentage ... ok [INFO] [stdout] test nis2::tests::test_r216_007_nis2_report_validate_valid ... ok [INFO] [stdout] test merkle::tests::test_proof_out_of_range_rejected ... ok [INFO] [stdout] test nis2::tests::test_registry_creation ... ok [INFO] [stdout] test merkle::tests::test_proof_two_leaves ... ok [INFO] [stdout] test merkle::tests::test_proof_four_leaves_encodes_left_right_directions ... ok [INFO] [stdout] test merkle::tests::test_proof_four_leaves ... ok [INFO] [stdout] test merkle::tests::test_proof_single_leaf ... ok [INFO] [stdout] test nist_ai600::tests::test_all_controls_have_rmf_cross_references ... ok [INFO] [stdout] test nist_ai600::tests::test_all_mitigations_reference_valid_controls ... ok [INFO] [stdout] test nist_ai600::tests::test_all_risk_areas_have_controls ... ok [INFO] [stdout] test nis2::tests::test_serde_roundtrip ... ok [INFO] [stdout] test nist_ai600::tests::test_compliance_percentage_range ... ok [INFO] [stdout] test nist_ai600::tests::test_compliance_status_display ... ok [INFO] [stdout] test merkle::tests::test_verify_proof_zero_tree_size ... ok [INFO] [stdout] test nist_ai600::tests::test_control_count_is_24 ... ok [INFO] [stdout] test nist_ai600::tests::test_control_id_creation ... ok [INFO] [stdout] test nist_ai600::tests::test_control_id_invalid_parsing ... ok [INFO] [stdout] test nist_ai600::tests::test_control_id_risk_area_parsing ... ok [INFO] [stdout] test nist_ai600::tests::test_default_trait ... ok [INFO] [stdout] test nist_ai600::tests::test_environmental_controls_have_no_eu_articles ... ok [INFO] [stdout] test nist_ai600::tests::test_eu_ai_act_cross_references ... ok [INFO] [stdout] test nist_ai600::tests::test_get_control ... ok [INFO] [stdout] test nist_ai600::tests::test_control_id_risk_area_parsing_all ... ok [INFO] [stdout] test nist_ai600::tests::test_generate_report_has_cross_mappings ... ok [INFO] [stdout] test nist_ai600::tests::test_cross_references_nonexistent_control ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_control_isec01 ... ok [INFO] [stdout] test nist_ai600::tests::test_generate_report ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_data_laundering ... ok [INFO] [stdout] test nist_ai600::tests::test_high_priority_detections_have_mitigations ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_excessive_agency ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_prompt_injection ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_schema_poisoning ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_goal_drift ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_secrets_in_output ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_indirect_injection ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_tool_annotation_change ... ok [INFO] [stdout] test nist_ai600::tests::test_report_controls_within_risk_area_sorted ... ok [INFO] [stdout] test nist_ai600::tests::test_report_risk_area_assessments_sorted ... ok [INFO] [stdout] test nist_ai600::tests::test_report_summary ... ok [INFO] [stdout] test nist_ai600::tests::test_report_validate_bad_percentage ... ok [INFO] [stdout] test nist_ai600::tests::test_report_validate_over_100_percentage ... ok [INFO] [stdout] test nist_ai600::tests::test_report_validate_success ... ok [INFO] [stdout] test nist_ai600::tests::test_report_validate_too_many_cross_mappings ... ok [INFO] [stdout] test nist_ai600::tests::test_registry_creation ... ok [INFO] [stdout] test nist_ai600::tests::test_risk_area_display ... ok [INFO] [stdout] test nist_ai600::tests::test_report_validate_too_many_risk_areas ... ok [INFO] [stdout] test nist_ai600::tests::test_rmf_cross_references ... ok [INFO] [stdout] test nist_ai600::tests::test_risk_area_all_returns_12 ... ok [INFO] [stdout] test nist_ai600::tests::test_risk_area_codes_unique ... ok [INFO] [stdout] test nist_ai600::tests::test_report_validate_negative_percentage ... ok [INFO] [stdout] test nist_rmf::tests::test_all_capabilities_have_mappings ... ok [INFO] [stdout] test nist_rmf::tests::test_category_id_parsing ... ok [INFO] [stdout] test nist_ai600::tests::test_mitigations_for_memory_injection ... ok [INFO] [stdout] test nist_rmf::tests::test_coverage_by_function ... ok [INFO] [stdout] test nist_ai600::tests::test_report_to_json ... ok [INFO] [stdout] test nist_rmf::tests::test_generate_report ... ok [INFO] [stdout] test nist_rmf::tests::test_implementation_status_display ... ok [INFO] [stdout] test nist_rmf::tests::test_mappings_for_capability ... ok [INFO] [stdout] test nist_rmf::tests::test_registry_creation ... ok [INFO] [stdout] test nist_rmf::tests::test_function_display ... ok [INFO] [stdout] test nist_rmf::tests::test_add_rmf_metadata ... ok [INFO] [stdout] test nist_rmf::tests::test_subcategory_id_parsing ... ok [INFO] [stdout] test nist_ai600::tests::test_serde_roundtrip_report ... ok [INFO] [stdout] test nist_rmf::tests::test_report_to_json ... ok [INFO] [stdout] test nist_rmf::tests::test_report_summary ... ok [INFO] [stdout] test observability::tests::test_builder_timestamps_are_recent ... ok [INFO] [stdout] test observability::tests::test_builder_verdict_defaults ... ok [INFO] [stdout] test merkle::tests::test_proof_three_leaves_promoted_tail_skips_first_level ... ok [INFO] [stdout] test observability::tests::test_ensure_trace_id_generates_when_none ... ok [INFO] [stdout] test observability::tests::test_action_summary_from_action ... ok [INFO] [stdout] test observability::tests::test_builder_action_defaults ... ok [INFO] [stdout] test observability::tests::test_builder_consecutive_builds_unique_ids ... ok [INFO] [stdout] test observability::tests::test_exporter_config_rejects_excessive_batch_size ... ok [INFO] [stdout] test observability::tests::test_exporter_config_rejects_zero_batch_size ... ok [INFO] [stdout] test observability::tests::test_builder_duration_defaults_to_zero ... ok [INFO] [stdout] test observability::tests::test_exporter_config_rejects_zero_timeout ... ok [INFO] [stdout] test observability::tests::test_exporter_config_accepts_max_batch_size ... ok [INFO] [stdout] test observability::tests::test_r44_008_all_zero_trace_id_both_cases ... ok [INFO] [stdout] test observability::tests::test_r44_008_both_all_zero_rejected ... ok [INFO] [stdout] test observability::tests::test_new_span_id_length_and_hex ... ok [INFO] [stdout] test observability::tests::test_r44_009_tracestate_exactly_512_accepted ... ok [INFO] [stdout] test observability::tests::test_r44_009_tracestate_over_512_truncated ... ok [INFO] [stdout] test observability::tests::test_r44_009_tracestate_within_limit_accepted ... ok [INFO] [stdout] test observability::tests::test_r44_010_verdict_allows_valid_special_chars ... ok [INFO] [stdout] test observability::tests::test_r44_010_verdict_empty_becomes_unknown ... ok [INFO] [stdout] test observability::tests::test_r44_010_verdict_only_invalid_chars_becomes_unknown ... ok [INFO] [stdout] test observability::tests::test_r44_008_almost_all_zero_parent_id_accepted ... ok [INFO] [stdout] test observability::tests::test_r44_010_verdict_sanitized_allow ... ok [INFO] [stdout] test observability::tests::test_r44_009_tracestate_single_oversized_entry_dropped ... ok [INFO] [stdout] test observability::tests::test_r44_010_verdict_truncated_at_64_chars ... ok [INFO] [stdout] test observability::tests::test_r44_010_verdict_uppercase_stripped ... ok [INFO] [stdout] test observability::tests::test_r44_040_lowercase_preserved ... ok [INFO] [stdout] test observability::tests::test_r44_010_verdict_special_chars_stripped ... ok [INFO] [stdout] test observability::tests::test_r44_040_mixed_case_normalized ... ok [INFO] [stdout] test observability::tests::test_r44_041_hash_trace_id_different_inputs ... ok [INFO] [stdout] test observability::tests::test_r44_041_hash_trace_id_deterministic ... ok [INFO] [stdout] test observability::tests::test_r44_041_hash_trace_id_empty_string ... ok [INFO] [stdout] test observability::tests::test_exporter_config_default_valid ... ok [INFO] [stdout] test observability::tests::test_r44_008_almost_all_zero_trace_id_accepted ... ok [INFO] [stdout] test observability::tests::test_r44_010_verdict_sanitized_deny ... ok [INFO] [stdout] test observability::tests::test_r44_042_new_span_id_never_all_zero ... ok [INFO] [stdout] test observability::tests::test_new_span_id_uniqueness ... ok [INFO] [stdout] test observability::tests::test_r44_042_new_span_id_valid_format ... ok [INFO] [stdout] test observability::tests::test_redaction_config ... ok [INFO] [stdout] test observability::tests::test_redaction_mixed_array_object_nesting ... ok [INFO] [stdout] test observability::tests::test_redaction_truncate ... ok [INFO] [stdout] test observability::tests::test_retry_after_parsing_extremely_large ... ok [INFO] [stdout] test observability::tests::test_retry_after_parsing_valid ... ok [INFO] [stdout] test observability::tests::test_sampler_always_sample_denies ... ok [INFO] [stdout] test observability::tests::test_sampler_determinism_same_trace_id ... ok [INFO] [stdout] test observability::tests::test_r44_008_all_zero_parent_id_both_cases ... ok [INFO] [stdout] test observability::tests::test_redaction_depth_50_works ... ok [INFO] [stdout] test observability::tests::test_retry_after_parsing_invalid ... ok [INFO] [stdout] test observability::tests::test_redaction_depth_51_truncated ... ok [INFO] [stdout] test observability::tests::test_retry_after_parsing_negative ... ok [INFO] [stdout] test observability::tests::test_sampler_probabilistic ... ok [INFO] [stdout] test observability::tests::test_sampler_edge_trace_ids ... ok [INFO] [stdout] test observability::tests::test_redaction_large_array_with_objects ... ok [INFO] [stdout] test observability::tests::test_trace_context_all_zeros_span_id_rejected ... ok [INFO] [stdout] test observability::tests::test_span_kind_as_str ... ok [INFO] [stdout] test observability::tests::test_trace_context_all_zeros_trace_id_rejected ... ok [INFO] [stdout] test observability::tests::test_security_detection_builder ... ok [INFO] [stdout] test observability::tests::test_security_span_builder ... ok [INFO] [stdout] test observability::tests::test_sampler_rate_one_always_samples ... ok [INFO] [stdout] test observability::tests::test_trace_context_child_to_traceparent ... ok [INFO] [stdout] test observability::tests::test_span_kind_gateway_as_str ... ok [INFO] [stdout] test observability::tests::test_sampler_rate_zero_never_samples ... ok [INFO] [stdout] test exec_graph::tests::test_add_node_self_loop_rejected ... ok [INFO] [stdout] test export::tests::test_r35_sup_2_truncate_bytes_boundary ... ok [INFO] [stdout] test nis2::tests::test_generate_report ... ok [INFO] [stdout] test observability::tests::test_trace_context_child_inherits_trace_id ... ok [INFO] [stdout] test observability::tests::test_trace_context_child_unique_span_ids ... ok [INFO] [stdout] test observability::tests::test_trace_context_invalid ... ok [INFO] [stdout] test observability::tests::test_trace_context_leading_zeros_preserved ... ok [INFO] [stdout] test observability::tests::test_trace_context_mixed_case_hex ... ok [INFO] [stdout] test observability::tests::test_trace_context_parse ... ok [INFO] [stdout] test observability::tests::test_trace_context_invalid_hex_chars ... ok [INFO] [stdout] test observability::tests::test_trace_context_verdict_chain ... ok [INFO] [stdout] test observability::tests::test_trace_context_to_traceparent ... ok [INFO] [stdout] test observability::tests::test_trace_context_uppercase_hex_normalized ... ok [INFO] [stdout] test observability::tests::test_trace_context_with_vellaveto_verdict_prepends_to_existing ... ok [INFO] [stdout] test observability::tests::test_verdict_summary_from_verdict ... ok [INFO] [stdout] test otel_spans::tests::test_build_evaluation_span_deny ... ok [INFO] [stdout] test otel_spans::tests::test_build_evaluation_span_require_approval ... ok [INFO] [stdout] test observability::tests::test_trace_context_with_parsed_tracestate ... ok [INFO] [stdout] test observability::tests::test_trace_context_with_vellaveto_verdict_no_existing_state ... ok [INFO] [stdout] test otel_spans::tests::test_build_evaluation_span_allow ... ok [INFO] [stdout] test owasp_asi::tests::test_control_lookup_by_id ... ok [INFO] [stdout] test owasp_asi::tests::test_category_display ... ok [INFO] [stdout] test owasp_asi::tests::test_category_coverage_breakdown ... ok [INFO] [stdout] test owasp_asi::tests::test_control_matrix_sorted ... ok [INFO] [stdout] test owasp_asi::tests::test_detection_to_control_mapping ... ok [INFO] [stdout] test owasp_asi::tests::test_registry_creation ... ok [INFO] [stdout] test owasp_asi::tests::test_coverage_report_generation ... ok [INFO] [stdout] test owasp_asi::tests::test_all_10_categories_populated ... ok [INFO] [stdout] test owasp_asi::tests::test_full_coverage ... ok [INFO] [stdout] test owasp_asi::tests::test_detection_mappings_reference_valid_controls ... ok [INFO] [stdout] test owasp_asi::tests::test_control_to_detection_mapping ... ok [INFO] [stdout] test owasp_asi::tests::test_no_duplicate_control_ids ... ok [INFO] [stdout] test owasp_asi::tests::test_report_validate_rejects_nan_coverage ... ok [INFO] [stdout] test owasp_asi::tests::test_report_validate_rejects_negative_coverage ... ok [INFO] [stdout] test owasp_mcp::tests::test_all_categories_have_controls ... ok [INFO] [stdout] test owasp_mcp::tests::test_category_display ... ok [INFO] [stdout] test owasp_mcp::tests::test_coverage_report_high_coverage ... ok [INFO] [stdout] test owasp_asi::tests::test_report_validate_rejects_over_100_coverage ... ok [INFO] [stdout] test owasp_mcp::tests::test_get_nonexistent_control ... ok [INFO] [stdout] test owasp_asi::tests::test_all_controls_have_mitigations ... ok [INFO] [stdout] test owasp_mcp::tests::test_registry_creates_successfully ... ok [INFO] [stdout] test owasp_asi::tests::test_total_controls_count ... ok [INFO] [stdout] test owasp_asi::tests::test_serde_roundtrip ... ok [INFO] [stdout] test owasp_mcp::tests::test_coverage_report_generation ... ok [INFO] [stdout] test owasp_mcp::tests::test_control_ids_unique ... ok [INFO] [stdout] test events::tests::test_log_task_lifecycle_failed_produces_deny ... ok [INFO] [stdout] test owasp_asi::tests::test_report_validate_passes_for_valid_report ... ok [INFO] [stdout] test owasp_mcp::tests::test_get_control_by_id ... ok [INFO] [stdout] test owasp_mcp::tests::test_serialization_roundtrip ... ok [INFO] [stdout] test observability::tests::test_sampler_distribution_uniformity ... ok [INFO] [stdout] test events::tests::test_log_shadow_agent_registered_produces_allow ... ok [INFO] [stdout] test pii::tests::test_luhn_check_invalid ... ok [INFO] [stdout] test pii::tests::test_luhn_check_valid ... ok [INFO] [stdout] test pii::tests::test_aws_key_id_detected ... ok [INFO] [stdout] test pii::tests::test_find_matches_multiple_categories ... ok [INFO] [stdout] test pii::tests::test_jwt_detected ... ok [INFO] [stdout] test pii::tests::test_credit_card_valid_luhn ... ok [INFO] [stdout] test pii::tests::test_ipv4_detected ... ok [INFO] [stdout] test pii::tests::test_redos_bounded_repetition_in_group_accepted ... ok [INFO] [stdout] test pii::tests::test_has_pii_uses_luhn_for_credit_cards ... ok [INFO] [stdout] test pii::tests::test_custom_pattern_applied ... ok [INFO] [stdout] test pii::tests::test_redos_escaped_quantifier_not_flagged ... ok [INFO] [stdout] test pii::tests::test_redos_escaped_paren_not_counted ... ok [INFO] [stdout] test pii::tests::test_redos_group_with_curly_outer_quantifier_rejected ... ok [INFO] [stdout] test pii::tests::test_redos_nested_quantifiers_rejected ... ok [INFO] [stdout] test pii::tests::test_redos_star_star_rejected ... ok [INFO] [stdout] test pii::tests::test_redos_trailing_backslash_rejected ... ok [INFO] [stdout] test pii::tests::test_redos_unbounded_repetition_in_group_rejected ... ok [INFO] [stdout] test pii::tests::test_redos_valid_patterns_accepted ... ok [INFO] [stdout] test pii::tests::test_redos_overlength_rejected ... ok [INFO] [stdout] test pii::tests::test_redaction_idempotent ... ok [INFO] [stdout] test pii::tests::test_no_pii_unchanged ... ok [INFO] [stdout] test pii::tests::test_redos_deeply_nested_groups_rejected ... ok [INFO] [stdout] test pii::tests::test_phone_detected ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_agent_id_missing_metadata_excluded ... ok [INFO] [stdout] test events::tests::test_log_task_lifecycle_completed_produces_allow ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_combined_filters ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_empty_input ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_no_filters_returns_all ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_no_match ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_sequence_range ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_since_and_until_range ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_since_timestamp ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_tenant_id_excludes_none ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_tenant_id_filter ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_text_search_case_insensitive ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_text_search_in_function ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_verdict_allow ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_verdict_deny ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_verdict_require_approval ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_all_sensitive_keys ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_text_search_in_tool ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_tool_filter ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_until_timestamp ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_aws_key_prefix ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_bearer_prefix ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_depth_limit_fail_closed ... ok [INFO] [stdout] test pii::tests::test_pii_scanner_rejects_overlength_custom_pattern ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_bool_null_unchanged ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_email_pii ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_sensitive_key ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_number_pii ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_safe_value_unchanged ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_nfkc_normalization ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_value_prefix_sk ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_only_case_insensitive ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_ssn_pii ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_phone_pii ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_only_does_not_redact_values ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_only_nested_object ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_only_password_redacted ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_and_patterns_value_prefix_case_insensitive ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_only_depth_limit_fail_closed ... ok [INFO] [stdout] test redaction::tests::test_redact_with_scanner_depth_limit_fail_closed ... ok [INFO] [stdout] test query::file::tests::test_filter_entries_agent_id_filter ... ok [INFO] [stdout] test soc2::tests::test_classify_entry_all_provide_cc2 ... ok [INFO] [stdout] test soc2::tests::test_classify_entry_approval_adds_cc7 ... ok [INFO] [stdout] test soc2::tests::test_classify_entry_deny_adds_cc5_cc3 ... ok [INFO] [stdout] test soc2::tests::test_coverage_by_category_all_covered ... ok [INFO] [stdout] test soc2::tests::test_coverage_readiness_percent ... ok [INFO] [stdout] test soc2::tests::test_criterion_id_parsing ... ok [INFO] [stdout] test soc2::tests::test_criterion_populated ... ok [INFO] [stdout] test soc2::tests::test_generate_evidence_report_all_categories ... ok [INFO] [stdout] test pii::tests::test_email_detected ... ok [INFO] [stdout] test pii::tests::test_invalid_custom_regex_skipped ... ok [INFO] [stdout] test pii::tests::test_ssn_detected ... ok [INFO] [stdout] test soc2::tests::test_mappings_for_capability ... ok [INFO] [stdout] test pii::tests::test_substring_redaction_mixed_text ... ok [INFO] [stdout] test soc2::tests::test_mappings_for_criterion ... ok [INFO] [stdout] test pii::tests::test_pii_scanner_rejects_redos_custom_pattern ... ok [INFO] [stdout] test pii::tests::test_find_matches_email_span ... ok [INFO] [stdout] test soc2::tests::test_generate_evidence_report_filtered_categories ... ok [INFO] [stdout] test soc2::tests::test_registry_creation ... ok [INFO] [stdout] test streaming::tests::test_datadog_config_validate_tag_at_max_length ... ok [INFO] [stdout] test soc2::tests::test_readiness_level_ordering ... ok [INFO] [stdout] test streaming::tests::test_datadog_config_validate_tag_too_long ... ok [INFO] [stdout] test streaming::tests::test_datadog_config_debug_redacts_api_key ... ok [INFO] [stdout] test streaming::tests::test_datadog_config_defaults ... ok [INFO] [stdout] test streaming::tests::test_datadog_config_validate_tag_count_exceeds_max ... ok [INFO] [stdout] test streaming::tests::test_elasticsearch_config_debug_redacts_api_key ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_flush_interval_over_max_rejected ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_defaults ... ok [INFO] [stdout] test streaming::tests::test_elasticsearch_config_defaults ... ok [INFO] [stdout] test soc2::tests::test_readiness_level_score ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_batch_size_zero_rejected ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_flush_interval_zero_rejected ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_max_retries_over_rejected ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_retry_backoff_zero_rejected ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_timeout_over_max_rejected ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_timeout_zero_rejected ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_max_retries_zero_accepted ... ok [INFO] [stdout] test streaming::tests::test_r216_001_syslog_config_validate_app_name_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_001_syslog_config_validate_app_name_too_long ... ok [INFO] [stdout] test streaming::tests::test_r216_001_syslog_config_validate_enterprise_id_empty ... ok [INFO] [stdout] test streaming::tests::test_r216_001_syslog_config_validate_enterprise_id_too_long ... ok [INFO] [stdout] test streaming::tests::test_r216_001_syslog_config_validate_host_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_001_syslog_config_validate_host_too_long ... ok [INFO] [stdout] test streaming::tests::test_r216_001_syslog_config_validate_valid ... ok [INFO] [stdout] test streaming::tests::test_r216_005_datadog_source_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_005_datadog_endpoint_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_005_splunk_endpoint_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_005_datadog_tag_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_005_datadog_service_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_005_splunk_source_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_005_splunk_sourcetype_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_005_elasticsearch_index_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_008_syslog_enterprise_id_rejects_bracket ... ok [INFO] [stdout] test streaming::tests::test_r216_005_webhook_endpoint_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_008_syslog_enterprise_id_rejects_equals ... ok [INFO] [stdout] test streaming::tests::test_r216_008_syslog_enterprise_id_accepts_valid ... ok [INFO] [stdout] test streaming::tests::test_r216_008_syslog_enterprise_id_rejects_non_ascii ... ok [INFO] [stdout] test streaming::tests::test_r216_008_syslog_enterprise_id_rejects_space ... ok [INFO] [stdout] test streaming::tests::test_r216_008_syslog_enterprise_id_rejects_quote ... ok [INFO] [stdout] test streaming::tests::test_r216_009_webhook_header_key_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r216_009_webhook_header_value_dangerous_chars ... ok [INFO] [stdout] test streaming::tests::test_r224_004_datadog_endpoint_accepts_https ... ok [INFO] [stdout] test streaming::tests::test_r224_004_datadog_endpoint_rejects_non_http_scheme ... ok [INFO] [stdout] test streaming::tests::test_splunk_config_defaults ... ok [INFO] [stdout] test streaming::tests::test_syslog_config_defaults ... ok [INFO] [stdout] test streaming::tests::test_syslog_facility_values ... ok [INFO] [stdout] test streaming::tests::test_syslog_severity_mapping ... ok [INFO] [stdout] test streaming::tests::test_webhook_config_validate_header_key_too_long ... ok [INFO] [stdout] test streaming::tests::test_webhook_config_validate_header_value_too_long ... ok [INFO] [stdout] test streaming::tests::test_splunk_config_debug_redacts_token ... ok [INFO] [stdout] test redaction::tests::test_redact_with_scanner_safe_string_unchanged ... ok [INFO] [stdout] test tests::test_canonical_json_produces_deterministic_hashes ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_retry_backoff_over_max_rejected ... ok [INFO] [stdout] test streaming::tests::test_r216_005_elasticsearch_endpoint_dangerous_chars ... ok [INFO] [stdout] test redaction::tests::test_redact_with_scanner_substring_preserves_context ... ok [INFO] [stdout] test pii::tests::test_credit_card_invalid_luhn_not_redacted ... ok [INFO] [stdout] test pii::tests::test_find_matches_luhn_filter ... ok [INFO] [stdout] test tests::test_checkpoint_key_from_bytes_roundtrip ... ok [INFO] [stdout] test redaction::tests::test_redact_with_scanner_sensitive_key ... ok [INFO] [stdout] test tests::test_backward_compat_legacy_entries ... ok [INFO] [stdout] test tests::test_audit_log_permissions_0600 ... ok [INFO] [stdout] test redaction::tests::test_redact_with_scanner_value_prefix ... ok [INFO] [stdout] test redaction::tests::test_redact_keys_only_array_elements ... ok [INFO] [stdout] test streaming::tests::test_webhook_config_validate_headers_count_at_max ... ok [INFO] [stdout] test streaming::tests::test_webhook_config_validate_headers_count_exceeds_max ... ok [INFO] [stdout] test streaming::tests::test_exporter_config_validate_batch_size_over_max_rejected ... ok [INFO] [stdout] test tests::test_checkpoint_key_pinning_rejects_forged_key ... ok [INFO] [stdout] test tests::test_checkpoint_no_key_returns_error ... ok [INFO] [stdout] test tests::test_checkpoint_empty_log ... ok [INFO] [stdout] test tests::test_checkpoint_key_continuity_rejects_key_change ... ok [INFO] [stdout] test tests::test_checkpoint_creation ... ok [INFO] [stdout] test tests::test_checkpoint_multiple_sequential ... ok [INFO] [stdout] test tests::test_checkpoint_decreasing_entry_count_detected ... ok [INFO] [stdout] test tests::test_checkpoint_path_derivation ... ok [INFO] [stdout] test tests::test_checkpoint_oversized_line_skipped ... ok [INFO] [stdout] test tests::test_checkpoint_permissions_0600 ... ok [INFO] [stdout] test tests::test_checkpoint_tampered_audit_log_detected ... ok [INFO] [stdout] test tests::test_checkpoint_different_key_single_checkpoint_passes_without_pin ... ok [INFO] [stdout] test tests::test_checkpoint_sequential_creation_safety ... ok [INFO] [stdout] test tests::test_checkpoint_verification_empty ... ok [INFO] [stdout] test tests::test_empty_log_load ... ok [INFO] [stdout] test tests::test_detect_heartbeat_gap_finds_gap ... ok [INFO] [stdout] test tests::test_detect_heartbeat_gap_no_gap ... ok [INFO] [stdout] test tests::test_detect_heartbeat_gap_single_entry ... ok [INFO] [stdout] test tests::test_exploit10_verify_chain_rejects_oversized_log ... ok [INFO] [stdout] test tests::test_file_audit_query_count_empty_log_returns_zero ... ok [INFO] [stdout] test tests::test_exploit10_normal_sized_log_loads_fine ... ok [INFO] [stdout] test tests::test_checkpoint_tampered_signature_detected ... ok [INFO] [stdout] test access_review::tests::test_bounded_agents ... ok [INFO] [stdout] test tests::test_detect_heartbeat_gap_empty_log ... ok [INFO] [stdout] test tests::test_file_audit_query_get_by_id_nonexistent_returns_none ... ok [INFO] [stdout] test tests::test_detect_heartbeat_gap_returns_first_gap ... ok [INFO] [stdout] test tests::test_file_audit_query_recent_capped_at_max_query_limit ... ok [INFO] [stdout] test tests::test_exploit10_oversized_audit_log_rejected ... ok [INFO] [stdout] test tests::test_fix2_field_separator_prevents_boundary_shift ... ok [INFO] [stdout] test tests::test_checkpoint_tampered_entry_count_detected ... ok [INFO] [stdout] test tests::test_exploit8_entries_added_after_checkpoint_still_valid ... ok [INFO] [stdout] test tests::test_file_audit_query_get_by_id_empty_id_returns_validation_error ... ok [INFO] [stdout] test tests::test_exploit8_no_false_positive_when_entries_match ... ok [INFO] [stdout] test tests::test_file_audit_query_count_invalid_params_returns_validation_error ... ok [INFO] [stdout] test tests::test_gap_t03b_detect_heartbeat_gap_single_entry ... ok [INFO] [stdout] test tests::test_gap_t03c_detect_heartbeat_gap_empty ... ok [INFO] [stdout] test tests::test_checkpoint_legacy_v1_signature_still_verifies ... ok [INFO] [stdout] test tests::test_exploit8_middle_deletion_detected ... ok [INFO] [stdout] test tests::test_gap_t03_detect_heartbeat_gap ... ok [INFO] [stdout] test tests::test_gap_t05_merkle_compute_siblings_single_leaf ... ok [INFO] [stdout] test tests::test_file_audit_query_search_invalid_params_returns_validation_error ... ok [INFO] [stdout] test tests::test_exploit8_tail_truncation_detected_by_checkpoint ... ok [INFO] [stdout] test tests::test_gap_t05b_merkle_odd_leaf_count ... ok [INFO] [stdout] test tests::test_gap_t05d_merkle_out_of_bounds ... ok [INFO] [stdout] test tests::test_gap_t05c_merkle_power_of_two ... ok [INFO] [stdout] test tests::test_file_audit_query_search_with_entries_returns_correct_total ... ok [INFO] [stdout] test tests::test_checkpoint_verification_valid ... ok [INFO] [stdout] test tests::test_gap_t04_list_rotated_files_empty_dir ... ok [INFO] [stdout] test tests::test_file_audit_query_recent_empty_log_returns_empty_vec ... ok [INFO] [stdout] test tests::test_generate_report ... ok [INFO] [stdout] test tests::test_gap_t06_etdi_audit_helpers ... ok [INFO] [stdout] test tests::test_fix1_hashless_entry_after_hashed_rejected ... ok [INFO] [stdout] test tests::test_fix4_hash_not_updated_on_write_failure ... ok [INFO] [stdout] test tests::test_keys_and_patterns_redacts_value_prefixes ... ok [INFO] [stdout] test tests::test_gap_t01_initialize_chain_with_corrupted_log ... ok [INFO] [stdout] test tests::test_file_audit_query_search_empty_log_returns_zero_total ... ok [INFO] [stdout] test tests::test_heartbeat_creates_valid_entry ... ok [INFO] [stdout] test tests::test_keys_and_patterns_redacts_metadata_pii ... ok [INFO] [stdout] test tests::test_log_auth_event_step_up_required ... ok [INFO] [stdout] test tests::test_keys_and_patterns_redacts_pii ... ok [INFO] [stdout] test tests::test_fix3_initialize_chain_rejects_tampered_file ... ok [INFO] [stdout] test tests::test_keys_only_preserves_emails ... ok [INFO] [stdout] test tests::test_keys_only_preserves_value_prefixes ... ok [INFO] [stdout] test tests::test_list_rotated_files_nonexistent_dir ... ok [INFO] [stdout] test tests::test_gap_t04c_list_rotated_files_missing_dir ... ok [INFO] [stdout] test tests::test_gap_t04b_list_rotated_files_non_matching ... ok [INFO] [stdout] test tests::test_log_entry_with_acis_rejects_dangerous_chars_in_decision_id ... ok [INFO] [stdout] test tests::test_log_entry_with_acis_rejects_invalid_envelope ... ok [INFO] [stdout] test tests::test_gap_t02_event_logging_helpers ... ok [INFO] [stdout] test tests::test_log_circuit_breaker_event_rejected ... ok [INFO] [stdout] test tests::test_hash_chain_integrity ... ok [INFO] [stdout] test tests::test_initialize_chain_recovers_next_global_sequence ... ok [INFO] [stdout] test tests::test_log_sampling_event_rate_limit_exceeded ... ok [INFO] [stdout] test tests::test_log_and_load ... ok [INFO] [stdout] test tests::test_list_rotated_files_empty_when_no_rotation ... ok [INFO] [stdout] test tests::test_log_entry_with_acis_persists_dedicated_envelope ... ok [INFO] [stdout] test tests::test_log_service_discovery_event_endpoint_added ... ok [INFO] [stdout] test tests::test_heartbeat_participates_in_hash_chain ... ok [INFO] [stdout] test tests::test_log_service_discovery_event_endpoint_removed ... ok [INFO] [stdout] test tests::test_initialize_chain_resumes ... ok [INFO] [stdout] test tests::test_merkle_domain_separation_leaf_ne_internal ... ok [INFO] [stdout] test tests::test_merkle_domain_separation_non_commutative ... ok [INFO] [stdout] test tests::test_log_leader_election_event_failed_produces_deny ... ok [INFO] [stdout] test tests::test_merkle_empty_tree_root_is_none ... ok [INFO] [stdout] test tests::test_merkle_crash_recovery ... ok [INFO] [stdout] test tests::test_merkle_logger_integration_entries_with_merkle ... ok [INFO] [stdout] test tests::test_merkle_logger_checkpoint_includes_root ... ok [INFO] [stdout] test tests::test_merkle_logger_proof_generation_and_verification ... ok [INFO] [stdout] test tests::test_merkle_partial_write_truncation ... ok [INFO] [stdout] test tests::test_merkle_order_dependence ... ok [INFO] [stdout] test tests::test_merkle_proof_out_of_range ... ok [INFO] [stdout] test tests::test_merkle_proof_roundtrip_single ... ok [INFO] [stdout] test tests::test_log_shadow_agent_event_detected ... ok [INFO] [stdout] test tests::test_merkle_proof_serde_roundtrip ... ok [INFO] [stdout] test tests::test_merkle_proof_tampered_leaf_rejected ... ok [INFO] [stdout] test tests::test_merkle_power_of_two_leaves ... ok [INFO] [stdout] test tests::test_merkle_proof_tampered_root_rejected ... ok [INFO] [stdout] test tests::test_merkle_proof_zero_tree_size ... ok [INFO] [stdout] test tests::test_merkle_proof_roundtrip_multiple ... ok [INFO] [stdout] test tests::test_log_service_discovery_event_refresh_failed_produces_deny ... ok [INFO] [stdout] test tests::test_merkle_proof_self_referential_forgery_rejected ... ok [INFO] [stdout] test tests::test_merkle_checkpoint_backward_compat ... ok [INFO] [stdout] test tests::test_merkle_single_leaf ... ok [INFO] [stdout] test tests::test_merkle_proof_tampered_sibling_rejected ... ok [INFO] [stdout] test tests::test_merkle_three_leaves ... ok [INFO] [stdout] test tests::test_merkle_root_determinism ... ok [INFO] [stdout] test tests::test_merkle_reset_clears_tree ... ok [INFO] [stdout] test tests::test_merkle_tree_max_leaf_count_boundary ... ok [INFO] [stdout] test tests::test_merkle_two_leaves ... ok [INFO] [stdout] test tests::test_pqc_checkpoint_serde_round_trip ... ok [INFO] [stdout] test tests::test_log_leader_election_event_acquired ... ok [INFO] [stdout] test tests::test_pqc_fields_skip_serializing_when_none ... ok [INFO] [stdout] test tests::test_logger_with_sink_sets_sink_field ... ok [INFO] [stdout] test tests::test_pqc_signing_content_v1_backward_compat ... ok [INFO] [stdout] test tests::test_logger_with_sink_fatal_flag ... ok [INFO] [stdout] test tests::test_pqc_signing_content_v2_includes_pqc_key ... ok [INFO] [stdout] test tests::test_pqc_signing_content_v2_key_binding ... ok [INFO] [stdout] test tests::test_pqc_v1_checkpoint_deserialization ... ok [INFO] [stdout] test tests::test_log_deputy_event_validation_failed ... ok [INFO] [stdout] test tests::test_log_circuit_breaker_event_opened ... ok [INFO] [stdout] test tests::test_metadata_shallow_accepted ... ok [INFO] [stdout] test tests::test_metadata_depth_rejected ... ok [INFO] [stdout] test tests::test_logger_no_sink_log_entry_succeeds ... ok [INFO] [stdout] test tests::test_log_task_event_created ... ok [INFO] [stdout] test tests::test_log_leader_election_event_lost_produces_deny ... ok [INFO] [stdout] test tests::test_pqc_trusted_key_builder ... ok [INFO] [stdout] test tests::test_r228_verify_chain_mixed_utc_suffixes_correct_order ... ok [INFO] [stdout] test tests::test_pqc_rotation_manifest_ed25519_error_message ... ok [INFO] [stdout] test tests::test_r253_aud1_metadata_size_check_rejects_oversized ... ok [INFO] [stdout] test tests::test_r238_aud1_tenant_id_dangerous_chars_dropped ... ok [INFO] [stdout] test tests::test_r253_aud6_target_path_too_long_rejected ... ok [INFO] [stdout] test tests::test_r36_sup_1_target_paths_use_pii_scanner ... ok [INFO] [stdout] test tests::test_r228_verify_chain_mixed_suffix_regression_detected ... ok [INFO] [stdout] test tests::test_redact_empty_object ... ok [INFO] [stdout] test tests::test_r36_sup_3_resolved_ips_redacted ... ok [INFO] [stdout] test tests::test_redact_keys_and_patterns_depth_63_redacts_pii ... ok [INFO] [stdout] test tests::test_redact_keys_and_patterns_depth_64_returns_value_as_is ... ok [INFO] [stdout] test tests::test_r36_sup_3_resolved_ips_not_redacted_when_off ... ok [INFO] [stdout] test tests::test_redact_keys_only_depth_63_succeeds ... ok [INFO] [stdout] test tests::test_redact_keys_only_depth_64_returns_value_as_is ... ok [INFO] [stdout] test tests::test_redact_keys_only_depth_65_still_safe ... ok [INFO] [stdout] test tests::test_redact_nfkc_mixed_ascii_fullwidth_email ... ok [INFO] [stdout] test tests::test_redact_null_value_preserved ... ok [INFO] [stdout] test tests::test_redact_nfkc_normalized_fullwidth_digits_ssn ... ok [INFO] [stdout] test tests::test_redact_number_not_matching_pii_preserved ... ok [INFO] [stdout] test tests::test_redact_value_prefix_case_insensitive ... ok [INFO] [stdout] test tests::test_redact_number_matching_ssn_pattern_redacted ... ok [INFO] [stdout] test tests::test_log_schema_event_poisoning_alert ... ok [INFO] [stdout] test tests::test_redact_nfkc_normalized_fullwidth_digits_phone ... ok [INFO] [stdout] test tests::test_multiple_entries_append ... ok [INFO] [stdout] test tests::test_redact_with_scanner_depth_boundary ... ok [INFO] [stdout] test tests::test_r227_verify_chain_accepts_utc_timestamp ... ok [INFO] [stdout] test tests::test_parent_dir_creation ... ok [INFO] [stdout] test tests::test_r238_aud1_tenant_id_too_long_dropped ... ok [INFO] [stdout] test tests::test_redaction_hash_chain_still_valid ... ok [INFO] [stdout] test tests::test_rotation_empty_log_file_no_rotation ... ok [INFO] [stdout] test tests::test_r38_sup_1_oversized_rotated_file_rejected ... ok [INFO] [stdout] test tests::test_redaction_nested_values ... ok [INFO] [stdout] test tests::test_redact_with_scanner_nfkc_normalized ... ok [INFO] [stdout] test tests::test_r227_verify_chain_rejects_non_utc_timestamp ... ok [INFO] [stdout] test tests::test_r238_aud1_tenant_id_valid_passes ... ok [INFO] [stdout] test tests::test_pqc_v2_checkpoint_without_feature_fails_closed ... ok [INFO] [stdout] test tests::test_redaction_sensitive_value_prefix ... ok [INFO] [stdout] test tests::test_r253_aud6_too_many_targets_rejected ... ok [INFO] [stdout] test tests::test_rotation_manifest_start_hash_mismatch_rejected ... ok [INFO] [stdout] test tests::test_redaction_sensitive_param_key ... ok [INFO] [stdout] test tests::test_redaction_metadata_also_redacted ... ok [INFO] [stdout] test tests::test_rotation_disabled_when_zero ... ok [INFO] [stdout] test tests::test_pqc_ed25519_error_message_format ... ok [INFO] [stdout] test tests::test_rotation_no_manifest_passes ... ok [INFO] [stdout] test tests::test_rotation_initialize_chain_after_rotation ... ok [INFO] [stdout] test tests::test_rotation_manifest_path_traversal_rejected ... ok [INFO] [stdout] test tests::test_rotation_manifest_valid_filename_accepted ... ok [INFO] [stdout] test tests::test_sink_error_display_buffer_full ... ok [INFO] [stdout] test tests::test_sink_error_display_connection ... ok [INFO] [stdout] test tests::test_sink_error_display_serialization ... ok [INFO] [stdout] test tests::test_sink_error_display_shutting_down ... ok [INFO] [stdout] test tests::test_sink_error_display_write ... ok [INFO] [stdout] test tests::test_rotation_verification_detects_tampered_file ... ok [INFO] [stdout] test tests::test_rotation_verification_detects_missing_file_gap_after_existing_segment ... ok [INFO] [stdout] test tests::test_rotation_verification_detects_missing_file ... ok [INFO] [stdout] test tests::test_rotation_verification_passes_valid ... ok [INFO] [stdout] test tests::test_rotation_manifest_entry_deletion_detected ... ok [INFO] [stdout] test tests::test_rotation_starts_fresh_hash_chain ... ok [INFO] [stdout] test tests::test_trusted_key_builder_accepts_legitimate_checkpoint ... ok [INFO] [stdout] test tests::test_validation_newline_in_tool ... ok [INFO] [stdout] test tests::test_rotation_manifest_entry_reordering_detected ... ok [INFO] [stdout] test tests::test_unredacted_logger_preserves_all_values ... ok [INFO] [stdout] test tests::test_sync_flushes_entries_to_disk ... ok [INFO] [stdout] test tests::test_rotation_manifest_entry_replacement_detected ... ok [INFO] [stdout] test tests::test_rotation_no_data_loss ... ok [INFO] [stdout] test tests::test_verification_embedded_null_in_json_handled ... ok [INFO] [stdout] test tests::test_rotation_triggers_when_size_exceeded ... ok [INFO] [stdout] test tests::test_verify_chain_empty ... ok [INFO] [stdout] test trusted_audit_fs::tests::test_append_bytes_sync_creates_parent_and_persists ... ok [INFO] [stdout] test trusted_audit_fs::tests::test_path_traversal_rejected ... ok [INFO] [stdout] test trusted_audit_fs::tests::test_append_bytes_creates_parent_and_persists ... ok [INFO] [stdout] test trusted_audit_fs::tests::test_rename_if_exists_returns_false_for_missing_file ... ok [INFO] [stdout] test trusted_merkle_hash::tests::test_decode_hash_hex_rejects_invalid_hex ... ok [INFO] [stdout] test trusted_merkle_hash::tests::test_encode_decode_hash_hex_roundtrip ... ok [INFO] [stdout] test trusted_merkle_hash::tests::test_hash_internal_is_order_sensitive ... ok [INFO] [stdout] test trusted_merkle_hash::tests::test_hash_leaf_and_internal_preserve_domain_separation ... ok [INFO] [stdout] test trusted_merkle_hash::tests::test_hash_matches_trusted_root_requires_exact_encoding ... ok [INFO] [stdout] test trusted_audit_fs::tests::test_truncate_file_sync_shrinks_file ... ok [INFO] [stdout] test tests::test_verify_chain_detects_tampering ... ok [INFO] [stdout] test trusted_audit_fs::tests::test_read_if_exists_sync_missing_is_none ... ok [INFO] [stdout] test tests::test_verify_chain_valid ... ok [INFO] [stdout] test tests::test_rotation_rotated_file_has_valid_chain ... ok [INFO] [stdout] test tests::test_trusted_key_builder_rejects_single_forged_checkpoint ... ok [INFO] [stdout] test tests::test_validation_null_byte ... ok [INFO] [stdout] test tests::test_verification_corrupted_utf8_line_skipped ... ok [INFO] [stdout] test tests::test_with_max_file_size_builder ... ok [INFO] [stdout] test tests::test_sync_on_nonexistent_file_is_ok ... ok [INFO] [stdout] test verification::tests::test_strip_utc_suffix_lowercase_z ... ok [INFO] [stdout] test verification::tests::test_strip_utc_suffix_no_suffix ... ok [INFO] [stdout] test verification::tests::test_strip_utc_suffix_plus_zero ... ok [INFO] [stdout] test tests::test_rotation_writes_manifest ... ok [INFO] [stdout] test verification::tests::test_strip_utc_suffix_z ... ok [INFO] [stdout] test verification::tests::test_detect_duplicate_ids_finds_duplicates ... ok [INFO] [stdout] test verification::tests::test_load_entries_in_sequence_range_returns_matches_only ... ok [INFO] [stdout] test tests::test_verification_max_audit_line_size_boundary ... ok [INFO] [stdout] test verification::tests::test_load_entries_skips_corrupt_lines ... ok [INFO] [stdout] test verification::tests::test_detect_duplicate_ids_no_duplicates ... ok [INFO] [stdout] test verification::tests::test_generate_report_empty_log ... ok [INFO] [stdout] test verification::tests::test_verify_chain_detects_timestamp_regression ... ok [INFO] [stdout] test verification::tests::test_verify_chain_detects_tampered_hash ... ok [INFO] [stdout] test verified_audit_append::tests::test_entry_count_after_rotation_resets_to_zero ... ok [INFO] [stdout] test verification::tests::test_generate_report_counts_verdicts ... ok [INFO] [stdout] test verified_audit_append::tests::test_next_entry_count_increments_when_not_saturated ... ok [INFO] [stdout] test verified_audit_append::tests::test_next_entry_count_saturates_at_u64_max ... ok [INFO] [stdout] test verified_audit_append::tests::test_next_global_sequence_increments_when_not_saturated ... ok [INFO] [stdout] test verified_audit_append::tests::test_next_global_sequence_saturates_at_u64_max ... ok [INFO] [stdout] test verified_audit_append::tests::test_next_sequence_after_recovery_increments_when_not_saturated ... ok [INFO] [stdout] test verified_audit_append::tests::test_assigned_sequence_is_identity ... ok [INFO] [stdout] test verified_audit_append::tests::test_next_sequence_after_recovery_saturates_at_u64_max ... ok [INFO] [stdout] test verified_audit_chain::tests::test_audit_chain_step_valid_accepts_unhashed_legacy_entry ... ok [INFO] [stdout] test verified_audit_chain::tests::test_audit_chain_step_valid_rejects_hashed_link_mismatch ... ok [INFO] [stdout] test verified_audit_chain::tests::test_audit_chain_step_valid_rejects_hashed_self_hash_mismatch ... ok [INFO] [stdout] test verified_audit_chain::tests::test_hash_presence_valid_accepts_legacy_prefix ... ok [INFO] [stdout] test verified_audit_chain::tests::test_hash_presence_valid_rejects_unhashed_after_hashed ... ok [INFO] [stdout] test verified_audit_chain::tests::test_next_prev_sequence_preserves_legacy_zero ... ok [INFO] [stdout] test verified_audit_chain::tests::test_next_seen_hashed_entry_latches_true ... ok [INFO] [stdout] test verified_audit_chain::tests::test_sequence_monotonic_accepts_legacy_zero ... ok [INFO] [stdout] test verified_audit_chain::tests::test_sequence_monotonic_rejects_regression ... ok [INFO] [stdout] test verified_audit_chain::tests::test_timestamp_guard_accepts_utc_nondecreasing ... ok [INFO] [stdout] test verified_audit_chain::tests::test_timestamp_guard_rejects_non_utc ... ok [INFO] [stdout] test verified_audit_chain::tests::test_timestamp_guard_rejects_regression ... ok [INFO] [stdout] test verified_merkle::tests::test_append_allowed_accepts_below_limit ... ok [INFO] [stdout] test verified_merkle::tests::test_proof_leaf_index_valid_rejects_out_of_range ... ok [INFO] [stdout] test verified_merkle::tests::test_append_allowed_rejects_at_limit ... ok [INFO] [stdout] test verification::tests::test_verify_chain_mixed_utc_suffixes_valid ... ok [INFO] [stdout] test verified_merkle::tests::test_proof_sibling_count_valid_rejects_too_many_siblings ... ok [INFO] [stdout] test verified_merkle::tests::test_proof_tree_size_valid_rejects_zero ... ok [INFO] [stdout] test verified_merkle::tests::test_sibling_hash_len_valid_requires_32_bytes ... ok [INFO] [stdout] test verified_merkle::tests::test_stored_leaf_count_valid_accepts_equal_limit ... ok [INFO] [stdout] test verified_merkle::tests::test_stored_leaf_count_valid_rejects_over_limit ... ok [INFO] [stdout] test verified_merkle_fold::tests::test_fold_proof_step_respects_left_flag ... ok [INFO] [stdout] test verified_merkle_fold::tests::test_next_level_hashes_pairs_two_nodes ... ok [INFO] [stdout] test verified_merkle_fold::tests::test_fold_peak_into_root_places_peak_on_left ... ok [INFO] [stdout] test verified_merkle_fold::tests::test_next_level_hashes_promotes_odd_tail ... ok [INFO] [stdout] test verified_merkle_fold::tests::test_next_level_len_rounds_up_odd_width ... ok [INFO] [stdout] test verified_merkle_path::tests::test_proof_parent_index_halves_node_index ... ok [INFO] [stdout] test verified_merkle_path::tests::test_proof_level_has_sibling_accepts_paired_nodes ... ok [INFO] [stdout] test verified_merkle_path::tests::test_proof_sibling_index_even_uses_right_neighbor ... ok [INFO] [stdout] test verified_merkle_path::tests::test_proof_step_is_left_matches_odd_indices ... ok [INFO] [stdout] test verified_merkle_path::tests::test_proof_sibling_index_odd_uses_left_neighbor ... ok [INFO] [stdout] test verified_rotation_manifest::tests::test_missing_rotated_file_allowed_only_before_existing_segment ... ok [INFO] [stdout] test verified_merkle_path::tests::test_proof_level_has_sibling_rejects_promoted_tail ... ok [INFO] [stdout] test verified_rotation_manifest::tests::test_rotated_file_reference_valid_rejects_unsafe_paths ... ok [INFO] [stdout] test verified_rotation_manifest::tests::test_rotation_start_hash_link_valid_allows_empty_start_hash ... ok [INFO] [stdout] test verified_rotation_manifest::tests::test_rotation_start_hash_link_valid_allows_first_segment_without_previous_tail ... ok [INFO] [stdout] test verified_rotation_manifest::tests::test_rotation_start_hash_link_valid_rejects_mismatch_after_previous_tail ... ok [INFO] [stdout] test verified_merkle_path::tests::test_proof_step_places_sibling_left_is_identity ... ok [INFO] [stdout] test verified_rotation_manifest::tests::test_rotated_file_reference_valid_accepts_bare_filename ... ok [INFO] [stdout] test verification::tests::test_load_entries_skips_oversized_lines ... ok [INFO] [stdout] test verification::tests::test_verify_chain_detects_sequence_regression ... ok [INFO] [stdout] test verification::tests::test_load_entries_in_sequence_range_enforces_capacity_limit ... ok [INFO] [stdout] test verification::tests::test_verify_chain_valid_chain ... ok [INFO] [stdout] test verification::tests::test_verify_chain_rejects_unhashed_entry_after_hashed_entry ... ok [INFO] [stdout] test verification::tests::test_load_entries_empty_file_returns_empty_vec ... ok [INFO] [stdout] test verification::tests::test_verify_chain_empty_log_valid ... ok [INFO] [stdout] test verification::tests::test_verify_chain_rejects_non_utc_timestamp ... ok [INFO] [stdout] test verification::tests::test_load_entries_rejects_oversized_file ... ok [INFO] [stdout] test tests::test_merkle_tree_large_batch_1000_leaves_proof ... ok [INFO] [stdout] test tests::test_rotation_preserves_unique_monotonic_global_sequences ... ok [INFO] [stdout] test exec_graph::tests::test_add_node_metadata_not_updated_at_capacity ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 935 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 27.97s [INFO] [stdout] [INFO] [stderr] Running tests/audit_logging.rs (/opt/rustwide/target/debug/deps/audit_logging-817441efec15567a) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test generate_report_empty_log ... ok [INFO] [stdout] test log_multiple_entries_preserves_order ... ok [INFO] [stdout] test logger_handles_concurrent_writes ... ok [INFO] [stdout] test log_and_retrieve_entries ... ok [INFO] [stdout] test generate_report_with_entries ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running tests/cross_crate_audit.rs (/opt/rustwide/target/debug/deps/cross_crate_audit-9bd9f4ed832806d8) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test test_log_and_load_single_entry ... ok [INFO] [stdout] test test_log_and_load_multiple_entries ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-f887c9ca2c3a1072) [INFO] [stdout] [INFO] [stdout] running 23 tests [INFO] [stdout] test detect_duplicate_ids_sorted_by_count_descending ... ok [INFO] [stdout] test detect_heartbeat_gap_finds_injected_gap ... ok [INFO] [stdout] test detect_duplicate_ids_finds_injected_duplicates ... ok [INFO] [stdout] test log_heartbeat_sequence_numbers_recorded ... ok [INFO] [stdout] test log_heartbeat_creates_vellaveto_entry ... ok [INFO] [stdout] test detect_heartbeat_gap_no_gap_in_rapid_entries ... ok [INFO] [stdout] test empty_and_null_metadata ... ok [INFO] [stdout] test detect_heartbeat_gap_empty_log_returns_none ... ok [INFO] [stdout] test log_deny_verdict ... ok [INFO] [stdout] test concurrent_writes_all_captured ... ok [INFO] [stdout] test generate_report_on_empty_log ... ok [INFO] [stdout] test generate_report_with_mixed_verdicts ... ok [INFO] [stdout] test detect_duplicate_ids_empty_log_returns_empty ... ok [INFO] [stdout] test entries_from_fresh_logger_are_empty ... ok [INFO] [stdout] test detect_duplicate_ids_unique_entries_returns_empty ... ok [INFO] [stdout] test log_require_approval_verdict ... ok [INFO] [stdout] test detect_heartbeat_gap_single_entry_returns_none ... ok [INFO] [stdout] test load_entries_is_idempotent ... ok [INFO] [stdout] test log_single_entry_and_retrieve ... ok [INFO] [stdout] test unicode_in_action_fields ... ok [INFO] [stdout] test multiple_entries_preserve_order ... ok [INFO] [stdout] test large_metadata_does_not_corrupt_log ... ok [INFO] [stdout] test report_after_many_entries ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s [INFO] [stdout] [INFO] [stderr] Running tests/proptest_audit.rs (/opt/rustwide/target/debug/deps/proptest_audit-4999a30a26c35b7d) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test hash_chain_links_are_consistent ... ok [INFO] [stdout] test checkpoint_always_verifies ... ok [INFO] [stdout] test multiple_checkpoints_all_verify ... ok [INFO] [stdout] test hash_chain_always_verifies ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.17s [INFO] [stdout] [INFO] [stderr] Running tests/proptest_observability.rs (/opt/rustwide/target/debug/deps/proptest_observability-f3c0940392d03806) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test test_sampler_is_deterministic_for_same_trace_id ... ok [INFO] [stdout] test test_trace_context_round_trip_preserves_valid_traceparent ... ok [INFO] [stdout] test test_security_span_round_trip_preserves_core_fields ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s [INFO] [stdout] [INFO] [stderr] Doc-tests vellaveto_audit [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test src/adversa_top25.rs - adversa_top25 (line 22) ... ignored [INFO] [stdout] test src/atlas.rs - atlas (line 20) ... ignored [INFO] [stdout] test src/cosai.rs - cosai (line 25) ... ignored [INFO] [stdout] test src/dora.rs - dora (line 15) ... ignored [INFO] [stdout] test src/evidence_pack.rs - evidence_pack (line 16) ... ignored [INFO] [stdout] test src/gap_analysis.rs - gap_analysis (line 18) ... ignored [INFO] [stdout] test src/iso42001.rs - iso42001 (line 16) ... ignored [INFO] [stdout] test src/nis2.rs - nis2 (line 15) ... ignored [INFO] [stdout] test src/nist_ai600.rs - nist_ai600 (line 32) ... ignored [INFO] [stdout] test src/owasp_mcp.rs - owasp_mcp (line 17) ... ignored [INFO] [stdout] test src/observability/mod.rs - observability::RedactionConfig (line 986) ... ok [INFO] [stdout] test src/owasp_asi.rs - owasp_asi (line 15) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 10 ignored; 0 measured; 0 filtered out; finished in 1.21s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "67328332c24466d47e2d217d812014f7eb2f459b355a92aee89f0933f6c739b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "67328332c24466d47e2d217d812014f7eb2f459b355a92aee89f0933f6c739b2", kill_on_drop: false }` [INFO] [stdout] 67328332c24466d47e2d217d812014f7eb2f459b355a92aee89f0933f6c739b2