[INFO] fetching crate guardrails 0.5.0... [INFO] testing guardrails-0.5.0 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate guardrails 0.5.0 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate guardrails 0.5.0 [INFO] finished tweaking crates.io crate guardrails 0.5.0 [INFO] tweaked toml for crates.io crate guardrails 0.5.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate guardrails 0.5.0 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate guardrails 0.5.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 22568f32c0e178a010227e3048b18e70693ad3e00beeff9e39f64b05ce32a199 [INFO] running `Command { std: "docker" "start" "-a" "22568f32c0e178a010227e3048b18e70693ad3e00beeff9e39f64b05ce32a199", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "22568f32c0e178a010227e3048b18e70693ad3e00beeff9e39f64b05ce32a199", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "22568f32c0e178a010227e3048b18e70693ad3e00beeff9e39f64b05ce32a199", kill_on_drop: false }` [INFO] [stdout] 22568f32c0e178a010227e3048b18e70693ad3e00beeff9e39f64b05ce32a199 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 247e6fc3d9a1c52d5ea860d2e1ef28ef060aaabf4263208ba8bd31c8137473b9 [INFO] running `Command { std: "docker" "start" "-a" "247e6fc3d9a1c52d5ea860d2e1ef28ef060aaabf4263208ba8bd31c8137473b9", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling syn v2.0.115 [INFO] [stderr] Compiling clap_builder v4.5.58 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling clap v4.5.58 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling guardrails v0.5.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.74s [INFO] running `Command { std: "docker" "inspect" "247e6fc3d9a1c52d5ea860d2e1ef28ef060aaabf4263208ba8bd31c8137473b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "247e6fc3d9a1c52d5ea860d2e1ef28ef060aaabf4263208ba8bd31c8137473b9", kill_on_drop: false }` [INFO] [stdout] 247e6fc3d9a1c52d5ea860d2e1ef28ef060aaabf4263208ba8bd31c8137473b9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3f3e8a155dad42c2ddacfa8858821c4c28b6caa594aa7ce2711ab9554ea3ad4e [INFO] running `Command { std: "docker" "start" "-a" "3f3e8a155dad42c2ddacfa8858821c4c28b6caa594aa7ce2711ab9554ea3ad4e", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.181 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling guardrails v0.5.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 9.91s [INFO] running `Command { std: "docker" "inspect" "3f3e8a155dad42c2ddacfa8858821c4c28b6caa594aa7ce2711ab9554ea3ad4e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3f3e8a155dad42c2ddacfa8858821c4c28b6caa594aa7ce2711ab9554ea3ad4e", kill_on_drop: false }` [INFO] [stdout] 3f3e8a155dad42c2ddacfa8858821c4c28b6caa594aa7ce2711ab9554ea3ad4e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] a10a745f45b388643bd65b6f2968fea02bfac17eb1437cdf1b77371e5f02e00b [INFO] running `Command { std: "docker" "start" "-a" "a10a745f45b388643bd65b6f2968fea02bfac17eb1437cdf1b77371e5f02e00b", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/guardrails-3d4126ee489f2cfe) [INFO] [stdout] [INFO] [stdout] running 325 tests [INFO] [stdout] test cli::format::tests::apply_fixes_no_fixable_violations ... ok [INFO] [stdout] test cli::format::tests::compact_missing_line_defaults_to_1 ... ok [INFO] [stdout] test cli::format::tests::compact_no_violations ... ok [INFO] [stdout] test cli::format::tests::compact_ratchet_on_stderr ... ok [INFO] [stdout] test cli::format::tests::compact_ratchet_over_on_stderr ... ok [INFO] [stdout] test cli::format::tests::github_missing_line_defaults_to_1 ... ok [INFO] [stdout] test cli::format::tests::github_ratchet_over_budget ... ok [INFO] [stdout] test cli::format::tests::github_multiple_violations ... ok [INFO] [stdout] test cli::format::tests::compact_mixed_severities ... ok [INFO] [stdout] test cli::format::tests::github_ratchet_pass_is_silent ... ok [INFO] [stdout] test cli::format::tests::compact_single_error ... ok [INFO] [stdout] test cli::format::tests::github_single_warning ... ok [INFO] [stdout] test cli::format::tests::markdown_errors_only ... ok [INFO] [stdout] test cli::format::tests::markdown_no_violations ... ok [INFO] [stdout] test cli::format::tests::json_violation_without_fix ... ok [INFO] [stdout] test cli::format::tests::json_with_violations_and_ratchet ... ok [INFO] [stdout] test cli::format::tests::markdown_ratchet_only_no_violations ... ok [INFO] [stdout] test cli::format::tests::markdown_single_changed_file ... ok [INFO] [stdout] test cli::format::tests::markdown_violation_with_suggestion ... ok [INFO] [stdout] test cli::format::tests::markdown_violation_no_line_number ... ok [INFO] [stdout] test cli::format::tests::markdown_warnings_only ... ok [INFO] [stdout] test cli::format::tests::github_missing_column_omits_col ... ok [INFO] [stdout] test cli::format::tests::markdown_with_changed_only_context ... ok [INFO] [stdout] test cli::format::tests::markdown_with_ratchet ... ok [INFO] [stdout] test cli::format::tests::pretty_line_only_no_column ... ok [INFO] [stdout] test cli::format::tests::apply_fixes_nonexistent_file_skipped ... ok [INFO] [stdout] test cli::format::tests::pretty_multiple_files_grouped ... ok [INFO] [stdout] test cli::format::tests::pretty_errors_only_no_warning_count ... ok [INFO] [stdout] test cli::format::tests::pretty_no_line_no_column ... ok [INFO] [stdout] test cli::format::tests::pretty_mixed_with_comma ... ok [INFO] [stdout] test cli::format::tests::pretty_plural_errors ... ok [INFO] [stdout] test cli::format::tests::pretty_with_ratchet ... ok [INFO] [stdout] test cli::format::tests::pretty_with_source_line ... ok [INFO] [stdout] test cli::format::tests::apply_fixes_dry_run_no_write ... ok [INFO] [stdout] test cli::format::tests::pretty_with_suggestion ... ok [INFO] [stdout] test cli::format::tests::ratchet_summary_pretty_empty ... ok [INFO] [stdout] test cli::format::tests::ratchet_stderr_empty ... ok [INFO] [stdout] test cli::format::tests::ratchet_stderr_pass_and_over ... ok [INFO] [stdout] test cli::format::tests::apply_fixes_multiple_in_same_file ... ok [INFO] [stdout] test cli::format::tests::apply_fixes_line_targeted ... ok [INFO] [stdout] test cli::format::tests::ratchet_summary_pretty_pass_and_over ... ok [INFO] [stdout] test cli::format::tests::sarif_empty_violations ... ok [INFO] [stdout] test cli::format::tests::sarif_fix_without_suggest_uses_default ... ok [INFO] [stdout] test cli::format::tests::summary_stderr_errors_only ... ok [INFO] [stdout] test cli::format::tests::summary_stderr_no_violations ... ok [INFO] [stdout] test cli::format::tests::summary_stderr_plural_errors_and_warnings ... ok [INFO] [stdout] test cli::format::tests::sarif_missing_line_col_defaults_to_1 ... ok [INFO] [stdout] test cli::format::tests::summary_stderr_warnings_only ... ok [INFO] [stdout] test cli::format::tests::summary_stderr_singular_counts ... ok [INFO] [stdout] test git_diff::tests::detect_base_ref_defaults_to_main ... ok [INFO] [stdout] test git_diff::tests::diff_info_has_file_and_line ... ok [INFO] [stdout] test git_diff::tests::parse_hunk_multi_line ... ok [INFO] [stdout] test git_diff::tests::parse_hunk_pure_deletion ... ok [INFO] [stdout] test git_diff::tests::parse_diff_full ... ok [INFO] [stdout] test init::tests::detect_shadcn_without_tailwind_config ... ok [INFO] [stdout] test init::tests::detect_shadcn_project ... ok [INFO] [stdout] test init::tests::detect_unknown ... ok [INFO] [stdout] test init::tests::detect_tailwind_only ... ok [INFO] [stdout] test init::tests::detect_tailwind_ts_config ... ok [INFO] [stdout] test init::tests::shadcn_config_uses_extends ... ok [INFO] [stdout] test init::tests::tailwind_config_has_migration_rules ... ok [INFO] [stdout] test mcp::tests::format_violations_empty ... ok [INFO] [stdout] test mcp::tests::format_violations_counts_severities ... ok [INFO] [stdout] test mcp::tests::initialize_returns_protocol_version ... ok [INFO] [stdout] test mcp::tests::format_violations_with_fix ... ok [INFO] [stdout] test mcp::tests::tools_list_returns_both_tools ... ok [INFO] [stdout] test mcp::tests::unknown_tool_returns_error ... ok [INFO] [stdout] test cli::format::tests::markdown_errors_and_warnings ... ok [INFO] [stdout] test presets::tests::ai_safety_has_three_rules ... ok [INFO] [stdout] test cli::format::tests::json_empty_violations ... ok [INFO] [stdout] test presets::tests::ai_codegen_has_twelve_rules ... ok [INFO] [stdout] test presets::tests::all_preset_names_resolve ... ok [INFO] [stdout] test cli::format::tests::apply_fixes_preserves_trailing_newline ... ok [INFO] [stdout] test cli::format::tests::pretty_no_violations_with_ratchet ... ok [INFO] [stdout] test cli::format::tests::apply_fixes_no_line_fallback ... ok [INFO] [stdout] test cli::format::tests::pretty_warnings_only ... ok [INFO] [stdout] test cli::format::tests::pretty_with_error_and_warning ... ok [INFO] [stdout] test presets::tests::later_preset_overrides_earlier ... ok [INFO] [stdout] test git_diff::tests::parse_hunk_single_line ... ok [INFO] [stdout] test presets::tests::multiple_presets_combine ... ok [INFO] [stdout] test presets::tests::nextjs_has_eight_rules ... ok [INFO] [stdout] test presets::tests::no_eslint_disable_pattern ... ok [INFO] [stdout] test presets::tests::no_innerhtml_catches_plus_equals ... ok [INFO] [stdout] test git_diff::tests::parse_hunk_with_context ... ok [INFO] [stdout] test presets::tests::no_postmessage_wildcard_pattern ... ok [INFO] [stdout] test presets::tests::no_sync_scripts_pattern ... ok [INFO] [stdout] test presets::tests::no_type_any_catches_generics ... ok [INFO] [stdout] test presets::tests::no_non_null_assertion_pattern ... ok [INFO] [stdout] test presets::tests::resolve_empty_extends_returns_user_rules ... ok [INFO] [stdout] test init::tests::generic_config_has_examples ... ok [INFO] [stdout] test presets::tests::resolve_unknown_preset_errors ... ok [INFO] [stdout] test presets::tests::security_has_ten_rules ... ok [INFO] [stdout] test presets::tests::shadcn_migrate_has_two_rules ... ok [INFO] [stdout] test presets::tests::shadcn_strict_has_five_rules ... ok [INFO] [stdout] test presets::tests::user_rule_appended_after_preset ... ok [INFO] [stdout] test ratchet::tests::append_default_glob_omitted ... ok [INFO] [stdout] test init::tests::detect_generic_project ... ok [INFO] [stdout] test cli::format::tests::json_warning_severity ... ok [INFO] [stdout] test cli::format::tests::pretty_no_violations ... ok [INFO] [stdout] test presets::tests::no_require_in_ts_pattern ... ok [INFO] [stdout] test presets::tests::no_var_pattern ... ok [INFO] [stdout] test presets::tests::no_outerhtml_pattern ... ok [INFO] [stdout] test ratchet::tests::append_escapes_quotes ... ok [INFO] [stdout] test presets::tests::no_hardcoded_secrets_expanded ... ok [INFO] [stdout] test cli::format::tests::sarif_full_output ... ok [INFO] [stdout] test presets::tests::no_link_fonts_pattern ... ok [INFO] [stdout] test ratchet::tests::append_generates_valid_toml ... ok [INFO] [stdout] test presets::tests::user_rule_overrides_preset ... ok [INFO] [stdout] test ratchet::tests::error_display_rule_already_exists ... ok [INFO] [stdout] test ratchet::tests::escape_backslash ... ok [INFO] [stdout] test ratchet::tests::escape_quotes ... ok [INFO] [stdout] test ratchet::tests::extract_value_basic ... ok [INFO] [stdout] test ratchet::tests::extract_value_with_spaces ... ok [INFO] [stdout] test ratchet::tests::extract_value_wrong_key ... ok [INFO] [stdout] test ratchet::tests::error_display_baseline_parse ... ok [INFO] [stdout] test ratchet::tests::error_display_no_decrease ... ok [INFO] [stdout] test ratchet::tests::run_add_duplicate_id_errors ... ok [INFO] [stdout] test ratchet::tests::error_display_rule_not_found ... ok [INFO] [stdout] test presets::tests::no_non_null_assertion_no_false_positives_on_strings ... ok [INFO] [stdout] test ratchet::tests::run_from_invalid_baseline_errors ... ok [INFO] [stdout] test ratchet::tests::run_down_rule_not_found_errors ... ok [INFO] [stdout] test presets::tests::no_document_write_pattern ... ok [INFO] [stdout] test ratchet::tests::run_from_creates_rules_from_baseline ... ok [INFO] [stdout] test ratchet::tests::count_pattern_respects_glob ... ok [INFO] [stdout] test ratchet::tests::slugify_complex_pattern ... ok [INFO] [stdout] test ratchet::tests::slugify_leading_special_chars ... ok [INFO] [stdout] test ratchet::tests::slugify_preserves_numbers ... ok [INFO] [stdout] test ratchet::tests::slugify_regex_pattern ... ok [INFO] [stdout] test ratchet::tests::slugify_simple_pattern ... ok [INFO] [stdout] test ratchet::tests::slugify_empty ... ok [INFO] [stdout] test ratchet::tests::run_from_missing_baseline_errors ... ok [INFO] [stdout] test ratchet::tests::slugify_all_special ... ok [INFO] [stdout] test ratchet::tests::run_from_skips_existing_rules ... ok [INFO] [stdout] test ratchet::tests::update_max_count_basic ... ok [INFO] [stdout] test ratchet::tests::update_max_count_nonexistent_id ... ok [INFO] [stdout] test ratchet::tests::update_max_count_multiple_rules ... ok [INFO] [stdout] test ratchet::tests::update_remaining_replaces_count ... ok [INFO] [stdout] test ratchet::tests::update_remaining_no_match_passthrough ... ok [INFO] [stdout] test rules::banned_dependency::tests::detects_multiple_banned_packages ... ok [INFO] [stdout] test rules::banned_dependency::tests::custom_manifest_name ... ok [INFO] [stdout] test rules::banned_dependency::tests::detects_dependency ... ok [INFO] [stdout] test ratchet::tests::run_down_no_decrease_errors ... ok [INFO] [stdout] test ratchet::tests::update_max_count_preserves_trailing_newline ... ok [INFO] [stdout] test ratchet::tests::run_down_lowers_max_count ... ok [INFO] [stdout] test rules::banned_dependency::tests::finds_line_numbers ... ok [INFO] [stdout] test rules::banned_dependency::tests::detects_dev_dependency ... ok [INFO] [stdout] test rules::banned_dependency::tests::no_match_on_safe_deps ... ok [INFO] [stdout] test rules::banned_dependency::tests::skips_malformed_json ... ok [INFO] [stdout] test ratchet::tests::error_display_config_read ... ok [INFO] [stdout] test rules::banned_dependency::tests::missing_packages_error ... ok [INFO] [stdout] test rules::banned_dependency::tests::skips_non_manifest_files ... ok [INFO] [stdout] test ratchet::tests::count_pattern_counts_matches ... ok [INFO] [stdout] test ratchet::tests::run_add_with_regex ... ok [INFO] [stdout] test ratchet::tests::run_add_custom_id_and_message ... ok [INFO] [stdout] test rules::banned_import::tests::detects_destructured_import ... ok [INFO] [stdout] test rules::banned_import::tests::detects_side_effect_import ... ok [INFO] [stdout] test rules::banned_import::tests::default_glob_set ... ok [INFO] [stdout] test rules::banned_import::tests::detects_require ... ok [INFO] [stdout] test rules::banned_import::tests::detects_export_from ... ok [INFO] [stdout] test rules::banned_import::tests::detects_named_import ... ok [INFO] [stdout] test rules::banned_import::tests::detects_subpath_import ... ok [INFO] [stdout] test rules::banned_import::tests::detects_scoped_package ... ok [INFO] [stdout] test ratchet::tests::run_add_creates_rule_and_counts ... ok [INFO] [stdout] test rules::banned_pattern::tests::literal_multiline ... ok [INFO] [stdout] test rules::banned_pattern::tests::literal_no_match ... ok [INFO] [stdout] test presets::tests::no_http_links_pattern ... ok [INFO] [stdout] test rules::banned_pattern::tests::literal_multiple_matches_per_line ... ok [INFO] [stdout] test rules::banned_pattern::tests::missing_pattern_error ... ok [INFO] [stdout] test rules::banned_pattern::tests::violation_metadata ... ok [INFO] [stdout] test rules::banned_import::tests::missing_packages_error ... ok [INFO] [stdout] test rules::banned_pattern::tests::regex_match ... ok [INFO] [stdout] test rules::banned_pattern::tests::empty_pattern_error ... ok [INFO] [stdout] test rules::banned_pattern::tests::invalid_regex_error ... ok [INFO] [stdout] test rules::banned_pattern::tests::literal_match ... ok [INFO] [stdout] test rules::banned_pattern::tests::regex_no_match ... ok [INFO] [stdout] test rules::ratchet::tests::accessors ... ok [INFO] [stdout] test rules::ratchet::tests::basic_match ... ok [INFO] [stdout] test rules::ratchet::tests::column_accuracy ... ok [INFO] [stdout] test rules::file_presence::tests::file_missing_one_violation ... ok [INFO] [stdout] test rules::ratchet::tests::empty_pattern_error ... ok [INFO] [stdout] test rules::file_presence::tests::forbidden_file_absent_no_violation ... ok [INFO] [stdout] test rules::file_presence::tests::mixed_required_and_forbidden ... ok [INFO] [stdout] test rules::file_presence::tests::forbidden_multiple_some_present ... ok [INFO] [stdout] test rules::banned_import::tests::no_false_positive_on_similar_names ... ok [INFO] [stdout] test rules::banned_import::tests::no_match_on_safe_imports ... ok [INFO] [stdout] test rules::file_presence::tests::forbidden_only_allows_construction ... ok [INFO] [stdout] test rules::file_presence::tests::missing_both_fields_error ... ok [INFO] [stdout] test rules::ratchet::tests::max_count_zero_works ... ok [INFO] [stdout] test rules::ratchet::tests::missing_max_count_error ... ok [INFO] [stdout] test rules::ratchet::tests::missing_pattern_error ... ok [INFO] [stdout] test rules::ratchet::tests::no_matches ... ok [INFO] [stdout] test rules::required_pattern::tests::condition_pattern_met_required_missing ... ok [INFO] [stdout] test rules::ratchet::tests::multiple_matches_per_line ... ok [INFO] [stdout] test rules::required_pattern::tests::condition_pattern_met_required_present ... ok [INFO] [stdout] test rules::required_pattern::tests::condition_pattern_not_met_skips ... ok [INFO] [stdout] test rules::required_pattern::tests::pattern_missing_one_violation ... ok [INFO] [stdout] test rules::required_pattern::tests::pattern_present_no_violation ... ok [INFO] [stdout] test rules::required_pattern::tests::missing_pattern_error ... ok [INFO] [stdout] test rules::file_presence::tests::multiple_files_partial_missing ... ok [INFO] [stdout] test rules::file_presence::tests::nested_file_exists ... ok [INFO] [stdout] test rules::required_pattern::tests::regex_pattern_missing ... ok [INFO] [stdout] test rules::required_pattern::tests::regex_pattern_present ... ok [INFO] [stdout] test presets::tests::no_private_env_client_pattern_correctness ... ok [INFO] [stdout] test rules::banned_import::tests::multiple_banned_packages ... ok [INFO] [stdout] test rules::file_presence::tests::file_exists_no_violation ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::bad_card_full_file ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::good_card_semantic_bg_muted_passes ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::good_card_full_file ... ok [INFO] [stdout] test presets::tests::all_preset_regex_patterns_compile ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::good_card_semantic_text_muted_foreground_passes ... ok [INFO] [stdout] test rules::file_presence::tests::forbidden_file_present_violation ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::dark_variant_present_no_violation ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::bad_card_flags_hardcoded_bg_white ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::bad_card_flags_button_bg ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::bad_card_flags_border_color ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::cn_call_with_hardcoded_colors_flagged ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::bad_card_flags_hardcoded_text_colors ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::bad_card_flags_destructive_colors ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::bad_card_flags_muted_text ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::custom_allowed_class_suppresses_violation ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::good_card_semantic_border_passes ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::allowed_class_not_flagged ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::transparent_and_current_always_pass ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::cn_call_with_semantic_tokens_passes ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::custom_token_map_override ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::good_card_destructive_semantic_passes ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::dark_prefix_skipped ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::flags_bg_red_500_as_destructive ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::semantic_destructive_tokens_pass ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::flags_border_gray_200 ... ok [INFO] [stdout] test rules::tailwind_dark_mode::tests::plain_text_no_violations ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::flags_text_gray_500_as_muted ... ok [INFO] [stdout] test rules::window_pattern::tests::missing_condition_pattern_error ... ok [INFO] [stdout] test rules::window_pattern::tests::missing_trigger_pattern_error ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::flags_text_gray_900 ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::cn_call_context_detected ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::semantic_bg_muted_passes ... ok [INFO] [stdout] test rules::window_pattern::tests::required_missing_within_window ... ok [INFO] [stdout] test rules::window_pattern::tests::required_present_within_window ... ok [INFO] [stdout] test scan::tests::build_glob_set_empty ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::semantic_border_border_passes ... ok [INFO] [stdout] test rules::window_pattern::tests::window_looks_before_trigger ... ok [INFO] [stdout] test scan::tests::build_glob_set_brace_expansion ... ok [INFO] [stdout] test scan::tests::build_glob_set_from_pattern_brace_expansion ... ok [INFO] [stdout] test rules::window_pattern::tests::required_outside_window ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::non_class_context_ignored ... ok [INFO] [stdout] test rules::window_pattern::tests::multiple_triggers ... ok [INFO] [stdout] test scan::tests::build_glob_set_matches ... ok [INFO] [stdout] test scan::tests::build_glob_set_invalid_pattern ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::semantic_primary_tokens_pass ... ok [INFO] [stdout] test scan::tests::build_rules_banned_pattern_rule ... ok [INFO] [stdout] test rules::window_pattern::tests::regex_patterns ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::violation_has_correct_line_number ... ok [INFO] [stdout] test scan::tests::build_rules_file_presence_separated ... ok [INFO] [stdout] test scan::tests::build_rules_groups_same_glob ... ok [INFO] [stdout] test scan::tests::build_rules_unknown_type_errors ... ok [INFO] [stdout] test scan::tests::build_rules_ratchet_records_threshold ... ok [INFO] [stdout] test scan::tests::build_rules_separates_different_globs ... ok [INFO] [stdout] test scan::tests::build_rules_with_file_conditioning ... ok [INFO] [stdout] test scan::tests::build_rules_with_exclude_glob ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::flags_bg_white ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::good_card_full_file ... ok [INFO] [stdout] test scan::tests::build_glob_set_from_pattern_path_glob ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::flags_bg_slate_900 ... ok [INFO] [stdout] test scan::tests::expand_glob_no_double_prefix ... ok [INFO] [stdout] test scan::tests::expand_glob_single_brace ... ok [INFO] [stdout] test scan::tests::expand_glob_simple_extension_no_prefix ... ok [INFO] [stdout] test scan::tests::expand_glob_auto_prefix_path_glob ... ok [INFO] [stdout] test scan::tests::collect_files_single_file ... ok [INFO] [stdout] test scan::tests::expand_glob_three_alternatives ... ok [INFO] [stdout] test scan::tests::no_ratchet_rules_is_noop ... ok [INFO] [stdout] test scan::tests::not_suppressed_next_line_wrong_rule ... ok [INFO] [stdout] test scan::tests::expand_glob_no_braces ... ok [INFO] [stdout] test scan::tests::not_suppressed_wrong_rule_id ... ok [INFO] [stdout] test scan::tests::passes_conditioning_both_conditions ... ok [INFO] [stdout] test scan::tests::passes_conditioning_file_not_contains ... ok [INFO] [stdout] test scan::tests::build_glob_set_path_glob_matches_absolute ... ok [INFO] [stdout] test scan::tests::collect_files_excludes_patterns ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::bad_card_full_file ... ok [INFO] [stdout] test scan::tests::expand_glob_no_comma_passthrough ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::semantic_text_muted_foreground_passes ... ok [INFO] [stdout] test scan::tests::group_matches_file_exclusion_glob_rejects ... ok [INFO] [stdout] test scan::tests::group_matches_file_no_glob_matches_all ... ok [INFO] [stdout] test scan::tests::not_suppressed_no_comment ... ok [INFO] [stdout] test scan::tests::passes_conditioning_no_conditions ... ok [INFO] [stdout] test scan::tests::ratchet_over_budget_keeps_all ... ok [INFO] [stdout] test scan::tests::ratchet_exactly_at_budget_suppresses ... ok [INFO] [stdout] test scan::tests::ratchet_zero_no_matches_suppresses ... ok [INFO] [stdout] test scan::tests::ratchet_zero_with_matches_keeps_all ... ok [INFO] [stdout] test scan::tests::group_matches_file_inclusion_glob_filters ... ok [INFO] [stdout] test scan::tests::ratchet_under_budget_suppresses ... ok [INFO] [stdout] test scan::tests::run_scan_missing_config_errors ... ok [INFO] [stdout] test scan::tests::run_rules_on_content_skips_file_conditioning ... ok [INFO] [stdout] test scan::tests::run_rules_on_content_skips_non_matching_glob ... ok [INFO] [stdout] test scan::tests::run_rules_on_content_respects_suppression ... ok [INFO] [stdout] test scan::tests::run_rules_on_content_finds_violations ... ok [INFO] [stdout] test scan::tests::run_scan_stdin_glob_filters_filename ... ok [INFO] [stdout] test scan::tests::passes_conditioning_file_contains_present ... ok [INFO] [stdout] test scan::tests::run_scan_stdin_finds_violations ... ok [INFO] [stdout] test scan::tests::run_scan_invalid_config_errors ... ok [INFO] [stdout] test scan::tests::collect_files_directory_walk ... ok [INFO] [stdout] test scan::tests::scan_error_display_git_diff ... ok [INFO] [stdout] test rules::tailwind_theme_tokens::tests::violation_has_source_line ... ok [INFO] [stdout] test scan::tests::run_scan_stdin_no_violations ... ok [INFO] [stdout] test scan::tests::scan_error_display_config_parse ... ok [INFO] [stdout] test scan::tests::scan_error_display_config_read ... ok [INFO] [stdout] test scan::tests::scan_error_display_glob_parse ... ok [INFO] [stdout] test scan::tests::scan_error_display_preset ... ok [INFO] [stdout] test scan::tests::scan_error_display_rule_factory ... ok [INFO] [stdout] test scan::tests::suppressed_by_allow_all ... ok [INFO] [stdout] test scan::tests::suppressed_by_allow_next_line ... ok [INFO] [stdout] test scan::tests::suppressed_by_allow_next_line_all ... ok [INFO] [stdout] test scan::tests::suppressed_by_same_line_allow ... ok [INFO] [stdout] test scan::tests::run_scan_file_presence_rule ... ok [INFO] [stdout] test scan::tests::run_baseline_counts_ratchet_matches ... ok [INFO] [stdout] test scan::tests::run_scan_skip_no_matching_files ... ok [INFO] [stdout] test scan::tests::run_baseline_skips_non_ratchet_rules ... ok [INFO] [stdout] test scan::tests::run_scan_with_banned_pattern ... ok [INFO] [stdout] test scan::tests::run_scan_with_ratchet_rule ... ok [INFO] [stdout] test scan::tests::run_scan_with_plugin ... ok [INFO] [stdout] test scan::tests::run_scan_no_violations ... ok [INFO] [stdout] test scan::tests::run_scan_excludes_files ... ok [INFO] [stdout] test scan::tests::suppressed_past_end_is_safe ... ok [INFO] [stdout] test scan::tests::run_scan_with_preset ... ok [INFO] [stdout] test scan::tests::suppressed_line_zero_is_safe ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 325 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/guardrails-cbf4756f40a7fc84) [INFO] [stderr] Doc-tests guardrails [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "a10a745f45b388643bd65b6f2968fea02bfac17eb1437cdf1b77371e5f02e00b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a10a745f45b388643bd65b6f2968fea02bfac17eb1437cdf1b77371e5f02e00b", kill_on_drop: false }` [INFO] [stdout] a10a745f45b388643bd65b6f2968fea02bfac17eb1437cdf1b77371e5f02e00b