[INFO] cloning repository https://github.com/TheReaperJay/monsgeek-linux-firmware-driver [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TheReaperJay/monsgeek-linux-firmware-driver" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheReaperJay%2Fmonsgeek-linux-firmware-driver", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheReaperJay%2Fmonsgeek-linux-firmware-driver'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b75d3406d6d70cb7b43dc22fc56144c509136adc [INFO] testing TheReaperJay/monsgeek-linux-firmware-driver against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheReaperJay%2Fmonsgeek-linux-firmware-driver" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/TheReaperJay/monsgeek-linux-firmware-driver [INFO] finished tweaking git repo https://github.com/TheReaperJay/monsgeek-linux-firmware-driver [INFO] tweaked toml for git repo https://github.com/TheReaperJay/monsgeek-linux-firmware-driver written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/TheReaperJay/monsgeek-linux-firmware-driver on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/TheReaperJay/monsgeek-linux-firmware-driver 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded simple_logger v5.2.0 [INFO] [stderr] Downloaded serde_spanned v1.1.0 [INFO] [stderr] Downloaded toml_datetime v1.1.0+spec-1.1.0 [INFO] [stderr] Downloaded toml_writer v1.1.0+spec-1.1.0 [INFO] [stderr] Downloaded toml v1.1.0+spec-1.1.0 [INFO] [stderr] Downloaded toml_parser v1.1.0+spec-1.1.0 [INFO] [stderr] Downloaded sd-notify v0.5.0 [INFO] [stderr] Downloaded rusb v0.9.4 [INFO] [stderr] Downloaded evdev v0.13.2 [INFO] [stderr] Downloaded tonic-build v0.12.3 [INFO] [stderr] Downloaded prost v0.13.5 [INFO] [stderr] Downloaded prost-derive v0.13.5 [INFO] [stderr] Downloaded openssl-sys v0.9.112 [INFO] [stderr] Downloaded prost-build v0.13.5 [INFO] [stderr] Downloaded prost-types v0.13.5 [INFO] [stderr] Downloaded tonic v0.12.3 [INFO] [stderr] Downloaded iri-string v0.7.11 [INFO] [stderr] Downloaded openssl v0.10.76 [INFO] [stderr] Downloaded libusb1-sys v0.7.0 [INFO] [stderr] Downloaded tonic-web v0.12.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85 [INFO] running `Command { std: "docker" "start" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85", 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" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85", 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" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling io-lifetimes v1.0.11 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling libudev-sys v0.1.4 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling fixedbitset v0.5.7 [INFO] [stderr] Compiling rusb v0.9.4 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling pin-project-internal v1.1.11 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling multimap v0.10.1 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling petgraph v0.7.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libusb1-sys v0.7.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling prost-derive v0.13.5 [INFO] [stderr] Compiling udev v0.9.3 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling pin-project v1.1.11 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling matchit v0.7.3 [INFO] [stderr] Compiling iri-string v0.7.11 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling monsgeek-protocol v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-protocol) [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling tower-http v0.5.2 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling wyz v0.5.1 [INFO] [stderr] Compiling winnow v1.0.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling monsgeek-transport v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-transport) [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling toml_parser v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling prost v0.13.5 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling env_filter v1.0.1 [INFO] [stderr] Compiling bitvec v1.0.1 [INFO] [stderr] Compiling prost-types v0.13.5 [INFO] [stderr] Compiling serde_spanned v1.1.0 [INFO] [stderr] Compiling toml_datetime v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling toml_writer v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling jiff v0.2.23 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling sd-notify v0.5.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling toml v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling prost-build v0.13.5 [INFO] [stderr] Compiling evdev v0.13.2 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower v0.4.13 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling tonic-build v0.12.3 [INFO] [stderr] Compiling monsgeek-driver v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-driver) [INFO] [stderr] Compiling env_logger v0.11.10 [INFO] [stderr] Compiling monsgeek-inputd v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-inputd) [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-timeout v0.5.2 [INFO] [stderr] Compiling tonic v0.12.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling tonic-web v0.12.3 [INFO] [stderr] Compiling monsgeek-firmware v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-firmware) [INFO] [stderr] Compiling monsgeek-cli v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-cli) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 12s [INFO] running `Command { std: "docker" "inspect" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85", 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" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Compiling openssl v0.10.76 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling colored v3.1.1 [INFO] [stderr] Compiling monsgeek-protocol v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-protocol) [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling hyper-timeout v0.5.2 [INFO] [stderr] Compiling tonic v0.12.3 [INFO] [stderr] Compiling simple_logger v5.2.0 [INFO] [stderr] Compiling monsgeek-inputd v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-inputd) [INFO] [stderr] Compiling monsgeek-transport v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-transport) [INFO] [stderr] Compiling tonic-web v0.12.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling monsgeek-firmware v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-firmware) [INFO] [stderr] Compiling monsgeek-driver v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-driver) [INFO] [stderr] Compiling monsgeek-cli v0.1.0 (/opt/rustwide/workdir/crates/monsgeek-cli) [INFO] [stdout] warning: associated function `with_responses` is never used [INFO] [stdout] --> crates/monsgeek-driver/tests/mock_transport.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl MockTransport { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn with_responses(responses: Vec<[u8; 64]>) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 33.39s [INFO] running `Command { std: "docker" "inspect" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85", 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" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: associated function `with_responses` is never used [INFO] [stderr] --> crates/monsgeek-driver/tests/mock_transport.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 21 | impl MockTransport { [INFO] [stderr] | ------------------ associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 26 | pub fn with_responses(responses: Vec<[u8; 64]>) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `monsgeek-driver` (test "bounds_validation") generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/monsgeek_cli-1897d7209eeec8e0) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test client::tests::merge_device_list_remove_drops_paths ... ok [INFO] [stdout] test client::tests::merge_device_list_add_upserts_by_path ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/monsgeek_cli-8e5f328300c763ac) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stderr] Running tests/cli_smoke.rs (/opt/rustwide/target/debug/deps/cli_smoke-dc3144cc4da44faa) [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test parser_recognizes_all_required_subcommands_and_selector_flags ... ok [INFO] [stdout] test info_mapping_uses_get_usb_version_byte ... ok [INFO] [stdout] test single_device_auto_selection_succeeds ... ok [INFO] [stdout] test keymap_get_builds_page_query_with_magic_ff ... ok [INFO] [stdout] test raw_write_requires_unsafe_flag ... ok [INFO] [stdout] test keymap_get_decodes_selected_entry_from_page_response ... ok [INFO] [stdout] test model_selector_filters_by_registry_slug_name ... ok [INFO] [stdout] test multiple_devices_requires_selector ... ok [INFO] [stdout] test smoke_command_framing_with_stubbed_transport ... 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 tests/firmware_cli.rs (/opt/rustwide/target/debug/deps/firmware_cli-9d27b964a9513da0) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test firmware_flash_requires_dual_non_interactive_flags ... ok [INFO] [stdout] test validate_blocks_metadata_mismatch_without_override ... ok [INFO] [stdout] test validate_allows_unofficial_when_flag_set ... ok [INFO] [stdout] test firmware_version_builds_get_usb_version_request ... ok [INFO] [stdout] test flash_requires_typed_phrase_when_interactive ... ok [INFO] [stdout] test flash_requires_dual_non_interactive_flags ... ok [INFO] [stdout] test firmware_validate_blocks_metadata_mismatch_without_override ... ok [INFO] [stdout] test firmware_validate_allows_unofficial_when_flag_set ... ok [INFO] [stdout] test version_builds_get_usb_version_request ... ok [INFO] [stdout] test firmware_flash_requires_typed_phrase_when_interactive ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 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/monsgeek_driver-8606ef328c747b17) [INFO] [stdout] [INFO] [stdout] running 59 tests [INFO] [stdout] test service::device_registry::tests::mark_offline_updates_online_flag ... ok [INFO] [stdout] test service::db_store::tests::db_insert_get_roundtrip ... ok [INFO] [stdout] test service::tests::exact_path_lookup_matches_only_live_instance_path ... ok [INFO] [stdout] test service::device_registry::tests::upsert_roundtrip_by_path ... ok [INFO] [stdout] test service::tests::instance_path_registry_roundtrip ... ok [INFO] [stdout] test service::tests::read_msg_signature_exists ... ok [INFO] [stdout] test service::tests::get_version_signature_exists ... ok [INFO] [stdout] test service::tests::read_raw_feature_signature_exists ... ok [INFO] [stdout] test service::tests::send_msg_signature_exists ... ok [INFO] [stdout] test service::tests::send_raw_feature_signature_exists ... ok [INFO] [stdout] test service::tests::stale_alias_like_path_does_not_resolve ... ok [INFO] [stdout] test service::tests::db_insert_get_roundtrip ... ok [INFO] [stdout] test service::tests::test_all_magnetic_cmds_gated ... ok [INFO] [stdout] test service::tests::test_magnetic_cmd_magnetic_device_passes ... ok [INFO] [stdout] test service::tests::test_magnetic_read_cmds_not_gated ... ok [INFO] [stdout] test service::tests::test_normalize_non_simple_unchanged ... ok [INFO] [stdout] test service::tests::test_normalize_simple_fn_reset_config ... ok [INFO] [stdout] test service::tests::test_normalize_simple_macro_unchanged ... ok [INFO] [stdout] test service::tests::test_normalize_simple_remap_unchanged ... ok [INFO] [stdout] test service::tests::test_normalize_simple_forbidden_unchanged ... ok [INFO] [stdout] test service::tests::test_normalize_simple_reset_config ... ok [INFO] [stdout] test service::tests::test_policy_synthesizes_and_errors_for_invalid_write ... ok [INFO] [stdout] test service::tests::test_set_fn_fn_sys_accepts_two_layer_device ... ok [INFO] [stdout] test service::tests::test_policy_synthesizes_for_blocked_magnetic_write ... ok [INFO] [stdout] test service::tests::test_set_fn_key_index_oob_rejected ... ok [INFO] [stdout] test service::tests::test_set_fn_profile_oob_rejected ... ok [INFO] [stdout] test service::tests::test_set_fn_simple_key_index_oob_rejected ... ok [INFO] [stdout] test service::tests::test_set_fn_simple_short_buffer_rejected ... ok [INFO] [stdout] test service::tests::test_magnetic_cmd_non_magnetic_device_compat_blocked ... ok [INFO] [stdout] test service::tests::read_response_rpc_rejects_empty_device_path ... ok [INFO] [stdout] test service::tests::shutdown_clears_runtime_state ... ok [INFO] [stdout] test service::tests::test_non_dangerous_command_passes_through ... ok [INFO] [stdout] test service::tests::test_set_fn_fn_sys_oob_rejected ... ok [INFO] [stdout] test service::tests::test_set_fn_valid_passes ... ok [INFO] [stdout] test service::tests::test_set_fn_simple_valid_passes ... ok [INFO] [stdout] test service::device_registry::tests::upsert_reuses_path_for_same_usb_location ... ok [INFO] [stdout] test service::tests::test_set_fn_simple_profile_oob_rejected ... ok [INFO] [stdout] test service::tests::test_set_keymatrix_layer_oob_rejected ... ok [INFO] [stdout] test service::tests::send_command_rpc_rejects_empty_device_path ... ok [INFO] [stdout] test service::tests::test_set_fn_fn_sys_respects_single_layer_device_limit ... ok [INFO] [stdout] test service::tests::test_set_fn_short_buffer_rejected ... ok [INFO] [stdout] test service::tests::test_set_macro_chunk_page_oob_rejected ... ok [INFO] [stdout] test service::tests::test_set_macro_index_oob_rejected ... ok [INFO] [stdout] test service::tests::test_set_macro_short_buffer_rejected ... ok [INFO] [stdout] test service::tests::test_set_macro_valid_passes ... ok [INFO] [stdout] test service::tests::test_set_keymatrix_profile_oob_rejected ... ok [INFO] [stdout] test service::tests::test_set_keymatrix_short_buffer_rejected ... ok [INFO] [stdout] test service::tests::test_set_fn_boundary_valid ... ok [INFO] [stdout] test service::tests::test_set_profile_allows_five_layer_device_profile_four ... ok [INFO] [stdout] test service::tests::test_set_macro_boundary_valid ... ok [INFO] [stdout] test service::tests::test_set_keymatrix_valid_passes_through ... ok [INFO] [stdout] test service::tests::test_set_keymatrix_simple_bounds_validated ... ok [INFO] [stdout] test service::tests::test_set_profile_respects_device_layer_limit ... ok [INFO] [stdout] test service::tests::test_set_profile_short_buffer_rejected ... ok [INFO] [stdout] test service::tests::test_set_profile_valid_passes ... ok [INFO] [stdout] test service::tests::test_set_profile_oob_rejected ... ok [INFO] [stdout] test service::tests::watch_dev_list_init_message_type_is_present ... ok [INFO] [stdout] test service::tests::test_set_keymatrix_boundary_valid ... ok [INFO] [stdout] test service::tests::test_set_keymatrix_key_index_oob_rejected ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/monsgeek_driver-ab94627f127f72d5) [INFO] [stdout] [INFO] [stdout] test result: ok. 59 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test tests::addr_in_use_detection_on_io_error ... ok [INFO] [stdout] test tests::socket_inode_parser_extracts_inode ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/bounds_validation.rs (/opt/rustwide/target/debug/deps/bounds_validation-e6ac3a3d8e8dba50) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_bridge_transport_forwards_any_command ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/grpc_contract_tests.rs (/opt/rustwide/target/debug/deps/grpc_contract_tests-666cdaa5f82fad4f) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test grpc_full_service_contract_present ... ok [INFO] [stdout] test grpc_query_raw_returns_data_without_echo_requirement ... ok [INFO] [stdout] test grpc_send_raw_feature_forwards ... ok [INFO] [stdout] test grpc_send_msg_forwards_with_checksum ... ok [INFO] [stdout] test grpc_read_raw_feature_returns_data ... ok [INFO] [stdout] test grpc_cors_headers_present ... ok [INFO] [stdout] test grpc_server_starts_http1 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s [INFO] [stdout] [INFO] [stderr] Running tests/grpc_db_tests.rs (/opt/rustwide/target/debug/deps/grpc_db_tests-f5f363d5e73d41ed) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test grpc_db_insert_get_roundtrip ... ok [INFO] [stdout] test grpc_get_version_shape ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/grpc_watch_stream_tests.rs (/opt/rustwide/target/debug/deps/grpc_watch_stream_tests-ba8ee5f52034e9db) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test grpc_watch_dev_list_init_add_remove ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stderr] Running tests/mock_transport.rs (/opt/rustwide/target/debug/deps/mock_transport-d9119fa25eaf3c26) [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] [stderr] Running tests/ota_stream.rs (/opt/rustwide/target/debug/deps/ota_stream-760ccaed6d08c4da) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test upgrade_otagatt_reports_recovery_guidance_on_integrity_failure ... ok [INFO] [stdout] test upgrade_otagatt_streams_phase_progress_in_order ... ok [INFO] [stdout] test upgrade_otagatt_retries_bootloader_once_then_fails ... ok [INFO] [stdout] test upgrade_otagatt_success_requires_post_verify_queries ... ok [INFO] [stdout] test upgrade_otagatt_requires_enable_flag ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/monsgeek_firmware-b1a093bebb4dc9a3) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test engine::tests::transfer_markers_match_protocol ... ok [INFO] [stdout] test engine::tests::checksum_includes_ff_padding ... ok [INFO] [stdout] test vendor_api::tests::parse_version_string_ignores_unknown_pairs ... ok [INFO] [stdout] test preflight::tests::preflight_requires_dual_non_interactive_flags ... ok [INFO] [stdout] test preflight::tests::preflight_requires_typed_phrase_when_interactive ... ok [INFO] [stdout] test preflight::tests::preflight_backup_failure_requires_override ... ok [INFO] [stdout] test preflight::tests::preflight_checksum_uses_ff_padding ... ok [INFO] [stdout] test preflight::tests::preflight_blocks_metadata_mismatch_without_override ... ok [INFO] [stdout] test engine::tests::engine_executes_chunks ... ok [INFO] [stdout] test vendor_api::tests::parse_version_string_maps_usb_and_rf ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/monsgeek_inputd-501b2baa39101bf5) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test uinput_device::tests::test_virtual_keyboard_identity_uses_real_vid_pid ... ok [INFO] [stdout] test uinput_device::tests::test_key_actions_to_input_events_batch ... ok [INFO] [stdout] test uinput_device::tests::test_key_action_to_input_event_release ... ok [INFO] [stdout] test uinput_device::tests::test_key_actions_to_input_events_empty ... ok [INFO] [stdout] test uinput_device::tests::test_key_action_to_input_event_press ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/monsgeek_inputd-040cd967170adfb3) [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test config::tests::test_config_default_debounce_is_none ... ok [INFO] [stdout] test daemon::tests::select_devices_filters_by_usb_location ... ok [INFO] [stdout] test daemon::tests::select_devices_filters_by_bus_address ... ok [INFO] [stdout] test tests::parse_device_selector_accepts_instance_path ... ok [INFO] [stdout] test config::tests::test_resolve_debounce_cli_wins_over_config ... ok [INFO] [stdout] test config::tests::test_resolve_debounce_config_wins_over_default ... ok [INFO] [stdout] test config::tests::test_resolve_debounce_hardcoded_fallback ... ok [INFO] [stdout] test daemon::tests::sanitize_thread_name_replaces_symbols ... ok [INFO] [stdout] test tests::parse_device_selector_accepts_bus_address ... ok [INFO] [stdout] test tests::parse_device_selector_accepts_usb_location ... ok [INFO] [stdout] test config::tests::test_config_deserialize_empty_toml ... ok [INFO] [stdout] test config::tests::test_config_deserialize_from_toml ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/hardware.rs (/opt/rustwide/target/debug/deps/hardware-e38aa248b26cc2f3) [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] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/monsgeek_protocol-ea9c340535fa0653) [INFO] [stdout] [INFO] [stdout] running 103 tests [INFO] [stdout] test ble::tests::test_cmdresp_marker ... ok [INFO] [stdout] test ble::tests::test_vendor_report_id ... ok [INFO] [stdout] test checksum::tests::test_checksum_type_default ... ok [INFO] [stdout] test cmd::tests::test_get_dongle_status ... ok [INFO] [stdout] test cmd::tests::test_get_multi_magnetism ... ok [INFO] [stdout] test checksum::tests::test_checksum_none ... ok [INFO] [stdout] test ble::tests::test_report_size ... ok [INFO] [stdout] test cmd::tests::test_get_usb_version ... ok [INFO] [stdout] test cmd::tests::test_set_ledparam ... ok [INFO] [stdout] test cmd::tests::test_set_multi_magnetism ... ok [INFO] [stdout] test cmd::tests::test_name_unknown_command ... ok [INFO] [stdout] test cmd::tests::test_name_known_command ... ok [INFO] [stdout] test cmd::tests::test_status_success ... ok [INFO] [stdout] test command_policy::tests::magnetic_write_blocked_with_synthetic_read_and_no_error ... ok [INFO] [stdout] test command_policy::tests::invalid_set_profile_returns_error_and_synthetic_read ... ok [INFO] [stdout] test command_policy::tests::query_keeps_device_read_policy ... ok [INFO] [stdout] test command_policy::tests::set_fn_missing_fn_sys_layer_is_failed_precondition ... ok [INFO] [stdout] test command_policy::tests::normalize_simple_reset_pattern_rewrites_config ... ok [INFO] [stdout] test command_policy::tests::set_profile_missing_layer_is_failed_precondition ... ok [INFO] [stdout] test command_schema::tests::normalizer_prepend_profile_zero_empty ... ok [INFO] [stdout] test command_schema::tests::normalizer_prepend_profile_zero_single_byte ... ok [INFO] [stdout] test command_schema::tests::normalizer_prepend_profile_zero_passthrough ... ok [INFO] [stdout] test command_schema::tests::normalizer_prepend_profile_zero_three_bytes ... ok [INFO] [stdout] test command_schema::tests::schema_map_max_payload_size_constant ... ok [INFO] [stdout] test command_policy::tests::valid_set_profile_forwards ... ok [INFO] [stdout] test command_schema::tests::schema_map_probe_only_rejects_other_commands ... ok [INFO] [stdout] test command_schema::tests::schema_map_device_specific_wins_over_shared ... ok [INFO] [stdout] test command_schema::tests::schema_map_m5w_get_report_shared ... ok [INFO] [stdout] test command_schema::tests::schema_map_m5w_integration ... ok [INFO] [stdout] test command_schema::tests::schema_map_m5w_set_report_shared ... ok [INFO] [stdout] test checksum::tests::test_checksum_bit7_single_byte ... ok [INFO] [stdout] test checksum::tests::test_build_command_get_usb_version ... ok [INFO] [stdout] test command_schema::tests::schema_map_m5w_led_commands_shared ... ok [INFO] [stdout] test checksum::tests::test_apply_checksum_bit8 ... ok [INFO] [stdout] test command_schema::tests::schema_map_strict_mode ... ok [INFO] [stdout] test checksum::tests::test_build_ble_command ... ok [INFO] [stdout] test checksum::tests::test_checksum_bit8 ... ok [INFO] [stdout] test command_schema::tests::schema_map_ry5088_get_report_known ... ok [INFO] [stdout] test checksum::tests::test_build_command_checksum_excludes_report_id ... ok [INFO] [stdout] test checksum::tests::test_checksum_bit7_multiple_bytes ... ok [INFO] [stdout] test command_schema::tests::schema_map_unknown_command ... ok [INFO] [stdout] test device::tests::test_commands_apply_device_overrides ... ok [INFO] [stdout] test device::tests::test_has_magnetism_false_when_no_magnetic_switch_true ... ok [INFO] [stdout] test device::tests::test_has_magnetism_true_when_magnetism_true ... ok [INFO] [stdout] test device::tests::test_has_magnetism_true_when_no_magnetic_switch_false ... ok [INFO] [stdout] test device::tests::test_m5w_device_definition ... ok [INFO] [stdout] test device::tests::test_m5w_identity ... ok [INFO] [stdout] test checksum::tests::test_apply_checksum_bit7 ... ok [INFO] [stdout] test device::tests::test_fn_sys_layer_deserialization ... ok [INFO] [stdout] test command_schema::tests::schema_map_yichip_collisions_resolve_correctly ... ok [INFO] [stdout] test device::tests::test_optional_fields_default_to_none ... ok [INFO] [stdout] test checksum::tests::test_build_command_with_data ... ok [INFO] [stdout] test command_schema::tests::schema_map_yichip_debounce_normalized ... ok [INFO] [stdout] test device::tests::test_commands_fall_back_to_family_when_no_overrides ... ok [INFO] [stdout] test device::tests::test_supports_runtime_pid_accepts_canonical_and_aliases ... ok [INFO] [stdout] test hid::tests::test_input_report_size ... ok [INFO] [stdout] test hid::tests::test_is_vendor_usage_page_ff00 ... ok [INFO] [stdout] test hid::tests::test_is_vendor_usage_page_ffff ... ok [INFO] [stdout] test hid::tests::test_is_vendor_usage_page_standard ... ok [INFO] [stdout] test hid::tests::test_interface_feature ... ok [INFO] [stdout] test hid::tests::test_report_size ... ok [INFO] [stdout] test magnetism::tests::test_calibration ... ok [INFO] [stdout] test hid::tests::test_usage_page ... ok [INFO] [stdout] test magnetism::tests::test_key_mode ... ok [INFO] [stdout] test magnetism::tests::test_name_unknown ... ok [INFO] [stdout] test magnetism::tests::test_press_travel ... ok [INFO] [stdout] test magnetism::tests::test_rt_press ... ok [INFO] [stdout] test magnetism::tests::test_name_known ... ok [INFO] [stdout] test precision::tests::test_medium_version ... ok [INFO] [stdout] test precision::tests::test_fine_version ... ok [INFO] [stdout] test protocol::tests::test_commands_method ... ok [INFO] [stdout] test protocol::tests::test_detect_case_insensitive ... ok [INFO] [stdout] test protocol::tests::test_detect_name_wins_over_pid ... ok [INFO] [stdout] test protocol::tests::test_detect_default_ry5088 ... ok [INFO] [stdout] test protocol::tests::test_detect_ry5088_by_name ... ok [INFO] [stdout] test protocol::tests::test_detect_yichip_by_name ... ok [INFO] [stdout] test protocol::tests::test_detect_yichip_by_name_yc300 ... ok [INFO] [stdout] test protocol::tests::test_detect_ry5088_by_name_ry1086 ... ok [INFO] [stdout] test protocol::tests::test_detect_yichip_by_name_yc500 ... ok [INFO] [stdout] test protocol::tests::test_detect_yichip_by_name_yc3123 ... ok [INFO] [stdout] test protocol::tests::test_detect_yichip_by_pid_4099 ... ok [INFO] [stdout] test protocol::tests::test_yichip_command_table ... ok [INFO] [stdout] test registry::tests::test_invalid_json_returns_error ... ok [INFO] [stdout] test registry::tests::test_find_by_vid_pid_no_match ... ok [INFO] [stdout] test protocol::tests::test_display ... ok [INFO] [stdout] test registry::tests::test_empty_directory ... ok [INFO] [stdout] test registry::tests::test_find_by_runtime_vid_pid_includes_aliases ... ok [INFO] [stdout] test registry::tests::test_registry_extensible ... ok [INFO] [stdout] test registry::tests::test_find_by_id_no_match ... ok [INFO] [stdout] test protocol::tests::test_detect_yichip_by_pid ... ok [INFO] [stdout] test registry::tests::test_load_m5w_from_devices_dir ... ok [INFO] [stdout] test rgb::tests::test_matrix_size ... ok [INFO] [stdout] test rgb::tests::test_total_rgb_size ... ok [INFO] [stdout] test protocol::tests::test_ry5088_command_table ... ok [INFO] [stdout] test registry::tests::test_find_by_vid_pid_m5w ... ok [INFO] [stdout] test command_schema::tests::schema_map_ry5088_debounce_variable ... ok [INFO] [stdout] test registry::tests::test_supports_runtime_vid_pid_with_alias ... ok [INFO] [stdout] test timing::tests::test_send_retries ... ok [INFO] [stdout] test timing::tests::test_query_retries ... ok [INFO] [stdout] test registry::tests::test_shared_vid_pid ... ok [INFO] [stdout] test rgb::tests::test_num_pages ... ok [INFO] [stdout] test timing::tests::test_default_delay_ms ... ok [INFO] [stdout] test command_schema::tests::schema_map_probe_only_allows_get_usb_version ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 103 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/monsgeek_transport-abf144fc6b358d35) [INFO] [stdout] [INFO] [stdout] running 90 tests [INFO] [stdout] test bounds::tests::test_validate_key_index_both_exceed ... ok [INFO] [stdout] test bounds::tests::test_validate_key_index_at_boundary_fails ... ok [INFO] [stdout] test bounds::tests::test_validate_key_index_zero_valid ... ok [INFO] [stdout] test controller::tests::controller_new_allows_immediate_first_command ... ok [INFO] [stdout] test discovery::tests::test_device_info_struct_fields ... ok [INFO] [stdout] test discovery::tests::test_enumerate_devices_exists_with_correct_signature ... ok [INFO] [stdout] test bounds::tests::test_udev_rules_file_exists ... ok [INFO] [stdout] test discovery::tests::test_probe_device_at_exists_with_correct_signature ... ok [INFO] [stdout] test discovery::tests::test_probe_devices_exists_with_correct_signature ... ok [INFO] [stdout] test error::tests::test_bounds_violation_stores_fields ... ok [INFO] [stdout] test error::tests::test_echo_mismatch_stores_expected ... ok [INFO] [stdout] test error::tests::test_from_rusb_io_maps_to_usb ... ok [INFO] [stdout] test error::tests::test_from_rusb_timeout_maps_to_usb ... ok [INFO] [stdout] test bounds::tests::test_validate_write_request_missing_layer ... ok [INFO] [stdout] test bounds::tests::test_validate_write_request_valid ... ok [INFO] [stdout] test error::tests::test_invalid_command_payload_display ... ok [INFO] [stdout] test error::tests::test_kernel_driver_active_stores_interface ... ok [INFO] [stdout] test flow_control::tests::dongle_status_has_response_normalized_layout ... ok [INFO] [stdout] test flow_control::tests::empty_placeholder_detection_checks_prefix ... ok [INFO] [stdout] test flow_control::tests::normalize_query_response_accepts_direct_echo ... ok [INFO] [stdout] test flow_control::tests::normalize_query_response_accepts_report_id_prefixed_echo ... ok [INFO] [stdout] test flow_control::tests::normalize_query_response_rejects_mismatch ... ok [INFO] [stdout] test flow_control::tests::normalize_query_response_accepts_two_zero_prefixed_echo ... ok [INFO] [stdout] test flow_control::tests::test_query_raw_exists_with_correct_signature ... ok [INFO] [stdout] test flow_control::tests::test_query_command_exists_with_correct_signature ... ok [INFO] [stdout] test error::tests::test_usb_error_display ... ok [INFO] [stdout] test flow_control::tests::test_uses_protocol_timing_constants ... ok [INFO] [stdout] test bounds::tests::test_validate_write_request_missing_key_count ... ok [INFO] [stdout] test bounds::tests::test_validate_key_index_layer_at_boundary_fails ... ok [INFO] [stdout] test error::tests::test_device_not_found_display ... ok [INFO] [stdout] test flow_control::tests::dongle_status_has_response_report_id_leaked_layout ... ok [INFO] [stdout] test active_path::tests::state_freshness_honors_age ... ok [INFO] [stdout] test bounds::tests::test_validate_key_index_max_valid ... ok [INFO] [stdout] test error::tests::test_timeout_display ... ok [INFO] [stdout] test input::tests::test_modifier_press ... ok [INFO] [stdout] test input::tests::test_releases_before_presses ... ok [INFO] [stdout] test input::tests::test_duplicate_hid_in_report_emits_single_press ... ok [INFO] [stdout] test input::tests::test_release_all_keys_with_state ... ok [INFO] [stdout] test input::tests::test_modifier_release ... ok [INFO] [stdout] test input::tests::test_single_key_press ... ok [INFO] [stdout] test input::tests::test_debounce_suppresses_fast_repress ... ok [INFO] [stdout] test input::tests::test_multiple_modifiers ... ok [INFO] [stdout] test input::tests::test_duplicate_prev_key_releases_once ... ok [INFO] [stdout] test input::tests::test_debounce_disabled ... ok [INFO] [stdout] test input::tests::test_debounce_allows_press_after_window ... ok [INFO] [stdout] test active_path::tests::write_read_roundtrip ... ok [INFO] [stdout] test active_path::tests::state_file_path_is_hex_encoded ... ok [INFO] [stdout] test input::tests::test_short_report_ignored ... ok [INFO] [stdout] test keymap::tests::test_modifiers ... ok [INFO] [stdout] test keymap::tests::test_no_duplicates_in_all_keycodes ... ok [INFO] [stdout] test input::tests::test_release_all_keys_empty ... ok [INFO] [stdout] test input::tests::test_single_key_release ... ok [INFO] [stdout] test input::tests::test_six_simultaneous_keys ... ok [INFO] [stdout] test input::tests::test_unmapped_scancode_ignored ... ok [INFO] [stdout] test keymap::tests::test_all_keycodes_contains_modifiers ... ok [INFO] [stdout] test keymap::tests::test_all_keycodes_count ... ok [INFO] [stdout] test keymap::tests::test_all_python_keys ... ok [INFO] [stdout] test keymap::tests::test_extended_f_keys ... ok [INFO] [stdout] test flow_control::tests::test_send_command_exists_with_correct_signature ... ok [INFO] [stdout] test keymap::tests::test_unmapped ... ok [INFO] [stdout] test tests::test_connect_at_with_options_exists_with_correct_signature ... ok [INFO] [stdout] test tests::test_connect_exists_with_correct_signature ... ok [INFO] [stdout] test tests::test_connect_with_options_exists_with_correct_signature ... ok [INFO] [stdout] test tests::test_request_queue_size ... ok [INFO] [stdout] test tests::test_recover_exists_with_correct_signature ... ok [INFO] [stdout] test tests::test_transport_handle_is_clone ... ok [INFO] [stdout] test tests::test_transport_handle_read_feature_report_signature ... ok [INFO] [stdout] test tests::test_transport_handle_send_fire_and_forget_signature ... ok [INFO] [stdout] test tests::test_transport_handle_send_query_signature ... ok [INFO] [stdout] test tests::test_transport_handle_query_raw_signature ... ok [INFO] [stdout] test tests::test_transport_handle_shutdown_consumes_self ... ok [INFO] [stdout] test tests::test_transport_options_input_only ... ok [INFO] [stdout] test tests::test_transport_options_default_to_control_only ... ok [INFO] [stdout] test thread::tests::test_spawn_transport_thread_exists_with_correct_signature ... ok [INFO] [stdout] test thread::tests::test_command_request_fields ... ok [INFO] [stdout] test tests::test_channel_closed_on_handle_drop ... ok [INFO] [stdout] test thread::tests::test_transport_event_device_left ... ok [INFO] [stdout] test thread::tests::test_transport_event_device_arrived ... ok [INFO] [stdout] test thread::tests::test_transport_event_input_actions ... ok [INFO] [stdout] test thread::tests::test_transport_event_is_clone ... ok [INFO] [stdout] test usb::tests::test_hid_constants_match_reference ... ok [INFO] [stdout] test thread::tests::test_transport_event_is_debug ... ok [INFO] [stdout] test usb::tests::test_interface_constants ... ok [INFO] [stdout] test usb::tests::test_session_mode_default_unchanged ... ok [INFO] [stdout] test usb::tests::test_session_mode_input_only_variant ... ok [INFO] [stdout] test usb::tests::test_usb_timeout ... ok [INFO] [stdout] test usb::tests::test_session_mode_input_only_debug ... ok [INFO] [stdout] test usb::tests::test_usb_version_info_rejects_wrong_echo ... ok [INFO] [stdout] test usb::tests::test_usb_version_info_parse ... ok [INFO] [stdout] test usb::tests::test_vendor_set_report_rejects_wrong_size - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 90 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stderr] Running tests/hardware.rs (/opt/rustwide/target/debug/deps/hardware-14156a8b7bef7e03) [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] [stderr] Running tests/hotplug_debug.rs (/opt/rustwide/target/debug/deps/hotplug_debug-e5748447d9035235) [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] [stderr] Running tests/magnetism.rs (/opt/rustwide/target/debug/deps/magnetism-779282bd2b6530b4) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test test_magnetism_get_multi_query_format ... ok [INFO] [stdout] test test_magnetism_per_key_travel_parsing ... ok [INFO] [stdout] test test_magnetism_max_cal_format ... ok [INFO] [stdout] test test_magnetism_calibration_start_stop_format ... ok [INFO] [stdout] test test_magnetism_subcmd_constants ... ok [INFO] [stdout] test test_magnetism_set_multi_header_format ... ok [INFO] [stdout] test test_magnetism_key_mode_format ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/stall_recovery.rs (/opt/rustwide/target/debug/deps/stall_recovery-5e3c1b1973b5f9cf) [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] [stderr] Running tests/udev_debug.rs (/opt/rustwide/target/debug/deps/udev_debug-5569ffd327239a1c) [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] [stderr] Doc-tests monsgeek_cli [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] [stderr] Doc-tests monsgeek_driver [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] [stderr] Doc-tests monsgeek_firmware [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] [stderr] Doc-tests monsgeek_inputd [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] [stderr] Doc-tests monsgeek_protocol [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] [stderr] Doc-tests monsgeek_transport [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test crates/monsgeek-transport/src/lib.rs - TransportHandle (line 97) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.59s; merged doctests compilation took 0.58s [INFO] running `Command { std: "docker" "inspect" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85", kill_on_drop: false }` [INFO] [stdout] 955454d50a7c8dab479589564f21b11c03b285f15c0ed8d457dcab0609ba1e85