[INFO] cloning repository https://github.com/geldata/vtio [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/geldata/vtio" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeldata%2Fvtio", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeldata%2Fvtio'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 200238543cb28f61962b7d01164b7609e490782f [INFO] testing geldata/vtio against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeldata%2Fvtio" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/geldata/vtio [INFO] finished tweaking git repo https://github.com/geldata/vtio [INFO] tweaked toml for git repo https://github.com/geldata/vtio written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/geldata/vtio on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/geldata/vtio 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 1 package to latest compatible version [INFO] [stderr] Adding vt-push-parser v0.13.1 [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded target-triple v1.0.0 [INFO] [stderr] Downloaded phf_generator v0.12.1 [INFO] [stderr] Downloaded phf v0.12.1 [INFO] [stderr] Downloaded linkme-impl v0.3.35 [INFO] [stderr] Downloaded linkme v0.3.35 [INFO] [stderr] Downloaded phf_macros v0.12.1 [INFO] [stderr] Downloaded phf_shared v0.12.1 [INFO] [stderr] Downloaded vtparse v0.7.0 [INFO] [stderr] Downloaded is-terminal v0.4.17 [INFO] [stderr] Downloaded ansi-parser v0.9.1 [INFO] [stderr] Downloaded numtoa v0.2.4 [INFO] [stderr] Downloaded better_any v0.2.1 [INFO] [stderr] Downloaded trybuild v1.0.114 [INFO] [stderr] Downloaded termion v4.0.6 [INFO] [stderr] Downloaded atoi_simd v0.16.1 [INFO] [stderr] Downloaded pretty_assertions v1.4.1 [INFO] [stderr] Downloaded vt-push-parser v0.13.1 [INFO] [stderr] Downloaded debug_unsafe v0.1.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2f823f404a0e61cb788f3d35bdd535a144f3fd1d92548e97c595374e23c08b4f [INFO] running `Command { std: "docker" "start" "-a" "2f823f404a0e61cb788f3d35bdd535a144f3fd1d92548e97c595374e23c08b4f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2f823f404a0e61cb788f3d35bdd535a144f3fd1d92548e97c595374e23c08b4f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2f823f404a0e61cb788f3d35bdd535a144f3fd1d92548e97c595374e23c08b4f", kill_on_drop: false }` [INFO] [stdout] 2f823f404a0e61cb788f3d35bdd535a144f3fd1d92548e97c595374e23c08b4f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4f149fdbaa58989ba752e76c6ec41025c4fbb9a614eaccc817a3b0f41cc37275 [INFO] running `Command { std: "docker" "start" "-a" "4f149fdbaa58989ba752e76c6ec41025c4fbb9a614eaccc817a3b0f41cc37275", kill_on_drop: false }` [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling linkme-impl v0.3.35 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling palette v0.7.6 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling proc-macro2 v1.0.105 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling phf_shared v0.12.1 [INFO] [stderr] Compiling linkme v0.3.35 [INFO] [stderr] Compiling debug_unsafe v0.1.3 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling better_any v0.2.1 [INFO] [stderr] Compiling atoi_simd v0.16.1 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling phf_generator v0.12.1 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling vt-push-parser v0.13.1 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling quote v1.0.43 [INFO] [stderr] Compiling xparsecolor v0.1.0 (/opt/rustwide/workdir/crates/xparsecolor) [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling toml_parser v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling phf_macros v0.12.1 [INFO] [stderr] Compiling palette_derive v0.7.6 [INFO] [stderr] Compiling num_enum_derive v0.7.5 [INFO] [stderr] Compiling phf v0.12.1 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling num_enum v0.7.5 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling vtansi_derive v0.0.0 (/opt/rustwide/workdir/crates/vtansi_derive) [INFO] [stderr] Compiling vtansi v0.0.0 (/opt/rustwide/workdir/crates/vtansi) [INFO] [stderr] Compiling vtio v0.0.0 (/opt/rustwide/workdir/crates/vtio) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.72s [INFO] running `Command { std: "docker" "inspect" "4f149fdbaa58989ba752e76c6ec41025c4fbb9a614eaccc817a3b0f41cc37275", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4f149fdbaa58989ba752e76c6ec41025c4fbb9a614eaccc817a3b0f41cc37275", kill_on_drop: false }` [INFO] [stdout] 4f149fdbaa58989ba752e76c6ec41025c4fbb9a614eaccc817a3b0f41cc37275 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e9c4580973f748026ee3dbbde86775b7833a1648f716416e23bd3df14883fc64 [INFO] running `Command { std: "docker" "start" "-a" "e9c4580973f748026ee3dbbde86775b7833a1648f716416e23bd3df14883fc64", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling phf_generator v0.12.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling zerocopy v0.8.33 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling ordered-float v4.6.0 [INFO] [stderr] Compiling zerocopy-derive v0.8.33 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling phf_macros v0.12.1 [INFO] [stderr] Compiling palette v0.7.6 [INFO] [stderr] Compiling pest v2.8.5 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling atomic v0.6.1 [INFO] [stderr] Compiling terminfo v0.9.0 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling phf v0.12.1 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling lab v0.11.0 [INFO] [stderr] Compiling vtansi_derive v0.0.0 (/opt/rustwide/workdir/crates/vtansi_derive) [INFO] [stderr] Compiling heapless v0.8.0 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling csscolorparser v0.6.2 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling clap_builder v4.5.54 [INFO] [stderr] Compiling bit-set v0.5.3 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling hash32 v0.3.1 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling euclid v0.22.11 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling pest_meta v2.8.5 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling pest_generator v2.8.5 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling wezterm-dynamic-derive v0.1.1 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling deltae v0.3.2 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling vtansi v0.0.0 (/opt/rustwide/workdir/crates/vtansi) [INFO] [stderr] Compiling pest_derive v2.8.5 [INFO] [stderr] Compiling wezterm-dynamic v0.2.1 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling num_enum_derive v0.7.5 [INFO] [stderr] Compiling clap v4.5.54 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling wezterm-input-types v0.1.0 [INFO] [stderr] Compiling wezterm-bidi v0.2.3 [INFO] [stderr] Compiling wezterm-color-types v0.3.0 [INFO] [stderr] Compiling mac_address v1.1.8 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling wezterm-blob-leases v0.1.1 [INFO] [stderr] Compiling filedescriptor v0.8.3 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling termios v0.3.3 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling vtparse v0.6.2 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling target-triple v1.0.0 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling num_enum v0.7.5 [INFO] [stderr] Compiling memmem v0.1.1 [INFO] [stderr] Compiling numtoa v0.2.4 [INFO] [stderr] Compiling finl_unicode v1.4.0 [INFO] [stderr] Compiling xparsecolor v0.1.0 (/opt/rustwide/workdir/crates/xparsecolor) [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling fixedbitset v0.4.2 [INFO] [stderr] Compiling vte v0.15.0 [INFO] [stderr] Compiling termion v4.0.6 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling ansi-parser v0.9.1 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling vtparse v0.7.0 [INFO] [stderr] Compiling pretty_assertions v1.4.1 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling toml v0.9.11+spec-1.1.0 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling fancy-regex v0.11.0 [INFO] [stderr] Compiling trybuild v1.0.114 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling vtio v0.0.0 (/opt/rustwide/workdir/crates/vtio) [INFO] [stderr] Compiling termwiz v0.23.3 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 10s [INFO] running `Command { std: "docker" "inspect" "e9c4580973f748026ee3dbbde86775b7833a1648f716416e23bd3df14883fc64", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e9c4580973f748026ee3dbbde86775b7833a1648f716416e23bd3df14883fc64", kill_on_drop: false }` [INFO] [stdout] e9c4580973f748026ee3dbbde86775b7833a1648f716416e23bd3df14883fc64 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ac7d0e72b9c5f2c0a2157a2908bfa0b1da33810ee9f9479c026ca0cf440bc2c1 [INFO] running `Command { std: "docker" "start" "-a" "ac7d0e72b9c5f2c0a2157a2908bfa0b1da33810ee9f9479c026ca0cf440bc2c1", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.69s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vtansi-570a35ff1c278b25) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test bitflags::tests::test_bitflags_empty ... ok [INFO] [stdout] test bitflags::tests::test_bitflags_decode ... ok [INFO] [stdout] test bitflags::tests::test_bitflags_encode ... ok [INFO] [stdout] test bitflags::tests::test_bitflags_roundtrip ... ok [INFO] [stdout] test bitflags::tests::test_bitflags_transform_decode ... ok [INFO] [stdout] test bitflags::tests::test_bitflags_transform_empty ... ok [INFO] [stdout] test bitflags::tests::test_bitflags_transform_encode ... ok [INFO] [stdout] test bitflags::tests::test_bitflags_unknown_bits_retained ... ok [INFO] [stdout] test byte_trie::tests::test_advance_slice ... ok [INFO] [stdout] test bitflags::tests::test_bitflags_transform_roundtrip ... ok [INFO] [stdout] test byte_trie::tests::test_ansi_sequences ... ok [INFO] [stdout] test byte_trie::tests::test_cursor_copy ... ok [INFO] [stdout] test byte_trie::tests::test_empty_trie ... ok [INFO] [stdout] test byte_trie::tests::test_high_byte_lookup_returns_none ... ok [INFO] [stdout] test byte_trie::tests::test_single_key ... ok [INFO] [stdout] test byte_trie::tests::test_builder ... ok [INFO] [stdout] test byte_trie::tests::test_prefix_matching ... ok [INFO] [stdout] test byte_trie::tests::test_shared_prefix ... ok [INFO] [stdout] test byte_trie::tests::test_dead_end ... ok [INFO] [stdout] test byte_trie::tests::test_rejects_high_bytes - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 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/vtansi_derive-c93db00a921c59d2) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test helpers::doc_spans::tests::test_doc_spans_empty ... ok [INFO] [stdout] test helpers::doc_spans::tests::test_doc_spans_add_const ... ok [INFO] [stdout] test helpers::type_analysis::tests::test_extract_vec_inner_type ... ok [INFO] [stdout] test helpers::type_analysis::tests::test_is_vec_type ... ok [INFO] [stdout] test helpers::type_analysis::tests::test_extract_vec_inner_type_complex ... ok [INFO] [stdout] test helpers::type_analysis::tests::test_extract_vec_inner_type_not_vec ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vtio-b1da1ec14adbfead) [INFO] [stdout] test helpers::doc_spans::tests::test_generate_imports ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 288 tests [INFO] [stdout] test event::charset::tests::test_const_esc_sequences ... ok [INFO] [stdout] test event::charset::tests::test_variable_esc_sequences ... ok [INFO] [stdout] test event::color::tests::test_request_cursor_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_request_default_foreground_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_highlight_background_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_default_foreground_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_request_default_background_color_set_rgb ... ok [INFO] [stdout] test event::charset::tests::test_c0_control_codes ... ok [INFO] [stdout] test event::color::tests::test_request_highlight_foreground_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_cursor_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_highlight_foreground_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_request_palette_color_query_background ... ok [INFO] [stdout] test event::color::tests::test_request_palette_color_query_foreground ... ok [INFO] [stdout] test event::color::tests::test_request_palette_color_set_background ... ok [INFO] [stdout] test event::color::tests::test_request_palette_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_request_palette_color_set_rgb_intensity ... ok [INFO] [stdout] test event::color::tests::test_request_pointer_foreground_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_palette_color_set_named_color ... ok [INFO] [stdout] test event::color::tests::test_request_pointer_foreground_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_request_tektronix_background_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_tektronix_background_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_request_tektronix_cursor_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_tektronix_cursor_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_request_pointer_background_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_request_palette_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_tektronix_foreground_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_pointer_background_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_palette_color_set_foreground ... ok [INFO] [stdout] test event::color::tests::test_request_tektronix_foreground_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_terminal_color_action_encode_query ... ok [INFO] [stdout] test event::color::tests::test_terminal_color_action_encode_set_rgb_intensity ... ok [INFO] [stdout] test event::color::tests::test_terminal_color_action_encode_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_terminal_color_action_from_xcolor ... ok [INFO] [stdout] test event::color::tests::test_terminal_color_action_query ... ok [INFO] [stdout] test event::color::tests::test_terminal_color_action_set ... ok [INFO] [stdout] test event::color::tests::test_request_default_background_color_set_rgb_intensity ... ok [INFO] [stdout] test event::color::tests::test_request_default_background_color_query ... ok [INFO] [stdout] test event::color::tests::test_request_default_foreground_color_set_named ... ok [INFO] [stdout] test event::color::tests::test_request_highlight_background_color_set_rgb ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_encode_query ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_encode_set_rgb_intensity ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_is_palette ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_query ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_query_foreground ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_new ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_encode_cie_xyz ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_encode_cie_luv ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_encode_rgb ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_query_background ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_new ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_encode_named_color_dark_slate_gray ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_encode_named_color ... ok [INFO] [stdout] test event::cursor::tests::test_tab_stop_report_encoding ... ok [INFO] [stdout] test event::cursor::tests::test_cursor_information_report_encoding ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_data_integrity_malfunction ... ok [INFO] [stdout] test event::cursor::tests::test_cursor_style_report_data_parsing ... ok [INFO] [stdout] test event::cursor::tests::test_cursor_style_report_encoding ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_encode_cie_lab ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_encode_rgb_intensity ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_from_xcolor ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_color_encode_tek_hvc ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_data_integrity_ready ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_locator_available ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_keyboard ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_locator_type ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_macro_space ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_no_locator ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_printer_ready ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_memory_checksum ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_operating_status ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_sessions_not_configured ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_no_printer ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_udk_locked ... ok [INFO] [stdout] test event::dsr::tests::test_request_operating_status ... ok [INFO] [stdout] test event::dsr::tests::test_request_printer_status ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_sessions_available ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_alias_types_encode ... ok [INFO] [stdout] test event::dsr::tests::test_request_memory_checksum ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_base_layout_key ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_encode_set ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_base_layout_key_equality ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_sessions_not_available ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_udk_unlocked ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_printer_not_ready ... ok [INFO] [stdout] test event::dsr::tests::test_request_operating_status_private ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_backspace_key ... ok [INFO] [stdout] test event::color::tests::test_terminal_palette_action_set ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_base_layout_key_hash ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_base_layout_key ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_caps_lock_state ... ok [INFO] [stdout] test event::dsr::tests::test_dsr_report_kind_unknown ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_escape_key ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_media_keys ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_enter_key ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_modifier_keys ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_lock_keys ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_char_with_modifiers ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_event_types ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_keypad_state ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_num_lock_state ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_shift_alt_ctrl ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_ctrl_key_definitions ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_simple_char ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_encode_key_event_char ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_tab_key ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_encode_key_event_ctrl_char ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_unicode_char ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_with_text ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_full_sequence ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_csi_u_function_keys ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_encode_key_event_arrow ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_encode_key_event_f1 ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_get_key_event_encoding_with_mode_flags ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_hash ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_matches_key_without_base_layout ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_mode_flags_alt_high_bit_set ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_mode_flags_application_keypad ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_mode_flags_backspace_sends_delete ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_encode_key_event_f5 ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_mode_flags_cursor_keys_mode ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_mode_flags_alt_ctrl_high_bit_set ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_mode_flags_cursor_keys_with_modifiers ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_mode_flags_delete_key_sends_del ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_mode_flags_home_end_cursor_mode ... ok [INFO] [stdout] test event::keyboard::keycode::tests::keycode_display ... ok [INFO] [stdout] test event::keyboard::mode::tests::test_keyboard_enhancement_flags_display ... ok [INFO] [stdout] test event::keyboard::mode::tests::test_keyboard_enhancement_flags_query ... ok [INFO] [stdout] test event::keyboard::mode::tests::test_pop_keyboard_enhancement_flags ... ok [INFO] [stdout] test event::keyboard::mode::tests::test_push_keyboard_enhancement_flags_all ... ok [INFO] [stdout] test event::keyboard::mode::tests::test_push_keyboard_enhancement_flags_disambiguate ... ok [INFO] [stdout] test event::keyboard::mode::tests::test_push_keyboard_enhancement_flags_empty ... ok [INFO] [stdout] test event::keyboard::modifier::tests::key_modifiers_display ... ok [INFO] [stdout] test event::keyboard::modifier::tests::modifier_keycode_display_other ... ok [INFO] [stdout] test event::keyboard::modifier::tests::modifier_keycode_display ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_matches_key_with_base_layout ... ok [INFO] [stdout] test event::keyboard::keycode::tests::media_keycode_display ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_default_mouse_event_encode ... ok [INFO] [stdout] test event::keyboard::modifier::tests::xterm_param_round_trip ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_default_mouse_event_encode_out_of_range ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_multibyte_mouse_event_encode_large_values ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_multibyte_mouse_event_encode_small_values ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_parse_mouse_event_bytes_insufficient_bytes ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_multibyte_mouse_event_encode_max_range ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_parse_mouse_event_bytes_out_of_range_nul ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_parse_mouse_event_bytes_utf8_large_coordinates ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_multibyte_mouse_event_roundtrip ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_parse_mouse_event_bytes_utf8_multibyte_format ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_sgr_parse_left_click ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_sgr_parse_right_click ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_parse_mouse_event_bytes_default_format ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_sgr_parse_scroll_up ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_urxvt_missing_params ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_urxvt_parse_large_coordinates ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_parse_mouse_event_bytes_utf8_near_max_range ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_urxvt_parse_scroll_up ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_sgr_mouse_to_mouse_event ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_urxvt_parse_left_click ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_urxvt_parse_right_click ... ok [INFO] [stdout] test event::shell::tests::test_command_end_with_exit_code_nonzero ... ok [INFO] [stdout] test event::shell::tests::test_command_end_with_exit_code_zero ... ok [INFO] [stdout] test event::shell::tests::test_command_end_with_large_exit_code ... ok [INFO] [stdout] test event::mouse::encoding::tests::test_urxvt_parse_with_modifiers ... ok [INFO] [stdout] test event::shell::tests::test_prompt_start ... ok [INFO] [stdout] test event::shell::tests::test_command_end_without_exit_code ... ok [INFO] [stdout] test event::terminal::tests::test_primary_device_attributes_response_encoding ... ok [INFO] [stdout] test event::shell::tests::test_command_start ... ok [INFO] [stdout] test event::terminal::tests::test_request_termcap_query_multiple ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_encode_key_event_arrow_with_modifiers ... ok [INFO] [stdout] test event::terminal::tests::test_request_terminal_unit_id_encoding ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_encode_key_event_enter ... ok [INFO] [stdout] test event::terminal::tests::test_request_termcap_query_single ... ok [INFO] [stdout] test event::terminal::tests::test_secondary_device_attributes_response_encoding_no_extra ... ok [INFO] [stdout] test event::keyboard::encoding::tests::test_equality ... ok [INFO] [stdout] test event::terminal::tests::test_select_vt_conformance_level_encoding ... ok [INFO] [stdout] test event::terminal::tests::test_select_vt_conformance_level_encoding_no_c1 ... ok [INFO] [stdout] test event::terminal::tests::test_request_terminal_name_and_version_encoding ... ok [INFO] [stdout] test event::shell::tests::test_prompt_end ... ok [INFO] [stdout] test event::terminal::tests::test_termcap_query_response_constructors ... ok [INFO] [stdout] test event::terminal::tests::test_termcap_query_response_helpers ... ok [INFO] [stdout] test event::terminal::tests::test_termcap_query_response_negative ... ok [INFO] [stdout] test event::keyboard::modifier::tests::xterm_param_empty ... ok [INFO] [stdout] test event::terminal::tests::test_hex_string_roundtrip ... ok [INFO] [stdout] test event::window::tests::test_maximize_window ... ok [INFO] [stdout] test event::window::tests::test_maximize_window_alt ... ok [INFO] [stdout] test event::window::tests::test_pop_title_with_which ... ok [INFO] [stdout] test event::window::tests::test_minimize_window ... ok [INFO] [stdout] test event::window::tests::test_pop_title_without_which ... ok [INFO] [stdout] test event::window::tests::test_refresh_window ... ok [INFO] [stdout] test event::window::tests::test_push_title_with_which ... ok [INFO] [stdout] test event::terminal::tests::test_secondary_device_attributes_response_encoding ... ok [INFO] [stdout] test event::window::tests::test_raise_window ... ok [INFO] [stdout] test event::terminal::tests::test_termcap_query_result_list_multiple ... ok [INFO] [stdout] test event::window::tests::test_push_title_without_which ... ok [INFO] [stdout] test event::window::tests::test_report_cell_size_pixels ... ok [INFO] [stdout] test event::terminal::tests::test_termcap_query_result_list_negative_response ... ok [INFO] [stdout] test event::terminal::tests::test_termcap_query_result_list_valid_with_value ... ok [INFO] [stdout] test event::terminal::tests::test_termcap_query_result_list_valid_without_value ... ok [INFO] [stdout] test event::terminal::tests::test_tertiary_device_attributes_response_encoding ... ok [INFO] [stdout] test event::window::tests::test_get_icon_name ... ok [INFO] [stdout] test event::window::tests::test_lower_window ... ok [INFO] [stdout] test event::window::tests::test_cell_size_pixels_report ... ok [INFO] [stdout] test event::window::tests::test_get_title ... ok [INFO] [stdout] test event::window::tests::test_report_size ... ok [INFO] [stdout] test event::window::tests::test_report_screen_size ... ok [INFO] [stdout] test event::window::tests::test_report_window_size_pixels ... ok [INFO] [stdout] test event::window::tests::test_restore_window ... ok [INFO] [stdout] test event::window::tests::test_report_window_position_with_mode ... ok [INFO] [stdout] test event::window::tests::test_screen_size_report ... ok [INFO] [stdout] test event::window::tests::test_report_window_position_without_mode ... ok [INFO] [stdout] test event::window::tests::test_report_window_state ... ok [INFO] [stdout] test event::window::tests::test_set_title_and_icon_name ... ok [INFO] [stdout] test event::window::tests::test_set_window_position ... ok [INFO] [stdout] test event::window::tests::test_screen_size_pixels_report ... ok [INFO] [stdout] test event::window::tests::test_set_window_size_pixels ... ok [INFO] [stdout] test event::window::tests::test_set_icon_name ... ok [INFO] [stdout] test event::window::tests::test_window_position_report ... ok [INFO] [stdout] test event::window::tests::test_set_size ... ok [INFO] [stdout] test event::window::tests::test_window_size_pixels_report ... ok [INFO] [stdout] test event::window::tests::test_report_screen_size_pixels ... ok [INFO] [stdout] test event::window::tests::test_set_title ... ok [INFO] [stdout] test event::window::tests::test_window_state_report_iconified ... ok [INFO] [stdout] test event::window::tests::test_window_state_report_not_iconified ... ok [INFO] [stdout] test parser::input::tests::test_alt_enter ... ok [INFO] [stdout] test parser::input::tests::test_basic_text_input ... ok [INFO] [stdout] test event::window::tests::test_size_report ... ok [INFO] [stdout] test parser::input::tests::test_cpr_not_misparse_as_f3 ... ok [INFO] [stdout] test parser::input::tests::test_bracketed_paste_multiple_chunks ... ok [INFO] [stdout] test parser::input::tests::test_complex_sequence_combination ... ok [INFO] [stdout] test parser::input::tests::test_cursor_blinking_mode_response ... ok [INFO] [stdout] test parser::input::tests::test_arrow_key ... ok [INFO] [stdout] test parser::input::tests::test_bracketed_paste_with_escape_sequences ... ok [INFO] [stdout] test parser::input::tests::test_bracketed_paste_with_newlines ... ok [INFO] [stdout] test parser::input::tests::test_bracketed_paste_with_ss3_sequence ... ok [INFO] [stdout] test parser::input::tests::test_bracketed_paste_with_csi_sequence ... ok [INFO] [stdout] test parser::input::tests::test_bracketed_paste_large_content ... ok [INFO] [stdout] test parser::input::tests::test_bracketed_paste_basic ... ok [INFO] [stdout] test parser::input::tests::test_bracketed_paste_mode_response ... ok [INFO] [stdout] test parser::input::tests::test_cursor_keys_mode_response ... ok [INFO] [stdout] test parser::input::tests::test_escape_key_with_idle ... ok [INFO] [stdout] test parser::input::tests::test_cursor_position_report ... ok [INFO] [stdout] test parser::input::tests::test_device_attributes ... ok [INFO] [stdout] test parser::input::tests::test_emoji_input ... ok [INFO] [stdout] test parser::input::tests::test_escape_key_followed_by_text ... ok [INFO] [stdout] test parser::input::tests::test_keyboard_enhancement_flags ... ok [INFO] [stdout] test parser::input::tests::test_incomplete_utf8_across_chunks ... ok [INFO] [stdout] test parser::input::tests::test_keyboard_enhancement_pop ... ok [INFO] [stdout] test parser::input::tests::test_idle_resets_incomplete_sequence ... ok [INFO] [stdout] test parser::input::tests::test_low_level_csi_event ... ok [INFO] [stdout] test parser::input::tests::test_keyboard_enhancement_push ... ok [INFO] [stdout] test parser::input::tests::test_keyboard_enhancement_query ... ok [INFO] [stdout] test parser::input::tests::test_mouse_events_sgr_format ... ok [INFO] [stdout] test parser::input::tests::test_mouse_events_default_format ... ok [INFO] [stdout] test parser::input::tests::test_mouse_events_urxvt_format ... ok [INFO] [stdout] test parser::input::tests::test_mouse_events_utf8_multibyte_format ... ok [INFO] [stdout] test parser::input::tests::test_osc_and_keyboard_enhancement ... ok [INFO] [stdout] test parser::input::tests::test_osc_foreground_color_response ... ok [INFO] [stdout] test parser::input::tests::test_osc_palette_color_response ... ok [INFO] [stdout] test parser::input::tests::test_osc_unrecognized_number ... ok [INFO] [stdout] test parser::input::tests::test_osc_sequences ... ok [INFO] [stdout] test parser::input::tests::test_osc_cancelled ... ok [INFO] [stdout] test parser::input::tests::test_ss3_cursor_keys ... ok [INFO] [stdout] test parser::input::tests::test_osc_chunked_parsing ... ok [INFO] [stdout] test parser::input::tests::test_ss3_f_key_sequences ... ok [INFO] [stdout] test parser::input::tests::test_terminal_name_and_version_response ... ok [INFO] [stdout] test parser::output::tests::test_basic_text ... ok [INFO] [stdout] test parser::input::tests::test_tertiary_device_attributes_response ... ok [INFO] [stdout] test parser::output::tests::test_plaintext_ascii ... ok [INFO] [stdout] test parser::output::tests::test_plaintext_encode ... ok [INFO] [stdout] test parser::output::tests::test_plaintext_incomplete_utf8_across_chunks ... ok [INFO] [stdout] test parser::output::tests::test_csi_cursor_position ... ok [INFO] [stdout] test parser::output::tests::test_osc_133_shell_integration ... ok [INFO] [stdout] test parser::output::tests::test_osc_title ... ok [INFO] [stdout] test parser::output::tests::test_scroll_down_with_param ... ok [INFO] [stdout] test parser::output::tests::test_request_primary_device_attributes_with_param ... ok [INFO] [stdout] test parser::output::tests::test_scroll_down_and_track_mouse_disambiguation ... ok [INFO] [stdout] test parser::output::tests::test_scroll_down_default_param ... ok [INFO] [stdout] test parser::output::tests::test_esc_save_cursor ... ok [INFO] [stdout] test parser::output::tests::test_csi_sgr ... ok [INFO] [stdout] test parser::output::tests::test_mixed_sequences ... ok [INFO] [stdout] test parser::output::tests::test_plaintext_direction ... ok [INFO] [stdout] test parser::output::tests::test_plaintext_invalid_utf8_skipped ... ok [INFO] [stdout] test parser::output::tests::test_plaintext_utf8 ... ok [INFO] [stdout] test parser::output::tests::test_scroll_down_encode_roundtrip ... ok [INFO] [stdout] test parser::output::tests::test_request_primary_device_attributes_without_param ... ok [INFO] [stdout] test parser::output::tests::test_request_terminal_name_and_version ... ok [INFO] [stdout] test parser::output::tests::test_track_mouse ... ok [INFO] [stdout] test tests::test_trie_memory_usage ... ok [INFO] [stdout] test parser::output::tests::test_track_mouse_encode_roundtrip ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 288 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] === Running test suite: Keyboard Input === [INFO] [stdout] [INFO] [stdout] running "Regular character 'a'" ... [INFO] [stdout] running "Regular character 'z'" ... [INFO] [stdout] running "Space character" ... [INFO] [stdout] running "Enter key" ... [INFO] [stdout] running "Tab key" ... [INFO] [stdout] running "Ctrl+A" ... [INFO] [stdout] running "Ctrl+C" ... [INFO] [stdout] running "Ctrl+D" ... [INFO] [stdout] running "Escape key" ... [INFO] [stdout] running "Alt+a (ESC followed by 'a')" ... [INFO] [stdout] running "Alt+z" ... [INFO] [stdout] running "Arrow Up (CSI sequence)" ... [INFO] [stdout] running "Arrow Down" ... [INFO] [stdout] running "Arrow Right" ... [INFO] [stdout] running "Arrow Left" ... [INFO] [stdout] running "Home key" ... [INFO] [stdout] running "End key" ... [INFO] [stdout] running "F1 key (SS3 sequence)" ... [INFO] [stdout] running "F2 key" ... [INFO] [stdout] running "F3 key" ... [INFO] [stdout] running "F4 key" ... [INFO] [stdout] running "Delete key" ... [INFO] [stdout] running "Backspace" ... [INFO] [stdout] running "Multiple characters" ... [INFO] [stdout] running "Mixed regular and control" ... [INFO] [stderr] Running tests/parser.rs (/opt/rustwide/target/debug/deps/parser-030560d694a2560b) [INFO] [stdout] running "Ctrl+Shift+A" ... [INFO] [stdout] running "Ctrl+Alt+Delete" ... [INFO] [stdout] running "Alt+Shift+F1" ... [INFO] [stdout] running "Ctrl+Alt+Shift+Up" ... [INFO] [stdout] [INFO] [stdout] all tests passed [INFO] [stdout] [INFO] [stdout] === Keyboard Input completed === [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] === Running test suite: UTF-8 Handling === [INFO] [stdout] [INFO] [stdout] running "Lowercase characters (no SHIFT modifier)" ... [INFO] [stdout] running "Uppercase characters (SHIFT modifier)" ... [INFO] [stdout] running "Mixed case" ... [INFO] [stdout] running "Numbers" ... [INFO] [stdout] running "Special ASCII characters" ... [INFO] [stdout] running "Valid 2-byte UTF-8 (café)" ... [INFO] [stdout] running "Valid 3-byte UTF-8 (€100)" ... [INFO] [stdout] running "Valid 4-byte UTF-8 (😀)" ... [INFO] [stdout] running "Multiple emoji" ... [INFO] [stdout] running "Mixed ASCII and UTF-8" ... [INFO] [stdout] running "UTF-8 accented characters" ... [INFO] [stdout] running "UTF-8 German characters" ... [INFO] [stdout] running "UTF-8 Greek characters" ... [INFO] [stdout] running "UTF-8 Cyrillic characters" ... [INFO] [stdout] running "UTF-8 Chinese characters" ... [INFO] [stdout] running "UTF-8 Japanese characters" ... [INFO] [stdout] running "UTF-8 with newlines" ... [INFO] [stdout] running "Mixed regular and UTF-8" ... [INFO] [stdout] running "Invalid UTF-8: start byte 0xFF (invalid in UTF-8)" ... [INFO] [stdout] running "Invalid UTF-8: continuation byte 0x80 without start" ... [INFO] [stdout] running "Invalid UTF-8: incomplete 2-byte sequence (0xC3 alone)" ... [INFO] [stdout] running "Invalid UTF-8: incomplete 3-byte sequence (0xE2 0x82 alone)" ... [INFO] [stdout] running "Invalid UTF-8: incomplete 4-byte sequence (0xF0 0x9F 0x98 alone)" ... [INFO] [stdout] running "Invalid UTF-8: invalid continuation in 2-byte (0xC3 0x28)" ... [INFO] [stdout] running "Invalid UTF-8: overlong encoding (0xC0 0xAF for '/')" ... [INFO] [stdout] running "Invalid UTF-8: surrogate half (0xED 0xA0 0x80)" ... [INFO] [stdout] running "Mixed valid and invalid UTF-8" ... [INFO] [stdout] running "Invalid UTF-8 followed by valid" ... [INFO] [stdout] running "Valid UTF-8 followed by invalid" ... [INFO] [stdout] running "Multiple invalid bytes in sequence" ... [INFO] [stdout] running "Invalid in middle of valid text" ... [INFO] [stdout] [INFO] [stdout] all tests passed [INFO] [stdout] [INFO] [stdout] === UTF-8 Handling completed === [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] === Running test suite: Bracketed Paste === [INFO] [stdout] [INFO] [stdout] running "Simple bracketed paste with ASCII text" ... [INFO] [stdout] running "Bracketed paste with UTF-8 (café 😀)" ... [INFO] [stdout] running "Bracketed paste with newlines" ... [INFO] [stdout] running "Events before and after bracketed paste" ... [INFO] [stdout] running "Empty bracketed paste" ... [INFO] [stdout] running "Bracketed paste with only whitespace" ... [INFO] [stdout] running "Multiple bracketed pastes in sequence" ... [INFO] [stdout] running "Bracketed paste end without start" ... [INFO] [stdout] running "Multiple consecutive bracketed pastes" ... [INFO] [stdout] running "Bracketed paste with special characters" ... [INFO] [stdout] running "Bracketed paste with tabs" ... [INFO] [stdout] running "Bracketed paste with control characters" ... [INFO] [stdout] running "Bracketed paste with backslash and quotes" ... [INFO] [stdout] running "Bracketed paste with null bytes" ... [INFO] [stdout] running "Long bracketed paste" ... [INFO] [stdout] [INFO] [stdout] all tests passed [INFO] [stdout] [INFO] [stdout] === Bracketed Paste completed === [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] === Running test suite: Control Keys === [INFO] [stdout] [INFO] [stdout] running "Tab key" ... [INFO] [stdout] running "Enter key" ... [INFO] [stdout] running "Ctrl+Space (null byte)" ... [INFO] [stdout] running "Ctrl+A" ... [INFO] [stdout] running "Ctrl+B" ... [INFO] [stdout] running "Ctrl+C" ... [INFO] [stdout] running "Ctrl+D" ... [INFO] [stdout] running "Ctrl+E" ... [INFO] [stdout] running "Ctrl+F" ... [INFO] [stdout] running "Ctrl+G (bell)" ... [INFO] [stdout] running "Ctrl+H (backspace)" ... [INFO] [stdout] running "Ctrl+I (tab - same as TAB)" ... [INFO] [stdout] running "Ctrl+J (line feed)" ... [INFO] [stdout] running "Ctrl+K" ... [INFO] [stdout] running "Ctrl+L (form feed)" ... [INFO] [stdout] running "Ctrl+M (carriage return - becomes Enter)" ... [INFO] [stdout] running "Ctrl+N" ... [INFO] [stdout] running "Ctrl+O" ... [INFO] [stdout] running "Ctrl+P" ... [INFO] [stdout] running "Ctrl+Q" ... [INFO] [stdout] running "Ctrl+R" ... [INFO] [stdout] running "Ctrl+S" ... [INFO] [stdout] running "Ctrl+T" ... [INFO] [stdout] running "Ctrl+U" ... [INFO] [stdout] running "Ctrl+V" ... [INFO] [stdout] running "Ctrl+W" ... [INFO] [stdout] running "Ctrl+X" ... [INFO] [stdout] running "Ctrl+Y" ... [INFO] [stdout] running "Ctrl+Z" ... [INFO] [stdout] running "Ctrl+[ (same as ESC)" ... [INFO] [stdout] running "Ctrl+\\ (FS)" ... [INFO] [stdout] running "Ctrl+] (GS)" ... [INFO] [stdout] running "Ctrl+^ (RS)" ... [INFO] [stdout] running "Ctrl+_ (US)" ... [INFO] [stdout] running "ESC ESC" ... [INFO] [stdout] running "Alt+[ (not CSI, just ESC + [)" ... [INFO] [stdout] running "Multiple control characters in sequence" ... [INFO] [stdout] running "Mixed control and regular characters" ... [INFO] [stdout] running "Control characters with uppercase" ... [INFO] [stdout] running "Newline character" ... [INFO] [stdout] running "Carriage return and line feed" ... [INFO] [stdout] running "Mixed newlines" ... [INFO] [stdout] running "Vertical tab" ... [INFO] [stdout] running "Multiple tabs" ... [INFO] [stdout] running "Tab separated values" ... [INFO] [stdout] running "Null bytes in text" ... [INFO] [stdout] [INFO] [stdout] all tests passed [INFO] [stdout] [INFO] [stdout] === Control Keys completed === [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] === Running test suite: Alt Keys === [INFO] [stdout] [INFO] [stdout] running "Alt+a" ... [INFO] [stdout] running "Alt+z" ... [INFO] [stdout] running "Alt+A (uppercase)" ... [INFO] [stdout] running "Alt+Z (uppercase)" ... [INFO] [stdout] running "Alt+0" ... [INFO] [stdout] running "Alt+9" ... [INFO] [stdout] running "Alt+Space" ... [INFO] [stdout] running "Alt+Enter" ... [INFO] [stdout] running "Alt+Tab" ... [INFO] [stdout] running "Alt+!" ... [INFO] [stdout] running "Alt+(" ... [INFO] [stdout] running "Alt+)" ... [INFO] [stdout] running "Alt+[" ... [INFO] [stdout] running "Alt+]" ... [INFO] [stdout] running "Alt+/" ... [INFO] [stdout] running "Alt+?" ... [INFO] [stdout] running "Alt+>" ... [INFO] [stdout] running "Alt+<" ... [INFO] [stdout] running "Alt+1" ... [INFO] [stdout] running "Alt+M" ... [INFO] [stdout] running "Alt+N (NOT SS2 in input mode)" ... [INFO] [stdout] running "Alt+Backspace" ... [INFO] [stdout] running "Alt+ESC" ... [INFO] [stdout] running "Alt+intermediate characters (space through /)" ... [INFO] [stdout] running "Alt+! - intermediate character" ... [INFO] [stdout] running "Alt+\" - intermediate character" ... [INFO] [stdout] running "Alt+# - intermediate character" ... [INFO] [stdout] running "Alt+$ - intermediate character" ... [INFO] [stdout] running "Alt+% - intermediate character" ... [INFO] [stdout] running "Alt+& - intermediate character" ... [INFO] [stdout] running "Alt+' - intermediate character" ... [INFO] [stdout] running "Alt+( - intermediate character" ... [INFO] [stdout] running "Alt+) - intermediate character" ... [INFO] [stdout] running "Alt+* - intermediate character" ... [INFO] [stdout] running "Alt++ - intermediate character" ... [INFO] [stdout] running "Alt+, - intermediate character" ... [INFO] [stdout] running "Alt+- - intermediate character" ... [INFO] [stdout] running "Alt+. - intermediate character" ... [INFO] [stdout] running "Alt+/ - intermediate character (last intermediate)" ... [INFO] [stdout] running "Multiple Alt+key in sequence" ... [INFO] [stdout] running "Alt+key mixed with regular text" ... [INFO] [stdout] running "Alt followed by various C0 controls" ... [INFO] [stdout] running "Alt+Ctrl+A" ... [INFO] [stdout] running "Alt+Ctrl+C" ... [INFO] [stdout] running "Alt+Ctrl+Z" ... [INFO] [stdout] running "Alt+CAN" ... [INFO] [stdout] running "Alt+SUB" ... [INFO] [stdout] running "Alt+lowercase letters sequence" ... [INFO] [stdout] running "Alt+uppercase letters sequence" ... [INFO] [stdout] running "Alt+digits sequence" ... [INFO] [stdout] running "Mixed Alt and non-Alt" ... [INFO] [stdout] running "Alt+Ctrl combinations" ... [INFO] [stdout] [INFO] [stdout] all tests passed [INFO] [stdout] [INFO] [stdout] === Alt Keys completed === [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] === Running test suite: Kitty Keyboard Protocol === [INFO] [stdout] [INFO] [stdout] running "Basic CSI u encoding - simple key" ... [INFO] [stdout] running "Basic CSI u encoding - uppercase A" ... [INFO] [stdout] running "CSI u with shift modifier (2 = 1 + 0b1)" ... [INFO] [stdout] running "CSI u with alt modifier (3 = 1 + 0b10)" ... [INFO] [stdout] running "CSI u with ctrl modifier (5 = 1 + 0b100)" ... [INFO] [stdout] running "CSI u with ctrl+shift (6 = 1 + 0b101)" ... [INFO] [stdout] running "CSI u with ctrl+alt (7 = 1 + 0b110)" ... [INFO] [stdout] running "CSI u with ctrl+alt+shift (8 = 1 + 0b111)" ... [INFO] [stdout] running "CSI u with super modifier (9 = 1 + 0b1000)" ... [INFO] [stdout] running "CSI u with hyper modifier (17 = 1 + 0b10000)" ... [INFO] [stdout] running "CSI u with meta modifier (33 = 1 + 0b100000)" ... [INFO] [stdout] running "CSI u with ctrl+super (13 = 1 + 0b1100)" ... [INFO] [stdout] running "CSI u with ctrl+alt+shift+super (16 = 1 + 0b1111)" ... [INFO] [stdout] running "Escape key with CSI u encoding" ... [INFO] [stdout] running "Enter key with CSI u encoding" ... [INFO] [stdout] running "Tab key with CSI u encoding" ... [INFO] [stdout] running "Backspace with CSI u encoding" ... [INFO] [stdout] running "Space with ctrl modifier" ... [INFO] [stdout] running "Function key F13" ... [INFO] [stdout] running "Function key F14" ... [INFO] [stdout] running "Function key F24" ... [INFO] [stdout] running "Keypad Left" ... [INFO] [stdout] running "Keypad Right" ... [INFO] [stdout] running "Keypad Up" ... [INFO] [stdout] running "Keypad Down" ... [INFO] [stdout] running "Keypad Insert" ... [INFO] [stdout] running "Keypad Delete" ... [INFO] [stdout] running "Keypad Page Up" ... [INFO] [stdout] running "Keypad Page Down" ... [INFO] [stdout] running "Keypad Home" ... [INFO] [stdout] running "Keypad End" ... [INFO] [stdout] running "Keypad 0" ... [INFO] [stdout] running "Keypad Enter" ... [INFO] [stdout] running "Left Shift key press" ... [INFO] [stdout] running "Left Control key press" ... [INFO] [stdout] running "Left Alt key press" ... [INFO] [stdout] running "Left Super key press" ... [INFO] [stdout] running "Right Shift key press" ... [INFO] [stdout] running "Right Control key press" ... [INFO] [stdout] running "CSI u with alternate key - shifted a becomes A" ... [INFO] [stdout] running "CSI u with base layout key - Cyrillic layout" ... [INFO] [stdout] running "CSI u with both shifted and base layout keys" ... [INFO] [stdout] running "Press event explicitly specified" ... [INFO] [stdout] running "Repeat event" ... [INFO] [stdout] running "Release event" ... [INFO] [stdout] running "Shift+a press event" ... [INFO] [stdout] running "Shift+a repeat event" ... [INFO] [stdout] running "Shift+a release event" ... [INFO] [stdout] running "Ctrl+c release event" ... [INFO] [stdout] running "Keypad Left press with modifiers" ... [INFO] [stdout] running "Keypad Left repeat with modifiers" ... [INFO] [stdout] running "Keypad Left release with modifiers" ... [INFO] [stdout] running "CSI u with text as codepoints - shift+a produces A (65)" ... [INFO] [stdout] running "CSI u with text - option+a produces å (229)" ... [INFO] [stdout] running "CSI u with multiple text codepoints" ... [INFO] [stdout] running "Key with no keycode but text (composition)" ... [INFO] [stdout] running "Caps Lock on (modifier bit 64 = 0b1000000, so 65 = 1 + 64)" ... [INFO] [stdout] running "Num Lock on (modifier bit 128 = 0b10000000, so 129 = 1 + 128)" ... [INFO] [stdout] running "Caps Lock + Shift (1 + 64 + 1 = 66)" ... [INFO] [stdout] running "Ctrl+Shift+A with caps lock (1 + 4 + 1 + 64 = 70)" ... [INFO] [stdout] running "Legacy compatibility - Ctrl+Shift+A before disambiguation" ... [INFO] [stdout] running "F1 with shift" ... [INFO] [stdout] running "F5 with ctrl+alt" ... [INFO] [stdout] running "Keypad 5 with num lock" ... [INFO] [stdout] running "Media Play key" ... [INFO] [stdout] running "Media Pause key" ... [INFO] [stdout] running "Volume Up key" ... [INFO] [stdout] running "Volume Down key" ... [INFO] [stdout] running "Mute key" ... [INFO] [stdout] running "Left Shift press with shift modifier set" ... [INFO] [stdout] running "Left Control press with ctrl modifier set" ... [INFO] [stdout] running "Left Control release with ctrl modifier cleared" ... [INFO] [stdout] running "Right Alt press with alt modifier set" ... [INFO] [stdout] running "Ctrl+[ (Escape) with CSI u" ... [INFO] [stdout] running "Ctrl+Space (null)" ... [INFO] [stdout] running "Alt+Escape" ... [INFO] [stdout] running "Super+a (Windows/Command key)" ... [INFO] [stdout] running "Hyper+Meta+a" ... [INFO] [stdout] running "All modifiers except locks on 'a' (1+1+2+4+8+16+32=64, so 65)" ... [INFO] [stdout] running "Shift+Tab (BackTab)" ... [INFO] [stdout] running "Ctrl+BackTab" ... [INFO] [stdout] running "Escape key press event" ... [INFO] [stdout] running "Escape key release event" ... [INFO] [stdout] running "ISO Level3 Shift key" ... [INFO] [stdout] running "ISO Level5 Shift key" ... [INFO] [stdout] running "Caps Lock key press" ... [INFO] [stdout] running "Scroll Lock key" ... [INFO] [stdout] running "Num Lock key" ... [INFO] [stdout] running "Print Screen key" ... [INFO] [stdout] running "Pause key" ... [INFO] [stdout] running "Menu key" ... [INFO] [stdout] running "F15" ... [INFO] [stdout] running "F20" ... [INFO] [stdout] running "F35" ... [INFO] [stdout] running "Keypad Begin" ... [INFO] [stdout] running "Keypad Decimal (period)" ... [INFO] [stdout] running "Keypad Divide (slash)" ... [INFO] [stdout] running "Keypad Multiply (asterisk)" ... [INFO] [stdout] running "Keypad Subtract (minus)" ... [INFO] [stdout] running "Keypad Add (plus)" ... [INFO] [stdout] running "Keypad Equal" ... [INFO] [stdout] running "Keypad Separator (comma)" ... [INFO] [stdout] running "Multiple modifier keys - Ctrl+Alt+Shift+Super+a (1+1+2+4+8=16, so 17)" ... [INFO] [stdout] running "Test uppercase letter Z with shift" ... [INFO] [stdout] running "Test number 1 with shift (becomes !)" ... [INFO] [stdout] running "Test equals with shift (becomes +)" ... [INFO] [stdout] running "Ctrl+Shift+equals (for ctrl+plus shortcut matching)" ... [INFO] [stdout] running "Alt+[ (not CSI, using CSI u encoding)" ... [INFO] [stdout] running "Alt+]" ... [INFO] [stdout] running "Ctrl+\\ (FS)" ... [INFO] [stdout] running "Ctrl+]" ... [INFO] [stdout] running "Press '/' with no modifiers" ... [INFO] [stdout] running "Ctrl+/" ... [INFO] [stdout] running "Shift+/ (becomes ?)" ... [INFO] [stdout] running "Space bar press event" ... [INFO] [stdout] running "Space bar release event" ... [INFO] [stdout] running "Enter with alt" ... [INFO] [stdout] running "Backspace with ctrl" ... [INFO] [stdout] running "Tab with alt" ... [INFO] [stdout] running "Test digit 0" ... [INFO] [stdout] running "Test digit 9" ... [INFO] [stdout] running "Semicolon key" ... [INFO] [stdout] running "Semicolon with shift (colon)" ... [INFO] [stdout] running "Comma key" ... [INFO] [stdout] running "Comma with shift (less-than)" ... [INFO] [stdout] running "Period key" ... [INFO] [stdout] running "Period with shift (greater-than)" ... [INFO] [stdout] running "Backtick key" ... [INFO] [stdout] running "Backtick with shift (tilde)" ... [INFO] [stdout] running "Minus key" ... [INFO] [stdout] running "Minus with shift (underscore)" ... [INFO] [stdout] running "Left bracket" ... [INFO] [stdout] running "Left bracket with shift (left brace)" ... [INFO] [stdout] running "Right bracket" ... [INFO] [stdout] running "Right bracket with shift (right brace)" ... [INFO] [stdout] running "Backslash" ... [INFO] [stdout] running "Backslash with shift (pipe)" ... [INFO] [stdout] running "Single quote" ... [INFO] [stdout] running "Single quote with shift (double quote)" ... [INFO] [stdout] running "Legacy F1 with modifiers (SS3 P)" ... [INFO] [stdout] running "Legacy F2 (SS3 Q)" ... [INFO] [stdout] running "Legacy F3 (SS3 R)" ... [INFO] [stdout] running "Legacy F4 (SS3 S)" ... [INFO] [stdout] running "Legacy F1 with shift (CSI 1;2P)" ... [INFO] [stdout] running "Legacy F2 with ctrl (CSI 1;5Q)" ... [INFO] [stdout] running "Legacy Home (CSI H)" ... [INFO] [stdout] running "Legacy End (CSI F)" ... [INFO] [stdout] running "Legacy Home with shift (CSI 1;2H)" ... [INFO] [stdout] running "Legacy Page Up with ctrl (CSI 5;5~)" ... [INFO] [stdout] running "Legacy Insert (CSI 2~)" ... [INFO] [stdout] running "Legacy Delete with alt (CSI 3;3~)" ... [INFO] [stdout] running "Escape sequence for Ctrl+I (same as Tab)" ... [INFO] [stdout] running "Escape sequence for Ctrl+M (same as Enter)" ... [INFO] [stdout] running "Multiple keys in sequence" ... [INFO] [stdout] running "Modifier key followed by regular key" ... [INFO] [stdout] running "Repeat events for same key" ... [INFO] [stdout] running "Base layout key matching - Cyrillic С maps to Latin c" ... [INFO] [stdout] running "Base layout key matching - Greek α maps to Latin a" ... [INFO] [stdout] running "Base layout key matching - Hebrew ש maps to Latin a" ... [INFO] [stdout] running "Base layout key with shift - Cyrillic С (uppercase)" ... [INFO] [stdout] running "Base layout for number keys - French keyboard 1 with shift (!)" ... [INFO] [stdout] running "Base layout for special keys - German keyboard Z key (maps to Y in QWERTY)" ... [INFO] [stdout] running "Base layout with function key - keypad key mapping" ... [INFO] [stdout] running "Complex case - alt+ctrl+shift with base layout" ... [INFO] [stdout] running "Base layout only (empty shifted field) - Cyrillic в maps to Latin d" ... [INFO] [stdout] running "Base layout with no modifiers" ... [INFO] [stdout] running "Multiple alternates with all fields populated" ... [INFO] [stdout] running "Text as Codepoints - Basic single character" ... [INFO] [stdout] running "Text as Codepoints - Shift+a with text \"A\"" ... [INFO] [stdout] running "Text as Codepoints - Multiple codepoints (e.g., composed character)" ... [INFO] [stdout] running "Text as Codepoints - Emoji" ... [INFO] [stdout] running "Text as Codepoints - Empty text field" ... [INFO] [stdout] running "Text as Codepoints - Ctrl+a with text (C0 control)" ... [INFO] [stdout] running "Text as Codepoints - Complex: base layout + text" ... [INFO] [stdout] running "Text as Codepoints - Multiple characters in text" ... [INFO] [stdout] running "Protocol Negotiation - Response with flags (disambiguate escape codes)" ... [INFO] [stdout] running "Protocol Negotiation - Response with flags (disambiguate + report event types)" ... [INFO] [stdout] running "Protocol Negotiation - Response with flags (all enhancements)" ... [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] thread 'main' (334) panicked at crates/vtio/tests/common/mod.rs:102:13: [INFO] [stderr] assertion failed: `(left == right)` [INFO] [stderr] [INFO] [stderr] Diff < left / right > : [INFO] [stderr] # Kitty Keyboard Protocol [INFO] [stderr] ## Basic CSI u encoding - simple key [INFO] [stderr] ``` [INFO] [stderr] [97u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Basic CSI u encoding - uppercase A [INFO] [stderr] ``` [INFO] [stderr] [65u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:A) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with shift modifier (2 = 1 + 0b1) [INFO] [stderr] ``` [INFO] [stderr] [97;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with alt modifier (3 = 1 + 0b10) [INFO] [stderr] ``` [INFO] [stderr] [97;3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with ctrl modifier (5 = 1 + 0b100) [INFO] [stderr] ``` [INFO] [stderr] [97;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with ctrl+shift (6 = 1 + 0b101) [INFO] [stderr] ``` [INFO] [stderr] [97;6u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-shift-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with ctrl+alt (7 = 1 + 0b110) [INFO] [stderr] ``` [INFO] [stderr] [97;7u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-alt-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with ctrl+alt+shift (8 = 1 + 0b111) [INFO] [stderr] ``` [INFO] [stderr] [97;8u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-alt-shift-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with super modifier (9 = 1 + 0b1000) [INFO] [stderr] ``` [INFO] [stderr] [97;9u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:super-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with hyper modifier (17 = 1 + 0b10000) [INFO] [stderr] ``` [INFO] [stderr] [97;17u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:hyper-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with meta modifier (33 = 1 + 0b100000) [INFO] [stderr] ``` [INFO] [stderr] [97;33u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:meta-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with ctrl+super (13 = 1 + 0b1100) [INFO] [stderr] ``` [INFO] [stderr] [97;13u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-super-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with ctrl+alt+shift+super (16 = 1 + 0b1111) [INFO] [stderr] ``` [INFO] [stderr] [97;16u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-alt-shift-super-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Escape key with CSI u encoding [INFO] [stderr] ``` [INFO] [stderr] [27u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:esc) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Enter key with CSI u encoding [INFO] [stderr] ``` [INFO] [stderr] [13u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:enter) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Tab key with CSI u encoding [INFO] [stderr] ``` [INFO] [stderr] [9u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:tab) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Backspace with CSI u encoding [INFO] [stderr] ``` [INFO] [stderr] [127u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:backspace) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Space with ctrl modifier [INFO] [stderr] ``` [INFO] [stderr] [32;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-space) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Function key F13 [INFO] [stderr] ``` [INFO] [stderr] [57376u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f13) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Function key F14 [INFO] [stderr] ``` [INFO] [stderr] [57377u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f14) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Function key F24 [INFO] [stderr] ``` [INFO] [stderr] [57387u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f24) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Left [INFO] [stderr] ``` [INFO] [stderr] [57417u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:left:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Right [INFO] [stderr] ``` [INFO] [stderr] [57418u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:right:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Up [INFO] [stderr] ``` [INFO] [stderr] [57419u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:up:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Down [INFO] [stderr] ``` [INFO] [stderr] [57420u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:down:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Insert [INFO] [stderr] ``` [INFO] [stderr] [57425u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:insert:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Delete [INFO] [stderr] ``` [INFO] [stderr] [57426u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:delete:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Page Up [INFO] [stderr] ``` [INFO] [stderr] [57421u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:pageup:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Page Down [INFO] [stderr] ``` [INFO] [stderr] [57422u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:pagedown:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Home [INFO] [stderr] ``` [INFO] [stderr] [57423u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:home:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad End [INFO] [stderr] ``` [INFO] [stderr] [57424u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:end:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad 0 [INFO] [stderr] ``` [INFO] [stderr] [57399u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:0:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Enter [INFO] [stderr] ``` [INFO] [stderr] [57414u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:enter:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left Shift key press [INFO] [stderr] ``` [INFO] [stderr] [57441u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-modifier:Left Shift) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left Control key press [INFO] [stderr] ``` [INFO] [stderr] [57442u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-modifier:Left Ctrl) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left Alt key press [INFO] [stderr] ``` [INFO] [stderr] [57443u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-modifier:Left Alt) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left Super key press [INFO] [stderr] ``` [INFO] [stderr] [57444u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:super-modifier:Left Super) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Right Shift key press [INFO] [stderr] ``` [INFO] [stderr] [57447u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-modifier:Right Shift) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Right Control key press [INFO] [stderr] ``` [INFO] [stderr] [57448u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-modifier:Right Ctrl) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with alternate key - shifted a becomes A [INFO] [stderr] ``` [INFO] [stderr] [97:65;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:A) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with base layout key - Cyrillic layout [INFO] [stderr] ``` [INFO] [stderr] [1057::99;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-С:base=c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with both shifted and base layout keys [INFO] [stderr] ``` [INFO] [stderr] [97:65:99;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:A:base=c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Press event explicitly specified [INFO] [stderr] ``` [INFO] [stderr] [97;1:1u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Repeat event [INFO] [stderr] ``` [INFO] [stderr] [97;1:2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(repeat:a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Release event [INFO] [stderr] ``` [INFO] [stderr] [97;1:3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(release:a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Shift+a press event [INFO] [stderr] ``` [INFO] [stderr] [97;2:1u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Shift+a repeat event [INFO] [stderr] ``` [INFO] [stderr] [97;2:2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(repeat:shift-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Shift+a release event [INFO] [stderr] ``` [INFO] [stderr] [97;2:3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(release:shift-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+c release event [INFO] [stderr] ``` [INFO] [stderr] [99;5:3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(release:ctrl-c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Left press with modifiers [INFO] [stderr] ``` [INFO] [stderr] [57417;5:1u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-left:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Left repeat with modifiers [INFO] [stderr] ``` [INFO] [stderr] [57417;5:2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(repeat:ctrl-left:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Left release with modifiers [INFO] [stderr] ``` [INFO] [stderr] [57417;5:3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(release:ctrl-left:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with text as codepoints - shift+a produces A (65) [INFO] [stderr] ``` [INFO] [stderr] [97;2;;65u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a:text="A") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with text - option+a produces å (229) [INFO] [stderr] ``` [INFO] [stderr] [97;;;229u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:a:text="å") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## CSI u with multiple text codepoints [INFO] [stderr] ``` [INFO] [stderr] [97;;;65:66u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:a:text="AB") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Key with no keycode but text (composition) [INFO] [stderr] ``` [INFO] [stderr] [0;;;229u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press::text="å") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Caps Lock on (modifier bit 64 = 0b1000000, so 65 = 1 + 64) [INFO] [stderr] ``` [INFO] [stderr] [97;65u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:a:caps_lock) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Num Lock on (modifier bit 128 = 0b10000000, so 129 = 1 + 128) [INFO] [stderr] ``` [INFO] [stderr] [57399;129u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:0:keypad:num_lock) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Caps Lock + Shift (1 + 64 + 1 = 66) [INFO] [stderr] ``` [INFO] [stderr] [97;66u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a:caps_lock) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+Shift+A with caps lock (1 + 4 + 1 + 64 = 70) [INFO] [stderr] ``` [INFO] [stderr] [97;70u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-shift-a:caps_lock) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy compatibility - Ctrl+Shift+A before disambiguation [INFO] [stderr] ``` [INFO] [stderr] [65;6u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-shift-A) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## F1 with shift [INFO] [stderr] ``` [INFO] [stderr] [57344;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-f1) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## F5 with ctrl+alt [INFO] [stderr] ``` [INFO] [stderr] [57348;7u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-alt-f5) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad 5 with num lock [INFO] [stderr] ``` [INFO] [stderr] [57404;129u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:5:keypad:num_lock) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Media Play key [INFO] [stderr] ``` [INFO] [stderr] [57428u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:media:Play) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Media Pause key [INFO] [stderr] ``` [INFO] [stderr] [57429u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:media:Pause) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Volume Up key [INFO] [stderr] ``` [INFO] [stderr] [57439u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:media:Raise Volume) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Volume Down key [INFO] [stderr] ``` [INFO] [stderr] [57438u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:media:Lower Volume) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Mute key [INFO] [stderr] ``` [INFO] [stderr] [57440u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:media:Mute Volume) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left Shift press with shift modifier set [INFO] [stderr] ``` [INFO] [stderr] [57441;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-modifier:Left Shift) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left Control press with ctrl modifier set [INFO] [stderr] ``` [INFO] [stderr] [57442;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-modifier:Left Ctrl) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left Control release with ctrl modifier cleared [INFO] [stderr] ``` [INFO] [stderr] [57442;1:3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(release:ctrl-modifier:Left Ctrl) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Right Alt press with alt modifier set [INFO] [stderr] ``` [INFO] [stderr] [57449;3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-modifier:Right Alt) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+[ (Escape) with CSI u [INFO] [stderr] ``` [INFO] [stderr] [27;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-esc) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+Space (null) [INFO] [stderr] ``` [INFO] [stderr] [32;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-space) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Alt+Escape [INFO] [stderr] ``` [INFO] [stderr] [27;3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-esc) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Super+a (Windows/Command key) [INFO] [stderr] ``` [INFO] [stderr] [97;9u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:super-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Hyper+Meta+a [INFO] [stderr] ``` [INFO] [stderr] [97;49u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:hyper-meta-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## All modifiers except locks on 'a' (1+1+2+4+8+16+32=64, so 65) [INFO] [stderr] ``` [INFO] [stderr] [97;64u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-alt-shift-super-hyper-meta-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Shift+Tab (BackTab) [INFO] [stderr] ``` [INFO] [stderr] [9;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:backtab) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+BackTab [INFO] [stderr] ``` [INFO] [stderr] [9;6u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-backtab) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Escape key press event [INFO] [stderr] ``` [INFO] [stderr] [27;1:1u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:esc) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Escape key release event [INFO] [stderr] ``` [INFO] [stderr] [27;1:3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(release:esc) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## ISO Level3 Shift key [INFO] [stderr] ``` [INFO] [stderr] [57453u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:modifier:Iso Level 3 Shift) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## ISO Level5 Shift key [INFO] [stderr] ``` [INFO] [stderr] [57454u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:modifier:Iso Level 5 Shift) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Caps Lock key press [INFO] [stderr] ``` [INFO] [stderr] [57358u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:capslock) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Scroll Lock key [INFO] [stderr] ``` [INFO] [stderr] [57359u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:scrolllock) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Num Lock key [INFO] [stderr] ``` [INFO] [stderr] [57360u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:numlock) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Print Screen key [INFO] [stderr] ``` [INFO] [stderr] [57361u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:printscreen) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Pause key [INFO] [stderr] ``` [INFO] [stderr] [57362u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:pause) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Menu key [INFO] [stderr] ``` [INFO] [stderr] [57363u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:menu) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## F15 [INFO] [stderr] ``` [INFO] [stderr] [57378u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f15) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## F20 [INFO] [stderr] ``` [INFO] [stderr] [57383u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f20) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## F35 [INFO] [stderr] ``` [INFO] [stderr] [57398u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f35) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Begin [INFO] [stderr] ``` [INFO] [stderr] [57427u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:keypadbegin:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Decimal (period) [INFO] [stderr] ``` [INFO] [stderr] [57409u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:.:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Divide (slash) [INFO] [stderr] ``` [INFO] [stderr] [57410u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:/:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Multiply (asterisk) [INFO] [stderr] ``` [INFO] [stderr] [57411u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:*:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Subtract (minus) [INFO] [stderr] ``` [INFO] [stderr] [57412u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:-:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Add (plus) [INFO] [stderr] ``` [INFO] [stderr] [57413u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:+:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Equal [INFO] [stderr] ``` [INFO] [stderr] [57415u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:=:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Keypad Separator (comma) [INFO] [stderr] ``` [INFO] [stderr] [57416u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:,:keypad) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Multiple modifier keys - Ctrl+Alt+Shift+Super+a (1+1+2+4+8=16, so 17) [INFO] [stderr] ``` [INFO] [stderr] [97;17u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:hyper-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Test uppercase letter Z with shift [INFO] [stderr] ``` [INFO] [stderr] [122:90;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:Z) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Test number 1 with shift (becomes !) [INFO] [stderr] ``` [INFO] [stderr] [49:33;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:!) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Test equals with shift (becomes +) [INFO] [stderr] ``` [INFO] [stderr] [61:43;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:+) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+Shift+equals (for ctrl+plus shortcut matching) [INFO] [stderr] ``` [INFO] [stderr] [61;6u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-shift-=) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Alt+[ (not CSI, using CSI u encoding) [INFO] [stderr] ``` [INFO] [stderr] [91;3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-[) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Alt+] [INFO] [stderr] ``` [INFO] [stderr] [93;3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-]) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+\ (FS) [INFO] [stderr] ``` [INFO] [stderr] [92;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-\) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+] [INFO] [stderr] ``` [INFO] [stderr] [93;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-]) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Press '/' with no modifiers [INFO] [stderr] ``` [INFO] [stderr] [47u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:/) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Ctrl+/ [INFO] [stderr] ``` [INFO] [stderr] [47;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-/) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Shift+/ (becomes ?) [INFO] [stderr] ``` [INFO] [stderr] [47:63;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:?) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Space bar press event [INFO] [stderr] ``` [INFO] [stderr] [32;1:1u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:space) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Space bar release event [INFO] [stderr] ``` [INFO] [stderr] [32;1:3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(release:space) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Enter with alt [INFO] [stderr] ``` [INFO] [stderr] [13;3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-enter) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Backspace with ctrl [INFO] [stderr] ``` [INFO] [stderr] [127;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-backspace) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Tab with alt [INFO] [stderr] ``` [INFO] [stderr] [9;3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-tab) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Test digit 0 [INFO] [stderr] ``` [INFO] [stderr] [48u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:0) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Test digit 9 [INFO] [stderr] ``` [INFO] [stderr] [57u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:9) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Semicolon key [INFO] [stderr] ``` [INFO] [stderr] [59u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:;) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Semicolon with shift (colon) [INFO] [stderr] ``` [INFO] [stderr] [59:58;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press::) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Comma key [INFO] [stderr] ``` [INFO] [stderr] [44u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:,) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Comma with shift (less-than) [INFO] [stderr] ``` [INFO] [stderr] [44:60;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:<) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Period key [INFO] [stderr] ``` [INFO] [stderr] [46u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:.) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Period with shift (greater-than) [INFO] [stderr] ``` [INFO] [stderr] [46:62;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:>) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Backtick key [INFO] [stderr] ``` [INFO] [stderr] [96u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:`) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Backtick with shift (tilde) [INFO] [stderr] ``` [INFO] [stderr] [96:126;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:~) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Minus key [INFO] [stderr] ``` [INFO] [stderr] [45u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:-) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Minus with shift (underscore) [INFO] [stderr] ``` [INFO] [stderr] [45:95;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:_) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left bracket [INFO] [stderr] ``` [INFO] [stderr] [91u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:[) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Left bracket with shift (left brace) [INFO] [stderr] ``` [INFO] [stderr] [91:123;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:{) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Right bracket [INFO] [stderr] ``` [INFO] [stderr] [93u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:]) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Right bracket with shift (right brace) [INFO] [stderr] ``` [INFO] [stderr] [93:125;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:}) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Backslash [INFO] [stderr] ``` [INFO] [stderr] [92u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:\) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Backslash with shift (pipe) [INFO] [stderr] ``` [INFO] [stderr] [92:124;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:|) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Single quote [INFO] [stderr] ``` [INFO] [stderr] [39u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:') [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Single quote with shift (double quote) [INFO] [stderr] ``` [INFO] [stderr] [39:34;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy F1 with modifiers (SS3 P) [INFO] [stderr] ``` [INFO] [stderr] OP [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f1) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy F2 (SS3 Q) [INFO] [stderr] ``` [INFO] [stderr] OQ [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f2) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy F3 (SS3 R) [INFO] [stderr] ``` [INFO] [stderr] OR [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f3) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy F4 (SS3 S) [INFO] [stderr] ``` [INFO] [stderr] OS [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:f4) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy F1 with shift (CSI 1;2P) [INFO] [stderr] ``` [INFO] [stderr] [1;2P [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-f1) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy F2 with ctrl (CSI 1;5Q) [INFO] [stderr] ``` [INFO] [stderr] [1;5Q [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-f2) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy Home (CSI H) [INFO] [stderr] ``` [INFO] [stderr] [H [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:home) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy End (CSI F) [INFO] [stderr] ``` [INFO] [stderr] [F [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:end) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy Home with shift (CSI 1;2H) [INFO] [stderr] ``` [INFO] [stderr] [1;2H [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-home) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy Page Up with ctrl (CSI 5;5~) [INFO] [stderr] ``` [INFO] [stderr] [5;5~ [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-pageup) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy Insert (CSI 2~) [INFO] [stderr] ``` [INFO] [stderr] [2~ [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:insert) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Legacy Delete with alt (CSI 3;3~) [INFO] [stderr] ``` [INFO] [stderr] [3;3~ [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:alt-delete) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Escape sequence for Ctrl+I (same as Tab) [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:tab) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Escape sequence for Ctrl+M (same as Enter) [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:enter) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Multiple keys in sequence [INFO] [stderr] ``` [INFO] [stderr] [97u[98u[99u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:a) [INFO] [stderr] key(press:b) [INFO] [stderr] key(press:c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Modifier key followed by regular key [INFO] [stderr] ``` [INFO] [stderr] [57441;2u[97;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-modifier:Left Shift) [INFO] [stderr] key(press:shift-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Repeat events for same key [INFO] [stderr] ``` [INFO] [stderr] [97;1:1u[97;1:2u[97;1:2u[97;1:3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:a) [INFO] [stderr] key(repeat:a) [INFO] [stderr] key(repeat:a) [INFO] [stderr] key(release:a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout key matching - Cyrillic С maps to Latin c [INFO] [stderr] ``` [INFO] [stderr] [1057::99;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-С:base=c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout key matching - Greek α maps to Latin a [INFO] [stderr] ``` [INFO] [stderr] [945::97;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-α:base=a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout key matching - Hebrew ש maps to Latin a [INFO] [stderr] ``` [INFO] [stderr] [1513::97;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-ש:base=a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout key with shift - Cyrillic С (uppercase) [INFO] [stderr] ``` [INFO] [stderr] [1057:1057:99;6u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-С:base=c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout for number keys - French keyboard 1 with shift (!) [INFO] [stderr] ``` [INFO] [stderr] [49:33:49;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:!:base=1) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout for special keys - German keyboard Z key (maps to Y in QWERTY) [INFO] [stderr] ``` [INFO] [stderr] [122::121;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-z:base=y) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout with function key - keypad key mapping [INFO] [stderr] ``` [INFO] [stderr] [57399::48u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:0:keypad:base=0) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Complex case - alt+ctrl+shift with base layout [INFO] [stderr] ``` [INFO] [stderr] [1057:1057:99;8u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-alt-С:base=c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout only (empty shifted field) - Cyrillic в maps to Latin d [INFO] [stderr] ``` [INFO] [stderr] [1074::100;5u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-в:base=d) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Base layout with no modifiers [INFO] [stderr] ``` [INFO] [stderr] [1057::99u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:С:base=c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Multiple alternates with all fields populated [INFO] [stderr] ``` [INFO] [stderr] [97:65:99;2u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:A:base=c) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Text as Codepoints - Basic single character [INFO] [stderr] ``` [INFO] [stderr] [97;2;;65u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a:text="A") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Text as Codepoints - Shift+a with text "A" [INFO] [stderr] ``` [INFO] [stderr] [97;2;;65u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a:text="A") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Text as Codepoints - Multiple codepoints (e.g., composed character) [INFO] [stderr] ``` [INFO] [stderr] [97;5;;195:161u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-a:text="á") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Text as Codepoints - Emoji [INFO] [stderr] ``` [INFO] [stderr] [97;2;;128512u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a:text="😀") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Text as Codepoints - Empty text field [INFO] [stderr] ``` [INFO] [stderr] [97;2;;u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Text as Codepoints - Ctrl+a with text (C0 control) [INFO] [stderr] ``` [INFO] [stderr] [97;5;;1u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:ctrl-a:text="\u{1}") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Text as Codepoints - Complex: base layout + text [INFO] [stderr] ``` [INFO] [stderr] [1057::99;2;;1057u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-С:base=c:text="С") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Text as Codepoints - Multiple characters in text [INFO] [stderr] ``` [INFO] [stderr] [97;2;;65:66:67u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] key(press:shift-a:text="ABC") [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Protocol Negotiation - Response with flags (disambiguate escape codes) [INFO] [stderr] ``` [INFO] [stderr] [?1u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] KeyboardEnhancementFlagsResponse(Some(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES))) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Protocol Negotiation - Response with flags (disambiguate + report event types) [INFO] [stderr] ``` [INFO] [stderr] [?3u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] KeyboardEnhancementFlagsResponse(Some(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES | REPORT_EVENT_TYPES))) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] ## Protocol Negotiation - Response with flags (all enhancements) [INFO] [stderr] ``` [INFO] [stderr] [?31u [INFO] [stderr] ``` [INFO] [stderr] [INFO] [stderr] ``` [INFO] [stderr] KeyboardEnhancementFlagsResponse(Some(KeyboardEnhancementFlags(DISAMBIGUATE_ESCAPE_CODES | REPORT_EVENT_TYPES | REPORT_ALTERNATE_KEYS | REPORT_ALL_KEYS_AS_ESCAPE_CODES | REPORT_ASSOCIATED_TEXT))) [INFO] [stderr] ``` [INFO] [stderr] --- [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] stack backtrace: [INFO] [stderr] 0: 0x5d1e4742a74a - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stderr] 1: 0x5d1e4742a74a - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stderr] 2: 0x5d1e4742a74a - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stderr] 3: 0x5d1e4742a74a - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stderr] 4: 0x5d1e4743ecaa - ::fmt [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stderr] 5: 0x5d1e4743ecaa - core[fa0eadad68403074]::fmt::write [INFO] [stderr] 6: 0x5d1e4742ea32 - std[31e582c13f4e914f]::io::default_write_fmt:: [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stderr] 7: 0x5d1e4742ea32 - ::write_fmt [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stderr] 8: 0x5d1e4741520f - ::print [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stderr] 9: 0x5d1e4741520f - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stderr] 10: 0x5d1e47425d01 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:319:9 [INFO] [stderr] 11: 0x5d1e47425ebb - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:825:13 [INFO] [stderr] 12: 0x5d1e474152c8 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stderr] 13: 0x5d1e4740a539 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stderr] 14: 0x5d1e47415c2d - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stderr] 15: 0x5d1e4743f43c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stderr] 16: 0x5d1e4724d2ed - parser[6b673a6730662599]::common::run_tests [INFO] [stderr] at /opt/rustwide/workdir/crates/vtio/tests/common/mod.rs:102:13 [INFO] [stderr] 17: 0x5d1e47244b93 - parser[6b673a6730662599]::main [INFO] [stderr] at /opt/rustwide/workdir/crates/vtio/tests/parser.rs:73:9 [INFO] [stderr] 18: 0x5d1e4723855b - >::call_once [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stderr] 19: 0x5d1e4722fe7e - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stderr] 20: 0x5d1e4723ced1 - std[31e582c13f4e914f]::rt::lang_start::<()>::{closure#0} [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/rt.rs:206:18 [INFO] [stderr] 21: 0x5d1e474250a4 - <&dyn core[fa0eadad68403074]::ops::function::Fn<(), Output = i32> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::panic::unwind_safe::RefUnwindSafe as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:287:21 [INFO] [stderr] 22: 0x5d1e474250a4 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::<&dyn core[fa0eadad68403074]::ops::function::Fn<(), Output = i32> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::panic::unwind_safe::RefUnwindSafe, i32> [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stderr] 23: 0x5d1e474250a4 - std[31e582c13f4e914f]::panicking::catch_unwind:: + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::panic::unwind_safe::RefUnwindSafe> [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stderr] 24: 0x5d1e474250a4 - std[31e582c13f4e914f]::panic::catch_unwind::<&dyn core[fa0eadad68403074]::ops::function::Fn<(), Output = i32> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::panic::unwind_safe::RefUnwindSafe, i32> [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stderr] 25: 0x5d1e474250a4 - std[31e582c13f4e914f]::rt::lang_start_internal::{closure#0} [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/rt.rs:175:24 [INFO] [stderr] 26: 0x5d1e474250a4 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call:: [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stderr] 27: 0x5d1e474250a4 - std[31e582c13f4e914f]::panicking::catch_unwind:: [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stderr] 28: 0x5d1e474250a4 - std[31e582c13f4e914f]::panic::catch_unwind:: [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stderr] 29: 0x5d1e474250a4 - std[31e582c13f4e914f]::rt::lang_start_internal [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/rt.rs:171:5 [INFO] [stderr] 30: 0x5d1e4723b687 - std[31e582c13f4e914f]::rt::lang_start::<()> [INFO] [stderr] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/rt.rs:205:5 [INFO] [stderr] 31: 0x5d1e4724696e - main [INFO] [stderr] 32: 0x75d3357f91ca - [INFO] [stderr] 33: 0x75d3357f928b - __libc_start_main [INFO] [stderr] 34: 0x5d1e4722d195 - _start [INFO] [stderr] 35: 0x0 - [INFO] [stderr] error: test failed, to rerun pass `-p vtio --test parser` [INFO] running `Command { std: "docker" "inspect" "ac7d0e72b9c5f2c0a2157a2908bfa0b1da33810ee9f9479c026ca0cf440bc2c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ac7d0e72b9c5f2c0a2157a2908bfa0b1da33810ee9f9479c026ca0cf440bc2c1", kill_on_drop: false }` [INFO] [stdout] ac7d0e72b9c5f2c0a2157a2908bfa0b1da33810ee9f9479c026ca0cf440bc2c1