[INFO] cloning repository https://github.com/rmax-ai/shardlake [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rmax-ai/shardlake" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frmax-ai%2Fshardlake", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frmax-ai%2Fshardlake'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 78f588ba5510b4d0af73f462c68892f10605a216 [INFO] testing rmax-ai/shardlake against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frmax-ai%2Fshardlake" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/rmax-ai/shardlake [INFO] finished tweaking git repo https://github.com/rmax-ai/shardlake [INFO] tweaked toml for git repo https://github.com/rmax-ai/shardlake written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/rmax-ai/shardlake on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/rmax-ai/shardlake 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded prometheus v0.13.4 [INFO] [stderr] Downloaded uuid v1.22.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 98e93ad66ae1df813be7be0a4efd8bafe1dd655c9f31593d47f3390b9d45a1e4 [INFO] running `Command { std: "docker" "start" "-a" "98e93ad66ae1df813be7be0a4efd8bafe1dd655c9f31593d47f3390b9d45a1e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "98e93ad66ae1df813be7be0a4efd8bafe1dd655c9f31593d47f3390b9d45a1e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "98e93ad66ae1df813be7be0a4efd8bafe1dd655c9f31593d47f3390b9d45a1e4", kill_on_drop: false }` [INFO] [stdout] 98e93ad66ae1df813be7be0a4efd8bafe1dd655c9f31593d47f3390b9d45a1e4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7352c2658429b23b351bb26f98d2f6fa09ca7f83707f33f8f3ea22a5081d62f2 [INFO] running `Command { std: "docker" "start" "-a" "7352c2658429b23b351bb26f98d2f6fa09ca7f83707f33f8f3ea22a5081d62f2", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling prometheus v0.13.4 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling memmap2 v0.9.10 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling shardlake-core v0.1.0 (/opt/rustwide/workdir/crates/shardlake-core) [INFO] [stderr] Compiling shardlake-storage v0.1.0 (/opt/rustwide/workdir/crates/shardlake-storage) [INFO] [stderr] Compiling shardlake-manifest v0.1.0 (/opt/rustwide/workdir/crates/shardlake-manifest) [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling shardlake-index v0.1.0 (/opt/rustwide/workdir/crates/shardlake-index) [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling shardlake-bench v0.1.0 (/opt/rustwide/workdir/crates/shardlake-bench) [INFO] [stderr] Compiling shardlake-serve v0.1.0 (/opt/rustwide/workdir/crates/shardlake-serve) [INFO] [stderr] Compiling shardlake-cli v0.1.0 (/opt/rustwide/workdir/crates/shardlake-cli) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 00s [INFO] running `Command { std: "docker" "inspect" "7352c2658429b23b351bb26f98d2f6fa09ca7f83707f33f8f3ea22a5081d62f2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7352c2658429b23b351bb26f98d2f6fa09ca7f83707f33f8f3ea22a5081d62f2", kill_on_drop: false }` [INFO] [stdout] 7352c2658429b23b351bb26f98d2f6fa09ca7f83707f33f8f3ea22a5081d62f2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6b67535adc0553223572e9cf229f9044f6d151783e6af0c675947b6e0361fb4b [INFO] running `Command { std: "docker" "start" "-a" "6b67535adc0553223572e9cf229f9044f6d151783e6af0c675947b6e0361fb4b", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling shardlake-core v0.1.0 (/opt/rustwide/workdir/crates/shardlake-core) [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling shardlake-index v0.1.0 (/opt/rustwide/workdir/crates/shardlake-index) [INFO] [stderr] Compiling shardlake-storage v0.1.0 (/opt/rustwide/workdir/crates/shardlake-storage) [INFO] [stderr] Compiling shardlake-manifest v0.1.0 (/opt/rustwide/workdir/crates/shardlake-manifest) [INFO] [stderr] Compiling shardlake-cli v0.1.0 (/opt/rustwide/workdir/crates/shardlake-cli) [INFO] [stderr] Compiling shardlake-serve v0.1.0 (/opt/rustwide/workdir/crates/shardlake-serve) [INFO] [stderr] Compiling shardlake-bench v0.1.0 (/opt/rustwide/workdir/crates/shardlake-bench) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 20.50s [INFO] running `Command { std: "docker" "inspect" "6b67535adc0553223572e9cf229f9044f6d151783e6af0c675947b6e0361fb4b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6b67535adc0553223572e9cf229f9044f6d151783e6af0c675947b6e0361fb4b", kill_on_drop: false }` [INFO] [stdout] 6b67535adc0553223572e9cf229f9044f6d151783e6af0c675947b6e0361fb4b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 4cd564cd422279eb3cf6a5d788221d8e76dc9b4c2c283b0ff0b6ef15873fc749 [INFO] running `Command { std: "docker" "start" "-a" "4cd564cd422279eb3cf6a5d788221d8e76dc9b4c2c283b0ff0b6ef15873fc749", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_bench-ea1d9d3e250e6b3f) [INFO] [stdout] [INFO] [stdout] running 50 tests [INFO] [stdout] test generate::tests::generates_correct_shape ... ok [INFO] [stdout] test generate::tests::different_seeds_produce_different_data ... ok [INFO] [stdout] test tests::ann_family_report_flattens_eval_fields_in_json ... ok [INFO] [stdout] test tests::compare_ann_report_serialises_all_entries ... ok [INFO] [stdout] test tests::compare_ann_report_empty_entries_round_trips ... ok [INFO] [stdout] test generate::tests::metadata_is_none ... ok [INFO] [stdout] test generate::tests::reproducible_with_same_seed ... ok [INFO] [stdout] test tests::cost_metrics_saturate_on_overflow ... ok [INFO] [stdout] test tests::cost_metrics_pq_index_has_compression_ratio_gt_one ... ok [INFO] [stdout] test tests::evaluate_partitioning_propagates_search_errors ... ok [INFO] [stdout] test tests::cost_metrics_disk_footprint_matches_sum_of_artifacts ... ok [INFO] [stdout] test tests::run_benchmark_empty_queries_return_zero_metrics ... ok [INFO] [stdout] test tests::evaluate_partitioning_keeps_recall_for_legacy_manifests ... ok [INFO] [stdout] test tests::cost_metrics_uncompressed_index_has_ratio_one ... ok [INFO] [stdout] test tests::run_benchmark_reports_correct_field_counts ... ok [INFO] [stdout] test tests::cost_metrics_use_local_paths_without_reading_artifacts ... ok [INFO] [stdout] test tests::run_benchmark_recall_is_perfect_with_full_probe ... ok [INFO] [stdout] test generate::tests::ids_are_sequential_from_one ... ok [INFO] [stdout] test tests::cost_metrics_zero_vector_index_has_zero_memory ... ok [INFO] [stdout] test tests::cost_metrics_disk_footprint_ignores_other_indexes_in_storage ... ok [INFO] [stdout] test generate::tests::vectors_are_close_to_centroids ... ok [INFO] [stdout] test tests::evaluate_partitioning_std_dev_zero_for_equal_shards ... ok [INFO] [stdout] test tests::run_benchmark_throughput_is_positive ... ok [INFO] [stdout] test tests::evaluate_partitioning_reports_shard_size_distribution ... ok [INFO] [stdout] test tests::run_eval_hybrid_returns_error_for_empty_queries ... ok [INFO] [stdout] test tests::run_eval_hybrid_reports_correct_field_counts ... ok [INFO] [stdout] test tests::evaluate_partitioning_reports_routing_and_recall_with_queries ... ok [INFO] [stdout] test tests::run_eval_hybrid_returns_error_for_mismatched_query_text_count ... ok [INFO] [stdout] test tests::run_eval_ann_with_ground_truth_matches_direct_eval ... ok [INFO] [stdout] test tests::run_eval_ann_with_ground_truth_rejects_mismatched_lengths ... ok [INFO] [stdout] test tests::run_eval_hybrid_vector_recall_perfect_with_full_probe ... ok [INFO] [stdout] test tests::run_workload_benchmark_cold_mode_starts_with_a_fresh_cache_per_query ... ok [INFO] [stdout] test tests::run_workload_benchmark_cold_mode_counts_intra_query_hits_for_legacy_manifests ... ok [INFO] [stdout] test tests::test_nearest_rank_percentile_uses_explicit_rank ... ok [INFO] [stdout] test tests::run_workload_benchmark_report_field_workload_matches_requested_mode ... ok [INFO] [stdout] test tests::run_workload_benchmark_empty_queries_returns_zero_metrics_for_all_modes ... ok [INFO] [stdout] test tests::run_workload_benchmark_mixed_mode_runs_without_errors ... ok [INFO] [stdout] test tests::test_precision_partial ... ok [INFO] [stdout] test tests::test_recall_zero ... ok [INFO] [stdout] test tests::workload_mode_serialises_to_snake_case ... ok [INFO] [stdout] test tests::workload_mode_display_labels_are_correct ... ok [INFO] [stdout] test tests::test_precision_perfect ... ok [INFO] [stdout] test tests::test_recall_perfect ... ok [INFO] [stdout] test tests::run_workload_benchmark_warm_mode_yields_high_cache_hit_rate ... ok [INFO] [stdout] test tests::test_nearest_rank_percentile_handles_single_value ... ok [INFO] [stdout] test generate::tests::rejects_zero_num_clusters - should panic ... ok [INFO] [stdout] test generate::tests::rejects_negative_cluster_spread - should panic ... ok [INFO] [stdout] test generate::tests::rejects_zero_dims - should panic ... ok [INFO] [stdout] test generate::tests::rejects_non_finite_cluster_spread - should panic ... ok [INFO] [stdout] test generate::tests::rejects_zero_num_vectors - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 50 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shardlake-04820fb5cb8fa9a0) [INFO] [stdout] [INFO] [stdout] running 48 tests [INFO] [stdout] test commands::build_index::tests::run_rejects_num_workers_without_parallel_before_loading_dataset ... ok [INFO] [stdout] test commands::build_index::tests::validate_num_shards_rejects_zero ... ok [INFO] [stdout] test commands::build_index::tests::run_rejects_zero_kmeans_sample_size_before_loading_dataset ... ok [INFO] [stdout] test commands::build_index_worker::tests::execute_mode_rejects_missing_plan ... ok [INFO] [stdout] test commands::build_index_worker::tests::merge_mode_rejects_missing_plan ... ok [INFO] [stdout] test commands::build_index_worker::tests::execute_mode_rejects_out_of_range_worker_id ... ok [INFO] [stdout] test commands::build_index_worker::tests::merge_mode_rejects_missing_index_version_arg ... ok [INFO] [stdout] test commands::build_index_worker::tests::merge_mode_preserves_plan_build_metadata ... ok [INFO] [stdout] test commands::build_index::tests::run_rejects_zero_num_shards_before_loading_dataset ... ok [INFO] [stdout] test commands::compare_ann::tests::canonical_ann_family_distinguishes_ivf_flat_and_pq ... ok [INFO] [stdout] test commands::build_index::tests::validate_kmeans_sample_size_rejects_zero ... ok [INFO] [stdout] test commands::build_index_worker::tests::plan_mode_rejects_missing_dataset ... ok [INFO] [stdout] test commands::build_index::tests::run_preserves_manifest_parse_errors ... ok [INFO] [stdout] test commands::build_index_worker::tests::merge_mode_writes_manifest ... ok [INFO] [stdout] test commands::compare_ann::tests::mismatched_dataset_is_rejected ... ok [INFO] [stdout] test commands::evaluate_partitioning::tests::run_errors_on_missing_index ... ok [INFO] [stdout] test commands::evaluate_partitioning::tests::run_validates_k_zero ... ok [INFO] [stdout] test commands::evaluate_partitioning::tests::run_validates_nprobe_zero ... ok [INFO] [stdout] test commands::generate::tests::validate_generate_args_rejects_negative_cluster_spread ... ok [INFO] [stdout] test commands::compare_ann::tests::canonical_ann_family_normalizes_hyphenated_names ... ok [INFO] [stdout] test commands::generate::tests::run_writes_expected_artifacts ... ok [INFO] [stdout] test commands::build_index::tests::run_defaults_embedding_version_from_dataset_manifest ... ok [INFO] [stdout] test commands::ingest::tests::dataset_manifest_dims_rejects_overflow ... ok [INFO] [stdout] test commands::evaluate_partitioning::tests::run_succeeds_against_built_index_by_version ... ok [INFO] [stdout] test commands::ingest::tests::parse_records_rejects_empty_vector ... ok [INFO] [stdout] test commands::ingest::tests::run_rejects_dimension_mismatch ... ok [INFO] [stdout] test commands::generate::tests::validate_generate_args_rejects_zero_num_vectors ... ok [INFO] [stdout] test commands::serve::tests::serve_args_accept_enable_debug_routes_flag ... ok [INFO] [stdout] test commands::ingest::tests::run_rejects_empty_vector ... ok [INFO] [stdout] test commands::generate::tests::run_writes_reproducible_vectors_jsonl ... ok [INFO] [stdout] test commands::serve::tests::load_bm25_index_returns_index_when_manifest_includes_lexical_artifact ... ok [INFO] [stdout] test commands::serve::tests::serve_args_debug_routes_disabled_by_default ... ok [INFO] [stdout] test commands::validate_manifest::tests::validates_index_manifest_missing_returns_error ... ok [INFO] [stdout] test commands::validate_manifest::tests::validates_dataset_manifest_missing_artifacts ... ok [INFO] [stdout] test commands::serve::tests::serve_args_reject_zero_shard_cache_capacity ... ok [INFO] [stdout] test commands::validate_manifest::tests::continues_after_index_load_error_when_dataset_requested_too ... ok [INFO] [stdout] test commands::validate_manifest::tests::validates_both_manifests_together ... ok [INFO] [stdout] test commands::validate_manifest::tests::validates_dataset_manifest_success ... ok [INFO] [stdout] test commands::build_index::tests::parallel_build_with_single_worker_matches_sequential ... ok [INFO] [stdout] test commands::build_index::tests::parallel_build_produces_valid_manifest ... ok [INFO] [stdout] test commands::build_index_worker::tests::execute_mode_builds_shards ... ok [INFO] [stdout] test commands::validate_manifest::tests::validates_invalid_dataset_manifest_as_failure_report ... ok [INFO] [stdout] test commands::evaluate_partitioning::tests::run_succeeds_via_alias ... ok [INFO] [stdout] test commands::compare_ann::tests::comparable_aliases_pass_validation ... ok [INFO] [stdout] test commands::compare_ann::tests::mismatched_metric_is_rejected ... ok [INFO] [stdout] test commands::ingest::tests::parse_records_rejects_dimension_mismatch ... ok [INFO] [stdout] test commands::build_index_worker::tests::plan_mode_writes_worker_plan_to_storage ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_core-9c2a063b23e7ed40) [INFO] [stdout] test commands::validate_manifest::tests::run_errors_when_no_versions_provided ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test config::tests::query_config_rejects_zero_rerank_limit ... ok [INFO] [stdout] test config::tests::query_config_rejects_zero_top_k ... ok [INFO] [stdout] test config::tests::query_config_valid_with_all_fields ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_index-85a29acf37f87409) [INFO] [stdout] test config::tests::system_config_rejects_zero_shard_cache_capacity ... ok [INFO] [stdout] test config::tests::prefetch_policy_rejects_zero_threshold_when_enabled ... ok [INFO] [stdout] test config::tests::query_config_rejects_invalid_fan_out ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 203 tests [INFO] [stdout] test bm25::tests::bm25_params_default_values ... ok [INFO] [stdout] test bm25::tests::build_coalesces_duplicate_vector_ids_into_one_document ... ok [INFO] [stdout] test bm25::tests::doc_with_more_matching_terms_scores_higher ... ok [INFO] [stdout] test bm25::tests::empty_index_round_trip ... ok [INFO] [stdout] test bm25::tests::from_bytes_rejects_bad_magic ... ok [INFO] [stdout] test bm25::tests::custom_params_affect_scores ... ok [INFO] [stdout] test bm25::tests::search_returns_empty_for_unknown_term ... ok [INFO] [stdout] test bm25::tests::search_scores_are_negative ... ok [INFO] [stdout] test bm25::tests::search_is_case_insensitive ... ok [INFO] [stdout] test bm25::tests::build_records_correct_doc_count_and_term_count ... ok [INFO] [stdout] test bm25::tests::tokenize_only_punctuation ... ok [INFO] [stdout] test bm25::tests::tokenize_splits_on_non_alphanumeric ... ok [INFO] [stdout] test bm25::tests::tokenize_lowercases ... ok [INFO] [stdout] test bm25::tests::from_bytes_rejects_bad_version ... ok [INFO] [stdout] test bm25::tests::search_returns_at_most_k_results ... ok [INFO] [stdout] test bm25::tests::search_scores_are_sorted_ascending_lower_is_more_relevant ... ok [INFO] [stdout] test bm25::tests::search_with_k_zero_returns_empty ... ok [INFO] [stdout] test bm25::tests::term_present_in_all_docs_has_low_idf ... ok [INFO] [stdout] test bm25::tests::to_bytes_is_deterministic_across_rebuilds ... ok [INFO] [stdout] test bm25::tests::to_bytes_from_bytes_round_trip ... ok [INFO] [stdout] test builder::tests::build_rejects_zero_num_shards ... ok [INFO] [stdout] test builder::tests::build_rejects_pq_for_non_euclidean_metric ... ok [INFO] [stdout] test builder::tests::build_rejects_record_dimension_mismatch ... ok [INFO] [stdout] test builder::tests::build_rejects_zero_kmeans_sample_size ... ok [INFO] [stdout] test bm25::tests::tokenize_empty_string ... ok [INFO] [stdout] test cache::tests::lru_cache_capacity_one ... ok [INFO] [stdout] test cache::tests::shard_cache_hit_returns_cached_value_without_reload ... ok [INFO] [stdout] test cache::tests::lru_cache_insert_and_get ... ok [INFO] [stdout] test cache::tests::shard_cache_evicts_lru_entry ... ok [INFO] [stdout] test cache::tests::lru_cache_update_promotes_existing_to_mru ... ok [INFO] [stdout] test cache::tests::shard_cache_miss_invokes_load ... ok [INFO] [stdout] test cache::tests::shard_cache_load_error_is_forwarded ... ok [INFO] [stdout] test exact::tests::test_distance_cosine_identical_direction ... ok [INFO] [stdout] test exact::tests::test_distance_cosine_opposite_direction ... ok [INFO] [stdout] test exact::tests::test_distance_cosine_orthogonal ... ok [INFO] [stdout] test exact::tests::test_distance_cosine_zero_vector_returns_one ... ok [INFO] [stdout] test exact::tests::test_distance_euclidean ... ok [INFO] [stdout] test exact::tests::test_distance_inner_product_negated_dot ... ok [INFO] [stdout] test exact::tests::test_exact_search_cosine ... ok [INFO] [stdout] test exact::tests::test_exact_search_cosine_vs_euclidean_differ ... ok [INFO] [stdout] test builder::tests::build_without_recall_sample_size_omits_recall_estimate ... ok [INFO] [stdout] test builder::tests::build_with_sample_size_assigns_all_vectors ... ok [INFO] [stdout] test builder::tests::recall_estimate_works_with_pq_compression ... ok [INFO] [stdout] test exact::tests::test_exact_search_euclidean ... ok [INFO] [stdout] test builder::tests::build_with_recall_sample_size_populates_recall_estimate ... ok [INFO] [stdout] test exact::tests::test_merge_top_k_deduplicates_ids_by_best_score ... ok [INFO] [stdout] test exact::tests::test_precision_at_k_empty_retrieved ... ok [INFO] [stdout] test exact::tests::test_precision_at_k_perfect ... ok [INFO] [stdout] test exact::tests::test_precision_at_k_partial ... ok [INFO] [stdout] test exact::tests::test_recall_at_k ... ok [INFO] [stdout] test ivf::tests::from_bytes_rejects_payload_length_mismatch ... ok [INFO] [stdout] test ivf::tests::from_bytes_rejects_wrong_magic ... ok [INFO] [stdout] test ivf::tests::assign_routes_to_correct_cluster ... ok [INFO] [stdout] test builder::tests::build_with_sample_size_is_deterministic ... ok [INFO] [stdout] test builder::tests::build_omits_sample_size_when_sampling_is_not_needed ... ok [INFO] [stdout] test exact::tests::test_exact_search_inner_product ... ok [INFO] [stdout] test kmeans::tests::test_kmeans_basic ... ok [INFO] [stdout] test ivf::tests::top_probes_clamped_by_num_clusters ... ok [INFO] [stdout] test ivf::tests::from_bytes_rejects_zero_clusters ... ok [INFO] [stdout] test ivf::tests::from_bytes_rejects_zero_dims ... ok [INFO] [stdout] test ivf::tests::train_clamps_clusters_to_vector_count ... ok [INFO] [stdout] test ivf::tests::roundtrip_serialisation ... ok [INFO] [stdout] test ivf::tests::top_probes_returns_nprobe_clusters_sorted_by_distance ... ok [INFO] [stdout] test kmeans::tests::test_kmeans_is_deterministic ... ok [INFO] [stdout] test kmeans::tests::test_nearest_centroid ... ok [INFO] [stdout] test kmeans::tests::test_kmeans_on_sample_finds_correct_clusters ... ok [INFO] [stdout] test ivf::tests::train_produces_correct_num_clusters ... ok [INFO] [stdout] test builder::tests::recall_estimate_is_deterministic ... ok [INFO] [stdout] test metrics::tests::test_hit_rate_mixed ... ok [INFO] [stdout] test metrics::tests::test_initial_snapshot_is_zeroed ... ok [INFO] [stdout] test metrics::tests::test_hit_rate_no_requests ... ok [INFO] [stdout] test metrics::tests::test_hit_rate_all_hits ... ok [INFO] [stdout] test metrics::tests::test_record_load_attempt_and_retained_bytes_accumulate ... ok [INFO] [stdout] test metrics::tests::test_hit_rate_all_misses ... ok [INFO] [stdout] test metrics::tests::test_mean_load_latency_single_load ... ok [INFO] [stdout] test metrics::tests::test_default_creates_zeroed_metrics ... ok [INFO] [stdout] test metrics::tests::test_mean_load_latency_no_loads ... ok [INFO] [stdout] test pipeline::tests::centroid_router_preserves_probe_order_when_deduplicating ... ok [INFO] [stdout] test pipeline::tests::exact_candidate_search_returns_nearest ... ok [INFO] [stdout] test pipeline::tests::centroid_router_deduplicates_shards ... ok [INFO] [stdout] test pipeline::tests::identity_embedder_returns_query_unchanged ... ok [INFO] [stdout] test plugin::tests::ann_family_unknown_name_returns_error ... ok [INFO] [stdout] test pipeline::tests::noop_reranker_returns_results_unchanged ... ok [INFO] [stdout] test plugin::tests::diskann_plugin_beam_width_accessor ... ok [INFO] [stdout] test plugin::tests::diskann_plugin_candidate_stage_is_sendable ... ok [INFO] [stdout] test plugin::tests::diskann_plugin_family_name ... ok [INFO] [stdout] test plugin::tests::diskann_plugin_validate_accepts_euclidean ... ok [INFO] [stdout] test plugin::tests::diskann_plugin_validate_rejects_cosine ... ok [INFO] [stdout] test plugin::tests::diskann_plugin_validate_rejects_inner_product ... ok [INFO] [stdout] test plugin::tests::hnsw_config_default_values_are_valid ... ok [INFO] [stdout] test plugin::tests::hnsw_plugin_family_name ... ok [INFO] [stdout] test plugin::tests::hnsw_plugin_validate_accepts_all_metrics ... ok [INFO] [stdout] test plugin::tests::hnsw_plugin_candidate_stage_is_sendable ... ok [INFO] [stdout] test plugin::tests::hnsw_plugin_validate_rejects_ef_construction_less_than_m ... ok [INFO] [stdout] test plugin::tests::hnsw_plugin_validate_rejects_zero_ef_search ... ok [INFO] [stdout] test plugin::tests::ann_family_as_str_round_trips ... ok [INFO] [stdout] test plugin::tests::ivf_flat_plugin_family_name ... ok [INFO] [stdout] test plugin::tests::ivf_flat_plugin_validate_accepts_all_metrics ... ok [INFO] [stdout] test plugin::tests::hnsw_plugin_validate_rejects_zero_m ... ok [INFO] [stdout] test plugin::tests::ivf_pq_plugin_validate_accepts_euclidean ... ok [INFO] [stdout] test plugin::tests::ivf_pq_plugin_validate_rejects_cosine ... ok [INFO] [stdout] test plugin::tests::ivf_pq_plugin_validate_rejects_inner_product ... ok [INFO] [stdout] test plugin::tests::plugin_dispatch_based_on_family_name ... ok [INFO] [stdout] test plugin::tests::registry_exists_returns_false_for_unknown_name ... ok [INFO] [stdout] test plugin::tests::registry_exists_returns_true_for_known_names ... ok [INFO] [stdout] test plugin::tests::registry_families_contains_all_builtins ... ok [INFO] [stdout] test plugin::tests::registry_get_flat_rejects_ivf_pq_with_helpful_message ... ok [INFO] [stdout] test plugin::tests::registry_get_flat_rejects_unknown_family ... ok [INFO] [stdout] test pipeline::tests::pipeline_run_emits_shard_load_and_ann_search_spans ... ok [INFO] [stdout] test plugin::tests::registry_get_flat_returns_diskann_plugin ... ok [INFO] [stdout] test pipeline::tests::run_rejects_invalid_query_config ... ok [INFO] [stdout] test pipeline::tests::search_alias_matches_run ... ok [INFO] [stdout] test plugin::tests::registry_get_flat_returns_hnsw_plugin ... ok [INFO] [stdout] test pipeline::tests::rerank_oversample_is_clamped_to_one ... ok [INFO] [stdout] test plugin::tests::registry_get_flat_returns_ivf_flat_plugin ... ok [INFO] [stdout] test plugin::tests::ivf_pq_plugin_family_name ... ok [INFO] [stdout] test plugin::tests::ivf_flat_plugin_candidate_stage_is_sendable ... ok [INFO] [stdout] test pipeline::tests::pipeline_run_with_reranker_emits_rerank_span ... ok [INFO] [stdout] test pq::tests::from_bytes_rejects_inconsistent_sub_dims ... ok [INFO] [stdout] test plugin::tests::ivf_pq_plugin_candidate_stage_is_sendable ... ok [INFO] [stdout] test pq::tests::distance_table_rejects_dimension_mismatch ... ok [INFO] [stdout] test pq::tests::from_bytes_rejects_wrong_magic ... ok [INFO] [stdout] test pq::tests::from_bytes_rejects_invalid_params ... ok [INFO] [stdout] test pq::tests::train_rejects_inconsistent_vector_dimensions ... ok [INFO] [stdout] test pq::tests::encoding_is_deterministic ... ok [INFO] [stdout] test pq::tests::train_rejects_invalid_params ... ok [INFO] [stdout] test ranking::tests::normalize_all_equal_scores ... ok [INFO] [stdout] test ranking::tests::normalize_all_nan_scores_returns_zeroes ... ok [INFO] [stdout] test pq::tests::train_clamps_codebook_size_to_available_vectors ... ok [INFO] [stdout] test ranking::tests::normalize_empty_list ... ok [INFO] [stdout] test ranking::tests::normalize_negative_scores_bm25_convention ... ok [INFO] [stdout] test ranking::tests::normalize_single_element ... ok [INFO] [stdout] test ranking::tests::policy_accepts_pure_bm25 ... ok [INFO] [stdout] test pq::tests::codebook_roundtrip ... ok [INFO] [stdout] test ranking::tests::policy_accepts_pure_vector ... ok [INFO] [stdout] test pq::tests::encode_rejects_dimension_mismatch ... ok [INFO] [stdout] test ranking::tests::policy_default_is_valid ... ok [INFO] [stdout] test ranking::tests::policy_rejects_nan_bm25_weight ... ok [INFO] [stdout] test ranking::tests::policy_rejects_nan_vector_weight ... ok [INFO] [stdout] test ranking::tests::policy_rejects_negative_bm25_weight ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_blends_both_signals ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_both_empty_returns_empty ... ok [INFO] [stdout] test pq::tests::adc_distance_is_non_negative ... ok [INFO] [stdout] test ranking::tests::normalize_distinct_scores ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_k_larger_than_candidates ... ok [INFO] [stdout] test ranking::tests::normalize_nan_scores_with_finite_scores_penalizes_nan_entries ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_k_zero_returns_empty ... ok [INFO] [stdout] test ranking::tests::policy_rejects_both_zero_weights ... ok [INFO] [stdout] test ranking::tests::policy_rejects_negative_vector_weight ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_missing_bm25_score_penalized ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_metadata_from_vector_takes_precedence ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_non_unit_weights_still_return_zero_one_scores ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_preserves_bm25_only_metadata ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_scores_are_in_zero_one_range ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_stable_tie_breaking_by_id ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_truncates_to_k ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_pure_bm25_ignores_vector ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_pure_vector_ignores_bm25 ... ok [INFO] [stdout] test pq::tests::train_produces_correct_shape ... ok [INFO] [stdout] test ranking::tests::rank_hybrid_missing_vector_score_penalized ... ok [INFO] [stdout] test searcher::tests::candidate_shards_cap_limits_probed_shards ... ok [INFO] [stdout] test searcher::tests::search_rejects_query_dimension_mismatch ... ok [INFO] [stdout] test searcher::tests::from_config_rejects_invalid_prefetch_policy ... ok [INFO] [stdout] test searcher::tests::load_pq_shard_records_load_attempt_on_storage_error ... ok [INFO] [stdout] test bm25::tests::build_empty_documents_gives_empty_index ... ok [INFO] [stdout] test searcher::tests::max_vectors_per_shard_limits_candidates ... ok [INFO] [stdout] test bm25::tests::from_bytes_rejects_unknown_posting_doc_ids ... ok [INFO] [stdout] test bm25::tests::save_and_load_via_object_store ... ok [INFO] [stdout] test cache::tests::lru_cache_evicts_lru_when_full ... ok [INFO] [stdout] test cache::tests::lru_cache_get_miss_on_empty ... ok [INFO] [stdout] test cache::tests::shard_cache_is_empty_after_construction ... ok [INFO] [stdout] test searcher::tests::search_with_plan_matches_search_results ... ok [INFO] [stdout] test cache::tests::shard_cache_reuses_existing_value_after_raced_load ... ok [INFO] [stdout] test searcher::tests::search_with_plan_captures_routing_details ... ok [INFO] [stdout] test searcher::tests::search_with_plan_rejects_dimension_mismatch ... ok [INFO] [stdout] test searcher::tests::prefetch_warms_hot_evicted_shards_on_runtime_search_path ... ok [INFO] [stdout] test shard::tests::encoded_len_matches_serialized_size_for_pq_shards ... ok [INFO] [stdout] test searcher::tests::searcher_uses_mmap_for_local_shards_when_path_is_available ... ok [INFO] [stdout] test searcher::tests::searcher_falls_back_to_get_without_local_path ... ok [INFO] [stdout] test shard::tests::encoded_len_matches_serialized_size_for_raw_shards ... ok [INFO] [stdout] test shard::tests::pq_shard_rejects_code_out_of_range ... ok [INFO] [stdout] test searcher::tests::load_shard_records_load_attempt_on_storage_error ... ok [INFO] [stdout] test shard::tests::pq_shard_roundtrip ... ok [INFO] [stdout] test shard::tests::roundtrip ... ok [INFO] [stdout] test shard::tests::pq_shard_rejects_version_1_bytes ... ok [INFO] [stdout] test worker::tests::plan_workers_clamps_num_workers_to_shard_count ... ok [INFO] [stdout] test worker::tests::plan_workers_rejects_dimension_mismatch ... ok [INFO] [stdout] test worker::tests::plan_workers_produces_correct_structure ... ok [INFO] [stdout] test worker::tests::plan_workers_records_build_metadata ... ok [INFO] [stdout] test worker::tests::worker_execute_rejects_malformed_plan_inputs ... ok [INFO] [stdout] test worker::tests::worker_plan_roundtrip_serialisation ... ok [INFO] [stdout] test worker::tests::plan_workers_rejects_empty_records ... ok [INFO] [stdout] test worker::tests::worker_execute_is_reproducible ... ok [INFO] [stdout] test worker::tests::worker_execute_rejects_invalid_assignment_and_record_dims ... ok [INFO] [stdout] test worker::tests::plan_workers_rejects_zero_num_workers ... ok [INFO] [stdout] test worker::tests::worker_execute_writes_output_metadata_to_storage ... ok [INFO] [stdout] test worker::tests::plan_workers_rejects_zero_num_shards ... ok [INFO] [stdout] test worker::tests::worker_execute_builds_shards_and_writes_output ... ok [INFO] [stdout] test worker::tests::plan_workers_is_reproducible ... ok [INFO] [stdout] test worker::tests::worker_execute_output_covers_all_assigned_shards ... ok [INFO] [stdout] test pq::tests::encode_returns_valid_codes ... ok [INFO] [stdout] test worker::tests::plan_workers_writes_coarse_quantizer_to_storage ... ok [INFO] [stdout] test pq::tests::adc_self_distance_is_near_zero ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 203 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s [INFO] [stdout] [INFO] [stderr] Running tests/bm25.rs (/opt/rustwide/target/debug/deps/bm25-8b373eba6495e0ba) [INFO] [stdout] [INFO] [stdout] running 18 tests [INFO] [stdout] test artifact_key_matches_paths_module ... ok [INFO] [stdout] test build_empty_corpus ... ok [INFO] [stdout] test build_indexes_all_documents ... ok [INFO] [stdout] test duplicate_vector_ids_are_coalesced_deterministically ... ok [INFO] [stdout] test frequent_term_across_all_docs_has_lower_idf_contribution ... ok [INFO] [stdout] test custom_k1_and_b_are_persisted ... ok [INFO] [stdout] test lexical_index_config_serialises_and_deserialises ... ok [INFO] [stdout] test round_trip_via_bytes_preserves_search_results ... ok [INFO] [stdout] test search_k_zero_returns_empty ... ok [INFO] [stdout] test search_respects_k_limit ... ok [INFO] [stdout] test search_multi_term_query_ranks_better_matches_first ... ok [INFO] [stdout] test from_bytes_rejects_corrupt_posting_doc_ids ... ok [INFO] [stdout] test search_scores_are_negative ... ok [INFO] [stdout] test search_unknown_term_returns_empty ... ok [INFO] [stdout] test zero_b_disables_length_normalisation ... ok [INFO] [stdout] test search_scores_are_sorted_ascending ... ok [INFO] [stdout] test save_and_load_via_object_store_round_trip ... ok [INFO] [stderr] Running tests/cache.rs (/opt/rustwide/target/debug/deps/cache-854860d84a1e0d5d) [INFO] [stdout] test search_returns_ranked_results_for_single_term ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test shard_cache_default_capacity_is_128 ... ok [INFO] [stdout] test shard_cache_hit_on_second_access ... ok [INFO] [stdout] test shard_cache_miss_on_first_access ... ok [INFO] [stdout] test shard_cache_lru_eviction ... ok [INFO] [stdout] test cached_loader_returns_same_arc_on_repeat_access ... ok [INFO] [stdout] test cached_loader_lazy_loads_shard_on_first_access ... ok [INFO] [stdout] test pipeline_builder_with_cache_capacity_propagates_limit ... ok [INFO] [stdout] test cached_loader_respects_custom_capacity ... ok [INFO] [stdout] test shard_cache_capacity_from_system_config ... ok [INFO] [stdout] test index_searcher_with_tiny_cache_still_returns_results ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/cache_metrics.rs (/opt/rustwide/target/debug/deps/cache_metrics-13e21a48fc268646) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test test_invalid_shard_does_not_record_fetch_metrics ... ok [INFO] [stdout] test test_first_load_records_miss_and_load_metrics ... ok [INFO] [stdout] test test_second_load_records_hit ... ok [INFO] [stdout] test test_hit_rate_progression ... ok [INFO] [stdout] test test_storage_error_records_attempt_without_retained_bytes ... ok [INFO] [stdout] test test_multiple_shards_record_individual_misses ... ok [INFO] [stdout] test test_decode_error_records_attempt_without_retained_bytes ... ok [INFO] [stdout] test test_metrics_arc_reflects_live_updates ... ok [INFO] [stdout] test test_warm_cache_produces_only_hits ... ok [INFO] [stdout] test test_retained_bytes_accumulate ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/diskann.rs (/opt/rustwide/target/debug/deps/diskann-60c9443e94a5c553) [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test ann_family_diskann_is_not_default ... ok [INFO] [stdout] test ann_family_diskann_parses_and_round_trips ... ok [INFO] [stdout] test diskann_plugin_family_is_diskann ... ok [INFO] [stdout] test diskann_plugin_rejects_cosine_metric ... ok [INFO] [stdout] test diskann_default_beam_width_is_positive ... ok [INFO] [stdout] test diskann_plugin_accepts_euclidean_metric ... ok [INFO] [stdout] test diskann_plugin_validation_prevents_wrong_metric_pipeline ... ok [INFO] [stdout] test diskann_plugin_rejects_inner_product_metric ... ok [INFO] [stdout] test diskann_stage_probe_set_reaches_last_record ... ok [INFO] [stdout] test diskann_stage_rejects_non_euclidean_metric ... ok [INFO] [stdout] test diskann_stage_result_count_is_min_k_shard_len ... ok [INFO] [stdout] test registry_get_flat_returns_diskann_plugin_with_default_beam_width ... ok [INFO] [stdout] test registry_includes_diskann_family ... ok [INFO] [stdout] test diskann_stage_small_shard_returns_all_available ... ok [INFO] [stdout] test diskann_stage_does_not_scan_full_shard_when_beam_is_small ... ok [INFO] [stdout] test diskann_stage_top_k_greater_than_beam_width_returns_k_results ... ok [INFO] [stdout] test registry_exists_returns_true_for_diskann ... ok [INFO] [stdout] test diskann_stage_zero_k_returns_no_results ... ok [INFO] [stdout] test diskann_plugin_with_wide_beam_matches_exact_quality ... ok [INFO] [stdout] test diskann_plugin_wires_into_query_pipeline_and_returns_results ... ok [INFO] [stdout] test diskann_stage_rejects_zero_beam_width ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-6b717baa5a06f8b1) [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test hnsw_build_rejects_invalid_hnsw_config ... ok [INFO] [stdout] test test_pq_build_rejects_non_euclidean_metric ... ok [INFO] [stdout] test hnsw_build_emits_hnsw_algorithm_in_manifest ... ok [INFO] [stdout] test test_pq_build_via_config ... ok [INFO] [stdout] test test_build_and_search ... ok [INFO] [stdout] test hnsw_searcher_uses_hnsw_plugin_for_hnsw_manifest ... ok [INFO] [stdout] test test_build_is_deterministic ... ok [INFO] [stdout] test test_pq_build_and_search ... ok [INFO] [stdout] test test_search_does_not_load_non_probed_shards ... ok [INFO] [stdout] test test_candidate_shards_cap_keeps_nearest_shard_order ... ok [INFO] [stdout] test test_pq_build_is_deterministic ... ok [INFO] [stdout] test test_pq_search_preserves_metadata ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/ivf.rs (/opt/rustwide/target/debug/deps/ivf-2ded618dc35220c4) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test ivf_quantizer_separates_two_clusters ... ok [INFO] [stdout] test ivf_quantizer_top_probes_ordered ... ok [INFO] [stdout] test ivf_quantizer_train_and_assign_basic ... ok [INFO] [stdout] test coarse_quantizer_key_matches_canonical_path ... ok [INFO] [stdout] test build_persists_coarse_quantizer_artifact ... ok [INFO] [stdout] test build_emits_ivf_flat_algorithm ... ok [INFO] [stdout] test build_compacts_empty_clusters_before_persisting_quantizer ... ok [INFO] [stdout] test coarse_quantizer_centroids_match_shard_def_centroids ... ok [INFO] [stdout] test build_records_num_clusters_in_params ... ok [INFO] [stderr] Running tests/merge.rs (/opt/rustwide/target/debug/deps/merge-55e46c7d8c05faf9) [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test global_merge_trait_object_works ... ok [INFO] [stdout] test merge_deduplicates_keeps_best_score ... ok [INFO] [stdout] test merge_all_same_id_returns_single_best ... ok [INFO] [stdout] test merge_deduplicates_retains_metadata_of_best_entry ... ok [INFO] [stdout] test merge_empty_input_returns_empty ... ok [INFO] [stdout] test merge_empty_shard_among_non_empty ... ok [INFO] [stdout] test merge_global_top_k_across_multiple_shards ... ok [INFO] [stdout] test merge_is_stable_regardless_of_input_order ... ok [INFO] [stdout] test merge_k_zero_returns_empty ... ok [INFO] [stdout] test merge_order_is_score_ascending_then_id_ascending ... ok [INFO] [stdout] test merge_tie_broken_by_vector_id_ascending ... ok [INFO] [stdout] test merge_truncates_to_k ... ok [INFO] [stdout] test merge_returns_all_when_fewer_than_k ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stderr] Running tests/parallel_build.rs (/opt/rustwide/target/debug/deps/parallel_build-88df7b85ff973c01) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test parallel_build_writes_all_shard_artifacts ... ok [INFO] [stdout] test parallel_build_propagates_shard_write_error ... ok [INFO] [stdout] test parallel_build_shard_ids_are_sorted ... ok [INFO] [stdout] test parallel_build_is_deterministic ... ok [INFO] [stdout] test parallel_build_executes_shards_concurrently ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/pipeline.rs (/opt/rustwide/target/debug/deps/pipeline-5376d7b30fb63e46) [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test exact_rerank_stage_rescores_candidates ... ok [INFO] [stdout] test pq_candidate_stage_ranks_identical_vector_first ... ok [INFO] [stdout] test pq_candidate_stage_rejects_non_euclidean_queries ... ok [INFO] [stdout] test test_mmap_min_size_bytes_constant ... ok [INFO] [stdout] test cosine_pipeline_returns_query_vector_as_top_result ... ok [INFO] [stdout] test test_mmap_loader_fallback_for_small_files ... ok [INFO] [stdout] test cosine_and_euclidean_pipelines_produce_different_top_results_for_scale_differing_corpus ... ok [INFO] [stdout] test inner_product_pipeline_returns_query_vector_as_top_result ... ok [INFO] [stdout] test pipeline_shard_load_failure_propagates ... ok [INFO] [stdout] test pipeline_nprobe_limits_shards_probed ... ok [INFO] [stdout] test pipeline_matches_searcher_results ... ok [INFO] [stdout] test pipeline_rerank_receives_only_merged_candidate_records ... ok [INFO] [stdout] test pipeline_with_pq_stage_and_reranking_finds_correct_top1 ... ok [INFO] [stdout] test test_mmap_loader_returns_same_results_as_cached_loader ... ok [INFO] [stdout] test pq_rerank_pipeline_matches_exact_topk_set ... ok [INFO] [stdout] test test_mmap_loader_caches_shards ... ok [INFO] [stdout] test pipeline_shard_searches_run_concurrently ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 28 tests [INFO] [stdout] test ann_family_default_is_ivf_flat ... ok [INFO] [stderr] Running tests/plugin.rs (/opt/rustwide/target/debug/deps/plugin-36117975e3ae9162) [INFO] [stdout] test ann_family_display_matches_as_str ... ok [INFO] [stdout] test ann_family_parse_unknown_returns_error ... ok [INFO] [stdout] test ann_family_parses_all_known_names ... ok [INFO] [stdout] test hnsw_plugin_accepts_all_distance_metrics ... ok [INFO] [stdout] test hnsw_plugin_custom_config_is_accessible ... ok [INFO] [stdout] test hnsw_plugin_invalid_config_rejected_at_validation ... ok [INFO] [stdout] test hnsw_ann_family_round_trips ... ok [INFO] [stdout] test ivf_flat_plugin_accepts_all_distance_metrics ... ok [INFO] [stdout] test ivf_flat_plugin_satisfies_ann_plugin_trait ... ok [INFO] [stdout] test hnsw_plugin_satisfies_ann_plugin_trait ... ok [INFO] [stdout] test registry_get_flat_returns_hnsw_plugin ... ok [INFO] [stdout] test registry_get_flat_returns_ivf_flat_plugin ... ok [INFO] [stdout] test ivf_pq_plugin_accepts_euclidean_metric ... ok [INFO] [stdout] test registry_exposes_all_builtin_families ... ok [INFO] [stdout] test ivf_pq_plugin_rejects_inner_product_metric ... ok [INFO] [stdout] test hnsw_plugin_ef_construction_less_than_m_is_rejected ... ok [INFO] [stdout] test registry_get_flat_rejects_ivf_pq_with_actionable_message ... ok [INFO] [stdout] test registry_exists_for_known_families ... ok [INFO] [stdout] test registry_get_flat_rejects_unknown_family ... ok [INFO] [stdout] test ivf_pq_plugin_satisfies_ann_plugin_trait ... ok [INFO] [stdout] test ivf_pq_plugin_validation_prevents_misconfigured_pipeline ... ok [INFO] [stdout] test registry_does_not_exist_for_unknown_family ... ok [INFO] [stdout] test ivf_pq_plugin_rejects_cosine_metric ... ok [INFO] [stdout] test registry_get_flat_returns_diskann_plugin ... ok [INFO] [stdout] test hnsw_plugin_candidate_stage_searches_shard ... ok [INFO] [stdout] test both_backends_wire_into_pipeline_via_plugin_interface ... ok [INFO] [stdout] test ivf_flat_plugin_candidate_stage_searches_shard ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/prefetch.rs (/opt/rustwide/target/debug/deps/prefetch-72f656119412d509) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test prefetch_policy_validate_enabled_nonzero_count_is_ok ... ok [INFO] [stdout] test prefetch_policy_validate_disabled_always_ok ... ok [INFO] [stdout] test prefetch_policy_validate_enabled_zero_count_is_invalid ... ok [INFO] [stdout] test loader_enabled_policy_threshold_not_met_no_warming ... ok [INFO] [stdout] test loader_enabled_policy_warms_evicted_hot_shard ... ok [INFO] [stdout] test loader_bounded_cache_does_not_exceed_capacity ... ok [INFO] [stdout] test loader_disabled_policy_no_extra_loads ... ok [INFO] [stdout] test loader_unbounded_cache_retains_all_loaded_shards ... ok [INFO] [stdout] test loader_no_policy_loads_only_requested_shard ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/ranking.rs (/opt/rustwide/target/debug/deps/ranking-ed365e4cf9e2acf0) [INFO] [stdout] [INFO] [stdout] running 15 tests [INFO] [stdout] test blended_ranking_candidate_in_both_lists_ranks_first ... ok [INFO] [stdout] test both_empty_returns_empty ... ok [INFO] [stdout] test candidates_in_both_lists_rank_above_bm25_only ... ok [INFO] [stdout] test candidates_in_both_lists_rank_above_vector_only ... ok [INFO] [stdout] test hybrid_scores_always_non_negative ... ok [INFO] [stdout] test k_larger_than_union_returns_all ... ok [INFO] [stdout] test blended_ranking_deterministic_across_repeated_calls ... ok [INFO] [stdout] test blended_ranking_non_unit_weights_produce_valid_output ... ok [INFO] [stdout] test k_zero_returns_empty ... ok [INFO] [stdout] test pure_bm25_ranking_empty_vector_list ... ok [INFO] [stdout] test pure_bm25_ranking_ordered_by_bm25_score ... ok [INFO] [stdout] test pure_vector_ranking_truncates_to_k ... ok [INFO] [stdout] test ranking_stable_on_identical_hybrid_scores_tie_breaks_by_id_asc ... ok [INFO] [stdout] test single_candidate_in_each_list_no_overlap ... ok [INFO] [stdout] test pure_vector_ranking_ordered_by_vector_score ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/rerank.rs (/opt/rustwide/target/debug/deps/rerank-428beff32f155402) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test rerank_top_result_is_stable_for_exact_ann ... ok [INFO] [stdout] test rerank_corrects_approximate_scores ... ok [INFO] [stdout] test rerank_scores_match_exact_euclidean_distance ... ok [INFO] [stdout] test rerank_cosine_distance_ordering ... 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/validation.rs (/opt/rustwide/target/debug/deps/validation-4706989c88947f53) [INFO] [stdout] [INFO] [stdout] running 24 tests [INFO] [stdout] test test_validate_dataset_collects_both_missing_artifacts ... ok [INFO] [stdout] test test_validate_dataset_into_result_ok ... ok [INFO] [stdout] test test_validate_dataset_detects_missing_metadata_artifact ... ok [INFO] [stdout] test test_validate_dataset_detects_structural_failure ... ok [INFO] [stdout] test test_validate_dataset_passes_with_artifacts_present ... ok [INFO] [stdout] test test_validate_dataset_detects_missing_vectors_artifact ... ok [INFO] [stdout] test test_validate_dataset_reports_storage_error_for_invalid_key ... ok [INFO] [stdout] test test_validate_index_detects_structural_failure ... ok [INFO] [stdout] test test_validation_failure_display ... ok [INFO] [stdout] test test_validate_index_into_result_err ... ok [INFO] [stdout] test test_validate_index_collects_all_failures ... ok [INFO] [stdout] test test_validate_index_detects_pq_parameter_mismatch ... ok [INFO] [stdout] test test_validate_index_detects_missing_metadata_artifact ... ok [INFO] [stdout] test test_validate_index_detects_dimension_mismatch ... ok [INFO] [stdout] test test_validate_index_detects_missing_shard ... ok [INFO] [stdout] test test_validate_index_detects_fingerprint_mismatch ... ok [INFO] [stdout] test test_validate_index_detects_vector_count_mismatch ... ok [INFO] [stdout] test test_validate_index_passes_with_all_artifacts_present ... ok [INFO] [stdout] test test_validate_index_detects_missing_coarse_quantizer_artifact ... ok [INFO] [stdout] test test_validate_index_detects_centroid_mismatch ... ok [INFO] [stdout] test test_validate_index_detects_invalid_coarse_quantizer_artifact ... ok [INFO] [stdout] test test_validate_index_detects_missing_vectors_artifact ... ok [INFO] [stdout] test test_validate_index_into_result_ok ... ok [INFO] [stdout] test test_validate_index_detects_fingerprint_field_mismatch ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/worker_merge.rs (/opt/rustwide/target/debug/deps/worker_merge-b3e09a9c72b3a47b) [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test merge_includes_routing_metadata ... ok [INFO] [stdout] test merge_preserves_plan_build_metadata ... ok [INFO] [stdout] test merge_preserves_coarse_quantizer_key ... ok [INFO] [stdout] test merge_is_deterministic_regardless_of_output_order ... ok [INFO] [stdout] test merge_produces_correct_shard_summary ... ok [INFO] [stdout] test merge_produces_valid_manifest ... ok [INFO] [stdout] test merge_rejects_empty_outputs ... ok [INFO] [stdout] test merge_rejects_duplicate_worker_id ... ok [INFO] [stdout] test merge_rejects_out_of_range_worker_id ... ok [INFO] [stdout] test merge_saves_manifest_to_storage ... ok [INFO] [stdout] test merge_rejects_missing_worker ... ok [INFO] [stdout] test merge_rejects_duplicate_shard_across_workers ... ok [INFO] [stdout] test merge_respects_alias_param ... ok [INFO] [stdout] test merge_rejects_missing_shard ... ok [INFO] [stdout] test merge_rejects_out_of_range_shard_id ... ok [INFO] [stdout] test merge_rejects_incompatible_index_version ... ok [INFO] [stdout] test merge_rejects_mismatched_shard_worker_id ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_manifest-616d2b72b7affa08) [INFO] [stdout] [INFO] [stderr] Running tests/dataset_manifest.rs (/opt/rustwide/target/debug/deps/dataset_manifest-5f027e3bb2b8ac14) [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 11 tests [INFO] [stdout] test test_dataset_manifest_json_fields ... ok [INFO] [stdout] test test_dataset_manifest_load_missing_returns_error ... ok [INFO] [stdout] test test_dataset_manifest_validate_rejects_empty_metadata_key ... ok [INFO] [stdout] test test_dataset_manifest_validate_rejects_empty_vectors_key ... ok [INFO] [stdout] test test_dataset_manifest_validate_rejects_unsupported_version ... ok [INFO] [stdout] test test_dataset_manifest_validate_rejects_zero_dims ... ok [INFO] [stdout] test test_dataset_manifest_loads_legacy_info_json_from_store ... ok [INFO] [stdout] test test_dataset_manifest_save_load_roundtrip ... ok [INFO] [stdout] test test_dataset_manifest_loads_legacy_info_json ... ok [INFO] [stdout] test test_dataset_manifest_load_rejects_dataset_version_mismatch ... ok [INFO] [stdout] test test_dataset_manifest_validate_rejects_zero_vector_count ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/manifest.rs (/opt/rustwide/target/debug/deps/manifest-0458b9d44b09edf3) [INFO] [stdout] [INFO] [stdout] running 49 tests [INFO] [stdout] test test_check_dataset_version_compat_mismatch ... ok [INFO] [stdout] test test_check_dimension_compat_mismatch ... ok [INFO] [stdout] test test_full_compat_algorithm_mismatch ... ok [INFO] [stdout] test test_check_dataset_version_compat_ok ... ok [INFO] [stdout] test test_full_compat_algorithm_only_ok ... ok [INFO] [stdout] test test_alias_roundtrip ... ok [INFO] [stdout] test test_check_algorithm_compat_ok ... ok [INFO] [stdout] test test_full_compat_extra_manifest_params_ignored ... ok [INFO] [stdout] test test_check_algorithm_compat_mismatch ... ok [INFO] [stdout] test test_check_dimension_compat_ok ... ok [INFO] [stdout] test test_full_compat_required_param_missing_from_manifest ... ok [INFO] [stdout] test test_check_algorithm_compat_uses_v1_default ... ok [INFO] [stdout] test test_full_compat_required_param_value_mismatch ... ok [INFO] [stdout] test test_full_compat_variant_caller_none_skips_check ... ok [INFO] [stdout] test test_full_compat_variant_manifest_none_requested_some ... ok [INFO] [stdout] test test_full_compat_required_params_all_match ... ok [INFO] [stdout] test test_full_compat_variant_match_ok ... ok [INFO] [stdout] test test_full_compat_variant_mismatch ... ok [INFO] [stdout] test test_load_accepts_compat_fingerprint_field ... ok [INFO] [stdout] test test_v1_manifest_defaults_new_fields ... ok [INFO] [stdout] test test_validate_rejects_empty_routing_index_type ... ok [INFO] [stdout] test test_v3_manifest_without_routing_passes_validation ... ok [INFO] [stdout] test test_validate_rejects_empty_routing_file_location ... ok [INFO] [stdout] test test_validate_bad_count ... ok [INFO] [stdout] test test_validate_rejects_ivf_flat_without_coarse_quantizer_key ... ok [INFO] [stdout] test test_validate_rejects_lexical_doc_count_mismatch ... ok [INFO] [stdout] test test_validate_accepts_valid_pq8_compression ... ok [INFO] [stdout] test test_validate_rejects_lexical_config_on_legacy_manifest_versions ... ok [INFO] [stdout] test test_validate_rejects_empty_routing_centroid_id ... ok [INFO] [stdout] test test_validate_rejects_enabled_false_with_pq8_codec ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_serve-be69bd080d3558ed) [INFO] [stdout] test test_validate_rejects_negative_build_duration ... ok [INFO] [stdout] test test_validate_rejects_invalid_recall_estimate ... ok [INFO] [stdout] test test_validate_rejects_none_codec_with_stale_pq_num_subspaces ... ok [INFO] [stdout] test test_validate_rejects_pq8_codebook_size_exceeds_256 ... ok [INFO] [stdout] test test_validate_rejects_pq8_empty_codebook_key ... ok [INFO] [stdout] test test_validate_rejects_pq8_missing_codebook_key ... ok [INFO] [stdout] test test_save_load_roundtrip ... ok [INFO] [stdout] test test_validate_rejects_none_codec_with_stale_codebook_key ... ok [INFO] [stdout] test test_validate_rejects_none_codec_with_stale_pq_codebook_size ... ok [INFO] [stdout] test test_v4_round_trips_lifecycle_and_routing_fields ... ok [INFO] [stdout] test test_validate_rejects_enabled_true_with_none_codec ... ok [INFO] [stdout] test test_v2_centroid_round_trips ... ok [INFO] [stdout] test test_validate_rejects_pq8_missing_num_subspaces ... ok [INFO] [stdout] test test_v1_save_upgrades_to_current_version ... ok [INFO] [stdout] test test_validate_rejects_unknown_codec ... ok [INFO] [stdout] test test_validate_rejects_inconsistent_shard_summary ... ok [INFO] [stdout] test test_validate_rejects_empty_fingerprint ... ok [INFO] [stdout] test test_validate_rejects_pq8_zero_codebook_size ... ok [INFO] [stdout] test test_validate_rejects_unsupported_manifest_version ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 39 tests [INFO] [stdout] test prom::tests::gather_increments_query_counters ... ok [INFO] [stdout] test prom::tests::gather_reflects_cache_metric_snapshot ... ok [INFO] [stdout] test prom::tests::gather_returns_expected_metric_families ... ok [INFO] [stdout] test prom::tests::gather_uses_supplied_retained_bytes ... ok [INFO] [stdout] test routes::tests::query_mode_hybrid_rejects_no_bm25_index ... ok [INFO] [stdout] test routes::tests::metrics_route_contains_expected_metric_families ... ok [INFO] [stdout] test routes::tests::query_mode_hybrid_rerank_limit_widens_bm25_candidates ... ok [INFO] [stdout] test routes::tests::query_mode_hybrid_rejects_missing_query_text ... ok [INFO] [stdout] test routes::tests::query_mode_lexical_rejects_missing_query_text ... ok [INFO] [stdout] test routes::tests::query_mode_vector_rejects_missing_vector ... ok [INFO] [stdout] test routes::tests::query_mode_hybrid_rejects_missing_vector ... ok [INFO] [stdout] test routes::tests::query_mode_invalid_value_rejected ... ok [INFO] [stdout] test routes::tests::query_mode_lexical_rejects_no_bm25_index ... ok [INFO] [stdout] test routes::tests::query_plan_route_disabled_by_default ... ok [INFO] [stdout] test routes::tests::query_mode_hybrid_returns_results ... ok [INFO] [stdout] test routes::tests::query_mode_vector_explicit_returns_results ... ok [INFO] [stdout] test routes::tests::metrics_route_returns_200_with_prometheus_content_type ... ok [INFO] [stdout] test routes::tests::query_plan_route_rejects_dimension_mismatch ... ok [INFO] [stdout] test routes::tests::query_mode_defaults_to_vector_when_absent ... ok [INFO] [stdout] test routes::tests::query_mode_lexical_rejects_whitespace_only_query_text ... ok [INFO] [stdout] test routes::tests::query_mode_hybrid_rejects_punctuation_only_query_text ... ok [INFO] [stdout] test routes::tests::query_mode_lexical_returns_results ... ok [INFO] [stdout] test routes::tests::query_route_rejects_non_euclidean_metric_for_pq_indexes ... ok [INFO] [stdout] test routes::tests::query_route_rejects_nprobe_overflow ... ok [INFO] [stdout] test routes::tests::query_route_rejects_zero_k ... ok [INFO] [stdout] test routes::tests::query_route_rejects_zero_rerank_limit ... ok [INFO] [stdout] test routes::tests::query_plan_route_rejects_zero_k ... ok [INFO] [stdout] test routes::tests::query_route_accepts_rerank_limit ... ok [INFO] [stdout] test routes::tests::query_route_rejects_dimension_mismatch ... ok [INFO] [stdout] test routes::tests::query_route_accepts_distance_metric_override ... ok [INFO] [stdout] test routes::tests::query_route_nprobe_backward_compat ... ok [INFO] [stdout] test routes::tests::query_plan_route_searched_shards_subset_of_index_shards ... ok [INFO] [stdout] test routes::tests::query_route_rejects_zero_candidate_centroids ... ok [INFO] [stdout] test routes::tests::query_route_with_rerank_returns_correct_top_result ... ok [INFO] [stdout] test routes::tests::query_plan_route_returns_plan ... ok [INFO] [stdout] test routes::tests::metrics_route_increments_after_query ... ok [INFO] [stdout] test routes::tests::query_route_applies_distance_metric_override ... ok [INFO] [stdout] test routes::tests::query_route_returns_results ... ok [INFO] [stdout] test routes::tests::query_route_accepts_fan_out_overrides ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_storage-77ccdc0010dc4b0f) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test paths::tests::dataset_keys_have_stable_layout ... ok [INFO] [stdout] test paths::tests::index_keys_have_stable_layout ... ok [INFO] [stdout] test paths::tests::index_lexical_key_has_stable_layout ... ok [INFO] [stdout] test local::tests::rejects_path_traversal_and_absolute_keys ... ok [INFO] [stdout] test paths::tests::index_pq_codebook_key_has_stable_layout ... ok [INFO] [stdout] test local::tests::create_writer_persists_bytes_at_key ... ok [INFO] [stdout] test local::tests::put_get_list_and_delete_round_trip ... ok [INFO] [stdout] test paths::tests::alias_key_has_stable_layout ... ok [INFO] [stdout] test s3::tests::all_operations_return_storage_error_other ... ok [INFO] [stdout] test s3::tests::construction_succeeds_and_config_is_accessible ... ok [INFO] [stdout] test s3::tests::debug_output_redacts_credentials ... ok [INFO] [stderr] Running tests/local.rs (/opt/rustwide/target/debug/deps/local-c0cdd1efab43d35b) [INFO] [stdout] test paths::tests::worker_keys_have_stable_layout ... ok [INFO] [stdout] test s3::tests::error_messages_include_the_key ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_put_get_exists_delete ... 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] Doc-tests shardlake_bench [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test crates/shardlake-bench/src/lib.rs - CostMetrics (line 69) ... ignored [INFO] [stdout] test crates/shardlake-bench/src/lib.rs - EvalHybridReport (line 796) ... ignored [INFO] [stdout] test crates/shardlake-bench/src/generate.rs - generate (line 10) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.49s [INFO] [stdout] [INFO] [stderr] Doc-tests shardlake_core [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test crates/shardlake-core/src/types.rs - types::AnnFamily (line 61) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s [INFO] [stdout] [INFO] [stderr] Doc-tests shardlake_index [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test crates/shardlake-index/src/plugin.rs - plugin (line 21) ... ignored [INFO] [stdout] test crates/shardlake-index/src/plugin.rs - plugin::AnnPlugin (line 60) ... ignored [INFO] [stdout] test crates/shardlake-index/src/plugin.rs - plugin::AnnRegistry (line 482) ... ignored [INFO] [stdout] test crates/shardlake-index/src/pq.rs - pq (line 18) ... ignored [INFO] [stdout] test crates/shardlake-index/src/validator.rs - validator (line 10) ... ignored [INFO] [stdout] test crates/shardlake-index/src/worker.rs - worker::WorkerBuilder (line 646) ... ignored [INFO] [stdout] test crates/shardlake-index/src/bm25.rs - bm25::BM25Params (line 65) ... ok [INFO] [stdout] test crates/shardlake-index/src/bm25.rs - bm25::Bm25Index (line 103) ... ok [INFO] [stdout] test crates/shardlake-index/src/pipeline.rs - pipeline::MmapShardLoader (line 328) - compile ... ok [INFO] [stdout] test crates/shardlake-index/src/bm25.rs - bm25::Bm25Index::build (line 143) ... ok [INFO] [stdout] test crates/shardlake-index/src/metrics.rs - metrics::CacheMetrics (line 23) ... ok [INFO] [stdout] test crates/shardlake-index/src/ranking.rs - ranking::HybridRankingPolicy (line 101) ... ok [INFO] [stdout] test crates/shardlake-index/src/ivf.rs - ivf::IvfQuantizer (line 50) ... ok [INFO] [stdout] test crates/shardlake-index/src/ranking.rs - ranking (line 59) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 1.39s [INFO] [stdout] [INFO] [stderr] Doc-tests shardlake_manifest [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] Doc-tests shardlake_serve [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] Doc-tests shardlake_storage [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test crates/shardlake-storage/src/s3.rs - s3 (line 30) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "4cd564cd422279eb3cf6a5d788221d8e76dc9b4c2c283b0ff0b6ef15873fc749", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4cd564cd422279eb3cf6a5d788221d8e76dc9b4c2c283b0ff0b6ef15873fc749", kill_on_drop: false }` [INFO] [stdout] 4cd564cd422279eb3cf6a5d788221d8e76dc9b4c2c283b0ff0b6ef15873fc749