[INFO] cloning repository https://github.com/jrollin/typer-cli [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jrollin/typer-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjrollin%2Ftyper-cli", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjrollin%2Ftyper-cli'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c41dc026829f8581f69e8c5172bad9b377461057 [INFO] testing jrollin/typer-cli against master#7704328ba5ae8d6ce0ac303c9d5a1a1605906766 for pr-146989 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjrollin%2Ftyper-cli" "/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/jrollin/typer-cli [INFO] finished tweaking git repo https://github.com/jrollin/typer-cli [INFO] tweaked toml for git repo https://github.com/jrollin/typer-cli written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jrollin/typer-cli on toolchain 7704328ba5ae8d6ce0ac303c9d5a1a1605906766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/jrollin/typer-cli 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" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cc v1.2.47 [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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4ef681df4087a5bad0c239edb7c28fd36d80a7c9a1407144de2130bfea7c8437 [INFO] running `Command { std: "docker" "start" "-a" "4ef681df4087a5bad0c239edb7c28fd36d80a7c9a1407144de2130bfea7c8437", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4ef681df4087a5bad0c239edb7c28fd36d80a7c9a1407144de2130bfea7c8437", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4ef681df4087a5bad0c239edb7c28fd36d80a7c9a1407144de2130bfea7c8437", kill_on_drop: false }` [INFO] [stdout] 4ef681df4087a5bad0c239edb7c28fd36d80a7c9a1407144de2130bfea7c8437 [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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3d0e7cc084b94cc47667bec7d3e893d305a98b9b9b1d2c14abc3d5dbcfd0142b [INFO] running `Command { std: "docker" "start" "-a" "3d0e7cc084b94cc47667bec7d3e893d305a98b9b9b1d2c14abc3d5dbcfd0142b", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.31 [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Compiling signal-hook-registry v1.4.7 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling clap_builder v4.5.53 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling clap v4.5.53 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling instability v0.3.9 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling typer-cli v0.9.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.87s [INFO] running `Command { std: "docker" "inspect" "3d0e7cc084b94cc47667bec7d3e893d305a98b9b9b1d2c14abc3d5dbcfd0142b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3d0e7cc084b94cc47667bec7d3e893d305a98b9b9b1d2c14abc3d5dbcfd0142b", kill_on_drop: false }` [INFO] [stdout] 3d0e7cc084b94cc47667bec7d3e893d305a98b9b9b1d2c14abc3d5dbcfd0142b [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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2df4ff8e834d04741e55bb3f27e0a8a13b4a8de9ec558b130c9a9581ebe3c0d7 [INFO] running `Command { std: "docker" "start" "-a" "2df4ff8e834d04741e55bb3f27e0a8a13b4a8de9ec558b130c9a9581ebe3c0d7", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling typer-cli v0.9.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 5.70s [INFO] running `Command { std: "docker" "inspect" "2df4ff8e834d04741e55bb3f27e0a8a13b4a8de9ec558b130c9a9581ebe3c0d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2df4ff8e834d04741e55bb3f27e0a8a13b4a8de9ec558b130c9a9581ebe3c0d7", kill_on_drop: false }` [INFO] [stdout] 2df4ff8e834d04741e55bb3f27e0a8a13b4a8de9ec558b130c9a9581ebe3c0d7 [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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 72d7c6f21e3e32b559b27beb824814ffcded415936aeb9c2f39eb4bf1fe2f171 [INFO] running `Command { std: "docker" "start" "-a" "72d7c6f21e3e32b559b27beb824814ffcded415936aeb9c2f39eb4bf1fe2f171", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/typer_cli-2d83559f72c64726) [INFO] [stdout] [INFO] [stdout] running 145 tests [INFO] [stdout] test content::adaptive_generator::tests::test_get_keys_by_mastery_beginner ... ok [INFO] [stdout] test content::adaptive_generator::tests::test_generate_content ... ok [INFO] [stdout] test content::adaptive_generator::tests::test_get_keys_by_mastery_learning ... ok [INFO] [stdout] test content::adaptive_generator::tests::test_get_keys_by_mastery_mastered ... ok [INFO] [stdout] test content::bigram::tests::test_all_bigrams_have_examples ... ok [INFO] [stdout] test content::bigram::tests::test_english_bigrams_frequency_order ... ok [INFO] [stdout] test content::bigram::tests::test_code_bigrams_frequency_order ... ok [INFO] [stdout] test content::bigram_generator::tests::test_code_bigrams ... ok [INFO] [stdout] test content::bigram::tests::test_bigram_structure ... ok [INFO] [stdout] test content::bigram_generator::tests::test_english_bigrams ... ok [INFO] [stdout] test content::bigram_generator::tests::test_level_progression ... ok [INFO] [stdout] test content::bigram_generator::tests::test_drill_mode_generation ... ok [INFO] [stdout] test content::bigram_generator::tests::test_mixed_mode_generation ... ok [INFO] [stdout] test content::code_generator::tests::test_all_levels_generate_content ... ok [INFO] [stdout] test content::bigram_generator::tests::test_random_newlines_in_generation ... ok [INFO] [stdout] test content::bigram::tests::test_french_bigrams_frequency_order ... ok [INFO] [stdout] test content::bigram_generator::tests::test_word_mode_generation ... ok [INFO] [stdout] test content::code_generator::tests::test_deterministic_generation ... ok [INFO] [stdout] test content::code_generator::tests::test_language_specific_content ... ok [INFO] [stdout] test content::code_generator::tests::test_progressive_difficulty ... ok [INFO] [stdout] test content::code_generator::tests::test_rust_generation ... ok [INFO] [stdout] test content::adaptive_generator::tests::test_multiple_generations_vary ... ok [INFO] [stdout] test content::code_generator::tests::test_python_generation ... ok [INFO] [stdout] test content::code_symbols::tests::test_rust_snippets_count ... ok [INFO] [stdout] test content::code_symbols::tests::test_snippets_not_empty ... ok [INFO] [stdout] test content::code_symbols::tests::test_difficulty_progression ... ok [INFO] [stdout] test content::adaptive_generator::tests::test_fallback_balanced_practice ... ok [INFO] [stdout] test content::code_symbols::tests::test_python_snippets_count ... ok [INFO] [stdout] test content::common_word::tests::test_frequency_order_english ... ok [INFO] [stdout] test content::common_word::tests::test_frequency_order_french ... ok [INFO] [stdout] test content::code_symbols::tests::test_typescript_snippets_count ... ok [INFO] [stdout] test content::adaptive_generator::tests::test_generate_contains_weak_keys ... ok [INFO] [stdout] test content::common_word::tests::test_frequency_range ... ok [INFO] [stdout] test content::common_word_generator::tests::test_content_length_constraint ... ok [INFO] [stdout] test content::common_word::tests::test_word_structure ... ok [INFO] [stdout] test content::common_word_generator::tests::test_level_word_selection ... ok [INFO] [stdout] test content::common_word_generator::tests::test_empty_on_invalid_level ... ok [INFO] [stdout] test content::common_word_generator::tests::test_sentence_mode_frequency_bias ... ok [INFO] [stdout] test content::common_word::tests::test_word_count ... ok [INFO] [stdout] test content::common_word::tests::test_word_length_stored ... ok [INFO] [stdout] test content::common_word_generator::tests::test_sentence_mode_has_variety ... ok [INFO] [stdout] test content::common_word_generator::tests::test_drill_mode_uses_top_words ... ok [INFO] [stdout] test content::common_word_generator::tests::test_drill_mode_has_repetition ... ok [INFO] [stdout] test content::custom::tests::test_parse_front_matter_missing ... ok [INFO] [stdout] test content::custom::tests::test_parse_front_matter_title_only ... ok [INFO] [stdout] test content::custom::tests::test_parse_markdown_empty_content ... ok [INFO] [stdout] test content::custom::tests::test_parse_front_matter_full ... ok [INFO] [stdout] test content::custom::tests::test_parse_yaml_line_valid ... ok [INFO] [stdout] test content::custom::tests::test_parse_markdown_preserves_formatting ... ok [INFO] [stdout] test content::custom::tests::test_parse_yaml_line_with_colon_in_value ... ok [INFO] [stdout] test content::finger_generator::tests::test_all_finger_pairs_level_1 ... ok [INFO] [stdout] test content::custom::tests::test_parse_yaml_line_invalid ... ok [INFO] [stdout] test content::custom::tests::test_deduplicate_titles_none ... ok [INFO] [stdout] test content::custom::tests::test_deduplicate_titles_three ... ok [INFO] [stdout] test content::custom::tests::test_deduplicate_titles_two ... ok [INFO] [stdout] test content::finger_generator::tests::test_generate_base_drills ... ok [INFO] [stdout] test content::finger_generator::tests::test_generate_shift_drills ... ok [INFO] [stdout] test content::finger_generator::tests::test_middle_all_keys_with_shift ... ok [INFO] [stdout] test content::finger_generator::tests::test_middle_extended_no_shift ... ok [INFO] [stdout] test content::finger_generator::tests::test_no_placeholder_keys ... ok [INFO] [stdout] test content::generator::tests::test_get_keys_for_row_level_progression ... ok [INFO] [stdout] test content::bigram::tests::test_examples_contain_bigrams ... ok [INFO] [stdout] test content::code_generator::tests::test_typescript_generation ... ok [INFO] [stdout] test content::finger_generator::tests::test_content_generation_all_lessons ... ok [INFO] [stdout] test content::generator::tests::test_get_keys_for_row_level_with_shift ... ok [INFO] [stdout] test content::lesson::tests::test_row_progression_lesson_types ... ok [INFO] [stdout] test content::lesson::tests::test_row_progression_lessons_count ... ok [INFO] [stdout] test content::lesson::tests::test_row_progression_titles ... ok [INFO] [stdout] test content::finger_generator::tests::test_middle_all_keys_no_shift ... ok [INFO] [stdout] test content::finger_generator::tests::test_level_progression ... ok [INFO] [stdout] test content::lesson::tests::test_shifted_char_mapping ... ok [INFO] [stdout] test content::finger_generator::tests::test_middle_home_row_no_shift ... ok [INFO] [stdout] test content::trigram::tests::test_examples_contain_trigrams ... ok [INFO] [stdout] test content::trigram::tests::test_french_trigrams_frequency_order ... ok [INFO] [stdout] test content::trigram::tests::test_trigram_structure ... ok [INFO] [stdout] test content::trigram::tests::test_all_trigrams_have_examples ... ok [INFO] [stdout] test content::trigram_generator::tests::test_drill_mode_generation ... ok [INFO] [stdout] test content::trigram::tests::test_english_trigrams_frequency_order ... ok [INFO] [stdout] test content::trigram_generator::tests::test_english_trigrams ... ok [INFO] [stdout] test content::trigram_generator::tests::test_level_progression ... ok [INFO] [stdout] test content::trigram_generator::tests::test_level_selection ... ok [INFO] [stdout] test content::trigram_generator::tests::test_random_newlines_in_generation ... ok [INFO] [stdout] test content::trigram_generator::tests::test_mixed_mode_generation ... ok [INFO] [stdout] test data::stats::tests::test_stats_add_session ... ok [INFO] [stdout] test content::trigram_generator::tests::test_word_mode_generation ... ok [INFO] [stdout] test data::stats::tests::test_session_record_serialization ... ok [INFO] [stdout] test data::stats::tests::test_stats_new ... ok [INFO] [stdout] test data::storage::tests::test_load_empty_stats ... ok [INFO] [stdout] test data::storage::tests::test_storage_new ... ok [INFO] [stdout] test data::storage::tests::test_save_and_load ... ok [INFO] [stdout] test data::stats::tests::test_stats_averages ... ok [INFO] [stdout] test engine::adaptive::tests::test_identify_slow_keys ... ok [INFO] [stdout] test engine::adaptive::tests::test_identify_weak_bigrams ... ok [INFO] [stdout] test engine::adaptive::tests::test_identify_weak_keys ... ok [INFO] [stdout] test engine::adaptive::tests::test_identify_weak_keys_minimum_attempts ... ok [INFO] [stdout] test engine::analytics::tests::test_bigram_stats_accuracy ... ok [INFO] [stdout] test engine::analytics::tests::test_key_stats_accuracy ... ok [INFO] [stdout] test engine::analytics::tests::test_key_stats_average_time ... ok [INFO] [stdout] test engine::analytics::tests::test_key_stats_error_rate ... ok [INFO] [stdout] test engine::analytics::tests::test_mastery_level_beginner ... ok [INFO] [stdout] test engine::analytics::tests::test_mastery_level_learning ... ok [INFO] [stdout] test engine::analytics::tests::test_mastery_level_mastered ... ok [INFO] [stdout] test engine::analytics::tests::test_mastery_level_proficient ... ok [INFO] [stdout] test engine::analytics::tests::test_practice_weights ... ok [INFO] [stdout] test engine::analytics::tests::test_session_analyzer_basic ... ok [INFO] [stdout] test engine::scoring::tests::test_calculate_accuracy_half ... ok [INFO] [stdout] test engine::scoring::tests::test_calculate_accuracy_perfect ... ok [INFO] [stdout] test engine::scoring::tests::test_calculate_accuracy_zero_total ... ok [INFO] [stdout] test engine::scoring::tests::test_calculate_wpm_one_minute ... ok [INFO] [stdout] test engine::scoring::tests::test_calculate_wpm_thirty_seconds ... ok [INFO] [stdout] test engine::scoring::tests::test_calculate_wpm_zero_duration ... ok [INFO] [stdout] test engine::types::tests::test_char_input_correct ... ok [INFO] [stdout] test engine::types::tests::test_char_input_enter_incorrect ... ok [INFO] [stdout] test engine::types::tests::test_typing_session_add_input ... ok [INFO] [stdout] test engine::types::tests::test_typing_session_backspace ... ok [INFO] [stdout] test engine::types::tests::test_typing_session_backspace_after_completion ... ok [INFO] [stdout] test engine::types::tests::test_typing_session_complete ... ok [INFO] [stdout] test engine::types::tests::test_typing_session_new ... ok [INFO] [stdout] test engine::types::tests::test_typing_session_start ... ok [INFO] [stdout] test engine::types::tests::test_typing_session_backspace_at_start ... ok [INFO] [stdout] test keyboard::azerty::tests::test_all_rows_populated ... ok [INFO] [stdout] test keyboard::azerty::tests::test_altgr_character_highlighting ... ok [INFO] [stdout] test keyboard::azerty::tests::test_find_key ... ok [INFO] [stdout] test keyboard::azerty::tests::test_altgr_mapping_number_row ... ok [INFO] [stdout] test keyboard::azerty::tests::test_azerty_home_row ... ok [INFO] [stdout] test keyboard::azerty::tests::test_finger_hand_detection ... ok [INFO] [stdout] test keyboard::azerty::tests::test_get_base_key_with_altgr ... ok [INFO] [stdout] test keyboard::azerty::tests::test_get_base_key ... ok [INFO] [stdout] test keyboard::azerty::tests::test_is_home_row_key ... ok [INFO] [stdout] test engine::types::tests::test_char_input_incorrect ... ok [INFO] [stdout] test keyboard::azerty::tests::test_number_highlighting ... ok [INFO] [stdout] test engine::types::tests::test_char_input_enter_key ... ok [INFO] [stdout] test keyboard::azerty::tests::test_other_rows_no_altgr ... ok [INFO] [stdout] test keyboard::azerty::tests::test_number_row_count ... ok [INFO] [stdout] test keyboard::azerty::tests::test_number_row_has_altgr_variants ... ok [INFO] [stdout] test keyboard::azerty::tests::test_number_row_has_13_keys ... ok [INFO] [stdout] test keyboard::azerty::tests::test_number_row_has_superscript_key ... ok [INFO] [stdout] test keyboard::azerty::tests::test_requires_altgr ... ok [INFO] [stdout] test keyboard::azerty::tests::test_requires_shift ... ok [INFO] [stdout] test keyboard::azerty::tests::test_shift_character_highlighting ... ok [INFO] [stdout] test keyboard::azerty::tests::test_shift_mapping_letters ... ok [INFO] [stdout] test keyboard::azerty::tests::test_shift_mapping_numbers ... ok [INFO] [stdout] test keyboard::azerty::tests::test_shift_mapping_special_chars ... ok [INFO] [stdout] test content::generator::tests::test_row_progression_content_generation ... ok [INFO] [stdout] test engine::scoring::tests::test_calculate_results ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 145 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "72d7c6f21e3e32b559b27beb824814ffcded415936aeb9c2f39eb4bf1fe2f171", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "72d7c6f21e3e32b559b27beb824814ffcded415936aeb9c2f39eb4bf1fe2f171", kill_on_drop: false }` [INFO] [stdout] 72d7c6f21e3e32b559b27beb824814ffcded415936aeb9c2f39eb4bf1fe2f171