[INFO] cloning repository https://github.com/Keyhammer/Keyhammer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Keyhammer/Keyhammer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKeyhammer%2FKeyhammer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKeyhammer%2FKeyhammer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0121cf11f643867d3971339bf2ceca7c3a983fec [INFO] testing Keyhammer/Keyhammer against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKeyhammer%2FKeyhammer" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Keyhammer/Keyhammer [INFO] finished tweaking git repo https://github.com/Keyhammer/Keyhammer [INFO] tweaked toml for git repo https://github.com/Keyhammer/Keyhammer written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Keyhammer/Keyhammer on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Keyhammer/Keyhammer 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6ef06a004c6af4d17348fd23f8b764217d27f841b3d374d79c46dab1d32197a8 [INFO] running `Command { std: "docker" "start" "-a" "6ef06a004c6af4d17348fd23f8b764217d27f841b3d374d79c46dab1d32197a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6ef06a004c6af4d17348fd23f8b764217d27f841b3d374d79c46dab1d32197a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6ef06a004c6af4d17348fd23f8b764217d27f841b3d374d79c46dab1d32197a8", kill_on_drop: false }` [INFO] [stdout] 6ef06a004c6af4d17348fd23f8b764217d27f841b3d374d79c46dab1d32197a8 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e851f3bc6575826fe3b50c4fce14840a05339258d0f0c6adc5990d30a7600996 [INFO] running `Command { std: "docker" "start" "-a" "e851f3bc6575826fe3b50c4fce14840a05339258d0f0c6adc5990d30a7600996", kill_on_drop: false }` [INFO] [stderr] Compiling keyhammer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/index.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let n = terms.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strip_diacritics` is never used [INFO] [stdout] --> src/normalize.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn strip_diacritics(input: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalize_char` is never used [INFO] [stdout] --> src/normalize.rs:20:4 [INFO] [stdout] | [INFO] [stdout] 20 | fn normalize_char(c: char) -> char { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `QueryOp` is never used [INFO] [stdout] --> src/query.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum QueryOp { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse` is never used [INFO] [stdout] --> src/query.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn parse(input: &str) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_token` is never used [INFO] [stdout] --> src/query.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn parse_token(token: &str) -> QueryOp { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `matches_op` is never used [INFO] [stdout] --> src/query.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn matches_op(term: &str, op: &QueryOp) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogicalExpr` is never used [INFO] [stdout] --> src/query.rs:64:10 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum LogicalExpr { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `matches` is never used [INFO] [stdout] --> src/query.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 70 | impl LogicalExpr { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 71 | /// Evaluate the expression against a term. [INFO] [stdout] 72 | pub fn matches(&self, term: &str) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_logical` is never used [INFO] [stdout] --> src/query.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn parse_logical(input: &str) -> LogicalExpr { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.71s [INFO] running `Command { std: "docker" "inspect" "e851f3bc6575826fe3b50c4fce14840a05339258d0f0c6adc5990d30a7600996", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e851f3bc6575826fe3b50c4fce14840a05339258d0f0c6adc5990d30a7600996", kill_on_drop: false }` [INFO] [stdout] e851f3bc6575826fe3b50c4fce14840a05339258d0f0c6adc5990d30a7600996 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a0dc282a685ddd4bce352e13f1f5bdfb4b845a8ccfa4d37a139fbc53eb4242f9 [INFO] running `Command { std: "docker" "start" "-a" "a0dc282a685ddd4bce352e13f1f5bdfb4b845a8ccfa4d37a139fbc53eb4242f9", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/index.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let n = terms.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strip_diacritics` is never used [INFO] [stdout] --> src/normalize.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn strip_diacritics(input: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalize_char` is never used [INFO] [stdout] --> src/normalize.rs:20:4 [INFO] [stdout] | [INFO] [stdout] 20 | fn normalize_char(c: char) -> char { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `QueryOp` is never used [INFO] [stdout] --> src/query.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum QueryOp { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse` is never used [INFO] [stdout] --> src/query.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn parse(input: &str) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_token` is never used [INFO] [stdout] --> src/query.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn parse_token(token: &str) -> QueryOp { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `matches_op` is never used [INFO] [stdout] --> src/query.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn matches_op(term: &str, op: &QueryOp) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogicalExpr` is never used [INFO] [stdout] --> src/query.rs:64:10 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum LogicalExpr { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `matches` is never used [INFO] [stdout] --> src/query.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 70 | impl LogicalExpr { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 71 | /// Evaluate the expression against a term. [INFO] [stdout] 72 | pub fn matches(&self, term: &str) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_logical` is never used [INFO] [stdout] --> src/query.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn parse_logical(input: &str) -> LogicalExpr { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling keyhammer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/index.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let n = terms.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 47.59s [INFO] running `Command { std: "docker" "inspect" "a0dc282a685ddd4bce352e13f1f5bdfb4b845a8ccfa4d37a139fbc53eb4242f9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a0dc282a685ddd4bce352e13f1f5bdfb4b845a8ccfa4d37a139fbc53eb4242f9", kill_on_drop: false }` [INFO] [stdout] a0dc282a685ddd4bce352e13f1f5bdfb4b845a8ccfa4d37a139fbc53eb4242f9 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9cb31465bb23f88a54a48f4c929e2c5c58c93004871a7144ce4573ad2094834e [INFO] running `Command { std: "docker" "start" "-a" "9cb31465bb23f88a54a48f4c929e2c5c58c93004871a7144ce4573ad2094834e", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/index.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | let n = terms.len(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `strip_diacritics` is never used [INFO] [stderr] --> src/normalize.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn strip_diacritics(input: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `normalize_char` is never used [INFO] [stderr] --> src/normalize.rs:20:4 [INFO] [stderr] | [INFO] [stderr] 20 | fn normalize_char(c: char) -> char { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `QueryOp` is never used [INFO] [stderr] --> src/query.rs:13:10 [INFO] [stderr] | [INFO] [stderr] 13 | pub enum QueryOp { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse` is never used [INFO] [stderr] --> src/query.rs:24:8 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn parse(input: &str) -> Vec { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_token` is never used [INFO] [stderr] --> src/query.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | fn parse_token(token: &str) -> QueryOp { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `matches_op` is never used [INFO] [stderr] --> src/query.rs:49:8 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn matches_op(term: &str, op: &QueryOp) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `LogicalExpr` is never used [INFO] [stderr] --> src/query.rs:64:10 [INFO] [stderr] | [INFO] [stderr] 64 | pub enum LogicalExpr { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `matches` is never used [INFO] [stderr] --> src/query.rs:72:12 [INFO] [stderr] | [INFO] [stderr] 70 | impl LogicalExpr { [INFO] [stderr] | ---------------- method in this implementation [INFO] [stderr] 71 | /// Evaluate the expression against a term. [INFO] [stderr] 72 | pub fn matches(&self, term: &str) -> bool { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_logical` is never used [INFO] [stderr] --> src/query.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn parse_logical(input: &str) -> LogicalExpr { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `keyhammer` (lib) generated 10 warnings (run `cargo fix --lib -p keyhammer` to apply 1 suggestion) [INFO] [stderr] warning: `keyhammer` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/keyhammer-2bc203020a5894b9) [INFO] [stdout] [INFO] [stdout] running 79 tests [INFO] [stdout] test altered::tests::cached_stays_in_sync ... ok [INFO] [stdout] test columnar::tests::exact_match ... ok [INFO] [stdout] test altered::tests::hamming_one_diff ... ok [INFO] [stdout] test altered::tests::pivot_alter_reduces_distance ... ok [INFO] [stdout] test altered::tests::hamming_identical ... ok [INFO] [stdout] test altered::tests::lcp_basic ... ok [INFO] [stdout] test columnar::tests::one_mismatch ... ok [INFO] [stdout] test columnar::tests::respects_max_distance ... ok [INFO] [stdout] test columnar::tests::empty_query ... ok [INFO] [stdout] test document::tests::category_search ... ok [INFO] [stdout] test document::tests::basic_doc_search ... ok [INFO] [stdout] test document::tests::field_matches_reported ... ok [INFO] [stdout] test encoding::tests::digits_grouped ... ok [INFO] [stdout] test document::tests::threshold_filters ... ok [INFO] [stdout] test encoding::tests::identical_zero ... ok [INFO] [stdout] test encoding::tests::length_penalized ... ok [INFO] [stdout] test document::tests::typo_in_field ... ok [INFO] [stdout] test document::tests::weighted_fields ... ok [INFO] [stdout] test encoding::tests::case_insensitive ... ok [INFO] [stdout] test encoding::tests::neighbors_closer ... ok [INFO] [stdout] test encoding::tests::vowel_swap_closer_than_unlikely ... ok [INFO] [stdout] test encoding::tests::vowels_close ... ok [INFO] [stdout] test encoding::tests::normalized_range ... ok [INFO] [stdout] test fingerprint::tests::deletion ... ok [INFO] [stdout] test fingerprint::tests::insertion ... ok [INFO] [stdout] test fingerprint::tests::numbers ... ok [INFO] [stdout] test fingerprint::tests::substitution_not_deletion ... ok [INFO] [stdout] test fingerprint::tests::spaces ... ok [INFO] [stdout] test fingerprint::tests::symbols ... ok [INFO] [stdout] test fingerprint::tests::transposition_same_fp ... ok [INFO] [stdout] test fingerprint::tests::anagram ... ok [INFO] [stdout] test fingerprint::tests::close_filter ... ok [INFO] [stdout] test fingerprint::tests::identical ... ok [INFO] [stdout] test index::tests::exact_match_highest_score ... ok [INFO] [stdout] test index::tests::finds_insertion_typo ... ok [INFO] [stdout] test index::tests::basic_search ... ok [INFO] [stdout] test index::tests::finds_transposition_typo ... ok [INFO] [stdout] test index::tests::empty_input_errors ... ok [INFO] [stdout] test index::tests::small_dataset_uses_brute ... ok [INFO] [stdout] test index::tests::transposition_ranks_higher ... ok [INFO] [stdout] test inverter::tests::simple_inversion ... ok [INFO] [stdout] test normalize::tests::basic_accents ... ok [INFO] [stdout] test normalize::tests::german ... ok [INFO] [stdout] test normalize::tests::mixed ... ok [INFO] [stdout] test normalize::tests::no_accents_unchanged ... ok [INFO] [stdout] test normalize::tests::spanish ... ok [INFO] [stdout] test query::tests::logical_and ... ok [INFO] [stdout] test query::tests::logical_or ... ok [INFO] [stdout] test query::tests::logical_or_with_and ... ok [INFO] [stdout] test query::tests::matches_exact ... ok [INFO] [stdout] test query::tests::matches_not ... ok [INFO] [stdout] test query::tests::matches_prefix ... ok [INFO] [stdout] test query::tests::matches_suffix ... ok [INFO] [stdout] test query::tests::parse_exact ... ok [INFO] [stdout] test query::tests::parse_fuzzy ... ok [INFO] [stdout] test query::tests::parse_multi ... ok [INFO] [stdout] test query::tests::parse_not ... ok [INFO] [stdout] test query::tests::parse_not_prefix ... ok [INFO] [stdout] test index::tests::finds_deletion_typo ... ok [INFO] [stdout] test query::tests::parse_not_suffix ... ok [INFO] [stdout] test columnar::tests::different_lengths ... ok [INFO] [stdout] test scorer::tests::identical ... ok [INFO] [stdout] test query::tests::parse_prefix ... ok [INFO] [stdout] test query::tests::parse_suffix ... ok [INFO] [stdout] test scorer::tests::adjacent_beats_distant ... ok [INFO] [stdout] test scorer::tests::early_error_penalized ... ok [INFO] [stdout] test scorer::tests::symmetric ... ok [INFO] [stdout] test scorer::tests::transposition_beats_random ... ok [INFO] [stdout] test tree::tests::pruning_reduces_results ... ok [INFO] [stdout] test variants::tests::deletion ... ok [INFO] [stdout] test tree::tests::no_match_beyond_radius ... ok [INFO] [stdout] test variants::tests::deletion_empty ... ok [INFO] [stdout] test tree::tests::one_mismatch ... ok [INFO] [stdout] test tree::tests::exact_match ... ok [INFO] [stdout] test variants::tests::transposition ... ok [INFO] [stdout] test variants::tests::transposition_skips_repeated ... ok [INFO] [stdout] test tree::tests::lazy_construction_works ... ok [INFO] [stdout] test variants::tests::transposition_single ... ok [INFO] [stdout] test index::tests::large_dataset_builds_tree ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 79 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s [INFO] [stdout] [INFO] [stderr] Running tests/correctness.rs (/opt/rustwide/target/debug/deps/correctness-b2a094fad10be010) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test finds_exact_match ... ok [INFO] [stdout] test finds_fuzzy_match ... ok [INFO] [stdout] test matches_brute_force ... ok [INFO] [stdout] test score_ordering_makes_sense ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/stress.rs (/opt/rustwide/target/debug/deps/stress-bb2cac1f99fb16b0) [INFO] [stdout] [INFO] [stdout] running 26 tests [INFO] [stdout] test all_terms_same_length_max_diversity ... ok [INFO] [stdout] test all_anagrams_same_fingerprint ... ok [INFO] [stdout] test empty_query_string ... ok [INFO] [stdout] test all_identical_terms ... ok [INFO] [stdout] test brute_vs_tree_5k ... ok [INFO] [stdout] test adversarial_repeated_char ... ok [INFO] [stdout] test k_larger_than_term_length ... ok [INFO] [stdout] test k_too_large_errors ... ok [INFO] [stdout] test every_term_is_prefix_of_next ... ok [INFO] [stdout] test mixed_lengths_extreme ... ok [INFO] [stdout] test numbers_and_symbols ... ok [INFO] [stdout] test query_longer_than_all_terms ... ok [INFO] [stdout] test query_shares_zero_chars_with_terms ... ok [INFO] [stdout] test score_ordering_is_consistent ... ok [INFO] [stdout] test single_term ... ok [INFO] [stdout] test single_char_terms ... ok [INFO] [stdout] test two_char_terms_deletion ... ok [INFO] [stdout] test unicode_in_terms ... ok [INFO] [stdout] test worst_case_all_similar ... ok [INFO] [stdout] test repeated_build_drop ... ok [INFO] [stdout] test very_long_term ... ok [INFO] [stdout] test scale_5k_terms ... ok [INFO] [stdout] test scale_10k_terms ... ok [INFO] [stdout] test very_long_query ... ok [INFO] [stdout] test scale_20k_terms ... ok [INFO] [stdout] test many_queries_same_index ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 30.83s [INFO] [stdout] [INFO] [stderr] Doc-tests keyhammer [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test src/encoding.rs - encoding::KeyboardLayout (line 10) ... ok [INFO] [stdout] test src/document.rs - document::Error (line 7) ... ok [INFO] [stdout] test src/lib.rs - (line 8) ... ok [INFO] [stdout] test src/document.rs - document::Result (line 7) ... ok [INFO] [stdout] test src/document.rs - document (line 7) ... ok [INFO] [stdout] test src/scorer.rs - scorer::KeyboardLayout (line 15) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.60s; merged doctests compilation took 0.58s [INFO] running `Command { std: "docker" "inspect" "9cb31465bb23f88a54a48f4c929e2c5c58c93004871a7144ce4573ad2094834e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9cb31465bb23f88a54a48f4c929e2c5c58c93004871a7144ce4573ad2094834e", kill_on_drop: false }` [INFO] [stdout] 9cb31465bb23f88a54a48f4c929e2c5c58c93004871a7144ce4573ad2094834e