[INFO] cloning repository https://github.com/finrod-chen/rust-zuyin [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/finrod-chen/rust-zuyin" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffinrod-chen%2Frust-zuyin", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffinrod-chen%2Frust-zuyin'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ab7ada191599c8a8e0850d4847da3a8051322339 [INFO] testing finrod-chen/rust-zuyin against 1.99.0-beta.8 for beta-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffinrod-chen%2Frust-zuyin" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/finrod-chen/rust-zuyin [INFO] finished tweaking git repo https://github.com/finrod-chen/rust-zuyin [INFO] tweaked toml for git repo https://github.com/finrod-chen/rust-zuyin written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/finrod-chen/rust-zuyin on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/finrod-chen/rust-zuyin 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a [INFO] running `Command { std: "docker" "start" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a", 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" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a", 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" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.107 [INFO] [stderr] Compiling quote v1.0.47 [INFO] [stderr] Compiling memchr v2.8.3 [INFO] [stderr] Compiling zuyin-core v0.1.0 (/opt/rustwide/workdir/core) [INFO] [stderr] Compiling serde_json v1.0.151 [INFO] [stderr] Compiling syn v3.0.5 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling serde v1.0.229 [INFO] [stderr] Compiling zuyin-backend v0.1.0 (/opt/rustwide/workdir/backend) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.01s [INFO] running `Command { std: "docker" "inspect" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a", 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" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling zuyin-core v0.1.0 (/opt/rustwide/workdir/core) [INFO] [stderr] Compiling zuyin-backend v0.1.0 (/opt/rustwide/workdir/backend) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.37s [INFO] running `Command { std: "docker" "inspect" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a", 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" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/zuyin_backend-33d3a80681cd3e31) [INFO] [stdout] [INFO] [stdout] running 52 tests [INFO] [stdout] test protocol::tests::parses_line_framing ... ok [INFO] [stdout] test protocol::tests::parses_key_event_fields ... ok [INFO] [stdout] test protocol::tests::parses_on_command ... ok [INFO] [stdout] test protocol::tests::parses_on_menu ... ok [INFO] [stdout] test protocol::tests::parses_on_preserved_key_and_lowercases_guid ... ok [INFO] [stdout] test protocol::tests::malformed_json_is_a_parse_error ... ok [INFO] [stdout] test protocol::tests::parses_init_request ... ok [INFO] [stdout] test protocol::tests::shift_held_is_detected_from_key_states ... ok [INFO] [stdout] test protocol::tests::on_command_without_id_is_unsupported ... ok [INFO] [stdout] test protocol::tests::parses_on_activate_keyboard_open_flag ... ok [INFO] [stdout] test protocol::tests::reply_omits_unset_optional_fields ... ok [INFO] [stdout] test protocol::tests::unknown_method_is_unsupported_not_an_error ... ok [INFO] [stdout] test protocol::tests::wire_field_names_for_fields_that_are_not_plain_camel_case ... ok [INFO] [stdout] test session::tests::backspace_and_escape_are_noop_pass_through_when_buffer_empty ... ok [INFO] [stdout] test session::tests::candidate_ui_uses_number_key_selection ... ok [INFO] [stdout] test session::tests::chinese_english_button_toggles_keyboard_open ... ok [INFO] [stdout] test protocol::tests::parses_on_keyboard_status_changed ... ok [INFO] [stdout] test session::tests::ctrl_held_keys_pass_through ... ok [INFO] [stdout] test session::tests::clear_memory_command_shows_message_but_changes_no_button ... ok [INFO] [stdout] test session::tests::digit_selects_candidate_only_while_candidate_window_is_open ... ok [INFO] [stdout] test session::tests::filter_and_on_key_down_agree_on_zhuyin_keys ... ok [INFO] [stdout] test session::tests::clear_memory_command_resets_learned_ranking ... ok [INFO] [stdout] test session::tests::full_composition_then_space_commits_top_candidate ... ok [INFO] [stdout] test session::tests::fullwidth_button_converts_unmapped_symbol_when_buffer_is_empty ... ok [INFO] [stdout] test session::tests::fullwidth_space_only_applies_when_composition_buffer_is_empty ... ok [INFO] [stdout] test session::tests::keyboard_status_changed_message_reflects_chinese_mode ... ok [INFO] [stdout] test session::tests::settings_button_menu_reflects_fullwidth_state ... ok [INFO] [stdout] test session::tests::shift_held_letter_bypasses_zhuyin_and_can_be_fullwidth ... ok [INFO] [stdout] test session::tests::inactive_session_passes_every_key_through ... ok [INFO] [stdout] test session::tests::shift_held_letter_without_fullwidth_passes_through_unconverted ... ok [INFO] [stdout] test session::tests::keyboard_closed_passes_every_key_through_and_clears_pending_composition ... ok [INFO] [stdout] test session::tests::non_settings_button_has_no_menu ... ok [INFO] [stdout] test session::tests::shift_space_preserved_key_toggles_fullwidth ... ok [INFO] [stdout] test tests::default_user_phrases_path_uses_appdata_when_set ... ok [INFO] [stdout] test session::tests::tone_key_still_composes_even_though_toneless_matching_already_opened_the_candidate_window ... ok [INFO] [stdout] test session::tests::unknown_command_id_is_ignored ... ok [INFO] [stdout] test tests::default_user_phrases_path_falls_back_without_appdata ... ok [INFO] [stdout] test tests::eten_layout_is_used_when_selected ... ok [INFO] [stdout] test tests::malformed_framing_is_logged_and_ignored ... ok [INFO] [stdout] test tests::invalid_utf8_line_is_skipped_not_fatal ... ok [INFO] [stdout] test tests::malformed_json_replies_with_bare_failure ... ok [INFO] [stdout] test tests::on_activate_reply_includes_set_sel_keys ... ok [INFO] [stdout] test tests::requests_before_init_fail_without_crashing ... ok [INFO] [stdout] test tests::full_session_lifecycle_composes_and_commits_a_word ... ok [INFO] [stdout] test session::tests::unknown_preserved_key_guid_is_not_handled ... ok [INFO] [stdout] test tests::two_clients_are_independent_sessions ... ok [INFO] [stdout] test tests::parse_layout_recognizes_both_supported_layouts_and_falls_back_to_standard ... ok [INFO] [stdout] test tests::typing_a_known_phrase_then_a_syllable_that_breaks_it_flushes_via_commit_string ... ok [INFO] [stdout] test tests::user_phrases_are_reachable_through_the_wire_protocol ... ok [INFO] [stdout] test session::tests::escape_clears_composition ... ok [INFO] [stdout] test protocol::tests::ctrl_held_is_detected_from_key_states ... ok [INFO] [stdout] test session::tests::composition_terminated_clears_state ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/zuyin_core-491f53ffa56a5e05) [INFO] [stdout] [INFO] [stdout] running 81 tests [INFO] [stdout] test dictionary::tests::malformed_lines_are_ignored ... ok [INFO] [stdout] test dictionary::tests::abbreviation_lookup_with_no_match_returns_empty_slice ... ok [INFO] [stdout] test dictionary::tests::missing_key_returns_empty_slice ... ok [INFO] [stdout] test dictionary::tests::a_syllable_that_is_only_a_standalone_character_is_not_a_prefix_of_anything_longer ... ok [INFO] [stdout] test dictionary::tests::abbreviation_lookup_finds_all_words_sharing_the_same_leading_glyphs ... ok [INFO] [stdout] test dictionary::tests::abbreviation_index_ignores_single_syllable_entries ... ok [INFO] [stdout] test dictionary::tests::multi_syllable_entry_is_looked_up_by_space_joined_key ... ok [INFO] [stdout] test dictionary::tests::single_syllable_prefix_of_a_phrase_is_valid ... ok [INFO] [stdout] test dictionary::tests::word_frequency_of_an_unknown_word_is_zero ... ok [INFO] [stdout] test dictionary::tests::word_frequency_finds_a_known_word ... ok [INFO] [stdout] test keyboard::tests::eten_known_mappings ... ok [INFO] [stdout] test dictionary::tests::word_frequency_picks_the_highest_across_multiple_readings_of_the_same_word ... ok [INFO] [stdout] test dictionary::tests::toneless_lookup_with_no_match_returns_empty_slice ... ok [INFO] [stdout] test dictionary::tests::unrelated_syllable_is_not_a_valid_prefix ... ok [INFO] [stdout] test keyboard::tests::lookup_is_case_insensitive ... ok [INFO] [stdout] test keyboard::tests::keyboard_layout_enum_dispatches_to_the_selected_layout ... ok [INFO] [stdout] test keyboard::tests::known_mappings ... ok [INFO] [stdout] test keyboard::tests::maps_all_37_zhuyin_letters_and_4_tone_marks ... ok [INFO] [stdout] test ranking::tests::history_is_scoped_per_syllable ... ok [INFO] [stdout] test ranking::tests::ranks_by_base_frequency_without_history ... ok [INFO] [stdout] test ranking::tests::selection_history_can_promote_lower_frequency_word ... ok [INFO] [stdout] test syllable::tests::backspace_removes_in_reverse_order ... ok [INFO] [stdout] test dictionary::tests::toneless_lookup_also_works_across_multi_syllable_phrases ... ok [INFO] [stdout] test keyboard::tests::eten_layout_maps_all_37_zhuyin_letters_and_4_tone_marks ... ok [INFO] [stdout] test dictionary::tests::parses_valid_lines_and_skips_comments_and_blanks ... ok [INFO] [stdout] test syllable::tests::base_zhuyin_string_drops_the_tone ... ok [INFO] [stdout] test keyboard::tests::unmapped_key_returns_none ... ok [INFO] [stdout] test syllable::tests::composes_ni3_from_keys ... ok [INFO] [stdout] test ranking::tests::clear_resets_ranking_to_base_frequency ... ok [INFO] [stdout] test syllable::tests::duplicate_symbol_kind_is_rejected ... ok [INFO] [stdout] test syllable::tests::leading_glyph_falls_back_to_medial_or_final_without_an_initial ... ok [INFO] [stdout] test syllable::tests::leading_glyph_is_none_for_an_empty_syllable ... ok [INFO] [stdout] test syllable::tests::clear_resets_state ... ok [INFO] [stdout] test syllable::tests::has_reports_which_slots_are_filled ... ok [INFO] [stdout] test syllable::tests::leading_glyph_is_the_initial_when_present ... ok [INFO] [stdout] test syllable::tests::leading_glyph_matches_the_first_character_of_the_full_string ... ok [INFO] [stdout] test syllable::tests::tone_only_is_not_ready ... ok [INFO] [stdout] test syllable::tests::base_zhuyin_string_is_unchanged_when_no_tone_was_typed ... ok [INFO] [stdout] test keyboard::tests::h_and_b_match_the_real_dai_chien_layout ... ok [INFO] [stdout] test dictionary::tests::toneless_lookup_finds_words_across_every_tone_of_the_same_base_reading ... ok [INFO] [stdout] test tests::bigram_context_does_not_apply_without_a_prior_committed_word ... ok [INFO] [stdout] test tests::abbreviation_candidates_can_be_selected_like_normal_candidates ... ok [INFO] [stdout] test tests::extends_current_syllable_is_false_for_a_non_zhuyin_key ... ok [INFO] [stdout] test tests::backspace_uncommits_the_last_syllable_one_symbol_at_a_time ... ok [INFO] [stdout] test tests::a_fully_typed_syllable_does_not_trigger_abbreviation_matching ... ok [INFO] [stdout] test tests::a_single_bare_initial_does_not_trigger_abbreviation_matching ... ok [INFO] [stdout] test tests::bigram_context_reorders_candidates_toward_the_word_that_commonly_follows ... ok [INFO] [stdout] test tests::empty_buffer_does_not_trigger_toneless_matching ... ok [INFO] [stdout] test tests::non_zhuyin_key_is_not_handled ... ok [INFO] [stdout] test tests::selecting_a_candidate_boosts_it_above_base_frequency_ranking_next_time ... ok [INFO] [stdout] test tests::selecting_the_phrase_records_memory_under_the_full_multi_syllable_key ... ok [INFO] [stdout] test tests::set_user_phrases_replaces_the_whole_set ... ok [INFO] [stdout] test tests::supports_key_does_not_mutate_state ... ok [INFO] [stdout] test tests::selecting_a_user_phrase_works_like_any_other_candidate ... ok [INFO] [stdout] test tests::extends_current_syllable_is_false_once_the_slot_is_filled ... ok [INFO] [stdout] test tests::extends_current_syllable_is_true_for_an_empty_slot ... ok [INFO] [stdout] test tests::removing_a_user_phrase_stops_it_from_appearing ... ok [INFO] [stdout] test tests::forget_selections_resets_ranking_to_base_frequency ... ok [INFO] [stdout] test tests::typing_a_base_reading_without_a_tone_shows_candidates_across_every_tone ... ok [INFO] [stdout] test tests::reset_context_clears_the_bigram_context ... ok [INFO] [stdout] test tests::tai_wan_round_trips_through_full_pipeline ... ok [INFO] [stdout] test tests::toneless_candidate_can_be_selected_like_a_normal_one ... ok [INFO] [stdout] test tests::user_phrase_candidates_take_priority_over_the_dictionary ... ok [INFO] [stdout] test tests::typing_two_syllables_of_a_known_phrase_yields_the_phrase_candidate ... ok [INFO] [stdout] test tests::typing_a_third_syllable_that_breaks_the_phrase_flushes_it_greedily ... ok [INFO] [stdout] test tests::typing_ni_then_hao_yields_expected_candidates ... ok [INFO] [stdout] test tests::typing_two_bare_initials_predicts_words_sharing_those_leading_glyphs ... ok [INFO] [stdout] test tests::typing_syllable_not_extending_any_word_flushes_the_previous_one_greedily ... ok [INFO] [stdout] test user_phrases::tests::missing_key_returns_empty_slice ... ok [INFO] [stdout] test tests::typing_the_tone_narrows_back_down_to_the_exact_match ... ok [INFO] [stdout] test user_phrases::tests::add_makes_the_phrase_immediately_queryable ... ok [INFO] [stdout] test user_phrases::tests::adding_the_same_code_and_text_twice_does_not_duplicate ... ok [INFO] [stdout] test user_phrases::tests::list_is_sorted_by_code ... ok [INFO] [stdout] test user_phrases::tests::parses_valid_lines_and_skips_comments_and_blanks ... ok [INFO] [stdout] test user_phrases::tests::load_file_on_a_missing_file_starts_empty_but_remembers_the_path ... ok [INFO] [stderr] Running tests/chewing_dictionary.rs (/opt/rustwide/target/debug/deps/chewing_dictionary-3c3536b9686b14af) [INFO] [stdout] test user_phrases::tests::saving_without_a_source_path_is_a_no_op ... ok [INFO] [stdout] test user_phrases::tests::add_and_remove_persist_to_the_loaded_file ... ok [INFO] [stdout] test user_phrases::tests::save_creates_a_missing_parent_directory ... ok [INFO] [stdout] test user_phrases::tests::remove_deletes_the_phrase_and_reports_success ... ok [INFO] [stdout] test user_phrases::tests::removing_something_that_is_not_there_reports_false ... ok [INFO] [stdout] test user_phrases::tests::same_code_can_have_multiple_texts ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 81 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test every_dictionary_key_round_trips_through_the_standard_keyboard_layout ... ok [INFO] [stdout] test loads_a_comprehensive_number_of_characters_and_phrases ... ok [INFO] [stdout] test typing_a_single_character_word_then_selecting_it_finds_the_right_word ... ok [INFO] [stdout] test typing_ni_hao_together_finds_the_real_phrase_entry ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.00s [INFO] [stdout] [INFO] [stderr] Doc-tests zuyin_core [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" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a", kill_on_drop: false }` [INFO] [stdout] 91e54a9bc4c78d6bec81863abffb1ca4307fd6dc9e5f7e9b6b89f23566b1d02a