[INFO] fetching crate speccheck-core 0.4.1... [INFO] testing speccheck-core-0.4.1 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2 [INFO] extracting crate speccheck-core 0.4.1 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate speccheck-core 0.4.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate speccheck-core 0.4.1 [INFO] tweaked toml for crates.io crate speccheck-core 0.4.1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate speccheck-core 0.4.1 on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate speccheck-core 0.4.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded varisat-formula v0.2.2 [INFO] [stderr] Downloaded varisat v0.2.2 [INFO] [stderr] Downloaded vec_mut_scan v0.3.0 [INFO] [stderr] Downloaded varisat-internal-proof v0.2.2 [INFO] [stderr] Downloaded varisat-internal-macros v0.2.2 [INFO] [stderr] Downloaded partial_ref v0.3.3 [INFO] [stderr] Downloaded varisat-dimacs v0.2.2 [INFO] [stderr] Downloaded speccheck-nli v0.4.1 [INFO] [stderr] Downloaded varisat-checker v0.2.2 [INFO] [stderr] Downloaded partial_ref_derive v0.3.3 [INFO] [stderr] Downloaded peg-macros v0.6.3 [INFO] [stderr] Downloaded peg-runtime v0.6.3 [INFO] [stderr] Downloaded peg v0.6.3 [INFO] [stderr] Downloaded gherkin v0.15.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028 [INFO] running `Command { std: "docker" "start" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling varisat-formula v0.2.2 [INFO] [stderr] Compiling pest v2.8.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling partial_ref_derive v0.3.3 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling smawk v0.3.2 [INFO] [stderr] Compiling peg-runtime v0.6.3 [INFO] [stderr] Compiling rustc-demangle v0.1.27 [INFO] [stderr] Compiling pxfm v0.1.28 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling fax v0.2.6 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling partial_ref v0.3.3 [INFO] [stderr] Compiling peg-macros v0.6.3 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling varisat-internal-proof v0.2.2 [INFO] [stderr] Compiling owo-colors v4.3.0 [INFO] [stderr] Compiling varisat v0.2.2 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling varisat-dimacs v0.2.2 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling gherkin v0.15.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling typed-builder-macro v0.23.2 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling pulldown-cmark v0.12.2 [INFO] [stderr] Compiling terminal_size v0.4.4 [INFO] [stderr] Compiling varisat-checker v0.2.2 [INFO] [stderr] Compiling zip v0.6.6 [INFO] [stderr] Compiling pest_meta v2.8.6 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling supports-color v3.0.2 [INFO] [stderr] Compiling peg v0.6.3 [INFO] [stderr] Compiling quick-xml v0.36.2 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling ordered-float v2.10.1 [INFO] [stderr] Compiling miette-derive v7.6.0 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling typed-builder v0.23.2 [INFO] [stderr] Compiling pest_generator v2.8.6 [INFO] [stderr] Compiling supports-hyperlinks v3.2.0 [INFO] [stderr] Compiling vec_mut_scan v0.3.0 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling leb128 v0.2.5 [INFO] [stderr] Compiling supports-unicode v3.0.0 [INFO] [stderr] Compiling moxcms v0.8.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling speccheck-nli v0.4.1 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling pest_derive v2.8.6 [INFO] [stderr] Compiling backtrace v0.3.76 [INFO] [stderr] Compiling varisat-internal-macros v0.2.2 [INFO] [stderr] Compiling backtrace-ext v0.2.1 [INFO] [stderr] Compiling miette v7.6.0 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling tiff v0.11.3 [INFO] [stderr] Compiling image v0.25.10 [INFO] [stderr] Compiling docx-rs v0.4.20 [INFO] [stderr] Compiling speccheck-core v0.4.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2m 17s [INFO] running `Command { std: "docker" "inspect" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling docx-rs v0.4.20 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling varisat v0.2.2 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling backtrace v0.3.76 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling backtrace-ext v0.2.1 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling miette v7.6.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling speccheck-core v0.4.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2m 18s [INFO] running `Command { std: "docker" "inspect" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.27s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/deps/speccheck_core-617b28ed40a07350) [INFO] [stdout] [INFO] [stdout] running 1003 tests [INFO] [stdout] test audit_log::tests::append_then_read_last ... ok [INFO] [stdout] test audit_log::tests::canonical_body_is_deterministic_across_metadata_orderings ... ok [INFO] [stdout] test audit_log::tests::file_hash_round_trips_through_serde ... ok [INFO] [stdout] test aibom::tests::aibom_with_flagged_requirements ... ok [INFO] [stdout] test aibom::tests::empty_aibom ... ok [INFO] [stdout] test aibom::tests::aibom_findings_by_severity_counted ... ok [INFO] [stdout] test aibom::tests::aibom_with_clean_file ... ok [INFO] [stdout] test aibom::tests::aibom_multiple_files ... ok [INFO] [stdout] test audit_log::tests::genesis_prev_hash_is_64_hex_zeroes ... ok [INFO] [stdout] test aibom::tests::content_hash_differs_for_different_content ... ok [INFO] [stdout] test calibration::tests::adjusted_confidence_clamped_to_unit ... ok [INFO] [stdout] test aibom::tests::aibom_json_format ... ok [INFO] [stdout] test audit_log::tests::verify_tolerates_blank_lines ... ok [INFO] [stdout] test audit_log::tests::chain_extends_correctly ... ok [INFO] [stdout] test aibom::tests::aibom_rules_used_preserved ... ok [INFO] [stdout] test audit_log::tests::sha256_hex_known_vectors ... ok [INFO] [stdout] test aibom::tests::aibom_content_hash_present ... ok [INFO] [stdout] test calibration::tests::adjusted_confidence_base_times_weight ... ok [INFO] [stdout] test calibration::tests::display_summary_empty ... ok [INFO] [stdout] test audit_log::tests::verify_rejects_unknown_schema_version ... ok [INFO] [stdout] test audit_log::tests::verify_detects_missing_entry ... ok [INFO] [stdout] test audit_log::tests::verify_detects_reorder ... ok [INFO] [stdout] test aibom::tests::content_hash_deterministic ... ok [INFO] [stdout] test calibration::tests::display_summary_with_data ... ok [INFO] [stdout] test calibration::tests::weight_bayesian_smoothing_all_useful ... ok [INFO] [stdout] test calibration::tests::reset_clears_all_data ... ok [INFO] [stdout] test calibration::tests::load_save_roundtrip ... ok [INFO] [stdout] test calibration::tests::weight_bayesian_smoothing_mixed ... ok [INFO] [stdout] test audit_log::tests::verify_detects_mid_chain_tampering ... ok [INFO] [stdout] test calibration::tests::feedback_reduces_confidence_on_noisy_rules ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::manifest_is_canonical_sorted_keys ... ok [INFO] [stdout] test calibration::tests::load_invalid_json_returns_error ... ok [INFO] [stdout] test calibration::tests::load_nonexistent_returns_default ... ok [INFO] [stdout] test calibration::tests::record_mixed_feedback ... ok [INFO] [stdout] test calibration::tests::record_not_useful_feedback ... ok [INFO] [stdout] test calibration::tests::record_useful_feedback ... ok [INFO] [stdout] test calibration::tests::weight_bayesian_smoothing_mostly_not_useful ... ok [INFO] [stdout] test calibration::tests::empty_calibration_no_adjustment ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::verify_errors_on_missing_manifest ... ok [INFO] [stdout] test calibration::tests::weight_bayesian_smoothing_no_feedback ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::emit_produces_manifest_and_all_sections ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::slug_basic ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::slug_no_trailing_hyphen ... ok [INFO] [stdout] test cert_pack::tests::manifest_round_trips_through_canonical_json ... ok [INFO] [stdout] test config::tests::config_invalid_regex_does_not_crash ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::missing_narrative_renders_placeholder_not_provided ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::requirements_status_section_reflects_aibom ... ok [INFO] [stdout] test config::tests::config_rule_packs_pointing_to_nonexistent_file ... ok [INFO] [stdout] test config::tests::config_severity_override_for_off_rule_returns_none ... ok [INFO] [stdout] test config::tests::config_nli_threshold_boundary_values ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::sections_catalogue_has_no_duplicate_ids ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::provided_narrative_is_rendered_verbatim ... ok [INFO] [stdout] test config::tests::config_severity_parsing_case_insensitive ... ok [INFO] [stdout] test config::tests::default_config_all_rules_enabled ... ok [INFO] [stdout] test config::tests::config_with_all_rules_disabled ... ok [INFO] [stdout] test config::tests::config_with_conflicting_overrides ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::emit_is_idempotent_by_content_hash ... ok [INFO] [stdout] test config::tests::invalid_toml_syntax ... ok [INFO] [stdout] test config::tests::config_with_empty_custom_rules_array ... ok [INFO] [stdout] test config::tests::is_rule_enabled_off ... ok [INFO] [stdout] test config::tests::invalid_regex_in_custom_rule_gives_error ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::verify_detects_deleted_evidence_file ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::manifest_hashes_match_file_bytes ... ok [INFO] [stdout] test config::tests::parse_min_confidence_invalid_negative ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::verify_clean_pack_reports_no_issues ... ok [INFO] [stdout] test config::tests::parse_min_confidence_custom ... ok [INFO] [stdout] test config::tests::parse_min_confidence_default ... ok [INFO] [stdout] test config::tests::parse_nli_config_invalid_threshold ... ok [INFO] [stdout] test config::tests::load_config_reads_from_file ... ok [INFO] [stdout] test config::tests::parse_minimal_config ... ok [INFO] [stdout] test config::tests::parse_config_no_rule_packs_defaults_empty ... ok [INFO] [stdout] test config::tests::parse_nli_config_custom ... ok [INFO] [stdout] test config::tests::parse_min_confidence_invalid_too_high ... ok [INFO] [stdout] test config::tests::parse_nli_llm_zero_timeout ... ok [INFO] [stdout] test config::tests::parse_nli_config_defaults ... ok [INFO] [stdout] test config::tests::parse_nli_provider_defaults_to_heuristic ... ok [INFO] [stdout] test config::tests::parse_nli_provider_invalid ... ok [INFO] [stdout] test config::tests::parse_nli_provider_llm ... ok [INFO] [stdout] test config::tests::severity_override_returns_correct_value ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::verify_pack_without_audit_log_reports_none ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::verify_is_robust_against_extra_files ... ok [INFO] [stdout] test config::tests::parse_nli_llm_defaults ... ok [INFO] [stdout] test config::tests::parse_nli_provider_case_insensitive ... ok [INFO] [stdout] test config::tests::parse_nli_provider_heuristic_explicit ... ok [INFO] [stdout] test config::tests::parse_valid_config ... ok [INFO] [stdout] test config::tests::parse_config_with_rule_packs ... ok [INFO] [stdout] test config::tests::parse_min_confidence_boundary_values ... ok [INFO] [stdout] test cert_pack::tests::slug_truncates_and_strips_trailing_hyphens ... ok [INFO] [stdout] test config::tests::invalid_severity_gives_descriptive_error ... ok [INFO] [stdout] test config::tests::parse_nli_config_zero_batch_size ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::verify_chain_checks_embedded_audit_log ... ok [INFO] [stdout] test constraint::tests::normalize_strips_article ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::readme_references_all_sections ... ok [INFO] [stdout] test convert::tests::convert_to_gherkin_basic ... ok [INFO] [stdout] test convert::tests::convert_empty_document ... ok [INFO] [stdout] test convert::tests::convert_preserves_nested_sections ... ok [INFO] [stdout] test convert::tests::convert_roundtrip_preserves_ids ... ok [INFO] [stdout] test convert::tests::convert_to_ears_basic ... ok [INFO] [stdout] test cert_pack::annex_iv::tests::verify_detects_modified_section_file ... ok [INFO] [stdout] test convert::tests::convert_to_markdown_basic ... ok [INFO] [stdout] test convert::tests::convert_to_markdown_with_frontmatter ... ok [INFO] [stdout] test convert::tests::convert_to_yaml_basic ... ok [INFO] [stdout] test convert::tests::convert_yaml_with_frontmatter ... ok [INFO] [stdout] test convert::tests::target_format_from_str ... ok [INFO] [stdout] test convert::tests::target_format_extension ... ok [INFO] [stdout] test coverage::tests::format_human_shows_per_source_tags ... ok [INFO] [stdout] test convert::tests::ears_already_shall_not_double_wrapped ... ok [INFO] [stdout] test coverage::tests::inline_evidence_detects_tc_reference ... ok [INFO] [stdout] test convert::tests::yaml_escape_special_chars ... ok [INFO] [stdout] test coverage::tests::inline_evidence_ignores_unidentified_requirements ... ok [INFO] [stdout] test coverage::tests::map_merge_deduplicates_evidence ... ok [INFO] [stdout] test coverage::tests::toml_loader_errors_on_malformed ... ok [INFO] [stdout] test coverage::tests::junit_loader_errors_on_malformed_xml ... ok [INFO] [stdout] test coverage::tests::junit_loader_links_via_name_pattern ... ok [INFO] [stdout] test coverage::tests::junit_loader_links_via_property ... ok [INFO] [stdout] test coverage::tests::report_stacks_evidence_from_all_sources ... ok [INFO] [stdout] test coverage::tests::toml_loader_maps_requirements_to_tests ... ok [INFO] [stdout] test coverage::tests::toml_loader_returns_empty_on_missing_file ... ok [INFO] [stdout] test dashboard::tests::load_history_errors_on_bad_json ... ok [INFO] [stdout] test dashboard::tests::load_history_errors_on_missing_dir ... ok [INFO] [stdout] test dashboard::tests::load_history_reads_and_sorts_by_timestamp ... ok [INFO] [stdout] test dashboard::tests::render_empty_history_shows_empty_state ... ok [INFO] [stdout] test coverage::tests::junit_loader_skips_failing_testcases ... ok [INFO] [stdout] test dashboard::tests::render_escapes_html_in_commit_sha ... ok [INFO] [stdout] test dashboard::tests::render_handles_missing_commit_sha ... ok [INFO] [stdout] test dashboard::tests::render_is_deterministic_for_same_input ... ok [INFO] [stdout] test depgraph::tests::circular_dependency_detected ... ok [INFO] [stdout] test depgraph::tests::critical_path_computed ... ok [INFO] [stdout] test dashboard::tests::render_multi_baseline_trends ... ok [INFO] [stdout] test depgraph::tests::cycle_in_human_output ... ok [INFO] [stdout] test depgraph::tests::cross_file_dependencies ... ok [INFO] [stdout] test depgraph::tests::diamond_dependency ... ok [INFO] [stdout] test dashboard::tests::render_sparkline_has_polyline_with_n_points ... ok [INFO] [stdout] test coverage::tests::report_marks_uncovered_requirements ... ok [INFO] [stdout] test depgraph::tests::empty_graph ... ok [INFO] [stdout] test depgraph::tests::dot_format_output ... ok [INFO] [stdout] test depgraph::tests::single_requirement_no_deps ... ok [INFO] [stdout] test depgraph::tests::empty_graph_human_format ... ok [INFO] [stdout] test diagnostics::tests::diagnostic_confidence_field ... ok [INFO] [stdout] test depgraph::tests::human_format_output ... ok [INFO] [stdout] test diagnostics::tests::finding_serialization ... ok [INFO] [stdout] test depgraph::tests::json_format_structure ... ok [INFO] [stdout] test depgraph::tests::linear_dependency_chain ... ok [INFO] [stdout] test dashboard::tests::render_single_baseline_shows_current_stats ... ok [INFO] [stdout] test diff::tests::diff_all_removed ... ok [INFO] [stdout] test diagnostics::tests::severity_display ... ok [INFO] [stdout] test diagnostics::tests::severity_ordering ... ok [INFO] [stdout] test diff::tests::diff_added_requirement ... ok [INFO] [stdout] test depgraph::tests::leaves_and_roots_correct ... ok [INFO] [stdout] test diff::tests::diff_all_added ... ok [INFO] [stdout] test diff::tests::diff_empty_documents ... ok [INFO] [stdout] test diff::tests::diff_human_readable_empty ... ok [INFO] [stdout] test diff::tests::diff_human_readable_output ... ok [INFO] [stdout] test dashboard::tests::load_history_skips_non_json_files ... ok [INFO] [stdout] test diff::tests::diff_identical_documents ... ok [INFO] [stdout] test diagnostics::tests::finding_confidence_defaults_on_deserialize ... ok [INFO] [stdout] test diff::tests::diff_identical_documents_no_changes ... ok [INFO] [stdout] test constraint::tests::extract_between ... ok [INFO] [stdout] test diff::tests::diff_modified_requirement_by_id ... ok [INFO] [stdout] test diff::tests::diff_moved_by_text_no_id ... ok [INFO] [stdout] test diff::tests::diff_no_match_below_threshold ... ok [INFO] [stdout] test diff::tests::diff_removed_requirement ... ok [INFO] [stdout] test diff::tests::diff_moved_requirement ... ok [INFO] [stdout] test diff::tests::diff_json_output ... ok [INFO] [stdout] test diff::tests::diff_text_similarity_matching ... ok [INFO] [stdout] test diff::tests::diff_json_output_empty ... ok [INFO] [stdout] test diff::tests::diff_two_empty_documents ... ok [INFO] [stdout] test diff::tests::diff_with_no_ids_only_text_matching ... ok [INFO] [stdout] test diff::tests::text_similarity_completely_different ... ok [INFO] [stdout] test diff::tests::text_similarity_empty_strings ... ok [INFO] [stdout] test diff::tests::text_similarity_identical ... ok [INFO] [stdout] test diff::tests::text_similarity_one_empty_one_not ... ok [INFO] [stdout] test docx_writer::tests::returns_parse_error_for_non_docx_input ... ok [INFO] [stdout] test github::tests::github_annotations_empty ... ok [INFO] [stdout] test github::tests::github_annotations_error ... ok [INFO] [stdout] test github::tests::github_annotations_escapes_newlines ... ok [INFO] [stdout] test docx_writer::tests::returns_read_error_for_missing_input ... ok [INFO] [stdout] test github::tests::github_annotations_escapes_percent ... ok [INFO] [stdout] test github::tests::github_annotations_info_uses_notice ... ok [INFO] [stdout] test docx_writer::tests::coalesces_multi_run_paragraph_across_boundary ... ok [INFO] [stdout] test github::tests::github_annotations_multiple_files ... ok [INFO] [stdout] test github::tests::github_annotations_warning ... ok [INFO] [stdout] test github::tests::write_github_annotations_returns_count ... ok [INFO] [stdout] test incose::tests::all_incose_attributes_covered ... ok [INFO] [stdout] test docx_writer::tests::replaces_word_in_single_run_paragraph ... ok [INFO] [stdout] test constraint::tests::extract_at_least ... ok [INFO] [stdout] test incose::tests::clean_spec_gets_100 ... ok [INFO] [stdout] test incose::tests::human_readable_format ... ok [INFO] [stdout] test incose::tests::human_judgment_attributes_not_scored ... ok [INFO] [stdout] test incose::tests::spider_chart_has_all_categories ... ok [INFO] [stdout] test docx_writer::tests::leaves_paragraphs_without_matches_untouched ... ok [INFO] [stdout] test incose::tests::violations_reduce_score ... ok [INFO] [stdout] test incose::tests::scored_attributes_are_scored ... ok [INFO] [stdout] test ir::tests::frontmatter_with_extra_fields ... ok [INFO] [stdout] test ir::tests::requirement_kind_equality ... ok [INFO] [stdout] test incose::tests::zero_requirements_gives_perfect_score ... ok [INFO] [stdout] test ir::tests::source_span_default_is_zero ... ok [INFO] [stdout] test junit::tests::emit_junit_counts_tests_failures_and_errors ... ok [INFO] [stdout] test junit::tests::emit_junit_carries_severity_in_failure_type_attribute ... ok [INFO] [stdout] test docx_writer::tests::noop_passthrough_preserves_text_when_no_replacements_match ... ok [INFO] [stdout] test constraint::tests::extract_not_exceed ... ok [INFO] [stdout] test constraint::tests::extract_less_than ... ok [INFO] [stdout] test junit::tests::emit_junit_is_deterministic_for_same_input ... ok [INFO] [stdout] test incose::tests::spider_chart_format_json ... ok [INFO] [stdout] test ir::tests::spec_format_equality ... ok [INFO] [stdout] test junit::tests::emit_junit_emits_synthetic_clean_testcase_when_clean_files_exist ... ok [INFO] [stdout] test junit::tests::emit_junit_escapes_xml_metacharacters_in_attributes_and_text ... ok [INFO] [stdout] test docx_writer::tests::apply_replacements_reports_paragraph_count ... ok [INFO] [stdout] test markdown_report::tests::epoch_days_to_date_known_date ... ok [INFO] [stdout] test junit::tests::emit_junit_names_testcases_by_path_line_and_rule ... ok [INFO] [stdout] test docx_writer::tests::applies_multiple_replacements_in_order ... ok [INFO] [stdout] test junit::tests::emit_junit_produces_valid_xml_header_and_root ... ok [INFO] [stdout] test docx_writer::tests::empty_replacements_list_is_a_noop_copy ... ok [INFO] [stdout] test markdown_report::tests::category_name_mapping ... ok [INFO] [stdout] test markdown_report::tests::epoch_days_to_date_epoch ... ok [INFO] [stdout] test markdown_report::tests::format_timestamp_is_nonempty ... ok [INFO] [stdout] test markdown_report::tests::recommendations_high_ambiguity ... ok [INFO] [stdout] test junit::tests::emit_junit_omits_clean_testcase_when_all_files_have_findings ... ok [INFO] [stdout] test incose::tests::incose_violations_affect_conforming ... ok [INFO] [stdout] test metrics::tests::aggregate_empty ... ok [INFO] [stdout] test markdown_report::tests::recommendations_low_testability ... ok [INFO] [stdout] test metrics::tests::baseline_serializes_schema_version_and_commit_sha ... ok [INFO] [stdout] test metrics::tests::baseline_deserializes_legacy_without_schema_version_or_commit_sha ... ok [INFO] [stdout] test metrics::tests::category_breakdown_json_is_sorted_deterministically ... ok [INFO] [stdout] test metrics::tests::category_breakdown_populated ... ok [INFO] [stdout] test metrics::tests::aggregate_multiple ... ok [INFO] [stdout] test metrics::tests::aggregate_single_file_same_as_individual ... ok [INFO] [stdout] test metrics::tests::compare_improvement ... ok [INFO] [stdout] test metrics::tests::compare_regression ... ok [INFO] [stdout] test metrics::tests::completeness_score_with_sections ... ok [INFO] [stdout] test metrics::tests::coverage_ratio_all_covered ... ok [INFO] [stdout] test metrics::tests::coverage_ignores_unidentified ... ok [INFO] [stdout] test metrics::tests::coverage_ratio_none_covered ... ok [INFO] [stdout] test metrics::tests::empty_document_metrics ... ok [INFO] [stdout] test metrics::tests::coverage_ratio_partial ... ok [INFO] [stdout] test metrics::tests::format_human_output ... ok [INFO] [stdout] test metrics::tests::format_human_zero_requirements ... ok [INFO] [stdout] test metrics::tests::format_comparison_output ... ok [INFO] [stdout] test metrics::tests::format_coverage_human_output ... ok [INFO] [stdout] test metrics::tests::metrics_massive_ambiguity_capped_at_100 ... ok [INFO] [stdout] test metrics::tests::metrics_all_requirements_identified ... ok [INFO] [stdout] test metrics::tests::metrics_no_requirements_identified ... ok [INFO] [stdout] test metrics::tests::metrics_with_ambiguity_findings ... ok [INFO] [stdout] test metrics::tests::grade_from_score ... ok [INFO] [stdout] test metrics::tests::metrics_with_requirements ... ok [INFO] [stdout] test metrics::tests::score_on_empty_document_has_valid_grade ... ok [INFO] [stdout] test metrics::tests::metrics_with_testability_findings ... ok [INFO] [stdout] test parser::docx_parser::tests::classify_requirement_by_id ... ok [INFO] [stdout] test parser::docx_parser::tests::classify_requirement_by_content ... ok [INFO] [stdout] test metrics::tests::overall_score_in_range ... ok [INFO] [stdout] test metrics::tests::nested_sections_counted ... ok [INFO] [stdout] test parser::docx_parser::tests::extract_req_id_absent ... ok [INFO] [stdout] test parser::docx_parser::tests::docx_parser_extensions ... ok [INFO] [stdout] test parser::docx_parser::tests::docx_parser_probe_returns_false ... ok [INFO] [stdout] test parser::docx_parser::tests::extract_req_id_present ... ok [INFO] [stdout] test parser::docx_parser::tests::is_requirement_text_non_requirement ... ok [INFO] [stdout] test parser::docx_parser::tests::is_requirement_text_shall ... ok [INFO] [stdout] test parser::docx_parser::tests::native_parse_corrupted_docx_returns_error ... ok [INFO] [stdout] test parser::docx_parser::tests::native_parse_empty_docx ... ok [INFO] [stdout] test constraint::tests::no_constraints_from_plain_text ... ok [INFO] [stdout] test parser::docx_parser::tests::pandoc_fallback_to_native ... ok [INFO] [stdout] test parser::docx_parser::tests::parse_heading_style_heading1 ... ok [INFO] [stdout] test parser::docx_parser::tests::parse_nonexistent_file_returns_error ... ok [INFO] [stdout] test parser::docx_parser::tests::parse_heading_style_title ... ok [INFO] [stdout] test parser::docx_parser::tests::parse_heading_style_non_heading ... ok [INFO] [stdout] test parser::docx_parser::tests::native_parse_of_programmatic_docx ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_event_driven ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_no_shall_returns_none ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_event_with_option ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_option_if ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_option_where ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_event_with_state ... ok [INFO] [stdout] test parser::ears::tests::extensions_returns_ears ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_ubiquitous ... ok [INFO] [stdout] test parser::ears::tests::parse_empty_content ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_state_driven ... ok [INFO] [stdout] test parser::ears::tests::detect_pattern_state_with_option ... ok [INFO] [stdout] test parser::ears::tests::parse_event_driven_pattern ... ok [INFO] [stdout] test parser::ears::tests::parse_event_driven_with_option_pattern ... ok [INFO] [stdout] test parser::ears::tests::parse_event_driven_with_state_pattern ... ok [INFO] [stdout] test parser::docx_parser::tests::has_pandoc_does_not_panic ... ok [INFO] [stdout] test parser::ears::tests::parse_multiple_requirements ... ok [INFO] [stdout] test parser::ears::tests::parse_option_driven_where_pattern ... ok [INFO] [stdout] test parser::ears::tests::parse_ubiquitous_pattern ... ok [INFO] [stdout] test parser::ears::tests::parse_utf8_in_ears_requirement ... ok [INFO] [stdout] test parser::ears::tests::parse_whitespace_only ... ok [INFO] [stdout] test parser::ears::tests::path_preserved ... ok [INFO] [stdout] test parser::ears::tests::parse_plain_text_no_ears_keywords ... ok [INFO] [stdout] test parser::ears::tests::probe_detects_ears_content ... ok [INFO] [stdout] test parser::ears::tests::raw_text_preserved ... ok [INFO] [stdout] test parser::ears::tests::skip_comments_and_blank_lines ... ok [INFO] [stdout] test parser::ears::tests::skip_lines_without_shall ... ok [INFO] [stdout] test parser::ears::tests::source_spans_are_accurate ... ok [INFO] [stdout] test parser::gherkin_parser::tests::extensions_returns_feature ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_background_steps ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_empty_file ... ok [INFO] [stdout] test parser::ears::tests::parse_state_driven_pattern ... ok [INFO] [stdout] test parser::gherkin_parser::tests::format_is_gherkin ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_feature_with_empty_scenario ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_feature_with_multiple_rules_and_scenarios ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_feature_with_rule ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_feature_with_tags ... ok [INFO] [stdout] test parser::ears::tests::parse_only_comments ... ok [INFO] [stdout] test parser::ears::tests::parse_option_driven_if_pattern ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_simple_feature ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_invalid_gherkin_returns_error ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_whitespace_only_file ... ok [INFO] [stdout] test parser::gherkin_parser::tests::probe_detects_gherkin ... ok [INFO] [stdout] test parser::gherkin_parser::tests::source_spans_are_populated ... ok [INFO] [stdout] test parser::gherkin_parser::tests::step_type_classification ... ok [INFO] [stdout] test parser::reqif_parser::tests::classify_reqif_functional ... ok [INFO] [stdout] test parser::reqif_parser::tests::classify_reqif_nonfunctional ... ok [INFO] [stdout] test parser::reqif_parser::tests::compute_line_number_first_line ... ok [INFO] [stdout] test parser::reqif_parser::tests::compute_line_number_second_line ... ok [INFO] [stdout] test parser::reqif_parser::tests::extensions_include_reqif_and_reqifz ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_multiple_scenarios ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_scenario_outline_with_examples ... ok [INFO] [stdout] test parser::reqif_parser::tests::parse_empty_reqif ... ok [INFO] [stdout] test parser::reqif_parser::tests::parse_minimal_reqif ... ok [INFO] [stdout] test parser::reqif_parser::tests::parse_reqif_invalid_xml ... ok [INFO] [stdout] test parser::reqif_parser::tests::parse_reqif_with_hierarchy ... ok [INFO] [stdout] test parser::reqif_parser::tests::strip_xhtml_empty ... ok [INFO] [stdout] test parser::reqif_parser::tests::strip_xhtml_nested_elements ... ok [INFO] [stdout] test parser::reqif_parser::tests::strip_xhtml_no_tags ... ok [INFO] [stdout] test parser::reqif_parser::tests::strip_xhtml_simple_tags ... ok [INFO] [stdout] test parser::gherkin_parser::tests::parse_feature_with_description ... ok [INFO] [stdout] test parser::gherkin_parser::tests::raw_text_preserved ... ok [INFO] [stdout] test parser::reqif_parser::tests::probe_detects_reqif_content ... ok [INFO] [stdout] test parser::reqif_parser::tests::strip_xhtml_with_entities ... ok [INFO] [stdout] test parser::tests::could_keyword_creates_requirement ... ok [INFO] [stdout] test parser::reqif_parser::tests::parse_reqif_with_xhtml_values ... ok [INFO] [stdout] test parser::reqif_parser::tests::strip_xhtml_table ... ok [INFO] [stdout] test parser::tests::extensions_returns_md_and_markdown ... ok [INFO] [stdout] test parser::tests::heading_depth_preserved ... ok [INFO] [stdout] test parser::tests::code_blocks_are_skipped ... ok [INFO] [stdout] test parser::tests::may_modal_creates_requirement ... ok [INFO] [stdout] test parser::tests::must_keyword_creates_requirement ... ok [INFO] [stdout] test parser::tests::may_as_month_does_not_create_requirement ... ok [INFO] [stdout] test parser::tests::multiple_requirements_in_section ... ok [INFO] [stdout] test parser::tests::non_requirement_list_items_skipped ... ok [INFO] [stdout] test parser::tests::offset_to_line_col_beyond_text_length ... ok [INFO] [stdout] test parser::tests::offset_to_line_col_second_line ... ok [INFO] [stdout] test parser::tests::offset_to_line_col_first_line ... ok [INFO] [stdout] test parser::tests::parse_empty_file ... ok [INFO] [stdout] test parser::tests::parse_frontmatter_only_no_body ... ok [INFO] [stdout] test parser::tests::parse_deeply_nested_h6_sections ... ok [INFO] [stdout] test parser::tests::parse_frontmatter_without_domain_or_version ... ok [INFO] [stdout] test parser::tests::parse_gherkin_step_in_markdown_list ... ok [INFO] [stdout] test parser::tests::parse_html_blocks_embedded_in_markdown ... ok [INFO] [stdout] test parser::tests::parse_code_block_with_requirement_keywords_not_extracted ... ok [INFO] [stdout] test parser::tests::parse_inline_code_in_requirement ... ok [INFO] [stdout] test parser::tests::parse_frontmatter_with_windows_line_endings ... ok [INFO] [stdout] test parser::tests::parse_mixed_line_endings ... ok [INFO] [stdout] test parser::tests::parse_nested_sections ... ok [INFO] [stdout] test parser::tests::parse_multiple_top_level_h1_sections ... ok [INFO] [stdout] test parser::tests::parse_nfr_id_classified_correctly ... ok [INFO] [stdout] test parser::tests::parse_requirement_before_any_heading ... ok [INFO] [stdout] test parser::tests::parse_requirement_with_explicit_id ... ok [INFO] [stdout] test parser::tests::parse_user_story_in_paragraph ... ok [INFO] [stdout] test parser::tests::parse_utf8_special_characters ... ok [INFO] [stdout] test parser::tests::parse_very_long_lines ... ok [INFO] [stdout] test parser::tests::parse_simple_heading_and_requirement ... ok [INFO] [stdout] test constraint::tests::extract_exact ... ok [INFO] [stdout] test parser::tests::parse_whitespace_only_file ... ok [INFO] [stdout] test parser::tests::parse_yaml_frontmatter ... ok [INFO] [stdout] test parser::tests::parse_windows_line_endings ... ok [INFO] [stdout] test parser::tests::path_preserved ... ok [INFO] [stdout] test parser::tests::raw_text_preserved ... ok [INFO] [stdout] test parser::tests::requirement_from_paragraph ... ok [INFO] [stdout] test parser::tests::preserve_source_spans ... ok [INFO] [stdout] test parser::tests::probe_detects_markdown ... ok [INFO] [stdout] test parser::tests::should_keyword_creates_requirement ... ok [INFO] [stdout] test parser::tests::will_keyword_creates_requirement ... ok [INFO] [stdout] test parser::yaml_parser::tests::empty_sections_list ... ok [INFO] [stdout] test constraint::tests::extract_greater_than ... ok [INFO] [stdout] test parser::yaml_parser::tests::extensions_returns_yaml_and_yml ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_deeply_nested_yaml_structure ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_empty_file ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_whitespace_only_file ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_full_yaml_spec ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_yaml_requirements_map_format ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_yaml_with_requirement_missing_text_field ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_yaml_with_special_characters_in_text ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_yaml_with_nfr_classification ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_yaml_with_service_metadata ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_yaml_with_constraint_classification ... ok [INFO] [stdout] test parser::yaml_parser::tests::raw_text_preserved ... ok [INFO] [stdout] test parser::yaml_parser::tests::section_with_no_requirements ... ok [INFO] [stdout] test parser::yaml_parser::tests::source_spans_are_populated ... ok [INFO] [stdout] test parser::yaml_parser::tests::probe_detects_yaml_spec ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_invalid_yaml ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_yaml_with_subsections ... ok [INFO] [stdout] test parser::yaml_parser::tests::parse_yaml_without_metadata ... ok [INFO] [stdout] test parser::yaml_parser::tests::path_preserved ... ok [INFO] [stdout] test parser::yaml_parser::tests::performance_classification_by_content ... ok [INFO] [stdout] test pipeline::tests::dedup_keeps_tst_when_it_has_higher_severity ... ok [INFO] [stdout] test pipeline::tests::dedup_drops_tst_when_com_has_equal_or_higher_severity ... ok [INFO] [stdout] test pipeline::tests::dedup_leaves_unrelated_diagnostics_alone ... ok [INFO] [stdout] test pipeline::tests::dedup_does_not_collapse_distinct_spans ... ok [INFO] [stdout] test pipeline::tests::dedup_handles_empty_and_singletons ... ok [INFO] [stdout] test markdown_report::tests::report_no_findings_message ... ok [INFO] [stdout] test constraint::tests::extract_rate ... ok [INFO] [stdout] test markdown_report::tests::report_includes_recommendations ... ok [INFO] [stdout] test markdown_report::tests::report_contains_executive_summary ... ok [INFO] [stdout] test markdown_report::tests::report_includes_baseline_comparison ... ok [INFO] [stdout] test markdown_report::tests::report_contains_quality_breakdown ... ok [INFO] [stdout] test markdown_report::tests::report_includes_findings ... ok [INFO] [stdout] test markdown_report::tests::report_contains_frontmatter ... ok [INFO] [stdout] test markdown_report::tests::report_includes_fix_suggestion ... ok [INFO] [stdout] test profile::tests::acronym_whitelist_extends_global_list ... ok [INFO] [stdout] test profile::tests::builtin_profile_content_returns_toml ... ok [INFO] [stdout] test profile::tests::custom_rules_from_profile_fire ... ok [INFO] [stdout] test profile::tests::external_profile_file_loads ... ok [INFO] [stdout] test profile::tests::invalid_profile_toml_gives_error ... ok [INFO] [stdout] test profile::tests::parse_minimal_profile ... ok [INFO] [stdout] test profile::tests::parse_valid_profile ... ok [INFO] [stdout] test profile::tests::profile_invalid_min_confidence ... ok [INFO] [stdout] test profile::tests::profile_invalid_regex_gives_error ... ok [INFO] [stdout] test profile::tests::profile_invalid_severity_gives_error ... ok [INFO] [stdout] test profile::tests::profile_merges_into_config ... ok [INFO] [stdout] test profile::tests::profile_plus_config_merge_correctly ... ok [INFO] [stdout] test profile::tests::resolve_builtin_profile ... ok [INFO] [stdout] test pipeline::tests::pipeline_corpus_produces_findings_for_cross_file_duplicates ... ok [INFO] [stdout] test profile::tests::builtin_profiles_parse_without_error ... ok [INFO] [stdout] test profile::tests::resolve_external_profile_by_path ... ok [INFO] [stdout] test pipeline::tests::pipeline_with_no_rules_enabled ... ok [INFO] [stdout] test profile::tests::resolve_unknown_profile_errors ... ok [INFO] [stdout] test profile::tests::severity_overrides_apply ... ok [INFO] [stdout] test rdjsonl::tests::emit_empty_produces_empty_string ... ok [INFO] [stdout] test rdjsonl::tests::fix_suggestion_round_trips_as_rdf_suggestion ... ok [INFO] [stdout] test rdjsonl::tests::no_suggestions_field_when_no_fix ... ok [INFO] [stdout] test rdjsonl::tests::rule_id_lands_in_code_value ... ok [INFO] [stdout] test rdjsonl::tests::severity_maps_to_rdf_constants ... ok [INFO] [stdout] test rdjsonl::tests::emit_one_per_line_and_trailing_newline ... ok [INFO] [stdout] test rdjsonl::tests::each_line_is_independently_valid_json ... ok [INFO] [stdout] test rdjsonl::tests::location_range_carries_start_and_end ... ok [INFO] [stdout] test pipeline::tests::pipeline_corpus_with_many_files ... ok [INFO] [stdout] test pipeline::tests::pipeline_empty_document ... ok [INFO] [stdout] test pipeline::tests::pipeline_diagnostics_have_confidence_scores ... ok [INFO] [stdout] test pipeline::tests::pipeline_corpus_with_zero_files ... ok [INFO] [stdout] test pipeline::tests::pipeline_confidence_filtering_works ... ok [INFO] [stdout] test report::tests::report_escapes_html_in_messages ... ok [INFO] [stdout] test report::tests::report_groups_by_category ... ok [INFO] [stdout] test rule_pack::tests::load_rule_pack_missing_file ... ok [INFO] [stdout] test rule_pack::tests::parse_pack_invalid_regex ... ok [INFO] [stdout] test rule_pack::tests::parse_pack_invalid_severity ... ok [INFO] [stdout] test rule_pack::tests::parse_pack_invalid_toml ... ok [INFO] [stdout] test rule_pack::tests::parse_pack_no_rules ... ok [INFO] [stdout] test rule_pack::tests::parse_valid_rule_pack ... ok [INFO] [stdout] test rules::ambiguity::tests::escape_hatch_does_not_fire_on_clean_text ... ok [INFO] [stdout] test rules::ambiguity::tests::escape_hatch_fires_on_and_so_on ... ok [INFO] [stdout] test rules::ambiguity::tests::escape_hatch_fires_on_etc ... ok [INFO] [stdout] test rules::ambiguity::tests::escape_hatch_fix_on_and_so_on ... ok [INFO] [stdout] test rules::ambiguity::tests::escape_hatch_fix_suggests_removal ... ok [INFO] [stdout] test pipeline::tests::pipeline_returns_empty_for_clean_document ... ok [INFO] [stdout] test rules::ambiguity::tests::implicit_reference_does_not_fire_on_explicit_subject ... ok [INFO] [stdout] test rule_pack::tests::load_rule_packs_resolves_relative_paths ... ok [INFO] [stdout] test rules::ambiguity::tests::implicit_reference_fires_on_it ... ok [INFO] [stdout] test rules::ambiguity::tests::implicit_reference_fires_on_this ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_boundary_does_not_fire_on_text_without_units ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_boundary_does_not_fire_with_maximum ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_boundary_does_not_fire_with_at_least ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_boundary_fires_on_numeric_without_range ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_on_http_404 ... ok [INFO] [stdout] test report::tests::empty_report_shows_no_findings ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_on_factor ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_on_http_status ... ok [INFO] [stdout] test report::tests::multiple_files_in_report ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_on_percentage ... ok [INFO] [stdout] test pipeline::tests::pipeline_walks_nested_subsections ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_on_req_id ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_on_v_prefix ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_with_known_unit ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_with_mb ... ok [INFO] [stdout] test rules::ambiguity::tests::multiple_rules_fire_on_same_requirement ... ok [INFO] [stdout] test rules::ambiguity::tests::negation_scope_does_not_fire_on_clean_text ... ok [INFO] [stdout] test rules::ambiguity::tests::negation_scope_does_not_fire_on_simple_negation ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_on_version ... ok [INFO] [stdout] test rules::ambiguity::tests::negation_scope_fires_on_not_always ... ok [INFO] [stdout] test rules::ambiguity::tests::passive_no_agent_does_not_fire_on_active_voice ... ok [INFO] [stdout] test rules::ambiguity::tests::negation_scope_fires_on_not_all ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_with_requests ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_fires_on_payload_without_unit ... ok [INFO] [stdout] test rules::ambiguity::tests::passive_no_agent_does_not_fire_with_agent ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_fires_on_bare_number ... ok [INFO] [stdout] test rules::ambiguity::tests::passive_no_agent_fires_on_passive ... ok [INFO] [stdout] test rules::ambiguity::tests::temporal_ambiguity_does_not_fire_with_precise_timing ... ok [INFO] [stdout] test rules::ambiguity::tests::temporal_ambiguity_fires_on_after ... ok [INFO] [stdout] test rules::ambiguity::tests::temporal_ambiguity_fires_on_eventually ... ok [INFO] [stdout] test rules::ambiguity::tests::undefined_comparative_fires_on_better ... ok [INFO] [stdout] test rules::ambiguity::tests::undefined_comparative_does_not_fire_on_clean_text ... ok [INFO] [stdout] test rules::ambiguity::tests::undefined_comparative_fires_on_faster ... ok [INFO] [stdout] test rules::ambiguity::tests::undefined_comparative_does_not_fire_with_baseline ... ok [INFO] [stdout] test rules::ambiguity::tests::missing_units_does_not_fire_with_seconds ... ok [INFO] [stdout] test rules::ambiguity::tests::temporal_ambiguity_does_not_fire_on_clean_text ... ok [INFO] [stdout] test rules::ambiguity::tests::vague_quantifier_does_not_fire_on_clean_text ... ok [INFO] [stdout] test rules::ambiguity::tests::vague_quantifier_fires_on_a_lot_of ... ok [INFO] [stdout] test rules::ambiguity::tests::weak_modal_does_not_fire_on_must ... ok [INFO] [stdout] test rules::ambiguity::tests::weak_modal_does_not_fire_on_shall ... ok [INFO] [stdout] test rules::ambiguity::tests::vague_quantifier_fires_on_several ... ok [INFO] [stdout] test rules::ambiguity::tests::weak_modal_fires_on_should ... ok [INFO] [stdout] test rules::ambiguity::tests::weak_modal_fires_on_might ... ok [INFO] [stdout] test rules::ambiguity::tests::weak_modal_fix_preserves_case ... ok [INFO] [stdout] test rules::ambiguity::tests::weak_modal_fix_suggests_shall ... ok [INFO] [stdout] test rules::ambiguity::tests::weak_modal_fix_on_could ... ok [INFO] [stdout] test rules::ambiguity::tests::weak_modal_fix_on_might ... ok [INFO] [stdout] test rules::ambiguity::tests::weasel_word_fires_on_appropriate ... ok [INFO] [stdout] test rules::ambiguity::tests::weasel_word_case_insensitive ... ok [INFO] [stdout] test rules::ambiguity::tests::weasel_word_does_not_fire_on_clean_text ... ok [INFO] [stdout] test rules::completeness::tests::com001_does_not_fire_on_section_without_functional_reqs ... ok [INFO] [stdout] test rules::ambiguity::tests::weasel_word_respects_word_boundaries ... ok [INFO] [stdout] test rules::ambiguity::tests::weasel_word_fix_for_sufficient ... ok [INFO] [stdout] test rules::completeness::tests::com001_does_not_fire_when_req_mentions_error ... ok [INFO] [stdout] test rules::ambiguity::tests::weasel_word_fix_suggests_replacement ... ok [INFO] [stdout] test rules::completeness::tests::com001_fires_on_section_without_error_handling ... ok [INFO] [stdout] test rules::ambiguity::tests::weasel_word_span_accuracy ... ok [INFO] [stdout] test rules::completeness::tests::com001_does_not_fire_with_error_subsection ... ok [INFO] [stdout] test rules::ambiguity::tests::weasel_word_multiple_matches ... ok [INFO] [stdout] test rules::completeness::tests::com002_does_not_fire_on_non_shall_requirement ... ok [INFO] [stdout] test rules::completeness::tests::com002_does_not_fire_with_acceptance_subsection ... ok [INFO] [stdout] test report::tests::report_groups_by_severity ... ok [INFO] [stdout] test rules::completeness::tests::com002_does_not_fire_with_http_status_code ... ok [INFO] [stdout] test rules::completeness::tests::com002_does_not_fire_with_protocol_name ... ok [INFO] [stdout] test report::tests::report_includes_file_locations ... ok [INFO] [stdout] test rules::completeness::tests::com002_does_not_fire_with_time_duration ... ok [INFO] [stdout] test report::tests::report_includes_summary_stats ... ok [INFO] [stdout] test rules::completeness::tests::com002_skipped_by_named_standard_inline ... ok [INFO] [stdout] test rules::completeness::tests::com002_fires_on_req_without_acceptance_criteria ... ok [INFO] [stdout] test rules::completeness::tests::com002_skipped_by_mechanism_clause ... ok [INFO] [stdout] test rules::completeness::tests::com002_does_not_fire_when_given_when_then_follows ... ok [INFO] [stdout] test rules::completeness::tests::com002_skipped_by_countable_event_threshold ... ok [INFO] [stdout] test rules::completeness::tests::com002_uses_req_id_when_available ... ok [INFO] [stdout] test pipeline::tests::pipeline_runs_all_rules ... ok [INFO] [stdout] test report::tests::report_includes_rule_explanations ... ok [INFO] [stdout] test rules::completeness::tests::com002_still_fires_on_bare_verb_object ... ok [INFO] [stdout] test rules::contradiction::tests::con001_does_not_fire_on_single_requirement ... ok [INFO] [stdout] test rules::completeness::tests::com003_does_not_fire_with_boundary_in_text ... ok [INFO] [stdout] test rules::completeness::tests::com003_does_not_fire_on_simple_req ... ok [INFO] [stdout] test rules::completeness::tests::com003_does_not_fire_with_boundary_sibling ... ok [INFO] [stdout] test rules::contradiction::tests::con001_does_not_fire_on_different_objects ... ok [INFO] [stdout] test rules::completeness::tests::com003_fires_on_input_without_boundary ... ok [INFO] [stdout] test rules::completeness::tests::com003_fires_on_external_call ... ok [INFO] [stdout] test pipeline::tests::pipeline_with_only_semantic_rules_semantic_disabled ... ok [INFO] [stdout] test rules::completeness::tests::com003_fires_on_numeric_without_boundary ... ok [INFO] [stdout] test rules::contradiction::tests::con001_fires_with_must_modal ... ok [INFO] [stdout] test rules::contradiction::tests::con002_fires_on_lower_bound_exceeds_upper ... ok [INFO] [stdout] test rules::contradiction::tests::con004_does_not_fire_on_unrelated_requirements ... ok [INFO] [stdout] test rules::contradiction::tests::con001_fires_on_shall_vs_shall_not ... ok [INFO] [stdout] test rules::contradiction::tests::con003_does_not_fire_on_single_requirement ... ok [INFO] [stdout] test rules::contradiction::tests::con004_fires_on_always_vs_never ... ok [INFO] [stdout] test rules::contradiction::tests::con004_fires_on_enable_vs_disable ... ok [INFO] [stdout] test rules::contradiction::tests::con002_does_not_fire_on_consistent_values ... ok [INFO] [stdout] test pipeline::tests::pipeline_document_where_every_requirement_triggers_rules ... ok [INFO] [stdout] test rules::contradiction::tests::con004_fires_on_allow_vs_deny ... ok [INFO] [stdout] test rules::contradiction::tests::con003_does_not_fire_on_different_actions ... ok [INFO] [stdout] test rules::contradiction::tests::con003_fires_on_before_vs_after ... ok [INFO] [stdout] test pipeline::tests::pipeline_sorts_diagnostics_by_location ... ok [INFO] [stdout] test rules::contradiction::tests::con002_does_not_fire_on_different_parameters ... ok [INFO] [stdout] test rules::contradiction::tests::con002_fires_on_exact_vs_upper_bound ... ok [INFO] [stdout] test rules::contradiction::tests::con003_fires_with_prior_to_vs_following ... ok [INFO] [stdout] test rules::contradiction::tests::con006_is_deterministic_phase ... ok [INFO] [stdout] test rules::contradiction::tests::con002_fires_on_different_exact_values ... ok [INFO] [stdout] test rules::contradiction::tests::keyword_overlap_partial ... ok [INFO] [stdout] test rules::contradiction::tests::nli_contradiction_is_semantic_phase ... ok [INFO] [stdout] test rules::contradiction::tests::nli_contradiction_with_noop_detector_produces_nothing ... ok [INFO] [stdout] test rules::criterion::tests::boundary_below_above ... ok [INFO] [stdout] test rules::contradiction::tests::keyword_overlap_both_empty ... ok [INFO] [stdout] test rules::criterion::tests::boundary_between_and ... ok [INFO] [stdout] test rules::contradiction::tests::nli_contradiction_no_detector_produces_nothing ... ok [INFO] [stdout] test rules::contradiction::tests::nli_contradiction_skips_short_requirements ... ok [INFO] [stdout] test rules::criterion::tests::boundary_up_to ... ok [INFO] [stdout] test rules::contradiction::tests::nli_contradiction_below_threshold_no_fire ... ok [INFO] [stdout] test rules::contradiction::tests::nli_contradiction_fires_above_threshold ... ok [INFO] [stdout] test rules::criterion::tests::boundary_shall_not_exceed ... ok [INFO] [stdout] test rules::criterion::tests::composite_still_flags_genuinely_vague_requirements ... ok [INFO] [stdout] test rules::criterion::tests::criticality_asil ... ok [INFO] [stdout] test rules::criterion::tests::criticality_dal ... ok [INFO] [stdout] test rules::contradiction::tests::keyword_overlap_identical ... ok [INFO] [stdout] test rules::criterion::tests::criticality_safety_goal ... ok [INFO] [stdout] test rules::criterion::tests::enumeration_three_items ... ok [INFO] [stdout] test rules::criterion::tests::boundary_within_plus_minus ... ok [INFO] [stdout] test rules::criterion::tests::composite_recognises_real_spec_examples ... ok [INFO] [stdout] test rules::criterion::tests::enumeration_two_items_too_short ... ok [INFO] [stdout] test rules::criterion::tests::enumeration_with_and ... ok [INFO] [stdout] test rules::criterion::tests::boundary_shall_be_limited ... ok [INFO] [stdout] test rules::criterion::tests::criticality_fha ... ok [INFO] [stdout] test rules::contradiction::tests::con004_does_not_fire_without_opposing_qualifier ... ok [INFO] [stdout] test rules::criterion::tests::list_header_as_follows ... ok [INFO] [stdout] test rules::criterion::tests::list_header_the_following ... ok [INFO] [stdout] test rules::criterion::tests::list_header_trailing_colon ... ok [INFO] [stdout] test rules::criterion::tests::criticality_sil ... ok [INFO] [stdout] test rules::criterion::tests::mechanism_clause_negative_using_best_practices ... ok [INFO] [stdout] test rules::criterion::tests::mechanism_clause_negative_via_email ... ok [INFO] [stdout] test rules::criterion::tests::mechanism_clause_through_hsm ... ok [INFO] [stdout] test rules::criterion::tests::mechanism_clause_using_oauth ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_inline_compliant_with_fips ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_hipaa_paragraph_bracket ... ok [INFO] [stdout] test rules::criterion::tests::mechanism_clause_via_uds_service ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_inline_conforming_to_autosar ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_emir_article_bracket ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_inline_in_accordance_with_hipaa ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_inline_mil_prf ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_negative_meet_the_standard ... ok [INFO] [stdout] test rules::criterion::tests::no_colon_no_enumeration ... ok [INFO] [stdout] test rules::criterion::tests::numeric_alone_does_not_match ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_consecutive_cycles ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_degrees ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_iterations ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_lux ... ok [INFO] [stdout] test rules::criterion::tests::no_list_header_in_freeform ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_inline_per_sae ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_negative_bare_comply ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_milliseconds ... ok [INFO] [stdout] test rules::criterion::tests::no_boundary_in_freeform_prose ... ok [INFO] [stdout] test rules::criterion::tests::no_criticality_when_no_brackets ... ok [INFO] [stdout] test rules::criterion::tests::named_standard_pci_dss_bracket ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_nm ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_no_number_for_cycles_does_not_match ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_retries ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_percent ... ok [INFO] [stdout] test rules::cross_file::tests::cross_file_duplicate_exact_match ... ok [INFO] [stdout] test rules::cross_file::tests::cross_file_duplicate_single_file_no_fire ... ok [INFO] [stdout] test rules::criterion::tests::mechanism_clause_via_arinc ... ok [INFO] [stdout] test rules::cross_file::tests::undefined_reference_fires ... ok [INFO] [stdout] test rules::cross_file::tests::undefined_reference_multiple_refs ... ok [INFO] [stdout] test rules::criterion::tests::numeric_unit_psi ... ok [INFO] [stdout] test rules::cross_file::tests::undefined_reference_self_ref_no_fire ... ok [INFO] [stdout] test rules::cross_file::tests::cross_file_contradiction_same_file_no_fire ... ok [INFO] [stdout] test rules::cross_file::tests::cross_file_duplicate_different_text_no_fire ... ok [INFO] [stdout] test rules::cross_file::tests::cross_file_duplicate_no_false_positive_same_file ... ok [INFO] [stdout] test rules::cross_file::tests::cross_file_contradiction_fires ... ok [INFO] [stdout] test rules::custom::tests::custom_regex_rule_no_match ... ok [INFO] [stdout] test rules::cross_file::tests::cross_file_rules_have_correct_ids ... ok [INFO] [stdout] test rules::cross_file::tests::undefined_reference_valid_ref_no_fire ... ok [INFO] [stdout] test rules::cross_file::tests::cross_file_contradiction_no_overlap_no_fire ... ok [INFO] [stdout] test rules::custom::tests::custom_regex_rule_fires_on_match ... ok [INFO] [stdout] test rules::ears_rules::tests::ear001_does_not_fire_on_proper_trigger ... ok [INFO] [stdout] test rules::ears_rules::tests::ear001_fires_on_empty_trigger ... ok [INFO] [stdout] test rules::ears_rules::tests::ear001_allows_valid_short_trigger ... ok [INFO] [stdout] test rules::ears_rules::tests::ear001_does_not_fire_on_non_event_driven ... ok [INFO] [stdout] test rules::ears_rules::tests::ear002_does_not_fire_on_valid_two_keyword_pattern ... ok [INFO] [stdout] test rules::ears_rules::tests::ear002_does_not_fire_on_non_ears ... ok [INFO] [stdout] test rules::ears_rules::tests::ear002_fires_on_three_distinct_keywords ... ok [INFO] [stdout] test rules::ears_rules::tests::ear001_fires_on_when_shall_directly ... ok [INFO] [stdout] test rules::ears_rules::tests::ear001_fires_on_short_trigger ... ok [INFO] [stdout] test rules::ears_rules::tests::ear002_fires_on_excessive_keyword_repetition ... ok [INFO] [stdout] test rules::ears_rules::tests::ear003_does_not_fire_on_complete_requirement ... ok [INFO] [stdout] test rules::custom::tests::custom_regex_rule_multiple_matches ... ok [INFO] [stdout] test rules::ears_rules::tests::ear003_does_not_fire_on_non_conditional ... ok [INFO] [stdout] test rules::ears_rules::tests::ear003_fires_on_empty_action ... ok [INFO] [stdout] test rules::ears_rules::tests::ear003_fires_on_if_without_shall ... ok [INFO] [stdout] test rules::ears_rules::tests::ear003_does_not_fire_on_where_with_shall ... ok [INFO] [stdout] test rules::ears_rules::tests::ear003_fires_on_missing_shall ... ok [INFO] [stdout] test rules::ears_rules::tests::ear002_does_not_fire_on_single_keyword ... ok [INFO] [stdout] test rules::gaming::tests::gam001_does_not_fire_on_conditional_return ... ok [INFO] [stdout] test rules::ears_rules::tests::ear003_fires_on_while_without_shall ... ok [INFO] [stdout] test rules::gaming::tests::gam002_does_not_fire_on_concrete_criterion ... ok [INFO] [stdout] test rules::gaming::tests::gam001_fires_on_return_without_constraint ... ok [INFO] [stdout] test rules::gaming::tests::gam001_does_not_fire_on_non_return_req ... ok [INFO] [stdout] test rules::gaming::tests::gam001_does_not_fire_on_if_condition ... ok [INFO] [stdout] test rules::gaming::tests::gam001_does_not_fire_with_based_on ... ok [INFO] [stdout] test rules::gaming::tests::gam001_does_not_fire_with_computation_constraint ... ok [INFO] [stdout] test rules::gaming::tests::gam002_does_not_fire_on_single_req ... ok [INFO] [stdout] test rules::gaming::tests::gam002_fires_on_tautological_criterion ... ok [INFO] [stdout] test rules::gaming::tests::gam003_does_not_fire_on_bounded_domain ... ok [INFO] [stdout] test rules::gaming::tests::gam003_does_not_fire_on_enumerated_set ... ok [INFO] [stdout] test rules::gaming::tests::gam003_does_not_fire_on_api_requests ... ok [INFO] [stdout] test rules::gaming::tests::gam004_does_not_fire_on_normal_req ... ok [INFO] [stdout] test rules::gaming::tests::gam004_does_not_fire_with_availability_percentage ... ok [INFO] [stdout] test rules::gaming::tests::gam003_does_not_fire_with_defined_in_reference ... ok [INFO] [stdout] test rules::gaming::tests::gam003_does_not_fire_on_temporal_every ... ok [INFO] [stdout] test rules::gaming::tests::gam005_does_not_fire_when_req_is_negative ... ok [INFO] [stdout] test rules::gaming::tests::gam004_fires_on_complete_without_errors ... ok [INFO] [stdout] test rules::gaming::tests::gam003_fires_on_every_unbounded ... ok [INFO] [stdout] test rules::gaming::tests::gam004_does_not_fire_with_measurable_criterion ... ok [INFO] [stdout] test rules::gaming::tests::gam003_fires_on_unbounded_all ... ok [INFO] [stdout] test rules::gaming::tests::gam005_does_not_fire_on_non_action_req ... ok [INFO] [stdout] test rules::contradiction::tests::con006_fires_on_at_least_vs_not_exceed_conflict ... ok [INFO] [stdout] test rules::gaming::tests::gam003_does_not_fire_on_every_request ... ok [INFO] [stdout] test rules::gaming::tests::gam005_does_not_fire_with_negative_sibling ... ok [INFO] [stdout] test rules::gaming::tests::gam004_fires_on_shall_not_crash ... ok [INFO] [stdout] test rules::incose::tests::absolute_does_not_fire_on_probabilistic ... ok [INFO] [stdout] test rules::gaming::tests::gam005_fires_on_positive_only ... ok [INFO] [stdout] test rules::incose::tests::absolute_fires_on_always ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_does_not_fire_on_cryptography_general_terms ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_md5 ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_does_not_fire_on_modern_rsa ... ok [INFO] [stdout] test rules::incose::tests::absolute_fires_on_zero_downtime ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_ecb_mode ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_md4_and_md2 ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_3des_variants ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_bare_des ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_does_not_fire_on_word_containing_des ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_sha1_variants ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_rc4 ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_short_rsa ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fires_on_unix_crypt ... ok [INFO] [stdout] test rules::contradiction::tests::con006_does_not_fire_on_consistent_constraints ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_does_not_fire_on_sha256_or_sha384 ... ok [INFO] [stdout] test rules::incose::tests::grammar_tool_no_op_when_checker_absent ... ok [INFO] [stdout] test rules::incose::tests::grammar_tool_emits_no_findings_when_mock_returns_empty ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_flags_multiple_primitives_in_one_requirement ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_fix_is_fixable ... ok [INFO] [stdout] test rules::incose::tests::missing_shall_fires_on_should ... ok [INFO] [stdout] test rules::incose::tests::missing_shall_fires_on_must ... ok [INFO] [stdout] test rules::incose::tests::grammar_tool_surfaces_mock_findings ... ok [INFO] [stdout] test rules::incose::tests::missing_shall_does_not_fire_on_shall ... ok [INFO] [stdout] test rules::incose::tests::deprecated_crypto_rule_id_is_016 ... ok [INFO] [stdout] test rules::incose::tests::negative_does_not_fire_on_positive ... ok [INFO] [stdout] test rules::incose::tests::plural_subject_does_not_fire_on_singular ... ok [INFO] [stdout] test rules::incose::tests::oblique_symbol_fires_on_and_or ... ok [INFO] [stdout] test rules::incose::tests::oblique_symbol_skips_technical_terms ... ok [INFO] [stdout] test rules::incose::tests::parenthetical_skips_references ... ok [INFO] [stdout] test rules::incose::tests::parenthetical_fires_on_qualifying_parens ... ok [INFO] [stdout] test rules::incose::tests::negative_fires_on_shall_not ... ok [INFO] [stdout] test rules::incose::tests::purpose_does_not_fire_on_normal_requirement ... ok [INFO] [stdout] test rules::incose::tests::oblique_symbol_does_not_fire_on_clean ... ok [INFO] [stdout] test rules::incose::tests::singular_does_not_fire_without_shall ... ok [INFO] [stdout] test rules::incose::tests::purpose_fires_on_in_order_to ... ok [INFO] [stdout] test rules::incose::tests::purpose_fires_on_so_that ... ok [INFO] [stdout] test rules::incose::tests::singular_fires_on_two_shalls ... ok [INFO] [stdout] test rules::incose::tests::plural_subject_fires_on_users ... ok [INFO] [stdout] test rules::incose::tests::plural_subject_skips_false_positive_singulars ... ok [INFO] [stdout] test rules::incose::tests::tolerance_does_not_fire_with_bound ... ok [INFO] [stdout] test rules::incose::tests::solution_fires_on_via_rest ... ok [INFO] [stdout] test rules::incose::tests::solution_fires_on_kafka ... ok [INFO] [stdout] test rules::incose::tests::singular_does_not_fire_on_one_shall ... ok [INFO] [stdout] test rules::incose::tests::parenthetical_skips_abbreviations ... ok [INFO] [stdout] test rules::incose::tests::missing_shall_skips_declarative_text ... ok [INFO] [stdout] test rules::incose::tests::solution_does_not_fire_on_abstract ... ok [INFO] [stdout] test rules::contradiction::tests::con006_fires_on_between_vs_at_least_conflict ... ok [INFO] [stdout] test rules::incose::tests::oblique_symbol_is_fixable ... ok [INFO] [stdout] test rules::incose::tests::tolerance_does_not_fire_without_numeric ... ok [INFO] [stdout] test rules::incose::tests::universal_does_not_fire_without_quantifier ... ok [INFO] [stdout] test rules::incose::tests::tolerance_does_not_fire_with_pm_notation ... ok [INFO] [stdout] test rules::semantic::tests::amb011_fires_on_near_duplicates_same_section ... ok [INFO] [stdout] test rules::incose::tests::tolerance_fires_on_bare_value ... ok [INFO] [stdout] test rules::semantic::tests::amb011_does_not_fire_on_different_requirements ... ok [INFO] [stdout] test rules::semantic::tests::amb011_skips_short_requirements ... ok [INFO] [stdout] test rules::incose::tests::universal_skips_bounded_phrases ... ok [INFO] [stdout] test rules::semantic::tests::amb011_does_not_fire_across_sections ... ok [INFO] [stdout] test rules::incose::tests::universal_fires_on_all_inputs ... ok [INFO] [stdout] test rules::incose::tests::universal_fires_on_every_user ... ok [INFO] [stdout] test rules::semantic::tests::amb011_does_not_fire_on_exact_duplicates ... ok [INFO] [stdout] test rules::semantic::tests::amb013_does_not_fire_on_or_only ... ok [INFO] [stdout] test rules::semantic::tests::amb013_does_not_fire_on_and_only ... ok [INFO] [stdout] test rules::semantic::tests::amb012_does_not_fire_without_adverb ... ok [INFO] [stdout] test rules::semantic::tests::amb012_does_not_fire_on_single_verb ... ok [INFO] [stdout] test rules::semantic::tests::amb014_check_requirement_returns_empty ... ok [INFO] [stdout] test rules::contradiction::tests::con006_does_not_fire_on_no_numeric_constraints ... ok [INFO] [stdout] test rules::semantic::tests::amb014_has_correct_id_and_severity ... ok [INFO] [stdout] test rules::semantic::tests::amb013_fires_on_or_and_pattern ... ok [INFO] [stdout] test rules::semantic::tests::amb012_fires_on_adverb_before_conjoined_verbs ... ok [INFO] [stdout] test rules::contradiction::tests::con006_does_not_fire_on_different_parameters ... ok [INFO] [stdout] test rules::semantic::tests::significant_words_extracts_correctly ... ok [INFO] [stdout] test rules::semantic::tests::texts_differ_nontrivially_detects_differences ... ok [INFO] [stdout] test rules::structure::tests::significant_words_filters_stopwords ... ok [INFO] [stdout] test rules::structure::tests::str001_does_not_fire_on_non_shall_text ... ok [INFO] [stdout] test rules::structure::tests::str001_does_not_fire_with_explicit_id ... ok [INFO] [stdout] test rules::structure::tests::str001_fires_on_req_without_id ... ok [INFO] [stdout] test rules::semantic::tests::amb012_fires_on_securely ... ok [INFO] [stdout] test rules::structure::tests::str001_accepts_fr_and_nfr_prefixes ... ok [INFO] [stdout] test rules::structure::tests::str001_does_not_fire_with_id_in_text ... ok [INFO] [stdout] test rules::semantic::tests::texts_differ_nontrivially_ignores_case_and_whitespace ... ok [INFO] [stdout] test rules::semantic::tests::amb013_fires_on_and_or_pattern ... ok [INFO] [stdout] test report::tests::report_is_self_contained_html ... ok [INFO] [stdout] test rules::semantic::tests::amb014_collects_across_sections ... ok [INFO] [stdout] test rules::structure::tests::str002_counts_subsection_requirements ... ok [INFO] [stdout] test rules::structure::tests::str002_does_not_fire_under_threshold ... ok [INFO] [stdout] test rules::structure::tests::str002_fires_on_oversized_section ... ok [INFO] [stdout] test rules::structure::tests::str003_does_not_fire_under_heading ... ok [INFO] [stdout] test rules::structure::tests::str003_fires_multiple_orphans ... ok [INFO] [stdout] test rules::structure::tests::str003_fires_on_root_level_requirement ... ok [INFO] [stdout] test rules::structure::tests::str004_detects_across_sections ... ok [INFO] [stdout] test rules::structure::tests::str004_does_not_fire_on_different_requirements ... ok [INFO] [stdout] test rules::structure::tests::str004_skips_short_requirements ... ok [INFO] [stdout] test rules::structure::tests::str004_fires_on_duplicate_requirements ... ok [INFO] [stdout] test rules::structure::tests::str005_does_not_fire_on_between_x_and_y ... ok [INFO] [stdout] test rules::structure::tests::str005_severity_is_info ... ok [INFO] [stdout] test rules::structure::tests::str006_does_not_fire_when_glossary_defines_acronym ... ok [INFO] [stdout] test rules::structure::tests::str006_does_not_fire_on_well_known_acronym ... ok [INFO] [stdout] test rules::structure::tests::str006_does_not_fire_with_parenthetical_definition ... ok [INFO] [stdout] test rules::structure::tests::str006_fires_multiple_undefined_acronyms ... ok [INFO] [stdout] test rules::structure::tests::str006_fires_on_undefined_acronym ... ok [INFO] [stdout] test rules::structure::tests::str005_does_not_fire_on_shall_support_x_and_y ... ok [INFO] [stdout] test rules::structure::tests::str005_does_not_fire_on_single_shall ... ok [INFO] [stdout] test rules::structure::tests::str005_fires_on_must_and_must ... ok [INFO] [stdout] test rules::structure::tests::str005_does_not_fire_on_validate_and_return ... ok [INFO] [stdout] test rules::structure::tests::str007_does_not_fire_on_abstract_requirement ... ok [INFO] [stdout] test rules::structure::tests::str005_fires_on_shall_and_shall ... ok [INFO] [stdout] test rules::structure::tests::str005_fires_on_shall_comma_shall_and_shall ... ok [INFO] [stdout] test rules::structure::tests::str006_severity_is_info ... ok [INFO] [stdout] test rules::contradiction::tests::con006_fires_on_different_exact_rate_values ... ok [INFO] [stdout] test rules::structure::tests::str007_does_not_fire_on_port_443 ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_django ... ok [INFO] [stdout] test rules::structure::tests::str007_does_not_fire_on_protocol ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_angular ... ok [INFO] [stdout] test rules::structure::tests::str007_does_not_fire_on_port_80 ... ok [INFO] [stdout] test rules::structure::tests::str007_case_insensitive_databases ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_ip_address ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_implemented_in_python ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_cloud_service ... ok [INFO] [stdout] test rules::structure::tests::str007_does_not_fire_on_algorithm ... ok [INFO] [stdout] test rules::structure::tests::str007_does_not_fire_on_data_format ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_file_path ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_specific_framework ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_non_standard_port ... ok [INFO] [stdout] test rules::semantic::tests::amb014_does_not_fire_with_consistent_terminology ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_specific_database ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_redis ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_implementation_language ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_lambda_function ... ok [INFO] [stdout] test rules::semantic::tests::amb014_does_not_fire_on_single_occurrence ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_s3_bucket ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_mysql ... ok [INFO] [stdout] test rules::structure::tests::str007_multiple_issues_in_one_requirement ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_port_3000 ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_use_pandas ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_using_go ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_sqlite ... ok [INFO] [stdout] test rules::structure::tests::word_overlap_ratio_disjoint ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_windows_path ... ok [INFO] [stdout] test rules::semantic::tests::amb014_fires_on_inconsistent_terms_user_customer ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_mongodb ... ok [INFO] [stdout] test rules::semantic::tests::amb014_fires_on_authenticate_login ... ok [INFO] [stdout] test rules::style::tests::sty002_does_not_fire_on_consistent_markers ... ok [INFO] [stdout] test rules::style::tests::sty002_fires_on_mixed_markers ... ok [INFO] [stdout] test rules::structure::tests::word_overlap_ratio_identical ... ok [INFO] [stdout] test rules::structure::tests::str007_fires_on_specific_library ... ok [INFO] [stdout] test rules::style::tests::sty003_fires_on_mixed_modals ... ok [INFO] [stdout] test rules::style::tests::sty001_does_not_fire_on_sequential_levels ... ok [INFO] [stdout] test rules::style::tests::sty004_does_not_fire_on_balanced_sections ... ok [INFO] [stdout] test rules::structure::tests::str007_severity_is_info ... ok [INFO] [stdout] test rules::style::tests::sty003_does_not_fire_on_single_req ... ok [INFO] [stdout] test rules::structure::tests::str007_rule_id ... ok [INFO] [stdout] test rules::style::tests::sty001_does_not_fire_on_single_heading ... ok [INFO] [stdout] test rules::style::tests::sty001_fires_on_level_jump ... ok [INFO] [stdout] test rules::style::tests::sty001_fix_for_h1_to_h4_jump ... ok [INFO] [stdout] test rules::style::tests::sty004_fires_on_imbalanced_sections ... ok [INFO] [stdout] test rules::style::tests::sty001_fix_suggests_correct_level ... ok [INFO] [stdout] test rules::style::tests::sty006_fires_on_shall_be_responsible_for ... ok [INFO] [stdout] test rules::style::tests::sty005_fires_on_heading_followed_by_many_requirements ... ok [INFO] [stdout] test rules::style::tests::sty006_fires_on_shall_be_capable_of ... ok [INFO] [stdout] test rules::style::tests::sty005_does_not_fire_on_few_requirements ... ok [INFO] [stdout] test rules::style::tests::sty006_fires_on_shall_be_able_to ... ok [INFO] [stdout] test rules::style::tests::sty003_tie_defaults_to_shall ... ok [INFO] [stdout] test rules::style::tests::sty006_does_not_fire_on_plain_shall ... ok [INFO] [stdout] test rules::semantic::tests::amb014_fires_on_delete_remove ... ok [INFO] [stdout] test rules::style::tests::sty006_fires_on_shall_ensure_that ... ok [INFO] [stdout] test rules::style::tests::sty005_does_not_fire_on_section_without_requirements ... ok [INFO] [stdout] test rules::style::tests::sty006_does_not_fire_on_shall_be_without_able ... ok [INFO] [stdout] test rules::style::tests::sty006_case_insensitive ... ok [INFO] [stdout] test rules::style::tests::sty005_does_not_fire_with_intro_text ... ok [INFO] [stdout] test rules::style::tests::sty006_fires_on_shall_provide_the_ability_to ... ok [INFO] [stdout] test rules::testability::tests::tst002_fires_on_simple_without_metric ... ok [INFO] [stdout] test rules::testability::tests::tst001_fires_on_untestable_requirement ... ok [INFO] [stdout] test rules::testability::tests::tst002_does_not_fire_with_percentage_metric ... ok [INFO] [stdout] test rules::testability::tests::tst001_does_not_fire_on_non_shall_text ... ok [INFO] [stdout] test rules::testability::tests::tst002_fires_on_clean_and_elegant ... ok [INFO] [stdout] test rules::tests::category_prefix ... ok [INFO] [stdout] test rules::tests::category_prefix_cross_file ... ok [INFO] [stdout] test rules::tests::category_prefix_style ... ok [INFO] [stdout] test rules::tests::category_prefix_ears ... ok [INFO] [stdout] test rules::tests::custom_rule_match_everything_pattern ... ok [INFO] [stdout] test rules::tests::diagnostic_has_confidence_field ... ok [INFO] [stdout] test rules::testability::tests::tst002_does_not_fire_with_metrics ... ok [INFO] [stdout] test rules::testability::tests::tst002_fires_on_easy_to_use ... ok [INFO] [stdout] test rules::testability::tests::tst002_fires_on_user_friendly ... ok [INFO] [stdout] test rules::testability::tests::tst001_does_not_fire_with_measurable_metric ... ok [INFO] [stdout] test rules::testability::tests::tst002_does_not_fire_without_subjective_terms ... ok [INFO] [stdout] test rules::style::tests::sty003_does_not_fire_on_consistent_modals ... ok [INFO] [stdout] test rules::style::tests::sty006_fires_on_shall_have_the_capability_to ... ok [INFO] [stdout] test rules::style::tests::sty006_fix_suggests_shall ... ok [INFO] [stdout] test rules::testability::tests::tst001_does_not_fire_with_given_when_then ... ok [INFO] [stdout] test rules::testability::tests::tst001_does_not_fire_with_action_verb ... ok [INFO] [stdout] test rules::testability::tests::tst001_fires_on_vague_shall ... ok [INFO] [stdout] test rules::tests::rule_id_display ... ok [INFO] [stdout] test rules::tests::builtin_registry_has_all_rules ... ok [INFO] [stdout] test rules::tests::registry_phase_filter ... ok [INFO] [stdout] test rules::tests::with_config_adds_custom_rules ... ok [INFO] [stdout] test rules::tests::with_config_and_packs_adds_pack_rules ... ok [INFO] [stdout] test rules::tests::requirement_with_only_punctuation ... ok [INFO] [stdout] test rules::tests::registry_get_by_id ... ok [INFO] [stdout] test rules::tests::weasel_word_rule_produces_high_confidence ... ok [INFO] [stdout] test rules::tests::requirement_with_only_whitespace ... ok [INFO] [stdout] test rules::tests::very_long_requirement_does_not_hang ... ok [INFO] [stdout] test rules::tests::all_rule_ids_unique ... ok [INFO] [stdout] test rules::tests::different_rules_produce_different_confidence_levels ... ok [INFO] [stdout] test rules::tests::implicit_reference_rule_produces_lower_confidence ... ok [INFO] [stdout] test rules::tests::multiple_rules_fire_on_single_requirement ... ok [INFO] [stdout] test rules::tests::requirement_containing_every_weasel_word ... ok [INFO] [stdout] test sarif::tests::sarif_normalize_windows_paths ... ok [INFO] [stdout] test rules::tests::requirement_with_empty_text ... ok [INFO] [stdout] test rules::tests::with_config_and_packs_empty_packs ... ok [INFO] [stdout] test rules::tests::with_config_empty_custom_rules_array ... ok [INFO] [stdout] test rules::tests::with_config_default_disables_high_fp_rules ... ok [INFO] [stdout] test rules::tests::with_config_disables_rule ... ok [INFO] [stdout] test sarif::tests::sarif_severity_mapping ... ok [INFO] [stdout] test rules::tests::with_config_overrides_severity ... ok [INFO] [stdout] test sarif::tests::sarif_partial_fingerprints_present ... ok [INFO] [stdout] test sarif::tests::sarif_file_paths_and_line_numbers ... ok [INFO] [stdout] test sarif::tests::sarif_empty_results ... ok [INFO] [stdout] test sarif::tests::sarif_multiple_files ... ok [INFO] [stdout] test sat_checker::tests::between_vs_at_least_conflict ... ok [INFO] [stdout] test sat_checker::tests::consistent_constraints_no_conflict ... ok [INFO] [stdout] test sat_checker::tests::different_exact_values ... ok [INFO] [stdout] test sarif::tests::sarif_fingerprints_are_stable ... ok [INFO] [stdout] test sat_checker::tests::different_parameters_no_conflict ... ok [INFO] [stdout] test sarif::tests::sarif_fix_included_in_result ... ok [INFO] [stdout] test sat_checker::tests::exact_value_outside_range ... ok [INFO] [stdout] test sat_checker::tests::lower_bound_exceeds_upper_bound ... ok [INFO] [stdout] test template::tests::all_templates_have_frontmatter ... ok [INFO] [stdout] test template::tests::all_names_list ... ok [INFO] [stdout] test template::tests::all_templates_have_requirement_ids ... ok [INFO] [stdout] test sat_checker::tests::three_constraints_combined_unsat ... ok [INFO] [stdout] test template::tests::cli_tool_template_has_sections ... ok [INFO] [stdout] test template::tests::data_pipeline_template_has_sections ... ok [INFO] [stdout] test template::tests::domain_name ... ok [INFO] [stdout] test template::tests::library_template_has_sections ... ok [INFO] [stdout] test template::tests::microservice_template_has_sections ... ok [INFO] [stdout] test template::tests::parse_cli_tool ... ok [INFO] [stdout] test template::tests::parse_data_pipeline ... ok [INFO] [stdout] test template::tests::parse_library ... ok [INFO] [stdout] test template::tests::parse_microservice ... ok [INFO] [stdout] test template::tests::parse_unknown ... ok [INFO] [stdout] test template::tests::parse_web_api ... ok [INFO] [stdout] test template::tests::web_api_template_has_sections ... ok [INFO] [stdout] test testcase::tests::gherkin_preserves_pre_at_tag_prefix ... ok [INFO] [stdout] test testcase::tests::gherkin_render_omits_tag_line_when_no_metadata ... ok [INFO] [stdout] test testcase::tests::gherkin_render_uses_correct_keywords ... ok [INFO] [stdout] test testcase::tests::json_deserialization_applies_defaults_for_missing_optional_fields ... ok [INFO] [stdout] test testcase::tests::markdown_parser_accepts_heading_with_no_separator ... ok [INFO] [stdout] test testcase::tests::markdown_parser_accepts_hyphen_separator_in_title ... ok [INFO] [stdout] test testcase::tests::markdown_parser_accepts_numbered_list_in_preconditions ... ok [INFO] [stdout] test testcase::tests::markdown_parser_accepts_synonym_section_headings ... ok [INFO] [stdout] test testcase::tests::markdown_parser_captures_notes_prose ... ok [INFO] [stdout] test testcase::tests::markdown_parser_errors_on_empty_document ... ok [INFO] [stdout] test testcase::tests::markdown_parser_errors_on_missing_steps_and_expected ... ok [INFO] [stdout] test testcase::tests::markdown_parser_ignores_preamble_before_first_test ... ok [INFO] [stdout] test testcase::tests::markdown_parser_preserves_duplicate_ids ... ok [INFO] [stdout] test testcase::tests::markdown_parser_preserves_inline_markdown_in_list_items ... ok [INFO] [stdout] test testcase::tests::json_roundtrip_preserves_all_fields ... ok [INFO] [stdout] test testcase::tests::markdown_parser_trims_whitespace_in_verifies_csv ... ok [INFO] [stdout] test testcase::tests::markdown_render_contains_all_fields ... ok [INFO] [stdout] test testcase::tests::markdown_render_omits_empty_sections ... ok [INFO] [stdout] test testcase::tests::markdown_roundtrips_through_parser ... ok [INFO] [stdout] test testcase::tests::priority_parse_accepts_common_casings ... ok [INFO] [stdout] test testcase::tests::render_feature_wraps_scenarios_in_feature_block ... ok [INFO] [stdout] test testcase::tests::render_markdown_suite_separates_cases_with_hr ... ok [INFO] [stdout] test testcase::tests::split_csv_trims_and_skips_empty ... ok [INFO] [stdout] test testcase::tests::split_heading_id_title_fallback_splits_on_whitespace ... ok [INFO] [stdout] test testcase::tests::strip_list_marker_handles_variants ... ok [INFO] [stdout] test testcase::tests::markdown_parses_suite_with_multiple_cases ... ok [INFO] [stdout] test tests::builder_invalid_profile_returns_error ... ok [INFO] [stdout] test template::tests::all_templates_have_overview_and_glossary ... ok [INFO] [stdout] test sarif::tests::sarif_result_count_matches_diagnostics ... ok [INFO] [stdout] test sarif::tests::sarif_result_has_rule_id_and_message ... ok [INFO] [stdout] test sarif::tests::sarif_result_severity_mapping ... ok [INFO] [stdout] test tests::detect_parser_by_extension ... ok [INFO] [stdout] test tests::lint_file_on_fixture_returns_findings ... ok [INFO] [stdout] test sarif::tests::sarif_schema_and_version ... ok [INFO] [stdout] test sarif::tests::sarif_rule_definitions_included ... ok [INFO] [stdout] test rules::tests::with_config_disables_all_rules ... ok [INFO] [stdout] test pipeline::tests::pipeline_many_requirements_does_not_panic ... ok [INFO] [stdout] test tests::reexported_types_are_accessible ... ok [INFO] [stdout] test trace::tests::acceptance_criteria_reference_detected ... ok [INFO] [stdout] test trace::tests::backward_reference_detected ... ok [INFO] [stdout] test trace::tests::cross_file_traceability ... ok [INFO] [stdout] test trace::tests::csv_escaping ... ok [INFO] [stdout] test trace::tests::csv_format_structure ... ok [INFO] [stdout] test trace::tests::empty_documents ... ok [INFO] [stdout] test trace::tests::empty_matrix_human_format ... ok [INFO] [stdout] test trace::tests::forward_reference_detected ... ok [INFO] [stdout] test trace::tests::human_format_contains_table ... ok [INFO] [stdout] test trace::tests::json_format_structure ... ok [INFO] [stdout] test trace::tests::multiple_references_in_one_requirement ... ok [INFO] [stdout] test trace::tests::requirements_without_ids_counted ... ok [INFO] [stdout] test trace::tests::self_reference_excluded ... ok [INFO] [stdout] test trace::tests::single_requirement_no_references ... ok [INFO] [stdout] test trace::tests::test_reference_detected ... ok [INFO] [stdout] test tests::builder_with_config_str ... ok [INFO] [stdout] test trace::tests::trace_matrix_circular_references ... ok [INFO] [stdout] test trace::tests::trace_matrix_csv_empty ... ok [INFO] [stdout] test trace::tests::trace_matrix_json_with_no_ids ... ok [INFO] [stdout] test trace::tests::trace_matrix_human_format_with_no_ids ... ok [INFO] [stdout] test trace::tests::trace_matrix_with_no_ids ... ok [INFO] [stdout] test trace::tests::undefined_reference_orphan ... ok [INFO] [stdout] test trace::tests::trace_matrix_zero_documents ... ok [INFO] [stdout] test trace::tests::unreferenced_definition_orphan ... ok [INFO] [stdout] test sarif::tests::sarif_tool_metadata ... ok [INFO] [stdout] test sarif::tests::sarif_special_characters_in_messages ... ok [INFO] [stdout] test sarif::tests::sarif_write_to_buffer ... ok [INFO] [stdout] test sarif::tests::sarif_valid_json_roundtrip ... ok [INFO] [stdout] test tests::builder_default_builds_successfully ... ok [INFO] [stdout] test tests::lint_string_known_bad_content ... ok [INFO] [stdout] test tests::lint_string_with_empty_content ... ok [INFO] [stdout] test sarif::tests::sarif_exactly_5000_results_no_truncation ... ok [INFO] [stdout] test tests::builder_with_min_confidence_filters_low_confidence ... ok [INFO] [stdout] test sarif::tests::sarif_truncation_at_5000_results ... ok [INFO] [stdout] test tests::lint_string_returns_findings_for_bad_spec ... ok [INFO] [stdout] test tests::to_sarif_produces_valid_json ... ok [INFO] [stdout] test tests::builder_with_disabled_rules_suppresses_those_rules ... ok [INFO] [stdout] test tests::builder_with_profile_changes_behavior ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1003 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.51s [INFO] [stdout] [INFO] [stderr] Running tests/e2e_pipeline.rs (/opt/rustwide/target/release/deps/e2e_pipeline-bad1d03738ae8270) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test pipeline_lint_then_score_clean_spec ... FAILED [INFO] [stdout] test pipeline_depgraph_from_spec ... FAILED [INFO] [stdout] test pipeline_lint_then_score_bad_spec ... FAILED [INFO] [stdout] test pipeline_convert_roundtrip ... FAILED [INFO] [stdout] test pipeline_trace_matrix_from_spec ... FAILED [INFO] [stdout] test pipeline_quality_comparison_clean_vs_bad ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- pipeline_lint_then_score_clean_spec stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'pipeline_lint_then_score_clean_spec' (3221) panicked at tests/e2e_pipeline.rs:17:5: [INFO] [stdout] clean-spec.md fixture must exist [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5e3b964227e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x5e3b9643a94a - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x5e3b96426d4c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x5e3b963fe026 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x5e3b9641a909 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x5e3b963b5fc0 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x5e3b9641aac2 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x5e3b963fe104 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x5e3b963f6be9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x5e3b963feccd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x5e3b9643b12c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x5e3b961db5b4 - >::call_once [INFO] [stdout] 12: 0x5e3b963a92ab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 13: 0x5e3b963b6915 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 14: 0x5e3b963b01d4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 15: 0x5e3b963b9a72 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 16: 0x5e3b96421b59 - ::new::thread_start [INFO] [stdout] 17: 0x7fad763fbdfa - [INFO] [stdout] 18: 0x7fad7648f3d4 - clone [INFO] [stdout] 19: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- pipeline_depgraph_from_spec stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'pipeline_depgraph_from_spec' (3219) panicked at tests/e2e_pipeline.rs:126:55: [INFO] [stdout] should read spec: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5e3b964227e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x5e3b9643a94a - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x5e3b96426d4c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x5e3b963fe026 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x5e3b9641a909 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x5e3b963b5fc0 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x5e3b9641aac2 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x5e3b963fe0d2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x5e3b963f6be9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x5e3b963feccd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x5e3b9643b12c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x5e3b9643af02 - core[df12db4294e9bfd3]::result::unwrap_failed [INFO] [stdout] 12: 0x5e3b961da8fd - >::call_once [INFO] [stdout] 13: 0x5e3b963a92ab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 14: 0x5e3b963b6915 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 15: 0x5e3b963b01d4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 16: 0x5e3b963b9a72 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 17: 0x5e3b96421b59 - ::new::thread_start [INFO] [stdout] 18: 0x7fad763fbdfa - [INFO] [stdout] 19: 0x7fad7648f3d4 - clone [INFO] [stdout] 20: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- pipeline_lint_then_score_bad_spec stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'pipeline_lint_then_score_bad_spec' (3220) panicked at tests/e2e_pipeline.rs:49:5: [INFO] [stdout] bad-spec.md fixture must exist [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5e3b964227e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x5e3b9643a94a - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x5e3b96426d4c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x5e3b963fe026 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x5e3b9641a909 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x5e3b963b5fc0 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x5e3b9641aac2 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x5e3b963fe104 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x5e3b963f6be9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x5e3b963feccd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x5e3b9643b12c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x5e3b961db131 - >::call_once [INFO] [stdout] 12: 0x5e3b963a92ab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 13: 0x5e3b963b6915 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 14: 0x5e3b963b01d4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 15: 0x5e3b963b9a72 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 16: 0x5e3b96421b59 - ::new::thread_start [INFO] [stdout] 17: 0x7fad763fbdfa - [INFO] [stdout] 18: 0x7fad7648f3d4 - clone [INFO] [stdout] 19: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- pipeline_convert_roundtrip stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'pipeline_convert_roundtrip' (3218) panicked at tests/e2e_pipeline.rs:77:55: [INFO] [stdout] should read spec: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5e3b964227e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x5e3b9643a94a - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x5e3b96426d4c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x5e3b963fe026 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x5e3b9641a909 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x5e3b963b5fc0 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x5e3b9641aac2 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x5e3b963fe0d2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x5e3b963f6be9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x5e3b963feccd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x5e3b9643b12c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x5e3b9643af02 - core[df12db4294e9bfd3]::result::unwrap_failed [INFO] [stdout] 12: 0x5e3b961da2ba - >::call_once [INFO] [stdout] 13: 0x5e3b963a92ab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 14: 0x5e3b963b6915 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 15: 0x5e3b963b01d4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 16: 0x5e3b963b9a72 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 17: 0x5e3b96421b59 - ::new::thread_start [INFO] [stdout] 18: 0x7fad763fbdfa - [INFO] [stdout] 19: 0x7fad7648f3d4 - clone [INFO] [stdout] 20: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- pipeline_trace_matrix_from_spec stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'pipeline_trace_matrix_from_spec' (3223) panicked at tests/e2e_pipeline.rs:105:55: [INFO] [stdout] should read spec: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5e3b964227e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x5e3b9643a94a - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x5e3b96426d4c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x5e3b963fe026 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x5e3b9641a909 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x5e3b963b5fc0 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x5e3b9641aac2 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x5e3b963fe0d2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x5e3b963f6be9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x5e3b963feccd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x5e3b9643b12c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x5e3b9643af02 - core[df12db4294e9bfd3]::result::unwrap_failed [INFO] [stdout] 12: 0x5e3b961dac7a - >::call_once [INFO] [stdout] 13: 0x5e3b963a92ab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 14: 0x5e3b963b6915 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 15: 0x5e3b963b01d4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 16: 0x5e3b963b9a72 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 17: 0x5e3b96421b59 - ::new::thread_start [INFO] [stdout] 18: 0x7fad763fbdfa - [INFO] [stdout] 19: 0x7fad7648f3d4 - clone [INFO] [stdout] 20: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- pipeline_quality_comparison_clean_vs_bad stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'pipeline_quality_comparison_clean_vs_bad' (3222) panicked at tests/e2e_pipeline.rs:146:62: [INFO] [stdout] should read: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5e3b964227e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x5e3b9643a94a - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x5e3b96426d4c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x5e3b963fe026 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x5e3b9641a909 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x5e3b963b5fc0 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x5e3b9641aac2 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x5e3b963fe0d2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x5e3b963f6be9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x5e3b963feccd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x5e3b9643b12c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x5e3b9643af02 - core[df12db4294e9bfd3]::result::unwrap_failed [INFO] [stdout] 12: 0x5e3b961dbb62 - >::call_once [INFO] [stdout] 13: 0x5e3b963a92ab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 14: 0x5e3b963b6915 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 15: 0x5e3b963b01d4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 16: 0x5e3b963b9a72 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 17: 0x5e3b96421b59 - ::new::thread_start [INFO] [stdout] 18: 0x7fad763fbdfa - [INFO] [stdout] 19: 0x7fad7648f3d4 - clone [INFO] [stdout] 20: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] pipeline_convert_roundtrip [INFO] [stdout] pipeline_depgraph_from_spec [INFO] [stdout] pipeline_lint_then_score_bad_spec [INFO] [stdout] pipeline_lint_then_score_clean_spec [INFO] [stdout] pipeline_quality_comparison_clean_vs_bad [INFO] [stdout] pipeline_trace_matrix_from_spec [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test e2e_pipeline` [INFO] running `Command { std: "docker" "inspect" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028", kill_on_drop: false }` [INFO] [stdout] 537d70c87c23c6dce52affaa7fc193672c8d2f5670a347c01fbd0fbdd6a8a028