[INFO] cloning repository https://github.com/LyleMi/Reforge
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LyleMi/Reforge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLyleMi%2FReforge", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLyleMi%2FReforge'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5e6cf5840338189e2ac1bece29e1018576d4695b
[INFO] testing LyleMi/Reforge against 1.97.0-beta.6 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLyleMi%2FReforge" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/LyleMi/Reforge
[INFO] finished tweaking git repo https://github.com/LyleMi/Reforge
[INFO] tweaked toml for git repo https://github.com/LyleMi/Reforge written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LyleMi/Reforge on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/LyleMi/Reforge 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tree-sitter-language v0.1.7
[INFO] [stderr]   Downloaded tree-sitter-python v0.25.0
[INFO] [stderr]   Downloaded streaming-iterator v0.1.9
[INFO] [stderr]   Downloaded ignore v0.4.27
[INFO] [stderr]   Downloaded tree-sitter-go v0.25.0
[INFO] [stderr]   Downloaded tree-sitter-java v0.23.5
[INFO] [stderr]   Downloaded tree-sitter-javascript v0.25.0
[INFO] [stderr]   Downloaded tree-sitter v0.26.10
[INFO] [stderr]   Downloaded tree-sitter-rust v0.24.2
[INFO] [stderr]   Downloaded tree-sitter-ruby v0.23.1
[INFO] [stderr]   Downloaded tree-sitter-php v0.24.2
[INFO] [stderr]   Downloaded tree-sitter-typescript v0.23.2
[INFO] [stderr]   Downloaded tree-sitter-kotlin-ng v1.1.0
[INFO] [stderr]   Downloaded tree-sitter-c-sharp v0.23.5
[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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b
[INFO] running `Command { std: "docker" "start" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b", 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" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b", 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" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling tree-sitter-python v0.25.0
[INFO] [stderr]    Compiling tree-sitter-rust v0.24.2
[INFO] [stderr]    Compiling tree-sitter-java v0.23.5
[INFO] [stderr]    Compiling tree-sitter-ruby v0.23.1
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling tree-sitter-javascript v0.25.0
[INFO] [stderr]    Compiling tree-sitter-php v0.24.2
[INFO] [stderr]    Compiling tree-sitter-go v0.25.0
[INFO] [stderr]    Compiling tree-sitter-kotlin-ng v1.1.0
[INFO] [stderr]    Compiling tree-sitter-c-sharp v0.23.5
[INFO] [stderr]    Compiling bstr v1.12.3
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling terminal_size v0.4.4
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tree-sitter v0.26.10
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling ignore v0.4.27
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling reforge v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.20s
[INFO] running `Command { std: "docker" "inspect" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b", 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" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling reforge v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.69s
[INFO] running `Command { std: "docker" "inspect" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b", 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" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/reforge-c965a5d07282152d)
[INFO] [stdout] 
[INFO] [stdout] running 195 tests
[INFO] [stdout] test baseline::tests::baseline_mode_new_selects_only_absent_ids ... ok
[INFO] [stdout] test baseline::tests::diff_show_new_or_worse_selects_only_actionable_changes ... ok
[INFO] [stdout] test calibration::tests::beta_smoothing_never_returns_extremes ... ok
[INFO] [stdout] test baseline::tests::diff_classifies_new_worse_same_and_resolved_issues ... ok
[INFO] [stdout] test baseline::tests::baseline_mode_new_or_worse_selects_absent_and_higher_priority_ids ... ok
[INFO] [stdout] test calibration::tests::simplex_projection_is_non_negative_and_normalized ... ok
[INFO] [stdout] test calibration::tests::proposals_are_deterministic_and_never_reverse_pairs ... ok
[INFO] [stdout] test cli::values::tests::infers_html_output_format_from_output_file_extension ... ok
[INFO] [stdout] test cli::values::tests::infers_sarif_output_format_from_output_file_extension ... ok
[INFO] [stdout] test cli::values::tests::infers_yaml_output_format_from_output_file_extension ... ok
[INFO] [stdout] test cli::values::tests::infers_yaml_output_format_from_yml_output_file_extension ... ok
[INFO] [stdout] test cli::values::tests::parses_config_show_command ... ok
[INFO] [stdout] test cli::values::tests::keeps_explicit_output_format_when_output_file_extension_is_json ... ok
[INFO] [stdout] test cli::values::tests::keeps_explicit_output_format_when_output_file_extension_is_yaml ... ok
[INFO] [stdout] test cli::values::tests::parses_finding_control_options ... ok
[INFO] [stdout] test cli::values::tests::infers_json_output_format_from_uppercase_output_file_extension ... ok
[INFO] [stdout] test cli::values::tests::infers_json_output_format_from_output_file_extension ... ok
[INFO] [stdout] test cli::values::tests::parses_baseline_and_failure_gate_options ... ok
[INFO] [stdout] test cli::values::tests::parses_init_command ... ok
[INFO] [stdout] test cli::values::tests::parses_color_mode ... ok
[INFO] [stdout] test cli::values::tests::parses_html_output_format ... ok
[INFO] [stdout] test cli::values::tests::parses_config_validate_command ... ok
[INFO] [stdout] test cli::values::tests::parses_output_format ... ok
[INFO] [stdout] test cli::values::tests::parses_progress_mode ... ok
[INFO] [stdout] test cli::values::tests::parses_output_file ... ok
[INFO] [stdout] test cli::values::tests::infers_html_output_format_from_htm_output_file_extension ... ok
[INFO] [stdout] test cli::values::tests::parses_sarif_output_format ... ok
[INFO] [stdout] test cli::values::tests::parses_quality_model_options ... ok
[INFO] [stdout] test detectors::dependency_graph::tests::detects_resolved_javascript_cycle ... ok
[INFO] [stdout] test cli::values::tests::parses_scan_ignore_options ... ok
[INFO] [stdout] test cli::values::tests::parses_similar_function_thresholds ... ok
[INFO] [stdout] test cli::values::tests::parses_test_similarity_flag ... ok
[INFO] [stdout] test cli::values::tests::parses_threshold_preset ... ok
[INFO] [stdout] test cli::values::tests::resolves_color_modes ... ok
[INFO] [stdout] test cli::values::tests::resolves_progress_modes ... ok
[INFO] [stdout] test cli::values::tests::uses_default_structure_thresholds ... ok
[INFO] [stdout] test cli::values::tests::parses_yaml_output_format ... ok
[INFO] [stdout] test cli::values::tests::uses_stricter_default_similarity_thresholds ... ok
[INFO] [stdout] test detectors::dependency_graph::tests::dependency_depth_collapses_cycles_before_measuring_paths ... ok
[INFO] [stdout] test detectors::dependency_graph::tests::ignores_unresolved_external_imports ... ok
[INFO] [stdout] test detectors::drift::tests::detects_fixture_factory_drift_in_tests ... ok
[INFO] [stdout] test detectors::drift::tests::detects_duplicate_single_line_type_shapes ... ok
[INFO] [stdout] test detectors::drift::tests::detects_duplicate_type_shapes ... ok
[INFO] [stdout] test detectors::dependency_graph::tests::reports_dependency_hub_graph_complexity_metrics ... ok
[INFO] [stdout] test detectors::drift::tests::ignores_function_like_text_inside_string_literals ... ok
[INFO] [stdout] test detectors::drift::tests::skips_adapter_boundary_bypasses_in_support_scripts ... ok
[INFO] [stdout] test detectors::drift::tests::skips_compatibility_paths_with_exit_boundary ... ok
[INFO] [stdout] test detectors::drift::tests::ignores_config_keys_inside_comments ... ok
[INFO] [stdout] test detectors::manifest::tests::atomic_readability_signals_share_issue_contract ... ok
[INFO] [stdout] test detectors::documentation::tests::cli_flags_are_read_from_clap_metadata ... ok
[INFO] [stdout] test detectors::drift::tests::skips_adapter_boundary_bypasses_in_cli_entrypoints ... ok
[INFO] [stdout] test detectors::drift::tests::detects_config_key_drift ... ok
[INFO] [stdout] test detectors::drift::tests::detects_parallel_implementations_and_shadowed_helpers ... ok
[INFO] [stdout] test detectors::drift::tests::detects_stale_compatibility_paths_without_exit_boundary ... ok
[INFO] [stdout] test detectors::drift::tests::skips_small_generic_files_with_only_a_few_concepts ... ok
[INFO] [stdout] test detectors::drift::tests::skips_stale_compatibility_paths_in_tests_by_default ... ok
[INFO] [stdout] test detectors::manifest::tests::detector_specs_have_unique_typed_inputs_and_explicit_ranking_policy ... ok
[INFO] [stdout] test detectors::drift::tests::skips_generic_bucket_drift_in_tests_by_default ... ok
[INFO] [stdout] test cli::values::tests::parses_structure_thresholds ... ok
[INFO] [stdout] test detectors::manifest::tests::raw_metric_manifest_has_unique_names_and_explicit_context_metrics ... ok
[INFO] [stdout] test detectors::manifest::tests::manifest_covers_every_finding_kind_once ... ok
[INFO] [stdout] test detectors::dependency_graph::tests::detects_dependency_hub_with_high_fan_out ... ok
[INFO] [stdout] test detectors::drift::tests::detects_generic_bucket_directories ... ok
[INFO] [stdout] test detectors::similarity::tests::detects_similar_go_functions ... ok
[INFO] [stdout] test detectors::similarity::tests::detects_similar_javascript_functions_with_normalized_names_and_literals ... ok
[INFO] [stdout] test detectors::similarity::tests::detects_similar_python_functions ... ok
[INFO] [stdout] test detectors::similarity::tests::reports_candidate_count ... ok
[INFO] [stdout] test detectors::similarity::tests::requires_minimum_group_size ... ok
[INFO] [stdout] test detectors::structure::regression_tests::treats_java_package_metadata_as_naming_neutral ... ok
[INFO] [stdout] test detectors::structure::regression_tests::counts_python_parameters_without_annotation_or_default_identifiers ... ok
[INFO] [stdout] test detectors::similarity::tests::multiset_pruning_keeps_matching_group ... ok
[INFO] [stdout] test detectors::similarity::tests::skips_rust_cfg_test_modules_for_similarity_by_default ... ok
[INFO] [stdout] test detectors::similarity::tests::detects_similar_rust_functions ... ok
[INFO] [stdout] test detectors::similarity::tests::ignores_anonymous_javascript_callbacks ... ok
[INFO] [stdout] test detectors::similarity::tests::ignores_short_trivial_functions ... ok
[INFO] [stdout] test detectors::similarity::tests::detects_similar_typescript_functions ... ok
[INFO] [stdout] test detectors::similarity::tests::length_ratio_pruning_keeps_matching_group ... ok
[INFO] [stdout] test detectors::similarity::tests::custom_threshold_changes_detection ... ok
[INFO] [stdout] test detectors::structure::tests::counts_rust_parameter_patterns_without_type_identifiers ... ok
[INFO] [stdout] test detectors::structure::tests::ignores_rust_enum_variants_for_large_type_member_count ... ok
[INFO] [stdout] test detectors::structure::tests::keeps_combined_function_signals_as_constituent_evidence ... ok
[INFO] [stdout] test detectors::structure::tests::reports_directory_drift ... ok
[INFO] [stdout] test detectors::structure::tests::reports_file_naming_drift_within_directory ... ok
[INFO] [stdout] test detectors::structure::tests::reports_function_proliferation_for_dense_small_functions ... ok
[INFO] [stdout] test detectors::structure::tests::counts_typescript_parameters_without_type_annotation_identifiers ... ok
[INFO] [stdout] test detectors::structure::tests::reports_typescript_module_level_signals ... ok
[INFO] [stdout] test detectors::structure::tests::reports_python_repeated_literals_and_data_clumps ... ok
[INFO] [stdout] test detectors::structure::tests::skips_happy_path_risk_when_negative_case_is_present ... ok
[INFO] [stdout] test detectors::structure::tests::skips_function_proliferation_when_small_function_ratio_is_low ... ok
[INFO] [stdout] test detectors::structure::tests::skips_code_convention_repeated_literals ... ok
[INFO] [stdout] test detectors::drift::tests::detects_adapter_boundary_bypasses_when_boundary_exists ... ok
[INFO] [stdout] test detectors::structure::tests::reports_go_repeated_error_patterns ... ok
[INFO] [stdout] test detectors::structure::tests::reports_rust_public_surface ... ok
[INFO] [stdout] test detectors::structure::tests::skips_import_and_type_metadata_repeated_literals ... ok
[INFO] [stdout] test detectors::drift::tests::skips_plain_fallback_helpers_as_stale_compatibility_paths ... ok
[INFO] [stdout] test detectors::structure::tests::skips_report_label_repeated_literals ... ok
[INFO] [stdout] test detectors::unused_functions::tests::reports_local_typescript_functions_and_skips_exports ... ok
[INFO] [stdout] test detectors::unused_functions::tests::reports_private_rust_functions_without_references ... ok
[INFO] [stdout] test detectors::unused_functions::tests::reports_recursive_function_when_only_self_referenced ... ok
[INFO] [stdout] test detectors::unused_functions::tests::skips_public_python_functions_but_reports_private_helpers ... ok
[INFO] [stdout] test output::tests::calculates_threshold_excess_ratio ... ok
[INFO] [stdout] test output::tests::finding_ids_are_stable_when_group_representative_rotates ... ok
[INFO] [stdout] test output::tests::finding_ids_are_stable_for_equivalent_identity_inputs ... ok
[INFO] [stdout] test detectors::structure::tests::skips_happy_path_risk_when_test_names_describe_negative_cases ... ok
[INFO] [stdout] test output::tests::human_report_renders_cluster_primary_once_and_keeps_raw_signal_count ... ok
[INFO] [stdout] test detectors::structure::tests::keeps_cross_file_domain_repeated_literals ... ok
[INFO] [stdout] test detectors::structure::tests::skips_rust_cfg_test_modules_for_structure_by_default ... ok
[INFO] [stdout] test detectors::unused_functions::tests::counts_rust_test_references_but_skips_test_helpers_by_default ... ok
[INFO] [stdout] test output::tests::renders_colored_human_report_when_enabled ... ok
[INFO] [stdout] test output::tests::maps_priority_to_severity ... ok
[INFO] [stdout] test output::tests::renders_empty_human_report_clearly ... ok
[INFO] [stdout] test output::tests::html_report_embedded_assets_do_not_close_raw_text_elements ... ok
[INFO] [stdout] test output::tests::renders_hotspots_even_when_no_findings ... ok
[INFO] [stdout] test detectors::structure::tests::reports_new_language_function_metrics_and_long_functions ... ok
[INFO] [stdout] test output::tests::caps_serialized_similar_function_locations ... ok
[INFO] [stdout] test output::tests::human_report_sorts_by_priority_and_renders_priority_confidence_and_metrics ... ok
[INFO] [stdout] test detectors::structure::tests::skips_test_files_for_structure_by_default_but_reports_test_duplication ... ok
[INFO] [stdout] test output::tests::html_report_embeds_all_findings_for_client_side_rendering ... ok
[INFO] [stdout] test detectors::similarity::tests::detects_similar_functions_in_new_tree_sitter_languages ... ok
[INFO] [stdout] test output::tests::html_report_escapes_json_before_embedding_it_in_script_data ... ok
[INFO] [stdout] test output::tests::renders_suppression_summary_when_findings_are_suppressed ... ok
[INFO] [stdout] test output::tests::renders_human_baseline_diff_when_selected_findings_are_empty ... ok
[INFO] [stdout] test output::tests::spread_factor_increases_score_for_cross_file_groups ... ok
[INFO] [stdout] test output::tests::renders_json_report_schema_v16_with_measurement_contract_metadata ... ok
[INFO] [stdout] test output::tests::writes_json_report_to_writer ... ok
[INFO] [stdout] test output::tests::renders_human_baseline_diff_summary_and_selected_findings ... ok
[INFO] [stdout] test scan::config::tests::config_threshold_overrides_config_preset ... ok
[INFO] [stdout] test output::tests::renders_sarif_report_with_rules_results_and_fingerprints ... ok
[INFO] [stdout] test scan::config::tests::cli_threshold_overrides_cli_preset ... ok
[INFO] [stdout] test scan::config::tests::cli_preset_overrides_config_thresholds ... ok
[INFO] [stdout] test output::tests::writes_yaml_report_to_writer ... ok
[INFO] [stdout] test output::tests::renders_html_report_with_react_shell_and_embedded_report_data ... ok
[INFO] [stdout] test scan::finding_control::tests::min_priority_filter_keeps_threshold_and_above ... ok
[INFO] [stdout] test scan::config::tests::default_config_toml_is_valid ... ok
[INFO] [stdout] test scan::config::tests::effective_config_output_applies_config_preset ... ok
[INFO] [stdout] test scan::config::tests::generated_config_preset_can_change_without_deleting_balanced_thresholds ... ok
[INFO] [stdout] test scan::config::tests::validate_config_rejects_unknown_keys ... ok
[INFO] [stdout] test scan::config::tests::explicit_cli_balanced_threshold_overrides_cli_preset ... ok
[INFO] [stdout] test scan::progress::tests::fits_dynamic_message_within_terminal_width ... ok
[INFO] [stdout] test scan::finding_control::tests::config_suppression_without_kind_or_line_suppresses_whole_path ... ok
[INFO] [stdout] test scan::config::tests::effective_config_output_applies_discovered_config ... ok
[INFO] [stdout] test scan::finding_control::tests::inline_suppressions_remove_matching_findings ... ok
[INFO] [stdout] test scan::finding_control::tests::config_suppressions_remove_matching_findings ... ok
[INFO] [stdout] test scan::progress::tests::leaves_short_dynamic_message_unchanged ... ok
[INFO] [stdout] test scan::finding_control::tests::unknown_config_suppression_kind_errors ... ok
[INFO] [stdout] test scan::scan_documentation_tests::skips_reforge_documentation_contract_for_other_projects ... ok
[INFO] [stdout] test scan::finding_control::tests::only_filter_keeps_selected_finding_kinds ... ok
[INFO] [stdout] test scan::finding_control::tests::severity_filter_keeps_threshold_and_above ... ok
[INFO] [stdout] test scan::scan_documentation_tests::complete_project_documentation_suppresses_documentation_findings ... ok
[INFO] [stdout] test scan::scanner_tests::churn_parser_filters_binary_outside_scan_root_and_large_commits ... ok
[INFO] [stdout] test scan::scan_documentation_tests::reports_missing_project_documentation_for_project_roots ... ok
[INFO] [stdout] test scan::scan_documentation_tests::reports_stale_cli_documentation_when_flags_are_missing ... ok
[INFO] [stdout] test scan::scan_documentation_tests::readme_only_project_is_not_treated_as_complete_documentation ... ok
[INFO] [stdout] test scan::scan_documentation_tests::reports_stale_schema_documentation_when_fields_are_missing ... ok
[INFO] [stdout] test scan::scanner_tests::excludes_generated_directories_from_source_file_counts_by_default ... ok
[INFO] [stdout] test scan::scanner_tests::file_level_hotspot_only_weakly_influences_line_findings ... ok
[INFO] [stdout] test scan::scanner_tests::cli_ignore_paths_are_added_to_config_ignore_paths ... ok
[INFO] [stdout] test scan::scanner_tests::function_hotspot_takes_precedence_over_file_hotspot_for_same_line_finding ... ok
[INFO] [stdout] test detectors::drift::tests::skips_two_cross_file_parallel_implementations_at_default_thresholds ... ok
[INFO] [stdout] test scan::scanner_tests::hotspot_models_sort_differently ... ok
[INFO] [stdout] test detectors::similarity::tests::same_names_with_different_structure_are_not_grouped ... ok
[INFO] [stdout] test scan::scanner_tests::gitignore_paths_are_skipped_by_default ... ok
[INFO] [stdout] test scan::scanner_tests::config_ignore_paths_skip_matching_subtrees ... ok
[INFO] [stdout] test scan::scanner_tests::churn_auto_degrades_outside_git_repository ... ok
[INFO] [stdout] test scan::scanner_tests::loads_config_and_cli_overrides_configured_values ... ok
[INFO] [stdout] test scan::scanner_tests::metrics_summary_uses_all_raw_metrics_not_only_findings ... ok
[INFO] [stdout] test scan::scanner_tests::recognizes_common_test_source_names ... ok
[INFO] [stdout] test scan::scanner_tests::reports_directories_with_many_source_files ... ok
[INFO] [stdout] test scan::scanner_tests::scan_report_outputs_percent_progress_when_enabled ... ok
[INFO] [stdout] test scan::scanner_tests::scans_and_analyzes_php_sources ... ok
[INFO] [stdout] test scan::scanner_tests::test_metrics_do_not_enter_hotspot_leaderboard ... ok
[INFO] [stdout] test scan::scanner_tests::writer_progress_outputs_messages ... ok
[INFO] [stdout] test scoring::clusters::tests::clustering_is_stable_for_every_input_permutation ... ok
[INFO] [stdout] test scan::scanner_tests::skips_generated_directories_by_default ... ok
[INFO] [stdout] test scoring::clusters::tests::complete_link_clustering_prevents_transitive_bridge_merges ... ok
[INFO] [stdout] test scoring::clusters::tests::does_not_cluster_unrelated_detectors_at_the_same_location ... ok
[INFO] [stdout] test scoring::clusters::tests::issue_key_depends_only_on_family_and_subject ... ok
[INFO] [stdout] test scan::scanner_tests::suppression_summary_counts_reportable_suppressed_findings ... ok
[INFO] [stdout] test scoring::contract_tests::normalization_uses_the_stronger_lens_without_adding_duplicate_evidence ... ok
[INFO] [stdout] test scoring::clusters::tests::groups_readability_facets_at_the_same_function ... ok
[INFO] [stdout] test tests::creates_missing_output_file_parent_directories ... ok
[INFO] [stdout] test detectors::structure::tests::reports_rust_function_level_signals ... ok
[INFO] [stdout] test output::tests::large_type_scores_from_strongest_metric ... ok
[INFO] [stdout] test detectors::structure::tests::reports_happy_path_only_test_risk ... ok
[INFO] [stdout] test scan::finding_control::tests::exclude_detector_filter_removes_selected_finding_kinds ... ok
[INFO] [stdout] test scoring::contract_tests::rejects_metrics_not_declared_by_detector - should panic ... ok
[INFO] [stdout] test scan::scanner_tests::ci_gate_uses_unsuppressed_findings_not_hotspots_or_suppressed_findings ... ok
[INFO] [stdout] test scan::scanner_tests::excludes_test_files_from_similarity_by_default ... ok
[INFO] [stdout] test scan::scanner_tests::reports_dependency_cycles_between_resolved_source_files ... ok
[INFO] [stdout] test scan::scanner_tests::can_include_generated_directories ... ok
[INFO] [stdout] test scan::scanner_tests::reports_similar_functions_using_scan_thresholds ... ok
[INFO] [stdout] test scan::scanner_tests::can_disable_gitignore_filtering ... ok
[INFO] [stdout] test scan::scanner_tests::can_exclude_test_sources_from_scan ... ok
[INFO] [stdout] test scan::scanner_tests::churn_on_errors_outside_git_repository ... ok
[INFO] [stdout] test scan::scanner_tests::hotspot_static_risk_uses_effective_scan_thresholds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 195 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b", kill_on_drop: false }`
[INFO] [stdout] 800d74fa5ad987542fe3970ea98038f337d0123e818548707deb4ed6c024f71b
