[INFO] fetching crate reovim-module-tetromino 0.14.4...
[INFO] testing reovim-module-tetromino-0.14.4 against 1.95.0 for beta-1.96-2
[INFO] extracting crate reovim-module-tetromino 0.14.4 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate reovim-module-tetromino 0.14.4
[INFO] finished tweaking crates.io crate reovim-module-tetromino 0.14.4
[INFO] tweaked toml for crates.io crate reovim-module-tetromino 0.14.4 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate reovim-module-tetromino 0.14.4 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate reovim-module-tetromino 0.14.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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded reovim-driver-command v0.14.4
[INFO] [stderr]   Downloaded reovim-driver-input v0.14.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 27b41aa763e5cb4f9d4d976d7e323ec20b27b695ed294bcee8753c6771c6644c
[INFO] running `Command { std: "docker" "start" "-a" "27b41aa763e5cb4f9d4d976d7e323ec20b27b695ed294bcee8753c6771c6644c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "27b41aa763e5cb4f9d4d976d7e323ec20b27b695ed294bcee8753c6771c6644c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27b41aa763e5cb4f9d4d976d7e323ec20b27b695ed294bcee8753c6771c6644c", kill_on_drop: false }`
[INFO] [stdout] 27b41aa763e5cb4f9d4d976d7e323ec20b27b695ed294bcee8753c6771c6644c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 152eec9ef00146694655e26baf2818e2498e8f91c0062fac6c68905b130e7451
[INFO] running `Command { std: "docker" "start" "-a" "152eec9ef00146694655e26baf2818e2498e8f91c0062fac6c68905b130e7451", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling arc-swap v1.8.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling reovim-module-macros v0.14.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling reovim-client-model v0.14.4
[INFO] [stderr]    Compiling reovim-arch v0.14.4
[INFO] [stderr]    Compiling reovim-kernel v0.14.4
[INFO] [stderr]    Compiling reovim-driver-vfs v0.14.4
[INFO] [stderr]    Compiling reovim-driver-clipboard v0.14.4
[INFO] [stderr]    Compiling reovim-driver-layout v0.14.4
[INFO] [stderr]    Compiling reovim-driver-search v0.14.4
[INFO] [stderr]    Compiling reovim-driver-undo v0.14.4
[INFO] [stderr]    Compiling reovim-driver-command-types v0.14.4
[INFO] [stderr]    Compiling reovim-driver-session v0.14.4
[INFO] [stderr]    Compiling reovim-driver-input v0.14.4
[INFO] [stderr]    Compiling reovim-driver-command v0.14.4
[INFO] [stderr]    Compiling reovim-module-tetromino v0.14.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.97s
[INFO] running `Command { std: "docker" "inspect" "152eec9ef00146694655e26baf2818e2498e8f91c0062fac6c68905b130e7451", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "152eec9ef00146694655e26baf2818e2498e8f91c0062fac6c68905b130e7451", kill_on_drop: false }`
[INFO] [stdout] 152eec9ef00146694655e26baf2818e2498e8f91c0062fac6c68905b130e7451
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fd70d30944f73ab3d530bf3a39d1057bc188acccacede227e5742ef2061dc686
[INFO] running `Command { std: "docker" "start" "-a" "fd70d30944f73ab3d530bf3a39d1057bc188acccacede227e5742ef2061dc686", kill_on_drop: false }`
[INFO] [stderr]    Compiling reovim-module-tetromino v0.14.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.70s
[INFO] running `Command { std: "docker" "inspect" "fd70d30944f73ab3d530bf3a39d1057bc188acccacede227e5742ef2061dc686", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fd70d30944f73ab3d530bf3a39d1057bc188acccacede227e5742ef2061dc686", kill_on_drop: false }`
[INFO] [stdout] fd70d30944f73ab3d530bf3a39d1057bc188acccacede227e5742ef2061dc686
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ed40068733e6365c969291411f861623e5da7758776f036a76f7e529bb2f5522
[INFO] running `Command { std: "docker" "start" "-a" "ed40068733e6365c969291411f861623e5da7758776f036a76f7e529bb2f5522", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/reovim_module_tetromino-aabf54190b8863d4)
[INFO] [stdout] 
[INFO] [stdout] running 402 tests
[INFO] [stdout] test bridge::tests::bridge_kind ... ok
[INFO] [stdout] test bridge::tests::bridge_scope ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_countdown_no_room_id ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_countdown ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_countdown_no_lobby ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_inactive ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_game_single_player ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_menu ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_lobby_no_lobby_state ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_lobby_with_rooms ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_no_state ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_result_no_lobby ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_result ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_room ... ok
[INFO] [stdout] test bridge::tests::is_active_no_state ... ok
[INFO] [stdout] test bridge::tests::serialize_piece_format ... ok
[INFO] [stdout] test bridge::tests::snapshot_active_no_game ... ok
[INFO] [stdout] test bridge::tests::serialize_board_all_colors ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_result_no_room_id ... ok
[INFO] [stdout] test bridge::tests::snapshot_game_over ... ok
[INFO] [stdout] test bridge::tests::snapshot_active_with_game ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_room_no_lobby ... ok
[INFO] [stdout] test bridge::tests::is_active_active_state ... ok
[INFO] [stdout] test bridge::tests::snapshot_inactive ... ok
[INFO] [stdout] test bridge::tests::is_active_inactive_state ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_room_no_room_id ... ok
[INFO] [stdout] test bridge::tests::snapshot_lobby_screen_fallback ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_game_multiplayer_with_opponents ... ok
[INFO] [stdout] test bridge::tests::snapshot_menu_screen ... ok
[INFO] [stdout] test bridge::tests::snapshot_no_state_returns_none ... ok
[INFO] [stdout] test bridge::tests::snapshot_paused ... ok
[INFO] [stdout] test bridge::tests::snapshot_result_fallback ... ok
[INFO] [stdout] test bridge::tests::snapshot_with_held_piece ... ok
[INFO] [stdout] test bridge::tests::tick_countdown_no_room_id ... ok
[INFO] [stdout] test bridge::tests::tick_countdown_expired_starts_game ... ok
[INFO] [stdout] test bridge::tests::tick_countdown_still_counting ... ok
[INFO] [stdout] test bridge::tests::tick_countdown_screen_catches_up_when_already_in_progress ... ok
[INFO] [stdout] test bridge::tests::tick_gravity_applies ... ok
[INFO] [stdout] test bridge::tests::tick_game_over ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_game_multiplayer_no_opponents ... ok
[INFO] [stdout] test bridge::tests::context_snapshot_result_no_winner ... ok
[INFO] [stdout] test bridge::tests::snapshot_board_with_blocks ... ok
[INFO] [stdout] test bridge::tests::tick_inactive ... ok
[INFO] [stdout] test bridge::tests::snapshot_board_with_grey_blocks ... ok
[INFO] [stdout] test bridge::tests::tick_garbage_multiplayer ... ok
[INFO] [stdout] test bridge::tests::tick_multiplayer_death_no_finish_when_multiple_alive ... ok
[INFO] [stdout] test bridge::tests::snapshot_countdown_fallback ... ok
[INFO] [stdout] test bridge::tests::tick_multiplayer_no_client_id ... ok
[INFO] [stdout] test bridge::tests::tick_multiplayer_no_garbage ... ok
[INFO] [stdout] test bridge::tests::tick_multiplayer_no_room ... ok
[INFO] [stdout] test bridge::tests::tick_no_game ... ok
[INFO] [stdout] test bridge::tests::tick_multiplayer_death_marks_dead ... ok
[INFO] [stdout] test bridge::tests::tick_no_state ... ok
[INFO] [stdout] test bridge::tests::serialize_board_empty ... ok
[INFO] [stdout] test bridge::tests::tick_room_screen_detects_countdown ... ok
[INFO] [stdout] test bridge::tests::tick_no_gravity_when_not_due ... ok
[INFO] [stdout] test bridge::tests::tick_room_screen_detects_in_progress ... ok
[INFO] [stdout] test bridge::tests::tick_paused ... ok
[INFO] [stdout] test bridge::tests::tick_room_screen_no_room_id ... ok
[INFO] [stdout] test bridge::tests::tick_single_player_game_over_no_death_detection ... ok
[INFO] [stdout] test bridge::tests::tick_surviving_player_transitions_to_result_when_match_finished ... ok
[INFO] [stdout] test commands::tests::all_debug ... ok
[INFO] [stdout] test commands::tests::all_default_constructable ... ok
[INFO] [stdout] test commands::tests::command_handlers_count ... ok
[INFO] [stdout] test commands::tests::command_handlers_unique_ids ... ok
[INFO] [stdout] test commands::tests::enter_lobby_metadata ... ok
[INFO] [stdout] test commands::tests::enter_result_metadata ... ok
[INFO] [stdout] test commands::tests::hard_drop_metadata ... ok
[INFO] [stdout] test commands::tests::hold_metadata ... ok
[INFO] [stdout] test commands::tests::join_room_by_index_metadata ... ok
[INFO] [stdout] test commands::tests::move_right_metadata ... ok
[INFO] [stdout] test commands::tests::create_room_metadata ... ok
[INFO] [stdout] test commands::tests::pause_metadata ... ok
[INFO] [stdout] test commands::tests::open_menu_metadata ... ok
[INFO] [stdout] test commands::tests::ready_toggle_metadata ... ok
[INFO] [stdout] test commands::tests::quit_metadata ... ok
[INFO] [stdout] test commands::tests::leave_room_metadata ... ok
[INFO] [stdout] test commands::tests::start_metadata ... ok
[INFO] [stdout] test commands::tests::leave_lobby_metadata ... ok
[INFO] [stdout] test commands::tests::start_single_metadata ... ok
[INFO] [stdout] test commands::tests::tick_metadata ... ok
[INFO] [stdout] test game::tests::absolute_cells_of_piece ... ok
[INFO] [stdout] test commands::tests::move_left_metadata ... ok
[INFO] [stdout] test game::tests::all_rotations_nonempty ... ok
[INFO] [stdout] test game::tests::active_piece_debug ... ok
[INFO] [stdout] test commands::tests::rotate_cw_metadata ... ok
[INFO] [stdout] test game::tests::block_color_clone ... ok
[INFO] [stdout] test game::tests::block_color_debug ... ok
[INFO] [stdout] test commands::tests::soft_drop_metadata ... ok
[INFO] [stdout] test game::tests::active_piece_clone ... ok
[INFO] [stdout] test game::tests::block_color_eq ... ok
[INFO] [stdout] test game::tests::bar_piece_cells ... ok
[INFO] [stdout] test game::tests::bend_piece_cells_all_rotations ... ok
[INFO] [stdout] test game::tests::arc_piece_cells_all_rotations ... ok
[INFO] [stdout] test commands::tests::start_match_metadata ... ok
[INFO] [stdout] test commands::tests::restart_metadata ... ok
[INFO] [stdout] test commands::tests::rotate_ccw_metadata ... ok
[INFO] [stdout] test game::tests::block_color_grey_copy ... ok
[INFO] [stdout] test game::tests::block_color_grey_debug ... ok
[INFO] [stdout] test game::tests::block_color_grey_eq ... ok
[INFO] [stdout] test game::tests::block_color_new_variants ... ok
[INFO] [stdout] test game::tests::clear_four_lines ... ok
[INFO] [stdout] test game::tests::clear_no_lines ... ok
[INFO] [stdout] test game::tests::clear_non_contiguous_lines ... ok
[INFO] [stdout] test game::tests::clear_single_line ... ok
[INFO] [stdout] test game::tests::collision_left_wall ... ok
[INFO] [stdout] test game::tests::clear_triple_lines ... ok
[INFO] [stdout] test game::tests::collision_floor ... ok
[INFO] [stdout] test game::tests::collision_right_wall ... ok
[INFO] [stdout] test game::tests::collision_with_existing_block ... ok
[INFO] [stdout] test game::tests::cw_ccw_inverse ... ok
[INFO] [stdout] test game::tests::dash_piece_cells ... ok
[INFO] [stdout] test game::tests::game_state_clone ... ok
[INFO] [stdout] test game::tests::game_state_debug ... ok
[INFO] [stdout] test game::tests::garbage_line_fills_bottom_with_grey ... ok
[INFO] [stdout] test game::tests::garbage_line_gap_clamped ... ok
[INFO] [stdout] test game::tests::garbage_line_multiple ... ok
[INFO] [stdout] test game::tests::garbage_line_shifts_rows_up ... ok
[INFO] [stdout] test game::tests::ghost_piece_above_blocks ... ok
[INFO] [stdout] test game::tests::ghost_piece_on_empty_board ... ok
[INFO] [stdout] test game::tests::hard_drop_onto_piece ... ok
[INFO] [stdout] test game::tests::hard_drop_to_bottom ... ok
[INFO] [stdout] test game::tests::level_from_lines ... ok
[INFO] [stdout] test game::tests::line_piece_cells ... ok
[INFO] [stdout] test game::tests::lock_and_advance_game_over ... ok
[INFO] [stdout] test game::tests::lock_and_advance_resets_hold ... ok
[INFO] [stdout] test game::tests::lock_and_advance_spawns_next ... ok
[INFO] [stdout] test game::tests::lock_piece_places_cells ... ok
[INFO] [stdout] test game::tests::lock_piece_skips_negative_rows ... ok
[INFO] [stdout] test game::tests::move_down_success ... ok
[INFO] [stdout] test game::tests::move_left_blocked ... ok
[INFO] [stdout] test game::tests::move_left_success ... ok
[INFO] [stdout] test game::tests::move_right_blocked ... ok
[INFO] [stdout] test game::tests::move_right_success ... ok
[INFO] [stdout] test game::tests::new_game_initial_state ... ok
[INFO] [stdout] test game::tests::no_collision_above_board ... ok
[INFO] [stdout] test game::tests::no_collision_on_empty_board ... ok
[INFO] [stdout] test game::tests::piece_cell_counts ... ok
[INFO] [stdout] test game::tests::piece_type_all_has_ten ... ok
[INFO] [stdout] test game::tests::piece_type_clone ... ok
[INFO] [stdout] test game::tests::piece_type_color_names ... ok
[INFO] [stdout] test game::tests::piece_type_colors ... ok
[INFO] [stdout] test game::tests::clear_double_lines ... ok
[INFO] [stdout] test game::tests::move_down_blocked_at_floor ... ok
[INFO] [stdout] test game::tests::piece_type_debug ... ok
[INFO] [stdout] test game::tests::pip_piece_cells_symmetric ... ok
[INFO] [stdout] test game::tests::piece_type_eq ... ok
[INFO] [stdout] test game::tests::piece_type_names ... ok
[INFO] [stdout] test game::tests::pip_rotation_always_succeeds ... ok
[INFO] [stdout] test game::tests::rotate_cw_blocked_at_wall ... ok
[INFO] [stdout] test game::tests::rotate_cw_near_bottom ... ok
[INFO] [stdout] test game::tests::rotation_ccw_cycle ... ok
[INFO] [stdout] test game::tests::rotate_cw_success ... ok
[INFO] [stdout] test game::tests::rotation_ccw_full_cycle ... ok
[INFO] [stdout] test game::tests::rotation_debug ... ok
[INFO] [stdout] test game::tests::rotation_full_cycle ... ok
[INFO] [stdout] test game::tests::score_double_line_level_0 ... ok
[INFO] [stdout] test game::tests::rotation_eq ... ok
[INFO] [stdout] test game::tests::score_four_lines_level_0 ... ok
[INFO] [stdout] test game::tests::score_scales_with_level ... ok
[INFO] [stdout] test game::tests::score_single_line_level_0 ... ok
[INFO] [stdout] test game::tests::score_zero_lines ... ok
[INFO] [stdout] test game::tests::skew_piece_cells ... ok
[INFO] [stdout] test game::tests::spawn_centering ... ok
[INFO] [stdout] test game::tests::spawn_all_pieces_valid ... ok
[INFO] [stdout] test game::tests::tick_clears_lines ... ok
[INFO] [stdout] test game::tests::tee_piece_cells_all_rotations ... ok
[INFO] [stdout] test game::tests::tick_interval_decreases ... ok
[INFO] [stdout] test game::tests::tick_game_over ... ok
[INFO] [stdout] test game::tests::tick_interval_level_0 ... ok
[INFO] [stdout] test game::tests::star_piece_cells_symmetric ... ok
[INFO] [stdout] test game::tests::score_triple_line_level_0 ... ok
[INFO] [stdout] test game::tests::tick_when_game_over_does_nothing ... ok
[INFO] [stdout] test game::tests::wall_kick_bar_piece ... ok
[INFO] [stdout] test game::tests::wall_kick_ccw_at_wall ... ok
[INFO] [stdout] test game::tests::wall_kick_cw_near_floor ... ok
[INFO] [stdout] test game::tests::wall_kick_cw_with_blocks ... ok
[INFO] [stdout] test ids::tests::command_ids_are_unique ... ok
[INFO] [stdout] test game::tests::rotation_cw_cycle ... ok
[INFO] [stdout] test game::tests::tick_locks_at_bottom ... ok
[INFO] [stdout] test game::tests::zag_piece_cells ... ok
[INFO] [stdout] test game::tests::rotate_ccw_success ... ok
[INFO] [stdout] test game::tests::tick_interval_minimum ... ok
[INFO] [stdout] test game::tests::tick_moves_piece_down ... ok
[INFO] [stdout] test game::tests::rotate_ccw_blocked ... ok
[INFO] [stdout] test game::tests::tick_no_active_piece ... ok
[INFO] [stdout] test game::tests::rotation_clone ... ok
[INFO] [stdout] test ids::tests::module_id ... ok
[INFO] [stdout] test modes::tests::all_modes ... ok
[INFO] [stdout] test modes::tests::lobby_discriminant ... ok
[INFO] [stdout] test modes::tests::lobby_mode_id_matches_constant ... ok
[INFO] [stdout] test modes::tests::lobby_display_name ... ok
[INFO] [stdout] test modes::tests::lobby_no_char_input ... ok
[INFO] [stdout] test modes::tests::lobby_no_selection ... ok
[INFO] [stdout] test modes::tests::lobby_no_inheritance ... ok
[INFO] [stdout] test modes::tests::lobby_not_entry ... ok
[INFO] [stdout] test modes::tests::menu_cursor_hidden ... ok
[INFO] [stdout] test modes::tests::menu_display_name ... ok
[INFO] [stdout] test modes::tests::lobby_cursor_hidden ... ok
[INFO] [stdout] test modes::tests::menu_mode_id_matches_constant ... ok
[INFO] [stdout] test modes::tests::menu_no_inheritance ... ok
[INFO] [stdout] test modes::tests::menu_no_selection ... ok
[INFO] [stdout] test modes::tests::menu_no_char_input ... ok
[INFO] [stdout] test modes::tests::mode_copy_clone ... ok
[INFO] [stdout] test modes::tests::menu_not_entry ... ok
[INFO] [stdout] test modes::tests::menu_discriminant ... ok
[INFO] [stdout] test modes::tests::paused_discriminant ... ok
[INFO] [stdout] test modes::tests::paused_mode_id_matches_constant ... ok
[INFO] [stdout] test modes::tests::mode_debug ... ok
[INFO] [stdout] test modes::tests::mode_hash ... ok
[INFO] [stdout] test modes::tests::paused_display_name ... ok
[INFO] [stdout] test modes::tests::paused_cursor_hidden ... ok
[INFO] [stdout] test modes::tests::play_discriminant ... ok
[INFO] [stdout] test modes::tests::paused_no_char_input ... ok
[INFO] [stdout] test modes::tests::paused_no_inheritance ... ok
[INFO] [stdout] test modes::tests::paused_no_selection ... ok
[INFO] [stdout] test modes::tests::paused_not_entry ... ok
[INFO] [stdout] test modes::tests::play_display_name ... ok
[INFO] [stdout] test modes::tests::result_no_selection ... ok
[INFO] [stdout] test modes::tests::result_not_entry ... ok
[INFO] [stdout] test modes::tests::play_not_entry ... ok
[INFO] [stdout] test modes::tests::play_no_inheritance ... ok
[INFO] [stdout] test modes::tests::result_discriminant ... ok
[INFO] [stdout] test modes::tests::result_cursor_hidden ... ok
[INFO] [stdout] test modes::tests::result_mode_id_matches_constant ... ok
[INFO] [stdout] test modes::tests::result_display_name ... ok
[INFO] [stdout] test ids::tests::command_ids_have_correct_module ... ok
[INFO] [stdout] test modes::tests::result_no_char_input ... ok
[INFO] [stdout] test modes::tests::mode_module ... ok
[INFO] [stdout] test modes::tests::play_cursor_hidden ... ok
[INFO] [stdout] test modes::tests::room_no_selection ... ok
[INFO] [stdout] test modes::tests::room_display_name ... ok
[INFO] [stdout] test modes::tests::room_not_entry ... ok
[INFO] [stdout] test resolver::tests::lobby_digit_joins_room ... ok
[INFO] [stdout] test resolver::tests::lobby_digit_no_lobby_state ... ok
[INFO] [stdout] test resolver::tests::lobby_digit_no_client_id ... ok
[INFO] [stdout] test resolver::tests::lobby_digit_no_room ... ok
[INFO] [stdout] test resolver::tests::lobby_mode_id ... ok
[INFO] [stdout] test resolver::tests::lobby_no_inheritance ... ok
[INFO] [stdout] test modes::tests::room_discriminant ... ok
[INFO] [stdout] test modes::tests::room_no_char_input ... ok
[INFO] [stdout] test modes::tests::room_no_inheritance ... ok
[INFO] [stdout] test modes::tests::room_mode_id_matches_constant ... ok
[INFO] [stdout] test modes::tests::result_no_inheritance ... ok
[INFO] [stdout] test resolver::tests::menu_default ... ok
[INFO] [stdout] test resolver::tests::menu_exact_only ... ok
[INFO] [stdout] test resolver::tests::menu_no_inheritance ... ok
[INFO] [stdout] test resolver::tests::menu_not_found ... ok
[INFO] [stdout] test resolver::tests::menu_prefix_only ... ok
[INFO] [stdout] test resolver::tests::paused_default ... ok
[INFO] [stdout] test resolver::tests::paused_exact_only ... ok
[INFO] [stdout] test resolver::tests::paused_exact_with_longer ... ok
[INFO] [stdout] test resolver::tests::paused_mode_id ... ok
[INFO] [stdout] test resolver::tests::paused_no_inheritance ... ok
[INFO] [stdout] test resolver::tests::paused_not_found ... ok
[INFO] [stdout] test resolver::tests::paused_prefix_only ... ok
[INFO] [stdout] test resolver::tests::play_default ... ok
[INFO] [stdout] test resolver::tests::play_exact_only_clears_pending ... ok
[INFO] [stdout] test resolver::tests::play_no_inheritance ... ok
[INFO] [stdout] test resolver::tests::play_exact_with_longer_clears_pending ... ok
[INFO] [stdout] test modes::tests::room_cursor_hidden ... ok
[INFO] [stdout] test modes::tests::play_mode_id_matches_constant ... ok
[INFO] [stdout] test resolver::tests::play_resolve_with_extensions_applies_garbage ... ok
[INFO] [stdout] test resolver::tests::result_exact_only ... ok
[INFO] [stdout] test resolver::tests::lobby_non_digit_delegates_keymap ... ok
[INFO] [stdout] test resolver::tests::result_mode_id ... ok
[INFO] [stdout] test resolver::tests::lobby_not_found ... ok
[INFO] [stdout] test resolver::tests::play_resolve_with_extensions_checks_tick ... ok
[INFO] [stdout] test resolver::tests::menu_mode_id ... ok
[INFO] [stdout] test resolver::tests::play_resolve_with_extensions_transitions_to_result ... ok
[INFO] [stdout] test resolver::tests::result_default ... ok
[INFO] [stdout] test resolver::tests::play_mode_id ... ok
[INFO] [stdout] test resolver::tests::play_not_found_clears_pending ... ok
[INFO] [stdout] test modes::tests::play_no_char_input ... ok
[INFO] [stdout] test resolver::tests::play_prefix_keeps_pending ... ok
[INFO] [stdout] test resolver::tests::play_reset_clears_pending ... ok
[INFO] [stdout] test modes::tests::play_no_selection ... ok
[INFO] [stdout] test resolver::tests::result_no_inheritance ... ok
[INFO] [stdout] test resolver::tests::result_not_found ... ok
[INFO] [stdout] test resolver::tests::result_prefix_only ... ok
[INFO] [stdout] test resolver::tests::room_default ... ok
[INFO] [stdout] test resolver::tests::room_detects_countdown ... ok
[INFO] [stdout] test resolver::tests::room_no_inheritance ... ok
[INFO] [stdout] test resolver::tests::room_detects_match_start ... ok
[INFO] [stdout] test resolver::tests::room_prefix_only ... ok
[INFO] [stdout] test resolver::tests::room_detects_match_start_when_tick_already_started_game ... ok
[INFO] [stdout] test resolver::tests::room_exact_only ... ok
[INFO] [stdout] test state::tests::hold_piece_game_over ... ok
[INFO] [stdout] test state::tests::apply_tick_advances_game ... ok
[INFO] [stdout] test resolver::tests::room_mode_id ... ok
[INFO] [stdout] test state::tests::apply_tick_no_game_does_nothing ... ok
[INFO] [stdout] test state::tests::lobby_broadcast_garbage ... ok
[INFO] [stdout] test state::tests::hold_piece_blocked_when_already_used ... ok
[INFO] [stdout] test state::tests::hold_piece_no_game ... ok
[INFO] [stdout] test state::tests::hold_piece_no_active_piece ... ok
[INFO] [stdout] test state::tests::lobby_alive_count ... ok
[INFO] [stdout] test state::tests::lobby_broadcast_garbage_nonexistent_room ... ok
[INFO] [stdout] test state::tests::lobby_countdown_remaining_active ... ok
[INFO] [stdout] test state::tests::lobby_countdown_remaining_expired ... ok
[INFO] [stdout] test resolver::tests::room_no_match_start_delegates ... ok
[INFO] [stdout] test state::tests::hold_piece_first_time ... ok
[INFO] [stdout] test resolver::tests::room_no_room_id_delegates ... ok
[INFO] [stdout] test resolver::tests::room_not_found ... ok
[INFO] [stdout] test state::tests::lobby_finish_match ... ok
[INFO] [stdout] test state::tests::lobby_finish_match_nonexistent ... ok
[INFO] [stdout] test state::tests::lobby_is_countdown_nonexistent ... ok
[INFO] [stdout] test state::tests::lobby_is_in_progress ... ok
[INFO] [stdout] test state::tests::lobby_is_finished ... ok
[INFO] [stdout] test state::tests::lobby_is_in_progress_nonexistent ... ok
[INFO] [stdout] test state::tests::lobby_join_in_progress_room ... ok
[INFO] [stdout] test state::tests::lobby_join_room ... ok
[INFO] [stdout] test state::tests::lobby_join_nonexistent_room ... ok
[INFO] [stdout] test state::tests::lobby_last_alive_all_dead ... ok
[INFO] [stdout] test state::tests::lobby_countdown_remaining_not_counting ... ok
[INFO] [stdout] test state::tests::lobby_is_finished_nonexistent ... ok
[INFO] [stdout] test state::tests::lobby_countdown_remaining_nonexistent ... ok
[INFO] [stdout] test state::tests::lobby_countdown_remaining_no_start_time ... ok
[INFO] [stdout] test state::tests::lobby_create ... ok
[INFO] [stdout] test state::tests::lobby_debug ... ok
[INFO] [stdout] test state::tests::lobby_leave_room_auto_removes_empty ... ok
[INFO] [stdout] test state::tests::lobby_is_countdown ... ok
[INFO] [stdout] test state::tests::lobby_leave_room ... ok
[INFO] [stdout] test state::tests::lobby_leave_room_cleans_garbage_queue ... ok
[INFO] [stdout] test state::tests::lobby_last_alive ... ok
[INFO] [stdout] test state::tests::lobby_leave_nonexistent_room ... ok
[INFO] [stdout] test state::tests::lobby_mark_dead ... ok
[INFO] [stdout] test state::tests::lobby_last_alive_nonexistent ... ok
[INFO] [stdout] test state::tests::lobby_room_ids_sorted ... ok
[INFO] [stdout] test state::tests::lobby_create_room ... ok
[INFO] [stdout] test state::tests::hold_piece_swap ... ok
[INFO] [stdout] test state::tests::lobby_mark_dead_nonexistent_room ... ok
[INFO] [stdout] test state::tests::lobby_start_match ... ok
[INFO] [stdout] test state::tests::lobby_start_match_nonexistent ... ok
[INFO] [stdout] test state::tests::lobby_take_garbage_empty ... ok
[INFO] [stdout] test state::tests::lobby_take_garbage_nonexistent_room ... ok
[INFO] [stdout] test state::tests::lobby_start_countdown ... ok
[INFO] [stdout] test state::tests::lobby_toggle_ready ... ok
[INFO] [stdout] test state::tests::lobby_start_countdown_nonexistent ... ok
[INFO] [stdout] test state::tests::lobby_take_garbage_drains ... ok
[INFO] [stdout] test state::tests::lobby_room_summaries ... ok
[INFO] [stdout] test state::tests::lobby_toggle_ready_all_ready_min_2 ... ok
[INFO] [stdout] test state::tests::lobby_toggle_ready_in_progress ... ok
[INFO] [stdout] test state::tests::lobby_toggle_ready_back_to_joined ... ok
[INFO] [stdout] test state::tests::lock_clear_spawn_no_game ... ok
[INFO] [stdout] test state::tests::player_status_copy ... ok
[INFO] [stdout] test state::tests::room_countdown_start_default_none ... ok
[INFO] [stdout] test state::tests::room_dead_players_default_empty ... ok
[INFO] [stdout] test state::tests::room_id_copy_eq ... ok
[INFO] [stdout] test state::tests::room_debug ... ok
[INFO] [stdout] test state::tests::room_id_debug ... ok
[INFO] [stdout] test state::tests::next_piece_all_types_appear ... ok
[INFO] [stdout] test state::tests::next_piece_history_caps_at_4 ... ok
[INFO] [stdout] test state::tests::next_piece_returns_valid_type ... ok
[INFO] [stdout] test state::tests::lobby_toggle_ready_nonexistent_player ... ok
[INFO] [stdout] test state::tests::lobby_toggle_ready_nonexistent ... ok
[INFO] [stdout] test state::tests::lock_clear_spawn_advances_game ... ok
[INFO] [stdout] test state::tests::player_status_eq ... ok
[INFO] [stdout] test state::tests::player_status_debug ... ok
[INFO] [stdout] test state::tests::room_id_hash ... ok
[INFO] [stdout] test state::tests::room_id_ne ... ok
[INFO] [stdout] test state::tests::room_new ... ok
[INFO] [stdout] test state::tests::room_player_count ... ok
[INFO] [stdout] test state::tests::room_status_countdown_eq ... ok
[INFO] [stdout] test state::tests::room_status_copy ... ok
[INFO] [stdout] test state::tests::room_status_eq ... ok
[INFO] [stdout] test state::tests::room_status_debug ... ok
[INFO] [stdout] test state::tests::room_status_finished_eq ... ok
[INFO] [stdout] test state::tests::room_summary_clone ... ok
[INFO] [stdout] test state::tests::room_summary_debug ... ok
[INFO] [stdout] test state::tests::screen_countdown_eq ... ok
[INFO] [stdout] test state::tests::screen_copy_eq ... ok
[INFO] [stdout] test state::tests::screen_result_debug ... ok
[INFO] [stdout] test state::tests::screen_ne ... ok
[INFO] [stdout] test state::tests::screen_default_is_menu ... ok
[INFO] [stdout] test state::tests::screen_result_eq ... ok
[INFO] [stdout] test state::tests::should_tick_false_immediately ... ok
[INFO] [stdout] test state::tests::should_tick_false_when_game_over ... ok
[INFO] [stdout] test state::tests::should_tick_false_when_no_game ... ok
[INFO] [stdout] test state::tests::state_create_defaults ... ok
[INFO] [stdout] test state::tests::screen_debug ... ok
[INFO] [stdout] test state::tests::state_debug ... ok
[INFO] [stdout] test state::tests::start_game_activates ... ok
[INFO] [stdout] test state::tests::should_tick_false_when_paused ... ok
[INFO] [stdout] test state::tests::start_game_populates_history ... ok
[INFO] [stdout] test state::tests::start_game_clears_old_history ... ok
[INFO] [stdout] test tests::keybindings_lobby_mode_count ... ok
[INFO] [stdout] test tests::keybindings_menu_mode_count ... ok
[INFO] [stdout] test tests::keybindings_not_empty ... ok
[INFO] [stdout] test tests::keybindings_play_mode_count ... ok
[INFO] [stdout] test tests::keybindings_result_mode_count ... ok
[INFO] [stdout] test tests::module_default ... ok
[INFO] [stdout] test tests::module_id ... ok
[INFO] [stdout] test tests::module_name ... ok
[INFO] [stdout] test tests::keybindings_room_mode_count ... ok
[INFO] [stdout] test tests::module_init_registers_all ... ok
[INFO] [stdout] test tests::module_exit ... ok
[INFO] [stdout] test tests::test_extension_kinds ... ok
[INFO] [stdout] test tests::module_version ... ok
[INFO] [stdout] test tests::no_vim_normal_keybindings ... ok
[INFO] [stdout] test tests::keybindings_paused_mode_count ... ok
[INFO] [stdout] test resolver::tests::lobby_default ... ok
[INFO] [stdout] test state::tests::lobby_alive_count_nonexistent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 402 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests reovim_module_tetromino
[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" "ed40068733e6365c969291411f861623e5da7758776f036a76f7e529bb2f5522", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ed40068733e6365c969291411f861623e5da7758776f036a76f7e529bb2f5522", kill_on_drop: false }`
[INFO] [stdout] ed40068733e6365c969291411f861623e5da7758776f036a76f7e529bb2f5522
