[INFO] fetching crate tui_games 0.2.0...
[INFO] testing tui_games-0.2.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate tui_games 0.2.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate tui_games 0.2.0
[INFO] finished tweaking crates.io crate tui_games 0.2.0
[INFO] tweaked toml for crates.io crate tui_games 0.2.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate tui_games 0.2.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tui_games 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f
[INFO] running `Command { std: "docker" "start" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f", 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" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f", 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" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[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 derive_more-impl v2.1.1
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling tui_games v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `KeyEventKind`
[INFO] [stdout]  --> src/game/pong.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crossterm::event::{Event, KeyCode, KeyEventKind};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `launch_game`, `launch_configured`, and `begin_match` are never used
[INFO] [stdout]    --> src/app.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn launch_game(&mut self, index: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn launch_configured(&mut self, index: usize, vs_cpu: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn begin_match(&mut self, mut game: Box<dyn Game>, vs_cpu: bool, menu_index: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_event` and `setup_default_match` are never used
[INFO] [stdout]   --> src/game/mod.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait Game {
[INFO] [stdout]    |           ---- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn handle_event(&mut self, event: Event);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn setup_default_match(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bindings` is never used
[INFO] [stdout]   --> src/game/controls.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl KeyMap {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn bindings(&self) -> &[KeyBinding] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_cpu` and `has_human` are never used
[INFO] [stdout]    --> src/game/multiplayer.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl MatchConfig {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn has_cpu(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn has_human(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.54s
[INFO] running `Command { std: "docker" "inspect" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f", 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" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tui_games v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.98s
[INFO] running `Command { std: "docker" "inspect" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f", 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" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/tui_games/ab5912496afe4793/out/tui_games-ab5912496afe4793)
[INFO] [stdout] 
[INFO] [stdout] running 137 tests
[INFO] [stdout] test app::tests::pong_vs_cpu_keeps_a_cpu_seat ... ok
[INFO] [stdout] test app::tests::game_over_overlay_shows_both_actions_on_min_playable_size ... ok
[INFO] [stdout] test app::tests::escape_from_ready_returns_to_menu ... ok
[INFO] [stdout] test app::tests::pause_overlay_shows_both_actions_on_min_playable_size ... ok
[INFO] [stdout] test app::tests::selecting_snake_opens_the_ready_overlay ... ok
[INFO] [stdout] test app::tests::selecting_pong_opens_the_ready_overlay ... ok
[INFO] [stdout] test app::tests::too_small_tetris_does_not_panic ... ok
[INFO] [stdout] test app::tests::pong_vs_player_uses_two_humans ... ok
[INFO] [stdout] test game::arkanoid::tests::ball_bounces_off_the_top_wall ... ok
[INFO] [stdout] test app::tests::too_small_menu_does_not_panic ... ok
[INFO] [stdout] test app::tests::ready_overlay_shows_controls_on_min_playable_size ... ok
[INFO] [stdout] test game::arkanoid::tests::clearing_the_wall_wins ... ok
[INFO] [stdout] test app::tests::too_small_pong_does_not_panic ... ok
[INFO] [stdout] test app::tests::enter_starts_a_single_player_game ... ok
[INFO] [stdout] test game::arkanoid::tests::last_life_ends_the_game ... ok
[INFO] [stdout] test app::tests::too_small_snake_does_not_panic ... ok
[INFO] [stdout] test game::arkanoid::tests::hitting_a_brick_scores_and_removes_it ... ok
[INFO] [stdout] test game::arkanoid::tests::letters_and_arrows_share_the_paddle ... ok
[INFO] [stdout] test game::arkanoid::tests::hold_moves_the_paddle_and_release_stops_it ... ok
[INFO] [stdout] test game::arkanoid::tests::missing_the_paddle_costs_a_life ... ok
[INFO] [stdout] test game::arkanoid::tests::poll_timeout_is_frame_sized ... ok
[INFO] [stdout] test game::arkanoid::tests::press_keeps_moving_through_the_key_repeat_delay ... ok
[INFO] [stdout] test app::tests::too_small_arkanoid_does_not_panic ... ok
[INFO] [stdout] test game::arkanoid::tests::min_size_includes_border ... ok
[INFO] [stdout] test game::arkanoid::tests::new_game_starts_with_a_full_wall_and_three_lives ... ok
[INFO] [stdout] test game::arkanoid::tests::paddle_reflects_the_ball_upward ... ok
[INFO] [stdout] test game::arkanoid::tests::release_of_the_other_key_does_not_stop_the_held_key ... ok
[INFO] [stdout] test game::arkanoid::tests::serve_keeps_the_ball_on_the_paddle ... ok
[INFO] [stdout] test game::arkanoid::tests::render_does_not_panic_when_the_terminal_is_too_small ... ok
[INFO] [stdout] test game::arkanoid::tests::render_shows_score_and_lives_at_min_playable_size ... ok
[INFO] [stdout] test game::arkanoid::tests::controls_map_left_and_right ... ok
[INFO] [stdout] test game::arkanoid::tests::silver_bricks_take_two_hits ... ok
[INFO] [stdout] test game::controls::tests::describe_groups_keys_by_action ... ok
[INFO] [stdout] test game::controls::tests::two_humans_do_not_share_keys ... ok
[INFO] [stdout] test game::controls::tests::two_player_map_splits_wasd_and_arrows ... ok
[INFO] [stdout] test game::controls::tests::vs_cpu_gives_unused_cpu_keys_to_the_human ... ok
[INFO] [stdout] test game::multiplayer::tests::all_human_lineups_are_allowed_when_constructed_explicitly ... ok
[INFO] [stdout] test game::controls::tests::summarize_skips_uppercase_duplicates ... ok
[INFO] [stdout] test game::multiplayer::tests::vs_player_is_two_humans_and_cpu_for_any_extra_seats ... ok
[INFO] [stdout] test game::pong::tests::min_size_includes_border ... ok
[INFO] [stdout] test game::multiplayer::tests::new_rejects_counts_outside_the_spec ... ok
[INFO] [stdout] test game::pong::tests::missing_the_player_paddle_scores_for_cpu ... ok
[INFO] [stdout] test game::pong::tests::ai_tracks_a_ball_coming_toward_it ... ok
[INFO] [stdout] test game::multiplayer::tests::vs_cpu_fills_min_players_so_a_four_player_minimum_still_has_cpus ... ok
[INFO] [stdout] test game::pong::tests::new_game_defaults_to_human_versus_cpu ... ok
[INFO] [stdout] test game::pong::tests::apply_match_rejects_unknown_seat_ids ... ok
[INFO] [stdout] test game::pong::tests::fractional_row_uses_half_blocks_instead_of_jumping ... ok
[INFO] [stdout] test game::pong::tests::ball_bounces_off_the_top_wall ... ok
[INFO] [stdout] test game::pong::tests::player_paddle_reflects_the_ball ... ok
[INFO] [stdout] test game::multiplayer::tests::vs_cpu_is_one_human_and_the_rest_cpu ... ok
[INFO] [stdout] test game::pong::tests::poll_timeout_is_frame_sized ... ok
[INFO] [stdout] test game::pong::tests::release_of_the_other_key_does_not_stop_the_held_key ... ok
[INFO] [stdout] test game::pong::tests::control_cpu_does_not_move_a_human_seat ... ok
[INFO] [stdout] test game::pong::tests::render_does_not_panic_when_the_terminal_is_too_small ... ok
[INFO] [stdout] test game::pong::tests::controls_map_actions_to_player_a_and_b ... ok
[INFO] [stdout] test game::pong::tests::hold_moves_the_paddle_and_release_stops_it ... ok
[INFO] [stdout] test game::snake::tests::eating_and_continuing_straight_does_not_kill ... ok
[INFO] [stdout] test game::snake::tests::eating_does_not_grow_immediately ... ok
[INFO] [stdout] test game::snake::tests::kitty_repeat_turns_and_release_does_not ... ok
[INFO] [stdout] test game::multiplayer::tests::new_rejects_duplicate_ids ... ok
[INFO] [stdout] test game::pong::tests::render_shows_both_scores_at_min_playable_size ... ok
[INFO] [stdout] test game::pong::tests::press_keeps_moving_through_the_key_repeat_delay ... ok
[INFO] [stdout] test game::pong::tests::two_humans_split_wasd_and_arrows ... ok
[INFO] [stdout] test game::pong::tests::wasd_and_arrows_share_the_player_paddle ... ok
[INFO] [stdout] test game::multiplayer::tests::spec_rejects_single_player_ranges ... ok
[INFO] [stdout] test game::pong::tests::reaching_eleven_ends_the_match ... ok
[INFO] [stdout] test game::snake::tests::min_size_fits_one_cell_cells_and_a_border ... ok
[INFO] [stdout] test game::snake::tests::moving_into_vacating_tail_is_safe ... ok
[INFO] [stdout] test game::snake::tests::queued_turn_applies_on_the_next_tick ... ok
[INFO] [stdout] test game::snake::tests::poll_timeout_is_the_time_left_until_the_next_move ... ok
[INFO] [stdout] test game::snake::tests::head_stays_yellow_while_food_is_in_the_mouth ... ok
[INFO] [stdout] test game::snake::tests::moving_into_tail_kills_when_that_cell_would_grow ... ok
[INFO] [stdout] test game::snake::tests::update_runs_every_elapsed_tick ... ok
[INFO] [stdout] test game::snake::tests::render_does_not_panic_when_the_terminal_is_too_small ... ok
[INFO] [stdout] test game::snake::tests::two_meals_grow_in_order_as_each_reaches_the_tail ... ok
[INFO] [stdout] test game::tetris::tests::a_resting_piece_locks_on_the_next_tick ... ok
[INFO] [stdout] test game::tetris::tests::cannot_move_into_locked_cells ... ok
[INFO] [stdout] test game::tetris::tests::cannot_move_through_walls ... ok
[INFO] [stdout] test game::tetris::tests::blocked_spawn_ends_the_game ... ok
[INFO] [stdout] test game::tetris::tests::completing_a_line_clears_it_and_drops_the_stack ... ok
[INFO] [stdout] test game::tetris::tests::four_lines_score_as_a_tetris ... ok
[INFO] [stdout] test game::snake::tests::snake_grows_when_tail_leaves_the_eaten_square ... ok
[INFO] [stdout] test game::tetris::tests::poll_timeout_is_the_time_left_until_gravity ... ok
[INFO] [stdout] test game::snake::tests::swallowed_food_travels_one_segment_per_tick ... ok
[INFO] [stdout] test game::tetris::tests::rotation_kicks_off_the_right_wall ... ok
[INFO] [stdout] test game::tetris::tests::soft_drop_moves_one_row_and_scores ... ok
[INFO] [stdout] test game::tetris::tests::t_piece_rotates_clockwise ... ok
[INFO] [stdout] test game::tetris::tests::gravity_moves_the_piece_down_one_row ... ok
[INFO] [stdout] test game::tetris::tests::update_runs_every_elapsed_gravity_tick ... ok
[INFO] [stdout] test game::tetris::tests::render_does_not_panic_when_the_terminal_is_too_small ... ok
[INFO] [stdout] test game::tetris::tests::hard_drop_locks_at_the_bottom_and_scores_distance ... ok
[INFO] [stdout] test game::tetris::tests::ten_lines_advance_the_level ... ok
[INFO] [stdout] test grid::tests::border_matches_the_playable_grid ... ok
[INFO] [stdout] test game::tetris::tests::left_and_right_keys_move_the_piece ... ok
[INFO] [stdout] test game::tetris::tests::min_size_fits_the_well_and_the_side_panel ... ok
[INFO] [stdout] test grid::tests::does_not_fit_a_short_terminal ... ok
[INFO] [stdout] test game::tetris::tests::o_piece_does_not_change_cells_when_rotating ... ok
[INFO] [stdout] test game::tetris::tests::seven_bag_deals_each_kind_once ... ok
[INFO] [stdout] test kitty::parse::tests::ctrl_shift_a ... ok
[INFO] [stdout] test kitty::parse::tests::ctrl_up_omits_leading_one ... ok
[INFO] [stdout] test kitty::parse::tests::decoder_skips_plain_text_then_reads_key ... ok
[INFO] [stdout] test kitty::parse::tests::f13_pua ... ok
[INFO] [stdout] test grid::tests::cells_tile_the_used_rect ... ok
[INFO] [stdout] test kitty::parse::tests::associated_text ... ok
[INFO] [stdout] test kitty::parse::tests::base_layout_without_shifted ... ok
[INFO] [stdout] test kitty::parse::tests::f1_letter_and_tilde ... ok
[INFO] [stdout] test kitty::parse::tests::modified_shift_tab_and_arrow_release ... ok
[INFO] [stdout] test kitty::parse::tests::left_shift_press ... ok
[INFO] [stdout] test kitty::parse::tests::arrow_unmodified ... ok
[INFO] [stdout] test kitty::parse::tests::ctrl_a ... ok
[INFO] [stdout] test kitty::parse::tests::insert_delete_pages ... ok
[INFO] [stdout] test kitty::parse::tests::keypad_enter_ctrl ... ok
[INFO] [stdout] test kitty::parse::tests::release_a ... ok
[INFO] [stdout] test kitty::parse::tests::shift_up ... ok
[INFO] [stdout] test kitty::parse::tests::shifted_and_base_layout ... ok
[INFO] [stdout] test kitty::parse::tests::super_hyper_meta_caps_num ... ok
[INFO] [stdout] test kitty::parse::tests::unidentified_text_event ... ok
[INFO] [stdout] test kitty::tests::enhancement_flags_match_spec_bits ... ok
[INFO] [stdout] test kitty::tests::action_includes_press_and_repeat_not_release ... ok
[INFO] [stdout] test kitty::tests::decoder_and_parse_skip_legacy_bytes ... ok
[INFO] [stdout] test game::tetris::tests::render_shows_hud_at_min_playable_size ... ok
[INFO] [stdout] test kitty::tests::modifiers_decode_protocol_offset ... ok
[INFO] [stdout] test kitty::tests::parse_sequence_exposes_press_repeat_release ... ok
[INFO] [stdout] test registry::tests::pong_accepts_vs_player ... ok
[INFO] [stdout] test registry::tests::snake_tetris_and_arkanoid_are_single_player ... ok
[INFO] [stdout] test kitty::parse::tests::decoder_splits_across_feeds ... ok
[INFO] [stdout] test kitty::parse::tests::escape_enter_tab_backspace ... ok
[INFO] [stdout] test kitty::parse::tests::mouse_sgr_is_skipped ... ok
[INFO] [stdout] test kitty::parse::tests::f5_through_f12 ... ok
[INFO] [stdout] test kitty::parse::tests::flags_report ... ok
[INFO] [stdout] test kitty::parse::tests::incomplete_csi ... ok
[INFO] [stdout] test kitty::parse::tests::repeat_a ... ok
[INFO] [stdout] test registry::tests::every_multiplayer_game_launches_with_a_cpu_player ... ok
[INFO] [stdout] test kitty::parse::tests::plain_a ... ok
[INFO] [stdout] test kitty::parse::tests::shift_tab_legacy ... ok
[INFO] [stdout] test kitty::parse::tests::ss3_arrow ... ok
[INFO] [stdout] test game::pong::tests::large_ball_is_a_disk_not_a_filled_rectangle ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 137 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f", kill_on_drop: false }`
[INFO] [stdout] ae369c35c1e0bbbd7a4c90d667f3047078b899dc8f166cb1e016df62d0269e4f
