[INFO] fetching crate masterbus-tools 0.4.4...
[INFO] testing masterbus-tools-0.4.4 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate masterbus-tools 0.4.4 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate masterbus-tools 0.4.4
[INFO] finished tweaking crates.io crate masterbus-tools 0.4.4
[INFO] tweaked toml for crates.io crate masterbus-tools 0.4.4 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate masterbus-tools 0.4.4 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 crates.io crate masterbus-tools 0.4.4 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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded jiff-tzdb v0.1.6
[INFO] [stderr]   Downloaded jiff-static v0.2.27
[INFO] [stderr]   Downloaded masterbus v0.4.4
[INFO] [stderr]   Downloaded socketcan v3.5.0
[INFO] [stderr]   Downloaded neli-proc-macros v0.1.4
[INFO] [stderr]   Downloaded basic-udev v0.1.2
[INFO] [stderr]   Downloaded env_filter v1.0.1
[INFO] [stderr]   Downloaded embedded-can v0.4.1
[INFO] [stderr]   Downloaded env_logger v0.11.10
[INFO] [stderr]   Downloaded neli v0.6.5
[INFO] [stderr]   Downloaded hidapi v2.6.6
[INFO] [stderr]   Downloaded jiff v0.2.27
[INFO] [stderr]   Downloaded tui-logger v0.18.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461
[INFO] running `Command { std: "docker" "start" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461", 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" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461" "/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" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461", 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" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling log v0.4.30
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling nb v1.1.0
[INFO] [stderr]    Compiling socketcan v3.5.0
[INFO] [stderr]    Compiling embedded-can v0.4.1
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling jiff v0.2.27
[INFO] [stderr]    Compiling hidapi v2.6.6
[INFO] [stderr]    Compiling basic-udev v0.1.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling chunked_transfer v1.5.0
[INFO] [stderr]    Compiling ascii v1.1.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling tiny_http v0.12.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling env_filter v0.1.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling neli-proc-macros v0.1.4
[INFO] [stderr]    Compiling neli v0.6.5
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling tui-logger v0.18.2
[INFO] [stderr]    Compiling masterbus v0.4.4
[INFO] [stderr]    Compiling masterbus-tools v0.4.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461", 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" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling masterbus-tools v0.4.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 18.34s
[INFO] running `Command { std: "docker" "inspect" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461", 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" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/masterbus_tools-45c9a3bd2a2f8a76)
[INFO] [stdout] 
[INFO] [stdout] running 120 tests
[INFO] [stdout] test api::tests::putting_a_mapping_persists_resolves_and_signals_reload ... ok
[INFO] [stdout] test api::tests::suggest_prefills_truth_and_notify_tables_for_enums ... ok
[INFO] [stdout] test database::tests::an_unknown_model_is_not_an_error ... ok
[INFO] [stdout] test database::tests::entries_carry_their_provenance ... ok
[INFO] [stdout] test api::tests::devices_list_fields_with_their_mapping_and_last_value ... ok
[INFO] [stdout] test database::tests::a_trailing_space_in_the_article_still_matches ... ok
[INFO] [stdout] test database::tests::renamed_fields_are_reached_by_id ... ok
[INFO] [stdout] test api::tests::a_read_only_field_needs_a_login ... ok
[INFO] [stdout] test api::tests::apply_article_copies_onto_the_other_units ... ok
[INFO] [stdout] test api::tests::asking_for_a_menu_discovers_it_once ... ok
[INFO] [stdout] test api::tests::reading_a_field_polls_and_caches ... ok
[INFO] [stdout] test api::tests::raw_json_renders_every_value_kind ... ok
[INFO] [stdout] test mapping::tests::a_copy_substitutes_on_each_paths_own_instance ... ok
[INFO] [stdout] test mapping::tests::a_missing_file_is_an_empty_mapping_not_an_error ... ok
[INFO] [stdout] test mapping::tests::a_stale_recorded_instance_does_not_block_a_copy ... ok
[INFO] [stdout] test mapping::tests::a_truth_table_round_trips_and_is_omitted_when_empty ... ok
[INFO] [stdout] test mapping::tests::a_copy_carries_the_truth_notify_and_put_settings ... ok
[INFO] [stdout] test mapping::tests::copying_rewrites_the_instance_segment_per_target ... ok
[INFO] [stdout] test mapping::tests::an_existing_instance_on_the_target_is_kept ... ok
[INFO] [stdout] test api::tests::status_counts_what_the_daemon_knows ... ok
[INFO] [stdout] test mapping::tests::copying_records_the_target_identity_not_the_sources ... ok
[INFO] [stdout] test database::tests::every_bundled_path_converts_from_its_real_unit ... ok
[INFO] [stdout] test database::tests::every_path_is_instance_templated ... ok
[INFO] [stdout] test database::tests::the_two_charger_articles_are_told_apart ... ok
[INFO] [stdout] test database::tests::the_bundled_catalog_parses ... ok
[INFO] [stdout] test api::tests::adopting_a_mapping_discovers_the_menu_a_put_target_lives_on ... ok
[INFO] [stdout] test mapping::tests::notify_states_round_trip_in_lowercase_and_are_omitted_when_empty ... ok
[INFO] [stdout] test mapping::tests::fields_the_target_lacks_are_skipped_not_invented ... ok
[INFO] [stdout] test mapping::tests::invert_is_omitted_when_false ... ok
[INFO] [stdout] test mapping::tests::lookup_is_by_serial_and_field_id ... ok
[INFO] [stdout] test mapping::tests::put_is_omitted_when_false_and_round_trips_when_set ... ok
[INFO] [stdout] test api::tests::a_token_is_required_when_configured ... ok
[INFO] [stdout] test mapping::tests::counts_fields_across_devices ... ok
[INFO] [stdout] test api::tests::validate_reports_the_plan_or_the_refusal ... ok
[INFO] [stdout] test api::tests::writing_a_field_converts_through_the_mapping ... ok
[INFO] [stdout] test mapping::tests::malformed_json_reports_the_path ... ok
[INFO] [stdout] test mapping::tests::field_keys_match_the_toolchain_encoding ... ok
[INFO] [stdout] test api::tests::suggest_proposes_from_the_tables_and_falls_back_to_a_prefix ... ok
[INFO] [stdout] test mapping::tests::saves_and_loads_from_disk ... ok
[INFO] [stdout] test publish::tests::a_device_never_seeds_two_fields_onto_one_path ... ok
[INFO] [stdout] test publish::tests::a_device_with_no_serial_cannot_be_keyed_and_is_skipped ... ok
[INFO] [stdout] test mapping::tests::retarget_replaces_whole_segments_only ... ok
[INFO] [stdout] test mapping::tests::round_trips_through_json ... ok
[INFO] [stdout] test publish::tests::menu_names_round_trip ... ok
[INFO] [stdout] test publish::tests::merging_a_menu_is_additive_and_first_wins ... ok
[INFO] [stdout] test publish::tests::a_put_entry_publishes_and_warns_when_the_field_is_read_only ... ok
[INFO] [stdout] test publish::tests::seeding_only_proposes_monitoring_fields ... ok
[INFO] [stdout] test publish::tests::seeding_records_identity_for_later_editing ... ok
[INFO] [stdout] test publish::tests::seeding_tells_the_two_charger_articles_apart ... ok
[INFO] [stdout] test api::tests::the_server_answers_over_http_with_a_bearer_check ... ok
[INFO] [stdout] test publish::tests::resolve_derives_the_conversion_from_the_units ... ok
[INFO] [stdout] test publish::tests::resolve_skips_entries_the_bus_cannot_honour_and_says_why ... ok
[INFO] [stdout] test publish::tests::seeding_covers_the_battery_names_the_old_table_missed ... ok
[INFO] [stdout] test publish::tests::the_alternators_repeated_battery_reading_is_seeded_once ... ok
[INFO] [stdout] test seed::tests::a_path_is_built_from_group_name_and_unit ... ok
[INFO] [stdout] test publish::tests::the_prefix_follows_what_the_device_already_publishes ... ok
[INFO] [stdout] test publish::tests::unknown_fields_lists_what_the_record_lacks ... ok
[INFO] [stdout] test seed::tests::a_mastershunt_is_a_battery_whatever_the_capitals ... ok
[INFO] [stdout] test seed::tests::a_digital_switching_channel_is_a_switch_under_the_device ... ok
[INFO] [stdout] test seed::tests::a_field_neither_tier_knows_suggests_nothing ... ok
[INFO] [stdout] test seed::tests::a_repeated_channel_name_gets_its_field_id ... ok
[INFO] [stdout] test seed::tests::alternator_shaft_speed_accepts_either_spelling ... ok
[INFO] [stdout] test seed::tests::an_interface_state_is_a_switch ... ok
[INFO] [stdout] test seed::tests::an_unknown_model_falls_through_to_the_name_guess ... ok
[INFO] [stdout] test seed::tests::battery_families_that_name_the_same_field_differently_both_map ... ok
[INFO] [stdout] test seed::tests::class_is_the_first_word ... ok
[INFO] [stdout] test seed::tests::every_field_of_the_sample_bus_gets_a_path_that_would_save ... ok
[INFO] [stdout] test seed::tests::every_suggestion_has_a_derivable_conversion ... ok
[INFO] [stdout] test seed::tests::the_model_database_outranks_the_name_guess ... ok
[INFO] [stdout] test signalk::tests::a_partial_table_is_completed_or_refused ... ok
[INFO] [stdout] test signalk::tests::a_field_with_no_unit_is_taken_at_the_leafs_word ... ok
[INFO] [stdout] test signalk::tests::a_plan_carries_the_notification_table ... ok
[INFO] [stdout] test signalk::tests::a_quiet_nan_publishes_nothing ... ok
[INFO] [stdout] test seed::tests::generic_names_still_need_their_unit_to_disambiguate ... ok
[INFO] [stdout] test seed::tests::an_isolation_transformers_output_is_a_single_phase_ac_bus ... ok
[INFO] [stdout] test seed::tests::instance_strips_the_class_word_and_sanitizes ... ok
[INFO] [stdout] test signalk::tests::alarm_words_prefill_a_notification_table ... ok
[INFO] [stdout] test seed::tests::mac_fields_with_no_unit_still_map ... ok
[INFO] [stdout] test seed::tests::on_standby_is_enabled_and_not_inverted ... ok
[INFO] [stdout] test seed::tests::segments_are_camel_case_letters_and_digits ... ok
[INFO] [stdout] test seed::tests::standby_is_the_one_inverted_boolean ... ok
[INFO] [stdout] test seed::tests::the_editor_builds_where_nothing_is_known_but_seeding_does_not ... ok
[INFO] [stdout] test signalk::tests::a_prefix_or_a_malformed_path_is_refused ... ok
[INFO] [stdout] test signalk::tests::a_scalar_cannot_be_published_to_a_boolean_leaf ... ok
[INFO] [stdout] test signalk::tests::a_table_with_only_one_value_is_not_a_table ... ok
[INFO] [stdout] test signalk::tests::an_unconvertible_device_unit_publishes_raw_with_a_warning ... ok
[INFO] [stdout] test signalk::tests::booleans_honour_invert ... ok
[INFO] [stdout] test signalk::tests::an_enum_with_a_truth_table_publishes_booleans ... ok
[INFO] [stdout] test signalk::tests::an_unclassifiable_label_asks_for_a_truth_table ... ok
[INFO] [stdout] test signalk::tests::decode_keeps_a_text_fields_string_slot ... ok
[INFO] [stdout] test signalk::tests::decode_converts_numbers_back_to_the_device_unit ... ok
[INFO] [stdout] test signalk::tests::an_unknown_leaf_gets_its_unit_from_the_device ... ok
[INFO] [stdout] test signalk::tests::boolean_leaves_are_the_spec_ones ... ok
[INFO] [stdout] test signalk::tests::decode_accepts_a_label_or_an_index_for_a_mode_enum ... ok
[INFO] [stdout] test signalk::tests::known_label_pairs_get_a_truth_table_without_asking ... ok
[INFO] [stdout] test signalk::tests::floats_are_converted_on_the_way_out ... ok
[INFO] [stdout] test signalk::tests::decode_honours_invert_on_booleans ... ok
[INFO] [stdout] test signalk::tests::decode_picks_the_enum_label_a_truth_table_maps_to ... ok
[INFO] [stdout] test signalk::tests::enums_publish_their_lowercased_label ... ok
[INFO] [stdout] test signalk::tests::leaf_unit_reads_the_last_segment_only ... ok
[INFO] [stdout] test signalk::tests::nodes_follow_the_branch_shape ... ok
[INFO] [stdout] test signalk::tests::the_instance_is_the_nodes_last_segment ... ok
[INFO] [stdout] test units::tests::amp_hours_become_coulombs ... ok
[INFO] [stdout] test units::tests::percent_becomes_ratio ... ok
[INFO] [stdout] test units::tests::conversions_describe_themselves ... ok
[INFO] [stdout] test units::tests::rpm_becomes_hertz_whatever_its_case ... ok
[INFO] [stdout] test signalk::tests::the_spec_leaves_from_the_field_reports_are_known ... ok
[INFO] [stdout] test signalk::tests::time_becomes_seconds_and_the_sentinel_publishes_nothing ... ok
[INFO] [stdout] test signalk::tests::unitless_and_unknown_leaves_are_none ... ok
[INFO] [stdout] test units::tests::an_empty_or_unknown_unit_has_no_si_form ... ok
[INFO] [stdout] test units::tests::celsius_becomes_kelvin ... ok
[INFO] [stdout] test units::tests::mismatched_units_refuse_rather_than_guess ... ok
[INFO] [stdout] test units::tests::the_si_unit_is_known_without_a_leaf ... ok
[INFO] [stdout] test units::tests::unapply_undoes_apply ... ok
[INFO] [stdout] test units::tests::a_missing_device_unit_is_taken_at_its_word ... ok
[INFO] [stdout] test units::tests::matching_units_are_identity ... ok
[INFO] [stdout] test units::tests::a_unitless_leaf_accepts_anything ... ok
[INFO] [stderr]      Running unittests src/bin/masterbus-dump.rs (/opt/rustwide/target/release/deps/masterbus_dump-cd6854c3ad1d5b74)
[INFO] [stdout] test signalk::tests::a_known_leaf_cross_checks_the_device_unit ... ok
[INFO] [stdout] test signalk::tests::a_notification_follows_the_label ... ok
[INFO] [stdout] test units::tests::normalize_folds_the_spellings_seen_in_the_field ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 120 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test arg_tests::an_empty_or_unknown_menu_list_is_rejected ... ok
[INFO] [stdout] test arg_tests::an_unknown_option_is_rejected ... ok
[INFO] [stdout] test arg_tests::devices_are_hex_and_repeatable ... ok
[INFO] [stdout] test arg_tests::every_value_mode_is_accepted_by_name ... ok
[INFO] [stdout] test arg_tests::menus_accept_a_list_of_aliases_or_all ... ok
[INFO] [stdout] test arg_tests::date_and_time_sentinels_render_as_a_dash ... ok
[INFO] [stdout] test tests::field_id_text_matches_the_tui_and_cli_encoding ... ok
[INFO] [stdout] test arg_tests::the_value_mode_decides_which_menus_are_read ... ok
[INFO] [stdout] test arg_tests::the_boolean_flags_flip_their_defaults ... ok
[INFO] [stdout] test tests::document_shape_is_stable ... ok
[INFO] [stdout] test tests::iso8601_matches_known_instants ... ok
[INFO] [stdout] test arg_tests::menus_parse_from_every_documented_alias ... ok
[INFO] [stdout] test arg_tests::the_defaults_are_the_three_btm1_menus_and_monitoring_values ... ok
[INFO] [stdout] test arg_tests::the_output_file_may_be_a_flag_or_a_positional_but_not_two ... ok
[INFO] [stdout] test tests::the_mapping_is_absent_rather_than_null_when_there_is_none ... ok
[INFO] [stdout] test arg_tests::values_render_the_way_the_screen_shows_them ... ok
[INFO] [stdout] test tests::a_mapped_field_carries_its_signalk_path ... ok
[INFO] [stdout] test tests::menu_tags_round_trip_through_the_parser ... ok
[INFO] [stdout] test tests::nonfinite_floats_serialize_as_null_rather_than_failing ... ok
[INFO] [stdout] test arg_tests::every_menu_has_a_json_tag ... ok
[INFO] [stderr]      Running unittests src/bin/masterbus-set-field.rs (/opt/rustwide/target/release/deps/masterbus_set_field-4aa3421d81d43144)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test tests::a_numeric_label_still_matches_as_a_label ... ok
[INFO] [stdout] test tests::hex_indices_need_their_prefix ... ok
[INFO] [stdout] test tests::label_matching_is_exact ... ok
[INFO] [stdout] test tests::a_bare_number_is_decimal_not_hex ... ok
[INFO] [stdout] test tests::an_index_beyond_the_known_labels_is_passed_through ... ok
[INFO] [stdout] test tests::an_unresolvable_pick_reports_the_accepted_forms_and_options ... ok
[INFO] [stdout] test tests::a_label_is_a_label_even_when_it_reads_as_hex ... ok
[INFO] [stdout] test tests::hex_ids_are_accepted_with_or_without_a_prefix ... ok
[INFO] [stdout] test tests::the_confirmation_line_renders_each_value_kind ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/masterbus-signalk.rs (/opt/rustwide/target/release/deps/masterbus_signalk-59b4b98a16c80f0f)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test tests::timestamps_are_rfc3339_utc_with_milliseconds ... ok
[INFO] [stdout] test tests::the_mapping_file_is_watched_by_modification_time ... ok
[INFO] [stdout] test tests::notifications_follow_state_changes_only ... ok
[INFO] [stdout] test tests::only_loopback_may_run_the_api_without_a_token ... ok
[INFO] [stdout] test tests::an_unpublished_device_contributes_no_metadata ... ok
[INFO] [stdout] test tests::every_published_leaf_carries_unit_metadata ... ok
[INFO] [stdout] test tests::nodes_come_from_the_paths_a_device_actually_uses ... ok
[INFO] [stdout] test tests::a_leaf_nobody_tabulated_still_carries_the_devices_unit ... ok
[INFO] [stdout] test tests::a_nameless_device_still_gets_a_manufacturer ... ok
[INFO] [stdout] test tests::civil_from_days_matches_known_dates ... ok
[INFO] [stdout] test tests::a_device_spanning_two_categories_names_both ... ok
[INFO] [stdout] test tests::a_custom_path_is_honoured_not_second_guessed ... ok
[INFO] [stdout] test tests::the_static_metadata_batch_names_each_published_device ... ok
[INFO] [stdout] test tests::enums_on_boolean_leaves_need_a_truth_table ... ok
[INFO] [stdout] test tests::the_command_line_is_parsed_with_the_old_positional_form_kept ... ok
[INFO] [stderr]      Running unittests src/bin/masterbus-tui/main.rs (/opt/rustwide/target/release/deps/masterbus_tui-b119a2bbcf09bd74)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 78 tests
[INFO] [stdout] test app::app_tests::a_text_edit_needs_the_value_first ... ok
[INFO] [stdout] test app::app_tests::a_text_edit_is_capped_at_the_wire_limit ... ok
[INFO] [stdout] test app::app_tests::a_read_only_field_refuses_to_open_an_editor ... ok
[INFO] [stdout] test app::app_tests::cancelling_an_edit_discards_it ... ok
[INFO] [stdout] test app::app_tests::a_new_app_starts_on_the_device_list ... ok
[INFO] [stdout] test app::app_tests::a_device_without_a_name_falls_back_to_its_id ... ok
[INFO] [stdout] test app::app_tests::device_selection_clamps_at_both_ends ... ok
[INFO] [stdout] test app::app_tests::a_malformed_number_is_reported_and_not_written ... ok
[INFO] [stdout] test app::app_tests::a_failed_write_does_not_quit ... FAILED
[INFO] [stdout] test app::app_tests::a_choice_index_past_the_options_is_clamped ... ok
[INFO] [stdout] test app::app_tests::discarding_needs_the_button_and_wraps ... ok
[INFO] [stdout] test app::app_tests::moving_within_an_empty_row_pane_is_a_no_op ... ok
[INFO] [stdout] test app::app_tests::note_alive_does_not_duplicate_a_known_device ... ok
[INFO] [stdout] test app::app_tests::moving_within_an_empty_device_list_is_a_no_op ... ok
[INFO] [stdout] test app::app_tests::editor_keys_without_an_editor_are_ignored ... ok
[INFO] [stdout] test app::app_tests::opening_with_no_devices_is_a_no_op ... ok
[INFO] [stdout] test app::app_tests::quitting_with_unsaved_changes_asks_first ... ok
[INFO] [stdout] test app::app_tests::quitting_without_changes_just_quits ... ok
[INFO] [stdout] test app::app_tests::cancelling_a_discovery_returns_to_the_device_list ... ok
[INFO] [stdout] test app::mapping_tests::an_enum_on_a_boolean_leaf_shows_its_truth_table ... ok
[INFO] [stdout] test app::mapping_tests::an_unknown_leaf_still_shows_the_devices_unit ... ok
[INFO] [stdout] test app::app_tests::the_log_pane_only_toggles_when_logs_go_to_the_tui ... ok
[INFO] [stdout] test app::app_tests::the_values_modal_lists_the_options_and_the_current_one ... ok
[INFO] [stdout] test app::mapping_tests::invert_on_an_enum_flips_the_truth_table ... ok
[INFO] [stdout] test app::app_tests::the_values_modal_refuses_a_field_without_options ... ok
[INFO] [stdout] test app::mapping_tests::the_editor_reports_the_conversion_it_will_apply ... ok
[INFO] [stdout] test app::mapping_tests::the_hint_names_the_notifying_labels ... ok
[INFO] [stdout] test app::mapping_tests::the_mode_leaf_suggested_follows_the_category ... ok
[INFO] [stdout] test app::mapping_tests::the_notification_stage_is_offered_once_for_alarm_labels ... ok
[INFO] [stdout] test app::app_tests::write_and_quit_writes_the_file ... ok
[INFO] [stdout] test ui::format_tests::a_list_without_labels_shows_its_index ... ok
[INFO] [stdout] test ui::format_tests::an_out_of_range_device_reference_shows_its_index ... ok
[INFO] [stdout] test ui::format_tests::dates_and_durations_are_zero_padded ... ok
[INFO] [stdout] test ui::format_tests::every_device_status_has_a_glyph ... ok
[INFO] [stdout] test ui::format_tests::field_id_tags_carry_the_channel_bit ... ok
[INFO] [stdout] test ui::format_tests::list_values_show_their_label_and_their_index ... ok
[INFO] [stdout] test ui::format_tests::numbers_booleans_and_text_have_fixed_shapes ... ok
[INFO] [stdout] test ui::format_tests::the_no_value_sentinels_all_render_as_a_dash ... ok
[INFO] [stdout] test app::mapping_tests::backspace_deletes_before_the_cursor_and_stops_at_the_start ... ok
[INFO] [stdout] test ui::format_tests::truncation_fits_the_budget_including_the_ellipsis ... ok
[INFO] [stdout] test ui::mapping_row_tests::a_path_one_column_too_wide_wraps ... ok
[INFO] [stdout] test app::app_tests::opening_a_device_lands_on_summary_and_back_clears_it ... ok
[INFO] [stdout] test ui::mapping_row_tests::an_absurdly_narrow_pane_is_survivable ... ok
[INFO] [stdout] test ui::mapping_row_tests::modal_rows_follow_the_wrapped_width ... ok
[INFO] [stdout] test ui::mapping_row_tests::a_path_that_fits_stays_on_one_line ... ok
[INFO] [stdout] test ui::mapping_row_tests::a_very_narrow_pane_truncates_rather_than_wrapping_twice ... ok
[INFO] [stdout] test ui::render_tests::a_popup_is_centred_unless_it_would_cover_the_row ... ok
[INFO] [stdout] test app::mapping_tests::segment_moves_land_at_the_start_of_a_segment ... ok
[INFO] [stdout] test app::mapping_tests::the_cursor_steps_over_multibyte_characters ... ok
[INFO] [stdout] test app::mapping_tests::the_path_cursor_edits_in_the_middle ... ok
[INFO] [stdout] test app::app_tests::tabs_do_not_cycle_without_a_device_or_during_discovery ... ok
[INFO] [stdout] test ui::render_tests::rendering_survives_an_absurdly_small_terminal ... ok
[INFO] [stdout] test app::app_tests::discovering_a_menu_fills_the_row_pane ... ok
[INFO] [stdout] test ui::render_tests::the_choice_editor_lists_its_options ... ok
[INFO] [stdout] test ui::render_tests::the_device_list_is_drawn_with_names_and_status ... ok
[INFO] [stdout] test ui::render_tests::the_edit_modal_shows_the_field_and_the_buffer ... ok
[INFO] [stdout] test ui::render_tests::the_path_cursor_is_drawn_where_it_is ... ok
[INFO] [stdout] test ui::render_tests::the_field_pane_lists_groups_fields_and_values ... ok
[INFO] [stdout] test app::app_tests::revisiting_a_discovered_tab_needs_no_second_discovery ... ok
[INFO] [stdout] test ui::render_tests::the_footer_shows_the_status_line ... ok
[INFO] [stdout] test ui::render_tests::the_key_hints_survive_a_status_message ... ok
[INFO] [stdout] test app::app_tests::a_numeric_edit_pre_fills_filters_and_commits ... ok
[INFO] [stdout] test ui::tests::device_ref_resolves_index_to_device_name ... ok
[INFO] [stdout] test ui::tests::device_ref_value_renders_via_format_value_for ... ok
[INFO] [stdout] test app::app_tests::a_boolean_field_toggles_without_an_editor ... ok
[INFO] [stdout] test app::app_tests::a_choice_edit_starts_on_the_current_option_and_wraps ... ok
[INFO] [stdout] test ui::render_tests::the_log_pane_is_drawn_only_when_enabled ... ok
[INFO] [stdout] test ui::render_tests::a_discovery_in_flight_shows_a_spinner_and_what_it_is_doing ... ok
[INFO] [stdout] test ui::render_tests::opening_a_device_draws_the_tab_bar_and_summary ... ok
[INFO] [stdout] test ui::render_tests::the_login_modal_shows_the_levels_then_masks_the_code ... ok
[INFO] [stdout] test ui::render_tests::the_path_modal_names_the_device_field_and_unit ... ok
[INFO] [stdout] test ui::render_tests::the_path_modal_leaves_the_selected_row_visible ... ok
[INFO] [stdout] test ui::render_tests::the_quit_box_names_the_loss_and_the_buttons ... ok
[INFO] [stdout] test ui::render_tests::the_values_modal_lists_every_option ... ok
[INFO] [stdout] test app::app_tests::row_movement_skips_group_headers ... ok
[INFO] [stdout] test app::app_tests::row_movement_stops_at_the_edges ... ok
[INFO] [stdout] test app::app_tests::the_settings_tab_is_empty_on_a_btm1_only_device ... ok
[INFO] [stdout] test app::app_tests::tabs_cycle_in_both_directions ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- app::app_tests::a_failed_write_does_not_quit stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'app::app_tests::a_failed_write_does_not_quit' (2517) panicked at src/bin/masterbus-tui/app.rs:3060:9:
[INFO] [stdout] wrote /nonexistent/dir/mapping.json (0 field(s))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6490e386ebb1 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x6490e38858ea - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x6490e38732cc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x6490e3849426 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x6490e3866399 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x6490e374ffe0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x6490e3866552 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x6490e38494d2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x6490e3841fa9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x6490e384a0cd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x6490e388609c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x6490e37065bc - masterbus_tui[565942d82bbcea71]::app::app_tests::a_failed_write_does_not_quit
[INFO] [stdout]   12:     0x6490e37237b9 - <masterbus_tui[565942d82bbcea71]::app::app_tests::a_failed_write_does_not_quit::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x6490e37432cb - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x6490e3750935 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x6490e374a1f4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x6490e3753a92 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x6490e386df49 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7f29e41addfa - <unknown>
[INFO] [stdout]   19:     0x7f29e42413d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     app::app_tests::a_failed_write_does_not_quit
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 77 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.75s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin masterbus-tui`
[INFO] running `Command { std: "docker" "inspect" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461", kill_on_drop: false }`
[INFO] [stdout] cd40e702f0b49a27a4ebf552bca95b0b737259df1c4e080343c5b661603b3461
