[INFO] cloning repository https://github.com/friedrichwilken/kanon [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/friedrichwilken/kanon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffriedrichwilken%2Fkanon", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffriedrichwilken%2Fkanon'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b5185ff1fa09239410cf2cd73f627d7b6ee5eebb [INFO] testing friedrichwilken/kanon against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffriedrichwilken%2Fkanon" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/friedrichwilken/kanon [INFO] finished tweaking git repo https://github.com/friedrichwilken/kanon [INFO] tweaked toml for git repo https://github.com/friedrichwilken/kanon written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/friedrichwilken/kanon on toolchain 1.100.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/friedrichwilken/kanon already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b [INFO] running `Command { std: "docker" "start" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.107 [INFO] [stderr] Compiling quote v1.0.47 [INFO] [stderr] Compiling unicode-ident v1.0.26 [INFO] [stderr] Compiling libc v0.2.189 [INFO] [stderr] Compiling serde_core v1.0.229 [INFO] [stderr] Compiling find-msvc-tools v0.1.13 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Compiling serde v1.0.229 [INFO] [stderr] Compiling cfg-if v1.0.5 [INFO] [stderr] Compiling memchr v2.8.3 [INFO] [stderr] Compiling pkg-config v0.3.34 [INFO] [stderr] Compiling crossbeam-utils v0.8.23 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling rustix v1.1.5 [INFO] [stderr] Compiling zmij v1.0.23 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling num-conv v0.2.2 [INFO] [stderr] Compiling syn v3.0.6 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.21 [INFO] [stderr] Compiling autocfg v1.5.1 [INFO] [stderr] Compiling jobserver v0.1.35 [INFO] [stderr] Compiling bitflags v2.13.2 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling log v0.4.34 [INFO] [stderr] Compiling zstd-safe v7.3.0 [INFO] [stderr] Compiling serde_json v1.0.151 [INFO] [stderr] Compiling cc v1.4.7 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling time-core v0.1.9 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling ownedbytes v0.9.0 [INFO] [stderr] Compiling typeid v1.0.3 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling either v1.18.0 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling crc32fast v1.5.2 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling crossbeam-deque v0.8.8 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling prettyplease v0.3.0 [INFO] [stderr] Compiling zeroize v1.9.0 [INFO] [stderr] Compiling bitpacking v0.9.3 [INFO] [stderr] Compiling rustls-pki-types v1.15.1 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling hybrid-array v0.4.15 [INFO] [stderr] Compiling zstd-sys v2.1.0+zstd.1.5.7 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling time v0.3.55 [INFO] [stderr] Compiling darling_core v0.24.1 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling async-trait v0.1.92 [INFO] [stderr] Compiling futures-macro v0.3.34 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling aho-corasick v1.1.5 [INFO] [stderr] Compiling futures-task v0.3.34 [INFO] [stderr] Compiling utf8-ranges v1.0.5 [INFO] [stderr] Compiling darling_macro v0.24.1 [INFO] [stderr] Compiling erased-serde v0.4.10 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling rustversion v1.0.23 [INFO] [stderr] Compiling futures-core v0.3.34 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling futures-util v0.3.34 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling darling v0.24.1 [INFO] [stderr] Compiling tantivy-fst v0.5.0 [INFO] [stderr] Compiling tantivy-common v0.11.0 [INFO] [stderr] Compiling regex-automata v0.4.18 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling ref-cast v1.0.27 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling thiserror v2.0.21 [INFO] [stderr] Compiling bytes v1.12.1 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling typetag v0.2.23 [INFO] [stderr] Compiling rustls v0.23.45 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling murmurhash32 v0.3.1 [INFO] [stderr] Compiling simd-adler32 v0.3.10 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling miniz_oxide v0.9.1 [INFO] [stderr] Compiling tantivy-stacker v0.7.0 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling http v1.5.0 [INFO] [stderr] Compiling tantivy-bitpacker v0.10.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling bon-macros v3.10.1 [INFO] [stderr] Compiling rustls-webpki v0.103.15 [INFO] [stderr] Compiling ordered-float v5.4.0 [INFO] [stderr] Compiling thiserror-impl v2.0.21 [INFO] [stderr] Compiling typetag-impl v0.2.23 [INFO] [stderr] Compiling ref-cast-impl v1.0.27 [INFO] [stderr] Compiling serde_derive_internals v0.30.0 [INFO] [stderr] Compiling crypto-common v0.2.2 [INFO] [stderr] Compiling block-buffer v0.12.1 [INFO] [stderr] Compiling downcast-rs v2.0.2 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling base64 v0.23.1 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling fastdivide v0.4.2 [INFO] [stderr] Compiling fastrand v2.5.0 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling clap_lex v1.1.1 [INFO] [stderr] Compiling inventory v0.3.24 [INFO] [stderr] Compiling anyhow v1.0.104 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling const-oid v0.10.2 [INFO] [stderr] Compiling clap_builder v4.6.7 [INFO] [stderr] Compiling digest v0.11.3 [INFO] [stderr] Compiling indexmap v2.14.2 [INFO] [stderr] Compiling tantivy-query-grammar v0.26.0 [INFO] [stderr] Compiling schemars_derive v1.2.2 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling clap_derive v4.6.7 [INFO] [stderr] Compiling ureq-proto v0.6.4 [INFO] [stderr] Compiling bon v3.10.1 [INFO] [stderr] Compiling arc-swap v1.9.2 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling lru v0.16.4 [INFO] [stderr] Compiling flate2 v1.1.10 [INFO] [stderr] Compiling regex v1.13.1 [INFO] [stderr] Compiling uuid v1.26.1 [INFO] [stderr] Compiling rust-stemmers v1.2.0 [INFO] [stderr] Compiling sketches-ddsketch v0.4.1 [INFO] [stderr] Compiling tantivy-tokenizer-api v0.7.0 [INFO] [stderr] Compiling xattr v1.6.1 [INFO] [stderr] Compiling fs4 v0.13.1 [INFO] [stderr] Compiling webpki-roots v1.0.9 [INFO] [stderr] Compiling measure_time v0.9.0 [INFO] [stderr] Compiling memmap2 v0.9.11 [INFO] [stderr] Compiling filetime v0.2.29 [INFO] [stderr] Compiling crossbeam-channel v0.5.17 [INFO] [stderr] Compiling bstr v1.13.1 [INFO] [stderr] Compiling utf8-zero v0.8.1 [INFO] [stderr] Compiling census v0.4.2 [INFO] [stderr] Compiling rustc-hash v2.1.3 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling cpufeatures v0.3.1 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling oneshot v0.1.13 [INFO] [stderr] Compiling levenshtein_automata v0.2.1 [INFO] [stderr] Compiling smallvec v1.16.1 [INFO] [stderr] Compiling jiff-core v0.1.1 [INFO] [stderr] Compiling htmlescape v0.3.1 [INFO] [stderr] Compiling datasketches v0.2.0 [INFO] [stderr] Compiling lz4_flex v0.13.1 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling jiff v0.2.37 [INFO] [stderr] Compiling schemars v1.2.2 [INFO] [stderr] Compiling serde_yaml_ng v0.10.0 [INFO] [stderr] Compiling sha2 v0.11.0 [INFO] [stderr] Compiling ureq v3.4.2 [INFO] [stderr] Compiling globset v0.4.20 [INFO] [stderr] Compiling tar v0.4.46 [INFO] [stderr] Compiling clap v4.6.7 [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling tantivy-sstable v0.7.0 [INFO] [stderr] Compiling tantivy-columnar v0.7.0 [INFO] [stderr] Compiling tantivy v0.26.2 [INFO] [stderr] Compiling pinakes v1.1.0 (https://github.com/friedrichwilken/pinakes?rev=7ba729d3e1f2644c36a7b400961d7b3e16404e7c#7ba729d3) [INFO] [stderr] Compiling kanon v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 8m 49s [INFO] running `Command { std: "docker" "inspect" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling kanon v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 1m 20s [INFO] running `Command { std: "docker" "inspect" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.56s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/build/kanon/33283301d6349a9a/out/kanon-33283301d6349a9a) [INFO] [stdout] [INFO] [stdout] running 179 tests [INFO] [stdout] test artifact::tests::no_manifest_is_no_version ... ok [INFO] [stdout] test artifact::tests::a_manifest_that_is_not_one_is_an_error_not_a_missing_manifest ... ok [INFO] [stdout] test artifact::tests::the_recorded_version_is_read_and_a_missing_field_means_one ... ok [INFO] [stdout] test artifact::tests::a_newer_version_is_the_loaders_own_line_with_the_path ... ok [INFO] [stdout] test backend::external::tests::a_page_returned_twice_without_units_counts_once_too ... ok [INFO] [stdout] test backend::external::tests::a_hit_that_is_never_kept_is_not_checked ... ok [INFO] [stdout] test backend::external::tests::a_page_path_with_a_hash_keeps_its_page_and_its_unit ... ok [INFO] [stdout] test backend::external::tests::a_page_returned_twice_counts_once_at_its_best_rank ... ok [INFO] [stdout] test backend::dense::tests::dense_backend_ranks_by_cosine_and_reports_stale_embeddings ... ok [INFO] [stdout] test backend::dense::tests::dense_embeds_the_query_with_the_prefix_the_file_was_built_with ... ok [INFO] [stdout] test backend::dense::tests::dense_backend_without_an_embedder_is_a_config_error ... ok [INFO] [stdout] test backend::external::tests::a_unit_hit_is_scored_as_its_page_and_keeps_its_unit ... ok [INFO] [stdout] test backend::external::tests::a_unit_id_that_does_not_belong_to_its_page_fails_the_response ... ok [INFO] [stdout] test backend::hybrid::tests::reciprocal_rank_fusion_matches_the_formula_by_hand ... ok [INFO] [stdout] test backend::tests::a_built_in_spec_is_named_after_its_kind ... ok [INFO] [stdout] test backend::external::tests::external_backend_rejects_a_response_of_a_newer_version ... ok [INFO] [stdout] test backend::external::tests::external_backend_sends_the_request_and_parses_the_response ... ok [INFO] [stdout] test backend::external::tests::external_backend_without_a_url_is_a_config_error ... ok [INFO] [stdout] test commands::embed::tests::embed_writes_units_for_every_searchable_page ... ok [INFO] [stdout] test backend::tests::an_unknown_name_keeps_its_wording_through_backend_error ... ok [INFO] [stdout] test commands::embed::tests::embed_puts_the_document_prefix_in_front_of_every_unit_and_records_both_sides ... ok [INFO] [stdout] test commands::eval::tests::apply_eval_config_defaults_fills_compare_only_for_a_bare_eval ... ok [INFO] [stdout] test commands::eval::tests::apply_eval_config_defaults_fills_unset_flags_and_resolves_relative_embeddings ... ok [INFO] [stdout] test commands::eval::tests::apply_eval_config_defaults_is_a_noop_without_a_config_file ... ok [INFO] [stdout] test commands::eval::tests::apply_eval_config_defaults_keeps_an_already_set_flag ... ok [INFO] [stdout] test backend::tantivy::tests::tantivy_backend_finds_the_boosted_title_match_first ... ok [INFO] [stdout] test commands::embed::tests::prefixes_come_from_the_option_then_the_config_then_the_model_then_nothing ... ok [INFO] [stdout] test commands::eval::tests::backend_flags_spec_defaults_to_bm25_and_rejects_an_unknown_name ... ok [INFO] [stdout] test commands::eval::tests::apply_backend_config_defaults_carries_named_backends_with_paths_relative_to_the_config ... ok [INFO] [stdout] test commands::eval::tests::eval_backend_records_a_configured_name_and_uses_its_embeddings ... ok [INFO] [stdout] test commands::eval::tests::eval_backend_rejects_with_without_for_non_bm25_backends ... ok [INFO] [stdout] test commands::eval::tests::eval_backend_dense_uses_the_injected_embedder ... ok [INFO] [stdout] test commands::eval::tests::eval_embedder_from_env_reports_the_exact_original_wording_when_unset ... ok [INFO] [stdout] test commands::eval::tests::apply_backend_config_defaults_fills_what_the_flags_leave_unset ... ok [INFO] [stdout] test commands::eval::tests::eval_plan_allow_stale_alone_still_selects_bm25_through_the_backend_path ... ok [INFO] [stdout] test commands::eval::tests::eval_plan_compare_wins_over_a_backend_flag ... ok [INFO] [stdout] test commands::eval::tests::eval_plan_is_plain_with_no_backend_selecting_flag ... ok [INFO] [stdout] test commands::eval::tests::eval_plan_rejects_an_unknown_backend_name ... ok [INFO] [stdout] test commands::eval::tests::eval_plan_resolves_configured_names_in_backend_and_compare ... ok [INFO] [stdout] test commands::eval::tests::eval_plan_selects_the_named_backend ... ok [INFO] [stdout] test backend::hybrid::tests::hybrid_backend_fuses_bm25_and_dense_rankings ... ok [INFO] [stdout] test commands::eval::tests::eval_plan_needs_embedder_only_for_dense_or_hybrid ... ok [INFO] [stdout] test commands::eval::tests::eval_plan_with_embedder_attaches_to_backend_and_compare_but_not_plain ... ok [INFO] [stdout] test commands::eval::tests::resolve_gives_a_built_in_kind_the_flags_and_a_configured_name_its_own_settings ... ok [INFO] [stdout] test backend::bm25::tests::bm25_backend_wraps_index_search_verbatim ... ok [INFO] [stdout] test backend::hybrid::tests::hybrid_embeds_the_query_with_the_prefix_the_file_was_built_with ... ok [INFO] [stdout] test commands::grade::tests::grade_replays_distinct_trail_queries_against_bm25_and_writes_graded_rows ... ok [INFO] [stdout] test commands::eval::tests::eval_backend_bm25_matches_the_plain_eval_path ... ok [INFO] [stdout] test commands::eval::tests::eval_compare_runs_every_backend_over_the_same_queries ... ok [INFO] [stdout] test commands::eval::tests::eval_reads_the_eval_block_and_priorities_of_a_pinakes_yaml ... ok [INFO] [stdout] test commands::eval::tests::eval_reads_defaults_from_the_config_or_the_options ... ok [INFO] [stdout] test commands::queries::tests::queries_accept_validates_against_the_manifest_and_refuses_unknown_ids ... ok [INFO] [stdout] test commands::queries::tests::queries_add_and_check_validate_against_the_manifest ... ok [INFO] [stdout] test commands::queries::tests::queries_import_appends_rows_from_graded_jsonl ... ok [INFO] [stdout] test commands::history::tests::history_reads_the_runs_next_to_the_config_and_writes_json ... ok [INFO] [stdout] test commands::grade::tests::grade_skips_a_query_the_model_cannot_answer_in_json_and_says_so ... ok [INFO] [stdout] test commands::eval::tests::eval_gates_and_measures_with_and_without ... ok [INFO] [stdout] test commands::report::tests::report_reads_eval_result_files ... ok [INFO] [stdout] test commands::report::tests::report_renders_the_history_of_a_run_directory ... ok [INFO] [stdout] test commands::grade::tests::grade_runs_through_bm25_tantivy ... ok [INFO] [stdout] test commands::grade::tests::grade_refuses_a_manifest_of_a_newer_artifact_contract_before_asking_anyone ... ok [INFO] [stdout] test config::tests::a_pinakes_config_carries_priorities_under_any_name ... ok [INFO] [stdout] test config::tests::backend_kind_round_trips_through_its_name ... ok [INFO] [stdout] test config::tests::backends_are_checked_when_the_config_is_parsed ... ok [INFO] [stdout] test config::tests::backends_parse_in_both_forms_and_round_trip ... ok [INFO] [stdout] test config::tests::gate_metric_names_parse_and_print ... ok [INFO] [stdout] test config::tests::kanon_yaml_parses_with_defaults ... ok [INFO] [stdout] test config::tests::pinakes_yaml_yields_its_eval_block_or_nothing ... ok [INFO] [stdout] test config::tests::priorities_come_from_pinakes_yaml_or_default ... ok [INFO] [stdout] test config::tests::rejects_unknown_keys_missing_queries_and_other_versions ... ok [INFO] [stdout] test contracts::tests::a_higher_version_is_rejected_with_one_line ... ok [INFO] [stdout] test contracts::tests::a_hit_carries_its_unit_id_when_given ... ok [INFO] [stdout] test contracts::tests::a_missing_version_means_one_and_a_present_one_is_kept ... ok [INFO] [stdout] test commands::grade::tests::grade_takes_candidates_from_an_external_backend_and_grades_an_unknown_id ... ok [INFO] [stdout] test commands::grade::tests::grade_with_external_and_no_url_is_a_config_error ... ok [INFO] [stdout] test commands::queries::tests::queries_suggest_refuses_a_manifest_of_a_newer_artifact_contract_before_the_model ... ok [INFO] [stdout] test contracts::tests::read_trail_reads_a_fully_populated_line_and_skips_blanks ... ok [INFO] [stdout] test contracts::tests::every_unit_id_pinakes_writes_splits_back_into_its_page_and_ordinal ... ok [INFO] [stdout] test contracts::tests::a_unit_id_splits_at_the_last_hash_into_its_page_and_ordinal ... ok [INFO] [stdout] test contracts::tests::read_trail_rejects_a_newer_version_before_parsing_the_line ... ok [INFO] [stdout] test contracts::tests::the_version_is_always_written ... ok [INFO] [stdout] test contracts::tests::read_trail_rejects_ids_that_are_not_source_path_shaped ... ok [INFO] [stdout] test cost::tests::a_budget_checks_each_limit_it_sets_and_a_missing_value_does_not_pass ... ok [INFO] [stdout] test contracts::tests::units_are_numbered_per_page_and_hashed ... ok [INFO] [stdout] test commands::queries::tests::queries_suggest_samples_pages_asks_the_model_and_writes_the_suggestions_file ... ok [INFO] [stdout] test cost::tests::a_failed_search_counts_nothing_and_no_search_is_no_cost ... ok [INFO] [stdout] test cost::tests::a_hit_is_counted_by_its_unit_id_else_by_its_page_and_heading ... ok [INFO] [stdout] test cost::tests::cost_round_trips_and_leaves_out_what_was_not_measured ... ok [INFO] [stdout] test contracts::tests::read_trail_tolerates_missing_optional_fields ... ok [INFO] [stdout] test cost::tests::tokens_are_the_index_tokens_lower_cased_words_without_stop_words_and_compounds_joined ... ok [INFO] [stdout] test contracts::tests::read_trail_reports_a_bad_line_by_number_and_a_missing_file_as_io ... ok [INFO] [stdout] test config::tests::load_reads_the_file ... ok [INFO] [stdout] test embed::tests::an_embeddings_file_written_before_prefixes_reads_as_none ... ok [INFO] [stdout] test cost::tests::a_heading_that_several_units_of_a_page_share_is_ambiguous_not_the_first_of_them ... ok [INFO] [stdout] test embed::tests::artifact_hash_falls_back_to_none ... ok [INFO] [stdout] test embed::tests::bin_size_mismatch_is_an_error ... ok [INFO] [stdout] test commands::tests::settings_take_priorities_from_the_named_file_before_the_sibling ... ok [INFO] [stdout] test embed::tests::fake_embedder_is_deterministic_and_batches ... ok [INFO] [stdout] test embed::tests::known_models_get_their_prefixes_and_every_other_model_none ... ok [INFO] [stdout] test embed::tests::missing_env_is_an_error_not_a_silent_skip ... ok [INFO] [stdout] test eval::tests::a_result_row_written_before_top_units_still_reads ... ok [INFO] [stdout] test eval::tests::a_unit_id_is_recorded_beside_its_page_and_never_changes_the_score ... ok [INFO] [stdout] test eval::tests::binary_fallback_equals_relevance_one_per_expected_entry ... ok [INFO] [stdout] test eval::tests::expected_matches_both_id_forms ... ok [INFO] [stdout] test eval::tests::ndcg_by_hand_on_a_graded_row ... ok [INFO] [stdout] test eval::tests::negative_rows_have_their_own_block_and_leave_the_metrics_alone ... ok [INFO] [stdout] test cost::tests::percentiles_are_nearest_rank ... ok [INFO] [stdout] test eval::tests::scoring_uses_rank_and_k ... ok [INFO] [stdout] test cost::tests::the_meter_times_each_search_and_sums_the_tokens_of_the_top_5_and_top_10 ... ok [INFO] [stdout] test embed::tests::embeddings_file_round_trips ... ok [INFO] [stdout] test commands::report::tests::report_svg_writes_the_charts_the_inputs_allow_and_links_them ... ok [INFO] [stdout] test eval::tests::queries_load_with_defaults_and_report_bad_lines ... ok [INFO] [stdout] test grade::tests::a_hit_outside_the_artifact_is_kept_with_its_id_as_title_and_no_excerpt ... ok [INFO] [stdout] test eval::tests::result_json_round_trips ... ok [INFO] [stdout] test grade::tests::candidates_carry_the_page_title_and_excerpt_in_hit_order ... ok [INFO] [stdout] test grade::tests::distinct_queries_preserves_first_occurrence_order ... ok [INFO] [stdout] test grade::tests::grade_query_asks_the_model_and_drops_unknown_ids ... ok [INFO] [stdout] test grade::tests::grade_query_reads_a_fenced_reply_and_retries_a_reply_with_no_json ... ok [INFO] [stdout] test grade::tests::grade_query_clamps_an_out_of_range_grade ... ok [INFO] [stdout] test grade::tests::grade_query_with_no_candidates_never_calls_the_model ... ok [INFO] [stdout] test grade::tests::to_jsonl_round_trips ... ok [INFO] [stdout] test history::tests::labels_keep_only_safe_characters ... ok [INFO] [stdout] test eval::tests::metrics_on_a_synthetic_artifact_separate_holdout_rows ... ok [INFO] [stdout] test history::tests::history_rows_with_and_without_the_run_object ... ok [INFO] [stdout] test history::tests::run_files_round_trip_and_still_read_as_eval_results ... ok [INFO] [stdout] test llm::tests::a_reply_that_is_still_not_json_after_the_retry_is_the_second_replys_error ... ok [INFO] [stdout] test llm::tests::a_reply_with_no_json_is_asked_for_once_more_with_a_stricter_instruction ... ok [INFO] [stdout] test llm::tests::a_retry_that_answers_in_a_wrapper_is_read_too ... ok [INFO] [stdout] test llm::tests::a_retry_that_fails_for_another_reason_reports_the_first_reply ... ok [INFO] [stdout] test llm::tests::a_wrapped_reply_is_read_without_asking_again ... ok [INFO] [stdout] test llm::tests::an_endpoint_error_is_not_retried ... ok [INFO] [stdout] test llm::tests::an_http_error_is_not_retried_either ... ok [INFO] [stdout] test llm::tests::extract_json_does_not_search_a_reply_past_the_scan_limit ... ok [INFO] [stdout] test llm::tests::extract_json_does_not_take_a_blank_or_echoed_value_for_the_answer ... ok [INFO] [stdout] test llm::tests::extract_json_gives_none_for_replies_with_no_value_of_the_type ... ok [INFO] [stdout] test llm::tests::extract_json_reads_the_bare_fenced_and_wrapped_forms_a_small_model_answers_in ... ok [INFO] [stdout] test history::tests::the_artifact_version_is_recorded_and_a_run_without_one_still_reads ... ok [INFO] [stdout] test queries::suggest::tests::kind_is_one_of_the_prompt_vocabulary_or_empty ... ok [INFO] [stdout] test llm::tests::missing_url_is_an_error_not_a_silent_skip ... ok [INFO] [stdout] test llm::tests::model_override_wins_and_pinakes_names_are_a_fallback ... ok [INFO] [stdout] test history::tests::sequence_starts_at_one_and_follows_the_highest_existing_number ... ok [INFO] [stdout] test queries::suggest::tests::quotes_title_is_case_insensitive_and_token_bounded ... ok [INFO] [stdout] test queries::suggest::tests::sample_respects_the_per_source_cap_and_skips_mirrors ... ok [INFO] [stdout] test queries::suggest::tests::sample_is_deterministic_and_covers_every_source ... ok [INFO] [stdout] test queries::suggest::tests::stratum_is_the_section_else_the_first_path_segment ... ok [INFO] [stdout] test queries::suggest::tests::suggest_keeps_good_queries_and_rejects_title_quotes_empties_and_repeats ... ok [INFO] [stdout] test queries::suggest::tests::suggest_skips_a_page_whose_reply_is_not_json_and_fails_only_when_every_page_did ... ok [INFO] [stdout] test queries::suggest::tests::suggest_reads_a_fenced_or_wrapped_reply_and_recovers_on_the_stricter_retry ... ok [INFO] [stdout] test queries::suggest::tests::suggestions_round_trip_in_declared_key_order ... ok [INFO] [stdout] test queries::tests::check_rejects_empty_expected_lists_except_on_negative_rows ... ok [INFO] [stdout] test queries::tests::add_appends_a_normalised_row ... ok [INFO] [stdout] test queries::tests::import_appends_and_is_readable_as_ordinary_queries ... ok [INFO] [stdout] test queries::tests::import_id_is_stable_and_url_safe ... ok [INFO] [stdout] test queries::tests::import_keeps_ids_at_or_above_the_threshold_per_query ... ok [INFO] [stdout] test queries::tests::normalises_the_legacy_form_to_an_exact_or_prefix_id ... ok [INFO] [stdout] test report::tests::full_report_matches_snapshot ... ok [INFO] [stdout] test report::tests::report_links_the_charts_under_their_sections ... ok [INFO] [stdout] test report::tests::report_shows_the_cost_when_either_side_has_one ... ok [INFO] [stdout] test queries::tests::check_reports_unknown_ids_duplicates_and_the_holdout_share ... ok [INFO] [stdout] test queries::tests::check_validates_graded_keys_and_grades ... ok [INFO] [stdout] test report::tests::report_with_a_history_section ... ok [INFO] [stdout] test queries::tests::import_holdout_share_is_approximated_by_the_seeded_rng ... ok [INFO] [stdout] test rng::tests::the_same_seed_gives_the_same_sequence ... ok [INFO] [stdout] test report::tests::report_without_results_says_so ... ok [INFO] [stdout] test svg::tests::builder_escapes_and_titles ... ok [INFO] [stdout] test svg::tests::rank_movement_collapses_unchanged_rows_past_forty ... ok [INFO] [stdout] test report::tests::report_with_only_the_after_side ... ok [INFO] [stdout] test svg::tests::rank_movement_leaves_negative_queries_out ... ok [INFO] [stdout] test rng::tests::shuffle_is_a_permutation_and_deterministic ... ok [INFO] [stdout] test svg::tests::recall_over_runs_breaks_the_held_out_line_where_a_run_has_none ... ok [INFO] [stdout] test svg::tests::recall_over_runs_matches_snapshot ... ok [INFO] [stdout] test workspace::tests::defaults_sit_next_to_the_config ... ok [INFO] [stdout] test svg::tests::rank_movement_matches_snapshot ... ok [INFO] [stdout] test svg::tests::recall_per_kind_matches_snapshot ... ok [INFO] [stdout] test svg::tests::write_charts_writes_what_the_inputs_allow ... ok [INFO] [stdout] test history::tests::a_plain_tempdir_is_not_a_repository ... ok [INFO] [stdout] test eval::tests::gate_compares_the_named_tuning_metric ... ok [INFO] [stdout] test eval::tests::with_and_without_change_the_delta ... ok [INFO] [stdout] test history::tests::label_falls_back_to_the_git_short_sha_then_to_run ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 179 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/build/kanon/ad855b7f2e8e3521/out/kanon-ad855b7f2e8e3521) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running tests/artifact_version_cli.rs (/opt/rustwide/target/release/build/kanon/5a703494a3d827b5/out/artifact_version_cli-5a703494a3d827b5) [INFO] [stdout] running 4 tests [INFO] [stdout] test embed_refuses_a_manifest_of_a_newer_contract_before_embedding ... ok [INFO] [stdout] test a_manifest_of_a_newer_contract_stops_every_eval_before_it_measures ... ok [INFO] [stdout] test a_source_of_a_newer_contract_stops_eval_through_the_artifact_reader ... ok [INFO] [stdout] test a_run_records_the_artifact_version_of_the_manifest_it_measured ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] Running tests/backend_dense_hybrid_golden.rs (/opt/rustwide/target/release/build/kanon/9b8758ae2cc08f6d/out/backend_dense_hybrid_golden-9b8758ae2cc08f6d) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test dense_and_hybrid_metrics_on_the_golden_corpus_are_pinned ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running tests/backend_external_cli.rs (/opt/rustwide/target/release/build/kanon/27906e5f49a461bb/out/backend_external_cli-27906e5f49a461bb) [INFO] [stdout] running 3 tests [INFO] [stdout] test a_unit_id_of_another_page_fails_the_eval_naming_the_id ... ok [INFO] [stdout] test a_hit_the_corpus_does_not_have_is_reported_as_not_counted_in_the_cost ... ok [INFO] [stdout] test external_backend_runs_through_the_cli ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Running tests/backend_tantivy_golden.rs (/opt/rustwide/target/release/build/kanon/9afc0c9a7f621b91/out/backend_tantivy_golden-9afc0c9a7f621b91) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test tantivy_backend_metrics_on_the_golden_corpus_are_pinned ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/contracts.rs (/opt/rustwide/target/release/build/kanon/3178937425e329b7/out/contracts-3178937425e329b7) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test the_example_trail_reads_and_names_golden_pages ... ok [INFO] [stdout] test the_example_search_response_parses_with_and_without_unit_ids ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/cost_cli.rs (/opt/rustwide/target/release/build/kanon/a6e6cec61d491a36/out/cost_cli-a6e6cec61d491a36) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test a_cost_limit_in_the_config_must_be_a_finite_number_zero_or_more ... ok [INFO] [stdout] test a_run_reports_its_latency_and_the_tokens_it_returned ... ok [INFO] [stdout] test a_run_file_and_the_history_carry_the_cost ... ok [INFO] [stdout] test a_limit_that_is_not_a_finite_number_is_refused ... ok [INFO] [stdout] test a_hit_on_a_heading_two_units_share_is_not_charged_for_the_wrong_one ... ok [INFO] [stdout] test every_built_in_backend_counts_the_units_it_returns ... ok [INFO] [stdout] test a_baseline_written_before_cost_existed_still_gates ... ok [INFO] [stdout] test the_config_sets_the_budget_and_a_flag_overrides_it ... ok [INFO] [stdout] test the_budget_is_checked_for_each_backend_of_a_comparison ... ok [INFO] [stderr] Running tests/embed_cli.rs (/opt/rustwide/target/release/build/kanon/ab990792498823ed/out/embed_cli-ab990792498823ed) [INFO] [stdout] test a_budget_passes_or_fails_the_run_with_exit_code_2 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test embed_gives_a_known_model_its_prefixes_and_records_them ... ok [INFO] [stdout] test embed_writes_the_embeddings_file_pair ... ok [INFO] [stdout] test the_config_file_sets_the_prefixes_and_a_flag_beats_it ... ok [INFO] [stdout] test eval_embeds_each_query_with_the_prefix_embed_recorded_for_dense_and_hybrid ... ok [INFO] [stdout] test embed_flags_set_or_switch_off_the_prefixes ... ok [INFO] [stderr] Running tests/eval_cli.rs (/opt/rustwide/target/release/build/kanon/6cbf1c44e755e837/out/eval_cli-6cbf1c44e755e837) [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test eval_backend_dense_without_embed_url_errors ... ok [INFO] [stdout] test eval_config_relative_embeddings_path_resolves_against_config_dir ... ok [INFO] [stdout] test eval_allow_stale_alone_goes_through_the_backend_path ... ok [INFO] [stdout] test eval_config_compare_is_ignored_when_backend_flag_given ... ok [INFO] [stdout] test eval_backend_bm25_explicit_flag_tags_the_output ... ok [INFO] [stdout] test eval_plain_has_no_backend_key_or_bracket_tag ... ok [INFO] [stdout] test eval_takes_the_backend_from_the_config ... ok [INFO] [stdout] test eval_reports_ndcg_columns_and_the_negative_share ... ok [INFO] [stdout] test eval_gates_on_the_named_metric ... ok [INFO] [stdout] test eval_takes_the_comparison_from_the_config ... ok [INFO] [stdout] test eval_gate_warns_when_the_baseline_lacks_the_metric ... ok [INFO] [stdout] test eval_backend_bm25_gate_passes_and_fails ... ok [INFO] [stderr] Running tests/eval_compare_cli.rs (/opt/rustwide/target/release/build/kanon/7eedd5bb37e2524c/out/eval_compare_cli-7eedd5bb37e2524c) [INFO] [stdout] test eval_writes_json_and_exits_2_when_the_gate_fails ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test compare_gate_failure_exits_2 ... ok [INFO] [stdout] test compare_prints_one_table_per_backend_and_one_combined_json ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s [INFO] [stdout] [INFO] [stderr] Running tests/golden.rs (/opt/rustwide/target/release/build/kanon/c389531f0dcbdac5/out/golden-c389531f0dcbdac5) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test golden_corpus_metrics_are_pinned ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Running tests/grade.rs (/opt/rustwide/target/release/build/kanon/1b4663a513c23c79/out/grade-1b4663a513c23c79) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test grade_replays_distinct_queries_and_writes_query_id_grade_model_at ... ok [INFO] [stderr] Running tests/history_cli.rs (/opt/rustwide/target/release/build/kanon/3007bda13e73a053/out/history_cli-3007bda13e73a053) [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test eval_out_numbers_run_files_and_history_lists_them ... ok [INFO] [stdout] test eval_compare_out_writes_one_run_file_per_backend ... ok [INFO] [stdout] test history_json_report_runs_and_odd_files ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s [INFO] [stdout] [INFO] [stderr] Running tests/named_backends_cli.rs (/opt/rustwide/target/release/build/kanon/32f221c5321e6092/out/named_backends_cli-32f221c5321e6092) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test compare_two_named_external_backends_keys_tables_and_json_by_name ... ok [INFO] [stdout] test grade_takes_a_named_backend ... ok [INFO] [stdout] test a_named_backend_works_alone_and_a_bad_name_or_config_is_exit_1 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/queries_cli.rs (/opt/rustwide/target/release/build/kanon/67b50ba1e3cfff12/out/queries_cli-67b50ba1e3cfff12) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test suggest_explains_the_missing_endpoint_and_exits_1 ... ok [INFO] [stdout] test add_normalises_expected_ids_and_rejects_unknown_ones ... ok [INFO] [stdout] test check_accepts_an_empty_expected_list_only_on_negative_rows_and_validates_grades ... ok [INFO] [stdout] test add_kind_negative_needs_no_expected_and_refuses_one ... ok [INFO] [stdout] test check_exits_4_on_an_unmet_holdout_share_and_0_once_it_is_met ... ok [INFO] [stdout] test add_from_accepts_suggestions_and_keeps_their_origin ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stderr] Running tests/report_svg_cli.rs (/opt/rustwide/target/release/build/kanon/138a24bba640b06b/out/report_svg_cli-138a24bba640b06b) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stderr] Running tests/schemas.rs (/opt/rustwide/target/release/build/kanon/2aaae934aba3b0e6/out/schemas-2aaae934aba3b0e6) [INFO] [stdout] test report_svg_writes_the_charts_and_links_them ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test every_schema_declares_a_defaulted_version ... ok [INFO] [stdout] test committed_schemas_match_the_contract_types ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests kanon [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b", kill_on_drop: false }` [INFO] [stdout] 047bca2299b08497a3520dda96be3f92f2a6de5846d07e4c7cf769ae243b1e0b