[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.100.0-beta.1 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-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/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-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/finrod-chen/rust-zuyin 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/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.100.0-beta.1" "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
[ERROR] error running command: no output for 300 seconds
[INFO] testing finrod-chen/rust-zuyin against 1.100.0-beta.1 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-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/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-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/finrod-chen/rust-zuyin 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/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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8
[INFO] running `Command { std: "docker" "start" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8", 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" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8" "/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" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8", 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" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "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.53s
[INFO] running `Command { std: "docker" "inspect" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8", 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" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zuyin-backend v0.1.0 (/opt/rustwide/workdir/backend)
[INFO] [stderr]    Compiling zuyin-core v0.1.0 (/opt/rustwide/workdir/core)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.09s
[INFO] running `Command { std: "docker" "inspect" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8", 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" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/zuyin-backend/33d3a80681cd3e31/out/zuyin_backend-33d3a80681cd3e31)
[INFO] [stdout] 
[INFO] [stdout] running 52 tests
[INFO] [stdout] test protocol::tests::ctrl_held_is_detected_from_key_states ... ok
[INFO] [stdout] test protocol::tests::parses_on_command ... 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::parses_on_activate_keyboard_open_flag ... ok
[INFO] [stdout] test protocol::tests::parses_key_event_fields ... ok
[INFO] [stdout] test protocol::tests::on_command_without_id_is_unsupported ... ok
[INFO] [stdout] test protocol::tests::parses_line_framing ... ok
[INFO] [stdout] test protocol::tests::parses_on_menu ... ok
[INFO] [stdout] test protocol::tests::parses_on_keyboard_status_changed ... ok
[INFO] [stdout] test protocol::tests::parses_on_preserved_key_and_lowercases_guid ... ok
[INFO] [stdout] test protocol::tests::reply_omits_unset_optional_fields ... 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 protocol::tests::wire_field_names_for_fields_that_are_not_plain_camel_case ... ok
[INFO] [stdout] test session::tests::clear_memory_command_shows_message_but_changes_no_button ... ok
[INFO] [stdout] test session::tests::chinese_english_button_toggles_keyboard_open ... ok
[INFO] [stdout] test session::tests::ctrl_held_keys_pass_through ... ok
[INFO] [stdout] test session::tests::clear_memory_command_resets_learned_ranking ... ok
[INFO] [stdout] test session::tests::escape_clears_composition ... 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 protocol::tests::shift_held_is_detected_from_key_states ... ok
[INFO] [stdout] test session::tests::full_composition_then_space_commits_top_candidate ... ok
[INFO] [stdout] test session::tests::fullwidth_space_only_applies_when_composition_buffer_is_empty ... ok
[INFO] [stdout] test session::tests::fullwidth_button_converts_unmapped_symbol_when_buffer_is_empty ... ok
[INFO] [stdout] test session::tests::shift_held_letter_bypasses_zhuyin_and_can_be_fullwidth ... ok
[INFO] [stdout] test session::tests::settings_button_menu_reflects_fullwidth_state ... 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 session::tests::unknown_command_id_is_ignored ... ok
[INFO] [stdout] test session::tests::inactive_session_passes_every_key_through ... ok
[INFO] [stdout] test session::tests::keyboard_closed_passes_every_key_through_and_clears_pending_composition ... ok
[INFO] [stdout] test session::tests::keyboard_status_changed_message_reflects_chinese_mode ... ok
[INFO] [stdout] test session::tests::shift_held_letter_without_fullwidth_passes_through_unconverted ... 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_preserved_key_guid_is_not_handled ... ok
[INFO] [stdout] test protocol::tests::unknown_method_is_unsupported_not_an_error ... ok
[INFO] [stdout] test tests::invalid_utf8_line_is_skipped_not_fatal ... ok
[INFO] [stdout] test tests::malformed_framing_is_logged_and_ignored ... ok
[INFO] [stdout] test tests::default_user_phrases_path_falls_back_without_appdata ... ok
[INFO] [stdout] test tests::default_user_phrases_path_uses_appdata_when_set ... ok
[INFO] [stdout] test tests::eten_layout_is_used_when_selected ... ok
[INFO] [stdout] test tests::full_session_lifecycle_composes_and_commits_a_word ... 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::parse_layout_recognizes_both_supported_layouts_and_falls_back_to_standard ... ok
[INFO] [stdout] test tests::two_clients_are_independent_sessions ... ok
[INFO] [stdout] test tests::typing_a_known_phrase_then_a_syllable_that_breaks_it_flushes_via_commit_string ... ok
[INFO] [stdout] test tests::requests_before_init_fail_without_crashing ... ok
[INFO] [stdout] test session::tests::composition_terminated_clears_state ... ok
[INFO] [stdout] test tests::user_phrases_are_reachable_through_the_wire_protocol ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/zuyin-core/491f53ffa56a5e05/out/zuyin_core-491f53ffa56a5e05)
[INFO] [stdout] 
[INFO] [stdout] running 81 tests
[INFO] [stdout] test dictionary::tests::parses_valid_lines_and_skips_comments_and_blanks ... ok
[INFO] [stdout] test dictionary::tests::abbreviation_index_ignores_single_syllable_entries ... ok
[INFO] [stdout] test dictionary::tests::malformed_lines_are_ignored ... ok
[INFO] [stdout] test dictionary::tests::missing_key_returns_empty_slice ... ok
[INFO] [stdout] test dictionary::tests::toneless_lookup_also_works_across_multi_syllable_phrases ... ok
[INFO] [stdout] test dictionary::tests::toneless_lookup_finds_words_across_every_tone_of_the_same_base_reading ... ok
[INFO] [stdout] test dictionary::tests::multi_syllable_entry_is_looked_up_by_space_joined_key ... ok
[INFO] [stdout] test dictionary::tests::toneless_lookup_with_no_match_returns_empty_slice ... ok
[INFO] [stdout] test dictionary::tests::word_frequency_of_an_unknown_word_is_zero ... ok
[INFO] [stdout] test dictionary::tests::word_frequency_picks_the_highest_across_multiple_readings_of_the_same_word ... ok
[INFO] [stdout] test keyboard::tests::eten_known_mappings ... ok
[INFO] [stdout] test keyboard::tests::eten_layout_maps_all_37_zhuyin_letters_and_4_tone_marks ... 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::lookup_is_case_insensitive ... ok
[INFO] [stdout] test dictionary::tests::unrelated_syllable_is_not_a_valid_prefix ... ok
[INFO] [stdout] test dictionary::tests::word_frequency_finds_a_known_word ... ok
[INFO] [stdout] test keyboard::tests::maps_all_37_zhuyin_letters_and_4_tone_marks ... 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 ranking::tests::clear_resets_ranking_to_base_frequency ... ok
[INFO] [stdout] test dictionary::tests::abbreviation_lookup_with_no_match_returns_empty_slice ... ok
[INFO] [stdout] test ranking::tests::history_is_scoped_per_syllable ... ok
[INFO] [stdout] test dictionary::tests::single_syllable_prefix_of_a_phrase_is_valid ... 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 keyboard::tests::h_and_b_match_the_real_dai_chien_layout ... 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 keyboard::tests::unmapped_key_returns_none ... ok
[INFO] [stdout] test syllable::tests::composes_ni3_from_keys ... ok
[INFO] [stdout] test syllable::tests::clear_resets_state ... ok
[INFO] [stdout] test syllable::tests::base_zhuyin_string_drops_the_tone ... 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::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 tests::bigram_context_reorders_candidates_toward_the_word_that_commonly_follows ... ok
[INFO] [stdout] test tests::bigram_context_does_not_apply_without_a_prior_committed_word ... ok
[INFO] [stdout] test syllable::tests::leading_glyph_is_none_for_an_empty_syllable ... ok
[INFO] [stdout] test syllable::tests::leading_glyph_matches_the_first_character_of_the_full_string ... 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::backspace_uncommits_the_last_syllable_one_symbol_at_a_time ... ok
[INFO] [stdout] test tests::abbreviation_candidates_can_be_selected_like_normal_candidates ... ok
[INFO] [stdout] test tests::empty_buffer_does_not_trigger_toneless_matching ... ok
[INFO] [stdout] test tests::extends_current_syllable_is_false_for_a_non_zhuyin_key ... ok
[INFO] [stdout] test tests::reset_context_clears_the_bigram_context ... ok
[INFO] [stdout] test tests::non_zhuyin_key_is_not_handled ... ok
[INFO] [stdout] test tests::forget_selections_resets_ranking_to_base_frequency ... ok
[INFO] [stdout] test tests::selecting_the_phrase_records_memory_under_the_full_multi_syllable_key ... ok
[INFO] [stdout] test tests::selecting_a_candidate_boosts_it_above_base_frequency_ranking_next_time ... ok
[INFO] [stdout] test tests::removing_a_user_phrase_stops_it_from_appearing ... 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::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::typing_a_base_reading_without_a_tone_shows_candidates_across_every_tone ... ok
[INFO] [stdout] test tests::typing_a_third_syllable_that_breaks_the_phrase_flushes_it_greedily ... ok
[INFO] [stdout] test tests::typing_syllable_not_extending_any_word_flushes_the_previous_one_greedily ... ok
[INFO] [stdout] test tests::typing_the_tone_narrows_back_down_to_the_exact_match ... ok
[INFO] [stdout] test tests::user_phrase_candidates_take_priority_over_the_dictionary ... 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::selecting_a_user_phrase_works_like_any_other_candidate ... 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 tests::typing_two_bare_initials_predicts_words_sharing_those_leading_glyphs ... 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] [stdout] test tests::typing_two_syllables_of_a_known_phrase_yields_the_phrase_candidate ... ok
[INFO] [stdout] test user_phrases::tests::remove_deletes_the_phrase_and_reports_success ... ok
[INFO] [stdout] test user_phrases::tests::missing_key_returns_empty_slice ... ok
[INFO] [stdout] test tests::typing_ni_then_hao_yields_expected_candidates ... ok
[INFO] [stdout] test user_phrases::tests::list_is_sorted_by_code ... ok
[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::removing_something_that_is_not_there_reports_false ... ok
[INFO] [stderr]      Running tests/chewing_dictionary.rs (/opt/rustwide/target/debug/build/zuyin-core/3c3536b9686b14af/out/chewing_dictionary-3c3536b9686b14af)
[INFO] [stdout] test user_phrases::tests::same_code_can_have_multiple_texts ... ok
[INFO] [stdout] test user_phrases::tests::save_creates_a_missing_parent_directory ... 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 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] [stderr]    Doc-tests zuyin_core
[INFO] [stdout] test loads_a_comprehensive_number_of_characters_and_phrases ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.44s
[INFO] [stdout] 
[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" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8", kill_on_drop: false }`
[INFO] [stdout] e5b61efa5d9e16010070d93cf0bc8160bbc08acb239d6f202d055488d1f82ac8
