[INFO] cloning repository https://github.com/harperreed/ccdr [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/harperreed/ccdr" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharperreed%2Fccdr", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharperreed%2Fccdr'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1d710d46932b2fe119dcc82962c0558acd08646b [INFO] testing harperreed/ccdr/1d710d46932b2fe119dcc82962c0558acd08646b 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%2Fharperreed%2Fccdr" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/harperreed/ccdr [INFO] finished tweaking git repo https://github.com/harperreed/ccdr [INFO] tweaked toml for git repo https://github.com/harperreed/ccdr written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/harperreed/ccdr 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/harperreed/ccdr 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 bitflags v2.9.3 [INFO] [stderr] Downloaded unic-segment v0.9.0 [INFO] [stderr] Downloaded winapi-util v0.1.10 [INFO] [stderr] Downloaded unic-ucd-version v0.9.0 [INFO] [stderr] Downloaded unic-char-range v0.9.0 [INFO] [stderr] Downloaded unic-char-property v0.9.0 [INFO] [stderr] Downloaded anstyle v1.0.11 [INFO] [stderr] Downloaded indexmap v2.11.0 [INFO] [stderr] Downloaded unic-common v0.9.0 [INFO] [stderr] Downloaded clap_lex v0.7.5 [INFO] [stderr] Downloaded pest_generator v2.8.1 [INFO] [stderr] Downloaded csv-core v0.1.12 [INFO] [stderr] Downloaded tempfile v3.21.0 [INFO] [stderr] Downloaded pest_meta v2.8.1 [INFO] [stderr] Downloaded pest_derive v2.8.1 [INFO] [stderr] Downloaded memmap2 v0.9.8 [INFO] [stderr] Downloaded unic-ucd-segment v0.9.0 [INFO] [stderr] Downloaded clap_derive v4.5.45 [INFO] [stderr] Downloaded anstream v0.6.20 [INFO] [stderr] Downloaded wit-bindgen v0.45.0 [INFO] [stderr] Downloaded assert_cmd v2.0.17 [INFO] [stderr] Downloaded tera v1.20.0 [INFO] [stderr] Downloaded clap v4.5.46 [INFO] [stderr] Downloaded clap_complete v4.5.57 [INFO] [stderr] Downloaded anyhow v1.0.99 [INFO] [stderr] Downloaded cc v1.2.34 [INFO] [stderr] Downloaded pest v2.8.1 [INFO] [stderr] Downloaded wasi v0.14.3+wasi-0.2.4 [INFO] [stderr] Downloaded clap_builder v4.5.46 [INFO] [stderr] Downloaded serde_json v1.0.143 [INFO] [stderr] Downloaded proptest v1.7.0 [INFO] [stderr] Downloaded csv v1.3.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117 [INFO] running `Command { std: "docker" "start" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117", 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" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117" "/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" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117", 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" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling libc v0.2.175 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling cfg-if v1.0.3 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling regex-syntax v0.8.6 [INFO] [stderr] Compiling anstyle-query v1.1.4 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling anstream v0.6.20 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling clap_builder v4.5.46 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Compiling unicode-width v0.2.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling anyhow v1.0.99 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling csv-core v0.1.12 [INFO] [stderr] Compiling unicode-normalization v0.1.24 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling nu-ansi-term v0.50.1 [INFO] [stderr] Compiling iana-time-zone v0.1.63 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling memmap2 v0.9.8 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling indicatif v0.17.11 [INFO] [stderr] Compiling regex-automata v0.4.10 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling clap_derive v4.5.45 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling tokio v1.47.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling clap v4.5.46 [INFO] [stderr] Compiling clap_complete v4.5.57 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.11.2 [INFO] [stderr] Compiling tracing-subscriber v0.3.20 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling indexmap v2.11.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling csv v1.3.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling ccdr v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/utils/string.rs:83:36 [INFO] [stdout] | [INFO] [stdout] 83 | fn strip_surrounding_quotes(input: &str) -> Cow { [INFO] [stdout] | ^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 83 | fn strip_surrounding_quotes(input: &str) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 50.14s [INFO] running `Command { std: "docker" "inspect" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117", 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" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117" "/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 serde v1.0.219 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling bitflags v2.9.3 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling half v2.6.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling predicates-core v1.0.9 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling assert_cmd v2.0.17 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling bstr v1.12.0 [INFO] [stderr] Compiling is-terminal v0.4.16 [INFO] [stderr] Compiling predicates-tree v1.0.12 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling predicates v3.1.3 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling pretty_assertions v1.4.1 [INFO] [stderr] Compiling indexmap v2.11.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Compiling csv v1.3.1 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling insta v1.43.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling tempfile v3.21.0 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling rusty-fork v0.3.0 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling proptest v1.7.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling ccdr v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/utils/string.rs:83:36 [INFO] [stdout] | [INFO] [stdout] 83 | fn strip_surrounding_quotes(input: &str) -> Cow { [INFO] [stdout] | ^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 83 | fn strip_surrounding_quotes(input: &str) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/utils/string.rs:83:36 [INFO] [stdout] | [INFO] [stdout] 83 | fn strip_surrounding_quotes(input: &str) -> Cow { [INFO] [stdout] | ^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 83 | fn strip_surrounding_quotes(input: &str) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 20.76s [INFO] running `Command { std: "docker" "inspect" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117", 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" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/utils/string.rs:83:36 [INFO] [stderr] | [INFO] [stderr] 83 | fn strip_surrounding_quotes(input: &str) -> Cow { [INFO] [stderr] | ^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 83 | fn strip_surrounding_quotes(input: &str) -> Cow<'_, str> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: `ccdr` (lib) generated 1 warning (run `cargo fix --lib -p ccdr` to apply 1 suggestion) [INFO] [stderr] warning: `ccdr` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ccdr-9e98e9a797f83b17) [INFO] [stdout] [INFO] [stdout] running 217 tests [INFO] [stdout] test config::tests::test_config_defaults ... ok [INFO] [stdout] test config::tests::test_invalid_fuzzy_threshold_validation ... ok [INFO] [stdout] test config::tests::test_invalid_regex_validation ... ok [INFO] [stdout] test detector::engine::tests::test_affected_item_debug ... ok [INFO] [stdout] test detector::engine::tests::test_detected_issue_debug ... ok [INFO] [stdout] test config::tests::test_load_with_defaults_none ... ok [INFO] [stdout] test config::tests::test_defaults_applied_when_missing ... ok [INFO] [stdout] test detector::engine::tests::test_detection_engine_new ... ok [INFO] [stdout] test detector::engine::tests::test_detection_engine_single_rule ... ok [INFO] [stdout] test detector::engine::tests::test_detection_engine_empty_rules ... ok [INFO] [stdout] test detector::engine::tests::test_detection_engine_default ... ok [INFO] [stdout] test detector::engine::tests::test_error_handling_continues_execution ... ok [INFO] [stdout] test detector::engine::tests::test_detection_engine_multiple_rules_sorting ... ok [INFO] [stdout] test detector::engine::tests::test_issue_severity_ordering ... ok [INFO] [stdout] test detector::engine::tests::test_multiple_rule_failures ... ok [INFO] [stdout] test detector::engine::tests::test_index_integration ... ok [INFO] [stdout] test detector::engine::tests::test_rule_id_uniqueness_validation ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_contacts_without_display_names_skipped ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_contacts_without_emails_skipped ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_duplicate_contacts_detected ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_duplicate_contacts_rule_default ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_duplicate_contacts_rule_id ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_all_emails_in_affected_items ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_case_insensitive_name_matching ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_multiple_duplicate_groups ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_no_duplicates_empty_index ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_no_duplicates_unique_contacts ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_three_duplicate_contacts ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_multiple_emails_sorting ... ok [INFO] [stdout] test detector::rules::duplicates::tests::test_whitespace_normalization ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_case_insensitive_name_matching ... ok [INFO] [stdout] test config::tests::test_load_from_toml_string ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_email_cross_contamination_rule_default ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_email_cross_contamination_detected ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_email_cross_contamination_rule_id ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_deterministic_output_ordering ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_contacts_without_display_names ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_no_cross_contamination_empty_index ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_multiple_cross_contamination_scenarios ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_no_cross_contamination_unique_emails ... ok [INFO] [stdout] test detector::rules::email_cross::tests::test_same_name_same_email_no_issue ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_mismatch_pattern_invalid_confidence ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_name_email_mismatch_rule_default ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_name_email_mismatch_rule_id ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_mismatch_pattern_invalid_regex ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_no_patterns_no_issues ... ok [INFO] [stdout] test error::tests::test_config_error_display ... ok [INFO] [stdout] test error::tests::test_io_error_conversion ... ok [INFO] [stdout] test error::tests::test_parse_error_display ... ok [INFO] [stdout] test error::tests::test_parse_error_with_source ... ok [INFO] [stdout] test error::tests::test_detection_error_display ... ok [INFO] [stdout] test error::tests::test_encoding_error_display ... ok [INFO] [stdout] test error::tests::test_repair_error_display ... ok [INFO] [stdout] test error::tests::test_validation_error_display ... ok [INFO] [stdout] test index::builder::tests::test_add_single_contact ... ok [INFO] [stdout] test index::builder::tests::test_contact_index_default ... ok [INFO] [stdout] test index::builder::tests::test_contact_index_new ... ok [INFO] [stdout] test index::builder::tests::test_contact_ref_stability ... ok [INFO] [stdout] test index::builder::tests::test_contact_ref_validation ... ok [INFO] [stdout] test index::builder::tests::test_contact_with_multiple_emails ... ok [INFO] [stdout] test index::builder::tests::test_contact_with_zero_emails ... ok [INFO] [stdout] test index::builder::tests::test_lookup_by_email ... ok [INFO] [stdout] test index::builder::tests::test_get_contact_by_ref ... ok [INFO] [stdout] test index::builder::tests::test_multiple_contacts_same_email ... ok [INFO] [stdout] test index::builder::tests::test_multiple_contacts_same_name ... ok [INFO] [stdout] test model::contact::tests::test_contact_display_name_empty_strings ... ok [INFO] [stdout] test model::contact::tests::test_contact_display_name_fallback_to_n ... ok [INFO] [stdout] test model::contact::tests::test_contact_display_name_mixed_empty_strings ... ok [INFO] [stdout] test index::builder::tests::test_normalized_name_method ... ok [INFO] [stdout] test index::builder::tests::test_email_normalization_edge_cases ... ok [INFO] [stdout] test index::builder::tests::test_lookup_by_id ... ok [INFO] [stdout] test index::builder::tests::test_contact_without_display_name ... ok [INFO] [stdout] test model::contact::tests::test_contact_display_name_none ... ok [INFO] [stdout] test model::contact::tests::test_contact_display_name_whitespace_fn ... ok [INFO] [stdout] test model::contact::tests::test_contact_display_name_fn_preference ... ok [INFO] [stdout] test model::contact::tests::test_email_type_custom_debug ... ok [INFO] [stdout] test model::contact::tests::test_vcard_version_default ... ok [INFO] [stdout] test parser::encoding::tests::test_detect_empty_bytes_defaults_to_utf8 ... ok [INFO] [stdout] test parser::encoding::tests::test_detect_partial_bom_utf16 ... ok [INFO] [stdout] test parser::encoding::tests::test_detect_no_bom_defaults_to_utf8 ... ok [INFO] [stdout] test parser::encoding::tests::test_detect_utf16le_bom ... ok [INFO] [stdout] test parser::encoding::tests::test_detect_partial_bom_utf8 ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_no_matches_no_issues ... ok [INFO] [stdout] test parser::encoding::tests::test_detect_utf16be_bom ... ok [INFO] [stdout] test model::contact::tests::test_contact_id_single_part ... ok [INFO] [stdout] test index::builder::tests::test_lookup_by_name ... ok [INFO] [stdout] test model::contact::tests::test_contact_id_stable_hashing ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_case_insensitive_matching ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_multiple_emails_per_contact ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_contacts_without_display_names ... ok [INFO] [stdout] test model::contact::tests::test_contact_display_name_empty_fn_fallback ... ok [INFO] [stdout] test parser::encoding::tests::test_detect_utf8_bom ... ok [INFO] [stdout] test parser::encoding::tests::test_encoding_detector_default ... ok [INFO] [stdout] test parser::encoding::tests::test_encoding_variants_debug ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_case_insensitive ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_colon_in_value ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_empty_input ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_missing_colon ... ok [INFO] [stdout] test parser::encoding::tests::test_encoding_detector_new ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_empty_name ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_malformed_param ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_multiple_params ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_only_colon ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_semicolon_in_quoted_param ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_with_type ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_with_valueless_param ... ok [INFO] [stdout] test parser::properties::tests::test_parse_simple_property ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_nested_quotes_in_param ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_whitespace_handling ... ok [INFO] [stdout] test parser::properties::tests::test_parse_property_with_quoted_value ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_pattern_match_detected ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_no_duplicate_issues_per_contact_pattern ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_mismatch_pattern_creation ... ok [INFO] [stdout] test parser::properties::tests::test_split_parameters ... ok [INFO] [stdout] test parser::properties::tests::test_strip_quotes ... ok [INFO] [stdout] test parser::vcard::tests::test_line_ranges_malformed_no_end ... ok [INFO] [stdout] test parser::vcard::tests::test_line_ranges_multiple_cards ... ok [INFO] [stdout] test parser::vcard::tests::test_build_contact_id_parts ... ok [INFO] [stdout] test parser::vcard::tests::test_line_ranges_single_card ... ok [INFO] [stdout] test parser::vcard::tests::test_line_ranges_with_folded_lines ... ok [INFO] [stdout] test parser::vcard::tests::test_malformed_policy_skip ... ok [INFO] [stdout] test parser::vcard::tests::test_malformed_policy_warn ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_email_property ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_n_property ... ok [INFO] [stdout] test parser::vcard::tests::test_malformed_policy_error ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_vcard_str_malformed_property ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_vcard_str_multiple_cards ... ok [INFO] [stdout] test parser::vcard::tests::test_parser_config_default ... ok [INFO] [stdout] test parser::vcard::tests::test_malformed_policy_skip_property_count ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_vcard_str_no_end_card ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_n_property_multiple_names ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_folded_email ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_version ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_vcard_str_simple ... ok [INFO] [stdout] test parser::vcard::tests::test_parse_vcard_str_with_folded_lines ... ok [INFO] [stdout] test parser::vcard::tests::test_parser_config_equality ... ok [INFO] [stdout] test parser::vcard::tests::test_malformed_policy_debug ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_only_whitespace_continuation ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_crlf ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_empty_input ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_simple ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_mixed_folding ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_tab_continuation ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_with_ranges_crlf ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_multiple_continuation ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_with_ranges_simple ... ok [INFO] [stdout] test report::csv::tests::test_csv_headers ... ok [INFO] [stdout] test report::csv::tests::test_csv_empty_affected_items ... ok [INFO] [stdout] test report::csv::tests::test_csv_multiple_affected_items ... ok [INFO] [stdout] test parser::vcard::tests::test_unfold_lines_with_ranges_folded ... ok [INFO] [stdout] test report::csv::tests::test_csv_optional_fields ... ok [INFO] [stdout] test report::csv::tests::test_csv_round_trip_parsing ... ok [INFO] [stdout] test report::csv::tests::test_csv_special_characters ... ok [INFO] [stdout] test report::csv::tests::test_severity_strings ... ok [INFO] [stdout] test report::csv::tests::test_csv_single_issue ... ok [INFO] [stdout] test report::json::tests::test_json_round_trip ... ok [INFO] [stdout] test report::json::tests::test_render_json_empty_issues ... ok [INFO] [stdout] test report::json::tests::test_render_json_with_issues ... ok [INFO] [stdout] test report::json::tests::test_severity_to_string ... ok [INFO] [stdout] test report::json::tests::test_render_json_string ... ok [INFO] [stdout] test report::stats::tests::test_add_contacts ... ok [INFO] [stdout] test report::json::tests::test_write_jsonl ... ok [INFO] [stdout] test report::stats::tests::test_add_contacts_zero ... ok [INFO] [stdout] test report::stats::tests::test_add_file ... ok [INFO] [stdout] test report::stats::tests::test_finish_conversion ... ok [INFO] [stdout] test report::stats::tests::test_large_numbers ... ok [INFO] [stdout] test report::stats::tests::test_overflow_protection ... ok [INFO] [stdout] test report::stats::tests::test_run_stats_new_and_default ... ok [INFO] [stdout] test report::stats::tests::test_elapsed_time_monotonic ... ok [INFO] [stdout] test report::text::tests::test_affected_item_rendering ... ok [INFO] [stdout] test report::text::tests::test_group_issues_by_severity ... ok [INFO] [stdout] test report::text::tests::test_render_text_no_issues ... ok [INFO] [stdout] test report::text::tests::test_render_text_with_mixed_issues ... ok [INFO] [stdout] test report::text::tests::test_render_text_with_recommendations ... ok [INFO] [stdout] test scanner::tests::test_decode_bytes_utf16le ... ok [INFO] [stdout] test scanner::tests::test_decode_bytes_utf16be ... ok [INFO] [stdout] test scanner::tests::test_decode_bytes_utf8 ... ok [INFO] [stdout] test scanner::tests::test_decode_bytes_utf8_with_bom ... ok [INFO] [stdout] test scanner::tests::test_matches_file_extensions_case_insensitive ... ok [INFO] [stdout] test scanner::tests::test_discover_files_multiple_globs ... ok [INFO] [stdout] test scanner::tests::test_discover_files_non_recursive ... ok [INFO] [stdout] test scanner::tests::test_matches_file_extensions_empty ... ok [INFO] [stdout] test scanner::tests::test_matches_file_extensions_no_extension ... ok [INFO] [stdout] test scanner::tests::test_matches_file_extensions_no_match ... ok [INFO] [stdout] test scanner::tests::test_matches_file_extensions_multiple ... ok [INFO] [stdout] test scanner::tests::test_parse_file_to_contacts ... ok [INFO] [stdout] test scanner::tests::test_parse_file_to_contacts_nonexistent_file ... ok [INFO] [stdout] test scanner::tests::test_discover_files_recursive ... ok [INFO] [stdout] test scanner::tests::test_parse_file_to_contacts_with_utf8_bom ... ok [INFO] [stdout] test scanner::tests::test_scan_options_default ... ok [INFO] [stdout] test utils::progress::tests::test_finish_progress_with_none ... ok [INFO] [stdout] test utils::progress::tests::test_format_stats ... ok [INFO] [stdout] test utils::progress::tests::test_format_stats_zero ... ok [INFO] [stdout] test utils::progress::tests::test_progress_bar_creation ... ok [INFO] [stdout] test utils::progress::tests::test_progress_reporter_creation ... ok [INFO] [stdout] test utils::string::tests::test_collapse_whitespace ... ok [INFO] [stdout] test utils::string::tests::test_is_reasonable_email ... ok [INFO] [stdout] test utils::string::tests::test_normalize_domain ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_basic ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_empty_domain ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_empty_local ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_idna ... ok [INFO] [stdout] test detector::rules::mismatch::tests::test_multiple_patterns ... ok [INFO] [stdout] test utils::string::tests::test_strip_unicode_quotes ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_invalid_format ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_multiple_at_symbols ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_quoted ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_no_at_symbol ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_unicode_quotes ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_whitespace_collapse ... ok [INFO] [stdout] test utils::string::tests::test_normalize_email_zero_width_chars ... ok [INFO] [stdout] test utils::string::tests::test_remove_zero_width_chars ... ok [INFO] [stdout] test utils::string::tests::test_strip_surrounding_quotes ... ok [INFO] [stdout] test model::contact::tests::test_contact_id_empty_parts_panics - should panic ... ok [INFO] [stdout] test report::text_snapshots::snapshot_tests::test_render_text_mixed_issues_with_recommendations_snapshot ... ok [INFO] [stdout] test report::text_snapshots::snapshot_tests::test_render_text_no_issues_snapshot ... ok [INFO] [stdout] test report::text_snapshots::snapshot_tests::test_render_text_mixed_issues_snapshot ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 217 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ccdr-09a22f00e0119822) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-8d8a42b10f873d5a) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test test_validate_config_command_parsing ... ok [INFO] [stdout] test test_verbose_quiet_conflict ... ok [INFO] [stdout] test test_global_flags ... ok [INFO] [stdout] test test_repair_command_parsing ... ok [INFO] [stdout] test test_completions_command_parsing ... ok [INFO] [stdout] test test_verbose_levels ... ok [INFO] [stdout] test test_scan_command_parsing ... ok [INFO] [stdout] test test_help_output ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-64ddfcebfa8a516f) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test test_scan_command_with_fail_on_high_flag ... ok [INFO] [stdout] test test_scan_command_with_json_output ... ok [INFO] [stdout] test test_scan_command_json_lines_output ... ok [INFO] [stdout] test test_scan_command_csv_output ... ok [INFO] [stdout] test test_scan_command_no_issues_clean_file ... ok [INFO] [stdout] test test_scan_command_with_config_file ... ok [INFO] [stdout] test test_scan_command_recursive_discovery ... ok [INFO] [stderr] Running tests/logging.rs (/opt/rustwide/target/debug/deps/logging-94762ccd2977fcae) [INFO] [stdout] test test_parallel_scan_deterministic_output ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_tracing_subscriber_initialization ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/sanity.rs (/opt/rustwide/target/debug/deps/sanity-246e599c42d656dc) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test sanity_test ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stderr] Doc-tests ccdr [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" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117", kill_on_drop: false }` [INFO] [stdout] 0a0f9482ed1e9ded9bb107dca803aa3608882fba1e7267f980447ef51d8d5117